ZiPoNz

LRZ System V1 Hebrew

Feb 22nd, 2012
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 9.44 KB | None | 0 0
  1. #include "a_samp"
  2. #include "dini"
  3. #include "dutils"
  4.  
  5. #define Register 500
  6. #define Login 501
  7. #define MaxTimesInvalidPass 3
  8. #define Spawn_Money 800
  9.  
  10. enum MyInfo
  11. {
  12.     Kills,
  13.     Deaths,
  14.     Bank,
  15.    
  16.     bool:Logged,
  17.     InvalidPassword
  18. }
  19. new Player[MAX_PLAYERS][MyInfo];
  20.  
  21. public OnPlayerConnect(playerid)
  22. {
  23.     Player[playerid][Kills] = 0;
  24.     Player[playerid][Deaths] = 0;
  25.     Player[playerid][Bank] = 0;
  26.     Player[playerid][InvalidPassword] = 0;
  27.     Player[playerid][Logged] = false;
  28.     return true;
  29. }
  30. public OnPlayerRequestClass(playerid,classid)
  31. {
  32.     new string[256];
  33.     if(!Player[playerid][Logged])
  34.     {
  35.         if(!dini_Exists(CheckFile(playerid)))
  36.         {
  37.             format(string, 256, "!áøåê äáà ,%s ùìåí\n\r.àéðê ðøùîú ìîòøëú\n\r.àðà øùåí àú ñéñîúê äçãùä\n\r.ZiPoNz îòøëú ääøùîä åääúçáøåú ðåöøä òì éãé", CheckName(playerid));
  38.             ShowPlayerDialog(playerid, Register, DIALOG_STYLE_INPUT, "!áøåê äáà ìùøú", string, "äøùí", "");
  39.         }
  40.         else
  41.         {
  42.             format(string, 256, "!áøåê ùåáê ,%s ùìåí\n\r.àúä ëáø ðøùîú ìùøú\n\r.àðà øùåí àú ñéñîúê äðåëçéú\n\r.ZiPoNz îòøëú ääøùîä åääúçáøåú ðåöøä òì éãé", CheckName(playerid));
  43.             ShowPlayerDialog(playerid, Login, DIALOG_STYLE_PASSWORD, "!áøåê ùåáê ìùøú", string, "äúçáø", "");
  44.         }
  45.     }
  46.     return true;
  47. }
  48.  
  49. public OnPlayerRequestSpawn(playerid)
  50. {
  51.     new string[256];
  52.     if(!Player[playerid][Logged])
  53.     {
  54.         if(!dini_Exists(CheckFile(playerid)))
  55.         {
  56.             format(string, 256, "!áøåê äáà ,%s ùìåí\n\r.àéðê ðøùîú ìîòøëú\n\r.àðà øùåí àú ñéñîúê äçãùä\n\r.ZiPoNz îòøëú ääøùîä åääúçáøåú ðåöøä òì éãé", CheckName(playerid));
  57.             ShowPlayerDialog(playerid, Register, DIALOG_STYLE_INPUT, "!áøåê äáà ìùøú", string, "äøùí", "");
  58.         }
  59.         else
  60.         {
  61.             format(string, 256, "!áøåê ùåáê ,%s ùìåí\n\r.àúä ëáø ðøùîú ìùøú\n\r.àðà øùåí àú ñéñîúê äðåëçéú\n\r.ZiPoNz îòøëú ääøùîä åääúçáøåú ðåöøä òì éãé", CheckName(playerid));
  62.             ShowPlayerDialog(playerid, Login, DIALOG_STYLE_PASSWORD, "!áøåê ùåáê ìùøú", string, "äúçáø", "");
  63.         }
  64.     }
  65.     return 1;
  66. }
  67.  
  68. public OnPlayerDisconnect(playerid, reason)
  69. {
  70.     dini_IntSet(CheckFile(playerid), "Kills", Player[playerid][Kills]);
  71.     dini_IntSet(CheckFile(playerid), "Deaths", Player[playerid][Deaths]);
  72.     dini_IntSet(CheckFile(playerid), "Bank", Player[playerid][Bank]);
  73.     return true;
  74. }
  75.  
  76. public OnPlayerSpawn(playerid)
  77. {
  78.     ResetPlayerMoney(playerid);
  79.     GivePlayerMoney(playerid, Spawn_Money);
  80.     return true;
  81. }
  82.  
  83. public OnPlayerDeath(playerid, killerid, reason)
  84. {
  85.     SendDeathMessage(killerid, playerid, reason);
  86.     if(killerid != INVALID_PLAYER_ID)
  87.     {
  88.         Player[killerid][Kills]++;
  89.         Player[playerid][Deaths]++;
  90.        
  91.         GivePlayerMoney(killerid, GetPlayerMoney(playerid));
  92.     }
  93.     return true;
  94. }
  95.  
  96. public OnPlayerCommandText(playerid, cmdtext[])
  97. {
  98.     if(!Player[playerid][Logged]) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .àéðê îçåáø ìùøú");
  99.  
  100.     new cmd[256], idx;
  101.     cmd = strtok(cmdtext, idx);
  102.    
  103.     if(!strcmp(cmd, "/changepassword", true))
  104.     {
  105.         cmd = strtok(cmdtext, idx);
  106.         if(strlen(cmd) < 5) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .àðà øùåí îòì ì 5 úååéí");
  107.  
  108.         dini_Set(CheckFile(playerid), "Password", cmd);
  109.         return SendClientMessage(playerid, 0xFFFFFF00, "[System] .äéðê òøëú àú ñéñîúê");
  110.     }
  111.     if(!strcmp(cmdtext, "/stats", true))
  112.     {
  113.         new ip[17], string[256];
  114.         GetPlayerIp(playerid, ip, 17);
  115.         format(string, 256, ".%s :äñèèéñèé÷åú ùì", CheckName(playerid));
  116.         SendClientMessage(playerid, 0xFFFFFF00, string);
  117.         format(string, 256, "äøéâåú: %d - îéúåú: %d - îöá äáð÷: %d - äàééôé: %s", 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] ./bank teleport àéðê ðîöà ááð÷, àðà äùúâø ìáð÷ áô÷åãä");
  128.             cmd = strtok(cmdtext, idx);
  129.             if(Player[playerid][Bank] < strval(cmd)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .àéï ìê ñëåí æä");
  130.             if(!IsNumeric(cmd) || !strval(cmd)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .àðà øùåí îñôøéí îòì äîñôø 1");
  131.             GivePlayerMoney(playerid, strval(cmd));
  132.             Player[playerid][Bank] -= strval(cmd);
  133.             format(string, 256, "[System] àúä äåöàú îäáð÷ %d ãåìøéí, ðùàø ìê áçùáåï òåã %d.", 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] ./bank teleport àéðê ðîöà ááð÷, àðà äùúâø ìáð÷ áô÷åãä");
  139.             cmd = strtok(cmdtext, idx);
  140.             if(GetPlayerMoney(playerid) < strval(cmd)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .àéï ìê ñëåí æä");
  141.             if(!IsNumeric(cmd) || !strval(cmd)) return SendClientMessage(playerid, 0xFFFFFF00, "[Error] .àðà øùåí îñôøéí îòì äîñôø 1");
  142.             GivePlayerMoney(playerid, -strval(cmd));
  143.             Player[playerid][Bank] += strval(cmd);
  144.             format(string, 256, "[System] äéðê ùîú ááð÷ %d ãåìøéí, éù ìê ëòú áçùáåï äáð÷ %d.", 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] ./bank teleport àéðê ðîöà ááð÷, àðà äùúâø ìáð÷ áô÷åãä");
  150.             format(string, 256, "[System] .éù ìê áçùáåï äáð÷ %d ãåìøéí", 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, "[System] .äùúâøú ìáð÷");
  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, "!áøåê äáà ìùøú", "!ùìåí, áøåê äáà\n\r.àéðê øùåí ìùøú æä\n\r.àðà øùåí àú äñéñîà äçãùä ùìê\n\r\n\r.àðà úøùåí úååéí ðåñôéí ìñéñîà", "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 ðøùí ìùøú áäöìçä.", 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, ".(äéðê ÷éáìú ÷é÷ òì îéøá äðñéåðåú ääúçáøåú ùëùìå (3 ôòîéí");
  194.                     Kick(playerid);
  195.                 }
  196.                 format(string, 256, "!áøåê ùåáê ,%s ùìåí\n\r.àúä ëáø ðøùîú ìùøú\n\r.àðà øùåí àú ñéñîúê äðåëçéú\n\r\n\r.øùîú ëáø %d/3 ôòîéí ñéñîà ùâåéä", CheckName(playerid),Player[playerid][InvalidPassword]);
  197.                 ShowPlayerDialog(playerid, Login, DIALOG_STYLE_PASSWORD, "!áøåê ùåáê ìùøú", string, "äúçáø", "");
  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 äúçáø ìùøú.", 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