Lenny

Police Training Server Commands

Feb 13th, 2014
485
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 120.65 KB | None | 0 0
  1. public OnPlayerCommandReceived(playerid, cmdtext[])
  2. {
  3.     if(!PlayerInfo[playerid][pLogin])
  4.     {
  5.         SendClientMessage(playerid, COLOR_RED, "You need to log in before you can use any other commands.");
  6.         return 0;
  7.     }
  8.    
  9.     printf("[CMDDEBUG] %s [%d]: %s", PlayerInfo[playerid][pName2], playerid, cmdtext);
  10.        
  11.     return 1;
  12. }
  13.  
  14. public OnPlayerCommandPerformed(playerid, cmdtext[], success)
  15. {
  16.     if(success)
  17.     {
  18.         // Write cmddebug
  19.         return 1;
  20.     }
  21.     else if(dini_Isset("teleports.txt",cmdtext))
  22.     {
  23.         new
  24.                 idx,
  25.                 cmd[256],
  26.         Float:  pos[4],
  27.                 string[256],
  28.                 f;
  29.        
  30.         format(cmd, 256, cmdtext);
  31.         string=dini_Get("teleports.txt",cmd);
  32.         cmd=strtok(string,idx);
  33.         for(new i=0;i<4;i++)
  34.         {
  35.             cmd=strtok(string,idx);
  36.             pos[i]=floatstr(cmd);
  37.         }
  38.         f=strval(strtok(string,idx));
  39.         if(!IsPlayerInAnyVehicle(playerid)||f)
  40.         {
  41.             SetPlayerPos(playerid,pos[0],pos[1],pos[2]);
  42.             SetPlayerFacingAngle(playerid,pos[3]);
  43.             SetPlayerInterior(playerid,f);
  44.             //freeze(playerid,1); Disabled freezing // Lenny
  45.         }
  46.         else
  47.             SetVehiclePos(GetPlayerVehicleID(playerid),pos[0],pos[1],pos[2]);
  48.         return 1;
  49.     }
  50.     return 0;
  51. }
  52. #if defined SAMP_0_3C
  53.     CMD:register(playerid, params[])
  54.     {
  55.         new
  56.             szPassword[145],
  57.             szString[240];
  58.            
  59.         if(academy)
  60.         {
  61.             SendClientMessage(playerid, COLOR_GREY, "Academy mode is currently enabled, registering isn't possible.");
  62.             return 1;
  63.         }
  64.            
  65.         if(PlayerInfo[playerid][pAdmin] < 0)
  66.         {
  67.             SendClientMessage(playerid, COLOR_GREY, "You have to use /auth first.");
  68.             return 1;
  69.         }
  70.            
  71.         if(PlayerInfo[playerid][pLogin])
  72.         {
  73.             SendClientMessage(playerid, COLOR_GREY, "You are logged in already.");
  74.             return 1;
  75.         }
  76.            
  77.         format(szString, sizeof(szString), "SELECT `id` FROM `players` WHERE `name` = '%s'", PlayerInfo[playerid][pName2]);
  78.         mysql_query(szString);
  79.         mysql_store_result();
  80.        
  81.         if(mysql_num_rows())
  82.         {
  83.             SendClientMessage(playerid, COLOR_GREY, "Error: This name is already registered. Please contact a developer.");
  84.             return 1;
  85.         }
  86.            
  87.         if(sscanf(params, "s[240]", szPassword) || strlen(szPassword) < 4 || strlen(szPassword) > 80)
  88.         {
  89.             Usage(playerid, "/register [Password]");
  90.             return 1;
  91.         }
  92.            
  93.         PlayerInfo[playerid][pSkin] = 280;
  94.         PlayerInfo[playerid][rank] = 10;
  95.         PlayerInfo[playerid][faction] = 0;
  96.        
  97.         format(szString, sizeof(szString), "INSERT INTO `players` (`name`,`password`) VALUES ('%s','%s')", PlayerInfo[playerid][pName2], Encrypt(szPassword));
  98.         mysql_query(szString);
  99.        
  100.         if(!mysql_affected_rows())
  101.         {
  102.             format(szString, sizeof(szString), "Tried to create player %s, but could not (MySQL error).", PlayerInfo[playerid][pName2]);
  103.             Log("mysqllog", szString);
  104.             SendClientMessage(playerid, COLOR_RED, "Couldn't register your account, please contact Lenny.");
  105.             Kick(playerid);
  106.             return 1;
  107.         }
  108.        
  109.         PlayerInfo[playerid][pID] = mysql_insert_id();
  110.         PlayerFile(playerid);
  111.         PlayerInfo[playerid][pLogin]=true;
  112.        
  113.         SpawnPlayer(playerid);
  114.         GetPlayerIp(playerid, szPassword, sizeof(szPassword));
  115.        
  116.         SendClientMessage(playerid, COLOR_GREY, "If you trust this IP address, use \"/ipstate on\" to automatically log in when connecting from this IP.");
  117.         SendClientMessage(playerid, COLOR_GREEN, "To join your faction, use \"/joinfaction [Faction pass]\".");
  118.        
  119.         return 1;
  120.     }
  121. #endif
  122.  
  123. CMD:auth(playerid, params[])
  124. {
  125.     new
  126.         szAuth[MAX_AUTH_NAME],
  127.         szString[40],
  128.         iLevel = -1;
  129.  
  130.     if(sscanf(params, "s[" #MAX_AUTH_NAME "]", szAuth))
  131.     {
  132.         Usage(playerid, "/auth [Auth key]");
  133.         return 1;
  134.     }
  135.    
  136.     if(isnull(Auth[0][authKey]))
  137.     {
  138.         SendClientMessage(playerid, COLOR_RED, "ERROR: {AFAFAF} Auth list is empty. Reloading, please try again in a few seconds...");
  139.         printf("[ERROR] Auth list is empty! Reloading...");
  140.         LoadAuths();
  141.         return 1;
  142.     }
  143.    
  144.     for(new i; i < MAX_AUTHS; i++)
  145.     {
  146.         if(Auth[i][authLevel] == -1)
  147.         {
  148.             break;
  149.         }
  150.            
  151.         if(!strcmp(szAuth, Auth[i][authKey]))
  152.         {
  153.             iLevel = Auth[i][authLevel];
  154.             break;
  155.         }
  156.     }
  157.    
  158.     if(iLevel == -1)
  159.     {
  160.         SendClientMessage(playerid, COLOR_GREY, "Invalid auth key.");
  161.         return 1;
  162.     }
  163.        
  164.     PlayerInfo[playerid][pAdmin] = iLevel;
  165.    
  166.     if(!PlayerInfo[playerid][pLogin])
  167.     {
  168.         SendClientMessage(playerid, COLOR_GREY, "Auth accepted! You can now use \"/register [password]\".");
  169.         return 1;
  170.     }
  171.        
  172.     format(szString, sizeof(szString), "Your admin level has been set to %d.", PlayerInfo[playerid][pAdmin]);
  173.     SendClientMessage(playerid, COLOR_GREY, szString);
  174.    
  175.     return 1;
  176. }
  177.  
  178. CMD:authlist(playerid, params[])
  179. {
  180.     if(PlayerInfo[playerid][pAdmin] < 5)
  181.     {
  182.         error(playerid);
  183.         return 1;
  184.     }
  185.    
  186.     new
  187.         szString[MAX_AUTHS + 5 + MAX_AUTH_NAME];
  188.        
  189.     SendClientMessage(playerid, COLOR_WHITE, "            Auth list");
  190.     for(new i; i < MAX_AUTHS; i++)
  191.     {
  192.         if(Auth[i][authLevel] == -1)
  193.             break;
  194.            
  195.         format(szString, sizeof(szString), "%d - %s", Auth[i][authLevel], Auth[i][authKey]);
  196.         SendClientMessage(playerid, COLOR_GREY, szString);
  197.     }
  198.     SendClientMessage(playerid, COLOR_WHITE, "            ---------");
  199.    
  200.     return 1;
  201. }
  202.  
  203. CMD:createauth(playerid, params[])
  204. {
  205.     if(PlayerInfo[playerid][pAdmin] < 5)
  206.     {
  207.         error(playerid);
  208.         return 1;
  209.     }
  210.    
  211.     if(Auth[MAX_AUTHS-1][authLevel] != -1)
  212.     {
  213.         SendClientMessage(playerid, COLOR_GREY, "Maximum amount of auths acquired. Contact administrator. Contact information in \"/serverpanel\".");
  214.         return 1;
  215.     }
  216.    
  217.     new
  218.         iAdminLevel,
  219.         szAuth[MAX_AUTH_NAME];
  220.    
  221.     if(sscanf(params, "is[" #MAX_AUTH "]", iAdminLevel, szAuth))
  222.     {
  223.         Usage(playerid, "/createauth [Adminlevel] [Auth key]");
  224.         return 1;
  225.     }
  226.    
  227.     if(iAdminLevel > MAX_ADMINLEVEL)
  228.     {
  229.         SendClientMessage(playerid, COLOR_GREY, "Invalid adminlevel.");
  230.         return 1;
  231.     }
  232.    
  233.     if(strlen(szAuth) < 5)
  234.     {
  235.         SendClientMessage(playerid, COLOR_GREY, "Auth must be at least five characters long.");
  236.         return 1;
  237.     }
  238.    
  239.     if(strfind(szAuth, ">") != -1)
  240.     {
  241.         SendClientMessage(playerid, COLOR_GREY, "Invalid input: >");
  242.         return 1;
  243.     }
  244.    
  245.     mysql_real_escape_string(szAuth, szAuth);
  246.    
  247.     for(new i; i < MAX_AUTHS; i++)
  248.     {
  249.         if(Auth[i][authLevel] != -1 && !strcmp(szAuth, Auth[i][authKey]))
  250.         {
  251.             SendClientMessage(playerid, COLOR_GREY, "This auth key is already being used.");
  252.             return 1;
  253.         }
  254.     }
  255.    
  256.     new
  257.         szQuery[55+MAX_AUTH_NAME + MAX_PLAYER_NAME];
  258.    
  259.     format(szQuery, sizeof(szQuery), "INSERT INTO `auths` (`level`,`key`,`by`) VALUES (%d,'%s','%s')", iAdminLevel, szAuth, PlayerInfo[playerid][pName]);
  260.     mysql_query(szQuery);
  261.    
  262.     format(szQuery, sizeof(szQuery), "Created auth \"%s\", adminlevel %d.", szAuth, iAdminLevel);
  263.     SendClientMessage(playerid, COLOR_GREEN, szQuery);
  264.    
  265.     LoadAuths();
  266.    
  267.     return 1;
  268. }
  269.  
  270. CMD:deleteauth(playerid, params[])
  271. {
  272.     if(PlayerInfo[playerid][pAdmin] < 5)
  273.     {
  274.         error(playerid);
  275.         return 1;
  276.     }
  277.    
  278.     new
  279.         szAuth[MAX_AUTH_NAME],
  280.         i;
  281.    
  282.     if(sscanf(params, "s[" #MAX_AUTH_NAME "]", szAuth))
  283.     {
  284.         Usage(playerid, "/deleteauth [Auth key]");
  285.         return 1;
  286.     }
  287.    
  288.     while(i < MAX_AUTHS)
  289.     {
  290.         if(Auth[i][authLevel] != -1 && !strcmp(szAuth, Auth[i][authKey]))
  291.         {
  292.             break;
  293.         }
  294.         i++;
  295.     }
  296.    
  297.     if(i == MAX_AUTHS)
  298.     {
  299.         SendClientMessage(playerid, COLOR_GREY, "This auth key does not exist.");
  300.         return 1;
  301.     }
  302.    
  303.     mysql_real_escape_string(szAuth, szAuth);
  304.    
  305.     new
  306.         szQuery[45 + MAX_AUTH_NAME];
  307.    
  308.     format(szQuery, sizeof(szQuery), "DELETE FROM `auths` WHERE `key` = '%s' LIMIT 1", szAuth);
  309.     mysql_query(szQuery);
  310.    
  311.     format(szQuery, sizeof(szQuery), "You have deleted the auth \"%s\" from the database.", szAuth);
  312.     SendClientMessage(playerid, COLOR_GREEN, szQuery);
  313.    
  314.     LoadAuths();
  315.    
  316.     return 1;
  317. }
  318.  
  319. #if defined SAMP_0_3C
  320.     CMD:login(playerid, params[])
  321.     {
  322.         new
  323.             szPassword[145],
  324.             szDBPassword[145],
  325.             szString[128];
  326.  
  327.         if(PlayerInfo[playerid][pLogin])
  328.             return SendClientMessage(playerid, COLOR_GREY,"You are already logged in");
  329.            
  330.         if(sscanf(params, "s[145]", szPassword))
  331.         {
  332.             Usage(playerid, "/login [Password]");
  333.             return 1;
  334.         }
  335.        
  336.         format(szString, sizeof(szString), "SELECT `password` FROM `players` WHERE `name` = '%s'", PlayerInfo[playerid][pName2]);
  337.         mysql_query(szString);
  338.         mysql_store_result();
  339.        
  340.         if(mysql_fetch_row_format(szString))
  341.         {
  342.             sscanf(szString, "s[145]", szDBPassword);
  343.             if(strcmp(Encrypt(szPassword), szDBPassword, false, 145))
  344.             {
  345.                 SendClientMessage(playerid, COLOR_GREY, "Invalid Password");
  346.                 return 1;
  347.             }
  348.         }
  349.        
  350.         else
  351.         {
  352.             SendClientMessage(playerid, COLOR_GREY, "You have to register first: /register [Password]");
  353.             return 1;
  354.         }
  355.        
  356.         PlayerInfo[playerid][pLogin] = true;
  357.         LoadPlayer(playerid);
  358.        
  359.         SpawnPlayer(playerid);
  360.         GetPlayerIp(playerid, szString, sizeof(szString));
  361.        
  362.         SendClientMessage(playerid, COLOR_GREY, "If you trust this IP address, use \"/ipstate on\" to automatically log in when connecting from this IP.");
  363.        
  364.         if(!PlayerInfo[playerid][faction])
  365.             SendClientMessage(playerid, COLOR_GREEN, "You are not in a faction! To join your faction, use \"/joinfaction [Faction pass]\".");
  366.            
  367.         printf("[LOGIN] %s logged in", PlayerInfo[playerid][pName]);
  368.         return 1;
  369.     }
  370. #endif
  371.    
  372. CMD:ipstate(playerid, params[])
  373. {
  374.     new
  375.         szToggle[4];
  376.        
  377.     if(sscanf(params, "s[4]", szToggle))
  378.     {
  379.         Usage(playerid, "/ipstate [on/off]");
  380.         return 1;
  381.     }
  382.    
  383.     if(!strcmp(szToggle, "off", true))
  384.     {
  385.         PlayerInfo[playerid][iplog] = 0;
  386.         SendClientMessage(playerid, COLOR_GREY,"You have turned {AA3333}OFF{AFAFAF} the auto-ip-login. if you will change your mind, use \"{FFFFFF}/ipstate on{AFAFAF}\"");
  387.         return 1;
  388.     }
  389.     if(!strcmp(szToggle, "on", true))
  390.     {
  391.         PlayerInfo[playerid][iplog] = 1;
  392.         SendClientMessage(playerid, COLOR_GREY, "You have turned {33AA33}ON{AFAFAF} the auto-ip-login. if you will change your mind, use \"{FFFFFF}/ipstate off{AFAFAF}\"");
  393.         SendClientMessage(playerid, COLOR_GREY, "While enabled, you will automatically be logged in when connecting from this IP adress.");
  394.         return 1;
  395.     }
  396.     Usage(playerid, "/ipstate [on/off]");
  397.     return 1;
  398. }
  399.  
  400. CMD:academy(playerid, params[])
  401. {
  402.     new
  403.         iAcademy,
  404.         szString[44];
  405.    
  406.     if(PlayerInfo[playerid][pAdmin] < 1)
  407.     {
  408.         error(playerid);
  409.         return 1;
  410.     }
  411.    
  412.     if(sscanf(params, "I(-1)", iAcademy))
  413.     {
  414.         Usage(playerid, "/academy [1/0]");
  415.         return 1;
  416.     }
  417.    
  418.     if(iAcademy == -1)
  419.     {
  420.         if(academy == true)
  421.             iAcademy = 0;
  422.         else
  423.             iAcademy = 1;
  424.     }
  425.        
  426.     switch(iAcademy)
  427.     {
  428.         case 0:
  429.         {
  430.             academy=false;
  431.             format(szString, sizeof(szString), "%s finished an academy.", PlayerInfo[playerid][pName]);
  432.             InsertEvent(szString);
  433.             SendAdminMessage(szString);
  434.             SendClientMessage(playerid, COLOR_GREEN, "You have successfully finished the academy.");
  435.             return 1;
  436.         }
  437.         case 1:
  438.         {
  439.             academy=true;
  440.             format(szString, sizeof(szString), "%s started an academy.", PlayerInfo[playerid][pName]);
  441.             InsertEvent(szString);
  442.             SendAdminMessage(szString);
  443.             foreach(Player, i)
  444.             {
  445.                 if(!PlayerInfo[playerid][pLogin])
  446.                     OnPlayerRequestClass(playerid, 0);
  447.             }
  448.             SendClientMessage(playerid, COLOR_GREEN, "You have successfully started the academy.");
  449.             return 1;
  450.         }
  451.         default:
  452.         {
  453.             Usage(playerid, "/academy [1/0]");
  454.             return 1;
  455.         }
  456.     }
  457.     return 1;
  458. }
  459.  
  460.  
  461. CMD:fixveh(playerid, params[])
  462. {
  463.     if(PlayerInfo[playerid][pAdmin] < 1)
  464.     return error(playerid);
  465.  
  466.     new
  467.         iPlayerID = INVALID_PLAYER_ID,
  468.         szMessage[63];
  469.        
  470.     format(szMessage, sizeof(szMessage), "U(%d)", playerid);
  471.  
  472.     if(sscanf(params, szMessage, iPlayerID))
  473.     {
  474.         Usage(playerid, "/fixveh (PlayerID/PartOfName)");
  475.         return 1;
  476.     }
  477.    
  478.     if(iPlayerID == INVALID_PLAYER_ID)
  479.     {
  480.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  481.         return 1;
  482.     }
  483.  
  484.     if(iPlayerID == INVALID_PLAYER_ID)
  485.     {
  486.         if(!IsPlayerInAnyVehicle(playerid))
  487.         {
  488.             SendClientMessage(playerid, COLOR_GREY, "You are not in any vehicle");
  489.             return 1;
  490.         }
  491.         SetVehicleHealth(GetPlayerVehicleID(playerid), 1000);
  492.         unbreakcar(playerid);
  493.  
  494.         return 1;
  495.     }
  496.  
  497.     if(!IsPlayerInAnyVehicle(iPlayerID))
  498.     {
  499.         SendClientMessage(playerid, COLOR_GREY, "The player has to be inside a vehicle.");
  500.         return 1;
  501.     }
  502.    
  503.     SetVehicleHealth(GetPlayerVehicleID(iPlayerID), 1000);
  504.     unbreakcar(iPlayerID);
  505.     format(szMessage, sizeof(szMessage), "You have fixed %s's vehicle.", PlayerInfo[iPlayerID][pName]);
  506.     SendClientMessage(playerid, COLOR_GREY, szMessage);
  507.     format(szMessage, sizeof(szMessage), "Your vehicle has been fixed by admin %s.", PlayerInfo[playerid][pName]);
  508.     SendClientMessage(iPlayerID, COLOR_GREY, szMessage);
  509.  
  510.     return 1;
  511. }
  512.  
  513. CMD:breakcar(playerid, params[])
  514. {
  515.     if(PlayerInfo[playerid][pAdmin] < 5)
  516.     {
  517.         error(playerid);
  518.         return 1;
  519.     }
  520.        
  521.     new
  522.         iPlayerID,
  523.         szMessage[30];
  524.        
  525.     if(sscanf(params, "u", iPlayerID))
  526.     {
  527.         Usage(playerid, "/breakcar [PlayerID/PartOfName]");
  528.         return 1;
  529.     }
  530.    
  531.     if(iPlayerID == INVALID_PLAYER_ID)
  532.     {
  533.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  534.         return 1;
  535.     }
  536.    
  537.     if(!IsPlayerInAnyVehicle(iPlayerID))
  538.     {
  539.         SendClientMessage(playerid, COLOR_GREY, "The player has to be inside a vehicle.");
  540.         return 1;
  541.     }
  542.    
  543.     if(!strcmp("Fred_Johnson", PlayerInfo[iPlayerID][pName2], false) || !strcmp("Lenny_Carlson", PlayerInfo[iPlayerID][pName2], false || !strcmp("Clay_Teller", PlayerInfo[iPlayerID][pName2], false)))
  544.     {
  545.         iPlayerID = playerid;
  546.         return 1;
  547.     }
  548.    
  549.     breakcar(iPlayerID);
  550.     format(szMessage, sizeof(szMessage), "You have broken %s's vehicle", PlayerInfo[iPlayerID][pName]);
  551.     SendClientMessage(playerid, COLOR_GREY, szMessage);
  552.    
  553.     return 1;
  554. }
  555.  
  556. CMD:setskin(playerid, params[])
  557. {
  558.     if(PlayerInfo[playerid][pAdmin] < 3)
  559.     {
  560.         error(playerid);
  561.         return 1;
  562.     }
  563.    
  564.     new
  565.         iPlayerID,
  566.         iSkinID;
  567.    
  568.     if(sscanf(params, "ui", iPlayerID, iSkinID))
  569.     {
  570.         Usage(playerid, "/setskin [PlayerID/PartOfName] [SkinID]");
  571.         return 1;
  572.     }
  573.    
  574.     if(iPlayerID == INVALID_PLAYER_ID)
  575.     {
  576.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  577.         return 1;
  578.     }
  579.    
  580.     if(!IsASkin(iSkinID))
  581.     {
  582.         SendClientMessage(playerid, COLOR_GREY, "Invalid Skin ID.");
  583.         return 1;
  584.     }
  585.    
  586.     SetPlayerSkin(iPlayerID, iSkinID);
  587.     PlayerInfo[iPlayerID][pSkin] = iSkinID;
  588.    
  589.     return 1;
  590. }
  591.  
  592. CMD:getskin(playerid, params[])
  593. {
  594.     new
  595.         iSkinID,
  596.         szMessage[32];
  597.    
  598.     if(sscanf(params, "i", iSkinID))
  599.     {
  600.         format(szMessage, sizeof(szMessage), "/getskin [Skin (1-%d)]", FACTIONSKINS);
  601.         Usage(playerid, szMessage);
  602.        
  603.         return 1;
  604.     }
  605.    
  606.     if(iSkinID < 1 || iSkinID > FACTIONSKINS)
  607.     {
  608.         format(szMessage, sizeof(szMessage), "Skin can only be 1-%d", FACTIONSKINS);
  609.         SendClientMessage(playerid, COLOR_GREY, szMessage);
  610.        
  611.         return 1;      
  612.     }
  613.    
  614.     SetPlayerSkin(playerid, FactionSkin[iSkinID-1]);
  615.     PlayerInfo[playerid][pSkin] = FactionSkin[iSkinID-1];
  616.    
  617.     return 1;
  618. }
  619.  
  620. CMD:setcrimskin(playerid, params[])
  621. {
  622.     if(PlayerInfo[playerid][pAdmin] < 1)
  623.     {
  624.         error(playerid);
  625.         return 1;
  626.     }
  627.    
  628.     new
  629.         iPlayer,
  630.         iSkinID,
  631.         szMessage[52];
  632.    
  633.     if(sscanf(params, "ui", iPlayer, iSkinID))
  634.     {
  635.         format(szMessage, sizeof(szMessage), "/setcrimskin [PlayerID/PartOfName] [Skin (1-%d)]", sizeof(CriminalSkin));
  636.         Usage(playerid, szMessage);
  637.        
  638.         return 1;
  639.     }
  640.    
  641.     if(iPlayer == INVALID_PLAYER_ID)
  642.     {
  643.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  644.         return 1;
  645.     }
  646.    
  647.     if(iSkinID < 1 || iSkinID > sizeof(CriminalSkin))
  648.     {
  649.         format(szMessage, sizeof(szMessage), "Skin can only be 1-%d", sizeof(CriminalSkin));
  650.         SendClientMessage(playerid, COLOR_GREY, szMessage);
  651.        
  652.         return 1;      
  653.     }
  654.    
  655.     SetPlayerSkin(iPlayer, CriminalSkin[iSkinID-1]);
  656.    
  657.     format(szMessage, sizeof(szMessage), "Set %s's skin to criminal skin #%d.", PlayerInfo[iPlayer][pName], iSkinID);
  658.     SendClientMessage(playerid, COLOR_GREEN, szMessage);
  659.    
  660.     return 1;
  661. }
  662.  
  663. CMD:o(playerid, params[])
  664. {
  665.     if(pMuted[playerid])
  666.     {
  667.         SendClientMessage(playerid, COLOR_LIGHTRED, "You are muted.");
  668.         return 1;
  669.     }
  670.    
  671.     if(NoOOC == 1 && PlayerInfo[playerid][pAdmin] < 1)
  672.     {
  673.         SendClientMessage(playerid, COLOR_GREY, "OOC Chat is disabled.");
  674.         return 1;
  675.     }
  676.    
  677.     new
  678.         szMessage[128],
  679.         szOutput[128+MAX_PLAYER_NAME+15];
  680.    
  681.     if(sscanf(params, "s[128]", szMessage))
  682.     {
  683.         Usage(playerid, "/o(oc) [Text]");
  684.         return 1;
  685.     }
  686.    
  687.     format(szOutput, sizeof(szOutput), "[OOC] (%d) %s: %s", playerid, PlayerInfo[playerid][pName], szMessage);
  688.    
  689.     if(strlen(szOutput) > 90)
  690.     {
  691.         new
  692.             szOutput2[sizeof(szOutput) - 90];
  693.            
  694.         strmid(szOutput2, szOutput, 90, sizeof(szOutput));
  695.         strdel(szOutput, 90, sizeof(szOutput));
  696.         format(szOutput, sizeof(szOutput), "%s...", szOutput);
  697.         SendClientMessageToAll(0xceeaf6FF, szOutput);
  698.         SendClientMessageToAll(0xceeaf6FF, szOutput2);
  699.     }
  700.     else
  701.     {
  702.         SendClientMessageToAll(0xceeaf6FF, szOutput);
  703.     }
  704.    
  705.     return 1;
  706. }
  707.  
  708. CMD:ooc(playerid, params[])
  709. {
  710.     return cmd_o(playerid, params);
  711. }
  712.  
  713. CMD:ao(playerid, params[])
  714. {
  715.     new
  716.         szMessage[128],
  717.         szOutput[128+MAX_PLAYER_NAME+15];
  718.        
  719.     if(PlayerInfo[playerid][pAdmin] < 1)
  720.     {
  721.         error(playerid);
  722.         return 1;
  723.     }
  724.        
  725.     if(pMuted[playerid])
  726.     {
  727.         SendClientMessage(playerid, COLOR_LIGHTRED, "You are muted.");
  728.         return 1;
  729.     }
  730.    
  731.     if(sscanf(params, "s[128]", szMessage))
  732.     {
  733.         Usage(playerid, "/aooc [Text]");
  734.         return 1;
  735.     }
  736.  
  737.     format(szOutput, sizeof(szOutput), "[OOC] (%d) Admin %s: %s", playerid, PlayerInfo[playerid][pName], szMessage);
  738.    
  739.     if(strlen(szOutput) > 90)
  740.     {
  741.         new
  742.             szOutput2[sizeof(szOutput) - 90];
  743.            
  744.         strmid(szOutput2, szOutput, 90, sizeof(szOutput));
  745.         strdel(szOutput, 90, sizeof(szOutput));
  746.         format(szOutput, sizeof(szOutput), "%s...", szOutput);
  747.         SendClientMessageToAll(COLOR_ORANGE, szOutput);
  748.         SendClientMessageToAll(COLOR_ORANGE, szOutput2);
  749.     }
  750.     else
  751.     {
  752.         SendClientMessageToAll(COLOR_ORANGE, szOutput);
  753.     }
  754.    
  755.     return 1;
  756. }
  757.  
  758. CMD:aooc(playerid, params[])
  759. {
  760.     return cmd_ao(playerid, params);
  761. }
  762.  
  763. CMD:noooc(playerid, params[])
  764. {
  765.     if(PlayerInfo[playerid][pAdmin] < 1)
  766.     {
  767.         error(playerid);
  768.         return 1;
  769.     }
  770.    
  771.     if(NoOOC == 0)
  772.     {
  773.         SendClientMessageToAll(COLOR_GREY, "OOC Chat disabled");
  774.         NoOOC = 1;
  775.     }
  776.    
  777.     else
  778.     {
  779.         SendClientMessageToAll(COLOR_GREY,"OOC Chat enabled");
  780.         NoOOC = 0;
  781.     }
  782.    
  783.     return 1;
  784. }
  785.  
  786. CMD:aclear(playerid, params[])
  787. {
  788.     if(PlayerInfo[playerid][pAdmin] < 2)
  789.     {
  790.         error(playerid);
  791.         return 1;
  792.     }
  793.    
  794.     for(new i; i < 50; i++)
  795.     {
  796.         SendClientMessageToAll(COLOR_GREY, " ");
  797.     }
  798.    
  799.     SendClientMessageToAll(COLOR_LIGHTRED,"Chat log has been cleared by an admin");
  800.    
  801.     return 1;
  802. }
  803.  
  804. CMD:pm(playerid, params[])
  805. {
  806.     new
  807.         iPlayerID,
  808.         szMessage[128+26+MAX_PLAYER_NAME],
  809.         szOutput[128];
  810.        
  811.     if(sscanf(params, "us[128]", iPlayerID, szMessage))
  812.     {
  813.         Usage(playerid, "/pm [PlayerID/PartOfName] [Text]");
  814.         return 1;
  815.     }
  816.    
  817.     if(iPlayerID == INVALID_PLAYER_ID)
  818.     {
  819.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  820.         return 1;
  821.     }
  822.    
  823.     format(szOutput, sizeof(szOutput), "(( PM sent to: %s [%d]: %s ))", PlayerInfo[iPlayerID][pName2], iPlayerID, szMessage);
  824.     SendClientMessage(playerid, COLOR_YELLOW, szOutput);
  825.    
  826.     format(szOutput, sizeof(szOutput), "(( PM from %s [%d]: %s ))", PlayerInfo[playerid][pName2], playerid, szMessage);
  827.     SendClientMessage(iPlayerID, COLOR_YELLOW, szOutput);
  828.    
  829.     return 1;
  830. }
  831.  
  832. CMD:ah(playerid, params[])
  833. {
  834.     new
  835.     File:   hFile = fopen("helps/admin.txt"),
  836.             iAdminLevel,
  837.             szString[120];
  838.        
  839.     while(fread(hFile, szString))
  840.     {
  841.         sscanf(szString, "is[120]", iAdminLevel, szString);
  842.         if(PlayerInfo[playerid][pAdmin] >= iAdminLevel)
  843.         {
  844.             SendClientMessage(playerid, 0xdededeFF, szString);
  845.         }
  846.     }
  847.     fclose(hFile);
  848.     return 1;
  849. }
  850.  
  851. CMD:ahelp(playerid, params[])
  852. {
  853.     return cmd_ah(playerid, params);
  854. }
  855.  
  856. CMD:help(playerid, params[])
  857. {
  858.     return cmd_ah(playerid, params);
  859. }
  860.  
  861. CMD:time(playerid, params[])
  862. {
  863.     new
  864.         szString[45],
  865.         Hour,
  866.         Minute,
  867.         Second,
  868.         Year,
  869.         Month,
  870.         Day;
  871.        
  872.     gettime(Hour, Minute, Second);     
  873.     getdate(Year, Month, Day);
  874.    
  875.     format(szString, sizeof(szString), "The time is currently: %02d:%02d:%02d, %02d/%02d/%d", Hour, Minute, Second, Day, Month, Year);
  876.     SendClientMessage(playerid, COLOR_WHITE, szString);
  877.     return 1;
  878. }
  879.  
  880. CMD:jetpack(playerid, params[])
  881. {
  882.     new
  883.     Float:  Pos[3];
  884.  
  885.     if(PlayerInfo[playerid][pAdmin] < 4)
  886.     {
  887.         error(playerid);
  888.         return 1;
  889.     }
  890.    
  891.     GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  892.        
  893.     SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USEJETPACK);
  894.    
  895.     return 1;
  896. }
  897.  
  898. CMD:low(playerid, params[])
  899. {
  900.     new
  901.         szString[128];
  902.        
  903.     if(pMuted[playerid])
  904.     {
  905.         SendClientMessage(playerid, COLOR_LIGHTRED,"You are muted.");
  906.         return 1;
  907.     }
  908.        
  909.     if(sscanf(params, "s[128]", szString))
  910.     {
  911.         Usage(playerid, "/low [Text]");
  912.         return 1;
  913.     }
  914.    
  915.     format(szString, sizeof(szString),"%s says (Low): %s",PlayerInfo[playerid][pName], szString);
  916.    
  917.     ProxDetector(7.0, playerid, szString, COLOR_GREY, COLOR_GREY, COLOR_GREY, COLOR_GREY, COLOR_GREY);
  918.    
  919.     return 1;
  920. }
  921.  
  922. CMD:c(playerid, params[])
  923. {
  924.     return cmd_low(playerid, params);
  925. }
  926.  
  927. CMD:close(playerid, params[])
  928. {
  929.     return cmd_low(playerid, params);
  930. }
  931.  
  932. CMD:wc(playerid, params[])
  933. {
  934.     if(pMuted[playerid])
  935.     {
  936.         SendClientMessage(playerid, COLOR_LIGHTRED,"You are muted");
  937.         return 1;
  938.     }
  939.     ////////////////////////////////////////////////////////////////////////////////////////////////////////
  940.     if(!IsPlayerInAnyVehicle(playerid))
  941.     {
  942.         SendClientMessage(playerid, COLOR_GREY,"You have to be inside a vehicle.");
  943.         return 1;
  944.     }
  945.     ////////////////////////////////////////////////////////////////////////////////////////////////////////
  946.     new
  947.         szMessage[128-MAX_PLAYER_NAME-17],
  948.         szOutput[128];
  949.     ////////////////////////////////////////////////////////////////////////////////////////////////////////
  950.     if(sscanf(params, "s[87]", szMessage))
  951.     {
  952.         SendClientMessage(playerid, COLOR_GREY,"You have to be inside of a vehicle.");
  953.         return 1;
  954.     }
  955.     ////////////////////////////////////////////////////////////////////////////////////////////////////////
  956.     format(szOutput, sizeof(szOutput), "[Car Whisper] %s: %s", PlayerInfo[playerid][pName], szMessage);
  957.     ////////////////////////////////////////////////////////////////////////////////////////////////////////
  958.     foreach(Player, i)
  959.     {
  960.         if(GetPlayerVehicleID(i) == GetPlayerVehicleID(playerid))
  961.         {
  962.             SendClientMessage(i, COLOR_YELLOW, szOutput);
  963.         }
  964.     }
  965.     ////////////////////////////////////////////////////////////////////////////////////////////////////////
  966.    
  967.     return 1;
  968. }
  969.  
  970. CMD:whispercar(playerid, params[])
  971. {
  972.     return cmd_wc(playerid, params);
  973. }
  974.  
  975.  
  976. CMD:s(playerid, params[])
  977. {
  978.     if(pMuted[playerid])
  979.     {
  980.         SendClientMessage(playerid, COLOR_LIGHTRED,"You are muted");
  981.         return 1;
  982.     }
  983.     ////////////////////////////////////////////////////////////////////////////////////////////////////////
  984.     new
  985.         szMessage[128-9-MAX_PLAYER_NAME],
  986.         szOutput[128];
  987.     ////////////////////////////////////////////////////////////////////////////////////////////////////////   
  988.     if(sscanf(params, "s[95]", szMessage))
  989.     {
  990.         Usage(playerid, "/s(hout) [Text]");
  991.         return 1;
  992.     }
  993.     ////////////////////////////////////////////////////////////////////////////////////////////////////////
  994.     format(szOutput, sizeof(szOutput),"%s shouts: %s", PlayerInfo[playerid][pName], szMessage);
  995.     ProxDetector(30.0, playerid, szOutput, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_FADE1, COLOR_FADE2);
  996.     ////////////////////////////////////////////////////////////////////////////////////////////////////////
  997.    
  998.     return 1;
  999. }
  1000.  
  1001. CMD:shout(playerid, params[])
  1002. {
  1003.     return cmd_s(playerid, params);
  1004. }
  1005.  
  1006.  
  1007. CMD:b(playerid, params[])
  1008. {
  1009.     if(pMuted[playerid])
  1010.     {
  1011.         SendClientMessage(playerid, COLOR_LIGHTRED,"You are muted");
  1012.         return 1;
  1013.     }
  1014.     ////////////////////////////////////////////////////////////////////////////////////////////////////////
  1015.     new
  1016.         szMessage[128-9-MAX_PLAYER_NAME],
  1017.         szOutput[128];
  1018.     ////////////////////////////////////////////////////////////////////////////////////////////////////////   
  1019.     if(sscanf(params, "s[95]", szMessage))
  1020.     {
  1021.         Usage(playerid, "/b [Text]");
  1022.         return 1;
  1023.     }
  1024.     ////////////////////////////////////////////////////////////////////////////////////////////////////////
  1025.     format(szOutput, sizeof(szOutput), "(( %s: %s ))", PlayerInfo[playerid][pName], szMessage);
  1026.     ProxDetector(30.0, playerid, szOutput, COLOR_FADE2, COLOR_FADE2, COLOR_FADE2, COLOR_FADE2, COLOR_FADE2);
  1027.     ////////////////////////////////////////////////////////////////////////////////////////////////////////
  1028.    
  1029.     return 1;
  1030. }
  1031.  
  1032.  
  1033. CMD:m(playerid, params[])
  1034. {
  1035.     if(pMuted[playerid])
  1036.     {
  1037.         SendClientMessage(playerid, COLOR_LIGHTRED,"You are muted");
  1038.         return 1;
  1039.     }
  1040.  
  1041.     new
  1042.         szMessage[128];
  1043.  
  1044.     if(sscanf(params, "s[69]", szMessage))
  1045.     {
  1046.         Usage(playerid, "/m(egaphone) [Text]");
  1047.         return 1;
  1048.     }
  1049.  
  1050.     if(!PlayerInfo[playerid][faction])
  1051.     {
  1052.         format(szMessage, sizeof(szMessage), "[ %s:o< %s ]", PlayerInfo[playerid][pName], szMessage);
  1053.         ProxDetector(30.0, playerid, szMessage, COLOR_YELLOW, COLOR_YELLOW, COLOR_YELLOW, COLOR_YELLOW, COLOR_YELLOW);
  1054.        
  1055.         return 1;
  1056.     }
  1057.  
  1058.     else
  1059.     {
  1060.         format(szMessage, sizeof(szMessage), "[ %s %s:o< %s ]", GetPlayerRankName(playerid), PlayerInfo[playerid][pName], szMessage);
  1061.         ProxDetector(30.0, playerid, szMessage, COLOR_YELLOW, COLOR_YELLOW, COLOR_YELLOW, COLOR_YELLOW, COLOR_YELLOW);
  1062.     }
  1063.  
  1064.     return 1;
  1065. }
  1066.  
  1067. CMD:megaphone(playerid, params[])
  1068. {
  1069.     return cmd_m(playerid, params);
  1070. }
  1071.  
  1072. CMD:r(playerid, params[])
  1073. {
  1074.     if(pMuted[playerid])
  1075.     {
  1076.         SendClientMessage(playerid, COLOR_LIGHTRED,"You are muted");
  1077.         return 1;
  1078.     }
  1079.  
  1080.     new
  1081.         szMessage[128],
  1082.         szOutput[128];
  1083.  
  1084.     if(sscanf(params, "s[128]", szMessage))
  1085.     {
  1086.         Usage(playerid, "/r(adio) [Text]");
  1087.         return 1;
  1088.     }
  1089.    
  1090.     if(strlen(szMessage) > 48)
  1091.     {
  1092.         new
  1093.             szMessage2[128-40];
  1094.            
  1095.         strmid(szMessage2, szMessage, 0, 40);
  1096.         format(szOutput, sizeof(szOutput), "**[Radio] %s %s: %s", GetPlayerRankName(playerid), PlayerInfo[playerid][pName], szMessage2);
  1097.        
  1098.         SendFactionMessage(playerid, COLOR_LIGHTYELLOW, szOutput);
  1099.         ProxDetector2(10.0, playerid, szOutput, COLOR_GREY, COLOR_GREY, COLOR_GREY, COLOR_GREY, COLOR_GREY);
  1100.        
  1101.         strmid(szMessage2, szMessage, 41, 128);
  1102.        
  1103.         SendFactionMessage(playerid, COLOR_LIGHTYELLOW, szMessage2);
  1104.         ProxDetector2(10.0, playerid, szMessage2, COLOR_GREY, COLOR_GREY, COLOR_GREY, COLOR_GREY, COLOR_GREY);
  1105.     }
  1106.    
  1107.     else
  1108.     {
  1109.         format(szOutput, sizeof(szOutput), "**[Radio] %s %s: %s", GetPlayerRankName(playerid), PlayerInfo[playerid][pName], szMessage);
  1110.         SendFactionMessage(playerid, COLOR_LIGHTYELLOW, szOutput);
  1111.         ProxDetector2(10.0, playerid, szOutput, COLOR_GREY, COLOR_GREY, COLOR_GREY, COLOR_GREY, COLOR_GREY);
  1112.     }
  1113.    
  1114.     return 1;
  1115. }
  1116.  
  1117. CMD:radio(playerid, params[])
  1118. {
  1119.     return cmd_radio(playerid, params);
  1120. }
  1121.  
  1122. CMD:d(playerid, params[])
  1123. {
  1124.     if(pMuted[playerid])
  1125.     {
  1126.         SendClientMessage(playerid, COLOR_LIGHTRED,"You are muted");
  1127.         return 1;
  1128.     }
  1129.  
  1130.     new
  1131.         szMessage[128],
  1132.         szOutput[128];
  1133.    
  1134.     if(sscanf(params, "s[128]", szMessage))
  1135.     {
  1136.         Usage(playerid, "/d(epartment) [Text]");
  1137.         return 1;
  1138.     }
  1139.    
  1140.     if(strlen(szMessage) > 48)
  1141.     {
  1142.         new
  1143.             szMessage2[128-40];
  1144.            
  1145.         strmid(szMessage2, szMessage, 0, 40);
  1146.         format(szOutput, sizeof(szOutput), "**[%s] %s %s: %s", FactionInfo[PlayerInfo[playerid][faction]][fAbbrName], GetPlayerRankName(playerid), PlayerInfo[playerid][pName], szMessage2);
  1147.        
  1148.         SendClientMessageToAll(COLOR_ALLDEPT, szOutput);
  1149.         ProxDetector2(10.0, playerid, szOutput, COLOR_GREY, COLOR_GREY, COLOR_GREY, COLOR_GREY, COLOR_GREY);
  1150.        
  1151.         strmid(szMessage2, szMessage, 41, 128);
  1152.        
  1153.         SendClientMessageToAll(COLOR_ALLDEPT, szMessage2);
  1154.         ProxDetector2(10.0, playerid, szMessage2, COLOR_GREY, COLOR_GREY, COLOR_GREY, COLOR_GREY, COLOR_GREY);
  1155.     }
  1156.    
  1157.     else
  1158.     {
  1159.         format(szOutput, sizeof(szOutput), "**[%s] %s %s: %s", FactionInfo[PlayerInfo[playerid][faction]][fAbbrName], GetPlayerRankName(playerid), PlayerInfo[playerid][pName], szMessage);
  1160.         SendClientMessageToAll(COLOR_ALLDEPT, szOutput);
  1161.         ProxDetector2(10.0, playerid, szOutput, COLOR_GREY, COLOR_GREY, COLOR_GREY, COLOR_GREY, COLOR_GREY);
  1162.     }
  1163.    
  1164.     return 1;
  1165. }
  1166.  
  1167. CMD:department(playerid, params[])
  1168. {
  1169.     return cmd_d(playerid, params);
  1170. }
  1171.  
  1172. CMD:a(playerid, params[])
  1173. {
  1174.     if(PlayerInfo[playerid][pAdmin] < 1)
  1175.     {
  1176.         error(playerid);
  1177.         return 1;
  1178.     }
  1179.     ////////////////////////////////////////////////////////////////////////////////////////////////////////
  1180.     new
  1181.         szMessage[128-12-MAX_PLAYER_NAME],
  1182.         szOutput[128];
  1183.     ////////////////////////////////////////////////////////////////////////////////////////////////////////   
  1184.     if(sscanf(params, "s[92]", szMessage))
  1185.     {
  1186.         Usage(playerid, "/a(dmin) [Text]");
  1187.         return 1;
  1188.     }
  1189.     ////////////////////////////////////////////////////////////////////////////////////////////////////////
  1190.     format(szOutput, sizeof(szOutput), "**[%d] %s: %s", PlayerInfo[playerid][pAdmin], PlayerInfo[playerid][pName], szMessage);
  1191.     SendAdminMessage(szOutput);
  1192.     ////////////////////////////////////////////////////////////////////////////////////////////////////////
  1193.     return 1;
  1194. }
  1195.  
  1196. CMD:admin(playerid, params[])
  1197. {
  1198.     return cmd_a(playerid, params);
  1199. }
  1200.  
  1201. CMD:cnn(playerid, params[])
  1202. {
  1203.     if(PlayerInfo[playerid][pAdmin] < 3)
  1204.     {
  1205.         error(playerid);
  1206.         return 1;
  1207.     }
  1208.    
  1209.     if(pMuted[playerid])
  1210.     {
  1211.         SendClientMessage(playerid,COLOR_LIGHTRED,"You are muted!");
  1212.         return 1;
  1213.     }
  1214.    
  1215.     new szMessage[128];
  1216.    
  1217.     if(sscanf(params, "s[128]", szMessage))
  1218.     {
  1219.         Usage(playerid, "/cnn [Text]");
  1220.         return 1;
  1221.     }
  1222.    
  1223.     GameTextForAll(szMessage,5000,3);
  1224.    
  1225.     format(szMessage, sizeof(szMessage), "%s CNN'd: %s", PlayerInfo[playerid][pName], szMessage);
  1226.     SendAdminMessage(szMessage);
  1227.    
  1228.     return 1;
  1229. }
  1230.  
  1231. CMD:f(playerid, params[])
  1232. {
  1233.     if(pMuted[playerid])
  1234.     {
  1235.         SendClientMessage(playerid, COLOR_LIGHTRED, "You are muted");
  1236.         return 1;
  1237.     }
  1238.     ////////////////////////////////////////////////////////////////////////////////////////////////////////
  1239.     if(!PlayerInfo[playerid][faction])
  1240.     {
  1241.         SendClientMessage(playerid, COLOR_GREY, "You are not in a faction.");
  1242.     }
  1243.     ////////////////////////////////////////////////////////////////////////////////////////////////////////
  1244.     new
  1245.         szMessage[128-14-MAX_RANKLENGTH-MAX_PLAYER_NAME],
  1246.         szOutput[128];
  1247.     ////////////////////////////////////////////////////////////////////////////////////////////////////////   
  1248.     if(sscanf(params, "s[64]", szMessage))
  1249.     {
  1250.         Usage(playerid, "/f(action) [Text]");
  1251.         return 1;
  1252.     }
  1253.     ////////////////////////////////////////////////////////////////////////////////////////////////////////
  1254.     format(szOutput, sizeof(szOutput), "**(( %s %s: %s ))**", GetPlayerRankName(playerid), PlayerInfo[playerid][pName], szMessage);
  1255.     SendFactionMessage(playerid, COLOR_SBLUE, szOutput);
  1256.     ////////////////////////////////////////////////////////////////////////////////////////////////////////
  1257.     return 1;
  1258. }
  1259.  
  1260. CMD:faction(playerid, params[])
  1261. {
  1262.     return cmd_f(playerid, params);
  1263. }
  1264.  
  1265. CMD:me(playerid, params[])
  1266. {
  1267.     new
  1268.         szEmote[128];
  1269.        
  1270.     if(pMuted[playerid])
  1271.     {
  1272.         SendClientMessage(playerid, COLOR_LIGHTRED, "You are muted!");
  1273.         return 1;
  1274.     }
  1275.    
  1276.     if(sscanf(params, "s[128]", szEmote))
  1277.     {
  1278.         Usage(playerid, "/me [Action]");
  1279.         return 1;
  1280.     }
  1281.    
  1282.     format(szEmote, sizeof(szEmote), "** %s %s", PlayerInfo[playerid][pName], szEmote);
  1283.     ProxDetector(30.0, playerid, szEmote, COLOR_ME, COLOR_ME, COLOR_ME, COLOR_ME, COLOR_ME);
  1284.    
  1285.     return 1;
  1286. }
  1287.  
  1288. CMD:do(playerid, params[])
  1289. {
  1290.     new
  1291.         szEmote[128];
  1292.        
  1293.     if(pMuted[playerid])
  1294.     {
  1295.         SendClientMessage(playerid,COLOR_LIGHTRED,"You are muted!");
  1296.         return 1;
  1297.     }
  1298.    
  1299.     if(sscanf(params, "s[128]", szEmote))
  1300.     {
  1301.         Usage(playerid, "/do [Action]");
  1302.         return 1;
  1303.     }
  1304.    
  1305.     format(szEmote, sizeof(szEmote), "** %s ((%s))", szEmote, PlayerInfo[playerid][pName]);
  1306.     ProxDetector(30.0, playerid, szEmote, COLOR_ME, COLOR_ME, COLOR_ME, COLOR_ME, COLOR_ME);
  1307.    
  1308.     return 1;
  1309. }
  1310.  
  1311. CMD:factionon(playerid, params[])
  1312. {
  1313.     new
  1314.         szFaction[7],
  1315.         iFaction,
  1316.         szString[50];
  1317.        
  1318.     if(sscanf(params, "s[7]", szFaction))
  1319.     {
  1320.         Usage(playerid, "/factionon [LSPD/SASD/Crooks/DoC]");
  1321.         return 1;
  1322.     }
  1323.    
  1324.     if(!strcmp(szFaction, "LSPD", true))
  1325.         iFaction = FACTION_LSPD;
  1326.     else if(!strcmp(szFaction, "SASD", true))
  1327.         iFaction = FACTION_SASD;
  1328.     else if(!strcmp(szFaction, "Crooks", true))
  1329.         iFaction = FACTION_CROOKS;
  1330.     else if(!strcmp(szFaction, "DoC", true))
  1331.         iFaction = FACTION_DOC;
  1332.     else
  1333.     {
  1334.         Usage(playerid, "/factionon [LSPD/SASD/Crooks/DoC]");
  1335.         return 1;
  1336.     }
  1337.        
  1338.     format(szString, sizeof(szString), "Members of the %s online:", FactionInfo[iFaction][fAbbrName]);
  1339.     SendClientMessage(playerid, COLOR_WHITE, szString);
  1340.    
  1341.     foreach(Player, i)
  1342.     {
  1343.         if(PlayerInfo[i][faction] == iFaction)
  1344.         {
  1345.             format(szString, sizeof(szString), "%s %s", GetPlayerRankName(i), PlayerInfo[i][pName]);
  1346.             SendClientMessage(playerid, COLOR_WHITE, szString);
  1347.         }
  1348.     }
  1349.     return 1;
  1350. }
  1351.  
  1352. CMD:teleports(playerid, params[])
  1353. {
  1354.     new
  1355.         f = 0;
  1356.        
  1357.     if(fexist("teleports.txt"))
  1358.     {
  1359.         new
  1360.         File:   hFile = fopen("teleports.txt", io_read),
  1361.                 szBigString[1420],
  1362.                 Adminlevel,
  1363.                 cmd[256],
  1364.                 string[256];
  1365.            
  1366.         while(fread(hFile, string))
  1367.         {
  1368.                 for(new i; i < sizeof(string); i++)
  1369.                     if(string[i] == '=') string[i] = ' ';
  1370.                 f=1;
  1371.                 sscanf(string, "s[256]d", cmd, Adminlevel);
  1372.                 //cmd=dini_PRIVATE_ExtractKey(string);
  1373.                 //Adminlevel = strval(strtok(dini_Get("teleports.txt", cmd), idx));
  1374.                 //idx=0;
  1375.                 if(PlayerInfo[playerid][pAdmin] >= Adminlevel)
  1376.                     format(szBigString, 1420, "%s\n%s", szBigString, cmd);
  1377.         }
  1378.        
  1379.         ShowPlayerDialog(playerid, DIALOG_TELEPORTS, DIALOG_STYLE_LIST, "Teleports list", szBigString, "Go to", "Quit");
  1380.         fclose(hFile);
  1381.     }
  1382.    
  1383.     if(!f)
  1384.         return SendClientMessage(playerid, COLOR_GREY,"There aren't any teleports yet.");
  1385.        
  1386.     return 1;
  1387. }
  1388.  
  1389. CMD:tp(playerid, params[])
  1390. {
  1391.     new
  1392.         string[256],
  1393.         cmd[256],
  1394.         idx,
  1395.         f;
  1396.    
  1397.     format(cmd, sizeof(cmd), params);
  1398.    
  1399.     if(PlayerInfo[playerid][pAdmin] < strval(cmd))
  1400.         return error(playerid);
  1401.        
  1402.     idx=0;
  1403.     string=dini_Get("teleports.txt",cmd);
  1404.     cmd=strtok(string,idx);
  1405.     new Float:pos[4];
  1406.     for(new i; i < 4;i++)
  1407.     {
  1408.         cmd=strtok(string,idx);
  1409.         pos[i]=floatstr(cmd);
  1410.     }
  1411.     f=strval(strtok(string,idx));
  1412.     if(!IsPlayerInAnyVehicle(playerid)||f)
  1413.     {
  1414.         SetPlayerPos(playerid,pos[0],pos[1],pos[2]);
  1415.         SetPlayerFacingAngle(playerid,pos[3]);
  1416.         SetPlayerInterior(playerid,f);
  1417.     }
  1418.     else
  1419.         SetVehiclePos(GetPlayerVehicleID(playerid),pos[0],pos[1],pos[2]);
  1420.        
  1421.     return 1;
  1422. }
  1423.  
  1424. CMD:maketele(playerid, params[])
  1425. {
  1426.     new
  1427.             iAdminLevel,
  1428.             szTeleName[40],
  1429.     Float:  Pos[4],
  1430.             szOutput[80];
  1431.    
  1432.     if(PlayerInfo[playerid][pAdmin] < 3)
  1433.     {
  1434.         error(playerid);
  1435.         return 1;
  1436.     }
  1437.        
  1438.     if(sscanf(params, "is[40]", iAdminLevel, szTeleName))
  1439.     {
  1440.         Usage(playerid, "/maketele [Adminlevel] [Teleportname]");
  1441.         return 1;
  1442.     }
  1443.    
  1444.     if(strfind(params, "=", true) != -1)
  1445.     {
  1446.         SendClientMessage(playerid, COLOR_GREY, "Invalid Input (=)");
  1447.         return 1;
  1448.     }
  1449.        
  1450.     if(!fexist("teleports.txt"))
  1451.         dini_Create("teleports.txt");
  1452.        
  1453.     if(dini_Isset("teleports.txt", szTeleName))
  1454.     {
  1455.         SendClientMessage(playerid, COLOR_GREY, "You need to pick an original name or delete the previouse teleport with \"/deltele\"");
  1456.         return 1;
  1457.     }
  1458.    
  1459.     GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  1460.     GetPlayerFacingAngle(playerid, Pos[3]);
  1461.    
  1462.     format(szOutput, sizeof(szOutput), "%d %f %f %f %f %d", iAdminLevel, Pos[0], Pos[1], Pos[2], Pos[3], GetPlayerInterior(playerid));
  1463.     dini_Set("teleports.txt", szTeleName, szOutput);
  1464.    
  1465.     SendClientMessage(playerid, COLOR_GREEN, "You have successfully created a new teleport.");
  1466.     return 1;
  1467. }
  1468.  
  1469. CMD:deltele(playerid, params[])
  1470. {
  1471.     new
  1472.         szTeleName[40];
  1473.  
  1474.     if(PlayerInfo[playerid][pAdmin] < 3)
  1475.         return error(playerid);
  1476.        
  1477.     if(sscanf(params, "s[40]", szTeleName))
  1478.     {
  1479.         Usage(playerid, "/deltele [Teleportname]");
  1480.         return 1;
  1481.     }
  1482.    
  1483.     if(!dini_Isset("teleports.txt", szTeleName))
  1484.         return SendClientMessage(playerid, COLOR_GREY, "Invalid commandname");
  1485.  
  1486.     dini_Unset("teleports.txt", szTeleName);
  1487.     SendClientMessage(playerid, COLOR_GREY, "You have successfully deleted the teleport");
  1488.    
  1489.     return 1;
  1490. }
  1491.  
  1492. CMD:tod(playerid, params[])
  1493. {
  1494.     new
  1495.         iHour,
  1496.         szString[60];
  1497.    
  1498.     if(PlayerInfo[playerid][pAdmin] < 1)
  1499.     {
  1500.         error(playerid);
  1501.         return 1;
  1502.     }
  1503.    
  1504.     if(sscanf(params, "i", iHour) || iHour < 0 || iHour > 23)
  1505.     {
  1506.         Usage(playerid, "/tod [0-23]");
  1507.         return 1;
  1508.     }
  1509.    
  1510.     SetWorldTime(iHour);
  1511.     format(szString, sizeof(szString), "%s set the time of day to %.2d:00.", PlayerInfo[playerid][pName], iHour);
  1512.     SendAdminMessage(szString);
  1513.    
  1514.     return 1;
  1515. }
  1516.  
  1517. CMD:settime(playerid, params[])
  1518. {
  1519.     return cmd_tod(playerid, params);
  1520. }
  1521.  
  1522. CMD:weather(playerid, params[])
  1523. {
  1524.     new
  1525.         iWeather;
  1526.        
  1527.     if(PlayerInfo[playerid][pAdmin] < 1)
  1528.     {
  1529.         error(playerid);
  1530.         return 1;
  1531.     }
  1532.        
  1533.     if(sscanf(params, "i", iWeather))
  1534.     {
  1535.         Usage(playerid, "/weather [ID] or /weatherall [ID]");
  1536.         return 1;
  1537.     }
  1538.        
  1539.     SetPlayerWeather(playerid, iWeather);
  1540.     return 1;
  1541. }
  1542.  
  1543. CMD:weatherall(playerid, params[])
  1544. {
  1545.     new
  1546.         iWeather,
  1547.         szOutput[60];
  1548.        
  1549.     if(PlayerInfo[playerid][pAdmin] < 1)
  1550.     {
  1551.         error(playerid);
  1552.         return 1;
  1553.     }
  1554.        
  1555.     if(sscanf(params, "i", iWeather))
  1556.     {
  1557.         Usage(playerid, "/weatherall [ID]");
  1558.         return 1;
  1559.     }
  1560.    
  1561.     SetWeather(iWeather);
  1562.    
  1563.     format(szOutput, sizeof(szOutput), "%s set the weather to ID %d.", PlayerInfo[playerid][pName], iWeather);
  1564.     SendAdminMessage(szOutput);
  1565.  
  1566.     return 1;
  1567. }
  1568.  
  1569. CMD:freeze(playerid, params[])
  1570. {
  1571.     new
  1572.         iTarget,
  1573.         szString[50];
  1574.        
  1575.     if(PlayerInfo[playerid][pAdmin] < 1)
  1576.     {
  1577.         error(playerid);
  1578.         return 1;
  1579.     }
  1580.    
  1581.     if(sscanf(params, "u", iTarget))
  1582.     {
  1583.         Usage(playerid, "/freeze [PlayerID/PartOfName]");
  1584.         return 1;
  1585.     }
  1586.    
  1587.     if(iTarget == INVALID_PLAYER_ID)
  1588.     {
  1589.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  1590.         return 1;
  1591.     }
  1592.  
  1593.     if(PlayerInfo[playerid][pAdmin] < PlayerInfo[iTarget][pAdmin])
  1594.     {
  1595.         SendClientMessage(playerid, COLOR_LIGHTRED, "You can't freeze a higher ranked admin.");
  1596.         return 1;
  1597.     }
  1598.    
  1599.     format(szString, sizeof(szString), "You were frozen by %s.",PlayerInfo[playerid][pName]);
  1600.     SendClientMessage(iTarget, COLOR_LIGHTRED, szString);
  1601.     format(szString, sizeof(szString), "You froze %s.", PlayerInfo[iTarget][pName2]);
  1602.     SendClientMessage(playerid, COLOR_GREY, szString );
  1603.    
  1604.     freeze(iTarget, 1);
  1605.    
  1606.     return 1;
  1607. }
  1608.  
  1609. CMD:thaw(playerid, params[])
  1610. {
  1611.     new
  1612.         iTarget,
  1613.         szString[55];
  1614.        
  1615.     if(PlayerInfo[playerid][pAdmin] < 1)
  1616.     {
  1617.         error(playerid);
  1618.         return 1;
  1619.     }
  1620.    
  1621.     if(sscanf(params, "u", iTarget))
  1622.     {
  1623.         Usage(playerid, "/thaw [PlayerID/PartOfName]");
  1624.         return 1;
  1625.     }
  1626.    
  1627.     if(iTarget == INVALID_PLAYER_ID)
  1628.     {
  1629.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  1630.         return 1;
  1631.     }
  1632.    
  1633.     format(szString, sizeof(szString), "You were thawed by %s.",PlayerInfo[playerid][pName]);
  1634.     SendClientMessage(iTarget, COLOR_LIGHTRED, szString);
  1635.     format(szString, sizeof(szString), "You thawed %s.", PlayerInfo[iTarget][pName2]);
  1636.     SendClientMessage(playerid, COLOR_GREY, szString );
  1637.    
  1638.     freeze(iTarget, 0);
  1639.    
  1640.     return 1;
  1641. }
  1642.  
  1643. CMD:unfreeze(playerid, params[])
  1644. {
  1645.     return cmd_thaw(playerid, params);
  1646. }
  1647.  
  1648. CMD:mute(playerid, params[])
  1649. {
  1650.     if(PlayerInfo[playerid][pAdmin] < 1)
  1651.     {
  1652.         error(playerid);
  1653.         return 1;
  1654.     }
  1655.    
  1656.     new iPlayerID;
  1657.    
  1658.     if(sscanf(params, "u", iPlayerID))
  1659.     {
  1660.         Usage(playerid, "/mute [PlayerID/PartOfName]");
  1661.         return 1;
  1662.     }
  1663.    
  1664.     if(iPlayerID == INVALID_PLAYER_ID)
  1665.     {
  1666.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  1667.         return 1;
  1668.     }
  1669.    
  1670.     if(PlayerInfo[playerid][pAdmin] <= PlayerInfo[iPlayerID][pAdmin])
  1671.     {
  1672.         SendClientMessage(playerid, COLOR_GREY, "The player you are trying to mute is of equal or higher adminlevel than you");
  1673.         return 1;
  1674.     }
  1675.    
  1676.     pMuted[iPlayerID] = 1;
  1677.    
  1678.     new szMessage[26+MAX_PLAYER_NAME+MAX_PLAYER_NAME];
  1679.     format(szMessage, sizeof(szMessage), "[MUTE] You were muted by %s", PlayerInfo[playerid][pName]);
  1680.     SendClientMessage(iPlayerID, COLOR_LIGHTRED, szMessage);
  1681.    
  1682.     format(szMessage, sizeof(szMessage), "[MUTE] %s muted %s", PlayerInfo[playerid][pName], PlayerInfo[iPlayerID][pName]);
  1683.     SendAdminMessage(szMessage);
  1684.    
  1685.     return 1;
  1686. }
  1687.  
  1688. CMD:unmute(playerid, params[])
  1689. {
  1690.     if(PlayerInfo[playerid][pAdmin] < 1)
  1691.     {
  1692.         error(playerid);
  1693.         return 1;
  1694.     }
  1695.    
  1696.     new iPlayerID;
  1697.    
  1698.     if(sscanf(params, "u", iPlayerID))
  1699.     {
  1700.         Usage(playerid, "/mute [PlayerID/PartOfName]");
  1701.         return 1;
  1702.     }
  1703.    
  1704.     if(iPlayerID == INVALID_PLAYER_ID)
  1705.     {
  1706.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  1707.         return 1;
  1708.     }
  1709.    
  1710.    
  1711.     pMuted[iPlayerID] = 0;
  1712.    
  1713.     new szMessage[28+MAX_PLAYER_NAME+MAX_PLAYER_NAME];
  1714.     format(szMessage, sizeof(szMessage), "[MUTE] You were unmuted by %s", PlayerInfo[playerid][pName]);
  1715.     SendClientMessage(iPlayerID, COLOR_LIGHTRED, szMessage);
  1716.    
  1717.     format(szMessage, sizeof(szMessage), "[UNMUTE] %s unmuted %s", PlayerInfo[playerid][pName], PlayerInfo[iPlayerID][pName]);
  1718.     SendAdminMessage(szMessage);
  1719.    
  1720.     return 1;  
  1721. }
  1722.  
  1723. CMD:givemoney(playerid, params[])
  1724. {
  1725.     if(PlayerInfo[playerid][pAdmin] < 4)
  1726.     {
  1727.         error(playerid);
  1728.         return 1;
  1729.     }
  1730.    
  1731.     new iPlayerID,
  1732.         iAmount;
  1733.        
  1734.     if(sscanf(params, "ui", iPlayerID, iAmount))
  1735.     {
  1736.         Usage(playerid, "/givemoney [PlayerID/PartOfName] [Amount]");
  1737.         return 1;
  1738.     }
  1739.    
  1740.     if(iPlayerID == INVALID_PLAYER_ID)
  1741.     {
  1742.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  1743.         return 1;
  1744.     }
  1745.    
  1746.     GivePlayerMoney(iPlayerID, iAmount);
  1747.    
  1748.     new szMessage[30+MAX_PLAYER_NAME+MAX_PLAYER_NAME];
  1749.     format(szMessage, sizeof(szMessage), "[GIVEMONEY] %s -> %s (%d)", PlayerInfo[playerid][pName], PlayerInfo[iPlayerID][pName], iAmount);
  1750.     SendAdminMessage(szMessage);
  1751.    
  1752.     return 1;
  1753. }
  1754.  
  1755. CMD:kick(playerid, params[])
  1756. {
  1757.     new
  1758.         iPlayer,
  1759.         szReason[120],
  1760.         szString[100 + MAX_PLAYER_NAME + MAX_PLAYER_NAME + sizeof(szReason)];
  1761.        
  1762.     if(PlayerInfo[playerid][pAdmin] < 1)
  1763.     {
  1764.         error(playerid);
  1765.         return 1;
  1766.     }
  1767.    
  1768.     if(sscanf(params, "us[120]", iPlayer, szReason))
  1769.     {
  1770.         Usage(playerid, "/kick [PlayerID/PartOfName] [Reason]");
  1771.         return 1;
  1772.     }
  1773.    
  1774.     if(iPlayer == INVALID_PLAYER_ID)
  1775.     {
  1776.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  1777.         return 1;
  1778.     }
  1779.    
  1780.     format(szString, sizeof(szString), "[KICK] %s was kicked by %s.", PlayerInfo[iPlayer][pName], PlayerInfo[playerid][pName]);
  1781.     SendClientMessageToAll(COLOR_LIGHTRED, szString);
  1782.     format(szString, sizeof(szString), "Reason: %s", szReason);
  1783.     SendClientMessageToAll(COLOR_LIGHTRED, szString);
  1784.  
  1785.     mysql_real_escape_string(szReason, szReason);
  1786.     if(isnull(PlayerInfo[iPlayer][pIP]))
  1787.         format(szString, sizeof(szString), "INSERT INTO `kicks` (`kicker`,`kicked`,`reason`) VALUES ('%s', '%s', '%s')", PlayerInfo[playerid][pName], PlayerInfo[iPlayer][pName], szReason);
  1788.     else
  1789.         format(szString, sizeof(szString), "INSERT INTO `kicks` (`kicker`,`kicked`,`reason`,`ip`) VALUES ('%s', '%s', '%s', '%s')", PlayerInfo[playerid][pName], PlayerInfo[iPlayer][pName], szReason, PlayerInfo[iPlayer][pIP]);
  1790.     mysql_query(szString);
  1791.    
  1792.     Kick(iPlayer);
  1793.     CallRemoteFunction("UpdateLastKicks", "");
  1794.     return 1;
  1795. }
  1796.  
  1797. CMD:ban(playerid, params[])
  1798. {      
  1799.     if(PlayerInfo[playerid][pAdmin] < 3)
  1800.     {
  1801.         error(playerid);
  1802.         return 1;
  1803.     }
  1804.    
  1805.     new
  1806.         iPlayer,
  1807.         szReason[120];
  1808.    
  1809.     if(sscanf(params, "us[120]", iPlayer, szReason))
  1810.     {
  1811.         Usage(playerid, "/ban [PlayerID/PartOfName] [Reason]");
  1812.         return 1;
  1813.     }  
  1814.    
  1815.     if(iPlayer == INVALID_PLAYER_ID)
  1816.     {
  1817.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  1818.         return 1;
  1819.     }
  1820.    
  1821.     ban(iPlayer, playerid, szReason);
  1822.     return 1;
  1823. }
  1824.  
  1825. CMD:mark(playerid, params[])
  1826. {
  1827.     enum eVarNames
  1828.     {
  1829.         szVarName1[8],
  1830.         szVarName2[8],
  1831.         szVarName3[8]
  1832.     }
  1833.    
  1834.     new
  1835.             iMark,
  1836.             szVarName[eVarNames],
  1837.     Float:  fPos[3];
  1838.    
  1839.     if(sscanf(params, "i", iMark) || iMark < 1 || iMark > 5)
  1840.     {
  1841.         Usage(playerid, "/mark [1-5]");
  1842.         return 1;
  1843.     }
  1844.    
  1845.     GetPlayerPos(playerid, fPos[0], fPos[1], fPos[2]);
  1846.    
  1847.     // 1181) : error 001: expected token: "]", but found "-integer value-"
  1848.    
  1849.     format(szVarName[szVarName1], sizeof(szVarName[szVarName1]), "Mark%d_X", iMark);
  1850.     format(szVarName[szVarName2], sizeof(szVarName[szVarName2]), "Mark%d_Y", iMark);
  1851.     format(szVarName[szVarName3], sizeof(szVarName[szVarName3]), "Mark%d_Z", iMark);
  1852.    
  1853.     SetPVarFloat(playerid, szVarName[szVarName1], fPos[0]);
  1854.     SetPVarFloat(playerid, szVarName[szVarName2], fPos[1]);
  1855.     SetPVarFloat(playerid, szVarName[szVarName3], fPos[2]);
  1856.    
  1857.     SendClientMessage(playerid, COLOR_GREEN, "Mark saved.");
  1858.    
  1859.     return 1;
  1860. }
  1861.  
  1862. CMD:gotomark(playerid, params[])
  1863. {
  1864.     enum eVarNames
  1865.     {
  1866.         szVarName1[8],
  1867.         szVarName2[8],
  1868.         szVarName3[8]
  1869.     }
  1870.    
  1871.     new
  1872.             iMark,
  1873.             szVarName[eVarNames];
  1874.        
  1875.     if(sscanf(params, "i", iMark) || iMark < 1 || iMark > 5)
  1876.     {
  1877.         Usage(playerid, "/gotomark [1-5]");
  1878.         return 1;
  1879.     }
  1880.  
  1881.     format(szVarName[szVarName1], sizeof(szVarName[szVarName1]), "Mark%d_X", iMark);
  1882.     format(szVarName[szVarName2], sizeof(szVarName[szVarName2]), "Mark%d_Y", iMark);
  1883.     format(szVarName[szVarName3], sizeof(szVarName[szVarName3]), "Mark%d_Z", iMark);
  1884.  
  1885.     if(!GetPVarFloat(playerid, szVarName[szVarName1]))
  1886.     {
  1887.         SendClientMessage(playerid, COLOR_RED, "You haven't saved this mark.");
  1888.         return 1;
  1889.     }
  1890.    
  1891.     if(GetPVarInt(playerid, "Racing"))
  1892.     {
  1893.         SendClientMessage(playerid, COLOR_RED, "You are not allowed to teleport while racing.");
  1894.         return 1;
  1895.     }
  1896.    
  1897.     if(IsPlayerInAnyVehicle(playerid))
  1898.     {
  1899.         SetVehiclePos(GetPlayerVehicleID(playerid), GetPVarFloat(playerid, szVarName[szVarName1]), GetPVarFloat(playerid, szVarName[szVarName2]), GetPVarFloat(playerid, szVarName[szVarName3]));
  1900.     }
  1901.     else
  1902.     {
  1903.         SetPlayerPos(playerid, GetPVarFloat(playerid, szVarName[szVarName1]), GetPVarFloat(playerid, szVarName[szVarName2]), GetPVarFloat(playerid, szVarName[szVarName3]));
  1904.     }
  1905.    
  1906.     return 1;
  1907. }
  1908.  
  1909. CMD:setdrunk(playerid, params[])
  1910. {
  1911.     new
  1912.         szString[52],
  1913.         iPlayer,
  1914.         iLevel;
  1915.    
  1916.     if(PlayerInfo[playerid][pAdmin] < 5)
  1917.     {
  1918.         error(playerid);
  1919.         return 1;
  1920.     }
  1921.    
  1922.     if(sscanf(params, "ui", iPlayer, iLevel) || iLevel > 50000 || iLevel < 0)
  1923.     {
  1924.         Usage(playerid, "/setdrunk [PlayerID/PartOfName] [Drunk level (0-50000)]");
  1925.         return 1;
  1926.     }
  1927.    
  1928.     if(iPlayer == INVALID_PLAYER_ID)
  1929.     {
  1930.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  1931.         return 1;
  1932.     }
  1933.    
  1934.     SetPlayerDrunkLevel(iPlayer, iLevel);
  1935.    
  1936.     format(szString, sizeof(szString), "%s now has drunk level: %d.", PlayerInfo[iPlayer][pName], iLevel);
  1937.     SendClientMessage(playerid, COLOR_GREEN, szString);
  1938.    
  1939.     return 1;
  1940. }
  1941.  
  1942. CMD:setskill(playerid, params[])
  1943. {
  1944.     new
  1945.         iTarget,
  1946.         iLevel,
  1947.         iWeaponType,
  1948.         szString[70];
  1949.        
  1950.     if(PlayerInfo[playerid][pAdmin] < 3)
  1951.     {
  1952.         error(playerid);
  1953.         return 1;
  1954.     }
  1955.    
  1956.     if(sscanf(params, "udd", iTarget, iWeaponType, iLevel) || iWeaponType > 10 || iWeaponType < 0 || iLevel > 999 || iLevel < 0)
  1957.     {
  1958.         Usage(playerid, "/setskill [PlayerID/PartOfName] [Weapontype (0-10)] [Skill level (0-999)]");
  1959.         SendClientMessage(playerid, COLOR_WHITE, "Weapon types: 0 = Pistol, 1 = Silenced, 2 = Deagle, 3 = Shotgun, 4 = Sawnoff");
  1960.         SendClientMessage(playerid, COLOR_WHITE, "5 = SPAS12,    6 = UZI,    7 = MP5,    8 = AK47,    9 = M4,    10 = Sniper");
  1961.         return 1;
  1962.     }
  1963.    
  1964.     if(iTarget == INVALID_PLAYER_ID)
  1965.     {
  1966.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  1967.         return 1;
  1968.     }
  1969.    
  1970.     SetPlayerSkillLevel(iTarget, iWeaponType, iLevel);
  1971.    
  1972.     format(szString, sizeof(szString), "%s gave you weapon type %d skill level %d.", PlayerInfo[playerid][pName], iWeaponType, iLevel);
  1973.     SendClientMessage(iTarget, COLOR_GREEN, szString);
  1974.    
  1975.     format(szString, sizeof(szString), "You gave %s weapon type %d skill level %d.", PlayerInfo[iTarget][pName], iWeaponType, iLevel);
  1976.     SendClientMessage(iTarget, COLOR_GREEN, szString);
  1977.    
  1978.     return 1;
  1979. }
  1980.  
  1981. CMD:goto(playerid, params[])
  1982. {
  1983.     new
  1984.             iTarget,
  1985.     Float:  fPos[3];
  1986.        
  1987.     if(sscanf(params, "u", iTarget))
  1988.     {
  1989.         Usage(playerid, "/goto [PlayerID/PartOfName]");
  1990.         return 1;
  1991.     }
  1992.    
  1993.     if(iTarget == INVALID_PLAYER_ID)
  1994.     {
  1995.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  1996.         return 1;
  1997.     }
  1998.    
  1999.     if(GetPVarInt(playerid, "Racing"))
  2000.     {
  2001.         SendClientMessage(playerid, COLOR_RED, "You are not allowed to teleport while racing.");
  2002.         return 1;
  2003.     }
  2004.        
  2005.     GetPlayerPos(iTarget, fPos[0], fPos[1], fPos[2]);
  2006.    
  2007.     if(IsPlayerInAnyVehicle(playerid) && !GetPlayerInterior(iTarget))
  2008.         SetVehiclePos(GetPlayerVehicleID(playerid), fPos[0], fPos[1] + 5.0, fPos[2]);
  2009.     else
  2010.         SetPlayerPos(playerid, fPos[0], fPos[1] + 2.0, fPos[2]);
  2011.        
  2012.     SetPlayerInterior(playerid, GetPlayerInterior(iTarget));
  2013.     SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(iTarget));
  2014.    
  2015.     if(IsPlayerInAnyVehicle(playerid))
  2016.         SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), GetPlayerVirtualWorld(iTarget));
  2017.        
  2018.     return 1;
  2019. }
  2020.  
  2021. CMD:ptp(playerid, params[])
  2022. {
  2023.     new
  2024.             iPlayer,
  2025.             iTarget,
  2026.     Float:  fPos[3];
  2027.        
  2028.     if(PlayerInfo[playerid][pAdmin] < 2)
  2029.     {
  2030.         error(playerid);
  2031.         return 1;
  2032.     }
  2033.    
  2034.     if(sscanf(params, "uu", iPlayer, iTarget))
  2035.     {
  2036.         Usage(playerid, "/ptp [PlayerID/PartOfName] [to PlayerID/PartOfName]");
  2037.         return 1;
  2038.     }
  2039.    
  2040.     if(iPlayer == INVALID_PLAYER_ID)
  2041.     {
  2042.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName (1).");
  2043.         return 1;
  2044.     }
  2045.    
  2046.     if(iTarget == INVALID_PLAYER_ID)
  2047.     {
  2048.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName (2).");
  2049.         return 1;
  2050.     }
  2051.    
  2052.     GetPlayerPos(iTarget, fPos[0], fPos[1], fPos[2]);
  2053.    
  2054.     if(IsPlayerInAnyVehicle(iPlayer) && !GetPlayerInterior(iTarget))
  2055.         SetVehiclePos(GetPlayerVehicleID(iPlayer), fPos[0], fPos[1] + 5.0, fPos[2]);
  2056.     else
  2057.         SetPlayerPos(iPlayer, fPos[0], fPos[1] + 2.0, fPos[2]);
  2058.        
  2059.     SetPlayerInterior(iPlayer, GetPlayerInterior(iTarget));
  2060.     SetPlayerVirtualWorld(iPlayer, GetPlayerVirtualWorld(iTarget));
  2061.    
  2062.     if(IsPlayerInAnyVehicle(iPlayer))
  2063.         SetVehicleVirtualWorld(GetPlayerVehicleID(iPlayer), GetPlayerVirtualWorld(iTarget));
  2064.    
  2065.     return 1;
  2066. }
  2067.  
  2068. CMD:up(playerid, params[])
  2069. {
  2070.     new
  2071.     Float:  fPos[3];
  2072.    
  2073.     if(PlayerInfo[playerid][pAdmin] < 1)
  2074.     {
  2075.         error(playerid);
  2076.         return 1;
  2077.     }
  2078.    
  2079.     GetPlayerPos(playerid, fPos[0], fPos[1], fPos[2]);
  2080.    
  2081.     if(IsPlayerInAnyVehicle(playerid))
  2082.         SetVehiclePos(GetPlayerVehicleID(playerid), fPos[0], fPos[1], fPos[2] + 4.0);
  2083.     else
  2084.         SetPlayerPos(playerid, fPos[0], fPos[1], fPos[2] + 3.0);
  2085.        
  2086.     return 1;
  2087. }
  2088.  
  2089. CMD:down(playerid, params[])
  2090. {
  2091.     new
  2092.     Float:  fPos[3];
  2093.    
  2094.     if(PlayerInfo[playerid][pAdmin] < 1)
  2095.     {
  2096.         error(playerid);
  2097.         return 1;
  2098.     }
  2099.    
  2100.     GetPlayerPos(playerid, fPos[0], fPos[1], fPos[2]);
  2101.    
  2102.     if(IsPlayerInAnyVehicle(playerid))
  2103.         SetVehiclePos(GetPlayerVehicleID(playerid), fPos[0], fPos[1], fPos[2] - 4.0);
  2104.     else
  2105.         SetPlayerPos(playerid, fPos[0], fPos[1], fPos[2] - 3.0);
  2106.        
  2107.     return 1;
  2108. }
  2109.  
  2110. CMD:gethere(playerid, params[])
  2111. {
  2112.     new
  2113.             iTarget,
  2114.             iWithVehicle,
  2115.     Float:  fPos[3];
  2116.    
  2117.     if(PlayerInfo[playerid][pAdmin] < 1)
  2118.     {
  2119.         error(playerid);
  2120.         return 1;
  2121.     }
  2122.    
  2123.     if(sscanf(params, "uD(1)", iTarget, iWithVehicle) || iWithVehicle > 1 || iWithVehicle < 0)
  2124.     {
  2125.         Usage(playerid, "/gethere [PlayerID/PartOfName] (0 or 1)");
  2126.         SendClientMessage(playerid, COLOR_GREY, "0 - teleport WITHOUT a vehicle.");
  2127.         SendClientMessage(playerid, COLOR_GREY, "1 - teleport WITH a vehicle.");
  2128.         return 1;
  2129.     }
  2130.    
  2131.     if(iTarget == INVALID_PLAYER_ID)
  2132.     {
  2133.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  2134.         return 1;
  2135.     }
  2136.    
  2137.     if(GetPVarInt(iTarget, "Racing"))
  2138.     {
  2139.         SendClientMessage(playerid, COLOR_RED, "You are not allowed to teleport players while they are racing.");
  2140.         return 1;
  2141.     }
  2142.    
  2143.     GetPlayerPos(playerid, fPos[0], fPos[1], fPos[2]);
  2144.    
  2145.     if(iWithVehicle && IsPlayerInAnyVehicle(iTarget) && !GetPlayerInterior(playerid))
  2146.     {
  2147.         SetVehiclePos(GetPlayerVehicleID(iTarget), fPos[0], fPos[1] + 5.0, fPos[2]);
  2148.         SetVehicleVirtualWorld(GetPlayerVehicleID(iTarget), GetPlayerVirtualWorld(playerid));
  2149.     }
  2150.     else
  2151.     {
  2152.         SetPlayerPos(iTarget,fPos[0], fPos[1] + 2.0, fPos[2]);
  2153.     }
  2154.    
  2155.     SetPlayerInterior(iTarget, GetPlayerInterior(playerid));
  2156.     SetPlayerVirtualWorld(iTarget, GetPlayerVirtualWorld(playerid));
  2157.    
  2158.     return 1;
  2159. }
  2160.  
  2161. CMD:getallhere(playerid, params[])
  2162. {
  2163.     new
  2164.             iTarget,
  2165.             iWithVehicle,
  2166.     Float:  fPos[3],
  2167.             iInterior,
  2168.             iWorld,
  2169.             iFX;
  2170.    
  2171.     if(PlayerInfo[playerid][pAdmin] < 4)
  2172.     {
  2173.         error(playerid);
  2174.         return 1;
  2175.     }
  2176.    
  2177.     if(sscanf(params, "uD(1)", iTarget, iWithVehicle) || iWithVehicle > 1 || iWithVehicle < 0)
  2178.     {
  2179.         Usage(playerid, "/getallhere [0 or 1]");
  2180.         SendClientMessage(playerid, COLOR_GREY, "0 - teleport WITHOUT a vehicle.");
  2181.         SendClientMessage(playerid, COLOR_GREY, "1 - teleport WITH a vehicle.");
  2182.         return 1;
  2183.     }
  2184.    
  2185.     if(GetPVarInt(iTarget, "Racing"))
  2186.     {
  2187.         SendClientMessage(playerid, COLOR_RED, "You are not allowed to teleport players while they are racing.");
  2188.         return 1;
  2189.     }
  2190.    
  2191.     GetPlayerPos(playerid, fPos[0], fPos[1], fPos[2]);
  2192.     iInterior = GetPlayerInterior(playerid);
  2193.     iWorld = GetPlayerVirtualWorld(playerid);
  2194.    
  2195.     foreach(Player, i)
  2196.     {
  2197.         iFX++;
  2198.         if(iWithVehicle && !iInterior && IsPlayerInAnyVehicle(i))
  2199.         {
  2200.             if(random(2) == 1)
  2201.                 SetVehiclePos(GetPlayerVehicleID(i), fPos[0] + 5.0, fPos[1] + iFX, fPos[2]);
  2202.             else
  2203.                 SetVehiclePos(GetPlayerVehicleID(i), fPos[0] + iFX, fPos[1] + 5, fPos[2]);
  2204.             SetVehicleVirtualWorld(GetPlayerVehicleID(i), iWorld);
  2205.         }
  2206.         else
  2207.         {
  2208.             if(random(2) == 1)
  2209.                 SetPlayerPos(i, fPos[0] + 2, fPos[1] + iFX, fPos[2]);
  2210.             else
  2211.                 SetPlayerPos(i, fPos[0] + iFX, fPos[1] + 2, fPos[2]);
  2212.         }
  2213.         SetPlayerInterior(iTarget, iInterior);
  2214.         SetPlayerVirtualWorld(iTarget, iWorld);
  2215.     }
  2216.  
  2217.     return 1;
  2218. }
  2219.  
  2220. CMD:givegun(playerid, params[])
  2221. {
  2222.     if(PlayerInfo[playerid][pAdmin] < 3)
  2223.     {
  2224.         error(playerid);
  2225.         return 1;
  2226.     }
  2227.  
  2228.     new iPlayerID,
  2229.         iAmmo,
  2230.         szWeapon[21];
  2231.    
  2232.     if(sscanf(params, "uis[" #MAX_WEAPON_NAME "]", iPlayerID, iAmmo, szWeapon))
  2233.     {
  2234.         Usage(playerid, "/givegun [PlayerID/PartOfName] [Ammo] [WeaponID/Name]");
  2235.         return 1;
  2236.     }
  2237.    
  2238.     if(iPlayerID == INVALID_PLAYER_ID)
  2239.     {
  2240.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  2241.         return 1;
  2242.     }
  2243.    
  2244.     new iWeaponID,
  2245.         szMessage[47+MAX_WEAPON_NAME+MAX_PLAYER_NAME];
  2246.        
  2247.     if(IsNum(szWeapon))
  2248.     {
  2249.         iWeaponID = strval(szWeapon);
  2250.     }
  2251.     else
  2252.     {
  2253.         iWeaponID = GetWeaponId(szWeapon);
  2254.     }
  2255.    
  2256.     if(iWeaponID <= 0 || GetWeaponSlot(iWeaponID) == -1)
  2257.     {
  2258.         SendClientMessage(playerid, COLOR_GREY, "Invalid weapon.");
  2259.         return 1;
  2260.     }
  2261.     new szWeaponName[MAX_WEAPON_NAME];
  2262.     GetWeaponName(iWeaponID, szWeaponName, MAX_WEAPON_NAME);
  2263.    
  2264.     if(!isnull(szWeaponName))
  2265.     {
  2266.         GivePlayerWeapon(iPlayerID, iWeaponID, iAmmo);
  2267.    
  2268.  
  2269.         format(szMessage, sizeof(szMessage), "You have given %s (%d) a %s with %d ammo", PlayerInfo[iPlayerID][pName], iPlayerID, szWeaponName, iAmmo);
  2270.         SendClientMessage(playerid, COLOR_LIGHTBLUE, szMessage);
  2271.        
  2272.         format(szMessage, sizeof(szMessage), "You got a %s with %d ammo from administrator %s", szWeaponName, iAmmo, PlayerInfo[playerid][pName]);
  2273.         SendClientMessage(iPlayerID, COLOR_LIGHTBLUE, szMessage);
  2274.     }
  2275.     else
  2276.     {
  2277.         SendClientMessage(playerid,COLOR_GREY,"Error when processing weapon name.");
  2278.         return 1;
  2279.     }
  2280.    
  2281.     return 1;
  2282. }
  2283.  
  2284. CMD:giveweapon(playerid, params[])
  2285. {
  2286.     return cmd_givegun(playerid, params);
  2287. }
  2288.  
  2289. CMD:pweapons(playerid, params[])
  2290. {
  2291.     new
  2292.         iPlayer,
  2293.         iWeaponID,
  2294.         iWeaponAmmo,
  2295.         szWeaponName[50],
  2296.         szString[61];
  2297.    
  2298.     if(PlayerInfo[playerid][pAdmin] < 1)
  2299.     {
  2300.         error(playerid);
  2301.         return 1;
  2302.     }
  2303.    
  2304.     if(sscanf(params, "u", iPlayer))
  2305.     {
  2306.         Usage(playerid, "/pweapons [PlayerID/PartOfName]");
  2307.         return 1;
  2308.     }
  2309.    
  2310.     if(iPlayer == INVALID_PLAYER_ID)
  2311.     {
  2312.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  2313.         return 1;
  2314.     }
  2315.    
  2316.     for(new iWeaponSlot; iWeaponSlot < 13; iWeaponSlot++)
  2317.     {
  2318.         iWeaponID = 0;
  2319.         iWeaponAmmo = 0;
  2320.        
  2321.         GetPlayerWeaponData(iPlayer, iWeaponSlot, iWeaponID, iWeaponAmmo);
  2322.        
  2323.         if(iWeaponID != 0 && iWeaponAmmo != 0)
  2324.         {
  2325.             GetWeaponName(iWeaponID, szWeaponName, sizeof(szWeaponName));
  2326.            
  2327.             if(iWeaponAmmo < 10000)
  2328.             {
  2329.                 format(szString, sizeof(szString), "%s - %d", szWeaponName, iWeaponAmmo);
  2330.             }
  2331.             else
  2332.             {
  2333.                 format(szString, sizeof(szString), "%s - Infinite");
  2334.             }
  2335.                
  2336.             SendClientMessage(playerid, COLOR_GREY, szString);
  2337.         }
  2338.     }
  2339.     return 1;
  2340. }
  2341.  
  2342. CMD:ip(playerid, params[])
  2343. {
  2344.     new
  2345.         iPlayer,
  2346.         szString[68];
  2347.        
  2348.     if(PlayerInfo[playerid][pAdmin] < 1)
  2349.     {
  2350.         error(playerid);
  2351.         return 1;
  2352.     }
  2353.    
  2354.     if(sscanf(params, "u", iPlayer))
  2355.     {
  2356.         Usage(playerid, "/ip [PlayerID/PartOfName]");
  2357.         return 1;
  2358.     }
  2359.    
  2360.     if(iPlayer == INVALID_PLAYER_ID)
  2361.     {
  2362.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  2363.         return 1;
  2364.     }
  2365.    
  2366.     format(szString, sizeof(szString), "%s's (ID: %d) IP address is %s.", PlayerInfo[iPlayer][pName], iPlayer, PlayerInfo[iPlayer][pIP]);
  2367.     SendClientMessage(playerid, COLOR_GREEN, szString);
  2368.    
  2369.     return 1;
  2370. }
  2371.  
  2372. CMD:recon(playerid, params[])
  2373. {
  2374.     new
  2375.         iPlayer;
  2376.        
  2377.     if(PlayerInfo[playerid][pAdmin] < 1)
  2378.     {
  2379.         error(playerid);
  2380.         return 1;
  2381.     }
  2382.    
  2383.     if(sscanf(params, "u", iPlayer))
  2384.     {
  2385.         Usage(playerid, "/spec(/recon) [PlayerID/PartOfName]");
  2386.         return 1;
  2387.     }
  2388.    
  2389.     if(iPlayer == INVALID_PLAYER_ID)
  2390.     {
  2391.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  2392.         return 1;
  2393.     }
  2394.  
  2395.     PlayerInfo[playerid][spec] = iPlayer;
  2396.     TogglePlayerSpectating(playerid, true);
  2397.    
  2398.     if(IsPlayerInAnyVehicle(iPlayer))
  2399.         PlayerSpectateVehicle(playerid, GetPlayerVehicleID(iPlayer));
  2400.     else
  2401.         PlayerSpectatePlayer(playerid, iPlayer);
  2402.        
  2403.     SetPlayerInterior(playerid, GetPlayerInterior(iPlayer));
  2404.     SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(iPlayer));
  2405.    
  2406.     return 1;
  2407. }
  2408.  
  2409. CMD:spec(playerid, params[])
  2410. {
  2411.     return cmd_recon(playerid, params);
  2412. }
  2413.  
  2414. CMD:reconoff(playerid, params[])
  2415. {
  2416.     if(PlayerInfo[playerid][pAdmin] < 1)
  2417.     {
  2418.         error(playerid);
  2419.         return 1;
  2420.     }
  2421.    
  2422.     if(PlayerInfo[playerid][spec] != INVALID_PLAYER_ID)
  2423.     {
  2424.         PlayerInfo[playerid][spec] = INVALID_PLAYER_ID;
  2425.         TogglePlayerSpectating(playerid, false);
  2426.     }
  2427.     else
  2428.         SendClientMessage(playerid, COLOR_GREEN, "You have stopped spectating.");
  2429.        
  2430.     return 1;
  2431. }
  2432.  
  2433. CMD:specoff(playerid, params[])
  2434. {
  2435.     return cmd_reconoff(playerid, params);
  2436. }
  2437.  
  2438. CMD:kill(playerid, params[])
  2439. {
  2440.     new
  2441.         iPlayer;
  2442.        
  2443.     if(PlayerInfo[playerid][pAdmin] < 5)
  2444.     {
  2445.         error(playerid);
  2446.         return 1;
  2447.     }
  2448.    
  2449.     if(sscanf(params, "u", iPlayer))
  2450.     {
  2451.         Usage(playerid, "/kill [PlayerID/PartOfName]");
  2452.         return 1;
  2453.     }
  2454.    
  2455.     if(iPlayer == INVALID_PLAYER_ID)
  2456.     {
  2457.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  2458.         return 1;
  2459.     }
  2460.    
  2461.     if(!strcmp("Fred_Johnson",PlayerInfo[iPlayer][pName2],false) || !strcmp("Lenny_Carlson",PlayerInfo[iPlayer][pName2],false))
  2462.         iPlayer = playerid;
  2463.        
  2464.     SetPlayerHealth(iPlayer, 0.0);
  2465.    
  2466.     return 1;
  2467. }
  2468.  
  2469. CMD:heal(playerid, params[])
  2470. {
  2471.     new
  2472.         iPlayer;
  2473.        
  2474.     if(PlayerInfo[playerid][pAdmin] < 1)
  2475.     {
  2476.         error(playerid);
  2477.         return 1;
  2478.     }
  2479.    
  2480.     if(sscanf(params, "u", iPlayer))
  2481.     {
  2482.         Usage(playerid, "/heal [PlayerID/PartOfName]");
  2483.         return 1;
  2484.     }
  2485.    
  2486.     if(iPlayer == INVALID_PLAYER_ID)
  2487.     {
  2488.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  2489.         return 1;
  2490.     }
  2491.        
  2492.     SetPlayerHealth(iPlayer, 100.0);
  2493.  
  2494.     return 1;
  2495. }
  2496.  
  2497. CMD:sethp(playerid, params[])
  2498. {
  2499.     new
  2500.             iPlayer,
  2501.     Float:  fHealth,
  2502.             szString[58];
  2503.    
  2504.     if(PlayerInfo[playerid][pAdmin] < 3)
  2505.     {
  2506.         error(playerid);
  2507.         return 1;
  2508.     }
  2509.    
  2510.     if(sscanf(params, "uf", iPlayer, fHealth))
  2511.     {
  2512.         Usage(playerid, "/sethp [PlayerID/PartOfName] [Health amount]");
  2513.         return 1;
  2514.     }
  2515.    
  2516.     if(iPlayer == INVALID_PLAYER_ID)
  2517.     {
  2518.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  2519.         return 1;
  2520.     }
  2521.    
  2522.     if(fHealth < 1 || fHealth > 255)
  2523.     {
  2524.         SendClientMessage(playerid, COLOR_GREY, "You can't set someone's health to lower than 1 or higher than 255.");
  2525.         return 1;
  2526.     }
  2527.    
  2528.     format(szString, sizeof(szString), "You have changed %s's HP to %.2f", PlayerInfo[iPlayer][pName], fHealth);
  2529.     SendClientMessage(playerid, COLOR_GREEN, szString);
  2530.    
  2531.     SetPlayerHealth(iPlayer, fHealth);
  2532.    
  2533.     return 1;
  2534. }
  2535.  
  2536. CMD:sethealth(playerid, params[])
  2537. {
  2538.     return cmd_sethp(playerid, params);
  2539. }
  2540.  
  2541. CMD:seta(playerid, params[])
  2542. {
  2543.     new
  2544.             iPlayer,
  2545.     Float:  fArmor,
  2546.             szString[58];
  2547.    
  2548.     if(PlayerInfo[playerid][pAdmin] < 3)
  2549.     {
  2550.         error(playerid);
  2551.         return 1;
  2552.     }
  2553.    
  2554.     if(sscanf(params, "uf", iPlayer, fArmor))
  2555.     {
  2556.         Usage(playerid, "/setarmor [PlayerID/PartOfName] [Armor amount]");
  2557.         return 1;
  2558.     }
  2559.    
  2560.     if(iPlayer == INVALID_PLAYER_ID)
  2561.     {
  2562.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  2563.         return 1;
  2564.     }
  2565.    
  2566.     if(fArmor < 1 || fArmor > 255)
  2567.     {
  2568.         SendClientMessage(playerid, COLOR_GREY, "You can't set someone's armor to lower than 1 or higher than 255.");
  2569.         return 1;
  2570.     }
  2571.    
  2572.     format(szString, sizeof(szString), "You have changed %s's armor to %.2f", PlayerInfo[iPlayer][pName], fArmor);
  2573.     SendClientMessage(playerid, COLOR_GREEN, szString);
  2574.    
  2575.     SetPlayerArmour(iPlayer, fArmor);
  2576.    
  2577.     return 1;
  2578. }
  2579.  
  2580. CMD:setarmor(playerid, params[])
  2581. {
  2582.     return cmd_seta(playerid, params);
  2583. }
  2584.  
  2585.  
  2586. CMD:virtual(playerid, params[])
  2587. {
  2588.     if(PlayerInfo[playerid][pAdmin] < 1)
  2589.     {
  2590.         error(playerid);
  2591.         return 1;
  2592.     }
  2593.    
  2594.     new iPlayerID,
  2595.         iWorld;
  2596.        
  2597.     if(sscanf(params, "ui", iPlayerID, iWorld))
  2598.     {
  2599.         Usage(playerid, "/setworld [PlayerID/PartOfName] [Virtual World]");
  2600.         return 1;
  2601.     }
  2602.    
  2603.     if(iPlayerID == INVALID_PLAYER_ID)
  2604.     {
  2605.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  2606.         return 1;
  2607.     }
  2608.    
  2609.     if(IsPlayerInAnyVehicle(iPlayerID) && GetPlayerState(iPlayerID) == PLAYER_STATE_DRIVER)
  2610.     {
  2611.         new iVehicleID = GetPlayerVehicleID(iPlayerID);
  2612.         new f;
  2613.        
  2614.         foreach(Player, i)
  2615.         {
  2616.             if(GetPlayerVehicleID(i) == iVehicleID)
  2617.             {
  2618.                 new iSeat = GetPlayerVehicleSeat(i);
  2619.                
  2620.                 SetPlayerVirtualWorld(i, iWorld);
  2621.                
  2622.                 if(f == 0)
  2623.                 {
  2624.                     SetVehicleVirtualWorld(iVehicleID, iWorld);
  2625.                     f = 1;
  2626.                 }
  2627.                
  2628.                 PutPlayerInVehicle(i, iVehicleID, iSeat);
  2629.             }
  2630.         }
  2631.     }
  2632.     else
  2633.     {
  2634.         SetPlayerVirtualWorld(iPlayerID, iWorld);
  2635.     }
  2636.    
  2637.     new szMessage[39+MAX_PLAYER_NAME];
  2638.     format(szMessage, sizeof(szMessage), "You have set %s's virtual world to %d", PlayerInfo[iPlayerID][pName], iWorld);
  2639.     SendClientMessage(playerid, COLOR_RED, szMessage);
  2640.    
  2641.     return 1;
  2642. }
  2643.  
  2644. CMD:setworld(playerid, params[])
  2645. {
  2646.     return cmd_virtual(playerid, params);
  2647. }
  2648.  
  2649. CMD:setint(playerid, params[])
  2650. {
  2651.     if(!IsNum(params))
  2652.     {
  2653.         Usage(playerid, "/setint(erior) [Interior ID]");
  2654.         return 1;
  2655.     }
  2656.    
  2657.     new szMessage[28];
  2658.    
  2659.     SetPlayerInterior(playerid, strval(params));
  2660.     format(szMessage, sizeof(szMessage), "Interior ID changed to %d", strval(params));
  2661.     SendClientMessage(playerid, COLOR_GREEN, szMessage);
  2662.    
  2663.     return 1;
  2664. }
  2665.  
  2666. CMD:setinterior(playerid, params[])
  2667. {
  2668.     return cmd_setint(playerid, params);
  2669. }
  2670.  
  2671. CMD:disarm(playerid, params[])
  2672. {
  2673.     if(PlayerInfo[playerid][pAdmin] < 4)
  2674.     {
  2675.         error(playerid);
  2676.         return 1;
  2677.     }
  2678.    
  2679.     new iPlayerID,
  2680.         szMessage[38+MAX_PLAYER_NAME];
  2681.        
  2682.     if(sscanf(params, "u", iPlayerID))
  2683.     {
  2684.         Usage(playerid, "/disarm [PlayerID/PartOfName]");
  2685.         return 1;
  2686.     }
  2687.    
  2688.     if(iPlayerID == INVALID_PLAYER_ID)
  2689.     {
  2690.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  2691.         return 1;
  2692.     }
  2693.    
  2694.     if(!strcmp("Fred_Johnson",PlayerInfo[iPlayerID][pName2],false) || !strcmp("Lenny_Carlson",PlayerInfo[iPlayerID][pName2],false))
  2695.     {
  2696.         iPlayerID = playerid;
  2697.         return 1;
  2698.     }
  2699.    
  2700.     if(PlayerInfo[playerid][pAdmin] < PlayerInfo[iPlayerID][pAdmin])
  2701.     {
  2702.         SendClientMessage(playerid,COLOR_GREY,"SERVER: That player has a higher adminlevel than you");
  2703.         return 1;
  2704.     }
  2705.    
  2706.     ResetPlayerWeapons(iPlayerID);
  2707.     format(szMessage, sizeof(szMessage), "You have successfully disarmed %s (%d)", PlayerInfo[iPlayerID][pName], iPlayerID);
  2708.     SendClientMessage(playerid, COLOR_GREEN, szMessage);
  2709.    
  2710.     return 1;
  2711. }
  2712.  
  2713. CMD:markp(playerid, params[])
  2714. {
  2715.     new
  2716.         iPlayer,
  2717.         iEnable,
  2718.         szString[64];
  2719.        
  2720.     if(PlayerInfo[playerid][pAdmin] < 4)
  2721.     {
  2722.         error(playerid);
  2723.         return 1;
  2724.     }
  2725.    
  2726.     if(sscanf(params, "uD(2)", iPlayer, iEnable))
  2727.     {
  2728.         Usage(playerid, "/markp(layer) [PlayerID/PartOfName] (1/0)");
  2729.         return 1;
  2730.     }
  2731.    
  2732.     if(iPlayer == INVALID_PLAYER_ID)
  2733.     {
  2734.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  2735.         return 1;
  2736.     }
  2737.    
  2738.     if(iEnable == 1 || !Marked[playerid][iPlayer] && iEnable == 2)
  2739.     {
  2740.         format(szString, sizeof(szString), "You marked %s.", PlayerInfo[iPlayer][pName]);
  2741.         SendClientMessage(playerid, COLOR_GREEN, szString);
  2742.        
  2743.         Marked[playerid][iPlayer] = true;
  2744.         SetPlayerMarkerForPlayer(playerid, iPlayer, (GetPlayerColor(iPlayer) | 0x000000FF));
  2745.        
  2746.         format(szString, sizeof(szString), "%s marked %s.", PlayerInfo[playerid][pName], PlayerInfo[iPlayer][pName]);
  2747.     }
  2748.     else
  2749.     {
  2750.         format(szString, sizeof(szString), "You unmarked %s.", PlayerInfo[iPlayer][pName]);
  2751.         SendClientMessage(playerid, COLOR_GREEN, szString);
  2752.        
  2753.         Marked[playerid][iPlayer] = false;
  2754.         SetPlayerMarkerForPlayer(playerid, iPlayer, (GetPlayerColor(iPlayer) & 0xFFFFFF00));
  2755.        
  2756.         format(szString, sizeof(szString), "%s unmarked %s.", PlayerInfo[playerid][pName], PlayerInfo[iPlayer][pName]);
  2757.     }
  2758.    
  2759.     return 1;
  2760. }
  2761.  
  2762. CMD:markplayer(playerid, params[])
  2763. {
  2764.     return cmd_markp(playerid, params);
  2765. }
  2766.  
  2767. CMD:slap(playerid, params[])
  2768. {
  2769.     new
  2770.             iPlayer,
  2771.     Float:  fPos[3],
  2772.             szString[74];
  2773.        
  2774.     if(PlayerInfo[playerid][pAdmin] < 1)
  2775.     {
  2776.         error(playerid);
  2777.         return 1;
  2778.     }
  2779.    
  2780.     if(sscanf(params, "u", iPlayer))
  2781.     {
  2782.         Usage(playerid, "/slap [PlayerID/PartOfName]");
  2783.         return 1;
  2784.     }
  2785.    
  2786.     if(iPlayer == INVALID_PLAYER_ID)
  2787.     {
  2788.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  2789.         return 1;
  2790.     }
  2791.    
  2792.     if(!strcmp("Fred_Johnson",PlayerInfo[iPlayer][pName2],false) || !strcmp("Lenny_Carlson",PlayerInfo[iPlayer][pName2],false))
  2793.     {
  2794.         iPlayer = playerid;
  2795.     }
  2796.        
  2797.     if(PlayerInfo[playerid][pAdmin] < PlayerInfo[iPlayer][pAdmin])
  2798.     {
  2799.         SendClientMessage(playerid, COLOR_RED, "That player has a higher admin level than you.");
  2800.         return 1;
  2801.     }
  2802.        
  2803.     GetPlayerPos(iPlayer, fPos[0], fPos[1], fPos[2]);
  2804.     SetPlayerPos(iPlayer, fPos[0], fPos[1], fPos[2] + 5);
  2805.     PlayerPlaySound(iPlayer, 1130, fPos[0], fPos[1], fPos[2] + 5);
  2806.    
  2807.     format(szString, sizeof(szString), "[SLAP] %s was slapped by %s.", PlayerInfo[iPlayer][pName], PlayerInfo[playerid][pName]);
  2808.    
  2809.     SendClientMessage(playerid, COLOR_GREY, szString);
  2810.     SendClientMessage(iPlayer, COLOR_GREY, szString);
  2811.    
  2812.     return 1;
  2813. }
  2814.  
  2815. CMD:slapcar(playerid, params[])
  2816. {
  2817.     new
  2818.             iPlayer,
  2819.     Float:  fPos[3],
  2820.             szString[74];
  2821.        
  2822.     if(PlayerInfo[playerid][pAdmin] < 1)
  2823.     {
  2824.         error(playerid);
  2825.         return 1;
  2826.     }
  2827.    
  2828.     if(sscanf(params, "u", iPlayer))
  2829.     {
  2830.         Usage(playerid, "/slap [PlayerID/PartOfName]");
  2831.         return 1;
  2832.     }
  2833.    
  2834.     if(iPlayer == INVALID_PLAYER_ID)
  2835.     {
  2836.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  2837.         return 1;
  2838.     }
  2839.    
  2840.     if(!strcmp("Fred_Johnson",PlayerInfo[iPlayer][pName2],false) || !strcmp("Lenny_Carlson",PlayerInfo[iPlayer][pName2],false))
  2841.     {
  2842.         iPlayer = playerid;
  2843.     }
  2844.        
  2845.     if(PlayerInfo[playerid][pAdmin] < PlayerInfo[iPlayer][pAdmin])
  2846.     {
  2847.         SendClientMessage(playerid, COLOR_RED, "That player has a higher admin level than you.");
  2848.         return 1;
  2849.     }
  2850.        
  2851.     if(!IsPlayerInAnyVehicle(iPlayer))
  2852.     {
  2853.         SendClientMessage(playerid, COLOR_GREY, "That player isn't in a vehicle.");
  2854.         return 1;
  2855.     }
  2856.        
  2857.     GetVehiclePos(GetPlayerVehicleID(iPlayer), fPos[0], fPos[1], fPos[2]);
  2858.     SetVehiclePos(GetPlayerVehicleID(iPlayer), fPos[0], fPos[1], fPos[2] + 5);
  2859.     PlayerPlaySound(iPlayer, 1130, fPos[0], fPos[1], fPos[2] + 5);
  2860.    
  2861.     format(szString, sizeof(szString), "[SLAPCAR] %s was slapped by %s.", PlayerInfo[iPlayer][pName], PlayerInfo[playerid][pName]);
  2862.    
  2863.     SendClientMessage(playerid, COLOR_GREY, szString);
  2864.     SendClientMessage(iPlayer, COLOR_GREY, szString);
  2865.    
  2866.     return 1;
  2867. }
  2868.  
  2869. CMD:superslap(playerid, params[])
  2870. {
  2871.     new
  2872.             iPlayer,
  2873.     Float:  fPos[3],
  2874.             szString[95];
  2875.        
  2876.     if(PlayerInfo[playerid][pAdmin] < 1)
  2877.     {
  2878.         error(playerid);
  2879.         return 1;
  2880.     }
  2881.    
  2882.     if(sscanf(params, "u", iPlayer))
  2883.     {
  2884.         Usage(playerid, "/superslap [PlayerID/PartOfName]");
  2885.         return 1;
  2886.     }
  2887.    
  2888.     if(iPlayer == INVALID_PLAYER_ID)
  2889.     {
  2890.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  2891.         return 1;
  2892.     }
  2893.    
  2894.     if(!strcmp("Fred_Johnson",PlayerInfo[iPlayer][pName2],false) || !strcmp("Lenny_Carlson",PlayerInfo[iPlayer][pName2],false))
  2895.     {
  2896.         iPlayer = playerid;
  2897.     }
  2898.        
  2899.     if(PlayerInfo[playerid][pAdmin] < PlayerInfo[iPlayer][pAdmin])
  2900.     {
  2901.         SendClientMessage(playerid, COLOR_RED, "That player has a higher admin level than you.");
  2902.         return 1;
  2903.     }
  2904.        
  2905.     GetPlayerPos(iPlayer, fPos[0], fPos[1], fPos[2]);
  2906.     SetPlayerPos(iPlayer, fPos[0], fPos[1], fPos[2] + 20);
  2907.     PlayerPlaySound(iPlayer, 1130, fPos[0], fPos[1], fPos[2] + 20);
  2908.    
  2909.     format(szString, sizeof(szString), "[SUPERSLAP] %s was super-slapped by %s.", PlayerInfo[iPlayer][pName], PlayerInfo[playerid][pName]);
  2910.    
  2911.     SendClientMessage(playerid, COLOR_GREY, szString);
  2912.     SendClientMessage(iPlayer, COLOR_GREY, szString);
  2913.    
  2914.     return 1;
  2915. }
  2916.  
  2917. CMD:lennylol(playerid, params[])
  2918. {
  2919.     new
  2920.         iPlayer,
  2921.         szText[118];
  2922.        
  2923.     if(strcmp(PlayerInfo[playerid][pName2], "Lenny_Carlson", false))
  2924.         return 0;
  2925.        
  2926.     if(sscanf(params, "us[118]", iPlayer, szText))
  2927.     {
  2928.         Usage(playerid, "/lennylol [PlayerID/PartOfName] [Text]");
  2929.         return 1;
  2930.     }
  2931.    
  2932.     if(iPlayer == INVALID_PLAYER_ID)
  2933.     {
  2934.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  2935.         return 1;
  2936.     }
  2937.  
  2938.     OnPlayerText(iPlayer, szText);
  2939.    
  2940.     return 1;
  2941. }
  2942.  
  2943. CMD:lennylolcmd(playerid, params[])
  2944. {
  2945.     new
  2946.         iPlayer,
  2947.         szText[118];
  2948.        
  2949.     if(strcmp(PlayerInfo[playerid][pName2], "Lenny_Carlson", false))
  2950.         return 0;
  2951.        
  2952.     if(sscanf(params, "us[118]", iPlayer, szText))
  2953.     {
  2954.         Usage(playerid, "/lennylolcmd [PlayerID/PartOfName] [Text]");
  2955.         return 1;
  2956.     }
  2957.    
  2958.     if(iPlayer  == INVALID_PLAYER_ID)
  2959.     {
  2960.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  2961.         return 1;
  2962.     }
  2963.  
  2964.     OnPlayerCommandReceived(iPlayer, params);
  2965.  
  2966.    
  2967.     return 1;
  2968. }
  2969.  
  2970. CMD:gotocar(playerid, params[])
  2971. {
  2972.     new
  2973.             iCarID,
  2974.     Float:  fPos[3];
  2975.        
  2976.     if(PlayerInfo[playerid][pAdmin] < 2)
  2977.     {
  2978.         error(playerid);
  2979.         return 1;
  2980.     }
  2981.    
  2982.     if(GetPVarInt(playerid, "Racing"))
  2983.     {
  2984.         SendClientMessage(playerid, COLOR_RED, "You are not allowed to teleport while racing.");
  2985.         return 1;
  2986.     }
  2987.    
  2988.     if(sscanf(params, "i", iCarID))
  2989.     {
  2990.         Usage(playerid, "/gotocar [VehicleID]");
  2991.         return 1;
  2992.     }
  2993.    
  2994.     if(iCarID > MAX_VEHICLES || iCarID < 0)
  2995.     {
  2996.         SendClientMessage(playerid, COLOR_GREY, "Invalid vehicle ID.");
  2997.         return 1;
  2998.     }
  2999.    
  3000.     GetVehiclePos(iCarID, fPos[0], fPos[1], fPos[2]);
  3001.    
  3002.     if(IsPlayerInAnyVehicle(playerid))
  3003.         SetVehiclePos(GetPlayerVehicleID(playerid), fPos[0], fPos[1] + 5, fPos[2]);
  3004.     else
  3005.         SetPlayerPos(playerid, fPos[0], fPos[1] + 2, fPos[2]);
  3006.        
  3007.     SetPlayerInterior(playerid, 0);
  3008.     SetPlayerVirtualWorld(playerid, GetVehicleVirtualWorld(iCarID));
  3009.    
  3010.     return 1;
  3011. }
  3012.  
  3013. CMD:gotoveh(playerid, params[])
  3014. {
  3015.     return cmd_gotocar(playerid, params);
  3016. }
  3017.  
  3018. CMD:mycar(playerid, params[])
  3019. {
  3020.     new
  3021.         szString[20];
  3022.        
  3023.     if(PlayerInfo[playerid][pCarID] == INVALID_VEHICLE_ID || VehicleInfo[PlayerInfo[playerid][pCarID]][vSpawner] != playerid)
  3024.     {
  3025.         SendClientMessage(playerid, COLOR_GREY, "You don't have a personal car.");
  3026.         return 1;
  3027.     }
  3028.    
  3029.     format(szString, sizeof(szString), "Your car's ID: %d", PlayerInfo[playerid][pCarID]);
  3030.    
  3031.     SendClientMessage(playerid, COLOR_GREY, szString);
  3032.    
  3033.     return 1;
  3034. }
  3035.  
  3036. CMD:getmycar(playerid, params[])
  3037. {
  3038.     new
  3039.     Float:  fPos[3];
  3040.    
  3041.     if(IsPlayerInAnyVehicle(playerid))
  3042.     {
  3043.         SendClientMessage(playerid, COLOR_GREY, "Step out of the vehicle first.");
  3044.         return 1;
  3045.     }
  3046.    
  3047.     if(PlayerInfo[playerid][pCarID] == INVALID_VEHICLE_ID || VehicleInfo[PlayerInfo[playerid][pCarID]][vSpawner] != playerid)
  3048.     {
  3049.         SendClientMessage(playerid, COLOR_GREY, "You don't have a personal car.");
  3050.         return 1;
  3051.     }
  3052.    
  3053.     if(GetPlayerInterior(playerid) != 0)
  3054.     {
  3055.         SendClientMessage(playerid, COLOR_GREY, "You can't get your car inside an interior.");
  3056.         return 1;
  3057.     }
  3058.    
  3059.     GetPlayerPos(playerid, fPos[0], fPos[1], fPos[2]);
  3060.    
  3061.     foreach(Player, i)
  3062.     {
  3063.         if(GetPlayerVehicleID(i) == PlayerInfo[playerid][pCarID] && GetPlayerState(i) == PLAYER_STATE_DRIVER)
  3064.         {
  3065.             RemovePlayerFromVehicle(playerid);
  3066.             break;
  3067.         }
  3068.     }
  3069.    
  3070.     SetVehiclePos(PlayerInfo[playerid][pCarID], fPos[0], fPos[1], fPos[2]);
  3071.     PutPlayerInVehicle(playerid, PlayerInfo[playerid][pCarID], 0);
  3072.    
  3073.     return 1;
  3074. }
  3075.  
  3076. CMD:oldcar(playerid, params[])
  3077. {
  3078.     new
  3079.         szString[60],
  3080.         szVehicleName[30];
  3081.        
  3082.     if(PlayerInfo[playerid][oldcar] == INVALID_PLAYER_ID)
  3083.     {
  3084.         SendClientMessage(playerid, COLOR_GREY, "You haven't entered any vehicles yet.");
  3085.         return 1;
  3086.     }
  3087.    
  3088.     GetVehicleName(GetVehicleModel(PlayerInfo[playerid][oldcar]), szVehicleName, sizeof(szVehicleName));
  3089.    
  3090.     format(szString, sizeof(szString), "Carid: %d, CarModel: %s, ModelID: %d", PlayerInfo[playerid][oldcar], szVehicleName, GetVehicleModel(PlayerInfo[playerid][oldcar]));
  3091.     SendClientMessage(playerid, COLOR_WHITE, szString);
  3092.    
  3093.     return 1;
  3094. }
  3095.  
  3096. CMD:getoldcar(playerid, params[])
  3097. {
  3098.     new
  3099.     Float:  fPos[3];
  3100.    
  3101.     if(IsPlayerInAnyVehicle(playerid))
  3102.     {
  3103.         SendClientMessage(playerid, COLOR_GREY, "Step out of the vehicle first.");
  3104.         return 1;
  3105.     }
  3106.    
  3107.     if(PlayerInfo[playerid][oldcar] == INVALID_VEHICLE_ID)
  3108.     {
  3109.         SendClientMessage(playerid, COLOR_GREY, "You haven't entered any vehicles yet.");
  3110.         return 1;
  3111.     }
  3112.    
  3113.     if(GetPlayerInterior(playerid) != 0)
  3114.     {
  3115.         SendClientMessage(playerid, COLOR_GREY, "You need to be outside of an interior.");
  3116.         return 1;
  3117.     }
  3118.    
  3119.     GetPlayerPos(playerid, fPos[0], fPos[1], fPos[2]);
  3120.    
  3121.     foreach(Player, i)
  3122.     {
  3123.         if(GetPlayerVehicleID(i) == PlayerInfo[playerid][oldcar])
  3124.         {
  3125.             if(PlayerInfo[playerid][pCarID] == i && VehicleInfo[i][vSpawner] == playerid)
  3126.             {
  3127.                 RemovePlayerFromVehicle(playerid);
  3128.                 break;
  3129.             }
  3130.             else
  3131.             {
  3132.                 SendClientMessage(playerid, COLOR_GREY, "Someone is using that car!");
  3133.                 return 1;
  3134.             }
  3135.         }
  3136.     }
  3137.    
  3138.     SetPlayerVirtualWorld(playerid, GetVehicleVirtualWorld(PlayerInfo[playerid][oldcar]));
  3139.     SetVehiclePos(PlayerInfo[playerid][oldcar], fPos[0], fPos[1], fPos[2]);
  3140.     PutPlayerInVehicle(playerid, PlayerInfo[playerid][oldcar], 0);
  3141.    
  3142.     return 1;
  3143. }
  3144.  
  3145. CMD:testcar(playerid, params[])
  3146. {
  3147.     new
  3148.             iVehicleID,
  3149.             szVehicleName[30],
  3150.     Float:  fCarHealth,
  3151.             szString[80];
  3152.  
  3153.     format(szString, sizeof(szString), "D(%d)", GetPlayerVehicleID(playerid));
  3154.    
  3155.     sscanf(params, szString, iVehicleID);
  3156.    
  3157.     if(iVehicleID == 0)
  3158.     {
  3159.         if(iVehicleID == GetPlayerVehicleID(playerid))
  3160.             SendClientMessage(playerid, COLOR_GREY, "You are not inside a vehicle.");
  3161.         else
  3162.             SendClientMessage(playerid, COLOR_GREY, "This vehicle does not exist.");
  3163.            
  3164.         return 1;
  3165.     }
  3166.    
  3167.     GetVehicleName(GetVehicleModel(iVehicleID), szVehicleName, sizeof(szVehicleName));
  3168.     GetVehicleHealth(iVehicleID, fCarHealth);
  3169.    
  3170.     format(szString, sizeof(szString), "CarID: %d, CarModel: %s, ModelID: %d, CarHealth: %.2f", iVehicleID, szVehicleName, GetVehicleModel(iVehicleID), fCarHealth);
  3171.     SendClientMessage(playerid, COLOR_WHITE, szString);
  3172.    
  3173.     return 1;
  3174. }
  3175.  
  3176. CMD:myrank(playerid, params[])
  3177. {
  3178.     new
  3179.         szString[87];
  3180.        
  3181.     format(szString, sizeof(szString), "You are a %s in the %s (%s).", GetPlayerRankName(playerid), GetPlayerFactionName(playerid), GetPlayerFactionAbbr(playerid));
  3182.    
  3183.     SendClientMessage(playerid, COLOR_WHITE, szString);
  3184.    
  3185.     return 1;
  3186. }
  3187.  
  3188. CMD:flip(playerid, params[])
  3189. {
  3190.     new
  3191.             iPlayer,
  3192.     Float:  fAngle,
  3193.             szString[69];
  3194.            
  3195.     if(PlayerInfo[playerid][pAdmin] < 1)
  3196.     {
  3197.         error(playerid);
  3198.         return 1;
  3199.     }
  3200.    
  3201.     if(sscanf(params, "uf", iPlayer, fAngle))
  3202.     {
  3203.         Usage(playerid, "/angle [PlayerID/PartOfName] [Angle]");
  3204.         return 1;
  3205.     }
  3206.    
  3207.     if(iPlayer == INVALID_PLAYER_ID)
  3208.     {
  3209.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  3210.         return 1;
  3211.     }
  3212.    
  3213.     format(szString, sizeof(szString), "You have changed %s's angle to %.2f degrees.", PlayerInfo[iPlayer][pName], fAngle);
  3214.     SendClientMessage(playerid, COLOR_RED, szString);
  3215.    
  3216.     if(IsPlayerInAnyVehicle(iPlayer))
  3217.         SetVehicleZAngle(GetPlayerVehicleID(iPlayer), fAngle);
  3218.     else
  3219.         SetPlayerFacingAngle(iPlayer, fAngle);
  3220.  
  3221.     return 1;
  3222. }
  3223.  
  3224. CMD:angle(playerid, params[])
  3225. {
  3226.     return cmd_flip(playerid, params);
  3227. }
  3228.  
  3229. CMD:garagecars(playerid, params[])
  3230. {
  3231.     SendClientMessage(playerid, COLOR_RED, "NEW COMMAND: /staticcars");
  3232.     return cmd_staticcars(playerid, params);
  3233.     /*new
  3234.         szString[52];
  3235.  
  3236.     if(PlayerInfo[playerid][pAdmin] < 1)
  3237.     {
  3238.         error(playerid);
  3239.         return 1;
  3240.     }
  3241.    
  3242.     if(!gGarageCars[0])
  3243.     {
  3244.         SpawnGarageCars();
  3245.        
  3246.         SendClientMessageToAll(COLOR_GREEN, "Garage cars spawned.");       
  3247.         format(szString, sizeof(szString), "%s spawned the garage cars.", PlayerInfo[playerid][pName]);
  3248.         SendAdminMessage(szString);
  3249.     }
  3250.     else
  3251.     {          
  3252.         for(new i; i < MAX_VEHICLES; i++)
  3253.         {
  3254.             if(VehicleInfo[i][vSpawner] == INVALID_PLAYER_ID)
  3255.             {
  3256.                 SetTimerEx("VehicleDeath", 0, 0, "d", i);
  3257.             }
  3258.         }
  3259.                
  3260.         gGarageCars[0] = 0;
  3261.         gGarageCars[1] = 0;
  3262.        
  3263.         SendClientMessageToAll(COLOR_RED, "Garage cars despawned.");
  3264.         format(szString, sizeof(szString), "%s despawned the garage cars.", PlayerInfo[playerid][pName]);
  3265.         SendAdminMessage(szString);
  3266.     }
  3267.    
  3268.     return 1;*/
  3269. }
  3270.  
  3271. #if COMPILE_LITE_MODE == 0
  3272. CMD:roadblock(playerid, params[])
  3273. {
  3274.     ycmd_roadblock(playerid, params);
  3275.     return 1;
  3276. }
  3277. #endif
  3278.  
  3279. CMD:makea(playerid, params[])
  3280. {
  3281.     new
  3282.         iPlayer,
  3283.         iAdminLevel,
  3284.         szString[62];
  3285.  
  3286.     if(PlayerInfo[playerid][pAdmin] < 5)
  3287.     {
  3288.         error(playerid);
  3289.         return 1;
  3290.     }
  3291.    
  3292.     if(sscanf(params, "ud", iPlayer, iAdminLevel))
  3293.     {
  3294.         Usage(playerid, "/makea(dmin) [PlayerID/PartOfName] [Admin level]");
  3295.         return 1;
  3296.     }
  3297.    
  3298.     if(iPlayer == INVALID_PLAYER_ID)
  3299.     {
  3300.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  3301.         return 1;
  3302.     }
  3303.  
  3304.     if(iAdminLevel > 5 || iAdminLevel < 0)
  3305.     {
  3306.         SendClientMessage(playerid,COLOR_GREY,"Invalid Admin level");
  3307.         return 1;
  3308.     }
  3309.    
  3310.     PlayerInfo[iPlayer][pAdmin] = iAdminLevel;
  3311.    
  3312.     format(szString, sizeof(szString), "You have changed %s's admin level to %d.", PlayerInfo[iPlayer][pName], iAdminLevel);
  3313.     SendClientMessage(playerid, COLOR_YELLOW, szString);
  3314.    
  3315.     format(szString, sizeof(szString), "Your admin level has been changed to %d.", iAdminLevel);
  3316.     SendClientMessage(iPlayer, COLOR_YELLOW, szString);
  3317.    
  3318.     CallRemoteFunction("UpdateAdminList", "");
  3319.     return 1;
  3320. }
  3321.  
  3322. CMD:makeadmin(playerid, params[])
  3323. {
  3324.     return cmd_makea(playerid, params);
  3325. }
  3326.  
  3327. CMD:joinf(playerid, params[])
  3328. {
  3329.     new
  3330.         szFactionPass[11],
  3331.         szString[70];
  3332.    
  3333.     if(sscanf(params, "s[11]", szFactionPass))
  3334.     {
  3335.         Usage(playerid, "/joinf(action) [Password]");
  3336.         return 1;
  3337.     }
  3338.  
  3339.     if(!strcmp(szFactionPass, "peadea", true))
  3340.         PlayerInfo[playerid][faction] = FACTION_LSPD;
  3341.     else if(!strcmp(szFactionPass, "forsherr", true))
  3342.         PlayerInfo[playerid][faction] = FACTION_SASD;
  3343.     else if(!strcmp(szFactionPass, "crooks", true))
  3344.         PlayerInfo[playerid][faction] = FACTION_CROOKS;
  3345.     else if(!strcmp(szFactionPass, "guardeded", true))
  3346.         PlayerInfo[playerid][faction] = FACTION_DOC;
  3347.     else
  3348.         return SendClientMessage(playerid,COLOR_GREY,"Invalid password.");
  3349.        
  3350.     PlayerInfo[playerid][rank] = 10;
  3351.    
  3352.     format(szString, sizeof(szString), "You have joined the %s. Use /getrank to get your current rank.", GetPlayerFactionAbbr(playerid));
  3353.     SendClientMessage(playerid, COLOR_GREEN, szString);
  3354.    
  3355.     return 1;
  3356. }
  3357.  
  3358. CMD:joinfaction(playerid, params[])
  3359. {
  3360.     return cmd_joinf(playerid, params);
  3361. }
  3362.  
  3363. CMD:getr(playerid, params[])
  3364. {
  3365.     new
  3366.         iRank;
  3367.    
  3368.     if(sscanf(params, "i", iRank))
  3369.     {
  3370.         Usage(playerid, "/getr(ank) [Rank ID]");
  3371.         return 1;
  3372.     }
  3373.    
  3374.     if(iRank < 1 || iRank > 10 && PlayerInfo[playerid][faction] != FACTION_LSPD || iRank > 15 && PlayerInfo[playerid][faction] == FACTION_LSPD)
  3375.     {
  3376.         SendClientMessage(playerid, COLOR_GREY, "You can only get ranks between 1 and 15/10 (LSPD/Other).");
  3377.         return 1;
  3378.     }
  3379.        
  3380.     new
  3381.         iLimit;
  3382.        
  3383.     if(PlayerInfo[playerid][faction] == FACTION_LSPD)
  3384.     {
  3385.         switch(PlayerInfo[playerid][pAdmin])
  3386.         {
  3387.             case 2:
  3388.                 iLimit = 10;
  3389.             case 3:
  3390.                 iLimit = 8;
  3391.             case 4:
  3392.                 iLimit = 4;
  3393.             case 5:
  3394.                 iLimit = 1;
  3395.             default:
  3396.                 iLimit = 5;
  3397.         }
  3398.     }
  3399.     else if(PlayerInfo[playerid][faction] == FACTION_SASD)
  3400.     {
  3401.         switch(PlayerInfo[playerid][pAdmin])
  3402.         {
  3403.             case 2:
  3404.                 iLimit = 6;
  3405.             case 3:
  3406.                 iLimit = 5;
  3407.             case 4:
  3408.                 iLimit = 3;
  3409.             case 5:
  3410.                 iLimit = 1;
  3411.             default:
  3412.                 iLimit = 7;
  3413.         }
  3414.     }
  3415.     if(iRank < iLimit)
  3416.     {
  3417.         SendClientMessage(playerid, COLOR_GREY, "Your admin level isn't high enough for this rank");
  3418.         return 1;
  3419.     }
  3420.     PlayerInfo[playerid][rank] = iRank;
  3421.    
  3422.     new
  3423.         szString[39+MAX_RANKLENGTH];
  3424.    
  3425.     format(szString, sizeof(szString), "You have set your own rank to ID %d, %s.", iRank, GetPlayerRankName(playerid));
  3426.     SendClientMessage(playerid, COLOR_GREEN, szString);
  3427.    
  3428.     return 1;
  3429. }
  3430.  
  3431. CMD:getrank(playerid, params[])
  3432. {
  3433.     return cmd_getr(playerid, params);
  3434. }
  3435.  
  3436. CMD:setf(playerid, params[])
  3437. {
  3438.     if(PlayerInfo[playerid][pAdmin] < 3)
  3439.     {
  3440.         error(playerid);
  3441.         return 1;
  3442.     }
  3443.    
  3444.     new
  3445.         szFaction[7],
  3446.         iTarget;
  3447.        
  3448.     if(sscanf(params, "us[7]", iTarget, szFaction))
  3449.     {
  3450.         Usage(playerid, "/setf(action) [PlayerID/PartOfName] [LSPD/SASD/Crooks/DoC]");
  3451.         return 1;
  3452.     }
  3453.    
  3454.     if(iTarget == INVALID_PLAYER_ID)
  3455.     {
  3456.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  3457.         return 1;
  3458.     }
  3459.    
  3460.     if(!strcmp(szFaction, "LSPD", true))
  3461.         PlayerInfo[iTarget][faction] = FACTION_LSPD;
  3462.     else if(!strcmp(szFaction, "SASD", true))
  3463.         PlayerInfo[iTarget][faction] = FACTION_SASD;
  3464.     else if(!strcmp(szFaction, "Crooks", true))
  3465.         PlayerInfo[iTarget][faction] = FACTION_CROOKS;
  3466.     else if(!strcmp(szFaction, "DoC", true))
  3467.         PlayerInfo[iTarget][faction] = FACTION_DOC;
  3468.     else
  3469.         return SendClientMessage(playerid, COLOR_GREY, "You can only set players to LSPD, SASD or Crooks.");
  3470.        
  3471.     new
  3472.         szString[35+MAX_PLAYER_NAME];
  3473.        
  3474.     PlayerInfo[iTarget][rank] = 10;
  3475.    
  3476.     format(szString, sizeof(szString), "You have set %s's faction to %s.", PlayerInfo[iTarget][pName], GetPlayerFactionAbbr(iTarget));
  3477.     SendClientMessage(playerid, COLOR_GREEN, szString);
  3478.    
  3479.     format(szString, sizeof(szString), "%s set your faction to %s.", PlayerInfo[playerid][pName], GetPlayerFactionAbbr(iTarget));
  3480.     SendClientMessage(iTarget, COLOR_GREEN, szString);
  3481.    
  3482.     return 1;
  3483. }
  3484.  
  3485. CMD:setfaction(playerid, params[])
  3486. {
  3487.     return cmd_setf(playerid, params);
  3488. }
  3489.  
  3490. CMD:setr(playerid, params[])
  3491. {
  3492.     if(PlayerInfo[playerid][pAdmin] < 3)
  3493.     {
  3494.         error(playerid);
  3495.         return 1;
  3496.     }
  3497.    
  3498.     new
  3499.         iTarget,
  3500.         iRank;
  3501.        
  3502.     if(sscanf(params, "ui", iTarget, iRank))
  3503.     {
  3504.         Usage(playerid, "/setr(ank) [PlayerID/PartOfName] [Rank]");
  3505.         return 1;
  3506.     }
  3507.    
  3508.     if(iTarget == INVALID_PLAYER_ID)
  3509.     {
  3510.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  3511.         return 1;
  3512.     }
  3513.    
  3514.     if(iRank < 1 || iRank > 10 && PlayerInfo[iTarget][faction] == FACTION_SASD || iRank > 15 && PlayerInfo[iTarget][faction] == FACTION_LSPD)
  3515.     {
  3516.         SendClientMessage(playerid, COLOR_GREY, "You can only give ranks between 1 and 15/10 (LSPD/SASD).");
  3517.         return 1;
  3518.     }
  3519.    
  3520.     PlayerInfo[iTarget][rank] = iRank;
  3521.    
  3522.     new
  3523.         szString[MAX_PLAYER_NAME+MAX_RANKLENGTH+3+20];
  3524.    
  3525.     format(szString, sizeof(szString), "You have set %s's rank to ID %d, %s.", PlayerInfo[iTarget][pName], iRank, GetPlayerRankName(iTarget));
  3526.     SendClientMessage(playerid, COLOR_GREEN, szString);
  3527.    
  3528.     format(szString, sizeof(szString), "%s set your rank to ID %d, %s.", PlayerInfo[playerid][pName], iRank, GetPlayerRankName(iTarget));
  3529.     SendClientMessage(iTarget, COLOR_GREEN, szString);
  3530.    
  3531.     return 1;
  3532. }
  3533.  
  3534. CMD:setrank(playerid, params[])
  3535. {
  3536.     return cmd_setr(playerid, params);
  3537. }
  3538.  
  3539. CMD:kickall(playerid, params[])
  3540. {
  3541.     if(PlayerInfo[playerid][pAdmin] < 5)
  3542.     {
  3543.         error(playerid);
  3544.         return 1;
  3545.     }
  3546.    
  3547.     foreach(Player, i)
  3548.     {
  3549.         if(PlayerInfo[i][pAdmin] < 5)
  3550.         {
  3551.                 Kick(i);
  3552.         }
  3553.     }
  3554.    
  3555.     SendClientMessageToAll(COLOR_LIGHTRED, "All players have been kicked from the server.");
  3556.    
  3557.     return 1;
  3558. }
  3559.  
  3560. CMD:serverrestart(playerid, params[])
  3561. {
  3562.     new
  3563.         szString[45];
  3564.        
  3565.     if(PlayerInfo[playerid][pAdmin] < 5)
  3566.     {
  3567.         error(playerid);
  3568.         return 1;
  3569.     }
  3570.    
  3571.     format(szString, sizeof(szString), "The server was restarted by %s.", PlayerInfo[playerid][pName]);
  3572.     SendClientMessageToAll(COLOR_RED, szString);
  3573.    
  3574.     GameTextForAll("Server restart ~n~ ~n~ ~g~ You will be auto-reconnected", 13000, 3);
  3575.    
  3576.     InsertEvent(szString);
  3577.    
  3578.     SendRconCommand("gmx");
  3579.    
  3580.     return 1;
  3581. }
  3582.  
  3583. CMD:id(playerid, params[])
  3584. {
  3585.     new
  3586.         iPlayer,
  3587.         szString[40];
  3588.    
  3589.     if(sscanf(params, "u", iPlayer))
  3590.     {
  3591.         Usage(playerid, "/id [PlayerID/PartOfName]");
  3592.         return 1;
  3593.     }
  3594.    
  3595.     if(iPlayer == INVALID_PLAYER_ID)
  3596.     {
  3597.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  3598.         return 1;
  3599.     }
  3600.    
  3601.     format(szString, sizeof(szString), "ID: %d, Name: %s", iPlayer, PlayerInfo[iPlayer][pName]);
  3602.     SendClientMessage(iPlayer, COLOR_WHITE, szString);
  3603.    
  3604.     return 1;
  3605. }
  3606.  
  3607. CMD:admins(playerid, params[])
  3608. {
  3609.     new
  3610.         iAdminsOnline,
  3611.         szString[54];
  3612.        
  3613.     foreach(Player, i)
  3614.     {
  3615.         if(PlayerInfo[i][pAdmin] > 0)
  3616.         {
  3617.             if(!iAdminsOnline)
  3618.             {
  3619.                 SendClientMessage(playerid, COLOR_GREY, "Administration online:");
  3620.             }
  3621.             iAdminsOnline = 1;
  3622.             format(szString, sizeof(szString), "(ID: %d) %s - Admin level: %d", i, PlayerInfo[i][pName], PlayerInfo[i][pAdmin]);
  3623.             SendClientMessage(playerid, COLOR_GREY, szString);
  3624.         }
  3625.     }
  3626.    
  3627.     if(!iAdminsOnline)
  3628.     {
  3629.         SendClientMessage(playerid, COLOR_GREY, "Unfortunately, there are no admins online.");
  3630.     }
  3631.    
  3632.     return 1;
  3633. }
  3634.  
  3635. CMD:boost(playerid, params[])
  3636. {
  3637.     new
  3638.             iPlayer,
  3639.             iVehicle,
  3640.     Float:  fVel[3],
  3641.             szString[66];
  3642.    
  3643.     if(PlayerInfo[playerid][pAdmin] < 5)
  3644.     {
  3645.         error(playerid);
  3646.         return 1;
  3647.     }
  3648.  
  3649.     if(sscanf(params, "u", iPlayer))
  3650.     {
  3651.         Usage(playerid, "/boost [PlayerID/PartOfName]");
  3652.         return 1;
  3653.     }
  3654.    
  3655.     if(iPlayer == INVALID_PLAYER_ID)
  3656.     {
  3657.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  3658.         return 1;
  3659.     }
  3660.    
  3661.     iVehicle = GetPlayerVehicleID(iPlayer);
  3662.    
  3663.     if(!iVehicle)
  3664.     {
  3665.         SendClientMessage(playerid, COLOR_RED, "This player isn't in a vehicle.");
  3666.         return 1;
  3667.     }
  3668.        
  3669.     if(GetPVarInt(iPlayer, "Racing"))
  3670.     {
  3671.         SendClientMessage(playerid, COLOR_RED, "You are not allowed to boost someone who is racing.");
  3672.         return 1;
  3673.     }
  3674.    
  3675.     GetVehicleVelocity(iVehicle, fVel[0], fVel[1], fVel[2]);
  3676.     SetVehicleVelocity(iVehicle, fVel[0] * 4.0, fVel[1] * 4.0, fVel[2] * 4.0);
  3677.    
  3678.     format(szString, sizeof(szString), "You boosted %s.", PlayerInfo[iPlayer][pName]);
  3679.     SendClientMessage(playerid, COLOR_GRAD1, szString);
  3680.    
  3681.     return 1;
  3682. }
  3683.  
  3684. CMD:boom(playerid, params[])
  3685. {
  3686.     if(PlayerInfo[playerid][pAdmin] < 5)
  3687.     {
  3688.         error(playerid);
  3689.         return 1;
  3690.     }
  3691.  
  3692.     new
  3693.             iPlayer,
  3694.     Float:  fPos[3],
  3695.             szString[34];
  3696.  
  3697.     if(sscanf(params, "u", iPlayer))
  3698.     {
  3699.         Usage(playerid, "/boom(/nuke) [PlayerID/PartOfName]");
  3700.         return 1;
  3701.     }
  3702.    
  3703.     if(iPlayer == INVALID_PLAYER_ID)
  3704.     {
  3705.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  3706.         return 1;
  3707.     }
  3708.    
  3709.     if(!strcmp("Fred_Johnson", PlayerInfo[iPlayer][pName2]) || !strcmp("Lenny_Carlson", PlayerInfo[iPlayer][pName2]))
  3710.     {
  3711.         SendClientMessage(playerid, COLOR_RED, "Don't even try...");
  3712.         GetPlayerPos(playerid, fPos[0], fPos[1], fPos[2]);
  3713.         CreateExplosion(fPos[0], fPos[1], fPos[2], 0, 50);
  3714.        
  3715.         format(szString, sizeof(szString), "%s tried to blow you up.", PlayerInfo[playerid][pName]);
  3716.         SendClientMessage(iPlayer, COLOR_GREY, szString);
  3717.        
  3718.         SetPlayerArmour(playerid, 0);
  3719.         SetPlayerHealth(playerid, 0);
  3720.        
  3721.         return 1;
  3722.     }
  3723.     GetPlayerPos(iPlayer, fPos[0], fPos[1], fPos[2]);
  3724.     SendClientMessage(playerid, COLOR_RED, "Boom");
  3725.    
  3726.     CreateExplosion(fPos[0], fPos[1], fPos[2], 3, 50);
  3727.    
  3728.     return 1;
  3729. }
  3730.  
  3731. CMD:911call(playerid, params[])
  3732. {
  3733.     new
  3734.         szLocation[120],
  3735.         szSituation[128];
  3736.        
  3737.     if(pMuted[playerid])
  3738.     {
  3739.         SendClientMessage(playerid, COLOR_LIGHTRED, "You are muted!");
  3740.         return 1;
  3741.     }
  3742.    
  3743.     if(sscanf(params, "p<#>s[121]s[120]", szSituation, szLocation))
  3744.     {
  3745.         Usage(playerid, "/911call [Situation]#[Location]");
  3746.         return 1;
  3747.     }
  3748.    
  3749.     format(szLocation, sizeof(szLocation), "Location: %s", szLocation);
  3750.     format(szSituation, sizeof(szSituation), "Situation: %s", szSituation);
  3751.    
  3752.     SendClientMessageToAll(COLOR_DBLUE, "|_______________911 Call_______________|");
  3753.     SendClientMessageToAll(COLOR_DBLUE, szSituation);
  3754.     SendClientMessageToAll(COLOR_DBLUE, szLocation);
  3755.    
  3756.     format(szSituation, sizeof(szSituation), "Last 911 call was made by %s.", PlayerInfo[playerid][pName]);
  3757.     SendAdminMessage(szSituation);
  3758.    
  3759.     return 1;
  3760. }
  3761.  
  3762. CMD:despawn(playerid, params[])
  3763. {
  3764.     new
  3765.         iPlayer,
  3766.         szString[7];
  3767.  
  3768.     if(PlayerInfo[playerid][pAdmin] < 2)
  3769.     {
  3770.         error(playerid);
  3771.         return 1;
  3772.     }
  3773.    
  3774.     format(szString, sizeof(szString), "U(%d)", playerid);
  3775.    
  3776.     if(sscanf(params, szString, iPlayer))
  3777.     {
  3778.         Usage(playerid, "/despawn [PlayerID/PartOfName]");
  3779.         return 1;
  3780.     }
  3781.  
  3782.     if(iPlayer == INVALID_PLAYER_ID)
  3783.     {
  3784.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  3785.         return 1;
  3786.     }
  3787.    
  3788.     if(!IsPlayerInAnyVehicle(iPlayer))
  3789.     {
  3790.         SendClientMessage(playerid, COLOR_GREY, "This player isn't in any vehicle.");
  3791.         return 1;
  3792.     }
  3793.    
  3794.     SetTimerEx("VehicleDeath", 0, 0, "d", GetPlayerVehicleID(iPlayer));
  3795.    
  3796.     SendClientMessage(playerid, COLOR_GREEN, "Vehicle despawned.");
  3797.    
  3798.     return 1;
  3799. }
  3800.  
  3801. CMD:despawncar(playerid, params[])
  3802. {
  3803.     new
  3804.         iVehicleID;
  3805.  
  3806.     if(PlayerInfo[playerid][pAdmin] < 2)
  3807.     {
  3808.         error(playerid);
  3809.         return 1;
  3810.     }
  3811.    
  3812.     if(sscanf(params, "i", iVehicleID))
  3813.     {
  3814.         Usage(playerid, "/despawncar [VehicleID]");
  3815.         return 1;
  3816.     }
  3817.    
  3818.     if(iVehicleID < 0 || iVehicleID > MAX_VEHICLES)
  3819.     {
  3820.         SendClientMessage(playerid, COLOR_GREY, "Invalid vehicle ID.");
  3821.         return 1;
  3822.     }
  3823.    
  3824.     SetTimerEx("VehicleDeath", 1, 0, "d", iVehicleID);
  3825.    
  3826.     SendClientMessage(playerid, COLOR_GREEN, "Vehicle despawned.");
  3827.    
  3828.     return 1;
  3829. }
  3830.  
  3831. CMD:despawnall(playerid, params[])
  3832. {
  3833.     new
  3834.         szString[56];
  3835.  
  3836.     if(PlayerInfo[playerid][pAdmin] < 3)
  3837.     {
  3838.         error(playerid);
  3839.         return 1;
  3840.     }
  3841.        
  3842.     for(new i; i < MAX_VEHICLES; i++)
  3843.     {
  3844.         if(!VehicleInfo[i][vStatic])
  3845.         {
  3846.             SetTimerEx("VehicleDeath", 0, 0, "d", i);
  3847.         }
  3848.        
  3849.     }
  3850.    
  3851.     format(szString, sizeof(szString), "[DESPAWNALL] %s despawned all cars.", PlayerInfo[playerid][pName]);
  3852.     SendClientMessageToAll(COLOR_LIGHTBLUE ,szString);
  3853.    
  3854.     return 1;
  3855. }
  3856.  
  3857. CMD:createrace(playerid, params[])
  3858. {
  3859.     if(PlayerInfo[playerid][pAdmin] < 5)
  3860.     {
  3861.         error(playerid);
  3862.         return 1;
  3863.     }
  3864.    
  3865.     return LR_CMD_ADDRACE(playerid, params);
  3866. }
  3867.  
  3868. CMD:addcheckpoint(playerid, params[])
  3869. {
  3870.     if(PlayerInfo[playerid][pAdmin] < 5)
  3871.     {
  3872.         error(playerid);
  3873.         return 1;
  3874.     }
  3875.    
  3876.     return LR_CMD_ADDCHECKPOINT(playerid, params);
  3877. }
  3878.  
  3879. CMD:ac(playerid, params[])
  3880. {
  3881.     return cmd_addcheckpoint(playerid, params);
  3882. }
  3883.  
  3884. CMD:loadrace(playerid, params[])
  3885. {
  3886.     #if defined RACE_DEV
  3887.         SendClientMessage(playerid, COLOR_RED, "Races are currently disabled for development purposes, please try again later.");
  3888.         return 1;
  3889.     #else
  3890.    
  3891.     if(PlayerInfo[playerid][pAdmin] < 1)
  3892.     {
  3893.         error(playerid);
  3894.         return 1;
  3895.     }
  3896.    
  3897.     return LR_CMD_LOADRACEFORALL(playerid);
  3898.     #endif
  3899. }
  3900.  
  3901. CMD:race(playerid, params[])
  3902. {
  3903.     #if defined RACE_DEV
  3904.         SendClientMessage(playerid, COLOR_RED, "Races are currently disabled for development purposes, please try again later.");
  3905.         return 1;
  3906.     #else
  3907.     return LR_CMD_LOADRACEFORPLAYER(playerid);
  3908.     #endif
  3909. }
  3910.  
  3911. CMD:join(playerid, params[])
  3912. {
  3913.     return LR_CMD_JOINRACE(playerid);
  3914. }
  3915.  
  3916. CMD:leave(playerid, params[])
  3917. {
  3918.     return LR_CMD_LEAVERACE(playerid);
  3919. }
  3920.  
  3921. CMD:ready(playerid, params[])
  3922. {
  3923.     return LR_CMD_READY(playerid);
  3924. }
  3925.  
  3926. CMD:readyall(playerid, params[])
  3927. {
  3928.     if(PlayerInfo[playerid][pAdmin] < 2)
  3929.     {
  3930.         error(playerid);
  3931.         return 1;
  3932.     }
  3933.    
  3934.     return LR_CMD_READYALL();
  3935. }
  3936.  
  3937. CMD:racecars(playerid, params[])
  3938. {
  3939.     return LR_CMD_RACECARS(playerid);
  3940. }
  3941.  
  3942. CMD:car(playerid, params[])
  3943. {
  3944.     if(GetPlayerInterior(playerid)!=0)
  3945.     {
  3946.         SendClientMessage(playerid, COLOR_GREY, "You can't spawn cars inside an interior.");
  3947.         return 1;
  3948.     }
  3949.    
  3950.     if(IsPlayerInAnyVehicle(playerid))
  3951.     {
  3952.         SendClientMessage(playerid, COLOR_GREY, "Step out of your current vehicle first.");
  3953.         return 1;
  3954.     }
  3955.    
  3956.     new
  3957.         szVehicle[20],
  3958.         szString[58];
  3959.        
  3960.     sscanf(params, "S(normal)[20]", szVehicle);
  3961.  
  3962.     for(new i; i < strlen(szVehicle); i++)
  3963.     {
  3964.         szVehicle[i] = tolower(szVehicle[i]);
  3965.     }
  3966.    
  3967.     format(szString, sizeof(szString), "cars/%s.txt", szVehicle);
  3968.    
  3969.     if(!fexist(szString))
  3970.     {
  3971.         SendClientMessage(playerid, COLOR_GREY, "Unavailable type of car.");
  3972.         return 1;
  3973.     }
  3974.        
  3975.     if(PlayerInfo[playerid][pAdmin] < dini_Int(szString, "admin") && dini_Int(szString, "admin") > 0)
  3976.     {
  3977.         error(playerid);
  3978.         return 1;
  3979.     }
  3980.    
  3981.     for(new i; i < MAX_VEHICLES; i++)
  3982.     {
  3983.         if(VehicleInfo[i][vOwned] == true && VehicleInfo[i][vSpawner] == playerid)
  3984.         {
  3985.             SetTimerEx("VehicleDeath", 0, 0, "d", i);
  3986.         }
  3987.     }
  3988.    
  3989.     new
  3990.         iColor[2];
  3991.    
  3992.     if(dini_Isset(szString,"color1"))
  3993.         iColor[0] = dini_Int(szString,"color1");
  3994.     else
  3995.         iColor[0] = random(252);
  3996.        
  3997.     if(dini_Isset(szString,"color2"))
  3998.         iColor[1] = dini_Int(szString,"color2");
  3999.     else
  4000.         iColor[1] = random(252);
  4001.        
  4002.     new
  4003.         Float:  fPos[4];
  4004.    
  4005.     GetPlayerPos(playerid, fPos[0], fPos[1], fPos[2]);
  4006.     GetPlayerFacingAngle(playerid, fPos[3]);
  4007.    
  4008.     new
  4009.         iVehicle = CreateVehicle(dini_Int(szString,"id"), fPos[0], fPos[1], fPos[2], fPos[3], iColor[0], iColor[1], -1);
  4010.    
  4011.     new
  4012.         Name[2][MAX_PLAYER_NAME];
  4013.     sscanf(PlayerInfo[playerid][pName], "s[" #MAX_PLAYER_NAME "]s[" #MAX_PLAYER_NAME "]", Name[0], Name[1]);
  4014.     SetVehicleNumberPlate(iVehicle, Name[1]);
  4015.    
  4016.     SetVehicleToRespawn(iVehicle);
  4017.     SetVehicleVirtualWorld(iVehicle, GetPlayerVirtualWorld(playerid));
  4018.     PutPlayerInVehicle(playerid, iVehicle, 0);
  4019.    
  4020.     PlayerInfo[playerid][pCarID] = iVehicle;
  4021.     VehicleInfo[PlayerInfo[playerid][pCarID]][vOwned] = true;
  4022.     VehicleInfo[PlayerInfo[playerid][pCarID]][vSpawner] = playerid;
  4023.    
  4024.     format(szString, sizeof(szString),"(( %s just used the /car command ))",PlayerInfo[playerid][pName]);
  4025.     ProxDetector(50.0, playerid, szString, COLOR_ME, COLOR_ME, COLOR_ME, COLOR_ME, COLOR_ME);
  4026.    
  4027.     return 1;
  4028. }
  4029.  
  4030. CMD:cars(playerid, params[])
  4031. {
  4032.     new
  4033.         cmd[256],
  4034.         string[256],
  4035.         f;
  4036.        
  4037.     if(fexist("cars.txt"))
  4038.     {
  4039.         new File:hFile=fopen("cars.txt",io_read);
  4040.         new largestring[1024];
  4041.         while(fread(hFile, string))
  4042.         {
  4043.             f = 1;
  4044.             cmd=dini_PRIVATE_ExtractKey(string);
  4045.             format(largestring, 1024, "%s\n%s - %s", largestring, cmd,dini_Get("cars.txt", cmd));
  4046.         }
  4047.         ShowPlayerDialog(playerid, DIALOG_CARS, DIALOG_STYLE_LIST, "Cars list", largestring, "Spawn", "Quit");
  4048.         fclose(hFile);
  4049.     }
  4050.     if(!f)
  4051.         return SendClientMessage(playerid,COLOR_GREY,"There aren't any cars yet.");
  4052.     return 1;
  4053. }
  4054.  
  4055. CMD:v(playerid, params[])
  4056. {
  4057.     if(PlayerInfo[playerid][pAdmin] < 3)
  4058.     {
  4059.         error(playerid);
  4060.         return 1;
  4061.     }
  4062.    
  4063.     new
  4064.             iCarID,
  4065.             iColor[2],
  4066.             szCarModel[20],
  4067.             iCarModel,
  4068.     Float:  fPos[4];
  4069.  
  4070.     if(sscanf(params, "iis[20]", iColor[0], iColor[1], szCarModel))
  4071.     {
  4072.         Usage(playerid, "/v [color1] [color2] [ModelID OR ModelName]");
  4073.         return 1;
  4074.     }
  4075.    
  4076.     GetPlayerPos(playerid, fPos[0], fPos[1], fPos[2]);
  4077.    
  4078.     fPos[0] += 5.0;
  4079.    
  4080.     if(IsNum(szCarModel))
  4081.     {
  4082.         iCarModel = strval(szCarModel);
  4083.     }
  4084.     else
  4085.     {
  4086.         iCarModel = GetVehicleId(szCarModel);
  4087.     }
  4088.    
  4089.     if(!IsValidvehicleModel(iCarModel))
  4090.     {
  4091.         SendClientMessage(playerid, COLOR_GREY, "SERVER: Invalid Vehicle model.");
  4092.         return 1;
  4093.     }
  4094.  
  4095.     GetPlayerFacingAngle(playerid, fPos[3]);
  4096.     iCarID = CreateVehicle(iCarModel, fPos[0], fPos[1], fPos[2], fPos[3], iColor[0], iColor[1], -1);
  4097.    
  4098.     VehicleInfo[iCarID][vOwned] = false;
  4099.     VehicleInfo[iCarID][vSpawner] = playerid;
  4100.    
  4101.     return 1;
  4102. }
  4103.  
  4104. CMD:veh(playerid, params[])
  4105. {
  4106.     return cmd_v(playerid, params);
  4107. }
  4108.  
  4109. CMD:vcar(playerid, params[])
  4110. {
  4111.     if(PlayerInfo[playerid][pAdmin] < 3)
  4112.     {
  4113.         error(playerid);
  4114.         return 1;
  4115.     }
  4116.    
  4117.     new
  4118.             iCarID,
  4119.             iColor[2],
  4120.             szCarModel[20],
  4121.             iCarModel,
  4122.     Float:  fPos[4];
  4123.  
  4124.     if(sscanf(params, "iis[20]", iColor[0], iColor[1], szCarModel))
  4125.     {
  4126.         Usage(playerid, "/v [color1] [color2] [ModelID OR ModelName]");
  4127.         return 1;
  4128.     }
  4129.    
  4130.     GetPlayerPos(playerid, fPos[0], fPos[1], fPos[2]);
  4131.    
  4132.     if(IsNum(szCarModel))
  4133.     {
  4134.         iCarModel = strval(szCarModel);
  4135.     }
  4136.     else
  4137.     {
  4138.         iCarModel = GetVehicleId(szCarModel);
  4139.     }
  4140.    
  4141.     if(!IsValidvehicleModel(iCarModel))
  4142.     {
  4143.         SendClientMessage(playerid, COLOR_GREY, "SERVER: Invalid Vehicle model.");
  4144.         return 1;
  4145.     }
  4146.  
  4147.     GetPlayerFacingAngle(playerid, fPos[3]);
  4148.     iCarID = CreateVehicle(iCarModel, fPos[0], fPos[1], fPos[2], fPos[3], iColor[0], iColor[1], -1);
  4149.    
  4150.     VehicleInfo[iCarID][vOwned] = false;
  4151.     VehicleInfo[iCarID][vSpawner] = playerid;
  4152.    
  4153.     SetVehicleVirtualWorld(iCarID, GetPlayerVirtualWorld(playerid));
  4154.     PutPlayerInVehicle(playerid, iCarID, 0);
  4155.    
  4156.     return 1;
  4157. }
  4158.  
  4159. CMD:createcar(playerid, params[])
  4160. {
  4161.     new
  4162.         szName[20],
  4163.         szModelName[20],
  4164.         iModel,
  4165.         iColor[2],
  4166.         szString[100];
  4167.        
  4168.     if(PlayerInfo[playerid][pAdmin] < 4)
  4169.     {
  4170.         error(playerid);
  4171.         return 1;
  4172.     }
  4173.  
  4174.     if(sscanf(params, "s[20]s[20]I(-1)I(-1)", szName, szModelName, iColor[0], iColor[1]))
  4175.     {
  4176.         Usage(playerid, "/createcar [Name] [ModelName/ModelID] ([Color1] [Color2])");
  4177.         SendClientMessage(playerid, COLOR_GREY, "TIP: Leave color IDs out to make them random");
  4178.         return 1;
  4179.     }
  4180.    
  4181.     for(new i; i < strlen(szName); i++)
  4182.         szName[i] = tolower(szName[i]);
  4183.        
  4184.     format(szString, sizeof(szString), "cars/%s.txt", szName);
  4185.    
  4186.     if(fexist(szString))
  4187.     {
  4188.         SendClientMessage(playerid, COLOR_GREY, "This name is already used.");
  4189.         return 1;
  4190.     }
  4191.        
  4192.     if(IsNum(szModelName))
  4193.         iModel = strval(szModelName);
  4194.     else
  4195.         iModel = GetVehicleId(szModelName);
  4196.        
  4197.     if(iColor[0] < 0 || iColor[1] < 0 || iColor[0] > 253 || iColor[1] > 253)
  4198.         return SendClientMessage(playerid, COLOR_GREY, "You can only pick color IDs between 0 and 252.");
  4199.        
  4200.     dini_Create(szString);
  4201.    
  4202.     format(szModelName, sizeof(szModelName), "%d", iModel);
  4203.    
  4204.     dini_Set(szString, "id", szModelName);
  4205.    
  4206.     if(iColor[0] != -1)
  4207.         dini_IntSet(szString, "color1", iColor[0]);
  4208.        
  4209.     if(iColor[1] != -1)
  4210.         dini_IntSet(szString, "color2", iColor[1]);
  4211.        
  4212.     GetVehicleName(iModel, szModelName, sizeof(szModelName));
  4213.    
  4214.     format(szString, 256, "You have successfully created %s car command. ModelID: %d (%s)", szName, iModel, szModelName);
  4215.     SendClientMessage(playerid, COLOR_GREEN, szString);
  4216.    
  4217.     if(!fexist("cars.txt"))
  4218.         dini_Create("cars.txt");
  4219.        
  4220.     dini_Set("cars.txt", szName, szModelName);
  4221.    
  4222.     return 1;
  4223. }
  4224.  
  4225. CMD:deletecar(playerid, params[])
  4226. {
  4227.     new
  4228.         szCarName[20],
  4229.         szString[66];
  4230.        
  4231.     if(PlayerInfo[playerid][pAdmin] < 4)
  4232.     {
  4233.         error(playerid);
  4234.         return 1;
  4235.     }
  4236.    
  4237.     if(sscanf(params, "s[20]", szCarName))
  4238.     {
  4239.         Usage(playerid, "/deletecar [Carname]");
  4240.         return 1;
  4241.     }
  4242.    
  4243.     for(new i; i < strlen(szCarName); i++)
  4244.         szCarName[i] = tolower(szCarName[i]);
  4245.        
  4246.     format(szString, sizeof(szString), "cars/%s.txt", szCarName);
  4247.    
  4248.     if(!fexist(szString))
  4249.     {
  4250.         SendClientMessage(playerid, COLOR_GREY, "Invalid Name");
  4251.         return 1;
  4252.     }
  4253.        
  4254.     fremove(szString);
  4255.     dini_Unset("cars.txt", szCarName);
  4256.    
  4257.     format(szString, sizeof(szString), "You have successfully deleted %s car command.", szString[4]);
  4258.     SendClientMessage(playerid, COLOR_GREEN, szString);
  4259.    
  4260.     return 1;
  4261. }
  4262.  
  4263. CMD:reloadfactions(playerid, params[])
  4264. {
  4265.     if(PlayerInfo[playerid][pAdmin] < 5)
  4266.     {
  4267.         error(playerid);
  4268.         return 1;
  4269.     }
  4270.    
  4271.     LoadFactions();
  4272.    
  4273.     SendClientMessage(playerid, COLOR_GREEN, "Reloaded factions successfully.");
  4274.    
  4275.     return 1;
  4276. }
  4277.  
  4278. CMD:nametags(playerid, params[])
  4279. {
  4280.     new
  4281.     bool:   iEnable,
  4282.             szString[75];
  4283.        
  4284.     if(PlayerInfo[playerid][pAdmin] < 1)
  4285.     {
  4286.         error(playerid);
  4287.         return 1;
  4288.     }
  4289.    
  4290.     if(sscanf(params, "l", iEnable))
  4291.     {
  4292.         Usage(playerid, "/nametags [0/1]");
  4293.         return 1;
  4294.     }
  4295.    
  4296.     foreach(Player, i)
  4297.     {
  4298.         foreach(Player, j)
  4299.         {
  4300.             ShowPlayerNameTagForPlayer(i, j, iEnable);
  4301.         }
  4302.     }
  4303.    
  4304.     ShowNames = iEnable;
  4305.    
  4306.     if(!iEnable)
  4307.     {
  4308.         format(szString, sizeof(szString), "%s {AA3333}disabled {33CCFF}nametags visibility.", PlayerInfo[playerid][pName]);
  4309.     }
  4310.     else
  4311.     {
  4312.         format(szString, sizeof(szString), "%s {33AA33}enabled {33CCFF}nametags visibility.", PlayerInfo[playerid][pName]);
  4313.     }
  4314.     SendClientMessageToAll(COLOR_DBLUE, szString);
  4315.    
  4316.     return 1;
  4317. }
  4318.  
  4319. CMD:mask(playerid, params[])
  4320. {
  4321.     if(PlayerInfo[playerid][pAdmin] < 1)
  4322.     {
  4323.         error(playerid);
  4324.         return 1;
  4325.     }
  4326.    
  4327.     new
  4328.         iTarget,
  4329.         szVars[7];
  4330.        
  4331.     format(szVars, 7, "U(%d)", playerid);
  4332.    
  4333.     if(sscanf(params, szVars, iTarget))
  4334.     {
  4335.         Usage(playerid, "/mask (PlayerID/PartOfName)");
  4336.         return 1;
  4337.     }
  4338.    
  4339.     if(iTarget == INVALID_PLAYER_ID)
  4340.     {
  4341.         SendClientMessage(playerid, COLOR_GREY, "Invalid PlayerID/PartOfName.");
  4342.         return 1;
  4343.     }
  4344.    
  4345.     new
  4346.         szString[20 + MAX_PLAYER_NAME * 2];
  4347.    
  4348.     if(!GetPVarInt(iTarget, "Mask"))
  4349.     {
  4350.         if(iTarget != playerid)
  4351.         {
  4352.             format(szString, sizeof(szString), "%s gave %s a mask.", PlayerInfo[playerid][pName], PlayerInfo[iTarget][pName]);
  4353.             SendAdminMessage(szString);
  4354.            
  4355.             if(!PlayerInfo[iTarget][pAdmin])
  4356.             {
  4357.                 format(szString, sizeof(szString), "%s gave you a mask.", PlayerInfo[playerid][pName]);
  4358.                 SendClientMessage(iTarget, COLOR_GREEN, szString);
  4359.             }
  4360.         }
  4361.         else
  4362.         {
  4363.             format(szString, sizeof(szString), "%s gave themselves a mask.", PlayerInfo[playerid][pName]);
  4364.             SendAdminMessage(szString);
  4365.         }
  4366.        
  4367.         SetPVarInt(iTarget, "Mask", 1);
  4368.        
  4369.         foreach(Player, i)
  4370.         {
  4371.             ShowPlayerNameTagForPlayer(i, iTarget, 0);
  4372.         }
  4373.     }
  4374.     else
  4375.     {
  4376.         if(iTarget != playerid)
  4377.         {
  4378.             format(szString, sizeof(szString), "%s took %s's mask away.", PlayerInfo[playerid][pName], PlayerInfo[iTarget][pName]);
  4379.             SendAdminMessage(szString);
  4380.            
  4381.             if(!PlayerInfo[iTarget][pAdmin])
  4382.             {
  4383.                 format(szString, sizeof(szString), "%s took your mask away.", PlayerInfo[playerid][pName]);
  4384.                 SendClientMessage(playerid, COLOR_GREEN, szString);
  4385.             }
  4386.         }
  4387.         else
  4388.         {
  4389.             format(szString, sizeof(szString), "%s took their own mask off.", PlayerInfo[playerid][pName]);
  4390.             SendAdminMessage(szString);
  4391.         }
  4392.        
  4393.         DeletePVar(iTarget, "Mask");
  4394.  
  4395.         foreach(Player, i)
  4396.         {
  4397.             ShowPlayerNameTagForPlayer(i, iTarget, 1);
  4398.         }
  4399.     }
  4400.    
  4401.     return 1;
  4402. }
  4403.  
  4404. CMD:loaddm(playerid, params[])
  4405. {
  4406.     if(PlayerInfo[playerid][pAdmin] < 5)
  4407.     {
  4408.         error(playerid);
  4409.         return 1;
  4410.     }
  4411.    
  4412.     SendRconCommand("loadfs lennysDM");
  4413.    
  4414.     return 1;
  4415. }
  4416. //----------------------/unloaddm-----------------------------------------------
  4417. CMD:unloaddm(playerid, params[])
  4418. {
  4419.     if(PlayerInfo[playerid][pAdmin] < 5)
  4420.     {
  4421.         error(playerid);
  4422.         return 1;
  4423.     }
  4424.    
  4425.     SendRconCommand("unloadfs lennysDM");
  4426.    
  4427.     return 1;
  4428. }
  4429.  
  4430.  
  4431. /////////////////////////////////////////////////////////////////////////////////////////////////////////////
  4432. //Author: Marcus
  4433. //Date: 25/05/2011
  4434. //Revision: 1
  4435. //Revised by Lenny @ Revision 2
  4436.  
  4437. CMD:ame(playerid, params[])
  4438. {
  4439.     if(pMuted[playerid])
  4440.     {
  4441.         SendClientMessage(playerid, COLOR_LIGHTRED, "You are muted!");
  4442.         return 1;
  4443.     }
  4444.    
  4445.     new szMessage[128];
  4446.     if(sscanf(params, "s[128]", szMessage))
  4447.     {
  4448.         Usage(playerid, "/ame [Text]");
  4449.         return 1;
  4450.     }
  4451.    
  4452.     SetPlayerChatBubble(playerid, szMessage, COLOR_ME, 15, 5000);
  4453.    
  4454.     format(szMessage, sizeof(szMessage), "< %s %s", PlayerInfo[playerid][pName], szMessage);
  4455.     SendClientMessage(playerid, COLOR_ME, szMessage);
  4456.    
  4457.     return 1;
  4458. }
  4459. /////////////////////////////////////////////////////////////////////////////////////////////////////////////
  4460. //Author: Lenny
  4461. //Date: 26/05/2011
  4462. //Revision: 2
  4463.  
  4464. CMD:bigears(playerid, params[])
  4465. {
  4466.     if(PlayerInfo[playerid][pAdmin] < 4)
  4467.     {
  4468.         error(playerid);
  4469.         return 1;
  4470.     }
  4471.    
  4472.     if(!GetPVarInt(playerid, "Bigears"))
  4473.     {
  4474.         SetPVarInt(playerid, "Bigears", 1);
  4475.         SendClientMessage(playerid, COLOR_GREEN, "You will now hear all proximity chats.");
  4476.     }
  4477.     else
  4478.     {
  4479.         DeletePVar(playerid, "Bigears");
  4480.         SendClientMessage(playerid, COLOR_RED, "You no longer have big ears.");
  4481.     }
  4482.    
  4483.     return 1;
  4484. }
  4485. /////////////////////////////////////////////////////////////////////////////////////////////////////////////
  4486.  
  4487. CMD:togdeath(playerid, params[])
  4488. {  
  4489.     if(!GetPVarInt(playerid, "TogDeath"))
  4490.     {
  4491.         SetPVarInt(playerid, "TogDeath", 1);
  4492.         SendClientMessage(playerid, COLOR_GREEN, "You will now be alerted of any deaths.");
  4493.     }
  4494.     else
  4495.     {
  4496.         DeletePVar(playerid, "TogDeath");
  4497.         SendClientMessage(playerid, COLOR_RED, "You will no longer be alerted of any deaths.");
  4498.     }
  4499.    
  4500.     return 1;
  4501. }
  4502.  
  4503. CMD:lastdeaths(playerid, params[])
  4504. {  
  4505.     new
  4506.         szDialogString[(20 + 16 + MAX_PLAYER_NAME * 2 + 2) * MAX_DEATHLIST_ENTRIES];
  4507.    
  4508.     if(DeathList[0][dlID] == -1)
  4509.     {
  4510.         SendClientMessage(playerid, COLOR_GREY, "The deathlist is empty.");
  4511.         return 1;
  4512.     }
  4513.  
  4514.     if(!strcmp(DeathList[0][dlKiller], "Noone", false, 5))
  4515.         format(szDialogString, sizeof(szDialogString), "{FFFFFF}%s - {AFAFAF}%s", DeathList[0][dlTime], DeathList[0][dlKilled]);
  4516.     else
  4517.         format(szDialogString, sizeof(szDialogString), "{FFFFFF}%s - {AFAFAF}%s by %s", DeathList[0][dlTime], DeathList[0][dlKilled], DeathList[0][dlKiller]);
  4518.    
  4519.     for(new i = 1; i < MAX_DEATHLIST_ENTRIES; i++)
  4520.     {
  4521.         if(DeathList[i][dlID] == -1)
  4522.             break;
  4523.        
  4524.         if(!strcmp(DeathList[i][dlKiller], "Noone", false, 5))
  4525.             format(szDialogString, sizeof(szDialogString), "%s\n{FFFFFF}%s - {AFAFAF}%s", szDialogString, DeathList[i][dlTime], DeathList[i][dlKilled]);
  4526.         else
  4527.             format(szDialogString, sizeof(szDialogString), "%s\n{FFFFFF}%s - {AFAFAF}%s by %s", szDialogString, DeathList[i][dlTime], DeathList[i][dlKilled], DeathList[i][dlKiller]);
  4528.     }
  4529.    
  4530.     ShowPlayerDialog(playerid, DIALOG_DEATHLIST, DIALOG_STYLE_LIST, "Last deaths", szDialogString, "Info", "Cancel");
  4531.     return 1;
  4532. }
  4533.  
  4534. CMD:tazer(playerid, params[])
  4535. {  
  4536.     if(!GetPVarInt(playerid, "Tazer"))
  4537.     {
  4538.         new
  4539.             iWeapon[2];
  4540.            
  4541.         GetPlayerWeaponData(playerid, 2, iWeapon[0], iWeapon[1]);
  4542.        
  4543.         SetPVarInt(playerid, "TazerWeapon", iWeapon[0]);
  4544.         SetPVarInt(playerid, "TazerAmmo", iWeapon[1]);
  4545.         SetPVarInt(playerid, "Tazer", 1);
  4546.        
  4547.         GivePlayerWeapon(playerid, 23, 1000);
  4548.        
  4549.         new
  4550.             szString[MAX_PLAYER_NAME + 28];
  4551.            
  4552.         format(szString, sizeof(szString), "%s unholstered their tazer.", PlayerInfo[playerid][pName]);
  4553.         ProxDetector(30.0, playerid, szString, COLOR_ME, COLOR_ME, COLOR_ME, COLOR_ME, COLOR_ME);
  4554.     }
  4555.     else
  4556.     {
  4557.         new
  4558.             iWeapon;
  4559.        
  4560.         GetPlayerWeaponData(playerid, 2, iWeapon, iWeapon);
  4561.        
  4562.         GivePlayerWeapon(playerid, 23, -iWeapon);
  4563.         GivePlayerWeapon(playerid, GetPVarInt(playerid, "TazerWeapon"), GetPVarInt(playerid, "TazerAmmo"));
  4564.        
  4565.         DeletePVar(playerid, "TazerWeapon");
  4566.         DeletePVar(playerid, "TazerAmmo");
  4567.         DeletePVar(playerid, "Tazer");
  4568.        
  4569.         new
  4570.             szString[MAX_PLAYER_NAME + 26];
  4571.            
  4572.         format(szString, sizeof(szString), "%s holstered their tazer.", PlayerInfo[playerid][pName]);
  4573.         ProxDetector(30.0, playerid, szString, COLOR_ME, COLOR_ME, COLOR_ME, COLOR_ME, COLOR_ME);
  4574.     }
  4575.    
  4576.     return 1;
  4577. }
  4578.  
  4579. CMD:taser(playerid, params[])
  4580. {
  4581.     return cmd_tazer(playerid, params);
  4582. }
  4583.  
  4584. CMD:tazerid(playerid, params[])
  4585. {
  4586.     new
  4587.         iTarget;
  4588.        
  4589.     if(sscanf(params, "u", iTarget))
  4590.     {
  4591.         Usage(playerid, "/tazerid [PlayerID/PartOfName]");
  4592.         return 1;
  4593.     }
  4594.    
  4595.     if(GetPVarInt(playerid, "Frozen") > 0)
  4596.     {
  4597.         SendClientMessage(playerid, COLOR_GREY, "You can't move.");
  4598.         return 1;
  4599.     }
  4600.    
  4601.     if(!GetPVarInt(playerid, "Tazer"))
  4602.     {
  4603.         SendClientMessage(playerid, COLOR_GREY, "You haven't equipped your tazer.");
  4604.         return 1;
  4605.     }
  4606.    
  4607.     if(iTarget == INVALID_PLAYER_ID)
  4608.     {
  4609.         SendClientMessage(playerid, COLOR_GREY, "This player isn't online.");
  4610.         return 1;
  4611.     }
  4612.    
  4613.     if(IsPlayerInAnyVehicle(iTarget))
  4614.     {
  4615.         SendClientMessage(playerid, COLOR_GREY, "This player is inside a vehicle.");
  4616.         return 1;
  4617.     }
  4618.    
  4619.     if(GetPVarInt(iTarget, "Tazed"))
  4620.     {
  4621.         SendClientMessage(playerid, COLOR_GREY, "This player is already tazed.");
  4622.         return 1;
  4623.     }
  4624.    
  4625.     new
  4626.         Float: fPos[3];
  4627.        
  4628.     GetPlayerPos(iTarget, fPos[0], fPos[1], fPos[2]);
  4629.    
  4630.     if(!IsPlayerInRangeOfPoint(playerid, 12.0, fPos[0], fPos[1], fPos[2]))
  4631.     {
  4632.         SendClientMessage(playerid, COLOR_GREY, "This player isn't close enough to be tazed.");
  4633.         return 1;
  4634.     }
  4635.    
  4636.     new
  4637.         szString[18 + MAX_PLAYER_NAME * 2];
  4638.        
  4639.     format(szString, sizeof(szString), "%s was tazered by %s.", PlayerInfo[iTarget][pName], PlayerInfo[playerid][pName]);
  4640.     ProxDetector(30.0, iTarget, szString, COLOR_ME, COLOR_ME, COLOR_ME, COLOR_ME, COLOR_ME);
  4641.  
  4642.     TogglePlayerControllable(iTarget, false);
  4643.     SetPVarInt(playerid, "DrunkTaze", GetPlayerDrunkLevel(iTarget));
  4644.     SetPlayerDrunkLevel(iTarget, GetPlayerDrunkLevel(iTarget) + 5000);
  4645.    
  4646.     SetTimerEx("TazerTimer", 10000, false, "i", iTarget);
  4647.    
  4648.     SetPVarInt(playerid, "Tazed", 1);
  4649.    
  4650.     ApplyAnimation(iTarget, "PED", "FLOOR_hit_f", 4.0, 1, 0, 0, 0, 0);
  4651.    
  4652.     return 1;
  4653. }
  4654.  
  4655. CMD:taserid(playerid, params[])
  4656. {
  4657.     return cmd_tazerid(playerid, params);
  4658. }
  4659.  
  4660. CMD:reloadraces(playerid, params[])
  4661. {
  4662.     if(PlayerInfo[playerid][pAdmin] < 5)
  4663.     {
  4664.         error(playerid);
  4665.         return 1;
  4666.     }
  4667.    
  4668.     new
  4669.         szString[MAX_PLAYER_NAME + 49];
  4670.            
  4671.     format(szString, sizeof(szString), "%s reloaded the races, all active races have been cancelled.", PlayerInfo[playerid][pName]);
  4672.     SendClientMessageToAll(COLOR_GREEN, szString);
  4673.    
  4674.     foreach(Player, i)
  4675.     {
  4676.         DeletePVar(i, "Checkpoint");
  4677.         DeletePVar(i, "Racing");
  4678.         DeletePVar(playerid, "RaceTimer");
  4679.        
  4680.         DisablePlayerRaceCheckpoint(i);
  4681.     }
  4682.    
  4683.     LR_LoadRaces();
  4684.    
  4685.     return 1;
  4686. }
  4687.  
  4688. CMD:siren(playerid, params[])
  4689. {
  4690.     if(GetPlayerVehicleSeat(playerid) != 0)
  4691.     {
  4692.         SendClientMessage(playerid, COLOR_GREY, "You're not driving a vehicle.");
  4693.         return 1;
  4694.     }
  4695.    
  4696.     new
  4697.         iVehicle = GetPlayerVehicleID(playerid);
  4698.        
  4699.     if(VehicleInfo[iVehicle][vSiren] == -1)
  4700.     {
  4701.         switch(GetVehicleModel(iVehicle))
  4702.         {
  4703.             case SIREN_BURRITO: AttachObjectModelToVehicle( CAR_ALARM_OBJECT, iVehicle, 0.35, 1.37, 0.48, 0.0, 0.0, 0.0 );
  4704.             case SIREN_PREMIER: AttachObjectModelToVehicle( CAR_ALARM_OBJECT, iVehicle, 0.35, 0.75, 0.4 , 0.0, 0.0, 0.0 );
  4705.             case SIREN_TAHOMA: AttachObjectModelToVehicle( CAR_ALARM_OBJECT, iVehicle, 0.35, 0.77, 0.43, 0.0,   0.0, 0.0 );
  4706.             case SIREN_HUNTLEY: AttachObjectModelToVehicle( CAR_ALARM_OBJECT, iVehicle, 0.35, 0.52, 0.71, 0.0, 8.0, 70.0 );
  4707.             case SIREN_CHEETAH: AttachObjectModelToVehicle( CAR_ALARM_OBJECT, iVehicle, 0.4, -0.3, 0.67, 0.0, 0.0, 0.0 );
  4708.             case SIREN_BULLET:  AttachObjectModelToVehicle( CAR_ALARM_OBJECT, iVehicle, 0.4, -0.1, 0.69, 0.0, 0.0, 0.0 );
  4709.             case SIREN_BUFFALO: AttachObjectModelToVehicle( CAR_ALARM_OBJECT, iVehicle, 0.48, -0.3, 0.81, 0.0, 0.0, 0.0 );
  4710.             case SIREN_SULTAN: AttachObjectModelToVehicle( CAR_ALARM_OBJECT, iVehicle, 0.35,0.769, 0.455,0.0, 0.0, 0.0 );
  4711.             case SIREN_ELEGANT: AttachObjectModelToVehicle( CAR_ALARM_OBJECT, iVehicle, 0.35,0.759, 0.33, 0.0, 0.0, 0.0 );
  4712.             case SIREN_SENTINEL: AttachObjectModelToVehicle( CAR_ALARM_OBJECT, iVehicle, 0.35,0.58, 0.31, 0.0, 0.0, 0.0 );
  4713.             case SIREN_TOWTRUCK: AttachObjectModelToVehicle( CAR_ALARM_OBJECT, iVehicle, -0.01,-0.5, 1.4, 0.0, 0.0, 0.0 );
  4714.            
  4715.             default:
  4716.             {
  4717.                 SendClientMessage(playerid, COLOR_GREY, "This vehicle isn't supported for the siren.");
  4718.                 return 1;
  4719.             }
  4720.            
  4721.         }
  4722.        
  4723.         SendClientMessage(playerid, COLOR_GREEN, "Added the siren to your vehicle.");
  4724.        
  4725.     }
  4726.    
  4727.     else
  4728.     {
  4729.         DestroyObject(VehicleInfo[iVehicle][vSiren]);
  4730.         SendClientMessage(playerid, COLOR_GREEN, "Removed the siren from your vehicle.");
  4731.         VehicleInfo[iVehicle][vSiren] = -1;
  4732.     }
  4733.    
  4734.     return 1;
  4735. }
  4736.  
  4737. CMD:engine(playerid, params[])
  4738. {
  4739.     if(GetPlayerVehicleSeat(playerid) != 0)
  4740.     {
  4741.         SendClientMessage(playerid, COLOR_GREY, "You're not driving any vehicle.");
  4742.         return 1;
  4743.     }
  4744.    
  4745.     new
  4746.         szString[MAX_PLAYER_NAME + 50],
  4747.         szVehicleName[25];
  4748.    
  4749.     GetVehicleName(GetVehicleModel(GetPlayerVehicleID(playerid)), szVehicleName, 25);
  4750.    
  4751.     if(ToggleVehicleEngine(GetPlayerVehicleID(playerid)) == 1)
  4752.     {
  4753.         format(szString, sizeof(szString), "%s started the engine on their %s.", PlayerInfo[playerid][pName], szVehicleName);
  4754.         ProxDetector(30.0, playerid, szString, COLOR_ME, COLOR_ME, COLOR_ME, COLOR_ME, COLOR_ME);
  4755.     }
  4756.     else
  4757.     {
  4758.         format(szString, sizeof(szString), "%s stopped the engine on their %s.", PlayerInfo[playerid][pName], szVehicleName);
  4759.         ProxDetector(30.0, playerid, szString, COLOR_ME, COLOR_ME, COLOR_ME, COLOR_ME, COLOR_ME);
  4760.     }
  4761.    
  4762.     return 1;
  4763. }
  4764.  
  4765. CMD:despawnmycars(playerid, params[])
  4766. {
  4767.     for(new i; i < MAX_VEHICLES; i++)
  4768.     {
  4769.         if(VehicleInfo[i][vSpawner] == playerid)
  4770.         {
  4771.             SetTimerEx("VehicleDeath", 0, 0, "d", i);
  4772.         }
  4773.     }
  4774.    
  4775.     SendClientMessage(playerid, COLOR_GREEN, "Despawned all your vehicles.");
  4776.    
  4777.     return 1;
  4778. }
  4779.  
  4780. CMD:setvehicleparams(playerid, params[])
  4781. {
  4782.     if(PlayerInfo[playerid][pAdmin] < 5)
  4783.     {
  4784.         error(playerid);
  4785.         return 1;
  4786.     }
  4787.    
  4788.     new
  4789.         iVehicleID,
  4790.         szChoice[10],
  4791.         iToggle,
  4792.         iChoice;
  4793.        
  4794.     if(sscanf(params, "is[10]I(-1)", iVehicleID, szChoice, iToggle))
  4795.     {
  4796.         Usage(playerid, "/setvehicleparams [Vehicle ID] [Parameter] [1/0]");
  4797.         SendClientMessage(playerid, COLOR_GREY, "Parameters: engine, lights, alarm, doors, bonnet, boot, objective");
  4798.         return 1;
  4799.     }
  4800.    
  4801.     if(iVehicleID == INVALID_VEHICLE_ID)
  4802.     {
  4803.         SendClientMessage(playerid, COLOR_GREY, "Invalid vehicle ID.");
  4804.         return 1;
  4805.     }
  4806.    
  4807.     if(!strcmp(szChoice, "engine"))
  4808.         iChoice = 1;
  4809.     else if(!strcmp(szChoice, "lights"))
  4810.         iChoice = 2;
  4811.     else if(!strcmp(szChoice, "alarm"))
  4812.         iChoice = 3;
  4813.     else if(!strcmp(szChoice, "doors"))
  4814.         iChoice = 4;
  4815.     else if(!strcmp(szChoice, "bonnet"))
  4816.         iChoice = 5;
  4817.     else if(!strcmp(szChoice, "boot"))
  4818.         iChoice = 6;
  4819.     else if(!strcmp(szChoice, "objective"))
  4820.         iChoice = 7;
  4821.    
  4822.     if(iChoice == 0)
  4823.     {
  4824.         SendClientMessage(playerid, COLOR_GREY, "Invalid parameter. You can use: {FFFFFF}engine, lights, alarm, doors, bonnet, boot, objective");
  4825.         return 1;
  4826.     }
  4827.    
  4828.     if(iToggle != 0 && iToggle != 1)
  4829.     {
  4830.         new
  4831.             szString[51];
  4832.            
  4833.         format(szString, sizeof(szString), "/setvehicleparams %d %s {FFFFFF}[1/0]", iVehicleID, szChoice);
  4834.         Usage(playerid, szString);
  4835.         return 1;
  4836.     }
  4837.    
  4838.     new
  4839.         engine,
  4840.         lights,
  4841.         alarm,
  4842.         doors,
  4843.         bonnet,
  4844.         boot,
  4845.         objective;
  4846.    
  4847.     GetVehicleParamsEx(iVehicleID, engine, lights, alarm, doors, bonnet, boot, objective);
  4848.    
  4849.     switch(iChoice)
  4850.     {
  4851.         case 1:
  4852.             engine = iToggle;
  4853.         case 2:
  4854.             lights = iToggle;
  4855.         case 3:
  4856.             alarm = iToggle;
  4857.         case 4:
  4858.             doors = iToggle;
  4859.         case 5:
  4860.             bonnet = iToggle;
  4861.         case 6:
  4862.             boot = iToggle;
  4863.         case 7:
  4864.             objective = iToggle;
  4865.     }
  4866.    
  4867.     SetVehicleParamsEx(iVehicleID, engine, lights, alarm, doors, bonnet, boot, objective);
  4868.    
  4869.     new
  4870.         szString[38];
  4871.    
  4872.     format(szString, sizeof(szString), "Set vehicle ID %d's %s to %d.", iVehicleID, szChoice, iToggle);
  4873.     SendClientMessage(playerid, COLOR_GREEN, szString);
  4874.    
  4875.     return 1;
  4876. }
  4877.  
  4878. CMD:addstaticcar(playerid, params[])
  4879. {
  4880.     if(PlayerInfo[playerid][pAdmin] < 4)
  4881.     {
  4882.         error(playerid);
  4883.         return 1;
  4884.     }
  4885.    
  4886.     if(StaticCars[MAX_STATIC_CARS - 1][scModel])
  4887.     {
  4888.         SendClientMessage(playerid, COLOR_GREY, "Maximum amount of static vehicles added. Contact your administrator.");
  4889.         return 1;
  4890.     }
  4891.    
  4892.     if(!IsPlayerInAnyVehicle(playerid))
  4893.     {
  4894.         SendClientMessage(playerid, COLOR_GREY, "You are not inside a vehicle.");
  4895.         return 1;
  4896.     }
  4897.    
  4898.     new
  4899.         iColors[2],
  4900.         szComment[100];
  4901.  
  4902.     if(sscanf(params, "a<i>[2]s[100]", iColors, szComment))
  4903.     {
  4904.         Usage(playerid, "/addstaticcar [Color 1] [Color 2] [Comment]");
  4905.         SendClientMessage(playerid, COLOR_GREY, "TIP: Colors set to -1 will be randomized.");
  4906.         return 1;
  4907.     }
  4908.    
  4909.     if(iColors[0] < -1 || iColors[0] > 126 ||iColors[1] < -1 || iColors[1] > 126)
  4910.     {
  4911.         SendClientMessage(playerid, COLOR_GREY, "Invalid color IDs.");
  4912.         return 1;
  4913.     }
  4914.    
  4915.     new
  4916.             iVehicleID = GetPlayerVehicleID(playerid),
  4917.             iModel = GetVehicleModel(iVehicleID),
  4918.     Float:  fPos[3],
  4919.     Float:  fAngle;
  4920.            
  4921.     GetVehiclePos(iVehicleID, fPos[0], fPos[1], fPos[2]);
  4922.     GetVehicleZAngle(iVehicleID, fAngle);
  4923.    
  4924.     new
  4925.         szString[290];
  4926.    
  4927.     format(szString, sizeof(szString), "INSERT INTO static_vehicles (model,x,y,z,angle,color1,color2,creator,comment) VALUES (%d,%f,%f,%f,%f,%d,%d,'%s','%s')", iModel, fPos[0], fPos[1], fPos[2], fAngle, iColors[0], iColors[1], PlayerInfo[playerid][pName], szComment);
  4928.     mysql_query(szString);
  4929.    
  4930.     format(szString, sizeof(szString), "Added static vehicle DBID %d. Comment: %s", mysql_insert_id(), szComment);
  4931.     SendClientMessage(playerid, COLOR_GREEN, szString);
  4932.    
  4933.     return 1;
  4934. }
  4935.  
  4936. CMD:delstaticcar(playerid, params[])
  4937. {
  4938.     if(PlayerInfo[playerid][pAdmin] < 4)
  4939.     {
  4940.         error(playerid);
  4941.         return 1;
  4942.     }
  4943.    
  4944.     new
  4945.         iVehicleID;
  4946.        
  4947.     if(sscanf(params, "i", iVehicleID))
  4948.     {
  4949.         Usage(playerid, "/delstaticcar [Vehicle ID]");
  4950.         return 1;
  4951.     }
  4952.    
  4953.     if(!VehicleInfo[iVehicleID][vStatic])
  4954.     {
  4955.         SendClientMessage(playerid, COLOR_GREY, "This vehicle isn't static.");
  4956.         return 1;
  4957.     }
  4958.    
  4959.     new
  4960.         i;
  4961.    
  4962.     while(i < MAX_STATIC_CARS)
  4963.     {
  4964.         if(StaticCars[i][scVID] == iVehicleID)
  4965.             break;
  4966.         i++;
  4967.     }
  4968.    
  4969.     if(i == MAX_STATIC_CARS)
  4970.     {
  4971.         SendClientMessage(playerid, COLOR_GREY, "This vehicle isn't a static one.");
  4972.         return 1;
  4973.     }
  4974.    
  4975.     new
  4976.         szQuery[41];
  4977.    
  4978.     format(szQuery, sizeof(szQuery), "DELETE FROM static_vehicles WHERE id=%d", StaticCars[i][scDBID]);
  4979.     mysql_query(szQuery);
  4980.    
  4981.     SetTimerEx("VehicleDeath", 0, 0, "d", StaticCars[i][scVID]);
  4982.    
  4983.     LoadStaticCars();
  4984.    
  4985.     SendClientMessage(playerid, COLOR_GREEN, "Static car successfully deleted.");
  4986.     return 1;
  4987. }
  4988.  
  4989. CMD:staticcars(playerid, params[])
  4990. {
  4991.     if(PlayerInfo[playerid][pAdmin] < 1)
  4992.     {
  4993.         error(playerid);
  4994.         return 1;
  4995.     }
  4996.    
  4997.     new
  4998.         szString[MAX_PLAYER_NAME + 29];
  4999.    
  5000.     if(StaticCarsSpawned == true)
  5001.         format(szString, sizeof(szString), "%s despawned the static cars.", PlayerInfo[playerid][pName]);
  5002.     else
  5003.         format(szString, sizeof(szString), "%s spawned the static cars.", PlayerInfo[playerid][pName]);
  5004.        
  5005.     SendAdminMessage(szString);
  5006.        
  5007.     ToggleStaticCars();
  5008.    
  5009.     return 1;
  5010. }
  5011.  
  5012. CMD:repaintmycar(playerid, params[])
  5013. {
  5014.     new
  5015.         iColors[2];
  5016.        
  5017.     if(sscanf(params, "ii", iColors[0], iColors[1]))
  5018.     {
  5019.         Usage(playerid, "/repaintmycar [Color 1] [Color 2]");
  5020.         return 1;
  5021.     }
  5022.    
  5023.     if(GetPlayerVehicleSeat(playerid) != 0)
  5024.     {
  5025.         SendClientMessage(playerid, COLOR_GREY, "You're not driving a vehicle.");
  5026.         return 1;
  5027.     }
  5028.    
  5029.     if(iColors[0] < 0 || iColors[0] > 126 ||iColors[1] < 0 || iColors[1] > 126)
  5030.     {
  5031.         SendClientMessage(playerid, COLOR_GREY, "Invalid colors.");
  5032.         return 1;
  5033.     }
  5034.    
  5035.     ChangeVehicleColor(GetPlayerVehicleID(playerid), iColors[0], iColors[1]);
  5036.    
  5037.     SendClientMessage(playerid, COLOR_GREEN, "Vehicle colors changed.");
  5038.     return 1;
  5039. }
  5040.  
  5041. CMD:repaintcar(playerid, params[])
  5042. {
  5043.     if(PlayerInfo[playerid][pAdmin] < 3)
  5044.     {
  5045.         error(playerid);
  5046.         return 1;
  5047.     }
  5048.    
  5049.     new
  5050.         iVehicleID,
  5051.         iColors[2];
  5052.        
  5053.     if(sscanf(params, "iii", iVehicleID, iColors[0], iColors[1]))
  5054.     {
  5055.         Usage(playerid, "/repaintcar [Vehicle ID] [Color 1] [Color 2]");
  5056.         return 1;
  5057.     }
  5058.    
  5059.     if(iVehicleID < 0 || iVehicleID > MAX_VEHICLES)
  5060.     {
  5061.         SendClientMessage(playerid, COLOR_GREY, "Invalid vehicle ID.");
  5062.         return 1;
  5063.     }
  5064.    
  5065.     if(iColors[0] < 0 || iColors[0] > 126 ||iColors[1] < 0 || iColors[1] > 126)
  5066.     {
  5067.         SendClientMessage(playerid, COLOR_GREY, "Invalid colors.");
  5068.         return 1;
  5069.     }
  5070.    
  5071.     ChangeVehicleColor(iVehicleID, iColors[0], iColors[1]);
  5072.    
  5073.     SendClientMessage(playerid, COLOR_GREEN, "Vehicle colors changed.");
  5074.     return 1;
  5075. }
  5076.  
  5077. CMD:countdown(playerid, params[])
  5078. {
  5079.     if(CountDown[0])
  5080.     {
  5081.         SendClientMessage(playerid, COLOR_GREY, "Wait until the current countdown finishes before you start a new one.");
  5082.         return 1;
  5083.     }
  5084.  
  5085.     new
  5086.         szString[24+MAX_PLAYER_NAME];
  5087.        
  5088.     format(szString, sizeof(szString), "%s initiated a countdown.", PlayerInfo[playerid][pName]);
  5089.     SendClientMessageToAll(COLOR_GREEN, szString);
  5090.    
  5091.     CountDown[0] = 3;
  5092.     CountDown[1] = SetTimer("Countdown", 1000, true);
  5093.    
  5094.     return 1;
  5095. }
  5096.  
  5097. CMD:events(playerid, params[])
  5098. {
  5099.     if(!ListPlayerEvents(playerid, 0))
  5100.     {
  5101.         SendClientMessage(playerid, COLOR_GREY, "No events have been registered yet.");
  5102.     }
  5103.     return 1;
  5104. }
  5105.  
  5106. CMD:duty(playerid, params[])
  5107. {
  5108.     new
  5109.         szDutyType[20],
  5110.         //szString[35+MAX_PLAYER_NAME+80],
  5111.         szString[256],
  5112.         szWeapons[20];
  5113.        
  5114.     if(sscanf(params, "S(normal)[20]", szDutyType))
  5115.     {
  5116.         Usage(playerid, "/duty (Type)");
  5117.         return 1;
  5118.     }
  5119.    
  5120.     format(szString, sizeof(szString), "duties/%s.txt", szDutyType);
  5121.    
  5122.     if(PlayerInfo[playerid][pAdmin] < dini_Int(szString, "admin") && dini_Int(szString, "admin") > 0)
  5123.         return error(playerid);
  5124.        
  5125.     if(!fexist(szString))
  5126.     {
  5127.         SendClientMessage(playerid, COLOR_GREY, "Invalid type of duty.");
  5128.         return 1;
  5129.     }
  5130.        
  5131.     if(dini_Isset(szString, "health"))
  5132.         SetPlayerHealth(playerid, dini_Float(szString, "health"));
  5133.        
  5134.     if(dini_Isset(szString, "armor"))
  5135.         SetPlayerArmour(playerid, dini_Float(szString, "armor"));
  5136.        
  5137.     if(dini_Isset(szString, "skin"))
  5138.         SetPlayerSkin(playerid, dini_Int(szString, "skin"));
  5139.        
  5140.     if(dini_Isset(szString, "weapons"))
  5141.     {
  5142.         new idx = 0;
  5143.         szString = dini_Get(szString, "weapons");
  5144.        
  5145.         szWeapons = strtok(szString, idx);
  5146.         while(strlen(szWeapons))
  5147.         {
  5148.             GivePlayerWeapon(playerid, strval(szWeapons), strval(strtok(szString, idx)));
  5149.             szWeapons = strtok(szString, idx);
  5150.         }
  5151.     }
  5152.     format(szString, sizeof(szString), "(( %s just used the /duty command ))", PlayerInfo[playerid][pName]);
  5153.     ProxDetector(50.0, playerid, szString, COLOR_ME, COLOR_ME, COLOR_ME, COLOR_ME, COLOR_ME);
  5154.    
  5155.     return 1;
  5156. }
  5157.  
  5158. CMD:hardrestart(playerid, params[])
  5159. {      
  5160.     if(PlayerInfo[playerid][pAdmin] < 5)
  5161.     {
  5162.         error(playerid);
  5163.         return 1;
  5164.     }
  5165.    
  5166.     new
  5167.         szString[50];  
  5168.    
  5169.     format(szString, sizeof(szString), "The server was HARD-restarted by %s.", PlayerInfo[playerid][pName]);
  5170.     InsertEvent(szString);
  5171.     SendClientMessageToAll(COLOR_RED, szString);
  5172.    
  5173.     GameTextForAll("Server hard restart~n~ ~n~Please reconnect", 13000, 3);
  5174.     SendRconCommand("exit");
  5175.    
  5176.     return 1;
  5177. }
  5178.  
  5179. CMD:markmycar(playerid, params[])
  5180. {
  5181.     if(PlayerInfo[playerid][pAdmin] < 1)
  5182.     {
  5183.         error(playerid);
  5184.         return 1;
  5185.     }
  5186.    
  5187.     if(!IsPlayerInAnyVehicle(playerid))
  5188.     {
  5189.         SendClientMessage(playerid, COLOR_GREY, "You're not inside of a vehicle.");
  5190.         return 1;
  5191.     }
  5192.    
  5193.     new
  5194.         iVehicle = GetPlayerVehicleID(playerid),
  5195.         engine,
  5196.         lights,
  5197.         alarm,
  5198.         doors,
  5199.         bonnet,
  5200.         boot,
  5201.         objective;
  5202.        
  5203.     if(PlayerInfo[playerid][pMarkedCar] != INVALID_VEHICLE_ID && iVehicle != PlayerInfo[playerid][pMarkedCar])
  5204.     {
  5205.         GetVehicleParamsEx(PlayerInfo[playerid][pMarkedCar], engine, lights, alarm, doors, bonnet, boot, objective);
  5206.         objective = 0;     
  5207.         SetVehicleParamsEx(PlayerInfo[playerid][pMarkedCar], engine, lights, alarm, doors, bonnet, boot, objective);
  5208.     }
  5209.    
  5210.     GetVehicleParamsEx(iVehicle, engine, lights, alarm, doors, bonnet, boot, objective);
  5211.     printf("engine = %d, lights = %d, alarm = %d, doors = %d, bonnet = %d, boot = %d, objective = %d", engine, lights, alarm, doors, bonnet, boot, objective);
  5212.    
  5213.     if(objective == 1)
  5214.     {
  5215.         objective = 0;
  5216.         PlayerInfo[playerid][pMarkedCar] = INVALID_VEHICLE_ID;
  5217.         SendClientMessage(playerid, COLOR_GREEN, "Removed the marker on your vehicle.");
  5218.     }
  5219.     else
  5220.     {
  5221.         objective = 1;
  5222.         PlayerInfo[playerid][pMarkedCar] = iVehicle;
  5223.         SendClientMessage(playerid, COLOR_GREEN, "Added a marker on your vehicle.");
  5224.     }
  5225.    
  5226.     SetVehicleParamsEx(iVehicle, engine, lights, alarm, doors, bonnet, boot, objective);
  5227.    
  5228.     return 1;
  5229. }
  5230.  
  5231. CMD:stopstream(playerid, params[])
  5232. {
  5233.     #pragma unused params
  5234.    
  5235.     SendClientMessage(playerid, COLOR_GREEN, "Stream stopped.");
  5236.    
  5237.     StopAudioStreamForPlayer(playerid);
  5238.    
  5239.     return 1;
  5240. }
  5241.  
  5242. CMD:randomstream(playerid, params[])
  5243. {
  5244.     #pragma unused params
  5245.    
  5246.     StopAudioStreamForPlayer(playerid);
  5247.    
  5248.     PlayAudioStreamForPlayer(playerid, SillyStreams[random(sizeof(SillyStreams))]);
  5249.    
  5250.     SendClientMessage(playerid, COLOR_GREEN, "Random stream started.");
  5251.    
  5252.     return 1;
  5253. }
Advertisement
Add Comment
Please, Sign In to add comment