Guest User

Untitled

a guest
Mar 6th, 2017
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 5.88 KB | None | 0 0
  1. #include <a_samp>
  2. #include <a_mysql>
  3. #include <sscanf2>
  4. #include <pawn.CMD>
  5. #include <errors>
  6.  
  7. //colors
  8. #define COLOR_RED    0xAA3333AA
  9. #define COLOR_WHITE  0xFFFFFFAA
  10. #define COLOR_GREY   0xD8D8D8FF
  11. #define COLOR_YELLOW 0xFFFF00AA
  12. #define COLOR_GREEN  0x9EC73DAA
  13. #define COLOR_PINK   0xC2A2DAFF
  14. #define COLOR_FLESH  0xF5DEB3AA
  15. //dialog styles
  16. #define MSGBOX       DIALOG_STYLE_MSGBOX
  17. #define INPUT        DIALOG_STYLE_INPUT
  18. #define LIST         DIALOG_STYLE_LIST
  19. #define PASSWORD     DIALOG_STYLE_PASSWORD
  20. //mysql connect
  21. #define MYSQL_HOST                "localhost"
  22. #define MYSQL_USER                "root"
  23. #define MYSQL_DATABASE            "rpserver"
  24. #define MYSQL_PASSWORD            "123456"
  25.  
  26. main();
  27.  
  28. //globals
  29. new MySQL:mysql_connect_ID;
  30. enum e_DIALOG_IDs
  31. {
  32.     dLogin
  33. };
  34. enum e_PLAYER_INFO {
  35.     pID,
  36.     pName[MAX_PLAYER_NAME],
  37.     pPassword[31]
  38. };
  39. new pInfo[MAX_PLAYERS][e_PLAYER_INFO];
  40. enum CHAR_INFO {
  41.     cID,
  42.     cName,
  43.     cCash,
  44.     cMoney,
  45.     cPosX,
  46.     cPosY,
  47.     cPosZ
  48. };
  49. new Char[MAX_PLAYERS][CHAR_INFO];
  50.  
  51. public OnPlayerConnect(playerid)
  52. {
  53.     TogglePlayerSpectating(playerid, true);
  54.     SetPlayerColor(playerid,0xFFFFFF00);
  55.     GetPlayerName(playerid, pInfo[playerid][pName], MAX_PLAYER_NAME);
  56.     new query_string[49+MAX_PLAYER_NAME];
  57.     format(query_string, sizeof(query_string), "SELECT * FROM `Accounts` WHERE `Nickname` = '%s'", pInfo[playerid][pName]);
  58.     mysql_tquery(mysql_connect_ID, query_string, "FindPlayerInTable","i", playerid);
  59.     ShowLoginDialog(playerid);
  60.     return 1;
  61. }
  62.  
  63. public OnGameModeInit()
  64. {
  65.     mysql_connect_ID = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASSWORD, MYSQL_DATABASE);
  66.     ShowConnectStatus();
  67.     mysql_tquery(mysql_connect_ID, !"SET CHARACTER SET 'utf8'", "", "");
  68.     mysql_tquery(mysql_connect_ID, !"SET NAMES 'utf8'", "", "");
  69.     mysql_tquery(mysql_connect_ID, !"SET character_set_client = 'cp1251'", "", "");
  70.     mysql_tquery(mysql_connect_ID, !"SET character_set_connection = 'cp1251'", "", "");
  71.     mysql_tquery(mysql_connect_ID, !"SET character_set_results = 'cp1251'", "", "");
  72.     mysql_tquery(mysql_connect_ID, !"SET SESSION collation_connection = 'utf8_general_ci'", "", "");
  73.     SetGameModeText("RSprjct 0.0.1");
  74.     DisableInteriorEnterExits();
  75.     return 1;
  76. }
  77.  
  78. public OnPlayerDisconnect(playerid, reason)
  79. {
  80.     RemovePlayerInfo(playerid);
  81.     return 1;
  82. }
  83.  
  84. forward ShowLoginDialog(playerid);
  85. public ShowLoginDialog(playerid)
  86. {
  87.     new rows;
  88.     cache_get_row_count(rows);
  89.  
  90.     if(!rows) {
  91.         SendClientMessage(playerid, COLOR_FLESH, "Âàø àêêàóíò íå çàðåãèñòðèðîâàí íà ñåðåâåðå.");
  92.         SendClientMessage(playerid, COLOR_FLESH, "Ïðîéòè ðåãèñòðàöèþ ìîæíî íà ñàéòå rsp.com");
  93.         SetTimerEx("KickPlayer", 500, false, "i", playerid);
  94.     }
  95.     else {
  96.         ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Àâòîðèçàöèÿ", "Ýòîò àêêàóíò çàðåãåñòðèðîâàí.\nÂâåäèòå ïàðîëü, ÷òîáû ïðîäîëæèòü:", "Âîéòè", "Ïîêèíóòü ñåðâåð");
  97.         cache_get_value_name(0, "Password", pInfo[playerid][pPassword], 31);
  98.     }
  99.     return 1;
  100. }
  101.  
  102. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  103. {
  104.     switch(dialogid) {
  105.         case dLogin: {
  106.             if(!response) return Kick(playerid);
  107.             if(!strlen(inputtext)) return ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Àâòîðèçàöèÿ", "Âû íå ìîæåòå ïðîäîëæèòü àâòîðèçàöèþ íå ââåäÿ ïàðîëü!\nÂâåäèòå ïàðîëü îò àêêàóíòà äëÿ âõîäà íà ñåðâåð:", "Âîéòè", "Ïîêèíóòü ñåðâåð");
  108.             if(!strcmp(pInfo[playerid][pPassword], inputtext)) {
  109.                 new query_string[49+MAX_PLAYER_NAME];
  110.                 format(query_string, sizeof(query_string), "SELECT * FROM `Accounts` WHERE `Nickname` = '%s'", pInfo[playerid][pName]);
  111.                 mysql_tquery(mysql_connect_ID, query_string, "UploadPlayerAccount","i", playerid);
  112.             }
  113.             else
  114.             {
  115.                 switch(GetPVarInt(playerid, "WrongPassword"))
  116.                 {
  117.                     case 0: ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Àâòîðèçàöèÿ", "Âû ââåëè íåâåðíûé ïàðîëü! Ó Âàñ îñòàëîñü 2 ïîïûòêè.\nÂâåäèòå ïàðîëü îò àêêàóíòà äëÿ âõîäà íà ñåðâåð:", "Âîéòè", "Ïîêèíóòü ñåðâåð");
  118.                     case 1: ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Àâòîðèçàöèÿ", "Âû ââåëè íåâåðíûé ïàðîëü! Ó Âàñ îñòàëîñü 1 ïîïûòêè.\nÂâåäèòå ïàðîëü îò àêêàóíòà äëÿ âõîäà íà ñåðâåð:", "Âîéòè", "Ïîêèíóòü ñåðâåð");
  119.                     case 2: ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Àâòîðèçàöèÿ", "Âû ââåëè íåâåðíûé ïàðîëü! Ó âàñ îñòàëîñü 0 ïîïûòîê.\nÂâåäèòå ïàðîëü îò àêêàóíòà äëÿ âõîäà íà ñåðâåð:", "Âîéòè", "Ïîêèíóòü ñåðâåð");
  120.                     default: {
  121.                         return Kick(playerid);
  122.                     }
  123.                 }
  124.                 SetPVarInt(playerid, "WrongPassword", GetPVarInt(playerid, "WrongPassword")+1);
  125.             }
  126.             return 1;
  127.         }
  128.     }
  129.     return 1;
  130. }
  131.  
  132. forward KickPlayer(playerid);
  133. public KickPlayer(playerid) {
  134.     return Kick(playerid);
  135. }
  136.  
  137. forward UploadPlayerAccount(playerid);
  138. public UploadPlayerAccount(playerid)
  139. {
  140.     cache_get_value_name_int(0, "id", pInfo[playerid][pID]);
  141.     SendClientMessage(playerid, 0xFFFFFF00, "Âû óñïåøíî àâòîðèçèðîâàëèñü!");
  142.     SpawnPlayer(playerid);
  143.     return 1;
  144. }
  145. stock RemovePlayerInfo(playerid)
  146. {
  147.     pInfo[playerid][pID] = 0;
  148.     pInfo[playerid][pName][0] = EOS;
  149.     pInfo[playerid][pPassword][0] = EOS;
  150.     return 1;
  151. }
Add Comment
Please, Sign In to add comment