Guest User

Untitled

a guest
Dec 3rd, 2011
654
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 6.33 KB | None | 0 0
  1. #include <a_samp>
  2. #include <ZCMD>
  3. #include <sscanf2>
  4. #include <dini>
  5.  
  6. #define COLOR_GREY 0xAFAFAFAA
  7. #define COLOR_LIGHTRED 0xFF6347AA
  8.  
  9. new PKicks[MAX_PLAYERS], PWarns[MAX_PLAYERS], PBanned[MAX_PLAYERS],
  10. PBanReason[MAX_PLAYERS][50];
  11.  
  12. CMD:kick(playerid,params[])
  13. {
  14.     new string[256],id,name[10],reason[50];
  15.     if(sscanf(params,"us[10]s[50]",id,name,reason))
  16.         return SendClientMessage(playerid,COLOR_GREY,"[SYNTAX]:/kick [ID/PartOfName] [Shown Name] [Reason]");
  17.     if(!IsPlayerConnected(id) || id == INVALID_PLAYER_ID)
  18.         return SendClientMessage(playerid,COLOR_GREY,"INVALID PLAYERID!");
  19.     format(string, sizeof(string), "SERVER: %s have been kicked by %s, reason: %s.",pName(id),name,reason);
  20.     SendClientMessageToAll(COLOR_LIGHTRED,string);
  21.     PKicks[id]++;
  22.     Kick(playerid);
  23.     return 1;
  24. }
  25.  
  26. CMD:warn(playerid,params[])
  27. {
  28.     new string[256],id,name[10],reason[50];
  29.     if(sscanf(params,"us[10]s[50]",id,name,reason))
  30.         return SendClientMessage(playerid,COLOR_GREY,"[SYNTAX]:/warn [ID/PartOfName] [Shown Name] [Reason]");
  31.     if(!IsPlayerConnected(id) || id == INVALID_PLAYER_ID)
  32.         return SendClientMessage(playerid,COLOR_GREY,"INVALID PLAYERID!");
  33.     if(PWarns[id] > 2) {
  34.         format(string, sizeof(string), "SERVER: %s have been banned by %s, reason: 3 Warnings.",pName(id),name,reason);
  35.         SendClientMessageToAll(COLOR_LIGHTRED,string);
  36.         PBanned[id] = 1;
  37.         format(PBanReason[playerid],128,"%s","3 Warnings");
  38.         BanEx(id,"3 Warnings");
  39.         return 0;
  40.     }
  41.     format(string, sizeof(string), "SERVER: %s have been warned by %s, reason: %s.",pName(id),name,reason);
  42.     SendClientMessageToAll(COLOR_LIGHTRED,string);
  43.     PWarns[playerid]++;
  44.     return 1;
  45. }
  46.  
  47. CMD:unwarn(playerid,params[])
  48. {
  49.     new string[256],id,name[10],reason[50];
  50.     if(sscanf(params,"us[10]s[50]",id,name,reason))
  51.         return SendClientMessage(playerid,COLOR_GREY,"[SYNTAX]:/warn [ID/PartOfName] [Shown Name] [Reason]");
  52.     if(!IsPlayerConnected(id) || id == INVALID_PLAYER_ID)
  53.         return SendClientMessage(playerid,COLOR_GREY,"INVALID PLAYERID!");
  54.     if(!PWarns[id])
  55.         return SendClientMessage(playerid,COLOR_GREY,"This player have no warnings!");
  56.     format(string, sizeof(string), "SERVER: %s have been unwarned by %s, reason: %s.",pName(id),name,reason);
  57.     SendClientMessageToAll(COLOR_LIGHTRED,string);
  58.     PWarns[playerid]--;
  59.     return 1;
  60. }
  61.  
  62. CMD:ban(playerid,params[])
  63. {
  64.     new string[256],id,name[10],reason[50];
  65.     if(sscanf(params,"us[10]s[50]",id,name,reason))
  66.         return SendClientMessage(playerid,COLOR_GREY,"[SYNTAX]:/ban [ID/PartOfName] [Shown Name] [Reason]");
  67.     if(!IsPlayerConnected(id) || id == INVALID_PLAYER_ID)
  68.         return SendClientMessage(playerid,COLOR_GREY,"INVALID PLAYERID!");
  69.     format(string, sizeof(string), "SERVER: %s have been banned by %s, reason: %s.",pName(id),name,reason);
  70.     SendClientMessageToAll(COLOR_LIGHTRED,string);
  71.     format(PBanReason[playerid],128,"%s",reason);
  72.     PBanned[id] = 1;
  73.     BanEx(id,reason);
  74.     return 1;
  75. }
  76.  
  77. CMD:unban(playerid,params[])
  78. {
  79.     new string[256],name[MAX_PLAYER_NAME],file[MAX_PLAYER_NAME+5];
  80.     if(sscanf(params,"s[MAX_PLAYER_NAME]",name))
  81.         return SendClientMessage(playerid,COLOR_GREY,"[SYNTAX]:/unban [PlayerName]");
  82.     format(file,sizeof(file),"%s.ini",name);
  83.     if(!dini_Exists(file))
  84.         return SendClientMessage(playerid,COLOR_GREY,"Player file not exists!");
  85.     if(!dini_Int(file,"Banned"))
  86.         return SendClientMessage(playerid,COLOR_GREY,"This player is not banned!");
  87.     dini_IntSet(file,"Banned",0);
  88.     dini_Set(file,"BanReason","None");
  89.     format(string, sizeof(string), "SERVER: %s have been unbanned.",name);
  90.     SendClientMessage(playerid,COLOR_LIGHTRED,string);
  91.     return 1;
  92. }
  93.  
  94. CMD:playerstats(playerid,params[])
  95. {
  96.     new string[256],id;
  97.     if(sscanf(params,"u",id))
  98.         return SendClientMessage(playerid,COLOR_GREY,"[SYNTAX]:/playerstats [ID/PartOfName]");
  99.     if(!IsPlayerConnected(id) || id == INVALID_PLAYER_ID)
  100.         return SendClientMessage(playerid,COLOR_GREY,"INVALID PLAYERID!");
  101.     format(string,sizeof(string),"|| Name: %s. || Warnings: %d. || Kicks: %d.",pName(id),PWarns[playerid],PKicks[playerid]);
  102.     SendClientMessage(playerid,COLOR_LIGHTRED,string);
  103.     return 1;
  104. }
  105.  
  106. CMD:playerstats2(playerid,params[])
  107. {
  108.     new string[256],name[MAX_PLAYER_NAME];
  109.     if(sscanf(params,"s[MAX_PLAYER_NAME]",name))
  110.         return SendClientMessage(playerid,COLOR_GREY,"[SYNTAX]:/playerstats2 [Name]");
  111.     new file[MAX_PLAYER_NAME+5];
  112.     format(file,sizeof(file),"%s.ini",name);
  113.     if(!dini_Exists(file))
  114.         return SendClientMessage(playerid,COLOR_GREY,"Player file not exists!");
  115.     format(string,sizeof(string),"|| Name: %s. || Warnings: %d. || Kicks: %d. || Banned: %d. || BanReason: %s.",name,dini_Int(file,"Warnings"),dini_Int(file,"Kicks"),dini_Int(file,"Banned"),dini_Get(file,"BanReason"));
  116.     SendClientMessage(playerid,COLOR_LIGHTRED,string);
  117.     return 1;
  118. }
  119.  
  120. public OnPlayerConnect(playerid)
  121. {
  122.     format(PBanReason[playerid],50,"%s","None");
  123.     PBanned[playerid] = 0;
  124.     PKicks[playerid] = 0;
  125.     PWarns[playerid] = 0;
  126.    
  127.     if(!dini_Exists(pFile(playerid))) {
  128.         dini_Create(pFile(playerid));
  129.         dini_IntSet(pFile(playerid),"Banned",PBanned[playerid]);
  130.         dini_Set(pFile(playerid),"BanReason","None");
  131.         dini_IntSet(pFile(playerid),"Kicks",PKicks[playerid]);
  132.         dini_IntSet(pFile(playerid),"Warnings",PWarns[playerid]);
  133.     } else {
  134.         PBanned[playerid] = dini_Int(pFile(playerid),"Banned");
  135.         format(PBanReason[playerid],50,"%s",dini_Get(pFile(playerid),"BanReason"));
  136.         PKicks[playerid] = dini_Int(pFile(playerid),"Kicks");
  137.         PWarns[playerid] = dini_Int(pFile(playerid),"Warnings");
  138.        
  139.         if(PBanned[playerid] != 0) {
  140.             new string[256];
  141.             format(string,sizeof(string),"SERVER: You are banned from this server, reason: %s.",PBanReason[playerid]);
  142.             SendClientMessage(playerid,COLOR_LIGHTRED,string);
  143.             Kick(playerid);
  144.             return 0;
  145.         }
  146.     }
  147.     return 1;
  148. }
  149.  
  150. public OnPlayerDisconnect(playerid, reason)
  151. {
  152.     if(dini_Exists(pFile(playerid))) {
  153.         dini_IntSet(pFile(playerid),"Banned",PBanned[playerid]);
  154.         dini_Set(pFile(playerid),"BanReason",PBanReason[playerid]);
  155.         dini_IntSet(pFile(playerid),"Kicks",PKicks[playerid]);
  156.         dini_IntSet(pFile(playerid),"Warnings",PWarns[playerid]);
  157.     }
  158.     return 1;
  159. }
  160.  
  161.  
  162. stock pName(playerid) {
  163.     new name[MAX_PLAYER_NAME];
  164.     GetPlayerName(playerid, name, sizeof(name));
  165.     return name;
  166. }
  167.  
  168. stock pFile(playerid) {
  169.     new file[MAX_PLAYER_NAME+5];
  170.     format(file,sizeof(file),"%s.ini",pName(playerid));
  171.     return file;
  172. }
  173.  
Advertisement
Add Comment
Please, Sign In to add comment