Advertisement
Guest User

Untitled

a guest
Dec 23rd, 2017
2,952
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 5.27 KB | None | 0 0
  1. ///////// REGISTER/LOGIN SYSTEM BY DIMI ///////////
  2. ///////////////// INCLUDE ////////////
  3. #include <YSI\y_ini>
  4. #include <a_samp>
  5. ///////////// DEFINE DIALOZI//////////
  6. #define DIALOG_REGISTER 1
  7. #define DIALOG_LOGIN 2
  8. #define DIALOG_SUCCESS_1 3
  9. #define DIALOG_SUCCESS_2 4
  10. ///////// DEFINICIJA U SCRIPT FILES FOLDERU /////////
  11. #define PATH "/Korisnici/%s.ini"
  12. /////////////////DEFINICIJA DIALOG BOJA///////////////////
  13. #define COL_WHITE "{FFFFFF}"
  14. #define COL_RED "{F81414}"
  15. #define COL_GREEN "{00FF22}"
  16. #define COL_LIGHTBLUE "{00CED1}"
  17. //////////////////OVO VAM PRIKAZUJE KAD SE IGRAC REGISTRUJE & UMRE & UBIJE NEKOG U SCRIPT FILES > KORISNICI///////////////////////
  18. enum pInfo
  19. {
  20.     pPass,
  21.     pCash,
  22.     pAdmin,
  23.     pKills,
  24.     pDeaths
  25. }
  26. new PlayerInfo[MAX_PLAYERS][pInfo];
  27. ///////////////////////////////////////////////////////////
  28. forward LoadUser_data(playerid,name[],value[]);
  29. public LoadUser_data(playerid,name[],value[])
  30. {
  31.     INI_Int("Password",PlayerInfo[playerid][pPass]);
  32.     INI_Int("Cash",PlayerInfo[playerid][pCash]);
  33.     INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
  34.     INI_Int("Kills",PlayerInfo[playerid][pKills]);
  35.     INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
  36.     return 1;
  37. }
  38. /////////////////////////////////////////////////
  39. stock UserPath(playerid)
  40. {
  41.     new string[128],playername[MAX_PLAYER_NAME];
  42.     GetPlayerName(playerid,playername,sizeof(playername));
  43.     format(string,sizeof(string),PATH,playername);
  44.     return string;
  45. }
  46. ///////////////////Nesto za YSI...//////////////////
  47. /*Credits to Dracoblue*/
  48. stock udb_hash(buf[]) {
  49.     new length=strlen(buf);
  50.     new s1 = 1;
  51.     new s2 = 0;
  52.     new n;
  53.     for (n=0; n<length; n++)
  54.     {
  55.        s1 = (s1 + buf[n]) % 65521;
  56.        s2 = (s2 + s1)     % 65521;
  57.     }
  58.     return (s2 << 16) + s1;
  59. }
  60. ////////////////////////////////////////////////////
  61. public OnPlayerConnect(playerid)
  62. {
  63.     if(fexist(UserPath(playerid)))
  64.     {
  65.         INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  66.         ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_WHITE"Ukucajte sifru dabi se ulogovali.","Login","Izadji");
  67.     }
  68.     else
  69.     {
  70.         ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,""COL_WHITE"Registracija...",""COL_WHITE"Ukucajte sifru kako bi se registrovali","Register","Izadji");
  71.     }
  72.     return 1;
  73. }
  74.  
  75. /////////////////////////////////////////////////////////////
  76. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  77. {
  78.     switch( dialogid )
  79.     {
  80.         case DIALOG_REGISTER:
  81.         {
  82.             if (!response) return Kick(playerid);
  83.             if(response)
  84.             {
  85.                 if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, ""COL_WHITE"Registracija...",""COL_RED"Ukucali ste pogresnu lozinku.\n"COL_WHITE"Ukucajte sifru kako bi registrovali nov akaunt","Register","Izadji");
  86.                 new INI:File = INI_Open(UserPath(playerid));
  87.                 INI_SetTag(File,"data");
  88.                 INI_WriteInt(File,"Password",udb_hash(inputtext));
  89.                 INI_WriteInt(File,"Cash",0);
  90.                 INI_WriteInt(File,"Admin",0);
  91.                 INI_WriteInt(File,"Kills",0);
  92.                 INI_WriteInt(File,"Deaths",0);
  93.                 INI_Close(File);
  94.  
  95.                 SetSpawnInfo(playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 0, 0, 0, 0, 0, 0);
  96.                 SpawnPlayer(playerid);
  97.                 ShowPlayerDialog(playerid, DIALOG_SUCCESS_1, DIALOG_STYLE_MSGBOX,""COL_WHITE"Dobrodosli!",""COL_GREEN"Uspesno ste se registrovali!","Ok","");
  98.             }
  99.         }
  100.  
  101.         case DIALOG_LOGIN:
  102.         {
  103.             if ( !response ) return Kick ( playerid );
  104.             if( response )
  105.             {
  106.                 if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
  107.                 {
  108.                     INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  109.                     GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
  110.                     ShowPlayerDialog(playerid, DIALOG_SUCCESS_2, DIALOG_STYLE_MSGBOX,""COL_WHITE"Dobrodosli!",""COL_GREEN"Uspesnos te se ulogovali!","Ok","");
  111.                 }
  112.                 else
  113.                 {
  114.                     ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,""COL_WHITE"Login",""COL_RED"Ukucali ste pogresnu sifru.\n"COL_WHITE"Ukucajte sifru kako bi se ulogovali.","Login","Izadji");
  115.                 }
  116.                 return 1;
  117.             }
  118.         }
  119.     }
  120.     return 1;
  121. }
  122. //////////// SACUVA IGRACEVE PODATKE KADA IZADJE SA SERVERA /////////////
  123. public OnPlayerDisconnect(playerid, reason)
  124. {
  125.     new INI:File = INI_Open(UserPath(playerid));
  126.     INI_SetTag(File,"data");
  127.     INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
  128.     INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
  129.     INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
  130.     INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
  131.     INI_Close(File);
  132.     return 1;
  133. }
  134. ///////////////////////////kada igrac umre doda mu Smrt u scriptfiles korisnici/////////////////
  135. public OnPlayerDeath(playerid, killerid, reason)
  136. {
  137.     PlayerInfo[killerid][pKills]++;
  138.     PlayerInfo[playerid][pDeaths]++;
  139.     return 1;
  140. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement