Guest User

Untitled

a guest
Mar 14th, 2011
134
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 4.05 KB | None | 0 0
  1. #include <a_samp>
  2. #include <dini>
  3. #include <dudb>
  4.  
  5. #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
  6.  
  7. new logged[MAX_PLAYERS];
  8.  
  9. enum pInfo
  10. {
  11.     AdminLevel,
  12.     cash,
  13.     score,
  14. }
  15.  
  16. new PlayerInfo[MAX_PLAYERS][pInfo];
  17.  
  18.  
  19. #if defined FILTERSCRIPT
  20.  
  21. public OnFilterScriptInit()
  22. {
  23.     print("\n--------------------------------------");
  24.     print(" Blank Filterscript by your name here");
  25.     print("--------------------------------------\n");
  26.     return 1;
  27. }
  28.  
  29.  
  30. #endif
  31.  
  32.  
  33. public OnPlayerConnect(playerid)
  34. {
  35.     new name[MAX_PLAYER_NAME];
  36.     new file[128];
  37.     GetPlayerName(playerid, name, sizeof(name));
  38.     format(file,sizeof(file),"/Users/%s.ini",name);
  39.     if(!fexist(file))
  40.     {
  41.     SendClientMessage(playerid, 0xFFFF00AA, "You're not registered, Type /Register (Password).. To get started!");
  42.     logged[playerid] = 0;
  43.     }
  44.     if(fexist(file))
  45.     {
  46.     SendClientMessage(playerid, 0xFFFF00AA, "You're registered, Type /Login (Password.. To continue your account!");
  47.     }
  48.     return 1;
  49. }
  50.  
  51. public OnPlayerDisconnect(playerid, reason)
  52. {
  53.     new file[128];
  54.     new name[MAX_PLAYER_NAME];
  55.     GetPlayerName(playerid, name, sizeof(name));
  56.     format(file,sizeof(file),"/Users/%s.ini",name);
  57.     if(dini_Exists(file))
  58.     {
  59.     dini_IntSet(file, "score", PlayerInfo[playerid][score]);
  60.     dini_IntSet(file, "money", PlayerInfo[playerid][cash]);
  61.     dini_IntSet(file, "AdminLevel",PlayerInfo[playerid][AdminLevel]);
  62.     }
  63.     logged[playerid] = 0;
  64.     return 1;
  65. }
  66.  
  67.  
  68. public OnPlayerCommandText(playerid, cmdtext[])
  69. {
  70.     dcmd(register, 8, cmdtext);
  71.     dcmd(login, 5, cmdtext);
  72.     return 0;
  73. }
  74.  
  75. //Dcmd Commands
  76.  
  77. dcmd_register(playerid, params[])
  78. {
  79.   new file[128], pname[MAX_PLAYER_NAME];
  80.   GetPlayerName(playerid, pname, sizeof(pname));
  81.   format(file, sizeof(file), "\\Users\\%s.ini", pname);
  82.   if(!strlen(params)) return SendClientMessage(playerid, 0xFFFF00AA, "Error:- /Register (Password.. To get an account!");
  83.   if(dini_Exists(file)) return SendClientMessage(playerid, 0xFFFF00AA, "Error:- You're username is already registered!");
  84.   dini_Create(file);
  85.   dini_IntSet(file, "hashPW", udb_hash(params));
  86.   dini_Set(file, "password", params);
  87.   dini_IntSet(file, "AdminLevel",PlayerInfo[playerid][AdminLevel] = 0);
  88.   dini_IntSet(file, "score", PlayerInfo[playerid][score] = 0);
  89.   dini_IntSet(file, "money", PlayerInfo[playerid][cash] = 500);
  90.   new string[128];
  91.   format(string, 128, "You have succesfully registered the nickname %s with password %s!", pname, params);
  92.   SendClientMessage(playerid, 0xFFFF00AA, string);
  93.   logged[playerid] = 1;
  94.   SendClientMessage(playerid, 0xFFFF00AA, "You have been automatically logged in!");
  95.   return 1;
  96. }
  97.  
  98. dcmd_login(playerid, params[])
  99. {
  100.   new file[128];
  101.   new string[MAX_STRING], pname[MAX_PLAYER_NAME];
  102.   GetPlayerName(playerid, pname, sizeof(pname));
  103.   format(file, sizeof(file), "\\Users\\%s.ini", pname);
  104.   if(!strlen(params)) return SendClientMessage(playerid, 0xFFFF00AA, "Error:- /Login (Password).. To continue!");
  105.   if(!dini_Exists(file)) return SendClientMessage(playerid, 0xFFFF00AA, "You're account is not registered, So it cannot be logged in.. Try Registering with /Register (Password!");
  106.   if(logged[playerid]) return SendClientMessage(playerid, 0xFFFF00AA, "You are already logged in!");
  107.   new tmp;
  108.   tmp = dini_Int(file, "hashPW");
  109.   if(udb_hash(params) != tmp)
  110.   {
  111.     format(string, 256, "You specified the wrong password for %s!", pname);
  112.     SendClientMessage(playerid, 0xFFFF00AA, string);
  113.   }
  114.   else
  115.   {
  116.     logged[playerid] = 1;
  117.     PlayerInfo[playerid][AdminLevel] = dini_Int(file, "AdminLevel");
  118.     SetPlayerScore(playerid, PlayerInfo[playerid][score]);
  119.     new lebel = PlayerInfo[playerid][AdminLevel];
  120.     GivePlayerMoney(playerid, dini_Int(file, "money")-GetPlayerMoney(playerid));
  121.     format(string, 256, "Successfully logged in! (level: %d)!", lebel);
  122.     SendClientMessage(playerid, 0xFFFF00AA, string);
  123.     printf("%s (%i) logged in with password %s", pname, playerid, params);
  124.   }
  125.   return 1;}
Advertisement
Add Comment
Please, Sign In to add comment