muHamad-asYraf-aKmal

Register, Login, Admin & Vip Sa-mp Script

Sep 4th, 2014
828
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 4.92 KB | None | 0 0
  1. // Register, Login, Admin & Vip by [Asy]Akmal //
  2. // The Original Filterscript
  3.  
  4. #include <a_samp>
  5. #include <dini>
  6. #include <dudb>
  7. #include <zcmd>
  8.  
  9. #pragma unused ret_memcpy
  10.  
  11. enum pInfo
  12. {
  13.     pAdmin,
  14.     pVip,
  15.     pCash,
  16.     pScore,
  17. }
  18. new PlayerInfo[MAX_PLAYERS][pInfo];
  19. new gPlayerLogged[MAX_PLAYERS];
  20.  
  21. #define SERVER_USER_FILE "players/%s.ini" // Create new folder name 'players' in scriptfiles
  22.  
  23. #define DIALOG_REGISTER 1000
  24. #define DIALOG_LOGIN 1001
  25.  
  26. public OnFilterScriptInit()
  27. {
  28.         print("\n------------------------------------------");
  29.         print(" Register, Login, Admin & Vip by [Asy]Akmal ");
  30.         print("------------------------------------------\n");
  31.         return 1;
  32. }
  33.  
  34. public OnFilterScriptExit()
  35. {
  36.         return 1;
  37. }
  38.  
  39. public OnPlayerConnect(playerid)
  40. {
  41.     gPlayerLogged[playerid] = 0;
  42.     new name[MAX_PLAYER_NAME], file[256];
  43.     GetPlayerName(playerid, name, sizeof(name));
  44.     format(file, sizeof(file), SERVER_USER_FILE, name);
  45.     if (!dini_Exists(file))
  46.     {
  47.         ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Register", "{F3FF02}Welcome!\n{FFFFFF}Type your password below to register a new account.", "Register", "Leave");
  48.     }
  49.     if(fexist(file))
  50.     {
  51.         ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login", "{00FF00}You already register. {FFFFFF}Type your password below to login.", "Login", "Leave");
  52.     }
  53.     return 1;
  54. }
  55.  
  56. public OnPlayerDisconnect(playerid, reason)
  57. {
  58.     new name[MAX_PLAYER_NAME], file[256];
  59.     GetPlayerName(playerid, name, sizeof(name));
  60.     format(file, sizeof(file), SERVER_USER_FILE, name);
  61.     if(gPlayerLogged[playerid] == 1)
  62.     {
  63.         dini_IntSet(file, "Score", GetPlayerScore(playerid));
  64.         dini_IntSet(file, "Money", GetPlayerMoney(playerid));
  65.         dini_IntSet(file, "Admin",PlayerInfo[playerid][pAdmin]);
  66.         dini_IntSet(file, "Vip",PlayerInfo[playerid][pVip]);
  67.     }
  68.     gPlayerLogged[playerid] = 0;
  69.         return 1;
  70. }
  71.  
  72. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  73. {
  74.     if (dialogid == DIALOG_REGISTER)
  75.     {
  76.         new name[MAX_PLAYER_NAME], file[256], string[128];
  77.         GetPlayerName(playerid, name, sizeof(name));
  78.         format(file, sizeof(file), SERVER_USER_FILE, name);
  79.         if(!response) return Kick(playerid);
  80.         if (!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, "Register", "Welcome!\nType your password below to register a new account.", "Register", "Leave");
  81.         dini_Create(file);
  82.         dini_IntSet(file, "Password", udb_hash(inputtext));
  83.         dini_IntSet(file, "Admin",PlayerInfo[playerid][pAdmin] = 0);
  84.         dini_IntSet(file, "Vip",PlayerInfo[playerid][pVip] = 0);
  85.         dini_IntSet(file, "Money",PlayerInfo[playerid][pCash] = 500);
  86.         dini_IntSet(file, "Score",PlayerInfo[playerid][pScore] = 0);
  87.         format(string, 128, "You succesfully registered the nickname %s with password %s, you have been auto logged in.", name, inputtext);
  88.         SendClientMessage(playerid, 0xFFFF00AA, string);
  89.         gPlayerLogged[playerid] = 1;
  90.     }
  91.     if (dialogid == DIALOG_LOGIN)
  92.     {
  93.         new name[MAX_PLAYER_NAME], file[256];
  94.         GetPlayerName(playerid, name, sizeof(name));
  95.         format(file, sizeof(file), SERVER_USER_FILE, name);
  96.         if(!response) return Kick(playerid);
  97.         if (!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login", "Input your password below to login.", "Login", "Leave");
  98.         new tmp;
  99.         tmp = dini_Int(file, "Password");
  100.         if(udb_hash(inputtext) != tmp)
  101.         {
  102.             ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT, "Login", "{FF0000}Wrong password!\n{FFFFFF}Input your correctly password below to login.", "Login", "Leave");
  103.         }
  104.         else
  105.         {
  106.             gPlayerLogged[playerid] = 1;
  107.             PlayerInfo[playerid][pAdmin] = dini_Int(file, "Admin");
  108.             PlayerInfo[playerid][pVip] = dini_Int(file, "Vip");
  109.             SetPlayerScore(playerid, PlayerInfo[playerid][pScore]);
  110.             SetPlayerMoney(playerid, PlayerInfo[playerid][pCash]);
  111.             SendClientMessage(playerid, 0xFFFF00AA, "You have successfully logged in!");
  112.         }
  113.     }
  114.     return 1;
  115. }
  116.  
  117. // Suggestion command for player '/suggest'
  118.  
  119. COMMAND:suggest(playerid, params[])
  120. {
  121.     if(isnull(params)) return SendClientMessage(playerid, 0xFF0000AA, "#Syntax /suggest [suggestion]");
  122.  
  123.     new
  124.         save_msg[ 128 ],
  125.         player_name[ MAX_PLAYER_NAME ];
  126.  
  127.     GetPlayerName( playerid, player_name, MAX_PLAYER_NAME );
  128.     SendClientMessage(playerid, 0xFFFF00AA, "Your suggesttion have been send, thank you");
  129.     format( save_msg, sizeof ( save_msg ), "%s suggested: %s\r\n", player_name, params );
  130.     new File: fileToWrite = fopen("suggestions.txt", io_append);
  131.     fwrite(fileToWrite, save_msg);
  132.     fclose(fileToWrite);
  133.     return true;
  134. }
Advertisement
Add Comment
Please, Sign In to add comment