ZiPoNz

LRZ System V1 English

Feb 22nd, 2012
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 8.76 KB | None | 0 0
  1. //Version 1, by ZiPoNz - LRZ System - ENG.
  2.  
  3. #include "a_samp"
  4. #include "dini"
  5. #include "dutils"
  6.  
  7. #define Register 500
  8. #define Login 501
  9. #define MaxTimesInvalidPass 3
  10. #define Spawn_Money 800
  11.  
  12. enum MyInfo
  13. {
  14.     Kills,
  15.     Deaths,
  16.     Bank,
  17.    
  18.     bool:Logged,
  19.     InvalidPassword
  20. }
  21. new Player[MAX_PLAYERS][MyInfo];
  22.  
  23. public OnPlayerConnect(playerid)
  24. {
  25.     Player[playerid][Kills] = 0;
  26.     Player[playerid][Deaths] = 0;
  27.     Player[playerid][Bank] = 0;
  28.     Player[playerid][InvalidPassword] = 0;
  29.     Player[playerid][Logged] = false;
  30.     return true;
  31. }
  32. public OnPlayerRequestClass(playerid,classid)
  33. {
  34.     new string[256];
  35.     if(!Player[playerid][Logged])
  36.     {
  37.         if(!dini_Exists(CheckFile(playerid)))
  38.         {
  39.             format(string, 256, "Hello %s, welcome!\n\rYour'e not registered.\n\rPlease write your new password.\n\rThe login-register system created by ZiPoNz.", CheckName(playerid));
  40.             ShowPlayerDialog(playerid, Register, DIALOG_STYLE_INPUT, "Welcome to the server!", string, "Register", "");
  41.         }
  42.         else
  43.         {
  44.             format(string, 256, "Hello %s, welcome back!\n\rYour'e already registered.\n\rPlease write your current password.\n\rThe login-register system created by ZiPoNz.", CheckName(playerid));
  45.             ShowPlayerDialog(playerid, Login, DIALOG_STYLE_PASSWORD, "Welcome to the server!", string, "Login", "");
  46.         }
  47.     }
  48.     return true;
  49. }
  50.  
  51. public OnPlayerRequestSpawn(playerid)
  52. {
  53.     new string[256];
  54.     if(!Player[playerid][Logged])
  55.     {
  56.         if(!dini_Exists(CheckFile(playerid)))
  57.         {
  58.             format(string, 256, "Hello %s, welcome!\n\rYour'e not registered.\n\rPlease write your new password.\n\rThe login-register system created by ZiPoNz.", CheckName(playerid));
  59.             ShowPlayerDialog(playerid, Register, DIALOG_STYLE_INPUT, "Welcome to the server!", string, "Register", "");
  60.         }
  61.         else
  62.         {
  63.             format(string, 256, "Hello %s, welcome back!\n\rYour'e already registered.\n\rPlease write your current password.\n\rThe login-register system created by ZiPoNz.", CheckName(playerid));
  64.             ShowPlayerDialog(playerid, Login, DIALOG_STYLE_PASSWORD, "Welcome to the server!", string, "Login", "");
  65.         }
  66.         return 0;
  67.     }
  68.     return 1;
  69. }
  70.  
  71. public OnPlayerDisconnect(playerid, reason)
  72. {
  73.     dini_IntSet(CheckFile(playerid), "Kills", Player[playerid][Kills]);
  74.     dini_IntSet(CheckFile(playerid), "Deaths", Player[playerid][Deaths]);
  75.     dini_IntSet(CheckFile(playerid), "Bank", Player[playerid][Bank]);
  76.     return true;
  77. }
  78.  
  79. public OnPlayerSpawn(playerid)
  80. {
  81.     ResetPlayerMoney(playerid);
  82.     GivePlayerMoney(playerid, Spawn_Money);
  83.     return true;
  84. }
  85.  
  86. public OnPlayerDeath(playerid, killerid, reason)
  87. {
  88.     SendDeathMessage(killerid, playerid, reason);
  89.     if(killerid != INVALID_PLAYER_ID)
  90.     {
  91.         Player[killerid][Kills]++;
  92.         Player[playerid][Deaths]++;
  93.        
  94.         GivePlayerMoney(killerid, GetPlayerMoney(playerid));
  95.     }
  96.     return true;
  97. }
  98.  
  99. public OnPlayerCommandText(playerid, cmdtext[])
  100. {
  101.     new cmd[256], idx;
  102.     cmd = strtok(cmdtext, idx);
  103.     if(!strcmp(cmd, "/changepassword", true))
  104.     {
  105.         cmd = strtok(cmdtext, idx);
  106.        
  107.         if(!Player[playerid][Logged]) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] You aren't logged in.");
  108.         if(strlen(cmd) < 5) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] Please write above 5 letters.");
  109.  
  110.         dini_Set(CheckFile(playerid), "Password", cmd);
  111.         return SendClientMessage(playerid, 0xFFFFFF00, "[System] You changed your password!");
  112.     }
  113.     if(!strcmp(cmdtext, "/stats", true))
  114.     {
  115.         new ip[17], string[256];
  116.         GetPlayerIp(playerid, ip, 17);
  117.         format(string, 256, "Name: %s - Kills: %d - Deaths: %d - Bank: %d - My IP: %s", CheckName(playerid), Player[playerid][Kills], Player[playerid][Deaths], Player[playerid][Bank], ip);
  118.         return SendClientMessage(playerid, 0xFFFFFF00, string);
  119.     }
  120.     if(!strcmp(cmd, "/bank", true))
  121.     {
  122.         new string[256];
  123.         cmd = strtok(cmdtext, idx);
  124.         if(!strlen(cmd)) return SendClientMessage(playerid, 0xFFFFFF00, "[Command] /bank [withdraw, deposit, balance]");
  125.         if(!strcmp(cmd, "withdraw", true))
  126.         {
  127.             if(!IsPlayerInRangeOfPoint(playerid, 50, -27.312299,-29.277599,1003.557250)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] You have to be in the bank, /bank teleport.");
  128.             cmd = strtok(cmdtext, idx);
  129.             if(Player[playerid][Bank] < strval(cmd)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] You don't have this amount.");
  130.             if(!IsNumeric(cmd) || !strval(cmd)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] Write numbers above the number 0.");
  131.             GivePlayerMoney(playerid, strval(cmd));
  132.             Player[playerid][Bank] -= strval(cmd);
  133.             format(string, 256, "[System] You took from your bank account: %d dollars, now you have in your bank: %d dollars.", strval(cmd), Player[playerid][Bank]);
  134.             return SendClientMessage(playerid, 0xFFFFFF00, string);
  135.         }
  136.         if(!strcmp(cmd, "deposit", true))
  137.         {
  138.             if(!IsPlayerInRangeOfPoint(playerid, 50, -27.312299,-29.277599,1003.557250)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] You have to be in the bank, /bank teleport.");
  139.             cmd = strtok(cmdtext, idx);
  140.             if(GetPlayerMoney(playerid) < strval(cmd)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] You don't have this amount.");
  141.             if(!IsNumeric(cmd) || !strval(cmd)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] Write numbers above the number 0.");
  142.             GivePlayerMoney(playerid, -strval(cmd));
  143.             Player[playerid][Bank] += strval(cmd);
  144.             format(string, 256, "[System] You set in your bank account: %d dollars, now you have in your bank: %d dollars.", strval(cmd), Player[playerid][Bank]);
  145.             return SendClientMessage(playerid, 0xFFFFFF00, string);
  146.         }
  147.         if(!strcmp(cmd, "status", true))
  148.         {
  149.             if(!IsPlayerInRangeOfPoint(playerid, 50, -27.312299,-29.277599,1003.557250)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] You have to be in the bank, /bank teleport.");
  150.             format(string, 256, "[System] You have in your bank: %d dollars.", Player[playerid][Bank]);
  151.             return SendClientMessage(playerid, 0xFFFFFF00, string);
  152.         }
  153.         if(!strcmp(cmd, "teleport", true))
  154.         {
  155.             SetPlayerPos(playerid, -27.312299,-29.277599,1003.557250);
  156.             SetPlayerInterior(playerid, 4);
  157.             return SendClientMessage(playerid, 0xFFFFFF00, "[Error] You teleported to the bank!");
  158.         }
  159.         return true;
  160.     }
  161.     return false;
  162. }
  163.  
  164. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  165. {
  166.     switch(dialogid)
  167.     {
  168.         case Register:
  169.         {
  170.             new string[256];
  171.             if(strlen(inputtext) < 5) return ShowPlayerDialog(playerid, Register, DIALOG_STYLE_INPUT, "Welcome to the server!", "Hello, welcome!\n\rYour'e not registered.\n\rPlease write your new password.\n\nPlease write more letters.", "Register", "");
  172.             dini_Create(CheckFile(playerid));
  173.             dini_Set(CheckFile(playerid), "Password", inputtext);
  174.             dini_IntSet(CheckFile(playerid), "Kills", 0);
  175.             dini_IntSet(CheckFile(playerid), "Deaths", 0);
  176.             dini_IntSet(CheckFile(playerid), "Bank", 0);
  177.            
  178.             Player[playerid][Kills] = dini_Int(CheckFile(playerid), "Kills");
  179.             Player[playerid][Deaths] = dini_Int(CheckFile(playerid), "Deaths");
  180.             Player[playerid][Bank] = dini_Int(CheckFile(playerid), "Bank");
  181.             Player[playerid][Logged] = true;
  182.             format(string, 256, "%s is registered in the the server.", CheckName(playerid));
  183.             SendClientMessageToAll(0xFFFFFF00, string);
  184.         }
  185.         case Login:
  186.         {
  187.             new string[256];
  188.            
  189.             if(strcmp(inputtext, dini_Get(CheckFile(playerid), "Password"), false) != 0)
  190.             {
  191.                 if(Player[playerid][InvalidPassword] == MaxTimesInvalidPass)
  192.                 {
  193.                     SendClientMessage(playerid, 0xFFFFFF00, "You kicked from the server, reason: Invalid password (3 times).");
  194.                     Kick(playerid);
  195.                 }
  196.                 format(string, 256, "Hello %s, welcome back!\n\rYour'e already registered.\n\rPlease write your current password.\n\nYou typed invalid password: %d/3 times.", CheckName(playerid),Player[playerid][InvalidPassword]);
  197.                 ShowPlayerDialog(playerid, Login, DIALOG_STYLE_PASSWORD, "Welcome to the server!", string, "Login", "");
  198.  
  199.                 Player[playerid][InvalidPassword]++;
  200.                 return true;
  201.             }
  202.             Player[playerid][Kills] = dini_Int(CheckFile(playerid), "Kills");
  203.             Player[playerid][Deaths] = dini_Int(CheckFile(playerid), "Deaths");
  204.             Player[playerid][Bank] = dini_Int(CheckFile(playerid), "Bank");
  205.             Player[playerid][Logged] = true;
  206.             format(string, 256, "%s is logged in to the server.", CheckName(playerid));
  207.             SendClientMessageToAll(0xFFFFFF00, string);
  208.         }
  209.     }
  210.     return true;
  211. }
  212.  
  213. stock CheckName(playerid)
  214. {
  215.     new name[24];
  216.     GetPlayerName(playerid, name, 24);
  217.     return name;
  218. }
  219. stock CheckFile(playerid)
  220. {
  221.     new file[64];
  222.     format(file, 64, "/Users/%s.ini", CheckName(playerid));
  223.     return file;
  224. }
  225. IsNumeric(const string[])
  226. {
  227.     for (new i = 0, j = strlen(string); i < j; i++)
  228.     {
  229.         if (string[i] > '9' || string[i] < '0') return false;
  230.     }
  231.     return true;
  232. }
Advertisement
Add Comment
Please, Sign In to add comment