Guest User

Mad Freeroam

a guest
Jul 31st, 2019
975
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 69.72 KB | None | 0 0
  1. // -------------------------------------------------- //
  2. //                                                    //
  3. //           SA:MP: Mad Freeroam Gamemode:             //
  4. //                Scripted by Mad                     //
  5. //               2019    /    2020                    //
  6. // -------------------------------------------------- //
  7.  
  8.  
  9. // ------------------------------------------------------------------------- ///
  10.  
  11. #include <a_samp> // Thanks to SA:MP Team.
  12. #include <YSI\y_ini> // Thanks to Y_Less.
  13. #include <sscanf2> // Thanks to Y_Less & Emmet_.
  14. #include <zcmd> // Thanks to Zeex & Yashas.
  15.  
  16. // ------------------------------------------------------------------------- //
  17.  
  18. #define DRegister 1
  19. #define DLogin 2
  20. #define DRSuccess 3
  21. #define DLSuccess 4
  22. #define DHelp 5
  23. #define DRules 6
  24. #define DCmds 7
  25. #define DUpdates 8
  26. #define DCredits 9
  27. #define DWeb 10
  28. #define DAhelp 11
  29. #define DVhelp 12
  30.  
  31. // ------------------------------------------------------------------------- //
  32.  
  33. #define Save "/Data/%s.ini"
  34.  
  35. // ------------------------------------------------------------------------- //
  36.  
  37. #define DWhite "{FFFFFF}"
  38. #define DRed "{F81414}"
  39. #define TGrey  0xAFAFAFAA
  40. #define TGreen  0x33AA33AA
  41. #define TYellow 0xFFFF00AA
  42. #define TBlue 0x0000BBAA
  43. #define TLBlue 0x33CCFFAA
  44. #define TOrange 0xFF9900AA
  45. #define TRed 0xAA3333AA
  46. #define TLime 0x10F441AA
  47. #define TMagenta 0xFF00FFFF
  48. #define TNavy 0x000080AA
  49. #define TAqua 0xF0F8FFAA
  50.  
  51. // ------------------------------------------------------------------------- //
  52. forward Banp(playerid);
  53. forward Kickp(playerid);
  54. // ------------------------------------------------------------------------- //
  55.  
  56.  
  57. enum pInfo
  58. {
  59.     pPass,
  60.     pCash,
  61.     pAdmin,
  62.     pKills,
  63.     pDeaths,
  64.     pScore,
  65.     pSkin,
  66.     pVw,
  67.     pVip
  68.    
  69. }
  70. new PlayerInfo[MAX_PLAYERS][pInfo]; // Saving system.
  71. new Interior[MAX_PLAYERS], Float:pX [MAX_PLAYERS], Float:pY [MAX_PLAYERS], Float:pZ [MAX_PLAYERS]; // Saving position.
  72. new Dead[MAX_PLAYERS]; // Checking if the player is dead.
  73. new PM[MAX_PLAYERS]; // PM on / off.
  74. new Spawned[MAX_PLAYERS]; // Check if player is spawned.
  75. new Goto[MAX_PLAYERS]; // Disables V.I.Ps teleporting to you.
  76. new Get[MAX_PLAYERS]; // Disables V.I.Ps from teleporting you to their location.
  77. new Jailed[MAX_PLAYERS]; // Used when a player gets jailed.
  78.  
  79.  
  80. forward LoadUser_data(playerid,name[],value[]);
  81. public LoadUser_data(playerid,name[],value[])
  82. {
  83.     INI_Int("Password",PlayerInfo[playerid][pPass]);
  84.     INI_Int("Cash",PlayerInfo[playerid][pCash]);
  85.     INI_Int("Admin",PlayerInfo[playerid][pAdmin]);
  86.     INI_Int("Kills",PlayerInfo[playerid][pKills]);
  87.     INI_Int("Deaths",PlayerInfo[playerid][pDeaths]);
  88.     INI_Int("Score",PlayerInfo[playerid][pScore]);
  89.     INI_Int("Skin",PlayerInfo[playerid][pSkin]);
  90.     INI_Int("Virtual World",PlayerInfo[playerid][pVw]);
  91.     INI_Float("pX", pX[playerid]);
  92.     INI_Float("pY", pY[playerid]);
  93.     INI_Float("pZ", pZ[playerid]);
  94.     INI_Int("Interior", Interior[playerid]);
  95.     INI_Int("Vip", PlayerInfo[playerid][pVip]);
  96.  
  97.     return 1;
  98. }
  99.  
  100. main()
  101. {
  102.     print("[SERVER]: Loading...");
  103.     print("[SERVER]: Loading...");
  104.     print("[SERVER]: Loading...");
  105.     print("[SERVER]: Successfully loaded MFreeroam gamemode!");
  106. }
  107.  
  108. public OnGameModeInit()
  109. {
  110.     SetGameModeText("| Mad Freeroam |");
  111.     UsePlayerPedAnims();
  112.     EnableStuntBonusForAll(0);
  113.     DisableInteriorEnterExits();
  114.     AddStaticVehicle(534,2453.3999000,-1662.4000000,13.1000000,90.0000000,156,161);
  115.     AddStaticVehicle(534,2443.3999000,-1662.4000000,13.1000000,90.0000000,156,161);
  116.     AddStaticVehicle(534,2427.8999000,-1662.3000000,13.2000000,90.0000000,156,161);
  117.     AddStaticVehicle(534,2435.6001000,-1662.4000000,13.2000000,90.0000000,156,161);
  118.     AddStaticVehicle(576,2406.2000000,-1655.5000000,13.1000000,90.0000000,153,78);
  119.     AddStaticVehicle(576,2398.7000000,-1655.3000000,13.1000000,90.0000000,153,78);
  120.     AddStaticVehicle(576,2391.5000000,-1655.3000000,13.1000000,90.0000000,153,78);
  121.     AddStaticVehicle(576,2412.8000000,-1655.6000000,13.1000000,90.0000000,153,78);
  122.     AddStaticVehicle(426,2291.8999000,-1680.1000000,13.9000000,0.0000000,124,28);
  123.     AddStaticVehicle(412,2303.3999000,-1637.7000000,14.5000000,0.0000000,66,31);
  124.     AddStaticVehicle(401,2186.6001000,-1668.4000000,14.4000000,0.0000000,57,90);
  125.     AddStaticVehicle(533,2181.6001000,-1700.9000000,13.3000000,0.0000000,30,46);
  126.     AddStaticVehicle(534,2121.3000000,-1780.3000000,13.2000000,0.0000000,101,106);
  127.     AddStaticVehicle(547,2116.7000000,-1780.3000000,13.2000000,0.0000000,70,89);
  128.     AddStaticVehicle(448,2110.5000000,-1783.7000000,13.1000000,0.0000000,132,4);
  129.     AddStaticVehicle(448,2109.1001000,-1783.5000000,13.1000000,0.0000000,132,4);
  130.     AddStaticVehicle(448,2107.8000000,-1783.5000000,13.1000000,0.0000000,132,4);
  131.     AddStaticVehicle(448,2106.4004000,-1783.4004000,13.1000000,0.0000000,132,4);
  132.     AddStaticVehicle(448,2105.2002000,-1783.5000000,13.1000000,0.0000000,132,4);
  133.     AddStaticVehicle(448,2103.7000000,-1783.5000000,13.1000000,0.0000000,132,4);
  134.     AddStaticVehicle(448,2102.2000000,-1783.6000000,13.1000000,0.0000000,132,4);
  135.     AddStaticVehicle(448,2100.6001000,-1783.5000000,13.1000000,0.0000000,132,4);
  136.     AddStaticVehicle(463,2069.3000000,-1919.7000000,13.2000000,0.0000000,101,106);
  137.     AddStaticVehicle(486,2056.0000000,-1940.8000000,13.7000000,90.0000000,245,245);
  138.     AddStaticVehicle(451,2065.5000000,-1919.7000000,13.3000000,0.0000000,27,55);
  139.     AddStaticVehicle(603,2055.8000000,-1904.7000000,13.5000000,0.0000000,109,24);
  140.     AddStaticVehicle(549,2131.5000000,-1908.7000000,13.2000000,0.0000000,88,88);
  141.     AddStaticVehicle(549,2131.3999000,-1917.8000000,13.2000000,0.0000000,88,88);
  142.     AddStaticVehicle(529,2077.0000000,-1698.5000000,13.1000000,0.0000000,101,106);
  143.     AddStaticVehicle(466,2077.6001000,-1736.1000000,13.3000000,0.0000000,51,95);
  144.     AddStaticVehicle(574,2186.9004000,-1991.4004000,13.3000000,0.0000000,165,169);
  145.     AddStaticVehicle(574,2189.2998000,-1991.2002000,13.3000000,0.0000000,165,169);
  146.     AddStaticVehicle(574,2184.7002000,-1986.2998000,13.3000000,0.0000000,165,169);
  147.     AddStaticVehicle(574,2186.7000000,-1986.4000000,13.3000000,0.0000000,165,169);
  148.     AddStaticVehicle(574,2189.2000000,-1986.5000000,13.3000000,0.0000000,165,169);
  149.     AddStaticVehicle(574,2189.0000000,-1982.5000000,13.3000000,0.0000000,165,169);
  150.     AddStaticVehicle(574,2186.6001000,-1982.1000000,13.3000000,0.0000000,165,169);
  151.     AddStaticVehicle(574,2184.2002000,-1982.0000000,13.3000000,0.0000000,165,169);
  152.     AddStaticVehicle(574,2184.3999000,-1991.5000000,13.3000000,0.0000000,165,169);
  153.     AddStaticVehicle(487,1961.1000000,-2341.1001000,13.8000000,0.0000000,151,149);
  154.     AddStaticVehicle(487,1939.2000000,-2341.2000000,13.8000000,0.0000000,151,149);
  155.     AddStaticVehicle(487,1950.5000000,-2371.2000000,13.8000000,0.0000000,151,149);
  156.     AddStaticVehicle(488,1856.7000000,-2404.3999000,13.8000000,0.0000000,42,119);
  157.     AddStaticVehicle(553,1977.5000000,-2631.2000000,15.8000000,0.0000000,77,132);
  158.     AddStaticVehicle(553,1945.3000000,-2629.7000000,15.8000000,0.0000000,77,132);
  159.     AddStaticVehicle(577,1894.3000000,-2492.1001000,12.5000000,90.0000000,34,25);
  160.     AddStaticVehicle(420,1784.4000000,-1932.4000000,13.2000000,0.0000000,215,142);
  161.     AddStaticVehicle(420,1789.2000000,-1932.0000000,13.2000000,0.0000000,215,142);
  162.     AddStaticVehicle(420,1793.7000000,-1931.9000000,13.2000000,0.0000000,215,142);
  163.     AddStaticVehicle(420,1798.3000000,-1932.0000000,13.2000000,0.0000000,215,142);
  164.     AddStaticVehicle(420,1803.3000000,-1931.9000000,13.2000000,0.0000000,215,142);
  165.     AddStaticVehicle(580,1778.5000000,-1891.4000000,13.3000000,0.0000000,95,10);
  166.     AddStaticVehicle(458,1834.7000000,-1870.8000000,13.4000000,0.0000000,37,37);
  167.     AddStaticVehicle(434,1844.2000000,-1871.3000000,13.5000000,0.0000000,215,142);
  168.     AddStaticVehicle(416,2000.5000000,-1413.9000000,17.3000000,180.0000000,245,245);
  169.     AddStaticVehicle(416,2004.2000000,-1455.9000000,13.9000000,90.0000000,245,245);
  170.     AddStaticVehicle(416,2032.6000000,-1437.1000000,17.5000000,0.0000000,245,245);
  171.     AddStaticVehicle(481,1887.2000000,-1399.0000000,13.2000000,0.0000000,214,218);
  172.     AddStaticVehicle(481,1889.9004000,-1395.5000000,13.2000000,0.0000000,214,218);
  173.     AddStaticVehicle(481,1891.9000000,-1392.0000000,13.2000000,0.0000000,214,218);
  174.     AddStaticVehicle(481,1892.9004000,-1388.5000000,13.2000000,0.0000000,214,218);
  175.     AddStaticVehicle(481,1895.2002000,-1383.7002000,13.2000000,0.0000000,214,218);
  176.     AddStaticVehicle(481,1896.7000000,-1380.2000000,13.2000000,0.0000000,214,218);
  177.     AddStaticVehicle(407,1748.9000000,-1455.4000000,13.9000000,270.0000000,132,4);
  178.     AddStaticVehicle(596,1559.2998000,-1611.0996000,13.2000000,0.0000000,-1,-1);
  179.     AddStaticVehicle(596,1562.7002000,-1611.0000000,13.2000000,0.0000000,-1,-1);
  180.     AddStaticVehicle(596,1566.2000000,-1611.7000000,13.2000000,0.0000000,-1,-1);
  181.     AddStaticVehicle(596,1569.9004000,-1611.9004000,13.2000000,0.0000000,-1,-1);
  182.     AddStaticVehicle(596,1555.6000000,-1611.1000000,13.2000000,0.0000000,-1,-1);
  183.     AddStaticVehicle(596,1552.1000000,-1611.1000000,13.2000000,0.0000000,-1,-1);
  184.     AddStaticVehicle(601,1535.5000000,-1667.0000000,13.3000000,0.0000000,245,245);
  185.     AddStaticVehicle(601,1535.0996000,-1675.2002000,13.3000000,0.0000000,245,245);
  186.     AddStaticVehicle(416,1180.4000000,-1339.2000000,14.1000000,90.0000000,245,245);
  187.     AddStaticVehicle(416,1178.3000000,-1309.7000000,14.1000000,90.0000000,245,245);
  188.     AddStaticVehicle(402,1210.8000000,-1378.9000000,13.2000000,0.0000000,66,31);
  189.     AddStaticVehicle(560,1693.7000000,-1612.1000000,13.2000000,0.0000000,115,46);
  190.     AddStaticVehicle(439,1685.7000000,-1677.7000000,13.4000000,0.0000000,189,190);
  191.     AddStaticVehicle(409,1790.0000000,-1811.0000000,13.5000000,90.0000000,245,245);
  192.     CreateObject(1344,2482.1001000,-1650.2000000,13.3000000,0.0000000,0.0000000,0.0000000);
  193.     CreateObject(1299,2497.3000000,-1673.6000000,12.8000000,0.0000000,0.0000000,0.0000000);
  194.     CreateObject(1221,2498.8999000,-1676.5000000,12.8000000,0.0000000,0.0000000,0.0000000);
  195.     CreateObject(1220,2497.2000000,-1675.7000000,12.7000000,0.0000000,0.0000000,0.0000000);
  196.     CreateObject(1221,2496.2000000,-1677.6000000,12.8000000,0.0000000,0.0000000,0.0000000);
  197.     CreateObject(1221,2498.8000000,-1676.5000000,13.7000000,0.0000000,0.0000000,0.0000000);
  198.     CreateObject(1220,2496.1001000,-1677.6000000,13.6000000,0.0000000,0.0000000,0.0000000);
  199.     CreateObject(1221,2499.0000000,-1675.4000000,12.8000000,0.0000000,0.0000000,0.0000000);
  200.     CreateObject(3594,2503.2000000,-1668.6000000,13.0000000,0.0000000,0.0000000,0.0000000);
  201.     CreateObject(3593,2496.8999000,-1667.3000000,13.1000000,0.0000000,0.0000000,60.0000000);
  202.     CreateObject(3221,2495.1001000,-1670.1000000,12.3000000,0.0000000,0.0000000,0.0000000);
  203.     CreateObject(3350,2486.1001000,-1656.6000000,12.3000000,0.0000000,0.0000000,0.0000000);
  204.     CreateObject(3533,2465.1001000,-1665.9000000,16.7000000,0.0000000,0.0000000,0.0000000);
  205.     CreateObject(3533,2466.5000000,-1651.5000000,16.7000000,0.0000000,0.0000000,0.0000000);
  206.     CreateObject(14537,2482.5000000,-1667.3000000,14.3000000,0.0000000,0.0000000,0.0000000);
  207.     CreateObject(1825,2474.7000000,-1659.9000000,12.3000000,0.0000000,0.0000000,0.0000000);
  208.     CreateObject(1825,2473.0000000,-1663.4000000,12.3000000,0.0000000,0.0000000,0.0000000);
  209.     CreateObject(1825,2473.1001000,-1667.0000000,12.3000000,0.0000000,0.0000000,0.0000000);
  210.     CreateObject(1825,2474.5000000,-1670.3000000,12.3000000,0.0000000,0.0000000,0.0000000);
  211.     CreateObject(1825,2476.3000000,-1674.3000000,12.3000000,0.0000000,0.0000000,0.0000000);
  212.     CreateObject(1364,2480.6001000,-1655.8000000,13.1000000,0.0000000,0.0000000,0.0000000);
  213.     CreateObject(1364,2474.6001000,-1655.6000000,13.1000000,0.0000000,0.0000000,0.0000000);
  214.     CreateObject(851,2499.1001000,-1680.9000000,12.7000000,0.0000000,0.0000000,0.0000000);
  215.     CreateObject(3035,2465.0000000,-1662.2000000,13.1000000,0.0000000,0.0000000,90.0000000);
  216.     CreateObject(3035,2464.8000000,-1659.2000000,13.1000000,0.0000000,0.0000000,90.0000000);
  217.     CreateObject(3035,2465.1001000,-1655.8000000,13.1000000,0.0000000,0.0000000,90.0000000);
  218.     CreateObject(1347,2495.2000000,-1675.1000000,12.9000000,0.0000000,0.0000000,0.0000000);
  219.     CreateObject(1550,2487.0000000,-1666.6000000,13.9000000,0.0000000,0.0000000,0.0000000);
  220.     CreateObject(1550,2486.8999000,-1667.8000000,13.9000000,0.0000000,0.0000000,0.0000000);
  221.     CreateObject(1550,2487.8999000,-1667.8000000,13.9000000,0.0000000,0.0000000,0.0000000);
  222.     CreateObject(2035,2487.0000000,-1664.0000000,13.5000000,0.0000000,0.0000000,0.0000000);
  223.     CreateObject(2044,2487.0000000,-1663.5000000,13.5000000,0.0000000,0.0000000,0.0000000);
  224.     CreateObject(2710,2484.8593800,-1664.8418000,12.5147500,0.0000000,0.0000000,0.0000000);
  225.     CreateObject(2710,2484.8999000,-1671.8000000,13.6000000,0.0000000,0.0000000,0.0000000);
  226.     CreateObject(2710,2485.3000000,-1671.8000000,13.6000000,0.0000000,0.0000000,0.0000000);
  227.     CreateObject(2710,2485.7000000,-1671.8000000,13.6000000,0.0000000,0.0000000,0.0000000);
  228.     CreateObject(1486,2484.5000000,-1671.8000000,13.6000000,0.0000000,0.0000000,0.0000000);
  229.     CreateObject(1520,2486.0000000,-1671.9000000,13.5000000,0.0000000,0.0000000,0.0000000);
  230.     CreateObject(1517,2486.3000000,-1672.0000000,13.7000000,0.0000000,0.0000000,0.0000000);
  231.     CreateObject(1543,2486.5000000,-1672.0000000,13.5000000,0.0000000,0.0000000,0.0000000);
  232.     CreateObject(1544,2486.6001000,-1671.8000000,13.5000000,0.0000000,0.0000000,0.0000000);
  233.     CreateObject(1544,2486.7000000,-1672.0000000,13.5000000,0.0000000,0.0000000,0.0000000);
  234.     CreateObject(1546,2486.8999000,-1669.7000000,13.6000000,0.0000000,0.0000000,0.0000000);
  235.     CreateObject(1668,2487.0000000,-1671.1000000,13.6000000,0.0000000,0.0000000,0.0000000);
  236.     CreateObject(1667,2487.1001000,-1670.7000000,13.6000000,0.0000000,0.0000000,0.0000000);
  237.     CreateObject(1669,2486.7000000,-1669.9000000,13.6000000,0.0000000,0.0000000,0.0000000);
  238.     CreateObject(1748,2483.5000000,-1671.7000000,13.5000000,0.0000000,0.0000000,0.0000000);
  239.     CreateObject(1720,2483.3000000,-1674.0000000,12.3000000,0.0000000,0.0000000,160.0000000);
  240.     CreateObject(3819,2484.8999000,-1679.4000000,13.3000000,0.0000000,0.0000000,270.0000000);
  241.     AddPlayerClass(2, 2507.9558,-1670.9633,13.3790, 0, 0, 0, 0, 0, 0, 0);
  242.     return 1;
  243. }
  244.  
  245. public OnPlayerRequestClass(playerid, classid)
  246. {
  247.     Spawned[playerid] = 0;
  248.     SetPlayerPos(playerid, 2507.9558,-1670.9633,13.3790);
  249.     SetPlayerCameraPos(playerid, 2507.9558,-1670.9633,13.3790);
  250.     SetPlayerCameraLookAt(playerid, 2502.1716,-1670.2261,13.3584);
  251.     return 1;
  252. }
  253.  
  254. public OnPlayerConnect(playerid)
  255. {
  256.     pX[playerid] = 2507.9558;
  257.     pY[playerid] = -1670.9633;
  258.     pZ[playerid] = 13.3790;
  259.     Interior[playerid] = 0;
  260.     Dead[playerid] = 0;
  261.     if(fexist(UserPath(playerid)))
  262.     {
  263.         INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  264.         ShowPlayerDialog(playerid, DLogin, DIALOG_STYLE_PASSWORD,""DWhite"Login",""DWhite"Type your password below to login.","Login","Quit");
  265.     }
  266.     else
  267.     {
  268.         ShowPlayerDialog(playerid, DRegister, DIALOG_STYLE_PASSWORD,""DWhite"Registering...",""DWhite"Type your password below to register a new account.","Register","Quit");
  269.     }
  270.     new pname[MAX_PLAYER_NAME], string[128];
  271.     GetPlayerName(playerid, pname, sizeof(pname));
  272.     format(string, sizeof(string), "[SERVER]: %s has joined the server.", pname);
  273.     SendClientMessageToAll(TGreen, string);
  274.     SetPlayerColor(playerid, -1);
  275.     INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  276.     SendClientMessage(playerid, TYellow, "[SERVER]: Welcome to Mad Freeroam hope you enjoy your stay with us.");
  277.     SendClientMessage(playerid, TRed, "[SERVER]: Make sure to read /rules to avoid punishments.");
  278.     return 1;
  279. }
  280.  
  281. public OnPlayerDisconnect(playerid, reason)
  282. {
  283.     GetPlayerPos(playerid, pX[playerid], pY[playerid], pZ[playerid]);
  284.     new INI:File = INI_Open(UserPath(playerid)), pname[MAX_PLAYER_NAME], string[128];
  285.     INI_SetTag(File,"data");
  286.     INI_WriteInt(File,"Cash",GetPlayerMoney(playerid));
  287.     INI_WriteInt(File,"Admin",PlayerInfo[playerid][pAdmin]);
  288.     INI_WriteInt(File,"Kills",PlayerInfo[playerid][pKills]);
  289.     INI_WriteInt(File,"Deaths",PlayerInfo[playerid][pDeaths]);
  290.     INI_WriteInt(File,"Score",GetPlayerScore(playerid));
  291.     INI_WriteInt(File,"Skin",GetPlayerSkin(playerid));
  292.     INI_WriteInt(File,"Virtual World",GetPlayerVirtualWorld(playerid));
  293.     INI_WriteFloat(File, "pX", pX[playerid]);
  294.     INI_WriteFloat(File, "pY", pY[playerid]);
  295.     INI_WriteFloat(File, "pZ", pZ[playerid]);
  296.     INI_WriteInt(File, "Interior", GetPlayerInterior(playerid));
  297.     INI_WriteInt(File, "Vip", PlayerInfo[playerid][pVip]);
  298.     INI_Close(File);
  299.     GetPlayerName(playerid, pname, sizeof(pname));
  300.     print(string);
  301.     format(string, sizeof(string),"[SERVER]: %s has left the server.", pname);
  302.     SendClientMessageToAll(TGrey, string);
  303.  
  304.     return 1;
  305. }
  306.  
  307. public OnPlayerSpawn(playerid)
  308. {
  309.     Spawned[playerid] = 1;
  310.     SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
  311.     SetPlayerInterior(playerid, Interior[playerid]);
  312.     SetPlayerVirtualWorld(playerid, PlayerInfo[playerid][pVw]);
  313.     if(Dead[playerid] == 0)
  314.     {
  315.        SetPlayerPos(playerid, pX[playerid], pY[playerid], pZ[playerid]);
  316.     }
  317.     else
  318.     if(Dead[playerid] == 1)
  319.     {
  320.        SetPlayerPos(playerid, 1178.3490,-1323.2644,14.1157);
  321.        Dead[playerid] = 0;
  322.     }
  323.     return 1;
  324. }
  325.  
  326. public OnPlayerDeath(playerid, killerid, reason)
  327. {
  328.     Dead[playerid] = 1;
  329.     PlayerInfo[killerid][pKills]++;
  330.     PlayerInfo[playerid][pDeaths]++;
  331.     PlayerInfo[killerid][pScore]++;
  332.     SetPlayerScore(killerid, GetPlayerScore(killerid)+1);
  333.     if(GetPlayerMoney(playerid) < 500)
  334.     {
  335.       SendClientMessage(playerid, TRed, "[SERVER]: You didn't have $500 to fix your wounds, get some money junkie.");
  336.     }
  337.     else if(GetPlayerMoney(playerid) > 500)
  338.     {
  339.       SendClientMessage(playerid, TRed, "[SERVER]: You got killed and paid $500 to fix your wounds.");
  340.     }
  341.     new pname[MAX_PLAYER_NAME], ename[MAX_PLAYER_NAME], string[128];
  342.     GetPlayerName(playerid, pname, sizeof(pname));
  343.     GetPlayerName(killerid, ename, sizeof(ename));
  344.     format(string, sizeof(string), "[SERVER]: You killed %s and looted $1,000 from him (+ 1 Score).", pname);
  345.     SendClientMessage(killerid, TGreen, string);
  346.     format(string, sizeof(string), "[SERVER]: You have been killed by %s!", ename);
  347.     SendClientMessage(playerid, TRed, string);
  348.     GivePlayerMoney(killerid, 1000);
  349.     GivePlayerMoney(playerid, -500);
  350.     SendDeathMessage(killerid, playerid, reason);
  351.     return 1;
  352. }
  353.  
  354. public OnVehicleSpawn(vehicleid)
  355. {
  356.     return 1;
  357. }
  358.  
  359. public OnVehicleDeath(vehicleid, killerid)
  360. {
  361.     return 1;
  362. }
  363.  
  364. public OnPlayerText(playerid, text[])
  365. {
  366.     return 1;
  367. }
  368.  
  369. CMD:help(playerid, params[])
  370. {
  371.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  372.     ShowPlayerDialog(playerid, DHelp, DIALOG_STYLE_MSGBOX, DRed"Player help:", DWhite"- Welcome to Mad Freeroam, i'm here to help you!\n- First read /rules, /commands, /credits to get some information about the server.\n- Second if you want to get some money, try killing players. You will get $1,000 each kill.\n- Third, you can use your money to buy weapons & skins from shops around the map.", "Close","");
  373.     return 1;
  374. }
  375. CMD:rules(playerid, params[])
  376. {
  377.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  378.     ShowPlayerDialog(playerid, DRules, DIALOG_STYLE_LIST, DRed"Server rules:", DWhite"- Do not use any cheats.\n- Do not spam, flood or insult.\n- Do not advertise any servers or websites.\n- Do not quit to avoid death.\n- Do not do /q jokes.\n- Do not ban evade.\n- Do not bug abuse.", "Close","");
  379.     return 1;
  380. }
  381. CMD:commands(playerid, params[])   
  382. {
  383.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  384.     ShowPlayerDialog(playerid, DCmds, DIALOG_STYLE_MSGBOX, DRed"Player commands:", DWhite"- Commands: /help, /rules, /commands, /updates, /credits, /web, /stuck, /kill, /fixvw, /pmon, /pmoff, /pm, /disableget, /disablegoto, /enableget, /enablegoto, /givecash", "Close","");
  385.     return 1;
  386. }
  387. CMD:stuck(playerid, params[])  
  388. {
  389.     new Float:x, Float:y, Float:z;
  390.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!")
  391.     SendClientMessage(playerid, TGreen, "[SERVER]: You're not stuck anymore.");
  392.     SendClientMessage(playerid, TRed, "[SERVER]: You will get punished if you abuse this command!");
  393.     GetPlayerPos(playerid, x, y, z);
  394.     SetPlayerPos(playerid, x, y+3, z);
  395.     ClearAnimations(playerid);
  396.  
  397.     return 1;
  398. }
  399. CMD:fixvw(playerid, params[])  
  400. {
  401.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  402.     if(GetPlayerVirtualWorld(playerid) == 0) return SendClientMessage(playerid, TRed, "[SERVER]: Your virtual world is already fixed!");
  403.     if(Jailed[playerid] == 1) return SendClientMessage(playerid, TRed, "[SERVER]: Nice try.");
  404.     SendClientMessage(playerid, TGreen, "[SERVER]: You successfully fixed your virtual world.");
  405.     SetPlayerVirtualWorld(playerid, 0);
  406.     PlayerInfo[playerid][pVw] = 0;
  407.     return 1;
  408. }
  409. CMD:kill(playerid, params[])
  410. {
  411.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  412.     if(Jailed[playerid] == 1) return SendClientMessage(playerid, TRed, "[SERVER]: You're jailed, don't use that buddy.");
  413.     SetPlayerHealth(playerid, 0.0);
  414.     PlayerInfo[playerid][pDeaths]++;
  415.     SendClientMessage(playerid, TYellow, "[SERVER]: You just died...");
  416.     if(GetPlayerMoney(playerid) < 500)
  417.     {
  418.       SendClientMessage(playerid, TRed, "[SERVER]: You didn't have $500 to fix your wounds, get some money junkie.");
  419.     }
  420.     else if(GetPlayerMoney(playerid) > 500)
  421.     {
  422.       SendClientMessage(playerid, TRed, "[SERVER]: You died and paid $500 to fix your wounds.");
  423.       GivePlayerMoney(playerid, -500);
  424.     }
  425.     return 1;
  426. }
  427. CMD:stats(playerid, params[])
  428. {
  429.     new string[128], pname[MAX_PLAYER_NAME];
  430.     GetPlayerName(playerid, pname, sizeof(pname));
  431.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  432.     format(string, sizeof(string),"| Username: %s | Kills: %d | Deaths: %d | Money: %d | Score: %d | Skin ID: %d | V.I.P: %d | Admin: %d", pname,PlayerInfo[playerid][pKills], PlayerInfo[playerid][pDeaths], PlayerInfo[playerid][pCash], PlayerInfo[playerid][pScore], PlayerInfo[playerid][pSkin], PlayerInfo[playerid][pVip], PlayerInfo[playerid][pAdmin]);
  433.     SendClientMessage(playerid, TGrey, string);
  434.     return 1;
  435. }
  436. CMD:updates(playerid, params[])
  437. {
  438.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  439.     ShowPlayerDialog(playerid, DUpdates, DIALOG_STYLE_MSGBOX, DRed"Server updates:", DWhite"- Last Updates: 'Nothing'.", "Close", "");
  440.     return 1;
  441. }
  442. CMD:credits(playerid, params[])
  443. {
  444.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!")
  445.     ShowPlayerDialog(playerid, DCredits, DIALOG_STYLE_MSGBOX, DRed"Server credits:", DWhite"- This server is developed by Mad.", "Close","");
  446.     return 1;
  447. }
  448. CMD:web(playerid, params[])
  449. {
  450.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  451.     ShowPlayerDialog(playerid, DWeb, DIALOG_STYLE_MSGBOX, DRed"Server website:", DWhite" www.website.com ", "Close", "");
  452.     return 1;
  453. }
  454.  
  455. CMD:pmon(playerid, params[])
  456. {
  457.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  458.     if(PM[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: Your PM is already on!");
  459.     PM[playerid] = 0;
  460.     SendClientMessage(playerid, TOrange, "[SERVER]: 'PM' turned ON!");
  461.  
  462.     return 1;
  463. }
  464. CMD:pmoff(playerid, params[])
  465. {
  466.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  467.     if(PM[playerid] == 1) return SendClientMessage(playerid, TRed, "[SERVER]: Your PM is already off!");
  468.     PM[playerid] = 1;
  469.     SendClientMessage(playerid, TOrange, "[SERVER]: 'PM' turned OFF!");
  470.     return 1;
  471. }
  472. CMD:pm(playerid, params[])
  473. {
  474.     new pname[MAX_PLAYER_NAME], tname[MAX_PLAYER_NAME], string[128], tplayer, message;
  475.     GetPlayerName(playerid, pname, sizeof(pname));
  476.     GetPlayerName(tplayer, tname, sizeof(tname));
  477.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  478.     if(sscanf(params, "us", tplayer, message)) SendClientMessage(playerid, TRed, "[SERVER]: Usage: /PM <ID> <Message>.");
  479.     if(tplayer == INVALID_PLAYER_ID) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player id.");
  480.     if(PM[playerid] == 1) return SendClientMessage(playerid, TRed, "[SERVER]: Your PM is off, you can't send messages!");
  481.     if(PM[tplayer] == 1) return SendClientMessage(playerid, TRed, "[SERVER]: This player's PM is off, you can't send him messages!");
  482.     format(string, sizeof(string), "(PM)%s: %s", pname, message);
  483.     SendClientMessage(playerid, TOrange, string);
  484.     format(string, sizeof(string), "(PM)%s: %s", pname, message);
  485.     SendClientMessage(tplayer, TBlue, string);
  486.     return 1;
  487. }
  488. CMD:disablegoto(playerid, params[])
  489. {
  490.     new pname[MAX_PLAYER_NAME];
  491.     GetPlayerName(playerid, pname, sizeof(pname));
  492.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  493.     if(Goto[playerid] == 1) return SendClientMessage(playerid, TRed, "[SERVER]: 'GOTO' is already disabled.");
  494.     else Goto[playerid] = 1;
  495.     SendClientMessage(playerid, TLime, "[SERVER): 'GOTO' disabled!" );
  496.     return 1;
  497. }
  498. CMD:enablegoto(playerid, params[])
  499. {
  500.     new pname[MAX_PLAYER_NAME];
  501.     GetPlayerName(playerid, pname, sizeof(pname));
  502.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  503.     if(Goto[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: 'GOTO' is already enabled.");
  504.     else Goto[playerid] = 0;
  505.     SendClientMessage(playerid, TLime, "[SERVER): 'GOTO' enabled!" );
  506.     return 1;
  507. }
  508. CMD:disableget(playerid, params[])
  509. {
  510.     new pname[MAX_PLAYER_NAME];
  511.     GetPlayerName(playerid, pname, sizeof(pname));
  512.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  513.     if(Get[playerid] == 1) return SendClientMessage(playerid, TRed, "[SERVER]: 'GET' is already disabled.");
  514.     else Get[playerid] = 1;
  515.     SendClientMessage(playerid, TLime, "[SERVER): 'GET' disabled!" );
  516.     return 1;
  517. }
  518. CMD:enableget(playerid, params[])
  519. {
  520.     new pname[MAX_PLAYER_NAME];
  521.     GetPlayerName(playerid, pname, sizeof(pname));
  522.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  523.     if(Get[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: 'GET' is already enabled.");
  524.     else Get[playerid] = 0;
  525.     SendClientMessage(playerid, TLime, "[SERVER): 'GET' enabled!" );
  526.     return 1;
  527. }
  528. CMD:givecash(playerid, params[])
  529. {
  530.     new pname[MAX_PLAYER_NAME], tname[MAX_PLAYER_NAME], string[128], tplayer, cash;
  531.     GetPlayerName(playerid, pname, sizeof(pname));
  532.     GetPlayerName(tplayer, tname, sizeof(tname));
  533.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  534.     if(sscanf(params, "ud", tplayer, cash)) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned");
  535.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player ID!");
  536.     if(GetPlayerMoney(playerid) > cash) return SendClientMessage(playerid, TRed, "[SERVER]: You don't have enough money!");
  537.     GivePlayerMoney(tplayer, cash);
  538.     GivePlayerMoney(playerid, -cash);
  539.     format(string, sizeof(string), "[SERVER]: You've sent %s $%d.", tname, cash);
  540.     SendClientMessage(playerid, TOrange, string);
  541.     format(string, sizeof(string), "[SERVER]: %s sent you $%d.", pname, cash);
  542.     SendClientMessage(tplayer, TLime, string);
  543.     return 1;
  544.  
  545. }
  546.  
  547.     // ------------------------- [ Admin Section ]: ---------------------------- //
  548.  
  549.     // -------------------------[ All Admins ]: -------------------------------- //
  550.  
  551. CMD:ahelp(playerid, params[])
  552. {
  553.  
  554.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  555.     if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  556.     ShowPlayerDialog(playerid, DAhelp, DIALOG_STYLE_MSGBOX, "Admin help:", "- Admin level 1: /disarm, /agoto, /aget, /setvw, /aslap, /getarmour, /gethealth.\n- Admin level 2: /fine, /jail, /unjail, /setskin, /agiveweapon, /sethealth, /setarmour, /akill, /explode, /getstats, /kick, /write, /spec, /freeze, /unspec, /unfreeze\n- Admin level 3: /ban, /sban, /skick, /agivecash, /asetscore. ", "Close", "");
  557.     return 1;
  558. }
  559.  
  560.     // -------------------------[ RCON Admin ]: -------------------------------- //
  561.  
  562. CMD:setadmin(playerid, params[])
  563. {
  564.     new pname[MAX_PLAYER_NAME], tname[MAX_PLAYER_NAME], string[128], tplayer, alevel;
  565.     GetPlayerName(playerid, pname, sizeof(pname));
  566.     GetPlayerName(tplayer, tname, sizeof(tname));
  567.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  568.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  569.     if(sscanf(params, "ud", tplayer, alevel)) return SendClientMessage(playerid, TRed, "[SERVER]: Usage: /setadmin <ID> <Level>.");
  570.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player id.");
  571.     if(0 > alevel || alevel > 3 ) return SendClientMessage(playerid, TRed, "[SERVER]: Level must be between 0 & 3.");
  572.     format(string, sizeof(string), "[ADMIN]: Admin %s set your admin level to %d!", pname, alevel);
  573.     SendClientMessage(tplayer, TOrange, string);
  574.     format(string, sizeof(string), "[ADMIN]: You've set %s's admin level to %d.", tname, alevel);
  575.     SendClientMessage(playerid, TLime, string);
  576.     PlayerInfo[tplayer][pAdmin] = alevel;
  577.     return 1;
  578. }
  579. CMD:setvip(playerid, params[])
  580. {
  581.     new pname[MAX_PLAYER_NAME], tname[MAX_PLAYER_NAME], string[128], tplayer, vlevel;
  582.     GetPlayerName(playerid, pname, sizeof(pname));
  583.     GetPlayerName(tplayer, tname, sizeof(tname));
  584.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  585.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  586.     if(sscanf(params, "ud", tplayer, vlevel)) return SendClientMessage(playerid, TRed, "[SERVER]: Usage: /setvip <ID> <Level>.");
  587.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player id.");
  588.     if(0 > vlevel || vlevel > 3 ) return SendClientMessage(playerid, TRed, "[SERVER]: Level must be between 0 & 3.");
  589.     format(string, sizeof(string), "[ADMIN]: Admin %s set your V.I.P level to %d!", pname, vlevel);
  590.     SendClientMessage(tplayer, TOrange, string);
  591.     format(string, sizeof(string), "[ADMIN]: You've set %s's V.I.P level to %d.", tname, vlevel);
  592.     SendClientMessage(playerid, TLime, string);
  593.     PlayerInfo[tplayer][pAdmin] = vlevel;
  594.     return 1;
  595. }
  596.  
  597.     // -------------------------[ All V.I.Ps ]: -------------------------------- //
  598.  
  599. CMD:vhelp(playerid, params[])
  600. {
  601.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  602.     if(PlayerInfo[playerid][pVip] < 1) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level V.I.P to use this command!");
  603.     ShowPlayerDialog(playerid, DVhelp, DIALOG_STYLE_MSGBOX, "V.I.P help:", "- V.I.P Level 1: /vgoto, /vget\n- V.I.P Level 2: /myskin, /vwrite /vcolor\n- V.I.P Level 3: /vfreeweapon, /vjetpack.", "Close", "");
  604.     return 1;
  605. }
  606.  
  607.     // -------------------------[ V.I.P level 1 ]: -------------------------------- //
  608.  
  609. CMD:vgoto(playerid, params[])
  610. {
  611.     new pname[MAX_PLAYER_NAME], tname[MAX_PLAYER_NAME], string[128], tplayer, Float:x, Float: y, Float: z;
  612.     GetPlayerName(playerid, pname, sizeof(pname));
  613.     GetPlayerName(tplayer, tname, sizeof(tname));
  614.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  615.     if(PlayerInfo[playerid][pVip] < 1) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level V.I.P to use this command!");
  616.     if(sscanf(params, "d", tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Usage: /vgoto <ID>.");
  617.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player id.");
  618.     if(tplayer == playerid) return SendClientMessage(playerid, TRed, "[SERVER]: You can't teleport to yourself!");
  619.     if(Goto[tplayer] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: Player disabled 'GOTO");
  620.     GetPlayerPos(tplayer, x, y, z);
  621.     SetPlayerPos(playerid, x, y, z);
  622.     format(string, sizeof(string), "[V.I.P]: V.I.P member %s teleported to you.", pname);
  623.     SendClientMessage(playerid, TOrange, string);
  624.     format(string, sizeof(string), "[V.I.P]: You successfully teleported to %s!", tname);
  625.     SendClientMessage(playerid, TLime, string);
  626.     SendClientMessage(tplayer, TRed, "[SERVER]: If you want to stop V.I.P members from teleporting to you, use /disablegoto.");
  627.     return 1;
  628. }
  629. CMD:vget(playerid, params[])
  630. {
  631.     new pname[MAX_PLAYER_NAME], tname[MAX_PLAYER_NAME], string[128], tplayer, Float:x, Float:y, Float:z;
  632.     GetPlayerName(playerid, pname, sizeof(pname));
  633.     GetPlayerName(tplayer, tname, sizeof(tname));
  634.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  635.     if(PlayerInfo[playerid][pVip] < 1) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level V.I.P to use this command!");
  636.     if(sscanf(params, "d", tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Usage: /vget <ID>.");
  637.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player id.");
  638.     if(tplayer == playerid) return SendClientMessage(playerid, TRed, "[SERVER]: You can't get yourself!");
  639.     if(Get[tplayer] == 1) return SendClientMessage(playerid, TRed, "[SERVER]: Player disabled 'GET");
  640.     GetPlayerPos(playerid, x, y, z);
  641.     SetPlayerPos(tplayer, x, y, z);
  642.     format(string, sizeof(string), "[V.I.P]: V.I.P %s teleported you to their location.", pname);
  643.     SendClientMessage(playerid, TOrange, string);
  644.     format(string, sizeof(string), "[V.I.P]: You successfully teleported %s to your location!", tname);
  645.     SendClientMessage(playerid, TLime, string);
  646.     SendClientMessage(tplayer, TRed, "[SERVER]: If you want to stop V.I.P members from teleporting you, use /disableget.");
  647.     return 1;
  648. }
  649.  
  650.     // -------------------------[ V.I.P level 2 ]: -------------------------------- //
  651.  
  652. CMD:myskin(playerid, params[])
  653. {
  654.     new pname[MAX_PLAYER_NAME], skinid;
  655.     GetPlayerName(playerid, pname, sizeof(pname));
  656.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  657.     if(PlayerInfo[playerid][pVip] < 2) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level V.I.P to use this command!");
  658.     if(sscanf(params, "d", skinid)) return SendClientMessage(playerid, TRed, "[SERVER]: Usage: /myskin <Skin ID>.");
  659.     if(0 > skinid || skinid > 311 ) return SendClientMessage(playerid, TRed, "[SERVER]: SA:MP supports skins from 0 to 311.");
  660.     SetPlayerSkin(playerid, skinid);
  661.     return 1;
  662. }
  663. CMD:vwrite(playerid, params[])
  664. {
  665.     new pname[MAX_PLAYER_NAME], string[128];
  666.     GetPlayerName(playerid, pname, sizeof(pname));
  667.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  668.     if(PlayerInfo[playerid][pVip] < 2 ) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level V.I.P to use this command!");
  669.     if(sscanf(params, "s", string)) SendClientMessage(playerid, TRed, "[SERVER]: Usage: /vwrite <Text>.");
  670.     format(string, sizeof(string), "[V.I.P - %s]: %s", pname, string);
  671.     SendClientMessageToAll(TLBlue, string);
  672.     return 1;
  673. }
  674. CMD:vcolor(playerid, params[])
  675. {
  676.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  677.     if(PlayerInfo[playerid][pVip] < 2) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level V.I.P to use this command!");
  678.     SetPlayerColor(playerid, TMagenta);
  679.     SendClientMessage(playerid, TLime, "[SERVER]: You've set your name color to V.I.P color.");
  680.     return 1;
  681. }
  682.  
  683.     // -------------------------[ V.I.P level 3 ]: -------------------------------- //
  684.  
  685. CMD:vfreeweapon(playerid, params[])
  686. {
  687.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  688.     if(PlayerInfo[playerid][pVip] < 3) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level V.I.P to use this command!");
  689.     GivePlayerWeapon(playerid, 24, 9999);
  690.     SendClientMessage(playerid, TLime, "[SERVER]: You recieved free V.I.P weapon.");
  691.     return 1;
  692. }
  693. CMD:vjetpack(playerid, params[])
  694. {
  695.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  696.     if(PlayerInfo[playerid][pVip] < 3) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level V.I.P to use this command!");
  697.     if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, TRed, "[SERVER]: Exit your vehicle please.");
  698.     SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USEJETPACK);
  699.     return 1;
  700. }
  701.  
  702.     // -------------------------[ Admin level 1 ]: -------------------------------- //
  703.  
  704. CMD:gethealth(playerid, params[])
  705. {
  706.     new tname[MAX_PLAYER_NAME], string[128], tplayer, Float:phealth;
  707.     GetPlayerName(tplayer, tname, sizeof(tname));
  708.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned");
  709.     if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  710.     if(sscanf(params, "d", tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Usage: /gethealth <ID>");
  711.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player.");
  712.     GetPlayerHealth(playerid, phealth);
  713.     format(string, sizeof(string), "[ADMIN]: %s's health is %d.", tname, phealth );
  714.     SendClientMessage(playerid, TOrange, string);
  715.     return 1;
  716. }
  717. CMD:getarmour(playerid, params[])
  718. {
  719.     new tname[MAX_PLAYER_NAME], string[128], tplayer, Float:armour;
  720.     GetPlayerName(tplayer, tname, sizeof(tname));
  721.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned");
  722.     if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  723.     if(sscanf(params, "d", tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Usage: /getarmour <ID>");
  724.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player.");
  725.     GetPlayerArmour(tplayer, armour);
  726.     format(string, sizeof(string), "[ADMIN]: %s's armour is %d.", tname, armour);
  727.     SendClientMessage(playerid, TOrange, string);
  728.     return 1;
  729. }
  730. CMD:agoto(playerid, params[])
  731. {
  732.     new pname[MAX_PLAYER_NAME], tname[MAX_PLAYER_NAME], string[128], tplayer, Float:x, Float: y, Float: z;
  733.     GetPlayerName(playerid, pname, sizeof(pname));
  734.     GetPlayerName(tplayer, tname, sizeof(tname));
  735.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  736.     if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  737.     if(sscanf(params, "d", tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Usage: /agoto <ID>.");
  738.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player id.");
  739.     if(tplayer == playerid) return SendClientMessage(playerid, TRed, "[SERVER]: You can't teleport to yourself!");
  740.     GetPlayerPos(tplayer, x, y, z);
  741.     SetPlayerPos(playerid, x, y, z);
  742.     format(string, sizeof(string), "[ADMIN]: Admin %s teleported to you.", pname);
  743.     SendClientMessage(playerid, TRed, string);
  744.     format(string, sizeof(string), "[ADMIN]: You successfully teleported to %s!", tname);
  745.     SendClientMessage(playerid, TYellow, string);
  746.     return 1;
  747. }
  748. CMD:aget(playerid, params[])
  749. {
  750.     new pname[MAX_PLAYER_NAME], tname[MAX_PLAYER_NAME], string[128], tplayer, Float:x, Float:y, Float:z;
  751.     GetPlayerName(playerid, pname, sizeof(pname));
  752.     GetPlayerName(tplayer, tname, sizeof(tname));
  753.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  754.     if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  755.     if(sscanf(params, "d", tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Usage: /aget <ID>.");
  756.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player id.");
  757.     if(tplayer == playerid) return SendClientMessage(playerid, TRed, "[SERVER]: You can't get yourself!");
  758.     GetPlayerPos(playerid, x, y, z);
  759.     SetPlayerPos(tplayer, x, y, z);
  760.     format(string, sizeof(string), "[ADMIN]: Admin %s teleported you to their location.", pname);
  761.     SendClientMessage(playerid, TRed, string);
  762.     format(string, sizeof(string), "[ADMIN]: You successfully teleported %s to your location!", tname);
  763.     SendClientMessage(playerid, TYellow, string);
  764.     return 1;
  765. }
  766. CMD:aslap(playerid, params[])
  767. {
  768.     new pname[MAX_PLAYER_NAME], tname[MAX_PLAYER_NAME], string[128], tplayer, Float:x, Float:y, Float:z;
  769.     GetPlayerName(playerid, pname, sizeof(pname));
  770.     GetPlayerName(tplayer, tname, sizeof(tname));
  771.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  772.     if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  773.     if(sscanf(params, "d", tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Usage: /aslap <ID>.");
  774.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player id.");
  775.     GetPlayerPos(playerid, x, y, z);
  776.     SetPlayerPos(tplayer, x+20, y, z);
  777.     format(string, sizeof(string), "[ADMIN]: Admin %s slapped you.", pname);
  778.     SendClientMessage(playerid, TRed, string);
  779.     format(string, sizeof(string), "[ADMIN]: You successfully slapped %s.", tname);
  780.     SendClientMessage(playerid, TYellow, string);
  781.     return 1;
  782. }
  783. CMD:disarm(playerid, params[])
  784. {
  785.     new pname[MAX_PLAYER_NAME], tname[MAX_PLAYER_NAME], string[128], tplayer;
  786.     GetPlayerName(playerid, pname, sizeof(pname));
  787.     GetPlayerName(tplayer, tname, sizeof(tname));
  788.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  789.     if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  790.     if(sscanf(params, "d", tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Usage: /disarm <ID>.");
  791.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player id.");
  792.     ResetPlayerWeapons(tplayer);
  793.     format(string, sizeof(string), "[ADMIN]: Admin %s disarmed you.", pname);
  794.     SendClientMessage(playerid, TRed, string);
  795.     format(string, sizeof(string), "[ADMIN]: You successfully disarmed %s.", tname);
  796.     SendClientMessage(playerid, TYellow, string);
  797.     return 1;
  798. }
  799. CMD:setvw(playerid, params[])
  800. {
  801.     new pname[MAX_PLAYER_NAME], tname[MAX_PLAYER_NAME], string[128], tplayer, vw;
  802.     GetPlayerName(playerid, pname, sizeof(pname));
  803.     GetPlayerName(tplayer, tname, sizeof(tname));
  804.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  805.     if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  806.     if(sscanf(params, "ud", tplayer, vw)) return SendClientMessage(playerid, TRed, "[SERVER]: Usage: /setvw <ID> <Virtual world ID>.");
  807.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player id.");
  808.     if(0 > vw || vw > 1000 ) return SendClientMessage(playerid, TRed, "[SERVER]: For technical reasons, Virtual world ID must be between 0 & 1000.");
  809.     if(Jailed[tplayer] == 1) return SendClientMessage(playerid, TRed, "[SERVER]: Don't you dare.");
  810.     format(string, sizeof(string), "[ADMIN]: Admin %s set your virtual world to %d!", pname, vw);
  811.     SendClientMessage(tplayer, TGreen, string);
  812.     format(string, sizeof(string), "[ADMIN]: You've set %s's virtual world to %d.", tname, vw);
  813.     SendClientMessage(playerid, TYellow, string);
  814.     return 1;
  815. }
  816. CMD:fine(playerid, params[])
  817. {
  818.     new pname[MAX_PLAYER_NAME], tname[MAX_PLAYER_NAME], string[128], tplayer, amount;
  819.     GetPlayerName(playerid, pname, sizeof(pname));
  820.     GetPlayerName(tplayer, tname, sizeof(tname));
  821.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  822.     if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  823.     if(sscanf(params, "ud", tplayer, amount)) return SendClientMessage(playerid, TRed, "[SERVER]: Usage: /fine <ID> <Amount>.");
  824.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player id.");
  825.     if(GetPlayerMoney(tplayer) < 0) return SendClientMessage(playerid, TRed, "[SERVER]: Somehow this player have -$0, maybe he is a rule-breaker.");
  826.     GivePlayerMoney(tplayer, -amount);
  827.     format(string, sizeof(string), "[ADMIN]: Admin %s fined with $%d!", pname, amount);
  828.     SendClientMessage(tplayer, TRed, string);
  829.     format(string, sizeof(string), "[ADMIN]: You've fined %s with $%d.", tname, amount);
  830.     SendClientMessage(playerid, TYellow, string);
  831.     return 1;
  832. }
  833.     // -------------------------[ Admin level 2 ]: -------------------------------- //
  834.  
  835. CMD:ajetpack(playerid, params[])
  836. {
  837.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  838.     if(PlayerInfo[playerid][pAdmin] < 3) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  839.     if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, TRed, "[SERVER]: Exit your vehicle please.");
  840.     SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USEJETPACK);
  841.     return 1;
  842. }
  843.  
  844. CMD:setskin(playerid, params[])
  845. {
  846.     new pname[MAX_PLAYER_NAME], tname[MAX_PLAYER_NAME], string[128], tplayer, skinid;
  847.     GetPlayerName(playerid, pname, sizeof(pname));
  848.     GetPlayerName(tplayer, tname, sizeof(tname));
  849.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  850.     if(PlayerInfo[playerid][pAdmin] < 2) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  851.     if(sscanf(params, "ud", tplayer, skinid)) return SendClientMessage(playerid, TRed, "[SERVER]: Usage: /setskin <ID> <Skin ID>.");
  852.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player id.");
  853.     if(0 > skinid || skinid > 311 ) return SendClientMessage(playerid, TRed, "[SERVER]: SA:MP supports skins from 0 to 311.");
  854.     SetPlayerSkin(playerid, skinid);
  855.     format(string, sizeof(string), "[ADMIN]: Admin %s set your skin to %d!", pname, skinid);
  856.     SendClientMessage(tplayer, TGreen, string);
  857.     format(string, sizeof(string), "[ADMIN]: You've set %s's skin to %d.", tname, skinid);
  858.     SendClientMessage(playerid, TYellow, string);
  859.     return 1;
  860. }
  861. CMD:jail(playerid, params[])
  862. {
  863.     new pname[MAX_PLAYER_NAME], tname[MAX_PLAYER_NAME], string[128], tplayer;
  864.     GetPlayerName(playerid, pname, sizeof(pname));
  865.     GetPlayerName(tplayer, tname, sizeof(tname));
  866.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  867.     if(PlayerInfo[playerid][pAdmin] < 2) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  868.     if(sscanf(params, "u", tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Usage: /jail <ID>.");
  869.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player id.");
  870.     if(Jailed[tplayer] == 1) return SendClientMessage(playerid, TRed, "[SERVER]: Player is already jailed!");
  871.     Jailed[tplayer] = 1;
  872.     SetPlayerInterior(tplayer, 3);
  873.     SetPlayerVirtualWorld(tplayer, 2);
  874.     SetPlayerFacingAngle(playerid, 360.0);
  875.     SetPlayerPos(tplayer, 197.5662, 175.4800, 1004.0 );
  876.     ResetPlayerWeapons(tplayer);
  877.     format(string, sizeof(string), "[ADMIN]: You have been jailed by %s.", pname);
  878.     SendClientMessage(tplayer, TRed, string);
  879.     format(string, sizeof(string), "[ADMIN]: You successfully jailed %s!", tname);
  880.     SendClientMessage(playerid, TRed, string);
  881.     return 1;
  882. }
  883. CMD:unjail(playerid, params[])
  884. {
  885.     new pname[MAX_PLAYER_NAME], tname[MAX_PLAYER_NAME], string[128], tplayer;
  886.     GetPlayerName(playerid, pname, sizeof(pname));
  887.     GetPlayerName(tplayer, tname, sizeof(tname));
  888.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  889.     if(PlayerInfo[playerid][pAdmin] < 2) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  890.     if(sscanf(params, "u", tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Usage: /unjail <ID>.");
  891.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player id.");
  892.     if(Jailed[tplayer] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: Player is already unjailed!");
  893.     Jailed[tplayer] = 0;
  894.     SetPlayerInterior(tplayer, 0);
  895.     SetPlayerVirtualWorld(tplayer, 0);
  896.     SpawnPlayer(tplayer);
  897.     format(string, sizeof(string), "[ADMIN]: You have been unjailed by %s.", pname);
  898.     SendClientMessage(tplayer, TRed, string);
  899.     format(string, sizeof(string), "[ADMIN]: You successfully unjailed %s!", tname);
  900.     SendClientMessage(playerid, TRed, string);
  901.     return 1;
  902. }
  903. CMD:agiveweapon(playerid, params[])
  904. {
  905.     new pname[MAX_PLAYER_NAME], tname[MAX_PLAYER_NAME], string[128], tplayer, weaponid, ammo;
  906.     GetPlayerName(playerid, pname, sizeof(pname));
  907.     GetPlayerName(tplayer, tname, sizeof(tname));
  908.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  909.     if(PlayerInfo[playerid][pAdmin] < 2) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  910.     if(sscanf(params, "udd", tplayer, weaponid, ammo)) return SendClientMessage(playerid, TRed, "[SERVER]: Usage: /agiveweapon <ID> <Weapon ID> <Ammo>.");
  911.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player id.");
  912.     if(weaponid > 42 ) return SendClientMessage(playerid, TRed, "[SERVER]: Do not use invalid weapons please.");
  913.     GivePlayerWeapon(tplayer, weaponid, ammo);
  914.     format(string, sizeof(string), "[ADMIN]: Admin %s gave you weapon ID: %d with %d ammo!", pname, weaponid, ammo);
  915.     SendClientMessage(tplayer, TGreen, string);
  916.     format(string, sizeof(string), "[ADMIN]: You've given %s the weapon ID: %d with %d ammo.", tname, weaponid, ammo);
  917.     SendClientMessage(playerid, TYellow, string);
  918.     return 1;
  919. }
  920. CMD:sethealth(playerid, params[])
  921. {
  922.     new pname[MAX_PLAYER_NAME], tname[MAX_PLAYER_NAME], string[128], tplayer, Float:health;
  923.     GetPlayerName(playerid, pname, sizeof(pname));
  924.     GetPlayerName(tplayer, tname, sizeof(tname));
  925.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  926.     if(PlayerInfo[playerid][pAdmin] < 2) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  927.     if(sscanf(params, "ud", tplayer, health)) return SendClientMessage(playerid, TRed, "[SERVER]: Usage: /sethealth <ID> <Amount>.");
  928.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player id.");
  929.     SetPlayerHealth(playerid, health);
  930.     format(string, sizeof(string), "[ADMIN]: Admin %s set your health to %d!", pname, health);
  931.     SendClientMessage(tplayer, TGreen, string);
  932.     format(string, sizeof(string), "[ADMIN]: You've set %s's health to %d.", tname, health);
  933.     SendClientMessage(playerid, TYellow, string);
  934.     return 1;
  935. }
  936. CMD:setarmour(playerid, params[])
  937. {
  938.     new pname[MAX_PLAYER_NAME], tname[MAX_PLAYER_NAME], string[128], tplayer, armour;
  939.     GetPlayerName(playerid, pname, sizeof(pname));
  940.     GetPlayerName(tplayer, tname, sizeof(tname));
  941.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  942.     if(PlayerInfo[playerid][pAdmin] < 2) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  943.     if(sscanf(params, "ud", tplayer, armour)) return SendClientMessage(playerid, TRed, "[SERVER]: Usage: /setarmour <ID> <Amount>.");
  944.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player id.");
  945.     SetPlayerArmour(playerid, armour);
  946.     format(string, sizeof(string), "[ADMIN]: Admin %s set your armour to %d!", pname, armour);
  947.     SendClientMessage(tplayer, TGreen, string);
  948.     format(string, sizeof(string), "[ADMIN]: You've set %s's armour to %d.", tname, armour);
  949.     SendClientMessage(playerid, TYellow, string);
  950.     return 1;
  951. }
  952. CMD:akill(playerid, params[])
  953. {
  954.     new pname[MAX_PLAYER_NAME], tname[MAX_PLAYER_NAME], string[128], tplayer;
  955.     GetPlayerName(playerid, pname, sizeof(pname));
  956.     GetPlayerName(tplayer, tname, sizeof(tname));
  957.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  958.     if(PlayerInfo[playerid][pAdmin] < 2) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  959.     if(sscanf(params, "u", tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Usage: /akill <ID>.");
  960.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player id.");
  961.     if(Jailed[tplayer] == 1) return SendClientMessage(playerid, TRed, "[SERVER]: I know i'm a program, but not stupid.");
  962.     SetPlayerHealth(tplayer, 0);
  963.     PlayerInfo[tplayer][pDeaths]++;
  964.     format(string, sizeof(string), "[ADMIN]: Admin %s killed you.", pname);
  965.     SendClientMessage(playerid, TRed, string);
  966.     format(string, sizeof(string), "[ADMIN]: You successfully killed %s!", tname);
  967.     SendClientMessage(playerid, TYellow, string);
  968.     return 1;
  969. }
  970. CMD:explode(playerid, params[])
  971. {
  972.     new pname[MAX_PLAYER_NAME], tname[MAX_PLAYER_NAME], string[128], tplayer, Float:x, Float: y, Float: z;
  973.     GetPlayerName(playerid, pname, sizeof(pname));
  974.     GetPlayerName(tplayer, tname, sizeof(tname));
  975.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  976.     if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  977.     if(sscanf(params, "u", tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Usage: /explode <ID>.");
  978.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player id.");
  979.     GetPlayerPos(tplayer, x, y, z);
  980.     CreateExplosion(x, y, z, 1, 1);
  981.     format(string, sizeof(string), "[ADMIN]: Admin %s exploded you.", pname);
  982.     SendClientMessage(playerid, TRed, string);
  983.     format(string, sizeof(string), "[ADMIN]: You successfully exploded %s!", tname);
  984.     SendClientMessage(playerid, TYellow, string);
  985.     return 1;
  986. }
  987. CMD:getstats(playerid, params[])
  988. {
  989.     new pname[MAX_PLAYER_NAME], string[128], tplayer;
  990.     GetPlayerName(playerid, pname, sizeof(pname));
  991.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  992.     if(PlayerInfo[playerid][pAdmin] < 2 ) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  993.     if(sscanf(params, "u", tplayer)) SendClientMessage(playerid, TRed, "[SERVER]: Usage: /getstats <ID>.");
  994.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player id.");
  995.     format(string, sizeof(string),"| Kills: %d | Deaths: %d | Money: %d | Score: %d | Skin ID: %d | V.I.P: %d", PlayerInfo[tplayer][pKills], PlayerInfo[tplayer][pDeaths], PlayerInfo[tplayer][pCash], PlayerInfo[tplayer][pScore], PlayerInfo[tplayer][pSkin], PlayerInfo[tplayer][pVip]);
  996.     SendClientMessage(playerid, TGrey, string);
  997.     return 1;
  998. }
  999. CMD:kick(playerid, params[])
  1000. {
  1001.     new pname[MAX_PLAYER_NAME], tname[MAX_PLAYER_NAME], string[128], tplayer, reason[28];
  1002.     GetPlayerName(playerid, pname, sizeof(pname));
  1003.     GetPlayerName(tplayer, tname, sizeof(tname));
  1004.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  1005.     if(PlayerInfo[playerid][pAdmin] < 2 ) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  1006.     if(sscanf(params, "us", tplayer, reason)) SendClientMessage(playerid, TRed, "[SERVER]: Usage: /kick <ID> <Reason>.");
  1007.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player id.");
  1008.     format(string, sizeof(string), "[ADMIN]: Admin %s kicked  %s for ' %s '!", pname, tname, reason);
  1009.     SendClientMessageToAll(TRed, string);
  1010.     format(string, sizeof(string), "[ADMIN]: You kicked %s for ' %s '!", tname, reason);
  1011.     SendClientMessage(playerid, TYellow, string);
  1012.     Kickp(playerid);
  1013.     return 1;
  1014. }
  1015. CMD:write(playerid, params[])
  1016. {
  1017.     new pname[MAX_PLAYER_NAME], string[128];
  1018.     GetPlayerName(playerid, pname, sizeof(pname));
  1019.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  1020.     if(PlayerInfo[playerid][pAdmin] < 2 ) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  1021.     if(sscanf(params, "s", string)) SendClientMessage(playerid, TRed, "[SERVER]: Usage: /write <Text>.");
  1022.     format(string, sizeof(string), "[ADMIN - %s]: %s", pname, string);
  1023.     SendClientMessageToAll(TRed, string);
  1024.     return 1;
  1025. }
  1026. CMD:spec(playerid, params[])
  1027. {
  1028.     new pname[MAX_PLAYER_NAME], tname[MAX_PLAYER_NAME], string[128], tplayer;
  1029.     GetPlayerName(playerid, pname, sizeof(pname));
  1030.     GetPlayerName(tplayer, tname, sizeof(tname));
  1031.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  1032.     if(PlayerInfo[playerid][pAdmin] < 2 ) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  1033.     if(sscanf(params, "u", tplayer)) SendClientMessage(playerid, TRed, "[SERVER]: Usage: /spec <ID>.");
  1034.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player id.");
  1035.     format(string, sizeof(string), "[ADMIN]: You're spectating %s!", tname);
  1036.     SendClientMessage(playerid, TYellow, string);
  1037.     TogglePlayerSpectating(playerid, 1);
  1038.     PlayerSpectatePlayer(playerid, tplayer, SPECTATE_MODE_NORMAL);
  1039.     return 1;
  1040. }
  1041. CMD:freeze(playerid, params[])
  1042. {
  1043.     new pname[MAX_PLAYER_NAME], tname[MAX_PLAYER_NAME], string[128], tplayer;
  1044.     GetPlayerName(playerid, pname, sizeof(pname));
  1045.     GetPlayerName(tplayer, tname, sizeof(tname));
  1046.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  1047.     if(PlayerInfo[playerid][pAdmin] < 2 ) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  1048.     if(sscanf(params, "u", tplayer)) SendClientMessage(playerid, TRed, "[SERVER]: Usage: /freeze <ID>.");
  1049.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player id.");
  1050.     format(string, sizeof(string), "[ADMIN]: You froze %s!", tname);
  1051.     SendClientMessage(playerid, TYellow, string);
  1052.     format(string, sizeof(string), "[ADMIN: Admin %s froze you!");
  1053.     TogglePlayerControllable(tplayer, 0);
  1054.     return 1;
  1055. }
  1056. CMD:unspec(playerid, params[])
  1057. {
  1058.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  1059.     if(PlayerInfo[playerid][pAdmin] < 2 ) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  1060.     TogglePlayerSpectating(playerid, 0);
  1061.     SendClientMessage(playerid, TGreen, "[SERVER]: You stopped spectating!");
  1062.     return 1;
  1063. }
  1064. CMD:unfreeze(playerid, params[])
  1065. {
  1066.     new pname[MAX_PLAYER_NAME], tname[MAX_PLAYER_NAME], string[128], tplayer;
  1067.     GetPlayerName(playerid, pname, sizeof(pname));
  1068.     GetPlayerName(tplayer, tname, sizeof(tname));
  1069.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  1070.     if(PlayerInfo[playerid][pAdmin] < 2 ) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  1071.     if(sscanf(params, "u", tplayer)) SendClientMessage(playerid, TRed, "[SERVER]: Usage: /unfreeze <ID>.");
  1072.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player id.");
  1073.     format(string, sizeof(string), "[ADMIN]: You unfroze %s!", tname);
  1074.     SendClientMessage(playerid, TYellow, string);
  1075.     format(string, sizeof(string), "[ADMIN: Admin %s unfroze you!");
  1076.     TogglePlayerControllable(tplayer, 1);
  1077.     return 1;
  1078. }
  1079.  
  1080.     // -------------------------[ Admin level 3 ]: -------------------------------- //
  1081.  
  1082. CMD:ban(playerid, params[])
  1083. {
  1084.     new pname[MAX_PLAYER_NAME], tname[MAX_PLAYER_NAME], string[128], tplayer, reason[28];
  1085.     GetPlayerName(playerid, pname, sizeof(pname));
  1086.     GetPlayerName(tplayer, tname, sizeof(tname));
  1087.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  1088.     if(PlayerInfo[playerid][pAdmin] < 3 ) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  1089.     if(sscanf(params, "us", tplayer, reason)) SendClientMessage(playerid, TRed, "[SERVER]: Usage: /ban <ID> <Reason>.");
  1090.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player id.");
  1091.     format(string, sizeof(string), "[ADMIN]: Admin %s banned  %s for ' %s '!", pname, tname, reason);
  1092.     SendClientMessageToAll(TRed, string);
  1093.     format(string, sizeof(string), "[ADMIN]: You banned %s for ' %s '!", tname, reason);
  1094.     SendClientMessage(playerid, TYellow, string);
  1095.     SetTimer("Banp", 2000, false);
  1096.     return 1;
  1097. }
  1098. CMD:skick(playerid, params[])
  1099. {
  1100.     new pname[MAX_PLAYER_NAME], tname[MAX_PLAYER_NAME], string[128], tplayer;
  1101.     GetPlayerName(playerid, pname, sizeof(pname));
  1102.     GetPlayerName(tplayer, tname, sizeof(tname));
  1103.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  1104.     if(PlayerInfo[playerid][pAdmin] < 3 ) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  1105.     if(sscanf(params, "us", tplayer)) SendClientMessage(playerid, TRed, "[SERVER]: Usage: /skick <ID>.");
  1106.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player id.");
  1107.     format(string, sizeof(string), "[ADMIN]: You silently kicked %s!", tname);
  1108.     SendClientMessage(playerid, TYellow, string);
  1109.     SetTimer("Kickp", 2000, false);
  1110.     return 1;
  1111. }
  1112. CMD:sban(playerid, params[])
  1113. {
  1114.     new pname[MAX_PLAYER_NAME], tname[MAX_PLAYER_NAME], string[128], tplayer;
  1115.     GetPlayerName(playerid, pname, sizeof(pname));
  1116.     GetPlayerName(tplayer, tname, sizeof(tname));
  1117.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  1118.     if(PlayerInfo[playerid][pAdmin] < 3 ) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  1119.     if(sscanf(params, "u", tplayer)) SendClientMessage(playerid, TRed, "[SERVER]: Usage: /sban <ID>.");
  1120.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player id.");
  1121.     format(string, sizeof(string), "[ADMIN]: You silently banned %s!", tname);
  1122.     SendClientMessage(playerid, TYellow, string);
  1123.     SetTimer("Banp", 2000, false);
  1124.     return 1;
  1125. }
  1126. CMD:agivecash(playerid, params[])
  1127. {
  1128.     new pname[MAX_PLAYER_NAME], tname[MAX_PLAYER_NAME], string[128], tplayer, cash;
  1129.     GetPlayerName(playerid, pname, sizeof(pname));
  1130.     GetPlayerName(tplayer, tname, sizeof(tname));
  1131.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  1132.     if(PlayerInfo[playerid][pAdmin] < 3) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  1133.     if(sscanf(params, "ud", tplayer, cash)) return SendClientMessage(playerid, TRed, "[SERVER]: Usage: /agivecash <ID> <Amount>.");
  1134.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player id.");
  1135.     GivePlayerMoney(tplayer, cash);
  1136.     format(string, sizeof(string), "[ADMIN]: Admin %s gave you $%d from the Staff team budget!", pname, cash);
  1137.     SendClientMessage(tplayer, TGreen, string);
  1138.     format(string, sizeof(string), "[ADMIN]: You've gave %s's  $%d from the Staff team budget.", tname, cash);
  1139.     SendClientMessage(playerid, TYellow, string);
  1140.     return 1;
  1141. }
  1142. CMD:asetscore(playerid, params[])
  1143. {
  1144.     new pname[MAX_PLAYER_NAME], tname[MAX_PLAYER_NAME], string[128], tplayer, score;
  1145.     GetPlayerName(playerid, pname, sizeof(pname));
  1146.     GetPlayerName(tplayer, tname, sizeof(tname));
  1147.     if(Spawned[playerid] == 0) return SendClientMessage(playerid, TRed, "[SERVER]: You must be spawned!");
  1148.     if(PlayerInfo[playerid][pAdmin] < 3) return SendClientMessage(playerid, TRed, "[SERVER]: You must be a high level admin to use this command!");
  1149.     if(sscanf(params, "ud", tplayer, score)) return SendClientMessage(playerid, TRed, "[SERVER]: Usage: /asetscore <ID> <Amount>.");
  1150.     if(!IsPlayerConnected(tplayer)) return SendClientMessage(playerid, TRed, "[SERVER]: Invalid player id.");
  1151.     SetPlayerScore(tplayer, score);
  1152.     format(string, sizeof(string), "[ADMIN]: Admin %s set your score to %d!", pname, score);
  1153.     SendClientMessage(tplayer, TGreen, string);
  1154.     format(string, sizeof(string), "[ADMIN]: You've set %s's score to %d.", tname, score);
  1155.     SendClientMessage(playerid, TYellow, string);
  1156.     return 1;
  1157. }
  1158.  
  1159. public Banp(playerid)
  1160. {
  1161.     Ban(playerid);
  1162. }
  1163. public Kickp(playerid)
  1164. {
  1165.     Kick(playerid);
  1166. }
  1167.  
  1168. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  1169. {
  1170.     return 1;
  1171. }
  1172.  
  1173. public OnPlayerExitVehicle(playerid, vehicleid)
  1174. {
  1175.     return 1;
  1176. }
  1177.  
  1178. public OnPlayerStateChange(playerid, newstate, oldstate)
  1179. {
  1180.     return 1;
  1181. }
  1182.  
  1183. public OnPlayerEnterCheckpoint(playerid)
  1184. {
  1185.     return 1;
  1186. }
  1187.  
  1188. public OnPlayerLeaveCheckpoint(playerid)
  1189. {
  1190.     return 1;
  1191. }
  1192.  
  1193. public OnPlayerEnterRaceCheckpoint(playerid)
  1194. {
  1195.     return 1;
  1196. }
  1197.  
  1198. public OnPlayerLeaveRaceCheckpoint(playerid)
  1199. {
  1200.     return 1;
  1201. }
  1202.  
  1203. public OnRconCommand(cmd[])
  1204. {
  1205.     return 1;
  1206. }
  1207.  
  1208. public OnPlayerRequestSpawn(playerid)
  1209. {
  1210.     return 1;
  1211. }
  1212.  
  1213. public OnObjectMoved(objectid)
  1214. {
  1215.     return 1;
  1216. }
  1217.  
  1218. public OnPlayerObjectMoved(playerid, objectid)
  1219. {
  1220.     return 1;
  1221. }
  1222.  
  1223. public OnPlayerPickUpPickup(playerid, pickupid)
  1224. {
  1225.     return 1;
  1226. }
  1227.  
  1228. public OnVehicleMod(playerid, vehicleid, componentid)
  1229. {
  1230.     return 1;
  1231. }
  1232.  
  1233. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  1234. {
  1235.     return 1;
  1236. }
  1237.  
  1238. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  1239. {
  1240.     return 1;
  1241. }
  1242.  
  1243. public OnPlayerSelectedMenuRow(playerid, row)
  1244. {
  1245.     return 1;
  1246. }
  1247.  
  1248. public OnPlayerExitedMenu(playerid)
  1249. {
  1250.     return 1;
  1251. }
  1252.  
  1253. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  1254. {
  1255.     return 1;
  1256. }
  1257.  
  1258. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  1259. {
  1260.     return 1;
  1261. }
  1262.  
  1263. public OnRconLoginAttempt(ip[], password[], success)
  1264. {
  1265.     return 1;
  1266. }
  1267.  
  1268. public OnPlayerUpdate(playerid)
  1269. {
  1270.  
  1271.     return 1;
  1272. }
  1273.  
  1274. public OnPlayerStreamIn(playerid, forplayerid)
  1275. {
  1276.     return 1;
  1277. }
  1278.  
  1279. public OnPlayerStreamOut(playerid, forplayerid)
  1280. {
  1281.     return 1;
  1282. }
  1283.  
  1284. public OnVehicleStreamIn(vehicleid, forplayerid)
  1285. {
  1286.     return 1;
  1287. }
  1288.  
  1289. public OnVehicleStreamOut(vehicleid, forplayerid)
  1290. {
  1291.     return 1;
  1292. }
  1293.  
  1294. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  1295. {
  1296.     switch( dialogid )
  1297.     {
  1298.         case DRegister:
  1299.         {
  1300.             if (!response) return Kick(playerid);
  1301.             if(response)
  1302.             {
  1303.                 if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DRegister, DIALOG_STYLE_PASSWORD, ""DWhite"Registering...",""DRed"You have entered an invalid password.\n"DWhite"Type your password below to register a new account.","Register","Quit");
  1304.                 new INI:File = INI_Open(UserPath(playerid));
  1305.                 INI_SetTag(File,"data");
  1306.                 INI_WriteInt(File,"Password",udb_hash(inputtext));
  1307.                 INI_WriteInt(File,"Cash",5000);
  1308.                 INI_WriteInt(File,"Admin",0);
  1309.                 INI_WriteInt(File,"Kills",0);
  1310.                 INI_WriteInt(File,"Deaths",0);
  1311.                 INI_WriteInt(File,"Score",0);
  1312.                 INI_WriteInt(File,"Skin", 2);
  1313.                 INI_WriteInt(File,"Virtual World", 0);
  1314.                 INI_WriteFloat(File, "Interior", 0);
  1315.                 INI_WriteFloat(File, "Vip", 0);
  1316.  
  1317.                 INI_Close(File);
  1318.                 SpawnPlayer(playerid);
  1319.                 ShowPlayerDialog(playerid, DRSuccess, DIALOG_STYLE_MSGBOX,""DWhite"Success!",""DWhite"You successfully registered.","Okay","");
  1320.             }
  1321.         }
  1322.  
  1323.         case DLogin:
  1324.         {
  1325.             if ( !response ) return Kick ( playerid );
  1326.             if( response )
  1327.             {
  1328.                 if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])
  1329.                 {
  1330.                     INI_ParseFile(UserPath(playerid), "LoadUser_%s", .bExtra = true, .extra = playerid);
  1331.                     GivePlayerMoney(playerid, PlayerInfo[playerid][pCash]);
  1332.                     ShowPlayerDialog(playerid, DLSuccess, DIALOG_STYLE_MSGBOX,""DWhite"Success!",""DWhite"You have successfully logged in!","Ok","");
  1333.                 }
  1334.                 else
  1335.                 {
  1336.                     ShowPlayerDialog(playerid, DLogin, DIALOG_STYLE_PASSWORD,""DWhite"Login",""DRed"You have entered an incorrect password.\n"DWhite"Type your password below to login.","Login","Quit");
  1337.                 }
  1338.                 return 1;
  1339.             }
  1340.         }
  1341.      
  1342.     }
  1343.     return 1;
  1344. }
  1345.  
  1346. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  1347. {
  1348.  
  1349.     return 1;
  1350. }
  1351.  
  1352. // ------------------------------------------------------------------------- //
  1353.  
  1354. stock udb_hash(buf[]) {
  1355.     new length=strlen(buf);
  1356.     new s1 = 1;
  1357.     new s2 = 0;
  1358.     new n;
  1359.     for (n=0; n<length; n++)
  1360.     {
  1361.        s1 = (s1 + buf[n]) % 65521;
  1362.        s2 = (s2 + s1)     % 65521;
  1363.     }
  1364.     return (s2 << 16) + s1;
  1365. }
  1366.  
  1367. stock UserPath(playerid)
  1368. {
  1369.     new string[128],playername[MAX_PLAYER_NAME];
  1370.     GetPlayerName(playerid,playername,sizeof(playername));
  1371.     format(string,sizeof(string),Save,playername);
  1372.     return string;
  1373. }
  1374. // ------------------------------------------------------------------------- //
Add Comment
Please, Sign In to add comment