Advertisement
Guest User

C-Admin (V2)

a guest
Aug 29th, 2012
189
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 30.06 KB | None | 0 0
  1. //==============================================================================
  2. //--------------------------------> C-Admin <-----------------------------------
  3. //-----------------------------------> By <-------------------------------------
  4. //------------------------------> C00K13M0N$73R <-------------------------------
  5. //==============================================================================
  6. //==============================================================================
  7. //--------------------------------> Includes <----------------------------------
  8. //==============================================================================
  9. #include <a_samp>
  10. #include <sscanf2>
  11. #include <YSI\y_ini>
  12. #include <zcmd>
  13. #define invalid SendClientMessage(playerid,COLOR_RED,"ERROR:Invaild playerid");
  14. #define error SendClientMessage(playerid,COLOR_RED,"ERROR:You are not admin");
  15. #define DIALOG_REGISTER 2011
  16. #define DIALOG_LOGIN 2012
  17. #define ServerName " Your_Server_Name"
  18. #define UserPath "Users/%s.ini"
  19. //==============================================================================
  20. //---------------------------------> Other <------------------------------------
  21. //==============================================================================
  22. native WP_Hash(buffer[],len,const str[]);
  23. new muted[MAX_PLAYERS];
  24. new Float:x,Float:y,Float:z;
  25. new telex[MAX_PLAYERS];
  26. new teley[MAX_PLAYERS];
  27. new Duty[MAX_PLAYERS];
  28. new telez[MAX_PLAYERS];
  29. new specing[MAX_PLAYERS];
  30. new pWarns[MAX_PLAYERS];
  31. forward loadaccount_user(playerid, name[], value[]);
  32. enum PlayerInfo
  33. {
  34.     Pass[129],
  35.     Admin,
  36.     Vip,
  37.     Money,
  38.     Scores,
  39.     Kills,
  40.     Deaths,
  41.     Rep
  42. }
  43. new pInfo[MAX_PLAYERS][PlayerInfo];
  44. //==============================================================================
  45. //--------------------------------> Defines <-----------------------------------
  46. //==============================================================================
  47. #define COLOR_ORANGE 0xFFA500FF
  48. #define COLOR_LIMEGREEN 0x32CD32FF
  49. #define COLOR_ROYALBLUE 0x4169E1FF
  50. #define COLOR_SALMON 0xFA8072FF
  51. #define COLOR_GREY 0xAFAFAFAA
  52. #define COLOR_GREEN 0x33AA33AA
  53. #define COLOR_RED 0xAA3333AA
  54. #define COLOR_YELLOW 0xFFFF00AA
  55. #define COLOR_WHITE 0xFFFFFFAA
  56. #define COLOR_BLUE 0x0000BBAA
  57. #define COLOR_LIGHTBLUE 0x33CCFFAA
  58. #define COLOR_RED 0xAA3333AA
  59. //==============================================================================
  60. //---------------------------------> Stocks <-----------------------------------
  61. //==============================================================================
  62. stock GetName(playerid)
  63. {
  64.     new pName[MAX_PLAYER_NAME];
  65.     GetPlayerName(playerid, pName, MAX_PLAYER_NAME);
  66.     return pName;
  67. }
  68. stock Path(playerid)
  69. {
  70.     new str[128],name[MAX_PLAYER_NAME];
  71.     GetPlayerName(playerid,name,sizeof(name));
  72.     format(str,sizeof(str),UserPath,name);
  73.     return str;
  74. }
  75. stock SendMessageToAdmins(const string[])
  76. {
  77.     for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) == 1) if(pInfo[i][Admin] > 0) SendClientMessage(i, COLOR_GREY, string);
  78.     return 0;
  79. }
  80. stock SendMessageToVips(const string[])
  81. {
  82.     for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i) == 1) if(pInfo[i][Vip] > 0) SendClientMessage(i, -1, string);
  83.     return 1;
  84. }
  85. //==============================================================================
  86. //--------------------------------> Commands <----------------------------------
  87. //==============================================================================
  88. CMD:admins(playerid,params[])
  89. {
  90.     new string[128], bool:dfound = false, dcount = 0;
  91.     for(new i = 0; i < GetMaxPlayers(); i++) {
  92.         if(Duty[i] != 1) continue;
  93.  
  94.         if(dcount == 0) {
  95.             dfound = true; dcount += 1;
  96.             format(string, sizeof(string), "%s", GetName(i));
  97.         } else {
  98.             dcount += 1;
  99.             format(string, sizeof(string), "%s, %s", string, GetName(i));
  100.         }
  101.  
  102.         if(dcount == 6) {
  103.             dcount = 0;
  104.             SendClientMessage(playerid, -1, string);
  105.         }
  106.     }
  107.     if(dcount != 0) {
  108.         SendClientMessage(playerid, -1, string);
  109.     }
  110.     if(!dfound) {
  111.         SendClientMessage(playerid, -1, "No admins online");
  112.     }
  113.     return 1;
  114. }
  115.  
  116. CMD:report(playerid,params[])
  117. {
  118.     new user,string[124],oter[124],reason;
  119.     if(sscanf(params,"us[64]",user,reason)) return SendClientMessage(playerid,-1,"SYNTAX:/report [playerid] [reason]");
  120.     if(user == INVALID_PLAYER_ID) return invalid
  121.     format(string,sizeof(string),"Report:%s reported %s. Reason:%s.",GetName(playerid),GetName(user),reason);
  122.     SendMessageToAdmins(string);
  123.     format(oter,sizeof(oter),"You have reported %s. Admins will review your report shortly.",GetName(user));
  124.     SendClientMessage(playerid,-1,oter);
  125.     return 1;
  126. }
  127.  
  128. CMD:kick(playerid,params[])
  129. {
  130.     if(pInfo[playerid][Admin] < 1) return error
  131.     new user,reason,string[124],amsg[124];
  132.     if(sscanf(params,"us[64]",user,reason)) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"SYNTAX:/kick [playerid] [reason]");
  133.     if(user == INVALID_PLAYER_ID) return invalid
  134.     format(string,sizeof(string),"%s has been kicked by an admin. Reason %s",GetName(user),reason);
  135.     format(amsg,sizeof(amsg),"Admin %s has kicked %s",GetName(playerid),GetName(user));
  136.     SendMessageToAdmins(amsg);
  137.     print(amsg);
  138.     print(string);
  139.     SendClientMessageToAll(COLOR_BLUE,string);
  140.     Kick(user);
  141.     return 1;
  142. }
  143.  
  144. CMD:freeze(playerid,params[])
  145. {
  146.     if(pInfo[playerid][Admin] < 1) return error
  147.     new user,string[124],amsg[124];
  148.     if(sscanf(params,"u",user)) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"SYNTAX:/freeze [playerid]");
  149.     if(user == INVALID_PLAYER_ID) return invalid
  150.     format(string,sizeof(string),"%s has been frozen by an admin.",GetName(user));
  151.     print(string);
  152.     format(amsg,sizeof(amsg),"Admin %s has froze %s",GetName(playerid),GetName(user));
  153.     SendMessageToAdmins(amsg);
  154.     print(amsg);
  155.     SendClientMessageToAll(COLOR_BLUE,string);
  156.     TogglePlayerControllable(user,0);
  157.     return 1;
  158. }
  159.  
  160. CMD:unfreeze(playerid,params[])
  161. {
  162.     if(pInfo[playerid][Admin] < 1) return error
  163.     new user,string[124],amsg[124];
  164.     if(sscanf(params,"u",user)) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"SYNTAX:/unfreeze [playerid]");
  165.     if(user == INVALID_PLAYER_ID) return invalid
  166.     format(string,sizeof(string),"Server:%s has been unfrozen by an admin.",GetName(user));
  167.     SendClientMessageToAll(COLOR_BLUE,string);
  168.     format(amsg,sizeof(amsg),"Admin %s has unfroze %s",GetName(playerid),GetName(user));
  169.     SendMessageToAdmins(amsg);
  170.     print(amsg);
  171.     print(string);
  172.     return 1;
  173. }
  174.  
  175. CMD:mute(playerid,params[])
  176. {
  177.     if(pInfo[playerid][Admin] < 1) return error
  178.     new user,string[124],amsg[124];
  179.     if(sscanf(params,"u",user)) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"SYNTAX:/mute [playerid]");
  180.     if(user == INVALID_PLAYER_ID) return invalid
  181.     format(string,sizeof(string),"%s has been muted by an admin",GetName(user));
  182.     format(amsg,sizeof(amsg),"Admin %s has muted %s",GetName(playerid),GetName(user));
  183.     SendMessageToAdmins(amsg);
  184.     print(amsg);
  185.     SendClientMessageToAll(COLOR_BLUE,string);
  186.     print(string);
  187.     muted[user] = 1;
  188.     return 1;
  189. }
  190.  
  191. CMD:unmute(playerid,params[])
  192. {
  193.     if(pInfo[playerid][Admin] < 1) return error
  194.     new user,string[124],amsg[124];
  195.     if(sscanf(params,"u",user)) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"SYNTAX:/unmute [playerid]");
  196.     if(user == INVALID_PLAYER_ID) return invalid
  197.     format(string,sizeof(string),"%s has been unmuted by an admin",GetName(user));
  198.     SendClientMessageToAll(COLOR_BLUE,string);
  199.     format(amsg,sizeof(amsg),"Admin %s has unmuted %s",GetName(playerid),GetName(user));
  200.     SendMessageToAdmins(amsg);
  201.     print(amsg);
  202.     print(string);
  203.     muted[user] = 0;
  204.     return 1;
  205. }
  206.  
  207. CMD:goto(playerid,params[])
  208. {
  209.     if(pInfo[playerid][Admin] < 1) return error
  210.     new user,string[124],amsg[124];
  211.     if(sscanf(params,"u",user)) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"SYNTAX:/goto [playerid]");
  212.     if(user == INVALID_PLAYER_ID) return invalid
  213.     GetPlayerPos(user,x,y,z);
  214.     SetPlayerPos(playerid,x,y,z);
  215.     format(string,sizeof(string),"Admin %s has teleported to you.",GetName(playerid));
  216.     SendClientMessage(user,-1,string);
  217.     format(amsg,sizeof(amsg),"Admin %s has teleported to %s",GetName(playerid),GetName(user));
  218.     SendMessageToAdmins(amsg);
  219.     print(amsg);
  220.     print(string);
  221.     return 1;
  222. }
  223.  
  224. CMD:get(playerid,params[])
  225. {
  226.     if(pInfo[playerid][Admin] < 1) return error
  227.     new user,string[124],amsg[124];
  228.     if(sscanf(params,"u",user)) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"SYNTAX:/get [playerid]");
  229.     if(user == INVALID_PLAYER_ID) return invalid
  230.     GetPlayerPos(playerid,x,y,z);
  231.     SetPlayerPos(user,x,y,z);
  232.     format(string,sizeof(string),"Admin %s has teleported you to him",GetName(playerid));
  233.     SendClientMessage(playerid,-1,string);
  234.     format(amsg,sizeof(amsg),"Admin %s has teleported %s to him",GetName(playerid),GetName(user));
  235.     SendMessageToAdmins(amsg);
  236.     print(amsg);
  237.     print(string);
  238.     return 1;
  239. }
  240.  
  241. CMD:slap(playerid,params[])
  242. {
  243.     if(pInfo[playerid][Admin] < 1) return error
  244.     new user,string[124],amsg[124],Float:healthy;
  245.     if(sscanf(params,"u",user)) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"SYNTAX:/slap [playerid]");
  246.     if(user == INVALID_PLAYER_ID) return invalid
  247.     GetPlayerPos(playerid,x,y,z);
  248.     SetPlayerPos(playerid,x,y,z+15);
  249.     GetPlayerHealth(playerid,healthy);
  250.     SetPlayerHealth(playerid,healthy-5);
  251.     format(string,sizeof(string),"%s has been slapped by an admin",GetName(user));
  252.     SendClientMessageToAll(COLOR_BLUE,string);
  253.     format(amsg,sizeof(amsg),"Admin %s slapped %s",GetName(playerid),GetName(user));
  254.     print(amsg);
  255.     SendMessageToAdmins(amsg);
  256.     print(string);
  257.     return 1;
  258. }
  259.  
  260. CMD:akill(playerid,params[])
  261. {
  262.     if(pInfo[playerid][Admin] < 1) return error
  263.     new user,string[124],amsg[124];
  264.     if(sscanf(params,"u",user)) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"SYNTAX:/akill [playerid]");
  265.     if(user == INVALID_PLAYER_ID) return invalid
  266.     SetPlayerHealth(user,0);
  267.     format(string,sizeof(string),"%s has been admin killed",GetName(user));
  268.     SendClientMessageToAll(COLOR_BLUE,string);
  269.     format(amsg,sizeof(amsg),"Admin %s killed %s",GetName(playerid),GetName(user));
  270.     print(amsg);
  271.     SendMessageToAdmins(amsg);
  272.     print(string);
  273.     return 1;
  274. }
  275.  
  276. CMD:setvw(playerid,params[])
  277. {
  278.     if(pInfo[playerid][Admin] < 1) return error
  279.     new user,string[124],vw,amsg[124];
  280.     if(sscanf(params,"ud",user,vw)) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"SYNTAX:/setvw [playerid] [worldid]");
  281.     if(user == INVALID_PLAYER_ID) return invalid
  282.     SetPlayerVirtualWorld(user,vw);
  283.     format(string,sizeof(string),"Your virtrual world has been set to %d by admin",vw);
  284.     SendClientMessage(playerid,-1,string);
  285.     format(amsg,sizeof(amsg),"Admin %s has set %s's virtrual world to %d",GetName(playerid),GetName(user),vw);
  286.     print(amsg);
  287.     SendMessageToAdmins(amsg);
  288.     print(string);
  289.     return 1;
  290. }
  291.  
  292. CMD:setint(playerid,params[])
  293. {
  294.     if(pInfo[playerid][Admin] < 1) return error
  295.     new user,string[124],int,amsg[124];
  296.     if(sscanf(params,"ud",user,int)) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"SYNTAX:/setint [playerid] [interior]");
  297.     if(user == INVALID_PLAYER_ID) return invalid
  298.     SetPlayerInterior(user,int);
  299.     format(string,sizeof(string),"Your interior has been set to %d by an admin",int);
  300.     SendClientMessage(playerid,-1,string);
  301.     format(amsg,sizeof(amsg),"Admin %s has set %s's interior to %d",GetName(playerid),GetName(user),int);
  302.     print(amsg);
  303.     SendMessageToAdmins(amsg);
  304.     print(string);
  305.     return 1;
  306. }
  307.  
  308. CMD:cc(playerid,params[])
  309. {
  310.     if(pInfo[playerid][Admin] < 1) return error
  311.     new string[124],amsg[124];
  312.     for(new i = 0; i < 200; i++) SendClientMessageToAll(0x00000000," ");
  313.     format(string,sizeof(string),"Chat has been cleared by an admin.",GetName(playerid));
  314.     SendClientMessageToAll(COLOR_BLUE,string);
  315.     format(amsg,sizeof(amsg),"Admin %s has cleared the chat",GetName(playerid));
  316.     print(amsg);
  317.     SendMessageToAdmins(amsg);
  318.     print(string);
  319.     return 1;
  320. }
  321.  
  322. CMD:spec(playerid,params[])
  323. {
  324.     if(pInfo[playerid][Admin] < 1) return error
  325.     if(specing[playerid] == 0)
  326.     {
  327.         new user,string[124],amsg[124];
  328.         if(sscanf(params,"u",user)) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"SYNTAX:/spec [playerid]");
  329.         if(user == INVALID_PLAYER_ID) return invalid
  330.         if(pInfo[playerid][Admin] < 1) return error
  331.         TogglePlayerSpectating(playerid,true);
  332.         PlayerSpectatePlayer(playerid,user,SPECTATE_MODE_NORMAL);
  333.         format(string,sizeof(string),"Admin %s is spectating %s",GetName(playerid),GetName(user));
  334.         print(string);
  335.         GetPlayerPos(playerid,Float:telex[playerid],Float:teley[playerid],Float:telez[playerid]);
  336.         SendMessageToAdmins(amsg);
  337.         specing[playerid] = 1;
  338.     }
  339.     else if(specing[playerid] == 1)
  340.     {
  341.         new user,string[124],amsg[124];
  342.         if(sscanf(params,"u",user)) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"SYNTAX:/spec [playerid]");
  343.         if(user == INVALID_PLAYER_ID) return invalid
  344.         if(pInfo[playerid][Admin] < 1) return error
  345.         TogglePlayerSpectating(playerid,true);
  346.         PlayerSpectatePlayer(playerid,user,SPECTATE_MODE_NORMAL);
  347.         format(string,sizeof(string),"Admin %s is spectating %s",GetName(playerid),GetName(user));
  348.         print(string);
  349.         SendMessageToAdmins(amsg);
  350.         specing[playerid] = 1;
  351.     }
  352.     return 1;
  353. }
  354.  
  355. CMD:specoff(playerid,params[])
  356. {
  357.     if(pInfo[playerid][Admin] < 1) return error
  358.     TogglePlayerSpectating(playerid,false);
  359.     return 1;
  360. }
  361.  
  362. CMD:duty(playerid,params[])
  363. {
  364.     if(pInfo[playerid][Admin] < 1) return error
  365.     if(Duty[playerid] == 0)
  366.     {
  367.         new string1[124];
  368.         Duty[playerid] = 1;
  369.         format(string1,sizeof(string1),"Admin %s is on duty.",GetName(playerid));
  370.         SendMessageToAdmins(string1);
  371.     }
  372.     else if(Duty[playerid] == 1)
  373.     {
  374.         new string[124];
  375.         Duty[playerid] = 0;
  376.         format(string,sizeof(string),"Admin %s is off duty.",GetName(playerid));
  377.         SendMessageToAdmins(string);
  378.     }
  379.     return 1;
  380. }
  381.  
  382. CMD:ban(playerid,params[])
  383. {
  384.     if(pInfo[playerid][Admin] < 2) return error
  385.     new user,reason,string[124],amsg[124];
  386.     if(sscanf(params,"us[64]",user,reason)) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"SYNTAX:/ban [playerid] [reason]");
  387.     if(user == INVALID_PLAYER_ID) return invalid
  388.     format(string,sizeof(string),"%s has been banned by an admin. Reason %s",GetName(user),reason);
  389.     print(string);
  390.     SendClientMessageToAll(COLOR_BLUE,string);
  391.     format(amsg,sizeof(amsg),"Admin %s has banned %s. Reason %s",GetName(playerid),GetName(user),reason);
  392.     SendMessageToAdmins(amsg);
  393.     print(amsg);
  394.     Ban(user);
  395.     return 1;
  396. }
  397.  
  398. CMD:healall(playerid,params[])
  399. {
  400.     new amsg[124];
  401.     if(pInfo[playerid][Admin] < 2) return error
  402.     for(new i = 0; i < MAX_PLAYERS; i++)
  403.     {
  404.         SetPlayerHealth(i,100.0);
  405.     }
  406.     SendClientMessageToAll(-1,"All players have been healed by admin");
  407.     format(amsg,sizeof(amsg),"Admin %s healed all players.",GetName(playerid));
  408.     SendMessageToAdmins(amsg);
  409.     print(amsg);
  410.     return 1;
  411. }
  412.  
  413. CMD:repairall(playerid,params[])
  414. {
  415.     if(pInfo[playerid][Admin] < 2) return error
  416.     new amsg[124];
  417.     for(new i = 0; i < MAX_VEHICLES; i++)
  418.     {
  419.         new vehicleid;
  420.         vehicleid = GetPlayerVehicleID(playerid);
  421.         RepairVehicle(vehicleid);
  422.     }
  423.     SendClientMessageToAll(-1,"All occupied vehicles have been repaired by admin");
  424.     format(amsg,sizeof(amsg),"Admin %s repaired all vehicles",GetName(playerid));
  425.     SendMessageToAdmins(amsg);
  426.     print(amsg);
  427.     return 1;
  428. }
  429.  
  430. CMD:announce(playerid,params[])
  431. {
  432.     if(pInfo[playerid][Admin] < 2) return error
  433.     new amsg[124],ann,annnounce[124];
  434.     if(sscanf(params,"s[64]",ann)) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"SYNTAX:/announce [message]");
  435.     format(annnounce,sizeof(annnounce),"%s",ann);
  436.     GameTextForAll(annnounce,10000,3);
  437.     format(amsg,sizeof(amsg),"Admin %s announced %s",GetName(playerid),ann);
  438.     SendMessageToAdmins(amsg);
  439.     return 1;
  440. }
  441.  
  442. CMD:setscore(playerid,params[])
  443. {
  444.     if(pInfo[playerid][Admin] < 2) return error
  445.     new user,string[124],score,amsg[124];
  446.     if(sscanf(params,"ud",user,score)) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"SYNTAX:/setscore [playerid] [score]");
  447.     if(user == INVALID_PLAYER_ID) return invalid
  448.     SetPlayerScore(user,score);
  449.     format(string,sizeof(string),"%s score has been changed to %d by an admin.",GetName(user),score);
  450.     SendClientMessageToAll(COLOR_BLUE,string);
  451.     format(amsg,sizeof(amsg),"Admin %s has changed %s's score to %d",GetName(playerid),GetName(user),score);
  452.     SendMessageToAdmins(amsg);
  453.     print(amsg);
  454.     print(string);
  455.     return 1;
  456. }
  457.  
  458. CMD:sethealth(playerid,params[])
  459. {
  460.     if(pInfo[playerid][Admin] < 2) return error
  461.     new user,health;
  462.     if(sscanf(params,"ud",user,health)) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"SYNTAX:/sethealth [playerid] [health]");
  463.     if(user == INVALID_PLAYER_ID) return invalid
  464.     SetPlayerHealth(user,health);
  465.     return 1;
  466. }
  467.  
  468. CMD:setarmour(playerid,params[])
  469. {
  470.     if(pInfo[playerid][Admin] < 2) return error
  471.     new user,string[124],armour,amsg[114];
  472.     if(sscanf(params,"ud",user,armour)) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"SYNTAX:/setarmour [playerid] [armour]");
  473.     if(user == INVALID_PLAYER_ID) return invalid
  474.     SetPlayerArmour(user,armour);
  475.     format(string,sizeof(string),"%s armour has been changed to %d by admin.",GetName(user),armour);
  476.     SendClientMessageToAll(COLOR_BLUE,string);
  477.     format(amsg,sizeof(amsg),"Admins %s has changed %s's armour to %d",GetName(playerid),GetName(user),armour);
  478.     SendMessageToAdmins(amsg);
  479.     print(amsg);
  480.     print(string);
  481.     return 1;
  482. }
  483.  
  484. CMD:setadmin(playerid,params[])
  485. {
  486.     if(pInfo[playerid][Admin] < 3) return error
  487.     new user,string[124],lvl,amsg[124];
  488.     if(sscanf(params,"ud",user,lvl)) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"SYNTAX:/setadmin [playerid] [Admin]");
  489.     if(user == INVALID_PLAYER_ID) return invalid
  490.     format(string,sizeof(string),"%s admin level has been changed to %d by an admin.",GetName(user),lvl);
  491.     SendClientMessageToAll(COLOR_BLUE,string);
  492.     pInfo[user][Admin] = lvl;
  493.     format(amsg,sizeof(amsg),"Admin %s changed %s's admmin level to %d.",GetName(playerid),GetName(user),lvl);
  494.     print(string);
  495.     print(amsg);
  496.     SendMessageToAdmins(amsg);
  497.     return 1;
  498. }
  499.  
  500. CMD:setvip(playerid,params[])
  501. {
  502.     if(pInfo[playerid][Admin] < 3) return error
  503.     new user,string[124],lvl,amsg[124];
  504.     if(sscanf(params,"ud",user,lvl)) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"SYNTAX:/setvip [playerid] [Admin]");
  505.     if(user == INVALID_PLAYER_ID) return invalid
  506.     format(string,sizeof(string),"%s vip level has been changed to %d by admin.",GetName(user),lvl);
  507.     SendClientMessageToAll(COLOR_BLUE,string);
  508.     pInfo[user][Vip] = lvl;
  509.     format(amsg,sizeof(amsg),"Admin %s changed %s's vip level to %d",GetName(playerid),GetName(user),lvl);
  510.     print(amsg);
  511.     SendMessageToAdmins(amsg);
  512.     print(string);
  513.     return 1;
  514. }
  515.  
  516. CMD:restart(playerid,params[])
  517. {
  518.     if(pInfo[playerid][Admin] < 3) return error
  519.     new reason,boom[124],amsg[124];
  520.     if(sscanf(params,"s[64]",reason)) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"SYNTAX:/restart [reason]");
  521.     format(boom,sizeof(boom),"Server has been restarted by an admin. reasonn %s",reason);
  522.     SendClientMessageToAll(-1,boom);
  523.     format(amsg,sizeof(amsg),"Admin %s has restarted the server. Reason %s",GetName(playerid),reason);
  524.     SendMessageToAdmins(amsg);
  525.     print(amsg);
  526.     SendRconCommand("gmx");
  527.     print(boom);
  528.     return 1;
  529. }
  530.  
  531. CMD:vcolor(playerid,params[])
  532. {
  533.     if(pInfo[playerid][Vip] < 1) return SendClientMessage(playerid,-1,"ERROR:Yur not vip.");
  534.     new col1,string[124],col2,veh;
  535.     veh = GetPlayerVehicleID(playerid);
  536.     if(sscanf(params,"dd",col1,col2)) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"SYNTAX:/vcolor [color1] [color2]");
  537.     ChangeVehicleColor(veh,col1,col2);
  538.     format(string,sizeof(string),"VipCmd:Vip %s changed his vehicle color to %d and %d",GetName(playerid),col1,col2);
  539.     SendClientMessageToAll(COLOR_BLUE,string);
  540.     print(string);
  541.     return 1;
  542. }
  543.  
  544. CMD:stats(playerid,params[])
  545. {
  546.     if(isnull(params))
  547.     {
  548.         SendClientMessage(playerid,-1,"Hint: Use /stats [playerid]!");
  549.         new string1[124],string2[124];
  550.         format(string1,sizeof(string1),"Admin: %d | Vip: %d | Money: $%d",pInfo[playerid][Admin],pInfo[playerid][Vip],pInfo[playerid][Money]);
  551.         SendClientMessage(playerid,COLOR_GREEN,string1);
  552.         format(string2,sizeof(string2),"Score: %d | Kills: %d | Deaths: %d",pInfo[playerid][Scores],pInfo[playerid][Kills],pInfo[playerid][Deaths]);
  553.         SendClientMessage(playerid,COLOR_GREEN,string2);
  554.     }
  555.     else
  556.     {
  557.         new user;
  558.         if(sscanf(params,"u",user)) return SendClientMessage(playerid,COLOR_LIGHTBLUE,"SYNTAX:/stats [playerid]");
  559.         if(user == INVALID_PLAYER_ID) return invalid
  560.         new string1[124],string2[124];
  561.         format(string1,sizeof(string1),"Admin: %d | Vip: %d | Money: $%d",pInfo[user][Admin],pInfo[user][Vip],pInfo[user][Money]);
  562.         SendClientMessage(playerid,COLOR_GREEN,string1);
  563.         format(string2,sizeof(string2),"Score: %d | Kills: %d | Deaths: %d",pInfo[user][Scores],pInfo[user][Kills],pInfo[user][Deaths]);
  564.         SendClientMessage(playerid,COLOR_GREEN,string2);
  565.     }
  566.     return 1;
  567. }
  568.  
  569. CMD:ip(playerid,params[])
  570. {
  571.     new target,string[214],pIp[24],tName[MAX_PLAYER_NAME];
  572.     if(sscanf(params,"u",target)) return SendClientMessage(playerid,-1,"/ip [playerid]");
  573.     if(target == INVALID_PLAYER_ID) return invalid
  574.     if(pInfo[playerid][Admin] < 1) return error
  575.     GetPlayerIp(target,pIp,sizeof(pIp));
  576.     GetPlayerName(target,tName,MAX_PLAYER_NAME);
  577.     format(string,sizeof(string),"%s's IP: %s",tName,pIp);
  578.     SendClientMessage(playerid,-1,string);
  579.     return 1;
  580. }
  581.  
  582. CMD:warn(playerid,params[])
  583. {
  584.     new target,reason[124],tName[MAX_PLAYER_NAME],string[124];
  585.     if(sscanf(params,"us[124]",target,reason)) return SendClientMessage(playerid,-1,"/warn [playerid] [reason]");
  586.     if(target == INVALID_PLAYER_ID) return invalid
  587.     if(pInfo[playerid][Admin] < 1) return error
  588.     pWarns[target] ++;
  589.     GetPlayerName(target,tName,MAX_PLAYER_NAME);
  590.     format(string,sizeof(string),"%s has been warned by admin. reason; %s",tName,reason);
  591.     SendClientMessageToAll(-1,string);
  592.     if(pWarns[target] == 3)
  593.     {
  594.         SendClientMessage(target,-1,"You have been kicked for 3/3 warnings.");
  595.         Kick(playerid);
  596.     }
  597.     return 1;
  598. }
  599.  
  600. CMD:rtc(playerid,params[])
  601. {
  602.     if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,-1,"Your not in a vehicle");
  603.     if(pInfo[playerid][Admin] < 1) return error
  604.     new veh = GetPlayerVehicleID(playerid);
  605.     SetVehicleToRespawn(veh);
  606.     return 1;
  607. }
  608.  
  609. CMD:dtc(playerid,params[])
  610. {
  611.     if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid,-1,"Your not in a vehicle");
  612.     if(pInfo[playerid][Admin] < 1) return error
  613.     new veh = GetPlayerVehicleID(playerid);
  614.     DestroyVehicle(veh);
  615.     return 1;
  616. }
  617.  
  618. CMD:rep(playerid,params[])
  619. {
  620.     new target,pName[MAX_PLAYER_NAME],string1[124],string[124],pTarget[MAX_PLAYER_NAME];
  621.     if(sscanf(params,"u",target)) return SendClientMessage(playerid,-1,"/rep [playerid]");
  622.     if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid,-1,"Player not connected");
  623.     GetPlayerName(target,pTarget,MAX_PLAYER_NAME);
  624.     format(string,sizeof(string),"You gave %s 1 reputation!",pTarget);
  625.     SendClientMessage(playerid,-1,string);
  626.     pInfo[target][Rep] ++;
  627.     GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
  628.     format(string1,sizeof(string1),"%s has gave you 1 reputation.",pName);
  629.     SendClientMessage(target,-1,string1);
  630.     return 1;
  631. }
  632.  
  633. CMD:myrep(playerid,params[])
  634. {
  635.     new string[124];
  636.     format(string,sizeof(string),"Your reputation is %d.",pInfo[playerid][Rep]);
  637.     SendClientMessage(playerid,-1,string);
  638.     return 1;
  639. }
  640.  
  641. CMD:checkrep(playerid,params[])
  642. {
  643.     new target,string[124],tName[MAX_PLAYER_NAME];
  644.     if(sscanf(params,"u",target)) return SendClientMessage(playerid,-1,"/checkrep [playerid]");
  645.     if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid,-1,"Player not connected");
  646.     GetPlayerName(target,tName,MAX_PLAYER_NAME);
  647.     format(string,sizeof(string),"%s's reputation is %d",tName,pInfo[target][Rep]);
  648.     SendClientMessage(playerid,-1,string);
  649.     return 1;
  650. }
  651.  
  652. CMD:resetrep(playerid,params[])
  653. {
  654.     new target,reason[64],message[64],tName[MAX_PLAYER_NAME];
  655.     if(pInfo[playerid][Admin] < 1) return error
  656.     if(sscanf(params,"us[64]",target,reason)) return SendClientMessage(playerid,-1,"/resetrep [playerid] [reason]");
  657.     if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid,-1,"Player not connected");
  658.     GetPlayerName(target,tName,MAX_PLAYER_NAME);
  659.     format(message,sizeof(message),"%s's reputation has been reset by an admin. Reason:%s.",tName,reason);
  660.     SendClientMessageToAll(-1,message);
  661.     pInfo[target][Rep] = 0;
  662.     return 1;
  663. }
  664.  
  665. CMD:reducerep(playerid,params[])
  666. {
  667.     new target,tName[MAX_PLAYER_NAME],string[124],pName[MAX_PLAYER_NAME],string1[124];
  668.     if(sscanf(params,"u",target)) return SendClientMessage(playerid,-1,"/reducerep [playerid]");
  669.     if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid,-1,"Player not connected");
  670.     GetPlayerName(target,tName,MAX_PLAYER_NAME);
  671.     format(string,sizeof(string),"You reduced %s's reputation by 1",tName);
  672.     SendClientMessage(playerid,-1,string);
  673.     GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
  674.     format(string1,sizeof(string1),"Your reputation has been reduced by 1 by %s.",pName);
  675.     SendClientMessage(target,-1,string1);
  676.     return 1;
  677. }
  678.  
  679. CMD:setrep(playerid,params[])
  680. {
  681.     if(pInfo[playerid][Admin] < 1) return error
  682.     new rep,target,pName[MAX_PLAYER_NAME],string1[124],string[124],pTarget[MAX_PLAYER_NAME];
  683.     if(sscanf(params,"ui",target,rep)) return SendClientMessage(playerid,-1,"/setrep [playerid] [reputation]");
  684.     if(target == INVALID_PLAYER_ID) return SendClientMessage(playerid,-1,"Player not connected");
  685.     GetPlayerName(target,pTarget,MAX_PLAYER_NAME);
  686.     format(string,sizeof(string),"You have set %s's reputation to %d!",pTarget,rep);
  687.     pInfo[target][Rep] = rep;
  688.     SendClientMessage(playerid,-1,string);
  689.     GetPlayerName(playerid,pName,MAX_PLAYER_NAME);
  690.     format(string1,sizeof(string1),"%s has set your reputation to %d.",pName,rep);
  691.     SendClientMessage(target,-1,string1);
  692.     return 1;
  693. }
  694.  
  695. //==============================================================================
  696. //--------------------------------> Callbacks <---------------------------------
  697. //==============================================================================
  698.  
  699.  
  700. public loadaccount_user(playerid, name[], value[])
  701. {
  702.     INI_String("Password", pInfo[playerid][Pass],129);
  703.     INI_Int("Admin",pInfo[playerid][Admin]);
  704.     INI_Int("Vip",pInfo[playerid][Vip]);
  705.     INI_Int("Money",pInfo[playerid][Money]);
  706.     INI_Int("Scores",pInfo[playerid][Scores]);
  707.     INI_Int("Kills",pInfo[playerid][Kills]);
  708.     INI_Int("Deaths",pInfo[playerid][Deaths]);
  709.     INI_Int("Rep",pInfo[playerid][Rep]);
  710.     return 1;
  711. }
  712.  
  713. public OnPlayerConnect(playerid)
  714. {
  715.     pWarns[playerid] = 0;
  716.     new name[MAX_PLAYER_NAME];
  717.     GetPlayerName(playerid,name,sizeof(name));
  718.     if(fexist(Path(playerid)))
  719.     {
  720.         INI_ParseFile(Path(playerid),"loadaccount_%s", .bExtra = true, .extra = playerid);
  721.         ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Welcome back to "#ServerName".\nPlease input your password below to login.","Login","Leave");
  722.     }
  723.     else
  724.     {
  725.         ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Welcome to" #ServerName".\nPlease input a password below to register.","Register","Leave");
  726.         return 1;
  727.     }
  728.     return 1;
  729. }
  730.  
  731. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  732. {
  733.     if(dialogid == DIALOG_REGISTER)
  734.     {
  735.         if(!response) return Kick(playerid);
  736.         if(response)
  737.         {
  738.             if(!strlen(inputtext))
  739.             {
  740.                         ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_INPUT,"Register","Welcome to" #ServerName".\nPlease input a password below to register.","Register","Leave");
  741.                         return 1;
  742.             }
  743.             new hashpass[129];
  744.             WP_Hash(hashpass,sizeof(hashpass),inputtext);
  745.             new INI:file = INI_Open(Path(playerid));
  746.             INI_SetTag(file,"Player's Data");
  747.             INI_WriteString(file,"Password",hashpass);
  748.             INI_WriteInt(file,"Admin",0);
  749.             INI_WriteInt(file,"Vip",0);
  750.             INI_WriteInt(file,"Money",0);
  751.             INI_WriteInt(file,"Scores",0);
  752.             INI_WriteInt(file,"Kills",0);
  753.             INI_WriteInt(file,"Deaths",0);
  754.             INI_WriteInt(file,"Rep",0);
  755.             INI_Close(file);
  756.             SendClientMessage(playerid,-1,"You have been successfully registered");
  757.             return 1;
  758.         }
  759.     }
  760.     if(dialogid == DIALOG_LOGIN)
  761.     {
  762.         if(!response) return Kick(playerid);
  763.         if(response)
  764.         {
  765.             new hashpass[129];
  766.             WP_Hash(hashpass,sizeof(hashpass),inputtext);
  767.             if(!strcmp(hashpass,pInfo[playerid][Pass]))
  768.             {
  769.                 INI_ParseFile(Path(playerid),"loadaccount_%s",.bExtra = true, .extra = playerid);
  770.                 SetPlayerScore(playerid,pInfo[playerid][Scores]);
  771.                 GivePlayerMoney(playerid,pInfo[playerid][Money]);
  772.                 SendClientMessage(playerid,-1,"Welcome back! You have successfully logged in");
  773.             }
  774.             else
  775.             {
  776.                         ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_PASSWORD,"Login","Welcome back to "#ServerName".\nPlease input your password below to login.","Login","Leave");
  777.                         return 1;
  778.             }
  779.         }
  780.     }
  781.     return 1;
  782. }
  783.  
  784. public OnPlayerDisconnect(playerid, reason)
  785. {
  786.     pWarns[playerid] = 0;
  787.     if(fexist(Path(playerid)))
  788.     {
  789.         new INI:file = INI_Open(Path(playerid));
  790.         INI_SetTag(file,"Player's Data");
  791.         INI_WriteInt(file,"Admin",pInfo[playerid][Admin]);
  792.         INI_WriteInt(file,"Vip",pInfo[playerid][Vip]);
  793.         INI_WriteInt(file,"Money",GetPlayerMoney(playerid));
  794.         INI_WriteInt(file,"Scores",GetPlayerScore(playerid));
  795.         INI_WriteInt(file,"Kills",pInfo[playerid][Kills]);
  796.         INI_WriteInt(file,"Deaths",pInfo[playerid][Deaths]);
  797.         INI_WriteInt(file,"Rep",pInfo[playerid][Rep]);
  798.         INI_Close(file);
  799.         return 1;
  800.     }
  801.     return 1;
  802. }
  803.  
  804. public OnPlayerDeath(playerid,killerid)
  805. {
  806.     pInfo[killerid][Kills]++;
  807.     pInfo[playerid][Deaths]++;
  808.     return 1;
  809. }
  810.  
  811. public OnPlayerText(playerid,text[])
  812. {
  813.     if(muted[playerid] == 1)
  814.     {
  815.         SendClientMessage(playerid,-1,"Your muted....");
  816.         return 0;
  817.     }
  818.     if(text[0] == '#' && pInfo[playerid][Admin] > 0)
  819.     {
  820.         new msg[124];
  821.         format(msg,sizeof(msg),"Admin %s: %s",GetName(playerid),text[1]);
  822.         SendMessageToAdmins(msg);
  823.         print(msg);
  824.         return 0;
  825.     }
  826.     if(text[0] == '!' && pInfo[playerid][Vip] > 0)
  827.     {
  828.         new msg[124];
  829.         format(msg,sizeof(msg),"Vip %s: %s",GetName(playerid),text[1]);
  830.         SendMessageToAdmins(msg);
  831.         print(msg);
  832.         return 0;
  833.     }
  834.     return 1;
  835. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement