Guest User

Untitled

a guest
Nov 30th, 2011
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 4.26 KB | None | 0 0
  1. #include <a_samp>
  2. #include <Dini>
  3. #include <dudb>
  4.  
  5. enum pInfo
  6. {
  7.     pAdmin,
  8.     pCash,
  9.     pScore,
  10.     gTeam,
  11.     pSkin
  12. }
  13.  
  14. new request[MAX_PLAYERS];
  15. new PlayerInfo[MAX_PLAYERS][pInfo];
  16. new gPlayerLogged[MAX_PLAYERS];
  17. #define SERVER_USER_FILE "users/%s.ini"
  18.  
  19. public OnPlayerConnect(playerid)
  20. {
  21.     gPlayerLogged[playerid] = 0;
  22.     new name[MAX_PLAYER_NAME], file[256];
  23.     GetPlayerName(playerid, name, sizeof(name));
  24.     format(file, sizeof(file), SERVER_USER_FILE, name);
  25.     if (!dini_Exists(file))
  26.     {
  27.         ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Register", "Welcome, Please type in a desired password below!", "Register", "Leave");
  28.     }
  29.     if(fexist(file))
  30.     {
  31.         ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Welcome Back!", "Please type your password below to continue!", "Login", "Leave");
  32.     }
  33.     return 1;
  34. }
  35.  
  36. public OnPlayerDisconnect(playerid, reason)
  37. {
  38.     new name[MAX_PLAYER_NAME];
  39.     new file[25];
  40.     format(file, sizeof(file), "%s.ini",GetPlayerName(playerid,name,sizeof(name)));
  41.     if(!fexist(file))
  42.     {
  43.         dini_Create(file);
  44.     }
  45.  
  46.     GetPlayerName(playerid, name, sizeof(name));
  47.     format(file, sizeof(file), SERVER_USER_FILE, name);
  48.     if(gPlayerLogged[playerid] == 1)
  49.     {
  50.         dini_IntSet(file, "Score", PlayerInfo[playerid][pScore]);
  51.         dini_IntSet(file, "Money", PlayerInfo[playerid][pCash]);
  52.         dini_IntSet(file, "AdminLevel", PlayerInfo[playerid][pAdmin]);
  53.         dini_IntSet(file, "Skin", PlayerInfo[playerid][pSkin]);
  54.         dini_IntSet(file, "team", PlayerInfo[playerid][gTeam]);
  55.     }
  56.     gPlayerLogged[playerid] = 0;
  57.     return 1;
  58. }
  59.  
  60. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  61. {
  62.     if (dialogid == 1)
  63.     {
  64.         new name[MAX_PLAYER_NAME], file[256], string[128];
  65.         GetPlayerName(playerid, name, sizeof(name));
  66.         format(file, sizeof(file), SERVER_USER_FILE, name);
  67.         if(!response) return Kick(playerid);
  68.         if (!strlen(inputtext)) return ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, "Register", "Welcome, Please type in a desired password below!", "Register", "Leave");
  69.         dini_Create(file);
  70.         dini_IntSet(file, "Password", udb_hash(inputtext));
  71.         dini_IntSet(file, "AdminLevel",PlayerInfo[playerid][pAdmin] = 0);
  72.         dini_IntSet(file, "Money",PlayerInfo[playerid][pCash] = 5000);
  73.         dini_IntSet(file, "Score",PlayerInfo[playerid][pScore] = 0);
  74.         dini_IntSet(file, "Team",PlayerInfo[playerid][gTeam] = 2);
  75.         format(string, 128, "[SYSTEM]: You succesfully registered the nickname %s with password %s, you have been auto logged in.", name, inputtext);
  76.         SendClientMessage(playerid, 0xFFFF00AA, string);
  77.         gPlayerLogged[playerid] = 1;
  78.     }
  79.     if (dialogid == 2)
  80.     {
  81.         new name[MAX_PLAYER_NAME], file[256];
  82.         GetPlayerName(playerid, name, sizeof(name));
  83.         format(file, sizeof(file), SERVER_USER_FILE, name);
  84.         if(!response) return Kick(playerid);
  85.         if (!strlen(inputtext)) return ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Welcome Back!", "Please type your password below to continue!", "Login", "Leave");
  86.         new tmp;
  87.         tmp = dini_Int(file, "Password");
  88.         if(udb_hash(inputtext) != tmp)
  89.         {
  90.             SendClientMessage(playerid, 0x00FFFFFF, "Invalid password!");
  91.             ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, "Welcome Back!", "Please type your password below to continue!", "Login", "Leave");
  92.         }
  93.         else
  94.         {
  95.             gPlayerLogged[playerid] = 1;
  96.             PlayerInfo[playerid][pAdmin] = dini_Int(file, "AdminLevel");
  97.             PlayerInfo[playerid][gTeam] = dini_Int(file, "Team");
  98.             SetPlayerScore(playerid, PlayerInfo[playerid][pScore]);
  99.             GivePlayerMoney(playerid, dini_Int(file, "Money")-GetPlayerMoney(playerid));
  100.             SendClientMessage(playerid,0x00FFFFFF, "[SYSTEM]: Successfully logged in!");
  101.             if(!dini_Exists(file))
  102.             {
  103.                 dini_Create(file);
  104.                 dini_IntSet(file, "Score", 0);
  105.                 dini_IntSet(file, "Money", 0);
  106.                 dini_IntSet(file, "Team", 2);
  107.                 SetPlayerScore(playerid, dini_Int(file, "Score"));
  108.                 SetPlayerMoney(playerid, dini_Int(file, "Money"));
  109.                 return 1;
  110.             }
  111.         }
  112.     }
  113.     return 0;
  114. }
Advertisement
Add Comment
Please, Sign In to add comment