Advertisement
Guest User

Untitled

a guest
Aug 19th, 2017
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 26.89 KB | None | 0 0
  1. #define FILTERSCRIPT
  2. //========Includes=======//
  3. #include <a_samp>
  4. #include <zcmd>
  5. #include <a_mysql>
  6.  
  7. new Muted[MAX_PLAYERS];
  8. new ip[MAX_PLAYERS];
  9. new Text3D:label[MAX_PLAYERS];
  10.  
  11. enum playerinfo
  12. {
  13.     Kicks,
  14.     level,
  15.     pWarnings,
  16.     PlayerMuted,
  17.     logged,
  18.     Deaths,
  19.     vip,
  20.     PlayerFrozen,
  21.     money,
  22.     message
  23. };
  24. new pname[MAX_PLAYER_NAME];
  25. new playerdata[MAX_PLAYERS][playerinfo];
  26. new pSpectating[MAX_PLAYERS][MAX_PLAYERS];
  27.  
  28. native WP_Hash(buffer[], len, const str[]);
  29. //=========Defines========//
  30. #define SQL_HOST    "localhost"
  31. #define SQL_USER    "zack"
  32. #define SQL_PASS    ""
  33. #define SQL_DB      "samp-test"
  34.  
  35. #if defined FILTERSCRIPT
  36.  
  37. #define red 0xFF0000AA
  38. #define yellow 0xFFFF00AA
  39. #define green 0x33AA33AA
  40. #define blue 0x375FFFFF
  41. #define white 0xFFFFFFAA
  42. #define COLOR_GREY 0xAFAFAFAA
  43. #define COLOR_GREEN 0x33AA33AA
  44. #define COLOR_RED 0xAA3333AA
  45. #define COLOR_YELLOW 0xFFFF00AA
  46. #define COLOR_WHITE 0xFFFFFFFF
  47.  
  48. //===========Login and Register Info===========//
  49. public OnFilterScriptInit()
  50. {
  51.     print("\n***************************************");
  52.     print("          Admin system by Zack           ");
  53.     print("***************************************\n");
  54.     SetTimer("ammo",60000,true);
  55.     SetTimer("score",60000,true);
  56.     SetTimer("ping", 20000,true);
  57.    
  58.     printf("Host: %s", SQL_HOST);
  59.     printf("PW: %s", SQL_PASS);
  60.    
  61.     mysql_connect(SQL_HOST, SQL_USER, SQL_DB, SQL_PASS);
  62.  
  63.     if(mysql_ping() == 1)
  64.     {
  65.         mysql_debug(1);
  66.         printf("[MYSQL]: Connection to `%s` succesful!", SQL_DB);
  67.     }
  68.     else
  69.     {
  70.         printf("[MYSQL]: [ERROR]: Connection to `%s` failed!", SQL_DB);
  71.     }
  72.     return 1;
  73. }
  74. public OnFilterScriptExit()
  75. {
  76.     mysql_close();
  77.     return 1;
  78. }
  79.  
  80. public OnPlayerConnect(playerid)
  81. {
  82.     new ss[412];
  83.     mysql_query("SELECT `Username` FROM `names` WHERE `Username` = '%s'", GetPlayerName(playerid, pname, sizeof(pname)));
  84.     mysql_store_result();
  85.     if(mysql_num_rows())
  86.     {
  87.         format(ss, sizeof(ss), "%s is registered.\nPlease Login.", pname);
  88.         ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Login to play!",ss,"Login","Disconnect");
  89.     }
  90.     else
  91.     {
  92.         ShowPlayerDialog(playerid,5,DIALOG_STYLE_MSGBOX,"Rules","1) No ramming \n2) NO HACKING \n3) No DM'ing \n4) No reporting in chat \n5) Dont let anyone else use your account","Ok","Cancel");
  93.     }
  94.     mysql_free_result();
  95.    
  96.     for(new i = 0; i < MAX_PLAYERS; i++)
  97.     {
  98.         pSpectating[playerid][i]=0;
  99.     }
  100.     return 1;
  101. }
  102. public OnPlayerSpawn(playerid)
  103. {
  104.     GetPlayerName(playerid, pname, sizeof(pname));
  105.     label[playerid] = Create3DTextLabel(pname,0x008080FF,30.0,20.0,50.0,40.0,0);
  106.     Attach3DTextLabelToPlayer(label[playerid], playerid, 0.0, 0.0, 0.7);
  107.     return 1;
  108. }
  109. public OnPlayerDisconnect(playerid, reason)
  110. {
  111.     return 1;
  112. }
  113.  
  114. forward SendClientMessageToAdmins(color, string[]);
  115. public SendClientMessageToAdmins(color,string[])
  116. {
  117.     printf("%s", string);
  118.     for(new i = 0; i < MAX_PLAYERS; i++)
  119.         {
  120.                 if(IsPlayerConnected(i))
  121.                 {
  122.                         if (playerdata[i][level] > 0)
  123.                         {
  124.                                 SendClientMessage(i, color, string);
  125.                         }
  126.                 }
  127.         }
  128.     return 1;
  129. }
  130.  
  131. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  132. {
  133.     if(dialogid == 1)
  134.     {
  135.         new HashedPW[145], stringS[400];
  136.         WP_Hash(HashedPW, sizeof (HashedPW), inputtext);
  137.         format(stringS,sizeof(stringS),"INSERT INTO `names` (Username, Password, IP, AdminLevel, Score, Money, Kills, Deaths) VALUES ('%s', '%s', '%s', '0', '0', '3000', '0', '0')", GetPlayerName(playerid, pname, sizeof(pname)), inputtext, GetPlayerIp(playerid, ip, sizeof(ip)));
  138.         mysql_query(stringS);
  139.        
  140.         TogglePlayerControllable(playerid, 0);
  141.         new string[128];
  142.         format(string, sizeof(string), "You succesfully registered the nickname %s with password %s", pname, inputtext);
  143.         SendClientMessage(playerid, green, string);
  144.         playerdata[playerid][logged] = 1;
  145.         SendClientMessage(playerid, green, "You have been automatically logged in!");
  146.         PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
  147.         TogglePlayerControllable(playerid, 1);
  148.         return 1;
  149.     }
  150.     if(dialogid ==2)
  151.     {
  152.         TogglePlayerControllable(playerid, 0);
  153.         if(response == 1)
  154.         {
  155.             LoginPlayer(playerid);
  156.         }
  157.         if(response == 0)
  158.         {
  159.             SendClientMessage(playerid, red, "You must log in or register to use this server");
  160.             Kick(playerid);
  161.         }
  162.         return 1;
  163.     }
  164.     if(dialogid == 3)
  165.     {
  166.         if(response)
  167.         {
  168.             switch(listitem)
  169.             {
  170.                 case 0:
  171.                 {
  172.                     SendClientMessage(playerid, 0xFFFFFFAA, "You have switched to a army skin.");
  173.                     SetPlayerSkin(playerid, 287);
  174.                 }
  175.                 case 1:
  176.                 {
  177.                     SendClientMessage(playerid, 0xFFFFFFAA, "You have switched to a firefighter skin.");
  178.                     SetPlayerSkin(playerid, 277);
  179.                 }
  180.                 case 2:
  181.                 {
  182.                     SendClientMessage(playerid, 0xFFFFFFAA, "You have switched to a paramedic skin.");
  183.                     SetPlayerSkin(playerid, 276);
  184.                 }
  185.             }
  186.         }
  187.         return 1;
  188.     }
  189.     if(dialogid == 5)
  190.     {
  191.         if(response)
  192.         {
  193.             new s[128];
  194.             GetPlayerName(playerid, pname, sizeof(pname));
  195.             format(s, sizeof(s),"%s is not registered.\nPlease enter a password below.", pname);
  196.             ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Register to play!",s,"Register","Disconnect");
  197.         }
  198.         else
  199.         {
  200.             Kick(playerid);
  201.         }
  202.         return 1;
  203.     }
  204.     if(dialogid == 10)
  205.     {
  206.         if(response)
  207.         {
  208.             GetPlayerName(playerid, pname, sizeof(pname));
  209.         }
  210.         return 1;
  211.     }
  212.     if(dialogid == 12)
  213.     {
  214.         if(IsPlayerConnected(playerid))
  215.         {
  216.             if(response)
  217.             {
  218.                 switch(listitem)
  219.                 {
  220.                     case 0:
  221.                     {
  222.                         new pnaMe[MAX_PLAYER_NAME], s[102];
  223.                         GetPlayerName(playerid, pnaMe, sizeof(pnaMe));
  224.                         format(s,sizeof(s),"Name:%s \nMoney:%i \nPing:%i \nSkin:%i",pnaMe, GetPlayerMoney(playerid),GetPlayerPing(playerid), GetPlayerSkin(playerid));
  225.                         ShowPlayerDialog(playerid, 11, DIALOG_STYLE_MSGBOX,"Stats!", s, "Ok", "Cancel");
  226.                     }
  227.                     case 1:
  228.                     {
  229.                         ShowPlayerDialog(playerid,400,DIALOG_STYLE_MSGBOX,"Rules","1) No ramming \n2) NO HACKING \n3) No DM'ing \n4) No reporting in chat \n5) Dont let anyone else use your account","Ok","Cancel");
  230.                     }
  231.                 }
  232.             }
  233.         }
  234.         return 1;
  235.     }
  236.     return 1;
  237. }
  238. public OnPlayerPickUpPickup(playerid, pickupid)
  239. {
  240.     return 1;
  241. }
  242. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  243. {
  244.     SendClientMessage(playerid, red, "This is a NO-NO");
  245.     Kick(playerid);
  246.     return 0;
  247. }
  248.  
  249. public OnPlayerDeath(playerid, killerid, reason)
  250. {
  251.     //new file[256];
  252.     //dini_IntSet(file, "deaths", playerdata[playerid][Deaths]++);
  253.     return 1;
  254. }
  255. forward ammo(playerid);
  256. public ammo(playerid)
  257. {
  258.     if(IsPlayerConnected(playerid))
  259.     {
  260.         if(GetPlayerAmmo(playerid)>0)
  261.         {
  262.             new pName[MAX_PLAYER_NAME];
  263.             new string2[256];
  264.             GetPlayerName(playerid, pName,sizeof(pName));
  265.             format(string2,sizeof(string2),"%s Has Been Banned From The Server. Reason: Weapons",pName);
  266.             SendClientMessageToAll(white,string2);
  267.             playerdata[playerid][Kicks]++;
  268.             SaveUsers(playerid);
  269.         }
  270.     }
  271. }
  272. forward score(playerid);
  273. public score(playerid)
  274. {
  275.     if(IsPlayerConnected(playerid))
  276.     {
  277.         SetPlayerScore(playerid, GetPlayerScore(playerid) + 1);
  278.     }
  279.     return 1;
  280. }
  281. forward ping(playerid);
  282. public ping(playerid)
  283. {
  284.     if(IsPlayerConnected(playerid))
  285.     {
  286.         if(GetPlayerPing(playerid) > 500)
  287.         {
  288.             Kick(playerid);
  289.         }
  290.     }
  291.     return 1;
  292. }
  293. //=================Commands============//
  294. COMMAND:welcomemessage(playerid, params[])
  295. {
  296.     if(IsPlayerConnected(playerid))
  297.     {
  298.         ShowPlayerDialog(playerid, 10, DIALOG_STYLE_INPUT,"Welcome Message!", "Message:", "Ok", "Cancel");
  299.     }
  300.     return 1;
  301. }
  302. COMMAND:menu(playerid, params[])
  303. {
  304.     if(IsPlayerConnected(playerid))
  305.     {
  306.         ShowPlayerDialog(playerid, 12, DIALOG_STYLE_LIST, "Menu", "Stats \nRules", "Ok", "Cancel");
  307.     }
  308.     return 1;
  309. }
  310. COMMAND:stats(playerid, params[])
  311. {
  312.     if(IsPlayerConnected(playerid))
  313.     {
  314.         new pnaMe[MAX_PLAYER_NAME], s[102];
  315.         GetPlayerName(playerid, pnaMe, sizeof(pnaMe));
  316.         format(s,sizeof(s),"Name:%s \nMoney:%i \nPing:%i \nSkin:%i",pnaMe, GetPlayerMoney(playerid),GetPlayerPing(playerid), GetPlayerSkin(playerid));
  317.         ShowPlayerDialog(playerid, 11, DIALOG_STYLE_MSGBOX,"Stats!", s, "Ok", "Cancel");
  318.     }
  319.     return 1;
  320. }
  321. COMMAND:vip(playerid, params[])
  322. {
  323.     if (playerdata[playerid][vip] == 0)
  324.     {
  325.         SendClientMessage(playerid, red, "You are not VIP");
  326.     }
  327.     if (playerdata[playerid][vip] == 1)
  328.     {
  329.         SendClientMessage(playerid, yellow, "You are VIP!");
  330.     }
  331.     return 1;
  332. }
  333. CMD:skin(playerid, params[])
  334. {
  335.     if(playerdata[playerid][vip] == 1) return ShowPlayerDialog(playerid,3,DIALOG_STYLE_LIST,"VIP Skins!","Army Skin \nFirefighter \nParamedic","Ok","Cancel");
  336.         else return SendClientMessage(playerid, red, "You are not VIP!");
  337. }
  338.  
  339. COMMAND:rules(playerid, params[])
  340. {
  341.     ShowPlayerDialog(playerid,4,DIALOG_STYLE_MSGBOX,"Rules","1) No ramming \n2) NO HACKING \n3) No DM'ing \n4) No reporting in chat \n5) Dont let anyone else use your account","Ok","Cancel");
  342.     return 1;
  343. }
  344. COMMAND:admincmd(playerid,params[])
  345. {
  346.     if(playerdata[playerid][level] == 0)
  347.     {
  348.         SendClientMessage(playerid, red, "You are not a admin!");
  349.     }
  350.     else if(playerdata[playerid][level] == 1)
  351.     {
  352.         SendClientMessage(playerid, green, "/goto, /healall");
  353.     }
  354.     else if(playerdata[playerid][level] == 2)
  355.     {
  356.         SendClientMessage(playerid, green, "/kill, /healall, /specplayer, /mute, /specoff");
  357.     }
  358.     else if(playerdata[playerid][level] == 3)
  359.     {
  360.         SendClientMessage(playerid, green, "/goto, /kick, /ban, /kill, /healall, /mute, /specplayer, /specoff");
  361.     }
  362.     else if(playerdata[playerid][level] == 4)
  363.     {
  364.         SendClientMessage(playerid, green, "/goto, /kick, /ban, /kill, /announce, /get, /mute, /healall, /clearchat, /specplayer, /specoff");
  365.     }
  366.     else if(playerdata[playerid][level] == 5)
  367.     {
  368.         SendClientMessage(playerid, green, "/goto, /kick, /ban, /kill, /announce, /get, /mute, /setlevel, /healall, /clearchat, /spec, /specoff");
  369.     }
  370.     return 1;
  371. }
  372. CMD:reclass(playerid,params[])
  373. {
  374.     SetPlayerHealth(playerid, 0);
  375.     ForceClassSelection(playerid);
  376. }
  377. COMMAND:freeze(playerid,params[])
  378. {
  379.     new pId;
  380.     if(playerdata[playerid][level] < 3) return 0;
  381.         else if(sscanf(params, "d", pId)) return SendClientMessage(playerid, yellow, "Usage: /freeze [ID]");
  382.             else if(!IsPlayerConnected(pId)) return SendClientMessage(playerid, red, "The ID You Entered Was Not Found.");
  383.                 else
  384.                 {
  385.                     new pName[MAX_PLAYER_NAME], pName2[MAX_PLAYER_NAME];
  386.                     new string[256];
  387.                     GetPlayerName(playerid, pName,sizeof(pName));
  388.                     GetPlayerName(pId,pName2,sizeof(pName2));
  389.                     if(playerdata[pId][PlayerFrozen] == 0)
  390.                     {
  391.                         format(string,sizeof(string),"[ADMIN]: %s (%d) Has Frozen %s (%d).",pName,playerid,pName2,pId);
  392.                         SendClientMessageToAdmins(red,string);
  393.                         playerdata[pId][PlayerFrozen] = 1;
  394.                         TogglePlayerControllable(pId, 0);
  395.                         SendClientMessage(playerid, green, "You froze a player");
  396.                     }
  397.                     else
  398.                     {
  399.                         format(string,sizeof(string),"[ADMIN]: %s (%d) Has Un-Frozen %s (%d).",pName,playerid,pName2,pId);
  400.                         SendClientMessageToAdmins(red,string);
  401.                         playerdata[pId][PlayerFrozen] = 0;
  402.                         TogglePlayerControllable(pId, 1);
  403.                         SendClientMessage(playerid, green, "Player is unfrozen");
  404.                     }
  405.                 }
  406.     return 1;
  407. }
  408. COMMAND:announce(playerid,params[])
  409. {
  410.     if(playerdata[playerid][level] < 3) return 0;
  411.         else if(sscanf(params,"s",params)) return SendClientMessage(playerid, yellow, "/announce [Text]");
  412.             else
  413.             {
  414.                 new pName[MAX_PLAYER_NAME];
  415.                 new string[256];
  416.                 GetPlayerName(playerid,pName,sizeof(pName));
  417.                 format(string,sizeof(string),"%s",params);
  418.                 GameTextForAll(string,5000,3);
  419.             }
  420.     return 1;
  421. }
  422. COMMAND:setlevel(playerid,params[])
  423. {
  424.     new pId, alevel;
  425.     if(playerdata[playerid][level] == 5 || IsPlayerAdmin(playerid))
  426.     {
  427.         if(sscanf(params, "dd", pId, alevel)) return SendClientMessage(playerid, yellow, "/setlvl [ID] [0 - 5]");
  428.             else if(!IsPlayerConnected(pId)) return SendClientMessage(playerid, red, "The ID You Entered Was Not Found.");
  429.                 else if(alevel < 0) return SendClientMessage(playerid, yellow, "/setlvl [ID] [0 - 5]");
  430.                     else if(alevel > 5) return SendClientMessage(playerid, yellow, "/setlvl [ID] [0 - 5]");
  431.                         else
  432.                         {
  433.                             new pName[MAX_PLAYER_NAME], pName2[MAX_PLAYER_NAME];
  434.                             new string2[256];
  435.                             GetPlayerName(playerid,pName,sizeof(pName));
  436.                             GetPlayerName(pId,pName2,sizeof(pName2));
  437.                             format(string2,sizeof(string2),"SERVER: Admin %s Has Set Your Level To %d.",pName, alevel);
  438.                             SendClientMessage(pId,green,string2);
  439.                             playerdata[pId][level] = alevel;
  440.                         }
  441.     }
  442.     else
  443.     {
  444.         return 0;
  445.     }
  446.     return 1;
  447. }
  448. CMD:kick(playerid,params[])
  449. {
  450.     new pId;
  451.     if(playerdata[playerid][level] < 2) return 0;
  452.         else if(sscanf(params, "ds", pId,params[2])) return SendClientMessage(playerid, yellow, "/kick [ID] [Reason]");
  453.             else if(!IsPlayerConnected(pId)) return SendClientMessage(playerid, red, "The ID You Entered Was Not Found.");
  454.                 else
  455.                 {
  456.                     new pName[MAX_PLAYER_NAME], pName2[MAX_PLAYER_NAME];
  457.                     new string2[256];
  458.                     GetPlayerName(playerid, pName,sizeof(pName));
  459.                     GetPlayerName(pId,pName2,sizeof(pName2));
  460.                     format(string2,sizeof(string2),"%s Has Been Kicked From The Server. Reason: %s",pName2,params[2]);
  461.                     SendClientMessageToAll(white,string2);
  462.                     playerdata[pId][Kicks]++;
  463.                     Kick(pId);
  464.                 }
  465.     return 1;
  466. }
  467. CMD:ban(playerid,params[])
  468. {
  469.     new pId;
  470.     if(playerdata[playerid][level] < 2) return 0;
  471.         else if(sscanf(params, "ds", pId,params[2])) return SendClientMessage(playerid, yellow, "/ban [ID] [Reason]");
  472.             else if(!IsPlayerConnected(pId)) return SendClientMessage(playerid, red, "The ID You Entered Was Not Found.");
  473.                 else
  474.                 {
  475.                     new pName[MAX_PLAYER_NAME], pName2[MAX_PLAYER_NAME];
  476.                     new string2[256];
  477.                     GetPlayerName(playerid, pName,sizeof(pName));
  478.                     GetPlayerName(pId,pName2,sizeof(pName2));
  479.                     format(string2,sizeof(string2),"%s Has Been Banned From The Server. Reason: %s",pName2,params[2]);
  480.                     SendClientMessageToAll(white,string2);
  481.                     playerdata[pId][Kicks]++;
  482.                 }
  483.     return 1;
  484. }
  485. CMD:goto(playerid,params[])
  486. {
  487.     new pId;
  488.     if(playerdata[playerid][level] < 1) return 0;
  489.         else if(sscanf(params, "d", pId)) return SendClientMessage(playerid, yellow, "/goto [ID]");
  490.             else if(!IsPlayerConnected(pId)) return SendClientMessage(playerid, red, "The ID You Entered Was Not Found.");
  491.                 else
  492.                 {
  493.                     new Float:X, Float:Y, Float:Z;
  494.                     GetPlayerPos(pId, X, Y, Z);
  495.                     if(GetPlayerState(playerid) == 2)
  496.                     {
  497.                         SetVehiclePos(GetPlayerVehicleID(playerid), X, Y+5, Z+1);
  498.                         SetPlayerInterior(playerid, GetPlayerInterior(pId));
  499.                     }
  500.                     else
  501.                     {
  502.                         SetPlayerPos(playerid, X, Y+3, Z+1);
  503.                         SetPlayerInterior(playerid, GetPlayerInterior(pId));
  504.                     }
  505.                 }
  506.     return 1;
  507. }
  508. CMD:get(playerid,params[])
  509. {
  510.     new pId;
  511.     if(playerdata[playerid][level] < 3) return 0;
  512.         else if(sscanf(params, "d", pId)) return SendClientMessage(playerid, yellow, "/get [ID]");
  513.             else if(!IsPlayerConnected(pId)) return SendClientMessage(playerid, red, "The ID You Entered Was Not Found.");
  514.                 else
  515.                 {
  516.                     new Float:X, Float:Y, Float:Z;
  517.                     GetPlayerPos(playerid, X, Y, Z);
  518.                     if(GetPlayerState(pId) == 2)
  519.                     {
  520.                         SetVehiclePos(GetPlayerVehicleID(pId), X, Y+5, Z+1);
  521.                         SetPlayerInterior(pId, GetPlayerInterior(playerid));
  522.                     }
  523.                     else
  524.                     {
  525.                         SetPlayerPos(pId, X, Y+3, Z+1);
  526.                         SetPlayerInterior(pId, GetPlayerInterior(playerid));
  527.                     }
  528.                 }
  529.     return 1;
  530. }
  531.  
  532. COMMAND:healall(playerid,params[])
  533. {
  534.         #pragma unused params
  535.         if (playerdata[playerid][level] < 0) return 0;
  536.         new string[100];
  537.         format(string, sizeof(string),"Administrator has healed all players!", pname);
  538.         SendClientMessageToAll(green, string);
  539.         SetHealthForAll(100);
  540.         return 1;
  541. }
  542.  
  543. stock SetHealthForAll(Float:Health)
  544. {
  545.     for(new i; i<MAX_PLAYERS; i++)
  546.     {
  547.         SetPlayerHealth(i, Health);
  548.     }
  549. }
  550. COMMAND:clearchat(playerid,params[])
  551. {
  552.     #pragma unused params
  553.     if (playerdata[playerid][level] < 3) return 0;
  554.     new pName[MAX_PLAYER_NAME];
  555.     for(new cchat=0; cchat<51; cchat++)
  556.     {
  557.         SendClientMessageToAll(white, " ");
  558.     }
  559.     GetPlayerName(playerid, pName, sizeof(pName));
  560.     SendClientMessageToAll(blue, "Chat Cleared");
  561.     return 1;
  562. }
  563. COMMAND:admins(playerid,params[])
  564. {
  565.     #pragma unused params
  566.     if(playerdata[playerid][level] < 0) return 0;
  567.     new pName[MAX_PLAYER_NAME], string[256];
  568.     SendClientMessage(playerid, white, "Online Admins:");
  569.     for(new i = 0; i < MAX_PLAYERS; i++)
  570.     {
  571.         if(IsPlayerConnected(i))
  572.         {
  573.             if(playerdata[i][level] > 0)
  574.             {
  575.                 GetPlayerName(i, pName,sizeof(pName));
  576.                 format(string,sizeof(string),"- %s(%d) Level: [%d]",pName,i,playerdata[i][level]);
  577.                 SendClientMessage(playerid,yellow,string);
  578.             }
  579.         }
  580.     }
  581.     return 1;
  582. }
  583. COMMAND:spec(playerid,params[])
  584. {
  585.     new pId;
  586.     if(playerdata[playerid][level] < 1) return 0;
  587.         else if(sscanf(params, "d", pId)) return SendClientMessage(playerid, yellow, "Usage: /spec [ID]");
  588.             else if(!IsPlayerConnected(pId)) return SendClientMessage(playerid, red, "The ID You Entered Was not Found.");
  589.                 else
  590.                 {
  591.                     for(new i = 0; i < MAX_PLAYERS; i++)
  592.                     {
  593.                         pSpectating[playerid][i]=0;
  594.                     }
  595.                     TogglePlayerSpectating(playerid, 1);
  596.                     if(IsPlayerInAnyVehicle(pId))
  597.                     {
  598.                         PlayerSpectateVehicle(playerid, GetPlayerVehicleID(pId));
  599.                     }
  600.                     else
  601.                     {
  602.                         PlayerSpectatePlayer(playerid, pId);
  603.                     }
  604.                     SetPlayerInterior(playerid,GetPlayerInterior(pId));
  605.                     pSpectating[playerid][pId]=1;
  606.                     SendClientMessage(playerid, yellow, "Use: /specoff to stop spectating.");
  607.                 }
  608.     return 1;
  609. }
  610.  
  611. COMMAND:specoff(playerid,params[])
  612. {
  613.     #pragma unused params
  614.     if(playerdata[playerid][level] < 1) return 0;
  615.         else
  616.         {
  617.             SetPlayerInterior(playerid, 0);
  618.             TogglePlayerSpectating(playerid, 0);
  619.             for(new i = 0; i < MAX_PLAYERS; i++)
  620.             {
  621.                 if(IsPlayerConnected(i))
  622.                 {
  623.                     pSpectating[playerid][i]=0;
  624.                 }
  625.             }
  626.         }
  627.     return 1;
  628. }
  629.  
  630. COMMAND:mute(playerid,params[])
  631. {
  632.     new pId;
  633.     if(playerdata[playerid][level] < 2) return 0;
  634.         else if(sscanf(params, "d", pId)) return SendClientMessage(playerid, yellow, "Usage: /mute [ID]");
  635.             else if(!IsPlayerConnected(pId)) return SendClientMessage(playerid, red, "The ID You Entered Was Not Found.");
  636.                 else
  637.                 {
  638.                     new pName[MAX_PLAYER_NAME], pName2[MAX_PLAYER_NAME];
  639.                     new string[256], string2[256];
  640.                     GetPlayerName(playerid,pName,sizeof(pName));
  641.                     GetPlayerName(pId,pName2,sizeof(pName2));
  642.                     if(playerdata[pId][PlayerMuted] == 0)
  643.                     {
  644.                         format(string,sizeof(string), "%s (%d) Has Muted %s (%d).",pName,playerid,pName2,pId);
  645.                         SendClientMessageToAdmins(red,string);
  646.                         format(string2,sizeof(string2),"%s (%d) Has Been Muted.",pName2,pId);
  647.                         SendClientMessageToAll(blue,string2);
  648.                         playerdata[pId][PlayerMuted] = 1;
  649.                         Muted[pId] = 1;
  650.                     }
  651.                     else
  652.                     {
  653.                         format(string,sizeof(string), "%s (%d) Has Un-Muted %s (%d).",pName,playerid,pName2,pId);
  654.                         SendClientMessageToAdmins(red,string);
  655.                         format(string2,sizeof(string2),"%s (%d) Has Been Un-Muted.",pName2,pId);
  656.                         SendClientMessageToAll(blue,string2);
  657.                         playerdata[pId][PlayerMuted] = 0;
  658.                         Muted[pId] = 0;
  659.                     }
  660.                 }
  661.     return 1;
  662. }
  663. COMMAND:pm(playerid,params[])
  664. {
  665.     new pmid,messageE[400],string[200], pmname[25], name[25], String[200];
  666.     if(sscanf(params,"ds",pmid, messageE)) return SendClientMessage(playerid, red, "/pm (id) (message)");
  667.     if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, red, "This player isn't connected.");
  668.     if(pmid == playerid) return SendClientMessage(playerid, red, "You cannot PM yourself!");
  669.    
  670.     GetPlayerName(pmid,pmname,25);
  671.     GetPlayerName(playerid,name,25);
  672.    
  673.     format(string, 200, "From %s(%d): %s", name, playerid, messageE);
  674.     format(String, 200, "To %s(%d): %s", pmname, pmid, messageE);
  675.    
  676.     SendClientMessage(pmid, COLOR_YELLOW, string);
  677.     SendClientMessage(playerid, COLOR_YELLOW, String);
  678.     return 1;
  679. }
  680. /*COMMAND:warn(playerid,params[])
  681. {
  682.     if(playerdata[playerid][level] < 1) return 0;
  683.     {
  684.         new pName[MAX_PLAYER_NAME];
  685.         new warnID, aReason[128];
  686.         if(sscanf(params,"ds",warnID, aReason)) return SendClientMessage(playerid, red, "/warn (playerid) (reason)");
  687.         if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, red,"Player not connected.");
  688.         if(warnID == playerid) return SendClientMessage(playerid, red,"You cannot warn yourself!");
  689.  
  690.         new wString[128], Name[24],warnname[25];
  691.         warns[warnID] ++;
  692.         GetPlayerName(warnID,warnname,25);
  693.         GetPlayerName(playerid,Name,24);
  694.         format(wString, 128, "You have been warned by %s for: %s",pName,aReason);
  695.         SendClientMessage(warnID, COLOR_YELLOW, wString);
  696.         format(wString, 128, "Player %s(%d) was warned by %s for: %s",warnname,warnID,pName,aReason);
  697.         SendClientMessageToAll(COLOR_YELLOW, wString);
  698.         if(warns[warnID] >=3)
  699.         {
  700.             new gName[25],string[75];
  701.             GetPlayerName(warnID,gName,25);
  702.             format(string, sizeof(string),"Player %s has been banned from the server(3/3) Warnings(Excessive warnings)",gName);
  703.             SendClientMessageToAll(COLOR_WHITE,string);
  704.             ban[warnID] =1;
  705.             SaveUsers(playerid);
  706.             Kick(warnID);
  707.         }
  708.     }
  709.     return 1;
  710. }*/
  711. COMMAND:save(playerid,params[])
  712. {
  713.     if(playerdata[playerid][level] < 1) return 0;
  714.     {
  715.         SaveAll(playerid);
  716.     }
  717.     return 1;
  718. }
  719. stock SaveAll(playerid)
  720. {
  721.     GetPlayerName(playerid, pname, sizeof(pname));
  722.     /*for(new i; i<MAX_PLAYERS; i++)
  723.     {
  724.         new file[256];
  725.         GetPlayerName(playerid, pname, sizeof(pname));
  726.         format(file, sizeof(file), "/Users/%s.ini", pname);
  727.         dini_IntSet(file, "Kicks",playerdata[playerid][Kicks]);
  728.         dini_IntSet(file, "level", playerdata[playerid][level]);
  729.         dini_IntSet(file, "vip", playerdata[playerid][vip]);
  730.         dini_IntSet(file, "score", GetPlayerScore(playerid));
  731.         dini_IntSet(file, "money", GetPlayerMoney(playerid));
  732.         dini_IntSet(file, "warn", warns[playerid]);
  733.         dini_IntSet(file, "ban", ban[playerid]);
  734.         dini_IntSet(file, "Ip", GetIp(playerid));
  735.     }*/
  736.     return 1;
  737. }
  738. stock SaveUsers(playerid)
  739. {
  740.     GetPlayerName(playerid, pname, sizeof(pname));
  741.     /*if(playerdata[playerid][logged] == 1)
  742.     {
  743.         new file[256];
  744.         GetPlayerName(playerid, pname, sizeof(pname));
  745.         format(file, sizeof(file), "/Users/%s.ini", pname);
  746.         dini_IntSet(file, "Kicks",playerdata[playerid][Kicks]);
  747.         dini_IntSet(file, "level", playerdata[playerid][level]);
  748.         dini_IntSet(file, "vip", playerdata[playerid][vip]);
  749.         dini_IntSet(file, "score", GetPlayerScore(playerid));
  750.         dini_IntSet(file, "money", GetPlayerMoney(playerid));
  751.         dini_IntSet(file, "warn", warns[playerid]);
  752.         dini_IntSet(file, "ban", ban[playerid]);
  753.         dini_IntSet(file, "Ip", GetIp(playerid));
  754.     }*/
  755.     return 1;
  756. }
  757. stock GetIp(playerid)
  758. {
  759.     GetPlayerIp(playerid, ip, sizeof(ip));
  760.     return 1;
  761. }
  762. stock GetName(playerid)
  763. {
  764.     GetPlayerName(playerid, pname, sizeof(pname));
  765.     return 1;
  766. }
  767. stock LoginPlayer(playerid)
  768. {
  769.     new inputtext;
  770.     new check = mysql_query("SELECT `Username, Password` FROM names WHERE `Username = %s, Password = %s`", GetName(playerid), inputtext);
  771.     mysql_store_result();
  772.     if(inputtext == check)
  773.     {
  774.         SendClientMessage(playerid, yellow, "It worked slut");
  775.     }
  776.     else
  777.     {
  778.         SendClientMessage(playerid, yellow, "WHORE");
  779.     }
  780. }
  781.    
  782.    
  783.    
  784.  
  785.            
  786. //=============sscanf===============//
  787. stock sscanf(string[], format[], {Float,_}:...)
  788. {
  789.     new
  790.     formatPos = 0,
  791.     stringPos = 0,
  792.     paramPos = 2,
  793.     paramCount = numargs();
  794.     while (paramPos < paramCount && string[stringPos])
  795.     {
  796.         switch (format[formatPos++])
  797.         {
  798.             case '\0':
  799.             {
  800.                 return 0;
  801.             }
  802.             case 'i', 'd':
  803.             {
  804.                 new
  805.                 neg = 1,
  806.                 num = 0,
  807.                 ch = string[stringPos];
  808.                 if (ch == '-')
  809.                 {
  810.                     neg = -1;
  811.                     ch = string[++stringPos];
  812.                 }
  813.                 do
  814.                 {
  815.                     stringPos++;
  816.                     if (ch >= '0' && ch <= '9')
  817.                     {
  818.                         num = (num * 10) + (ch - '0');
  819.                     }
  820.                     else
  821.                     {
  822.                         return 1;
  823.                     }
  824.                 }
  825.                 while ((ch = string[stringPos]) && ch != ' ');
  826.                 setarg(paramPos, 0, num * neg);
  827.             }
  828.             case 'h', 'x':
  829.             {
  830.                 new
  831.                 ch,
  832.                 num = 0;
  833.                 while ((ch = string[stringPos++]))
  834.                 {
  835.                     switch (ch)
  836.                     {
  837.                         case 'x', 'X':
  838.                         {
  839.                             num = 0;
  840.                             continue;
  841.                         }
  842.                         case '0' .. '9':
  843.                         {
  844.                             num = (num << 4) | (ch - '0');
  845.                         }
  846.                         case 'a' .. 'f':
  847.                         {
  848.                             num = (num << 4) | (ch - ('a' - 10));
  849.                         }
  850.                         case 'A' .. 'F':
  851.                         {
  852.                             num = (num << 4) | (ch - ('A' - 10));
  853.                         }
  854.                         case ' ':
  855.                         {
  856.                             break;
  857.                         }
  858.                         default:
  859.                         {
  860.                             return 1;
  861.                         }
  862.                     }
  863.                 }
  864.                 setarg(paramPos, 0, num);
  865.             }
  866.             case 'c':
  867.             {
  868.                 setarg(paramPos, 0, string[stringPos++]);
  869.             }
  870.             case 'f':
  871.             {
  872.                 new tmp[25];
  873.                 strmid(tmp, string, stringPos, stringPos+sizeof(tmp)-2);
  874.                 setarg(paramPos, 0, _:floatstr(tmp));
  875.             }
  876.             case 's', 'z':
  877.             {
  878.                 new
  879.                 i = 0,
  880.                 ch;
  881.                 if (format[formatPos])
  882.                 {
  883.                     while ((ch = string[stringPos++]) && ch != ' ')
  884.                     {
  885.                         setarg(paramPos, i++, ch);
  886.                     }
  887.                     if (!i) return 1;
  888.                 }
  889.                 else
  890.                 {
  891.                     while ((ch = string[stringPos++]))
  892.                     {
  893.                         setarg(paramPos, i++, ch);
  894.                     }
  895.                 }
  896.                 stringPos--;
  897.                 setarg(paramPos, i, '\0');
  898.             }
  899.             default:
  900.             {
  901.                 continue;
  902.             }
  903.         }
  904.         while (string[stringPos] && string[stringPos] != ' ')
  905.         {
  906.             stringPos++;
  907.         }
  908.         while (string[stringPos] == ' ')
  909.         {
  910.             stringPos++;
  911.         }
  912.         paramPos++;
  913.     }
  914.     while (format[formatPos] == 'z') formatPos++;
  915.     return format[formatPos];
  916. }
  917. #else
  918. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement