Weponz_SAMP

CS:BS by Weponz

Feb 7th, 2018
356
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 107.36 KB | None | 0 0
  1. /*
  2.     Script: Counter-Strike: Battleship
  3.     Started: 7th September 2013
  4.     Structure: pawn, foreach, sscanf2, zcmd, sii
  5.     Lines: 2503
  6.     Build: 2
  7.     Credits: Weponz
  8. */
  9. #include <a_samp> //Credits: SA:MP Team
  10. #undef MAX_PLAYERS
  11. #define MAX_PLAYERS 150
  12. #include <foreach> //Credits: Y_Less
  13. #include <sscanf2> //Credits: Y_Less
  14. #include <zcmd> //Credits: ZeeX
  15. #include <SII> //Credits: [DRuG]Slick
  16.  
  17. #define WHITE 0xFFFFFFAA
  18. #define RED 0xFF0000FF
  19. #define BLUE 0x0000FFFF
  20. #define GREEN 0x33AA33AA
  21. #define YELLOW 0xFFFF00FF
  22. #define PINK 0xFF80C0FF
  23. #define PURPLE 0x800080AA
  24. #define LIGHTBLUE 0x0080C0FF
  25. #define GREY 0xAFAFAFAA
  26. #define ORANGE 0xFF8000FF
  27.  
  28. #define USER_FILE "CS-BS/accounts/%s.ini"
  29.  
  30. #define HOST_NAME "hostname Counter-Strike: Battleship [ENG/RUS]"
  31. #define MODE_NAME "gamemodetext CS/WAR/DOGFIGHT"
  32. #define MAP_NAME "mapname San Fierro Bay"
  33.  
  34. #define TEAM_COUNTER 0
  35. #define TEAM_TERROR 1
  36.  
  37. #define PLAYER_LEVEL 0
  38. #define VIP_LEVEL 1
  39. #define ADMIN_LEVEL 2
  40.  
  41. #define CLASS_SELECTION_X -2476.7156
  42. #define CLASS_SELECTION_Y 1544.5432
  43. #define CLASS_SELECTION_Z 55.4610
  44. #define CLASS_SELECTION_A 87.6057
  45.  
  46. #define ENGLISH 0
  47. #define RUSSIAN 1
  48.  
  49. #define STAN_GUN_PICKUP 355
  50. #define VIP_GUN_PICKUP 356
  51. #define JETPACK_PICKUP 370
  52. #define HEALTH_PICKUP 1240
  53. #define ARMOUR_PICKUP 1242
  54. #define ARROW_PICKUP 1318
  55.  
  56. #define VIP_GUN_ICON 6
  57. #define STAN_GUN_ICON 18
  58. #define SPAWN_ICON 19
  59. #define HEALTH_ICON 21
  60. #define ARMOUR_ICON 30
  61. #define CLUB_ICON 48
  62. #define ELEVATOR_ICON 56
  63. #define JETPACK_ICON 37
  64.  
  65. #define LANGUAGE_DIALOG 0
  66. #define REGISTER_DIALOG 1
  67. #define LOGIN_DIALOG 2
  68. #define RULES_DIALOG 3
  69. #define CMDS_DIALOG 4
  70. #define ACMDS_DIALOG 5
  71. #define HELP_DIALOG 6
  72. #define STATS_DIALOG 7
  73. #define PASS_DIALOG 8
  74. #define ELEVATOR_DIALOG1 9
  75. #define ELEVATOR_DIALOG2 10
  76.  
  77. forward TurnOfAntiSpawnKill(playerid);
  78. forward ScanForHackers();
  79.  
  80. new Text:text_draw[MAX_PLAYERS];
  81.  
  82. new anti_spawn_kill_timer[MAX_PLAYERS];
  83.  
  84. new ct_bridge_elevator1, ct_hanger_elevator1, ct_lowerdeck_elevator1, ct_bridge_elevator2, ct_hanger_elevator2, ct_lowerdeck_elevator2;
  85. new club_entrance, club_roof, club_entrance_exit, club_roof_exit;
  86. new jetpack1, jetpack2, jetpack3, jetpack4, jetpack5;
  87. new terror_zone, counter_zone1, counter_zone2;
  88. new ct_stan_guns1, ct_stan_guns2;
  89. new ct_vip_guns1, ct_vip_guns2;
  90. new t_stan_guns1, t_stan_guns2;
  91. new t_vip_guns1, t_vip_guns2;
  92. new health[16], armour[16];
  93. new t_ship_ladder;
  94.  
  95. new gun_timer;
  96.  
  97. new GetPlayerClass[MAX_PLAYERS];
  98. new GetPlayerLanguage[MAX_PLAYERS];
  99. new GetPlayerPassFails[MAX_PLAYERS];
  100. new GetPlayerWarnCount[MAX_PLAYERS];
  101. new GetAdminTeamSkin[MAX_PLAYERS];
  102. new GetPlayerStreakCount[MAX_PLAYERS];
  103.  
  104. new bool:IsPlayerRegistered[MAX_PLAYERS];
  105. new bool:IsPlayerLoggedIn[MAX_PLAYERS];
  106. new bool:IsAdminSpectating[MAX_PLAYERS];
  107. new bool:IsAdminOnDuty[MAX_PLAYERS];
  108. new bool:IsAntiSpawnKillOn[MAX_PLAYERS];
  109.  
  110. new bool:HasPlayerChangedClass[MAX_PLAYERS];
  111.  
  112. new BannableWeapons[] =
  113. {
  114.     1,//Brass Knuckles
  115.     2,//Golf Club
  116.     3,//Nightstick
  117.     4,//Knife
  118.     5,//Baseball Bat
  119.     6,//Shovel
  120.     7,//Pool Cue
  121.     8,//Katana
  122.     9,//Chainsaw
  123.     10,//Purple Dildo
  124.     11,//Small White Vibrator
  125.     12,//Large White Vibrator
  126.     13,//Silver Vibrator
  127.     14,//Flowers
  128.     15,//Cane
  129.     17,//Tear Gas
  130.     18,//Molotov Cocktail
  131.     23,//Silenced 9mm
  132.     25,//Shotgun
  133.     26,//Sawnoff Shotgun
  134.     27,//Combat Shotgun
  135.     28,//Micro SMG/Uzi
  136.     32,//Tec-9
  137.     37,//Flamethrower
  138.     38,//Minigun
  139.     39,//Satchel Charge
  140.     40,//Detonator
  141.     41,//Spraycan
  142.     42,//Fire Extinguisher
  143.     43,//Camera
  144.     44,//Nightvision Goggles
  145.     45//Thermal Goggles
  146. };
  147.  
  148. new Float:Random_Counter_Spawn[][4] =
  149. {
  150.     {-2303.3806, 1714.7681, 11.1563, 89.8459},
  151.     {-2514.1428, 1780.7693, 11.2063, 359.1247}
  152. };
  153.  
  154. new Float:Random_Terror_Spawn[][4] =
  155. {
  156.     {-2471.7043, 1538.5227, 33.2344, 0.4152},
  157.     {-2366.7686, 1535.8488, 2.1172, 0.4275}
  158. };
  159.  
  160. enum user_account
  161. {
  162.     user_pass,
  163.     user_level,
  164.     user_score,
  165.     user_kills,
  166.     user_deaths,
  167.     user_streaks,
  168.     user_banned
  169. }
  170. new AccountInfo[MAX_PLAYERS][user_account];
  171.  
  172. main()
  173. {
  174.     SendRconCommand(HOST_NAME);
  175.     SendRconCommand(MODE_NAME);
  176.     SendRconCommand(MAP_NAME);
  177. }
  178.  
  179. stock udb_hash(buf[]) //Credits: DracoBlue
  180. {
  181.     new length=strlen(buf);
  182.     new s1 = 1;
  183.     new s2 = 0;
  184.     new n;
  185.     for (n=0; n<length; n++)
  186.     {
  187.         s1 = (s1 + buf[n]) % 65521;
  188.         s2 = (s2 + s1) % 65521;
  189.     }
  190.     return (s2 << 16) + s1;
  191. }
  192.  
  193. stock SetPlayerClass(playerid, classid)
  194. {
  195.     switch(classid)
  196.     {
  197.         case 0:
  198.         {
  199.             GetPlayerClass[playerid] = TEAM_COUNTER;
  200.             GameTextForPlayer(playerid, "~b~Counter Terrorist", 3000, 6);
  201.         }
  202.         case 1:
  203.         {
  204.             GetPlayerClass[playerid] = TEAM_COUNTER;
  205.             GameTextForPlayer(playerid, "~b~Counter Terrorist", 3000, 6);
  206.         }
  207.         case 2:
  208.         {
  209.             GetPlayerClass[playerid] = TEAM_COUNTER;
  210.             GameTextForPlayer(playerid, "~b~Counter Terrorist", 3000, 6);
  211.         }
  212.         case 3:
  213.         {
  214.             GetPlayerClass[playerid] = TEAM_COUNTER;
  215.             GameTextForPlayer(playerid, "~b~Counter Terrorist", 3000, 6);
  216.         }
  217.         case 4:
  218.         {
  219.             GetPlayerClass[playerid] = TEAM_TERROR;
  220.             GameTextForPlayer(playerid, "~r~Terrorist", 3000, 6);
  221.         }
  222.         case 5:
  223.         {
  224.             GetPlayerClass[playerid] = TEAM_TERROR;
  225.             GameTextForPlayer(playerid, "~r~Terrorist", 3000, 6);
  226.         }
  227.         case 6:
  228.         {
  229.             GetPlayerClass[playerid] = TEAM_TERROR;
  230.             GameTextForPlayer(playerid, "~r~Terrorist", 3000, 6);
  231.         }
  232.         case 7:
  233.         {
  234.             GetPlayerClass[playerid] = TEAM_TERROR;
  235.             GameTextForPlayer(playerid, "~r~Terrorist", 3000, 6);
  236.         }
  237.     }
  238.     return 1;
  239. }
  240.  
  241. stock SetPlayerSpawn(playerid)
  242. {
  243.     if(GetPlayerClass[playerid] == TEAM_COUNTER)
  244.     {
  245.         IsAntiSpawnKillOn[playerid] = true;
  246.         ResetPlayerMoney(playerid);
  247.         SetPlayerInterior(playerid, 0);
  248.         SetPlayerHealth(playerid, 9999);
  249.         SetPlayerArmour(playerid, 100);
  250.         SetPlayerWantedLevel(playerid, 0);
  251.         SetPlayerColor(playerid, BLUE);
  252.         SetPlayerTeam(playerid, TEAM_COUNTER);
  253.         new position = random(sizeof(Random_Counter_Spawn));
  254.         SetPlayerPos(playerid, Random_Counter_Spawn[position][0], Random_Counter_Spawn[position][1], Random_Counter_Spawn[position][2]);
  255.         SetPlayerFacingAngle(playerid, Random_Counter_Spawn[position][3]);
  256.         GivePlayerStandardGuns(playerid);
  257.         anti_spawn_kill_timer[playerid] = SetTimerEx("TurnOfAntiSpawnKill", 10000, false, "d", playerid);
  258.         if(GetPlayerLanguage[playerid] == ENGLISH)
  259.         {
  260.             SendClientMessage(playerid, GREEN, "Anti-Spawn Kill: ON [10 secs]");
  261.         }
  262.         else if(GetPlayerLanguage[playerid] == RUSSIAN)
  263.         {
  264.             SendClientMessage(playerid, GREEN, "Анти-икру убийство: на [10 сек]");
  265.         }
  266.         return 1;
  267.     }
  268.     else if(GetPlayerClass[playerid] == TEAM_TERROR)
  269.     {
  270.         IsAntiSpawnKillOn[playerid] = true;
  271.         ResetPlayerMoney(playerid);
  272.         SetPlayerInterior(playerid, 0);
  273.         SetPlayerHealth(playerid, 9999);
  274.         SetPlayerArmour(playerid, 100);
  275.         SetPlayerWantedLevel(playerid, 0);
  276.         SetPlayerColor(playerid, RED);
  277.         SetPlayerTeam(playerid, TEAM_TERROR);
  278.         new position = random(sizeof(Random_Terror_Spawn));
  279.         SetPlayerPos(playerid, Random_Terror_Spawn[position][0], Random_Terror_Spawn[position][1], Random_Terror_Spawn[position][2]);
  280.         SetPlayerFacingAngle(playerid, Random_Terror_Spawn[position][3]);
  281.         GivePlayerStandardGuns(playerid);
  282.         anti_spawn_kill_timer[playerid] = SetTimerEx("TurnOfAntiSpawnKill", 10000, false, "d", playerid);
  283.         if(GetPlayerLanguage[playerid] == ENGLISH)
  284.         {
  285.             SendClientMessage(playerid, GREEN, "Anti-Spawn Kill: ON [10 secs]");
  286.         }
  287.         else if(GetPlayerLanguage[playerid] == RUSSIAN)
  288.         {
  289.             SendClientMessage(playerid, GREEN, "Анти-икру убийство: на [10 сек]");
  290.         }
  291.     }
  292.     return 1;
  293. }
  294.  
  295. stock GivePlayerStandardGuns(playerid)
  296. {
  297.     ResetPlayerWeapons(playerid);
  298.     GivePlayerWeapon(playerid, 16, 10); //Grenades
  299.     GivePlayerWeapon(playerid, 22, 250); //9mm
  300.     GivePlayerWeapon(playerid, 29, 500); //MP5
  301.     GivePlayerWeapon(playerid, 30, 500); //AK47
  302.     GivePlayerWeapon(playerid, 33, 500); //Country Rifle
  303.     GivePlayerWeapon(playerid, 35, 10); //RPG
  304.     return 1;
  305. }
  306.  
  307. stock GivePlayerVIPGuns(playerid)
  308. {
  309.     ResetPlayerWeapons(playerid);
  310.     GivePlayerWeapon(playerid, 16, 30); //Grenades
  311.     GivePlayerWeapon(playerid, 24, 750); //Desert Eagle
  312.     GivePlayerWeapon(playerid, 29, 1500); //MP5
  313.     GivePlayerWeapon(playerid, 31, 1500); //M4
  314.     GivePlayerWeapon(playerid, 34, 1500); //Sniper Rifle
  315.     GivePlayerWeapon(playerid, 36, 30); //Heat Seaking RPG
  316.     return 1;
  317. }
  318.  
  319. stock GetUserName(playerid)
  320. {
  321.     new name[MAX_PLAYER_NAME];
  322.     GetPlayerName(playerid, name, sizeof(name));
  323.     return name;
  324. }
  325.  
  326. stock ShowRegisterDialog(playerid)
  327. {
  328.     if(GetPlayerLanguage[playerid] == ENGLISH)
  329.     {
  330.         ShowPlayerDialog(playerid, REGISTER_DIALOG, DIALOG_STYLE_INPUT, "{FFFFFF}Account Register", "{FFFFFF}Please enter a password below to register an account:", "Register", "Quit");
  331.         return 1;
  332.     }
  333.     else if(GetPlayerLanguage[playerid] == RUSSIAN)
  334.     {
  335.         ShowPlayerDialog(playerid, REGISTER_DIALOG, DIALOG_STYLE_INPUT, "{FFFFFF}счет Зарегистрироваться", "{FFFFFF}Пожалуйста, введите пароль ниже, чтобы зарегистрировать аккаунт:", "реестр", "выход");
  336.     }
  337.     return 1;
  338. }
  339.  
  340. stock ShowLoginDialog(playerid)
  341. {
  342.     if(GetPlayerLanguage[playerid] == ENGLISH)
  343.     {
  344.         ShowPlayerDialog(playerid, LOGIN_DIALOG, DIALOG_STYLE_INPUT, "{FFFFFF}Account Login", "{FFFFFF}Please enter your password below to login to your account:", "Login", "Quit");
  345.         return 1;
  346.     }
  347.     else if(GetPlayerLanguage[playerid] == RUSSIAN)
  348.     {
  349.         ShowPlayerDialog(playerid, LOGIN_DIALOG, DIALOG_STYLE_INPUT, "{FFFFFF}Вход в Аккаунт", "{FFFFFF}Пожалуйста, введите Ваш пароль для входа в Личный Кабинет:", "Войти", "выход");
  350.     }
  351.     return 1;
  352. }
  353.  
  354. stock ShowRulesDialog(playerid)
  355. {
  356.     if(GetPlayerLanguage[playerid] == ENGLISH)
  357.     {
  358.         ShowPlayerDialog(playerid, RULES_DIALOG, DIALOG_STYLE_MSGBOX, "{FFFFFF}Server Rules", "{FFFFFF}Rule #1: DO NOT hack or cheat on this server. You WILL be automatically banned.\nRule #2: DO NOT camp the spawning locations or team kill. You WILL be kicked.\nRule #3: DO NOT flame, troll, or harass anybody. Respect everyone or you WILL be kicked.\nRule #4: DO NOT flood, spam, or advertise on this server. You WILL be kicked/banned.", "Accept", "Decline");
  359.         return 1;
  360.     }
  361.     else if(GetPlayerLanguage[playerid] == RUSSIAN)
  362.     {
  363.         ShowPlayerDialog(playerid, RULES_DIALOG, DIALOG_STYLE_MSGBOX, "{FFFFFF}Правила сервера", "{FFFFFF}Правило #1: не взломать или обмануть на этом сервере. Вы будете автоматически запрещен.\nПравило #2: не лагеря местах нереста или убийств товарищей по команде. Вы будете ногами.\nПравило #3: не пламя, Тролль, или беспокоить никого. Все уважают, или вы будете ногами.\nПравило #4: не флудить, спама, или рекламировать на этом сервере. Вы будете ногами/запрещены.", "принимать", "Отклонить");
  364.     }
  365.     return 1;
  366. }
  367.  
  368. stock GetPlayerFile(playerid)
  369. {
  370.     new file[32];
  371.     format(file, sizeof(file), USER_FILE, GetUserName(playerid));
  372.     return file;
  373. }
  374.  
  375. stock LoadPlayerAccount(playerid)
  376. {
  377.     if(fexist(GetPlayerFile(playerid)))
  378.     {
  379.         if(INI_Open(GetPlayerFile(playerid)))
  380.         {
  381.             AccountInfo[playerid][user_pass] = INI_ReadInt("pass");
  382.             AccountInfo[playerid][user_level] = INI_ReadInt("level");
  383.             AccountInfo[playerid][user_score] = INI_ReadInt("score");
  384.             SetPlayerScore(playerid, AccountInfo[playerid][user_score]);
  385.             AccountInfo[playerid][user_kills] = INI_ReadInt("kills");
  386.             AccountInfo[playerid][user_deaths] = INI_ReadInt("deaths");
  387.             AccountInfo[playerid][user_streaks] = INI_ReadInt("streaks");
  388.             AccountInfo[playerid][user_banned] = INI_ReadInt("banned");
  389.             INI_Close();
  390.         }
  391.     }
  392.     return 1;
  393. }
  394.  
  395. stock SavePlayerAccount(playerid)
  396. {
  397.     if(IsPlayerLoggedIn[playerid] == true)
  398.     {
  399.         if(INI_Open(GetPlayerFile(playerid)))
  400.         {
  401.             new score = GetPlayerScore(playerid);
  402.             INI_WriteInt("pass", AccountInfo[playerid][user_pass]);
  403.             INI_WriteInt("level", AccountInfo[playerid][user_level]);
  404.             INI_WriteInt("score", score);
  405.             INI_WriteInt("kills", AccountInfo[playerid][user_kills]);
  406.             INI_WriteInt("deaths", AccountInfo[playerid][user_deaths]);
  407.             INI_WriteInt("streaks", AccountInfo[playerid][user_streaks]);
  408.             INI_WriteInt("banned", AccountInfo[playerid][user_banned]);
  409.             INI_Save();
  410.             INI_Close();
  411.         }
  412.     }
  413.     return 1;
  414. }
  415.  
  416. stock RegisterPlayer(playerid, password[])
  417. {
  418.     IsPlayerRegistered[playerid] = true;
  419.     IsPlayerLoggedIn[playerid] = true;
  420.  
  421.     AccountInfo[playerid][user_pass] = udb_hash(password);
  422.     AccountInfo[playerid][user_level] = PLAYER_LEVEL;
  423.     AccountInfo[playerid][user_score] = 0;
  424.     AccountInfo[playerid][user_kills] = 0;
  425.     AccountInfo[playerid][user_deaths] = 0;
  426.     AccountInfo[playerid][user_streaks] = 0;
  427.     AccountInfo[playerid][user_banned] = 0;
  428.     SavePlayerAccount(playerid);
  429.     if(GetPlayerLanguage[playerid] == ENGLISH)
  430.     {
  431.         SendClientMessage(playerid, YELLOW, "Server: You have successfully registered an account.");
  432.         SendClientMessage(playerid, WHITE, "Tip: Use /commands for the list of commands or /help for more details.");
  433.     }
  434.     else if(GetPlayerLanguage[playerid] == RUSSIAN)
  435.     {
  436.         SendClientMessage(playerid, RED, "Сервер: Вы успешно зарегистрировали аккаунт.");
  437.         SendClientMessage(playerid, WHITE, "Совет: Используйте /команды для списка команд или /помощь для более подробной информации.");
  438.     }
  439.     ShowRulesDialog(playerid);
  440.     return 1;
  441. }
  442.  
  443. stock LoginPlayer(playerid)
  444. {
  445.     IsPlayerRegistered[playerid] = true;
  446.     IsPlayerLoggedIn[playerid] = true;
  447.     LoadPlayerAccount(playerid);
  448.     if(GetPlayerLanguage[playerid] == ENGLISH)
  449.     {
  450.         SendClientMessage(playerid, YELLOW, "Server: You have successfully logged into your account.");
  451.         SendClientMessage(playerid, WHITE, "Tip: Use /cmds for the list of commands or /help for more details.");
  452.     }
  453.     else if(GetPlayerLanguage[playerid] == RUSSIAN)
  454.     {
  455.         SendClientMessage(playerid, RED, "Сервер: Вы успешно вошли в свой аккаунт.");
  456.         SendClientMessage(playerid, WHITE, "Совет: Используйте /cmds для списка команд или /help для более подробной информации.");
  457.     }
  458.     ShowRulesDialog(playerid);
  459.     return 1;
  460. }
  461.  
  462. stock CounterRadio(const string[])
  463. {
  464.     foreach(new id : Player)
  465.     {
  466.         if(GetPlayerState(id) != PLAYER_STATE_NONE)
  467.         {
  468.             if(GetPlayerClass[id] == TEAM_COUNTER)
  469.             {
  470.                 SendClientMessage(id, BLUE, string);
  471.             }
  472.         }
  473.     }
  474.     return 1;
  475. }
  476.  
  477. stock TerrorRadio(const string[])
  478. {
  479.     foreach(new id : Player)
  480.     {
  481.         if(GetPlayerState(id) != PLAYER_STATE_NONE)
  482.         {
  483.             if(GetPlayerClass[id] == TEAM_TERROR)
  484.             {
  485.                 SendClientMessage(id, RED, string);
  486.             }
  487.         }
  488.     }
  489.     return 1;
  490. }
  491.  
  492. stock AdminRadio(const string[])
  493. {
  494.     foreach(new id : Player)
  495.     {
  496.         if(GetPlayerState(id) != PLAYER_STATE_NONE)
  497.         {
  498.             if(AccountInfo[id][user_level] == ADMIN_LEVEL)
  499.             {
  500.                 SendClientMessage(id, LIGHTBLUE, string);
  501.             }
  502.         }
  503.     }
  504.     return 1;
  505. }
  506.  
  507. stock KickPlayer(playerid, const reason[])
  508. {
  509.     foreach(new id : Player)
  510.     {
  511.         if(GetPlayerLanguage[id] == ENGLISH)
  512.         {
  513.             new string[128];
  514.             GameTextForPlayer(playerid, "~r~Kicked!", 3000, 6);
  515.             format(string, sizeof(string), "Admin: %s (%d) has been kicked from the server. Reason: %s", GetUserName(playerid), playerid, reason);
  516.             SendClientMessage(id, RED, string);
  517.         }
  518.         else if(GetPlayerLanguage[id] == RUSSIAN)
  519.         {
  520.             new string[128];
  521.             GameTextForPlayer(playerid, "~r~Kicked!", 3000, 6);
  522.             format(string, sizeof(string), "Админ: %s (%d) нанесен удар с сервера. Причина: %s", GetUserName(playerid), playerid, reason);
  523.             SendClientMessage(id, RED, string);
  524.         }
  525.     }
  526.     Kick(playerid);
  527.     return 1;
  528. }
  529.  
  530. stock ResetPlayerVariables(playerid)
  531. {
  532.     ResetPlayerMoney(playerid);
  533.    
  534.     GetPlayerPassFails[playerid] = 0;
  535.     GetPlayerWarnCount[playerid] = 0;
  536.     GetPlayerStreakCount[playerid] = 0;
  537.  
  538.     IsPlayerRegistered[playerid] = false;
  539.     IsPlayerLoggedIn[playerid] = false;
  540.     IsAdminSpectating[playerid] = false;
  541.     IsAdminOnDuty[playerid] = false;
  542.     IsAntiSpawnKillOn[playerid] = false;
  543.     HasPlayerChangedClass[playerid] = false;
  544.  
  545.     GetPlayerLanguage[playerid] = ENGLISH;
  546.  
  547.     AccountInfo[playerid][user_level] = PLAYER_LEVEL;
  548.     AccountInfo[playerid][user_score] = 0;
  549.     AccountInfo[playerid][user_kills] = 0;
  550.     AccountInfo[playerid][user_deaths] = 0;
  551.     AccountInfo[playerid][user_streaks] = 0;
  552.     AccountInfo[playerid][user_banned] = 0;
  553.     return 1;
  554. }
  555.  
  556. stock ConnectPlayer(playerid)
  557. {
  558.     new string[128];
  559.     format(string, sizeof(string), "Join/вступать: %s (%d)", GetUserName(playerid), playerid);
  560.     SendClientMessageToAll(GREY, string);
  561.     return 1;
  562. }
  563.  
  564. stock DisconnectPlayer(playerid)
  565. {
  566.     for(new loop; loop < 52; loop++)
  567.     {
  568.         RemovePlayerMapIcon(playerid, loop);
  569.     }
  570.     new string[128];
  571.     format(string, sizeof(string), "Disconnect/выключать: %s (%d)", GetUserName(playerid), playerid);
  572.     SendClientMessageToAll(GREY, string);
  573.     return 1;
  574. }
  575.  
  576. stock GetTeamCount(teamid)
  577. {
  578.      new player_count = 0;
  579.      foreach(new id : Player)
  580.      {
  581.            if(GetPlayerState(id) == PLAYER_STATE_NONE) continue;
  582.            if(GetPlayerClass[id] != teamid) continue;
  583.            player_count++;
  584.      }
  585.      return player_count;
  586. }
  587.  
  588. stock AutoBanPlayer(playerid, reason[])
  589. {
  590.     new string[128], string2[128];
  591.     foreach(new id : Player)
  592.     {
  593.         if(GetPlayerLanguage[id] == ENGLISH)
  594.         {
  595.             format(string2, sizeof(string2), "Server: %s (%d) has been auto banned from the server. Reason: %s", GetUserName(playerid), playerid, reason);
  596.             SendClientMessage(id, RED, string2);
  597.         }
  598.         else if(GetPlayerLanguage[id] == RUSSIAN)
  599.         {
  600.             format(string2, sizeof(string2), "Сервер: %s (%d) была запрещена авто с сервера. Причина: %s", GetUserName(playerid), playerid, reason);
  601.             SendClientMessage(id, RED, string2);
  602.         }
  603.     }
  604.     if(GetPlayerLanguage[playerid] == ENGLISH)
  605.     {
  606.         GameTextForPlayer(playerid, "~r~Banned!", 3000, 6);
  607.         format(string, sizeof(string), "Server: You have been banned by the server anti-cheat for: %s", reason);
  608.         SendClientMessage(playerid, RED, string);
  609.         SendClientMessage(playerid, RED, "Server: Although it is unlikely you will be unbanned, you may appeal at: csbs-samp.com");
  610.     }
  611.     else if(GetPlayerLanguage[playerid] == RUSSIAN)
  612.     {
  613.         GameTextForPlayer(playerid, "~r~Banned!", 3000, 6);
  614.         format(string, sizeof(string), "Сервер: Вы были запрещены на сервере античит для: %s", reason);
  615.         SendClientMessage(playerid, RED, string);
  616.         SendClientMessage(playerid, RED, "Сервер: Хотя вряд ли вы будете Разбанен, вы можете обжаловать в: csbs-samp.com");
  617.     }
  618.     AccountInfo[playerid][user_banned] = 1;
  619.     SavePlayerAccount(playerid);
  620.     BanEx(playerid, reason);
  621.     return 1;
  622. }
  623.  
  624. stock CheckIfPlayerBanned(playerid)
  625. {
  626.     LoadPlayerAccount(playerid);
  627.     if(AccountInfo[playerid][user_banned] == 1) return KickPlayer(playerid, "Ban Evade/запрещение избегать");
  628.     return 1;
  629. }
  630.  
  631. stock CheckIfAccountExists(playerid)
  632. {
  633.     if(!fexist(GetPlayerFile(playerid)))
  634.     {
  635.         ShowRegisterDialog(playerid);
  636.         return 1;
  637.     }
  638.     else
  639.     {
  640.         ShowLoginDialog(playerid);
  641.     }
  642.     return 1;
  643. }
  644.  
  645. stock IsVehicleEmpty(vehicleid)
  646. {
  647.     foreach(new id : Player)
  648.     {
  649.         if(IsPlayerInVehicle(id, vehicleid)) return 0;
  650.     }
  651.     return 1;
  652. }
  653.  
  654. stock SendGlobalMessageToAll(fromid, fromlevel, fromteam, message[])
  655. {
  656.     new string[128];
  657.     if(fromlevel == PLAYER_LEVEL)
  658.     {
  659.         foreach(new id : Player)
  660.         {
  661.             if(GetPlayerLanguage[id] == ENGLISH)
  662.             {
  663.                 if(fromteam == TEAM_COUNTER)
  664.                 {
  665.                     format(string, sizeof(string), "Player %s (%d): {FFFFFF}%s", GetUserName(fromid), fromid, message);
  666.                     SendClientMessage(id, BLUE, string);
  667.                 }
  668.                 else if(fromteam == TEAM_TERROR)
  669.                 {
  670.                     format(string, sizeof(string), "Player %s (%d): {FFFFFF}%s", GetUserName(fromid), fromid, message);
  671.                     SendClientMessage(id, RED, string);
  672.                 }
  673.             }
  674.             else if(GetPlayerLanguage[id] == RUSSIAN)
  675.             {
  676.                 if(fromteam == TEAM_COUNTER)
  677.                 {
  678.                     format(string, sizeof(string), "игрок %s (%d): {FFFFFF}%s", GetUserName(fromid), fromid, message);
  679.                     SendClientMessage(id, BLUE, string);
  680.                 }
  681.                 else if(fromteam == TEAM_TERROR)
  682.                 {
  683.                     format(string, sizeof(string), "игрок %s (%d): {FFFFFF}%s", GetUserName(fromid), fromid, message);
  684.                     SendClientMessage(id, RED, string);
  685.                 }
  686.             }
  687.         }
  688.     }
  689.     else if(fromlevel == VIP_LEVEL)
  690.     {
  691.         foreach(new id : Player)
  692.         {
  693.             if(GetPlayerLanguage[id] == ENGLISH)
  694.             {
  695.                 if(fromteam == TEAM_COUNTER)
  696.                 {
  697.                     format(string, sizeof(string), "V.I.P %s (%d): {FFFFFF}%s", GetUserName(fromid), fromid, message);
  698.                     SendClientMessage(id, BLUE, string);
  699.                 }
  700.                 else if(fromteam == TEAM_TERROR)
  701.                 {
  702.                     format(string, sizeof(string), "V.I.P %s (%d): {FFFFFF}%s", GetUserName(fromid), fromid, message);
  703.                     SendClientMessage(id, RED, string);
  704.                 }
  705.             }
  706.             else if(GetPlayerLanguage[id] == RUSSIAN)
  707.             {
  708.                 if(fromteam == TEAM_COUNTER)
  709.                 {
  710.                     format(string, sizeof(string), "очень важное лицо %s (%d): {FFFFFF}%s", GetUserName(fromid), fromid, message);
  711.                     SendClientMessage(id, BLUE, string);
  712.                 }
  713.                 else if(fromteam == TEAM_TERROR)
  714.                 {
  715.                     format(string, sizeof(string), "очень важное лицо %s (%d): {FFFFFF}%s", GetUserName(fromid), fromid, message);
  716.                     SendClientMessage(id, RED, string);
  717.                 }
  718.             }
  719.         }
  720.     }
  721.     else if(fromlevel == ADMIN_LEVEL)
  722.     {
  723.         foreach(new id : Player)
  724.         {
  725.             if(GetPlayerLanguage[id] == ENGLISH)
  726.             {
  727.                 if(fromteam == TEAM_COUNTER)
  728.                 {
  729.                     format(string, sizeof(string), "Admin %s (%d): {FFFFFF}%s", GetUserName(fromid), fromid, message);
  730.                     SendClientMessage(id, BLUE, string);
  731.                 }
  732.                 else if(fromteam == TEAM_TERROR)
  733.                 {
  734.                     format(string, sizeof(string), "Admin %s (%d): {FFFFFF}%s", GetUserName(fromid), fromid, message);
  735.                     SendClientMessage(id, RED, string);
  736.                 }
  737.             }
  738.             else if(GetPlayerLanguage[id] == RUSSIAN)
  739.             {
  740.                 if(fromteam == TEAM_COUNTER)
  741.                 {
  742.                     format(string, sizeof(string), "Админ %s (%d): {FFFFFF}%s", GetUserName(fromid), fromid, message);
  743.                     SendClientMessage(id, BLUE, string);
  744.                 }
  745.                 else if(fromteam == TEAM_TERROR)
  746.                 {
  747.                     format(string, sizeof(string), "Админ %s (%d): {FFFFFF}%s", GetUserName(fromid), fromid, message);
  748.                     SendClientMessage(id, RED, string);
  749.                 }
  750.             }
  751.         }
  752.     }
  753.     return 1;
  754. }
  755.  
  756. public OnGameModeInit()
  757. {
  758.     //Loading Data
  759.     AllowInteriorWeapons(0);
  760.     EnableStuntBonusForAll(0);
  761.     DisableInteriorEnterExits();
  762.     SetNameTagDrawDistance(40.0);
  763.    
  764.     //Counter Terrorist Class
  765.     AddPlayerClass(287, CLASS_SELECTION_X, CLASS_SELECTION_Y, CLASS_SELECTION_Z, CLASS_SELECTION_A, 0, 0, 0, 0, 0, 0);
  766.     AddPlayerClass(286, CLASS_SELECTION_X, CLASS_SELECTION_Y, CLASS_SELECTION_Z, CLASS_SELECTION_A, 0, 0, 0, 0, 0, 0);
  767.     AddPlayerClass(285, CLASS_SELECTION_X, CLASS_SELECTION_Y, CLASS_SELECTION_Z, CLASS_SELECTION_A, 0, 0, 0, 0, 0, 0);
  768.     AddPlayerClass(179, CLASS_SELECTION_X, CLASS_SELECTION_Y, CLASS_SELECTION_Z, CLASS_SELECTION_A, 0, 0, 0, 0, 0, 0);
  769.    
  770.     //Terrorist Class
  771.     AddPlayerClass(127, CLASS_SELECTION_X, CLASS_SELECTION_Y, CLASS_SELECTION_Z, CLASS_SELECTION_A, 0, 0, 0, 0, 0, 0);
  772.     AddPlayerClass(125, CLASS_SELECTION_X, CLASS_SELECTION_Y, CLASS_SELECTION_Z, CLASS_SELECTION_A, 0, 0, 0, 0, 0, 0);
  773.     AddPlayerClass(124, CLASS_SELECTION_X, CLASS_SELECTION_Y, CLASS_SELECTION_Z, CLASS_SELECTION_A, 0, 0, 0, 0, 0, 0);
  774.     AddPlayerClass(122, CLASS_SELECTION_X, CLASS_SELECTION_Y, CLASS_SELECTION_Z, CLASS_SELECTION_A, 0, 0, 0, 0, 0, 0);
  775.  
  776.     //Objects: 75
  777.     CreateObject(10794,-2411.6999500,1580.3000500,3.5000000,0.0000000,0.0000000,0.0000000); //object(car_ship_04_sfse) (1)
  778.     CreateObject(10795,-2413.9492200,1580.3037100,13.5000000,0.0000000,0.0000000,0.0000000); //object(car_ship_05_sfse) (1)
  779.     CreateObject(5156,-2415.3999000,1580.8000500,12.6000000,0.0000000,0.0000000,0.0000000); //object(dk_cargoshp24d) (1)
  780.     CreateObject(2937,-2437.1999500,1561.6200000,17.0000000,45.0000000,0.0000000,0.0000000); //object(kmb_plank) (1)
  781.     CreateObject(2937,-2438.8994100,1563.2998000,17.4400000,328.9990000,0.0000000,0.0000000); //object(kmb_plank) (2)
  782.     CreateObject(3279,-2511.0000000,1571.5999800,12.8000000,0.0000000,0.0000000,0.0000000); //object(a51_spottower) (1)
  783.     CreateObject(3279,-2392.8999000,1580.3000500,12.8000000,0.0000000,0.0000000,0.0000000); //object(a51_spottower) (2)
  784.     CreateObject(3279,-2365.1001000,1580.3000500,12.8000000,0.0000000,0.0000000,0.0000000); //object(a51_spottower) (3)
  785.     CreateObject(3934,-2333.0449200,1578.5087900,12.5982300,0.0000000,0.0000000,0.0000000); //object(helipad01) (5)
  786.     CreateObject(3934,-2317.6001000,1580.5999800,14.2500000,0.0000000,0.0000000,0.0000000); //object(helipad01) (6)
  787.     CreateObject(3934,-2454.1999500,1552.0999800,28.0000000,0.0000000,0.0000000,0.0000000); //object(helipad01) (7)
  788.     CreateObject(3279,-2455.6999500,1533.5999800,27.9000000,0.0000000,0.0000000,0.0000000); //object(a51_spottower) (4)
  789.     CreateObject(2937,-2417.3000500,1553.0999800,31.0000000,0.0000000,0.0000000,0.0000000); //object(kmb_plank) (3)
  790.     CreateObject(2937,-2417.3000500,1555.4000200,31.0000000,0.0000000,0.0000000,0.0000000); //object(kmb_plank) (4)
  791.     CreateObject(2937,-2417.3000500,1537.6999500,31.0000000,0.0000000,0.0000000,0.0000000); //object(kmb_plank) (5)
  792.     CreateObject(2937,-2417.3000500,1539.9000200,31.0000000,0.0000000,0.0000000,0.0000000); //object(kmb_plank) (6)
  793.     CreateObject(3934,-2391.3999000,1534.5999800,30.9000000,0.0000000,0.0000000,0.0000000); //object(helipad01) (8)
  794.     CreateObject(3279,-2397.1001000,1553.1999500,30.9000000,0.0000000,0.0000000,0.0000000); //object(a51_spottower) (5)
  795.     CreateObject(2937,-2392.5000000,1549.4000200,31.0000000,0.0000000,0.0000000,90.0000000); //object(kmb_plank) (8)
  796.     CreateObject(2937,-2390.1999500,1549.4000200,31.0000000,0.0000000,0.0000000,90.0000000); //object(kmb_plank) (9)
  797.     CreateObject(2937,-2385.8999000,1549.4000200,31.0000000,0.0000000,0.0000000,90.0000000); //object(kmb_plank) (10)
  798.     CreateObject(2937,-2388.1001000,1549.4000200,31.0000000,0.0000000,0.0000000,90.0000000); //object(kmb_plank) (11)
  799.     CreateObject(3279,-2349.0000000,1544.8000500,25.0000000,0.0000000,0.0000000,0.0000000); //object(a51_spottower) (6)
  800.     CreateObject(3934,-2312.6001000,1545.0000000,17.8000000,0.0000000,0.0000000,0.0000000); //object(helipad01) (10)
  801.     CreateObject(2937,-2417.6001000,1530.9000200,31.0000000,0.0000000,0.0000000,0.0000000); //object(kmb_plank) (12)
  802.     CreateObject(2937,-2417.6001000,1533.1999500,31.0000000,0.0000000,0.0000000,0.0000000); //object(kmb_plank) (13)
  803.     CreateObject(10771,-2508.6992200,1816.2998000,4.4000000,0.0000000,0.0000000,270.0000000); //object(carrier_hull_sfse) (1)
  804.     CreateObject(11145,-2508.6933600,1881.0996100,3.4000000,0.0000000,0.0000000,270.0000000); //object(carrier_lowdeck_sfs) (1)
  805.     CreateObject(10771,-2338.5996100,1720.1992200,4.4000000,0.0000000,0.0000000,0.0000000); //object(carrier_hull_sfse) (2)
  806.     CreateObject(10770,-2516.1999500,1813.0999800,37.6000000,0.0000000,0.0000000,270.0000000); //object(carrier_bridge_sfse) (1)
  807.     CreateObject(11146,-2508.1416000,1825.3000500,11.3000000,0.0000000,0.0000000,270.0000000); //object(carrier_hangar_sfs) (1)
  808.     CreateObject(3115,-2508.6992200,1915.5996100,8.8000000,0.0000000,0.0000000,270.0000000); //object(carrier_lift1_sfse) (1)
  809.     CreateObject(3114,-2495.8994100,1873.0000000,8.6000000,0.0000000,0.0000000,270.0000000); //object(carrier_lift2_sfse) (1)
  810.     CreateObject(10772,-2337.1001000,1720.0999800,16.2000000,0.0000000,0.0000000,0.0000000); //object(carrier_lines_sfse) (2)
  811.     CreateObject(10772,-2508.8999000,1814.9000200,16.2000000,0.0000000,0.0000000,269.9950000); //object(carrier_lines_sfse) (3)
  812.     CreateObject(3934,-2486.1999500,1580.0999800,12.7000000,0.0000000,0.0000000,0.0000000); //object(helipad01) (1)
  813.     CreateObject(2944,-2508.6799300,1804.5770300,10.7700000,0.0000000,0.0000000,0.0000000); //object(freight_sfw_door) (1)
  814.     CreateObject(2944,-2510.6499000,1807.1999500,17.7000000,0.0000000,0.0000000,0.0000000); //object(freight_sfw_door) (2)
  815.     CreateObject(2944,-2514.5900900,1847.5300300,2.7300000,0.0000000,0.0000000,90.0000000); //object(freight_sfw_door) (3)
  816.     CreateObject(2944,-2512.5500500,1799.2399900,10.7500000,0.0000000,0.0000000,90.0000000); //object(freight_sfw_door) (4)
  817.     CreateObject(2944,-2520.1001000,1756.3000500,10.7000000,0.0000000,0.0000000,90.0000000); //object(freight_sfw_door) (5)
  818.     CreateObject(3279,-2516.0000000,1843.4000200,19.2000000,0.0000000,0.0000000,0.0000000); //object(a51_spottower) (7)
  819.     CreateObject(3279,-2518.8999000,1901.6999500,16.2000000,0.0000000,0.0000000,0.0000000); //object(a51_spottower) (8)
  820.     CreateObject(3279,-2519.3999000,1773.0000000,16.2000000,0.0000000,0.0000000,0.0000000); //object(a51_spottower) (9)
  821.     CreateObject(3934,-2517.1999500,1890.3000500,16.2000000,0.0000000,0.0000000,90.0000000); //object(helipad01) (2)
  822.     CreateObject(3934,-2517.1999500,1874.0999800,16.2000000,0.0000000,0.0000000,90.0000000); //object(helipad01) (4)
  823.     CreateObject(3934,-2517.1999500,1857.5000000,16.2000000,0.0000000,0.0000000,90.0000000); //object(helipad01) (9)
  824.     CreateObject(3934,-2379.3000500,1553.1999500,30.9000000,0.0000000,0.0000000,225.0000000); //object(helipad01) (13)
  825.     CreateObject(11145,-2402.0996100,1720.1992200,3.3000000,0.0000000,0.0000000,0.0000000); //object(carrier_lowdeck_sfs) (2)
  826.     CreateObject(11146,-2347.5800800,1720.7587900,11.2500000,0.0000000,0.0000000,0.0000000); //object(carrier_hangar_sfs) (2)
  827.     CreateObject(3115,-2437.3000500,1720.3000500,8.9000000,0.0000000,0.0000000,0.0000000); //object(carrier_lift1_sfse) (2)
  828.     CreateObject(3114,-2395.3000500,1734.0999800,8.6000000,0.0000000,0.0000000,0.0000000); //object(carrier_lift2_sfse) (2)
  829.     CreateObject(10770,-2335.3764600,1712.8000500,37.6500000,0.0000000,0.0000000,0.0000000); //object(carrier_bridge_sfse) (2)
  830.     CreateObject(2944,-2368.5000000,1715.7199700,2.6600000,0.0000000,0.0000000,0.0000000); //object(freight_sfw_door) (6)
  831.     CreateObject(2944,-2321.3698700,1717.7799100,10.7000000,0.0000000,0.0000000,0.0000000); //object(freight_sfw_door) (7)
  832.     CreateObject(2944,-2278.6001000,1710.1999500,10.6500000,0.0000000,0.0000000,0.0000000); //object(freight_sfw_door) (8)
  833.     CreateObject(2944,-2326.8501000,1720.2204600,10.7000000,0.0000000,0.0000000,90.0000000); //object(freight_sfw_door) (9)
  834.     CreateObject(2944,-2329.5000000,1718.4499500,17.7000000,0.0000000,0.0000000,90.0000000); //object(freight_sfw_door) (10)
  835.     CreateObject(3279,-2423.8999000,1710.0000000,16.2000000,0.0000000,0.0000000,90.0000000); //object(a51_spottower) (10)
  836.     CreateObject(3279,-2365.5000000,1713.1999500,19.2000000,0.0000000,0.0000000,90.0000000); //object(a51_spottower) (11)
  837.     CreateObject(3279,-2295.3999000,1709.6999500,16.2000000,0.0000000,0.0000000,90.0000000); //object(a51_spottower) (12)
  838.     CreateObject(3934,-2412.3000500,1712.3000500,16.2000000,0.0000000,0.0000000,0.0000000); //object(helipad01) (14)
  839.     CreateObject(3934,-2395.3000500,1712.3000500,16.2000000,0.0000000,0.0000000,0.0000000); //object(helipad01) (15)
  840.     CreateObject(3934,-2379.1999500,1712.3000500,16.2000000,0.0000000,0.0000000,0.0000000); //object(helipad01) (16)
  841.     CreateObject(2934,-2438.1999500,1564.6999500,14.2000000,0.0000000,0.0000000,90.0000000); //object(kmb_container_red) (1)
  842.     CreateObject(3800,-2438.1001000,1569.9000200,12.8000000,0.0000000,0.0000000,0.0000000); //object(acbox4_sfs) (1)
  843.     CreateObject(3800,-2438.1001000,1570.9000200,12.8000000,0.0000000,0.0000000,0.0000000); //object(acbox4_sfs) (2)
  844.     CreateObject(3800,-2439.1999500,1569.9000200,12.8000000,0.0000000,0.0000000,0.0000000); //object(acbox4_sfs) (3)
  845.     CreateObject(3800,-2439.1999500,1570.9000200,12.8000000,0.0000000,0.0000000,0.0000000); //object(acbox4_sfs) (4)
  846.     CreateObject(3800,-2439.1999500,1565.6999500,15.7000000,0.0000000,0.0000000,0.0000000); //object(acbox4_sfs) (5)
  847.     CreateObject(3800,-2438.1999500,1565.6999500,15.7000000,0.0000000,0.0000000,0.0000000); //object(acbox4_sfs) (6)
  848.     CreateObject(3800,-2438.1999500,1564.6999500,15.7000000,0.0000000,0.0000000,0.0000000); //object(acbox4_sfs) (7)
  849.     CreateObject(3800,-2439.1999500,1564.6999500,15.7000000,0.0000000,0.0000000,0.0000000); //object(acbox4_sfs) (8)
  850.     CreateObject(2935,-2438.1999500,1567.8000500,14.2000000,0.0000000,0.0000000,90.0000000); //object(kmb_container_yel) (1)
  851.     CreateObject(3934,-2426.8000500,1570.8000500,12.8000000,0.0000000,0.0000000,0.0000000); //object(helipad01) (3)
  852.    
  853.     //All Tower Health/Armour Pickups: 24
  854.     health[0] = CreatePickup(HEALTH_PICKUP, 1, -2457.6016, 1531.7642, 44.9781, 0);
  855.     armour[0] = CreatePickup(ARMOUR_PICKUP, 1, -2454.2688, 1535.1587, 44.9781, 0);
  856.     health[1] = CreatePickup(HEALTH_PICKUP, 1, -2398.6831, 1551.3640, 47.9781, 0);
  857.     armour[1] = CreatePickup(ARMOUR_PICKUP, 1, -2395.5540, 1554.7454, 47.9781, 0);
  858.     health[2] = CreatePickup(HEALTH_PICKUP, 1, -2350.5535, 1542.9728, 42.0781, 0);
  859.     armour[2] = CreatePickup(ARMOUR_PICKUP, 1, -2347.4370, 1546.3248, 42.0781, 0);
  860.     health[3] = CreatePickup(HEALTH_PICKUP, 1, -2366.7583, 1578.5167, 29.8781, 0);
  861.     armour[3] = CreatePickup(ARMOUR_PICKUP, 1, -2363.5149, 1581.8929, 29.8781, 0);
  862.     health[4] = CreatePickup(HEALTH_PICKUP, 1, -2394.6477, 1578.5126, 29.8781, 0);
  863.     armour[4] = CreatePickup(ARMOUR_PICKUP, 1, -2391.2302, 1581.8912, 29.8781, 0);
  864.     health[5] = CreatePickup(HEALTH_PICKUP, 1, -2512.7100, 1569.7821, 29.8781, 0);
  865.     armour[5] = CreatePickup(ARMOUR_PICKUP, 1, -2509.3074, 1573.2391, 29.8781, 0);
  866.     health[6] = CreatePickup(HEALTH_PICKUP, 1, -2293.6338, 1707.9882, 33.2781, 0);
  867.     armour[6] = CreatePickup(ARMOUR_PICKUP, 1, -2296.8789, 1711.2480, 33.2781, 0);
  868.     health[7] = CreatePickup(HEALTH_PICKUP, 1, -2363.7478, 1711.5134, 36.2781, 0);
  869.     armour[7] = CreatePickup(ARMOUR_PICKUP, 1, -2367.1384, 1714.7758, 36.2781, 0);
  870.     health[8] = CreatePickup(HEALTH_PICKUP, 1, -2422.1670, 1708.2833, 33.2781, 0);
  871.     armour[8] = CreatePickup(ARMOUR_PICKUP, 1, -2425.4063, 1711.5789, 33.2781, 0);
  872.     health[9] = CreatePickup(HEALTH_PICKUP, 1, -2521.0081, 1771.2976, 33.2781, 0);
  873.     armour[9] = CreatePickup(ARMOUR_PICKUP, 1, -2517.9026, 1774.5646, 33.2781, 0);
  874.     health[10] = CreatePickup(HEALTH_PICKUP, 1, -2517.5857, 1841.5084, 36.2781, 0);
  875.     armour[10] = CreatePickup(ARMOUR_PICKUP, 1, -2514.4043, 1844.9338, 36.2781, 0);
  876.     health[11] = CreatePickup(HEALTH_PICKUP, 1, -2520.5762, 1899.8770, 33.2781, 0);
  877.     armour[11] = CreatePickup(ARMOUR_PICKUP, 1, -2517.2637, 1903.3325, 33.2781, 0);
  878.  
  879.     //Counter Terrorist Spawn Health/Armour Pickups: 4
  880.     health[12] = CreatePickup(HEALTH_PICKUP, 1, -2303.1980, 1708.7576, 10.1563, 0); //Spawn 1
  881.     armour[12] = CreatePickup(ARMOUR_PICKUP, 1, -2306.3113, 1708.7615, 10.1563, 0); //Spawn 1
  882.     health[13] = CreatePickup(HEALTH_PICKUP, 1, -2520.1331, 1780.8385, 10.2063, 0); //Spawn 2
  883.     armour[13] = CreatePickup(ARMOUR_PICKUP, 1, -2520.1379, 1784.0819, 10.2063, 0); //Spawn 2
  884.    
  885.     //Terrorist Spawn Health/Armour Pickups: 4
  886.     health[14] = CreatePickup(HEALTH_PICKUP, 1, -2473.4900, 1544.3777, 33.2344, 0); //Spawn 1
  887.     armour[14] = CreatePickup(ARMOUR_PICKUP, 1, -2475.1479, 1544.3777, 33.2344, 0); //Spawn 1
  888.     health[15] = CreatePickup(HEALTH_PICKUP, 1, -2367.0916, 1554.3638, 2.1231, 0); //Spawn 2
  889.     armour[15] = CreatePickup(ARMOUR_PICKUP, 1, -2368.8770, 1554.3417, 2.1172, 0); //Spawn 2
  890.    
  891.     //Counter Terrorist Standard/VIP Gun Pickups: 4
  892.     ct_stan_guns1 = CreatePickup(STAN_GUN_PICKUP, 1, -2309.2517, 1708.7705, 10.1563, 0); //Spawn 1
  893.     ct_vip_guns1 = CreatePickup(VIP_GUN_PICKUP, 1, -2312.2581, 1708.7771, 10.1563, 0); //Spawn 1
  894.     ct_stan_guns2 = CreatePickup(STAN_GUN_PICKUP, 1, -2520.1299, 1787.0073, 10.2063, 0); //Spawn 2
  895.     ct_vip_guns2 = CreatePickup(VIP_GUN_PICKUP, 1, -2520.1282, 1789.8271, 10.2063, 0); //Spawn 2
  896.  
  897.     //Terrorist Standard/VIP Gun Pickups: 4
  898.     t_stan_guns1 = CreatePickup(STAN_GUN_PICKUP, 1, -2472.4333, 1553.3153, 33.2273, 0); //Spawn 1
  899.     t_vip_guns1 = CreatePickup(VIP_GUN_PICKUP, 1, -2474.7649, 1553.3356, 33.2344, 0); //Spawn 1
  900.     t_stan_guns2 = CreatePickup(STAN_GUN_PICKUP, 1, -2370.5952, 1554.3392, 2.1172, 0); //Spawn 2
  901.     t_vip_guns2 = CreatePickup(VIP_GUN_PICKUP, 1, -2372.3828, 1554.3274, 2.1172, 0); //Spawn 2
  902.    
  903.     //Jetpack Pickups: 5
  904.     jetpack1 = CreatePickup(JETPACK_PICKUP, 1, -2466.7468, 1536.2389, 23.6710, 0);
  905.     jetpack2 = CreatePickup(JETPACK_PICKUP, 1, -2521.8140, 1580.2671, 13.7813, 0);
  906.     jetpack3 = CreatePickup(JETPACK_PICKUP, 1, -2446.7942, 1720.1785, 10.2358, 0);
  907.     jetpack4 = CreatePickup(JETPACK_PICKUP, 1, -2508.7197, 1924.7539, 10.1349, 0);
  908.     jetpack5 = CreatePickup(JETPACK_PICKUP, 1, -2628.2942, 1406.1235, 7.0938, 0);
  909.    
  910.     //Club Pickups: 4
  911.     club_entrance = CreatePickup(ARROW_PICKUP, 1, -2624.6321, 1412.7372, 7.0938, 0);
  912.     club_roof = CreatePickup(ARROW_PICKUP, 1, -2661.4165, 1423.8345, 23.8984, 0);
  913.     club_entrance_exit = CreatePickup(ARROW_PICKUP, 1, -2636.6787, 1402.4633, 906.4609, 0);
  914.     club_roof_exit = CreatePickup(ARROW_PICKUP, 1, -2660.9561, 1417.3970, 922.1953, 0);
  915.    
  916.     //Terrorist Ship Ladder Pickup: 1
  917.     t_ship_ladder = CreatePickup(ARROW_PICKUP, 1, -2328.9900, 1528.7606, -0.4317 + 0.5, 0);
  918.    
  919.     //Counter Terrorist Ship 1 Elevator Pickups: 3
  920.     ct_bridge_elevator1 = CreatePickup(ARROW_PICKUP, 1, -2328.7563, 1718.8253, 17.1891, 0); //Ship 1
  921.     ct_hanger_elevator1 = CreatePickup(ARROW_PICKUP, 1, -2326.1230, 1720.5868, 10.1957, 0); //Ship 1
  922.     ct_lowerdeck_elevator1 = CreatePickup(ARROW_PICKUP, 1, -2368.9766, 1714.9348, 2.0906, 0); //Ship 1
  923.  
  924.     //Counter Terrorist Ship 2 Elevator Pickups: 3
  925.     ct_bridge_elevator2 = CreatePickup(ARROW_PICKUP, 1, -2510.2771, 1806.4866, 17.1891, 0); //Ship 2
  926.     ct_hanger_elevator2 = CreatePickup(ARROW_PICKUP, 1, -2508.3069, 1803.8606, 10.2428, 0); //Ship 2
  927.     ct_lowerdeck_elevator2 = CreatePickup(ARROW_PICKUP, 1, -2513.9077, 1847.9034, 2.2245, 0); //Ship 2
  928.    
  929.     //3D Text Labels
  930.     Create3DTextLabel("Standard Weapon Set/Стандартный набор оружия", LIGHTBLUE, -2309.2517, 1708.7705, 10.1563, 10.0, 0, 1); //Counter Terrorist Spawn 1
  931.     Create3DTextLabel("V.I.P Weapon Set/V.I.P набор оружия", LIGHTBLUE, -2312.2581, 1708.7771, 10.1563, 10.0, 0, 1); //Counter Terrorist Spawn 1
  932.     Create3DTextLabel("Standard Weapon Set/Стандартный набор оружия", LIGHTBLUE, -2520.1299, 1787.0073, 10.2063, 10.0, 0, 1); //Counter Terrorist Spawn 2
  933.     Create3DTextLabel("V.I.P Weapon Set/V.I.P набор оружия", LIGHTBLUE, -2520.1282, 1789.8271, 10.2063, 10.0, 0, 1); //Counter Terrorist Spawn 2
  934.    
  935.     Create3DTextLabel("Standard Weapon Set/Стандартный набор оружия", LIGHTBLUE, -2472.4333, 1553.3153, 33.2273, 10.0, 0, 1); //Terrorist Spawn 1
  936.     Create3DTextLabel("V.I.P Weapon Set/V.I.P набор оружия", LIGHTBLUE, -2474.7649, 1553.3356, 33.2344, 10.0, 0, 1); //Terrorist Spawn 1
  937.     Create3DTextLabel("Standard Weapon Set/Стандартный набор оружия", LIGHTBLUE, -2370.5952, 1554.3392, 2.1172, 10.0, 0, 1); //Terrorist Spawn 2
  938.     Create3DTextLabel("V.I.P Weapon Set/V.I.P набор оружия", LIGHTBLUE, -2372.3828, 1554.3274, 2.1172, 10.0, 0, 1); //Terrorist Spawn 2
  939.    
  940.     Create3DTextLabel("V.I.P Only!/V.I.P только!", LIGHTBLUE, -2466.7468, 1536.2389, 23.6710, 10.0, 0, 1);
  941.     Create3DTextLabel("V.I.P Only!/V.I.P только!", LIGHTBLUE, -2521.8140, 1580.2671, 13.7813, 10.0, 0, 1);
  942.     Create3DTextLabel("V.I.P Only!/V.I.P только!", LIGHTBLUE, -2446.7942, 1720.1785, 10.2358, 10.0, 0, 1);
  943.     Create3DTextLabel("V.I.P Only!/V.I.P только!", LIGHTBLUE, -2508.7197, 1924.7539, 10.1349, 10.0, 0, 1);
  944.     Create3DTextLabel("V.I.P Only!/V.I.P только!", LIGHTBLUE, -2628.2942, 1406.1235, 7.0938, 10.0, 0, 1);
  945.    
  946.     Create3DTextLabel("V.I.P Club/V.I.P клуб", LIGHTBLUE, -2624.6321, 1412.7372, 7.0938, 10.0, 0, 1);
  947.    
  948.     Create3DTextLabel("Ladder/лестница", LIGHTBLUE, -2328.9900, 1528.7606, -0.4317 + 0.5, 10.0, 0, 1);
  949.  
  950.     Create3DTextLabel("Bridge Elevator/шлюз Лифт", LIGHTBLUE, -2328.7563, 1718.8253, 17.1891, 10.0, 0, 1);
  951.     Create3DTextLabel("Hanger Elevator/кронштейн Лифт", LIGHTBLUE, -2326.1230, 1720.5868, 10.1957, 10.0, 0, 1);
  952.     Create3DTextLabel("Lower Deck Elevator/нижняя палуба Лифт", LIGHTBLUE, -2368.9766, 1714.9348, 2.0906, 10.0, 0, 1);
  953.     Create3DTextLabel("Bridge Elevator/шлюз Лифт", LIGHTBLUE, -2510.2771, 1806.4866, 17.1891, 10.0, 0, 1);
  954.     Create3DTextLabel("Hanger Elevator/кронштейн Лифт", LIGHTBLUE, -2508.3069, 1803.8606, 10.2428, 10.0, 0, 1);
  955.     Create3DTextLabel("Lower Deck Elevator/нижняя палуба Лифт", LIGHTBLUE, -2513.9077, 1847.9034, 2.2245, 10.0, 0, 1);
  956.    
  957.     terror_zone = GangZoneCreate(-2524.5981, 1527.8569, -2299.5886, 1600.6257); //Terrorist(Red) Zone
  958.     counter_zone1 = GangZoneCreate(-2450.7275, 1704.0090, -2226.5747, 1739.7152); //Counter Terrorist(Blue) Zone
  959.     counter_zone2 = GangZoneCreate(-2524.8782, 1704.1730, -2490.3416, 1928.3651); //Counter Terrorist(Blue) Zone
  960.    
  961.     //Vehicles: 85 (6 Models)
  962.     AddStaticVehicleEx(520,-2424.8999000,1592.1999500,14.7000000,90.0000000,-1,-1,300); //Hydra
  963.     AddStaticVehicleEx(520,-2424.8994100,1581.0000000,14.7000000,90.0000000,-1,-1,300); //Hydra
  964.     AddStaticVehicleEx(520,-2439.6001000,1581.0000000,14.7000000,90.0000000,-1,-1,300); //Hydra
  965.     AddStaticVehicleEx(520,-2439.6999500,1592.1999500,14.7000000,90.0000000,-1,-1,300); //Hydra
  966.     AddStaticVehicleEx(520,-2333.1001000,1574.3000500,14.7000000,90.0000000,-1,-1,300); //Hydra
  967.     AddStaticVehicleEx(520,-2333.1001000,1586.5999800,14.7000000,90.0000000,-1,-1,300); //Hydra
  968.     AddStaticVehicleEx(425,-2316.8999000,1580.5000000,16.1000000,90.0000000,95,10,300); //Hunter
  969.     AddStaticVehicleEx(447,-2406.3999000,1586.4000200,15.9000000,90.0000000,32,32,300); //Seasparrow
  970.     AddStaticVehicleEx(447,-2406.5000000,1574.1999500,15.9000000,90.0000000,32,32,300); //Seasparrow
  971.     AddStaticVehicleEx(520,-2461.6999500,1570.5000000,14.7000000,0.0000000,-1,-1,300); //Hydra
  972.     AddStaticVehicleEx(520,-2472.6999500,1570.5000000,14.7000000,0.0000000,-1,-1,300); //Hydra
  973.     AddStaticVehicleEx(520,-2484.1001000,1570.5000000,14.7000000,0.0000000,-1,-1,300); //Hydra
  974.     AddStaticVehicleEx(520,-2495.5000000,1570.5000000,14.7000000,0.0000000,-1,-1,300); //Hydra
  975.     AddStaticVehicleEx(447,-2350.8994100,1586.6992200,15.8000000,90.0000000,32,32,300); //Seasparrow
  976.     AddStaticVehicleEx(447,-2350.8999000,1574.3000500,15.9000000,90.0000000,32,32,300); //Seasparrow
  977.     AddStaticVehicleEx(520,-2410.2998000,1541.3994100,32.8000000,0.0000000,-1,-1,300); //Hydra
  978.     AddStaticVehicleEx(520,-2410.3000500,1556.8000500,32.8000000,0.0000000,-1,-1,300); //Hydra
  979.     AddStaticVehicleEx(425,-2391.5000000,1534.8000500,32.7000000,225.0000000,95,10,300); //Hunter
  980.     AddStaticVehicleEx(520,-2329.6999500,1538.0000000,18.2000000,0.0000000,-1,-1,300); //Hydra
  981.     AddStaticVehicleEx(425,-2311.3999000,1545.0999800,19.6000000,90.0000000,95,10,300); //Hunter
  982.     AddStaticVehicleEx(520,-2329.6999500,1551.8000500,18.2000000,180.0000000,-1,-1,300); //Hydra
  983.     AddStaticVehicleEx(473,-2425.8000500,1599.3000500,0.0000000,0.0000000,158,164,300); //Dinghy
  984.     AddStaticVehicleEx(473,-2429.1001000,1599.3000500,0.0000000,0.0000000,158,164,300); //Dinghy
  985.     AddStaticVehicleEx(473,-2432.6001000,1599.4000200,0.0000000,0.0000000,158,164,300); //Dinghy
  986.     AddStaticVehicleEx(473,-2435.8999000,1599.5000000,0.0000000,0.0000000,158,164,300); //Dinghy
  987.     AddStaticVehicleEx(473,-2422.6001000,1599.3000500,0.0000000,0.0000000,158,164,300); //Dinghy
  988.     AddStaticVehicleEx(473,-2325.8999000,1531.9000200,0.0000000,180.0000000,158,164,300); //Dinghy
  989.     AddStaticVehicleEx(473,-2322.6999500,1531.9000200,0.0000000,180.0000000,158,164,300); //Dinghy
  990.     AddStaticVehicleEx(473,-2319.3000500,1531.8000500,0.0000000,180.0000000,158,164,300); //Dinghy
  991.     AddStaticVehicleEx(473,-2316.0000000,1531.8000500,0.0000000,180.0000000,158,164,300); //Dinghy
  992.     AddStaticVehicleEx(473,-2312.5000000,1531.8000500,0.0000000,180.0000000,158,164,300); //Dinghy
  993.     AddStaticVehicleEx(425,-2517.3000500,1889.8000500,18.0000000,0.0000000,95,10,300); //Hunter
  994.     AddStaticVehicleEx(425,-2517.3000500,1873.5999800,18.0000000,0.0000000,95,10,300); //Hunter
  995.     AddStaticVehicleEx(425,-2517.3000500,1857.5000000,18.0000000,0.0000000,95,10,300); //Hunter
  996.     AddStaticVehicleEx(447,-2516.3999000,1832.0999800,23.3000000,270.0000000,32,32,300); //Seasparrow
  997.     AddStaticVehicleEx(447,-2516.3999000,1783.3000500,20.3000000,270.0000000,32,32,300); //Seasparrow
  998.     AddStaticVehicleEx(476,-2516.1999500,1749.6999500,18.4000000,270.0000000,215,142,300); //Rustler
  999.     AddStaticVehicleEx(476,-2516.1999500,1737.0999800,18.4000000,270.0000000,215,142,300); //Rustler
  1000.     AddStaticVehicleEx(520,-2500.7998000,1766.8000500,11.1000000,0.0000000,-1,-1,300); //Hydra
  1001.     AddStaticVehicleEx(520,-2514.5000000,1772.6999500,11.1000000,270.0000000,-1,-1,300); //Hydra
  1002.     AddStaticVehicleEx(520,-2510.6001000,1752.0999800,11.1000000,315.0000000,-1,-1,300); //Hydra
  1003.     AddStaticVehicleEx(520,-2500.7998000,1753.0000000,11.1000000,0.0000000,-1,-1,300); //Hydra
  1004.     AddStaticVehicleEx(520,-2514.5000000,1762.9000200,11.1000000,270.0000000,-1,-1,300); //Hydra
  1005.     AddStaticVehicleEx(520,-2500.7998000,1780.8000500,11.1000000,0.0000000,-1,-1,300); //Hydra
  1006.     AddStaticVehicleEx(520,-2508.6001000,1913.0999800,11.0000000,180.0000000,-1,-1,300); //Hydra
  1007.     AddStaticVehicleEx(473,-2499.3000500,1897.3000500,0.0000000,0.0000000,158,164,300); //Dinghy
  1008.     AddStaticVehicleEx(473,-2502.6999500,1897.3000500,0.0000000,0.0000000,158,164,300); //Dinghy
  1009.     AddStaticVehicleEx(473,-2505.8999000,1897.3000500,0.0000000,0.0000000,158,164,300); //Dinghy
  1010.     AddStaticVehicleEx(473,-2512.6001000,1901.5999800,0.0000000,0.0000000,158,164,300); //Dinghy
  1011.     AddStaticVehicleEx(473,-2516.1999500,1901.5999800,0.0000000,0.0000000,158,164,300); //Dinghy
  1012.     AddStaticVehicleEx(425,-2454.3000500,1552.5999800,29.8000000,180.0000000,95,10,300); //Hunter
  1013.     AddStaticVehicleEx(425,-2377.8999000,1554.5000000,32.7000000,135.0000000,95,10,300); //Hunter
  1014.     AddStaticVehicleEx(447,-2378.6999500,1586.1999500,15.9000000,90.0000000,32,32,300); //Seasparrow
  1015.     AddStaticVehicleEx(447,-2378.6999500,1574.3000500,15.9000000,90.0000000,32,32,300); //Seasparrow
  1016.     AddStaticVehicleEx(476,-2516.1999500,1762.5000000,18.4000000,270.0000000,215,142,300); //Rustler
  1017.     AddStaticVehicleEx(476,-2516.1999500,1724.3000500,18.4000000,270.0000000,215,142,300); //Rustler
  1018.     AddStaticVehicleEx(476,-2283.8994100,1713.2998000,18.4000000,0.0000000,19,69,300); //Rustler
  1019.     AddStaticVehicleEx(476,-2271.0000000,1713.3000500,18.4000000,0.0000000,19,69,300); //Rustler
  1020.     AddStaticVehicleEx(476,-2257.6999500,1713.3000500,18.4000000,0.0000000,19,69,300); //Rustler
  1021.     AddStaticVehicleEx(476,-2244.6001000,1713.3000500,18.4000000,0.0000000,19,69,300); //Rustler
  1022.     AddStaticVehicleEx(447,-2305.5000000,1712.9000200,20.3000000,0.0000000,32,32,300); //Seasparrow
  1023.     AddStaticVehicleEx(447,-2354.5000000,1712.8000500,23.4000000,0.0000000,32,32,300); //Seasparrow
  1024.     AddStaticVehicleEx(425,-2395.8000500,1712.0000000,18.0000000,90.0000000,95,10,300); //Hunter
  1025.     AddStaticVehicleEx(425,-2412.1999500,1712.0000000,18.0000000,90.0000000,95,10,300); //Hunter
  1026.     AddStaticVehicleEx(425,-2379.6999500,1712.0000000,18.0000000,90.0000000,95,10,300); //Hunter
  1027.     AddStaticVehicleEx(520,-2433.6001000,1720.5000000,11.1000000,270.0000000,-1,-1,300); //Hydra
  1028.     AddStaticVehicleEx(520,-2295.0000000,1715.4000200,11.1000000,0.0000000,-1,-1,300); //Hydra
  1029.     AddStaticVehicleEx(520,-2284.8999000,1715.4000200,11.1000000,0.0000000,-1,-1,300); //Hydra
  1030.     AddStaticVehicleEx(520,-2274.6001000,1718.0000000,11.1000000,45.0000000,-1,-1,300); //Hydra
  1031.     AddStaticVehicleEx(520,-2276.3000500,1728.0000000,11.1000000,90.0000000,-1,-1,300); //Hydra
  1032.     AddStaticVehicleEx(520,-2290.6001000,1728.0000000,11.1000000,90.0000000,-1,-1,300); //Hydra
  1033.     AddStaticVehicleEx(520,-2304.5000000,1728.0000000,11.1000000,90.0000000,-1,-1,300); //Hydra
  1034.     AddStaticVehicleEx(473,-2419.0000000,1729.0999800,0.0000000,90.0000000,158,164,300); //Dinghy
  1035.     AddStaticVehicleEx(473,-2419.0000000,1726.0000000,0.0000000,90.0000000,158,164,300); //Dinghy
  1036.     AddStaticVehicleEx(473,-2419.0000000,1722.9000200,0.0000000,90.0000000,158,164,300); //Dinghy
  1037.     AddStaticVehicleEx(473,-2422.6001000,1716.0000000,0.0000000,90.0000000,158,164,300); //Dinghy
  1038.     AddStaticVehicleEx(473,-2422.6001000,1712.8000500,0.0000000,90.0000000,158,164,300); //Dinghy
  1039.     AddStaticVehicleEx(473,-2586.6999500,1428.9000200,0.0000000,270.0000000,158,164,300); //Dinghy
  1040.     AddStaticVehicleEx(473,-2586.6999500,1432.4000200,0.0000000,270.0000000,158,164,300); //Dinghy
  1041.     AddStaticVehicleEx(473,-2586.6999500,1435.9000200,0.0000000,270.0000000,158,164,300); //Dinghy
  1042.     AddStaticVehicleEx(473,-2586.6999500,1439.3000500,0.0000000,270.0000000,158,164,300); //Dinghy
  1043.     AddStaticVehicleEx(473,-2586.6999500,1442.6999500,0.0000000,270.0000000,158,164,300); //Dinghy
  1044.     AddStaticVehicleEx(487,-2637.0000000,1409.8000500,24.2000000,45.0000000,39,47,300); //Maverick
  1045.     AddStaticVehicleEx(487,-2643.0000000,1421.8000500,24.2000000,135.0000000,39,47,300); //Maverick
  1046.     AddStaticVehicleEx(425,-2426.8999000,1570.1999500,14.6000000,45.0000000,95,10,300); //Hunter
  1047.    
  1048.     for(new id = 0; id < MAX_PLAYERS; id++)
  1049.     {
  1050.         text_draw[id] = TextDrawCreate(18.000000, 428.000000, " ");
  1051.         TextDrawAlignment(text_draw[id], 0);
  1052.         TextDrawBackgroundColor(text_draw[id], 0x000000ff);
  1053.         TextDrawFont(text_draw[id], 2);
  1054.         TextDrawLetterSize(text_draw[id], 0.199999, 0.899999);
  1055.         TextDrawColor(text_draw[id], 0xffffffff);
  1056.         TextDrawSetOutline(text_draw[id], 1);
  1057.         TextDrawSetProportional(text_draw[id], 1);
  1058.         TextDrawSetShadow(text_draw[id], 1);
  1059.     }
  1060.    
  1061.     SetTimer("ScanForHackers", 1000, true);
  1062.     return 1;
  1063. }
  1064.  
  1065. public OnGameModeExit()
  1066. {
  1067.     KillTimer(gun_timer);
  1068.     foreach(new id : Player)
  1069.     {
  1070.         SavePlayerAccount(id);
  1071.         OnPlayerDisconnect(id, 0);
  1072.     }
  1073.     return 1;
  1074. }
  1075.  
  1076. public OnPlayerRequestClass(playerid, classid)
  1077. {
  1078.     SetPlayerInterior(playerid, 0);
  1079.     SetPlayerVirtualWorld(playerid, 0);
  1080.     SetPlayerClass(playerid, classid);
  1081.     SetPlayerPos(playerid, CLASS_SELECTION_X, CLASS_SELECTION_Y, CLASS_SELECTION_Z);
  1082.     SetPlayerFacingAngle(playerid, CLASS_SELECTION_A);
  1083.     SetPlayerCameraLookAt(playerid, CLASS_SELECTION_X, CLASS_SELECTION_Y, CLASS_SELECTION_Z);
  1084.     SetPlayerCameraPos(playerid, CLASS_SELECTION_X + (5 * floatsin(-CLASS_SELECTION_A, degrees)), CLASS_SELECTION_Y + (5 * floatcos(-CLASS_SELECTION_A, degrees)), CLASS_SELECTION_Z);
  1085.     return 1;
  1086. }
  1087.  
  1088. public OnPlayerConnect(playerid)
  1089. {
  1090.     if(strfind(GetUserName(playerid), ".", true) != -1) //Prevents file bugs
  1091.     {
  1092.         if(GetPlayerLanguage[playerid] == ENGLISH)
  1093.         {
  1094.             SendClientMessage(playerid, RED, "Server: Please remove the . from your username.");
  1095.         }
  1096.         else if(GetPlayerLanguage[playerid] == RUSSIAN)
  1097.         {
  1098.             SendClientMessage(playerid, RED, "Сервер: Убрать . с вашим именем пользователя");
  1099.         }
  1100.         return KickPlayer(playerid, "Name Rejected/Имя Отклонен");
  1101.     }
  1102.    
  1103.     CheckIfPlayerBanned(playerid);
  1104.    
  1105.     ResetPlayerVariables(playerid);
  1106.    
  1107.     TextDrawShowForPlayer(playerid, text_draw[playerid]);
  1108.     TextDrawSetString(text_draw[playerid], "Counter-Strike: Battleship - Build: 2");
  1109.  
  1110.     SetPlayerColor(playerid, GREY);
  1111.     SetPlayerInterior(playerid, 0);
  1112.    
  1113.     GangZoneShowForPlayer(playerid, terror_zone, RED);
  1114.     GangZoneShowForPlayer(playerid, counter_zone1, BLUE);
  1115.     GangZoneShowForPlayer(playerid, counter_zone2, BLUE);
  1116.  
  1117.     //Tower Health/Armour Icons: 24
  1118.     SetPlayerMapIcon(playerid, 0, -2457.6016, 1531.7642, 44.9781, HEALTH_ICON, 0, MAPICON_LOCAL);
  1119.     SetPlayerMapIcon(playerid, 1, -2454.2688, 1535.1587, 44.9781, ARMOUR_ICON, 0, MAPICON_LOCAL);
  1120.     SetPlayerMapIcon(playerid, 2, -2398.6831, 1551.3640, 47.9781, HEALTH_ICON, 0, MAPICON_LOCAL);
  1121.     SetPlayerMapIcon(playerid, 3, -2395.5540, 1554.7454, 47.9781, ARMOUR_ICON, 0, MAPICON_LOCAL);
  1122.     SetPlayerMapIcon(playerid, 4, -2350.5535, 1542.9728, 42.0781, HEALTH_ICON, 0, MAPICON_LOCAL);
  1123.     SetPlayerMapIcon(playerid, 5, -2347.4370, 1546.3248, 42.0781, ARMOUR_ICON, 0, MAPICON_LOCAL);
  1124.     SetPlayerMapIcon(playerid, 6, -2366.7583, 1578.5167, 29.8781, HEALTH_ICON, 0, MAPICON_LOCAL);
  1125.     SetPlayerMapIcon(playerid, 7, -2363.5149, 1581.8929, 29.8781, ARMOUR_ICON, 0, MAPICON_LOCAL);
  1126.     SetPlayerMapIcon(playerid, 8, -2394.6477, 1578.5126, 29.8781, HEALTH_ICON, 0, MAPICON_LOCAL);
  1127.     SetPlayerMapIcon(playerid, 9, -2391.2302, 1581.8912, 29.8781, ARMOUR_ICON, 0, MAPICON_LOCAL);
  1128.     SetPlayerMapIcon(playerid, 10, -2512.7100, 1569.7821, 29.8781, HEALTH_ICON, 0, MAPICON_LOCAL);
  1129.     SetPlayerMapIcon(playerid, 11, -2509.3074, 1573.2391, 29.8781, ARMOUR_ICON, 0, MAPICON_LOCAL);
  1130.     SetPlayerMapIcon(playerid, 12, -2293.6338, 1707.9882, 33.2781, HEALTH_ICON, 0, MAPICON_LOCAL);
  1131.     SetPlayerMapIcon(playerid, 13, -2296.8789, 1711.2480, 33.2781, ARMOUR_ICON, 0, MAPICON_LOCAL);
  1132.     SetPlayerMapIcon(playerid, 14, -2363.7478, 1711.5134, 36.2781, HEALTH_ICON, 0, MAPICON_LOCAL);
  1133.     SetPlayerMapIcon(playerid, 15, -2367.1384, 1714.7758, 36.2781, ARMOUR_ICON, 0, MAPICON_LOCAL);
  1134.     SetPlayerMapIcon(playerid, 16, -2422.1670, 1708.2833, 33.2781, HEALTH_ICON, 0, MAPICON_LOCAL);
  1135.     SetPlayerMapIcon(playerid, 17, -2425.4063, 1711.5789, 33.2781, ARMOUR_ICON, 0, MAPICON_LOCAL);
  1136.     SetPlayerMapIcon(playerid, 18, -2521.0081, 1771.2976, 33.2781, HEALTH_ICON, 0, MAPICON_LOCAL);
  1137.     SetPlayerMapIcon(playerid, 19, -2517.9026, 1774.5646, 33.2781, ARMOUR_ICON, 0, MAPICON_LOCAL);
  1138.     SetPlayerMapIcon(playerid, 20, -2517.5857, 1841.5084, 36.2781, HEALTH_ICON, 0, MAPICON_LOCAL);
  1139.     SetPlayerMapIcon(playerid, 21, -2514.4043, 1844.9338, 36.2781, ARMOUR_ICON, 0, MAPICON_LOCAL);
  1140.     SetPlayerMapIcon(playerid, 22, -2520.5762, 1899.8770, 33.2781, HEALTH_ICON, 0, MAPICON_LOCAL);
  1141.     SetPlayerMapIcon(playerid, 23, -2517.2637, 1903.3325, 33.2781, ARMOUR_ICON, 0, MAPICON_LOCAL);
  1142.  
  1143.     //Counter Terrorist Spawn Health/Armour Icons: 4
  1144.     SetPlayerMapIcon(playerid, 24, -2303.1980, 1708.7576, 10.1563, HEALTH_ICON, 0, MAPICON_LOCAL);
  1145.     SetPlayerMapIcon(playerid, 25, -2306.3113, 1708.7615, 10.1563, ARMOUR_ICON, 0, MAPICON_LOCAL);
  1146.     SetPlayerMapIcon(playerid, 26, -2520.1331, 1780.8385, 10.2063, HEALTH_ICON, 0, MAPICON_LOCAL);
  1147.     SetPlayerMapIcon(playerid, 27, -2520.1379, 1784.0819, 10.2063, ARMOUR_ICON, 0, MAPICON_LOCAL);
  1148.  
  1149.     //Terrorist Spawn Health/Armour Icons: 4
  1150.     SetPlayerMapIcon(playerid, 28, -2473.4900, 1544.3777, 33.2344, HEALTH_ICON, 0, MAPICON_LOCAL);
  1151.     SetPlayerMapIcon(playerid, 29, -2475.1479, 1544.3777, 33.2344, ARMOUR_ICON, 0, MAPICON_LOCAL);
  1152.     SetPlayerMapIcon(playerid, 30, -2367.0916, 1554.3638, 2.1231, HEALTH_ICON, 0, MAPICON_LOCAL);
  1153.     SetPlayerMapIcon(playerid, 31, -2368.8770, 1554.3417, 2.1172, ARMOUR_ICON, 0, MAPICON_LOCAL);
  1154.  
  1155.     //Counter Terrorist Standard/VIP Gun Icons: 4
  1156.     SetPlayerMapIcon(playerid, 32, -2309.2517, 1708.7705, 10.1563, STAN_GUN_ICON, 0, MAPICON_LOCAL);
  1157.     SetPlayerMapIcon(playerid, 33, -2312.2581, 1708.7771, 10.1563, VIP_GUN_ICON, 0, MAPICON_LOCAL);
  1158.     SetPlayerMapIcon(playerid, 34, -2520.1299, 1787.0073, 10.2063, STAN_GUN_ICON, 0, MAPICON_LOCAL);
  1159.     SetPlayerMapIcon(playerid, 35, -2520.1282, 1789.8271, 10.2063, VIP_GUN_ICON, 0, MAPICON_LOCAL);
  1160.  
  1161.     //Terrorist Standard/VIP Gun Icons: 4
  1162.     SetPlayerMapIcon(playerid, 36, -2472.4333, 1553.3153, 33.2273, STAN_GUN_ICON, 0, MAPICON_LOCAL);
  1163.     SetPlayerMapIcon(playerid, 37, -2474.7649, 1553.3356, 33.2344, VIP_GUN_ICON, 0, MAPICON_LOCAL);
  1164.     SetPlayerMapIcon(playerid, 38, -2370.5952, 1554.3392, 2.1172, STAN_GUN_ICON, 0, MAPICON_LOCAL);
  1165.     SetPlayerMapIcon(playerid, 39, -2372.3828, 1554.3274, 2.1172, VIP_GUN_ICON, 0, MAPICON_LOCAL);
  1166.  
  1167.     //Jetpack Icons: 5
  1168.     SetPlayerMapIcon(playerid, 40, -2466.7468, 1536.2389, 23.6710, JETPACK_ICON, 0, MAPICON_LOCAL);
  1169.     SetPlayerMapIcon(playerid, 41, -2521.8140, 1580.2671, 13.7813, JETPACK_ICON, 0, MAPICON_LOCAL);
  1170.     SetPlayerMapIcon(playerid, 42, -2446.7942, 1720.1785, 10.2358, JETPACK_ICON, 0, MAPICON_LOCAL);
  1171.     SetPlayerMapIcon(playerid, 43, -2508.7197, 1924.7539, 10.1349, JETPACK_ICON, 0, MAPICON_LOCAL);
  1172.     SetPlayerMapIcon(playerid, 44, -2628.2942, 1406.1235, 7.0938, JETPACK_ICON, 0, MAPICON_LOCAL);
  1173.  
  1174.     //Club Icon: 1
  1175.     SetPlayerMapIcon(playerid, 45, -2624.6321, 1412.7372, 7.0938, CLUB_ICON, 0, MAPICON_LOCAL);
  1176.    
  1177.     //Terrorist Ship Ladder Icon: 1
  1178.     SetPlayerMapIcon(playerid, 46, -2328.9900, 1528.7606, -0.4317, ELEVATOR_ICON, 0, MAPICON_LOCAL);
  1179.    
  1180.     //Counter Terrorist Ship Elevators Icons: 6
  1181.     SetPlayerMapIcon(playerid, 47, -2328.7563, 1718.8253, 17.1891, ELEVATOR_ICON, 0, MAPICON_LOCAL);
  1182.     SetPlayerMapIcon(playerid, 48, -2326.1230, 1720.5868, 10.1957, ELEVATOR_ICON, 0, MAPICON_LOCAL);
  1183.     SetPlayerMapIcon(playerid, 49, -2368.9766, 1714.9348, 2.0906, ELEVATOR_ICON, 0, MAPICON_LOCAL);
  1184.     SetPlayerMapIcon(playerid, 50, -2510.2771, 1806.4866, 17.1891, ELEVATOR_ICON, 0, MAPICON_LOCAL);
  1185.     SetPlayerMapIcon(playerid, 51, -2508.3069, 1803.8606, 10.2428, ELEVATOR_ICON, 0, MAPICON_LOCAL);
  1186.     SetPlayerMapIcon(playerid, 52, -2513.9077, 1847.9034, 2.2245, ELEVATOR_ICON, 0, MAPICON_LOCAL);
  1187.  
  1188.     ShowPlayerDialog(playerid, LANGUAGE_DIALOG, DIALOG_STYLE_LIST, "{FFFFFF}Choose Language/Выберите язык", "{FFFFFF}English\nрусский", ">>", "");
  1189.    
  1190.     ConnectPlayer(playerid);
  1191.     return 1;
  1192. }
  1193.  
  1194. public OnPlayerDisconnect(playerid, reason)
  1195. {
  1196.     TextDrawHideForPlayer(playerid, text_draw[playerid]);
  1197.    
  1198.     KillTimer(anti_spawn_kill_timer[playerid]);
  1199.  
  1200.     GangZoneHideForPlayer(playerid, terror_zone);
  1201.     GangZoneHideForPlayer(playerid, counter_zone1);
  1202.     GangZoneHideForPlayer(playerid, counter_zone2);
  1203.    
  1204.     SavePlayerAccount(playerid);
  1205.     ResetPlayerVariables(playerid);
  1206.     DisconnectPlayer(playerid);
  1207.     return 1;
  1208. }
  1209.  
  1210. public OnPlayerSpawn(playerid)
  1211. {
  1212.     SetPlayerSpawn(playerid);
  1213.     if(IsAdminOnDuty[playerid] == true)
  1214.     {
  1215.         IsAdminOnDuty[playerid] = false;
  1216.     }
  1217.    
  1218.     new string[128];
  1219.     format(string, sizeof(string), "Counter-Strike: Battleship - Build: 2 - Score: %d - Kills: %d - Deaths: %d - Streaks: %d", GetPlayerScore(playerid), AccountInfo[playerid][user_kills], AccountInfo[playerid][user_deaths], AccountInfo[playerid][user_streaks]);
  1220.     TextDrawSetString(text_draw[playerid], string);
  1221.     SavePlayerAccount(playerid);
  1222.     return 1;
  1223. }
  1224.  
  1225. public OnPlayerDeath(playerid, killerid, reason)
  1226. {
  1227.     if(gettime() - GetPVarInt(playerid, "GetPlayerLastDeath") < 1)
  1228.     {
  1229.         return Kick(playerid);
  1230.     }
  1231.     SetPVarInt(playerid, "GetPlayerLastDeath", gettime());
  1232.    
  1233.     if(HasPlayerChangedClass[playerid] == true)
  1234.     {
  1235.         HasPlayerChangedClass[playerid] = false;
  1236.         return ForceClassSelection(playerid);
  1237.     }
  1238.    
  1239.     GetPlayerStreakCount[playerid] = 0;
  1240.    
  1241.     if(killerid == INVALID_PLAYER_ID)
  1242.     {
  1243.         AccountInfo[playerid][user_deaths] = AccountInfo[playerid][user_deaths] +1;
  1244.         SetPlayerScore(playerid, GetPlayerScore(playerid) -1);
  1245.         SendDeathMessage(INVALID_PLAYER_ID, playerid, reason);
  1246.         SavePlayerAccount(playerid);
  1247.         return 1;
  1248.     }
  1249.     GetPlayerStreakCount[killerid]++;
  1250.     if(GetPlayerClass[killerid] == TEAM_COUNTER && GetPlayerClass[playerid] == TEAM_COUNTER || GetPlayerClass[killerid] == TEAM_TERROR && GetPlayerClass[playerid] == TEAM_TERROR)
  1251.     {
  1252.         if(GetPlayerLanguage[killerid] == ENGLISH)
  1253.         {
  1254.             SendClientMessage(playerid, RED, "Server: DO NOT kill your team members!");
  1255.             return 1;
  1256.         }
  1257.         else if(GetPlayerLanguage[killerid] == RUSSIAN)
  1258.         {
  1259.             SendClientMessage(playerid, RED, "Сервер: не убивайте членов вашей команды!");
  1260.         }
  1261.         return 1;
  1262.     }
  1263.     AccountInfo[killerid][user_kills] = AccountInfo[killerid][user_kills] +1;
  1264.     AccountInfo[killerid][user_score] = AccountInfo[killerid][user_score] +1;
  1265.     SetPlayerScore(killerid, GetPlayerScore(killerid) +1);
  1266.    
  1267.     AccountInfo[playerid][user_deaths] = AccountInfo[playerid][user_deaths] +1;
  1268.     AccountInfo[playerid][user_score] = AccountInfo[playerid][user_score] -1;
  1269.     SetPlayerScore(playerid, GetPlayerScore(playerid) -1);
  1270.    
  1271.     SendDeathMessage(killerid, playerid, reason);
  1272.    
  1273.     if(GetPlayerStreakCount[killerid] >= 3)
  1274.     {
  1275.         new string[128], string2[128];
  1276.         format(string, sizeof(string), "Kill Streak: %s (%d) has made %d kills in a row!", GetUserName(killerid), killerid, GetPlayerStreakCount[killerid]);
  1277.         format(string2, sizeof(string2), "Убийств: %s (%d) составила %d убийств подряд!", GetUserName(killerid), killerid, GetPlayerStreakCount[killerid]);
  1278.         SendClientMessageToAll(ORANGE, string);
  1279.         SendClientMessageToAll(ORANGE, string2);
  1280.         AccountInfo[killerid][user_streaks] = AccountInfo[killerid][user_streaks] +1;
  1281.         SetPlayerScore(killerid, GetPlayerScore(killerid) +1);
  1282.     }
  1283.     new string[128];
  1284.     format(string, sizeof(string), "Counter-Strike: Battleship - Build: 2 - Score: %d - Kills: %d - Deaths: %d - Streaks: %d", GetPlayerScore(killerid), AccountInfo[killerid][user_kills], AccountInfo[killerid][user_deaths], AccountInfo[killerid][user_streaks]);
  1285.     TextDrawSetString(text_draw[killerid], string);
  1286.     SavePlayerAccount(playerid);
  1287.     SavePlayerAccount(killerid);
  1288.     return 1;
  1289. }
  1290.  
  1291. public OnPlayerText(playerid, text[])
  1292. {
  1293.     SendGlobalMessageToAll(playerid, AccountInfo[playerid][user_level], GetPlayerClass[playerid], text);
  1294.     return 0;
  1295. }
  1296.  
  1297. public OnPlayerRequestSpawn(playerid)
  1298. {
  1299.     if(IsPlayerRegistered[playerid] == false)
  1300.     {
  1301.         ShowRegisterDialog(playerid);
  1302.         return 0;
  1303.     }
  1304.     if(IsPlayerLoggedIn[playerid] == false)
  1305.     {
  1306.         ShowLoginDialog(playerid);
  1307.         return 0;
  1308.     }
  1309.     new CounterCount = GetTeamCount(TEAM_COUNTER);
  1310.     new TerrorCount = GetTeamCount(TEAM_TERROR);
  1311.     if(GetPlayerClass[playerid] == TEAM_COUNTER)
  1312.     {
  1313.         if(CounterCount > TerrorCount)
  1314.         {
  1315.             if(GetPlayerLanguage[playerid] == ENGLISH)
  1316.             {
  1317.                 SendClientMessage(playerid, RED, "Error: Team MAXED OUT. Please choose Terrorist class.");
  1318.                 return 0;
  1319.             }
  1320.             else if(GetPlayerLanguage[playerid] == RUSSIAN)
  1321.             {
  1322.                 SendClientMessage(playerid, RED, "Ошибка: Команда превышен. Пожалуйста, выберите террористических класса.");
  1323.                 return 0;
  1324.             }
  1325.         }
  1326.     }
  1327.     else if(GetPlayerClass[playerid] == TEAM_TERROR)
  1328.     {
  1329.         if(TerrorCount > CounterCount)
  1330.         {
  1331.             if(GetPlayerLanguage[playerid] == ENGLISH)
  1332.             {
  1333.                 SendClientMessage(playerid, RED, "Error: Team MAXED OUT. Please choose Counter-Terrorist class.");
  1334.                 return 0;
  1335.             }
  1336.             else if(GetPlayerLanguage[playerid] == RUSSIAN)
  1337.             {
  1338.                 SendClientMessage(playerid, RED, "Ошибка: Команда превышен. Пожалуйста, выберите контртеррористической класса.");
  1339.                 return 0;
  1340.             }
  1341.         }
  1342.     }
  1343.     return 1;
  1344. }
  1345.  
  1346. public OnPlayerStateChange(playerid, newstate, oldstate)
  1347. {
  1348.     if(GetPlayerSpecialAction(playerid) == SPECIAL_ACTION_USEJETPACK && AccountInfo[playerid][user_level] == PLAYER_LEVEL)
  1349.     {
  1350.         SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE);
  1351.     }
  1352.     return 1;
  1353. }
  1354.  
  1355. public OnPlayerPickUpPickup(playerid, pickupid)
  1356. {
  1357.     for(new loop; loop < 16; loop++)
  1358.     {
  1359.         if(pickupid == health[loop])
  1360.         {
  1361.             if(IsAdminOnDuty[playerid] == true) return 0;
  1362.             SetPlayerHealth(playerid, 100);
  1363.             break;
  1364.         }
  1365.         if(pickupid == armour[loop])
  1366.         {
  1367.             SetPlayerArmour(playerid, 100);
  1368.             break;
  1369.         }
  1370.     }
  1371.     if(pickupid == jetpack1 || pickupid == jetpack2 || pickupid == jetpack3 || pickupid == jetpack4 || pickupid == jetpack5)
  1372.     {
  1373.         if(AccountInfo[playerid][user_level] == VIP_LEVEL)
  1374.         {
  1375.             SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USEJETPACK);
  1376.         }
  1377.     }
  1378.     if(pickupid == ct_vip_guns1 || pickupid == ct_vip_guns2 || pickupid == t_vip_guns1 || pickupid == t_vip_guns2)
  1379.     {
  1380.         if(AccountInfo[playerid][user_level] == VIP_LEVEL)
  1381.         {
  1382.             GivePlayerVIPGuns(playerid);
  1383.         }
  1384.     }
  1385.     if(pickupid == ct_stan_guns1 || pickupid == ct_stan_guns2)
  1386.     {
  1387.         if(GetPlayerClass[playerid] == TEAM_COUNTER)
  1388.         {
  1389.             GivePlayerStandardGuns(playerid);
  1390.         }
  1391.     }
  1392.     if(pickupid == t_stan_guns1 || pickupid == t_stan_guns2)
  1393.     {
  1394.         if(GetPlayerClass[playerid] == TEAM_TERROR)
  1395.         {
  1396.             GivePlayerStandardGuns(playerid);
  1397.         }
  1398.     }
  1399.     if(pickupid == club_entrance)
  1400.     {
  1401.         if(AccountInfo[playerid][user_level] != PLAYER_LEVEL)
  1402.         {
  1403.             SetPlayerInterior(playerid, 3);
  1404.             SetPlayerPos(playerid, -2636.8870, 1404.2625, 906.4609);
  1405.             SetPlayerFacingAngle(playerid, 1.0194);
  1406.         }
  1407.     }
  1408.     if(pickupid == club_roof)
  1409.     {
  1410.         if(AccountInfo[playerid][user_level] != PLAYER_LEVEL)
  1411.         {
  1412.             SetPlayerInterior(playerid, 3);
  1413.             SetPlayerPos(playerid, -2660.9922, 1414.1644, 922.1953);
  1414.             SetPlayerFacingAngle(playerid, 179.7104);
  1415.         }
  1416.     }
  1417.     if(pickupid == club_entrance_exit)
  1418.     {
  1419.         if(AccountInfo[playerid][user_level] != PLAYER_LEVEL)
  1420.         {
  1421.             SetPlayerInterior(playerid, 0);
  1422.             SetPlayerPos(playerid, -2623.9397, 1410.2275, 7.0938);
  1423.             SetPlayerFacingAngle(playerid, 197.0663);
  1424.         }
  1425.     }
  1426.     if(pickupid == club_roof_exit)
  1427.     {
  1428.         if(AccountInfo[playerid][user_level] != PLAYER_LEVEL)
  1429.         {
  1430.             SetPlayerInterior(playerid, 0);
  1431.             SetPlayerPos(playerid, -2661.8821, 1425.7184, 23.8984);
  1432.             SetPlayerFacingAngle(playerid, 12.3628);
  1433.         }
  1434.     }
  1435.     if(pickupid == t_ship_ladder)
  1436.     {
  1437.         SetPlayerPos(playerid, -2325.7664, 1532.6257, 17.3281);
  1438.         SetPlayerFacingAngle(playerid, 359.5244);
  1439.     }
  1440.     if(pickupid == ct_bridge_elevator1 || pickupid == ct_hanger_elevator1 || pickupid == ct_lowerdeck_elevator1)
  1441.     {
  1442.         if(GetPlayerLanguage[playerid] == ENGLISH)
  1443.         {
  1444.             ShowPlayerDialog(playerid, ELEVATOR_DIALOG1, DIALOG_STYLE_LIST, "{FFFFFF}Carrier Elevator", "{FFFFFF}Bridge\nHanger\nLower Deck", "Select", "Cancel");
  1445.         }
  1446.         else if(GetPlayerLanguage[playerid] == RUSSIAN)
  1447.         {
  1448.             ShowPlayerDialog(playerid, ELEVATOR_DIALOG1, DIALOG_STYLE_LIST, "{FFFFFF}Перевозчик Лифт", "{FFFFFF}шлюз\nкронштейн\nнижняя палуба", "выбирать", "отменить");
  1449.         }
  1450.     }
  1451.     if(pickupid == ct_bridge_elevator2 || pickupid == ct_hanger_elevator2 || pickupid == ct_lowerdeck_elevator2)
  1452.     {
  1453.         if(GetPlayerLanguage[playerid] == ENGLISH)
  1454.         {
  1455.             ShowPlayerDialog(playerid, ELEVATOR_DIALOG2, DIALOG_STYLE_LIST, "{FFFFFF}Carrier Elevator", "{FFFFFF}Bridge\nHanger\nLower Deck", "Select", "Cancel");
  1456.         }
  1457.         else if(GetPlayerLanguage[playerid] == RUSSIAN)
  1458.         {
  1459.             ShowPlayerDialog(playerid, ELEVATOR_DIALOG2, DIALOG_STYLE_LIST, "{FFFFFF}Перевозчик Лифт", "{FFFFFF}шлюз\nкронштейн\nнижняя палуба", "выбирать", "отменить");
  1460.         }
  1461.     }
  1462.     return 1;
  1463. }
  1464.  
  1465. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  1466. {
  1467.     if(dialogid == LANGUAGE_DIALOG)
  1468.     {
  1469.         if(response)
  1470.         {
  1471.             switch(listitem)
  1472.             {
  1473.                 case 0: //English
  1474.                 {
  1475.                     GetPlayerLanguage[playerid] = ENGLISH;
  1476.                     CheckIfAccountExists(playerid);
  1477.                     return 1;
  1478.                 }
  1479.                 case 1: //Russian
  1480.                 {
  1481.                     GetPlayerLanguage[playerid] = RUSSIAN;
  1482.                     SendClientMessage(playerid, YELLOW, "Примечание: Этот сервер использует Google Translate."); //Note: This server uses Google Translate.
  1483.                     CheckIfAccountExists(playerid);
  1484.                     return 1;
  1485.                 }
  1486.             }
  1487.         }
  1488.         return 1;
  1489.     }
  1490.     if(dialogid == REGISTER_DIALOG)
  1491.     {
  1492.         if(response)
  1493.         {
  1494.             if(strlen(inputtext) < 3 || strlen(inputtext) > 24)
  1495.             {
  1496.                 if(GetPlayerLanguage[playerid] == ENGLISH)
  1497.                 {
  1498.                     SendClientMessage(playerid, RED, "Error: Your password MUST be between 3-24 characters.");
  1499.                 }
  1500.                 else if(GetPlayerLanguage[playerid] == RUSSIAN)
  1501.                 {
  1502.                     SendClientMessage(playerid, RED, "Ошибка: Ваш пароль должен быть в пределах 3-24 символов.");
  1503.                 }
  1504.                 ShowRegisterDialog(playerid);
  1505.                 return 1;
  1506.             }
  1507.             else if(strlen(inputtext) >= 3 && strlen(inputtext) <= 24)
  1508.             {
  1509.                 RegisterPlayer(playerid, inputtext);
  1510.             }
  1511.             return 1;
  1512.         }
  1513.         else if(!response)
  1514.         {
  1515.             new string[128];
  1516.             if(GetPlayerLanguage[playerid] == ENGLISH)
  1517.             {
  1518.                 SendClientMessage(playerid, RED, "Error: You MUST register an account before you can spawn.");
  1519.             }
  1520.             else if(GetPlayerLanguage[playerid] == RUSSIAN)
  1521.             {
  1522.                 SendClientMessage(playerid, RED, "Ошибка: Вы должны зарегистрироваться счета, перед нерест.");
  1523.             }
  1524.             foreach(new id : Player)
  1525.             {
  1526.                 if(GetPlayerLanguage[id] == ENGLISH)
  1527.                 {
  1528.                     format(string, sizeof(string), "Server: %s (%d) has been kicked from the server. Reason: Failed to Register", GetUserName(playerid), playerid);
  1529.                     SendClientMessage(id, RED, string);
  1530.                 }
  1531.                 else if(GetPlayerLanguage[id] == RUSSIAN)
  1532.                 {
  1533.                     format(string, sizeof(string), "Сервер: %s (%d) нанесен удар с сервера. Причина: не удалось зарегистрировать", GetUserName(playerid), playerid);
  1534.                     SendClientMessage(id, RED, string);
  1535.                 }
  1536.             }
  1537.             Kick(playerid);
  1538.         }
  1539.         return 1;
  1540.     }
  1541.     if(dialogid == LOGIN_DIALOG)
  1542.     {
  1543.         if(response)
  1544.         {
  1545.             if(!strlen(inputtext))
  1546.             {
  1547.                 if(GetPlayerLanguage[playerid] == ENGLISH)
  1548.                 {
  1549.                     SendClientMessage(playerid, RED, "Error: You MUST enter a password.");
  1550.                 }
  1551.                 else if(GetPlayerLanguage[playerid] == RUSSIAN)
  1552.                 {
  1553.                     SendClientMessage(playerid, RED, "Ошибка: Вы должны ввести пароль.");
  1554.                 }
  1555.                 ShowLoginDialog(playerid);
  1556.                 return 1;
  1557.             }
  1558.             LoadPlayerAccount(playerid);
  1559.             if(AccountInfo[playerid][user_pass] == udb_hash(inputtext))
  1560.             {
  1561.                 LoginPlayer(playerid);
  1562.             }
  1563.             else
  1564.             {
  1565.                 if(GetPlayerPassFails[playerid] < 3)
  1566.                 {
  1567.                     if(GetPlayerLanguage[playerid] == ENGLISH)
  1568.                     {
  1569.                         SendClientMessage(playerid, RED, "Error: Incorrect password.");
  1570.                     }
  1571.                     else if(GetPlayerLanguage[playerid] == RUSSIAN)
  1572.                     {
  1573.                         SendClientMessage(playerid, RED, "Ошибка: неверный пароль.");
  1574.                     }
  1575.                     ShowLoginDialog(playerid);
  1576.                     GetPlayerPassFails[playerid]++;
  1577.                 }
  1578.                 else
  1579.                 {
  1580.                     if(GetPlayerLanguage[playerid] == ENGLISH)
  1581.                     {
  1582.                         SendClientMessage(playerid, RED, "Error: Incorrect password x3.");
  1583.                     }
  1584.                     else if(GetPlayerLanguage[playerid] == RUSSIAN)
  1585.                     {
  1586.                         SendClientMessage(playerid, RED, "Ошибка: неверный пароль x3.");
  1587.                     }
  1588.                     foreach(new id : Player)
  1589.                     {
  1590.                         new string[128];
  1591.                         if(GetPlayerLanguage[id] == ENGLISH)
  1592.                         {
  1593.                             format(string, sizeof(string), "Server: %s (%d) has been kicked from the server. Reason: Incorrect password x3", GetUserName(playerid), playerid);
  1594.                             SendClientMessage(id, RED, string);
  1595.                         }
  1596.                         else if(GetPlayerLanguage[id] == RUSSIAN)
  1597.                         {
  1598.                             format(string, sizeof(string), "Сервер: %s (%d) нанесен удар с сервера. Причина: Неверный пароль x3", GetUserName(playerid), playerid);
  1599.                             SendClientMessage(id, RED, string);
  1600.                         }
  1601.                     }
  1602.                     Kick(playerid);
  1603.                 }
  1604.             }
  1605.             return 1;
  1606.         }
  1607.         else if(!response)
  1608.         {
  1609.             if(GetPlayerLanguage[playerid] == ENGLISH)
  1610.             {
  1611.                 SendClientMessage(playerid, RED, "Error: You MUST login before you can spawn.");
  1612.             }
  1613.             else if(GetPlayerLanguage[playerid] == RUSSIAN)
  1614.             {
  1615.                 SendClientMessage(playerid, RED, "Ошибка: Вы должны зарегистрироваться прежде чем вы сможете нерест.");
  1616.             }
  1617.             foreach(new id : Player)
  1618.             {
  1619.                 new string[128];
  1620.                 if(GetPlayerLanguage[id] == ENGLISH)
  1621.                 {
  1622.                     format(string, sizeof(string), "Server: %s (%d) has been kicked from the server. Reason: Failed to Login", GetUserName(playerid), playerid);
  1623.                     SendClientMessage(id, RED, string);
  1624.                 }
  1625.                 else if(GetPlayerLanguage[id] == RUSSIAN)
  1626.                 {
  1627.                     format(string, sizeof(string), "Сервер: %s (%d) нанесен удар с сервера. Причина: не удалось Войти", GetUserName(playerid), playerid);
  1628.                     SendClientMessage(id, RED, string);
  1629.                 }
  1630.             }
  1631.             Kick(playerid);
  1632.         }
  1633.         return 1;
  1634.     }
  1635.     if(dialogid == RULES_DIALOG)
  1636.     {
  1637.         if(!response)
  1638.         {
  1639.             if(GetPlayerLanguage[playerid] == ENGLISH)
  1640.             {
  1641.                 SendClientMessage(playerid, RED, "Error: You MUST accept the server rules.");
  1642.             }
  1643.             else if(GetPlayerLanguage[playerid] == RUSSIAN)
  1644.             {
  1645.                 SendClientMessage(playerid, RED, "Ошибка: Вы должны принять правила сервера.");
  1646.             }
  1647.             foreach(new id : Player)
  1648.             {
  1649.                 new string[128];
  1650.                 if(GetPlayerLanguage[id] == ENGLISH)
  1651.                 {
  1652.                     format(string, sizeof(string), "Server: %s (%d) has been kicked from the server. Reason: Declined rules", GetUserName(playerid), playerid);
  1653.                     SendClientMessage(id, RED, string);
  1654.                 }
  1655.                 else if(GetPlayerLanguage[id] == RUSSIAN)
  1656.                 {
  1657.                     format(string, sizeof(string), "Сервер: %s (%d) нанесен удар с сервера. Причина: Отклонено правил", GetUserName(playerid), playerid);
  1658.                     SendClientMessage(id, RED, string);
  1659.                 }
  1660.             }
  1661.             Kick(playerid);
  1662.         }
  1663.         return 1;
  1664.     }
  1665.     if(dialogid == PASS_DIALOG)
  1666.     {
  1667.         if(response)
  1668.         {
  1669.             if(!strlen(inputtext))
  1670.             {
  1671.                 if(GetPlayerLanguage[playerid] == ENGLISH)
  1672.                 {
  1673.                     SendClientMessage(playerid, RED, "Error: You MUST enter a password.");
  1674.                     return cmd_pass(playerid, "");
  1675.                 }
  1676.                 else if(GetPlayerLanguage[playerid] == RUSSIAN)
  1677.                 {
  1678.                     SendClientMessage(playerid, RED, "Ошибка: Вы должны ввести пароль.");
  1679.                     return cmd_pass(playerid, "");
  1680.                 }
  1681.                 return 1;
  1682.             }
  1683.             if(strlen(inputtext) < 3 || strlen(inputtext) > 24)
  1684.             {
  1685.                 if(GetPlayerLanguage[playerid] == ENGLISH)
  1686.                 {
  1687.                     SendClientMessage(playerid, RED, "Error: Your password MUST be between 3-24 characters.");
  1688.                     return cmd_pass(playerid, "");
  1689.                 }
  1690.                 else if(GetPlayerLanguage[playerid] == RUSSIAN)
  1691.                 {
  1692.                     SendClientMessage(playerid, RED, "Ошибка: Ваш пароль должен быть в пределах 3-24 символов.");
  1693.                     return cmd_pass(playerid, "");
  1694.                 }
  1695.             }
  1696.             AccountInfo[playerid][user_pass] = udb_hash(inputtext);
  1697.            
  1698.             SavePlayerAccount(playerid);
  1699.    
  1700.             if(GetPlayerLanguage[playerid] == ENGLISH) return SendClientMessage(playerid, YELLOW, "Server: Your password has been changed.");
  1701.             else if(GetPlayerLanguage[playerid] == RUSSIAN) return SendClientMessage(playerid, YELLOW, "Сервер: Ваш пароль был изменен.");
  1702.         }
  1703.         return 1;
  1704.     }
  1705.     if(dialogid == ELEVATOR_DIALOG1) //Ship 1
  1706.     {
  1707.         if(response)
  1708.         {
  1709.             switch(listitem)
  1710.             {
  1711.                 case 0: //Bridge
  1712.                 {
  1713.                     SetPlayerPos(playerid, -2328.7852, 1720.5139, 17.1891);
  1714.                     SetPlayerFacingAngle(playerid, 358.3528);
  1715.                     ShowPlayerDialog(playerid, 32768,0, " ", " ", " ", " ");
  1716.                     return 1;
  1717.                 }
  1718.                 case 1: //Hanger
  1719.                 {
  1720.                     SetPlayerPos(playerid, -2326.2107, 1722.2156, 10.1563);
  1721.                     SetPlayerFacingAngle(playerid, 357.4128);
  1722.                     ShowPlayerDialog(playerid, 32768,0, " ", " ", " ", " ");
  1723.                     return 1;
  1724.                 }
  1725.                 case 2: //Lower Deck
  1726.                 {
  1727.                     SetPlayerPos(playerid, -2371.0278, 1714.8348, 2.0812);
  1728.                     SetPlayerFacingAngle(playerid, 90.1602);
  1729.                     ShowPlayerDialog(playerid, 32768,0, " ", " ", " ", " ");
  1730.                     return 1;
  1731.                 }
  1732.             }
  1733.         }
  1734.         return 1;
  1735.     }
  1736.     if(dialogid == ELEVATOR_DIALOG2) //Ship 2
  1737.     {
  1738.         if(response)
  1739.         {
  1740.             switch(listitem)
  1741.             {
  1742.                 case 0: //Bridge
  1743.                 {
  1744.                     SetPlayerPos(playerid, -2508.2852, 1806.4326, 17.1891);
  1745.                     SetPlayerFacingAngle(playerid, 270.8182);
  1746.                     ShowPlayerDialog(playerid, 32768,0, " ", " ", " ", " ");
  1747.                     return 1;
  1748.                 }
  1749.                 case 1: //Hanger
  1750.                 {
  1751.                     SetPlayerPos(playerid, -2506.4263, 1803.8979, 10.2063);
  1752.                     SetPlayerFacingAngle(playerid, 269.6310);
  1753.                     ShowPlayerDialog(playerid, 32768,0, " ", " ", " ", " ");
  1754.                     return 1;
  1755.                 }
  1756.                 case 2: //Lower Deck
  1757.                 {
  1758.                     SetPlayerPos(playerid, -2513.8660, 1849.9811, 2.1813);
  1759.                     SetPlayerFacingAngle(playerid, 358.3051);
  1760.                     ShowPlayerDialog(playerid, 32768,0, " ", " ", " ", " ");
  1761.                     return 1;
  1762.                 }
  1763.             }
  1764.         }
  1765.     }
  1766.     return 0;
  1767. }
  1768.  
  1769. public TurnOfAntiSpawnKill(playerid)
  1770. {
  1771.     SetPlayerHealth(playerid, 100.00);
  1772.     if(GetPlayerLanguage[playerid] == ENGLISH)
  1773.     {
  1774.         SendClientMessage(playerid, RED, "Anti-Spawn Kill: OFF");
  1775.     }
  1776.     else if(GetPlayerLanguage[playerid] == RUSSIAN)
  1777.     {
  1778.         SendClientMessage(playerid, RED, "Анти-икру убийство: от");
  1779.     }
  1780.     IsAntiSpawnKillOn[playerid] = false;
  1781.     return 1;
  1782. }
  1783.  
  1784. public ScanForHackers()
  1785. {
  1786.     for(new i = 0; i < MAX_PLAYERS; i++)
  1787.     {
  1788.         if(IsPlayerLoggedIn[i] == true && GetPlayerState(i) == PLAYER_STATE_SPAWNED)
  1789.         {
  1790.             //Anti-Health Cheat
  1791.             new Float:hp;
  1792.             GetPlayerHealth(i, hp);
  1793.             if(hp > 100.00)
  1794.             {
  1795.                 if(IsAdminOnDuty[i] == true) continue;
  1796.                 if(IsAntiSpawnKillOn[i] == true) continue;
  1797.                 AutoBanPlayer(i, "Health Hacks/Здоровье хаки");
  1798.                 continue;
  1799.             }
  1800.  
  1801.             //Anti-Jetpack Cheat
  1802.             if(GetPlayerSpecialAction(i) == SPECIAL_ACTION_USEJETPACK)
  1803.             {
  1804.                 if(AccountInfo[i][user_level] == PLAYER_LEVEL)
  1805.                 {
  1806.                     AutoBanPlayer(i, "Jetpack Hacks/струяпакет хаки");
  1807.                     continue;
  1808.                 }
  1809.             }
  1810.  
  1811.             //Anti-Vehicle Health Cheat
  1812.             if(IsPlayerInAnyVehicle(i))
  1813.             {
  1814.                 new Float:vhp;
  1815.                 GetVehicleHealth(GetPlayerVehicleID(i), vhp);
  1816.                 if(vhp > 1000.00)
  1817.                 {
  1818.                     AutoBanPlayer(i, "Vehicle Health Hacks/Автомобиль Здоровье Хаки");
  1819.                     continue;
  1820.                 }
  1821.             }
  1822.  
  1823.             //Anti-Weapon Cheat
  1824.             if(AccountInfo[i][user_level] != VIP_LEVEL)
  1825.             {
  1826.                 if(GetPlayerWeapon(i) == 24 || GetPlayerWeapon(i) == 31 || GetPlayerWeapon(i) == 34 || GetPlayerWeapon(i) == 36)
  1827.                 {
  1828.                     AutoBanPlayer(i, "Weapon Hacks/оружие хаки");
  1829.                     continue;
  1830.                 }
  1831.             }
  1832.             for(new w; w < sizeof(BannableWeapons); w++)
  1833.             {
  1834.                 if(GetPlayerWeapon(i) == BannableWeapons[w])
  1835.                 {
  1836.                     AutoBanPlayer(i, "Weapon Hacks/оружие хаки");
  1837.                     continue;
  1838.                 }
  1839.             }
  1840.  
  1841.             //Anti-Ammo Cheat
  1842.             {
  1843.                 if(GetPlayerWeapon(i) == 16) //Grenades
  1844.                 {
  1845.                     new ammo = GetPlayerAmmo(i);
  1846.                     if(ammo >= 31)
  1847.                     {
  1848.                         AutoBanPlayer(i, "Ammo Hacks/Боеприпасы хаки");
  1849.                         continue;
  1850.                     }
  1851.                 }
  1852.                 else if(GetPlayerWeapon(i) == 22) //9mm
  1853.                 {
  1854.                     new ammo = GetPlayerAmmo(i);
  1855.                     if(ammo >= 251)
  1856.                     {
  1857.                         AutoBanPlayer(i, "Ammo Hacks/Боеприпасы хаки");
  1858.                         continue;
  1859.                     }
  1860.                 }
  1861.                 else if(GetPlayerWeapon(i) == 29) //MP5
  1862.                 {
  1863.                     new ammo = GetPlayerAmmo(i);
  1864.                     if(ammo >= 1501)
  1865.                     {
  1866.                         AutoBanPlayer(i, "Ammo Hacks/Боеприпасы хаки");
  1867.                         continue;
  1868.                     }
  1869.                 }
  1870.                 else if(GetPlayerWeapon(i) == 30) //AK47
  1871.                 {
  1872.                     new ammo = GetPlayerAmmo(i);
  1873.                     if(ammo >= 501)
  1874.                     {
  1875.                         AutoBanPlayer(i, "Ammo Hacks/Боеприпасы хаки");
  1876.                         continue;
  1877.                     }
  1878.                 }
  1879.                 else if(GetPlayerWeapon(i) == 33) //Country Rifle
  1880.                 {
  1881.                     new ammo = GetPlayerAmmo(i);
  1882.                     if(ammo >= 501)
  1883.                     {
  1884.                         AutoBanPlayer(i, "Ammo Hacks/Боеприпасы хаки");
  1885.                         continue;
  1886.                     }
  1887.                 }
  1888.                 else if(GetPlayerWeapon(i) == 35) //RPG
  1889.                 {
  1890.                     new ammo = GetPlayerAmmo(i);
  1891.                     if(ammo >= 11)
  1892.                     {
  1893.                         AutoBanPlayer(i, "Ammo Hacks/Боеприпасы хаки");
  1894.                         continue;
  1895.                     }
  1896.                 }
  1897.                 else if(GetPlayerWeapon(i) == 24) //Desert Eagle
  1898.                 {
  1899.                     new ammo = GetPlayerAmmo(i);
  1900.                     if(ammo >= 751)
  1901.                     {
  1902.                         AutoBanPlayer(i, "Ammo Hacks/Боеприпасы хаки");
  1903.                         continue;
  1904.                     }
  1905.                 }
  1906.                 else if(GetPlayerWeapon(i) == 31) //M4
  1907.                 {
  1908.                     new ammo = GetPlayerAmmo(i);
  1909.                     if(ammo >= 1501)
  1910.                     {
  1911.                         AutoBanPlayer(i, "Ammo Hacks/Боеприпасы хаки");
  1912.                         continue;
  1913.                     }
  1914.                 }
  1915.                 else if(GetPlayerWeapon(i) == 34) //Sniper
  1916.                 {
  1917.                     new ammo = GetPlayerAmmo(i);
  1918.                     if(ammo >= 1501)
  1919.                     {
  1920.                         AutoBanPlayer(i, "Ammo Hacks/Боеприпасы хаки");
  1921.                         continue;
  1922.                     }
  1923.                 }
  1924.                 else if(GetPlayerWeapon(i) == 36) //Heat Seaking RPG
  1925.                 {
  1926.                     new ammo = GetPlayerAmmo(i);
  1927.                     if(ammo >= 31)
  1928.                     {
  1929.                         AutoBanPlayer(i, "Ammo Hacks/Боеприпасы хаки");
  1930.                         continue;
  1931.                     }
  1932.                 }
  1933.             }
  1934.             //Anti-Money Cheat
  1935.             if(GetPlayerMoney(i) > 0)
  1936.             {
  1937.                 AutoBanPlayer(i, "Money Hacks/деньги хаки");
  1938.                 continue;
  1939.             }
  1940.         }
  1941.     }
  1942.     return 1;
  1943. }
  1944.  
  1945. CMD:cmds(playerid, params[])
  1946. {
  1947.     ShowPlayerDialog(playerid, CMDS_DIALOG, DIALOG_STYLE_MSGBOX, "{FFFFFF}Server Commands/команды сервера", "{FFFFFF}/cmds /help /rules /stats /r /language /pass /report /changeteam", "Ok/хорошо", "");
  1948.     return true;
  1949. }
  1950.  
  1951. CMD:acmds(playerid, params[])
  1952. {
  1953.     if(AccountInfo[playerid][user_level] < ADMIN_LEVEL) return SendClientMessage(playerid, RED, "Error: This is a restricted admin command.");
  1954.     ShowPlayerDialog(playerid, ACMDS_DIALOG, DIALOG_STYLE_MSGBOX, "{FFFFFF}Admin Commands/Админ Команды", "{FFFFFF}/acmds /a /kick /ban /unban /warn /explode /goto /get /(spec)off /duty /respawn /ann /jet", "Ok/хорошо", "");
  1955.     return true;
  1956. }
  1957.  
  1958. CMD:help(playerid, params[])
  1959. {
  1960.     if(GetPlayerLanguage[playerid] == ENGLISH)
  1961.     {
  1962.         if(GetPlayerClass[playerid] == TEAM_COUNTER)
  1963.         {
  1964.             ShowPlayerDialog(playerid, HELP_DIALOG, DIALOG_STYLE_MSGBOX, "{FFFFFF}Server Help", "{FFFFFF}You're a Counter Terrorist, you need to defend the blue zone and attack the red zone. Your opponents are red color players(admins are purple).\nUse /stats to view player statistics. Use /pass to change your password. Use /report to report a player.\nUse /langauge to change the server language. Use /r to communicate with team members.", "Ok", "");
  1965.             return true;
  1966.         }
  1967.         else if(GetPlayerClass[playerid] == TEAM_TERROR)
  1968.         {
  1969.             ShowPlayerDialog(playerid, HELP_DIALOG, DIALOG_STYLE_MSGBOX, "{FFFFFF}Server Help", "{FFFFFF}You're a Terrorist, you need to defend the red zone and attack the blue zone. Your opponents are blue color players(admins are purple).\nUse /stats to view player statistics. Use /pass to change your password. Use /report to report a player.\nUse /langauge to change the server language. Use /r to communicate with team members.", "Ok", "");
  1970.         }
  1971.         return true;
  1972.     }
  1973.     else if(GetPlayerLanguage[playerid] == RUSSIAN)
  1974.     {
  1975.         if(GetPlayerClass[playerid] == TEAM_COUNTER)
  1976.         {
  1977.             ShowPlayerDialog(playerid, HELP_DIALOG, DIALOG_STYLE_MSGBOX, "{FFFFFF}справке по серверу", "{FFFFFF}Ты контртеррористическая, необходимо защитить синюю зону и атаковать красной зоне. Ваши противники красных игроков цветом(админы фиолетовый).\nИспользуйте /stats чтобы посмотреть в статистике игроков. Использовать от /pass до смены пароля. Используйте /report сообщить игроку.\nИспользуйте /language изменить сервер языка. Используйте /r общаться с членами команды.", "хорошо", "");
  1978.             return true;
  1979.         }
  1980.         else if(GetPlayerClass[playerid] == TEAM_TERROR)
  1981.         {
  1982.             ShowPlayerDialog(playerid, HELP_DIALOG, DIALOG_STYLE_MSGBOX, "{FFFFFF}справке по серверу", "{FFFFFF}Ты террорист, вы должны защищать красную зону и атаковать синей зоне. Ваши оппоненты синего цвета игроков(админы фиолетовый).\nИспользуйте /stats чтобы посмотреть в статистике игроков. Использовать от /pass до смены пароля. Используйте /report сообщить игроку.\nИспользуйте /language изменить сервер языка. Используйте /r общаться с членами команды.", "хорошо", "");
  1983.         }
  1984.     }
  1985.     return true;
  1986. }
  1987.  
  1988. CMD:rules(playerid, params[])
  1989. {
  1990.     ShowRulesDialog(playerid);
  1991.     return true;
  1992. }
  1993.  
  1994. CMD:stats(playerid, params[])
  1995. {
  1996.     if(IsPlayerLoggedIn[playerid] == false)
  1997.     {
  1998.         if(GetPlayerClass[playerid] == TEAM_COUNTER)
  1999.         {
  2000.             SendClientMessage(playerid, RED, "Error: You MUST be logged in to use this command.");
  2001.             return true;
  2002.         }
  2003.         else if(GetPlayerClass[playerid] == TEAM_TERROR)
  2004.         {
  2005.             SendClientMessage(playerid, RED, "Ошибка: Вы должны войти в систему, чтобы использовать эту команду.");
  2006.         }
  2007.         return true;
  2008.     }
  2009.     new string[128], string2[128], targetid;
  2010.     if(!sscanf(params, "u", targetid))
  2011.     {
  2012.         if(GetPlayerLanguage[playerid] == ENGLISH)
  2013.         {
  2014.             format(string, sizeof(string), "{FFFFFF}%s's Statistics", GetUserName(targetid));
  2015.             format(string2, sizeof(string2), "{FFFFFF}Score: %d\nKills: %d\nDeaths: %d\nStreaks: %d", GetPlayerScore(targetid), AccountInfo[targetid][user_kills], AccountInfo[targetid][user_deaths], AccountInfo[targetid][user_streaks]);
  2016.             ShowPlayerDialog(playerid, STATS_DIALOG, DIALOG_STYLE_MSGBOX, string, string2, "Ok", "");
  2017.             return true;
  2018.         }
  2019.         else if(GetPlayerLanguage[playerid] == RUSSIAN)
  2020.         {
  2021.             format(string, sizeof(string), "{FFFFFF}%s Статистике", GetUserName(targetid));
  2022.             format(string2, sizeof(string2), "{FFFFFF}счет: %d\nУбийства: %d\nСмертей: %d\nполосы: %d", GetPlayerScore(targetid), AccountInfo[targetid][user_kills], AccountInfo[targetid][user_deaths], AccountInfo[targetid][user_streaks]);
  2023.             ShowPlayerDialog(playerid, STATS_DIALOG, DIALOG_STYLE_MSGBOX, string, string2, "хорошо", "");
  2024.         }
  2025.         return true;
  2026.     }
  2027.     else
  2028.     {
  2029.         if(GetPlayerLanguage[playerid] == ENGLISH)
  2030.         {
  2031.             format(string, sizeof(string), "{FFFFFF}%s's Statistics", GetUserName(playerid));
  2032.             format(string2, sizeof(string2), "{FFFFFF}Score: %d\nKills: %d\nDeaths: %d\nStreaks: %d", GetPlayerScore(playerid), AccountInfo[playerid][user_kills], AccountInfo[playerid][user_deaths], AccountInfo[playerid][user_streaks]);
  2033.             ShowPlayerDialog(playerid, STATS_DIALOG, DIALOG_STYLE_MSGBOX, string, string2, "Ok", "");
  2034.             return true;
  2035.         }
  2036.         else if(GetPlayerLanguage[playerid] == RUSSIAN)
  2037.         {
  2038.             format(string, sizeof(string), "{FFFFFF}%s Статистике", GetUserName(playerid));
  2039.             format(string2, sizeof(string2), "{FFFFFF}счет: %d\nУбийства: %d\nСмертей: %d\nполосы: %d", GetPlayerScore(playerid), AccountInfo[playerid][user_kills], AccountInfo[playerid][user_deaths], AccountInfo[playerid][user_streaks]);
  2040.             ShowPlayerDialog(playerid, STATS_DIALOG, DIALOG_STYLE_MSGBOX, string, string2, "хорошо", "");
  2041.         }
  2042.     }
  2043.     return true;
  2044. }
  2045.  
  2046. CMD:r(playerid, params[])
  2047. {
  2048.     new message[64], string[128];
  2049.     if(GetPlayerLanguage[playerid] == ENGLISH)
  2050.     {
  2051.         if(GetPlayerState(playerid) == PLAYER_STATE_NONE) return SendClientMessage(playerid, RED, "Error: You MUST be spawned to use this command.");
  2052.         if(sscanf(params, "s[64]", message)) return SendClientMessage(playerid, RED, "Usage: /r [message]");
  2053.         if(strlen(message) < 1 || strlen(message) > 64) return SendClientMessage(playerid, RED, "Error: Your message must be between 1-64 characters.");
  2054.         if(GetPlayerClass[playerid] == TEAM_COUNTER)
  2055.         {
  2056.             format(string, sizeof(string), "%s @ radio: %s", GetUserName(playerid), message);
  2057.             CounterRadio(string);
  2058.             return true;
  2059.         }
  2060.         else if(GetPlayerClass[playerid] == TEAM_TERROR)
  2061.         {
  2062.             format(string, sizeof(string), "%s @ radio: %s", GetUserName(playerid), message);
  2063.             TerrorRadio(string);
  2064.         }
  2065.         return true;
  2066.     }
  2067.     else if(GetPlayerLanguage[playerid] == RUSSIAN)
  2068.     {
  2069.         if(GetPlayerState(playerid) == PLAYER_STATE_NONE) return SendClientMessage(playerid, RED, "Ошибка: Вы должны быть порождены, чтобы использовать эту команду.");
  2070.         if(sscanf(params, "s[64]", message)) return SendClientMessage(playerid, RED, "Использование: /r [сообщение]");
  2071.         if(strlen(message) < 1 || strlen(message) > 64) return SendClientMessage(playerid, RED, "Ошибка: Ваше сообщение должно быть в пределах 1-64 символов.");
  2072.         if(GetPlayerClass[playerid] == TEAM_COUNTER)
  2073.         {
  2074.             format(string, sizeof(string), "%s @ радио: %s", GetUserName(playerid), message);
  2075.             CounterRadio(string);
  2076.             return true;
  2077.         }
  2078.         else if(GetPlayerClass[playerid] == TEAM_TERROR)
  2079.         {
  2080.             format(string, sizeof(string), "%s @ радио: %s", GetUserName(playerid), message);
  2081.             TerrorRadio(string);
  2082.         }
  2083.     }
  2084.     return true;
  2085. }
  2086.  
  2087. CMD:language(playerid, params[])
  2088. {
  2089.     if(GetPlayerLanguage[playerid] == ENGLISH)
  2090.     {
  2091.         GetPlayerLanguage[playerid] = RUSSIAN;
  2092.         SendClientMessage(playerid, YELLOW, "Сервер: Язык сервера был установлен в русский.");
  2093.         return true;
  2094.     }
  2095.     else if(GetPlayerLanguage[playerid] == RUSSIAN)
  2096.     {
  2097.         GetPlayerLanguage[playerid] = ENGLISH;
  2098.         SendClientMessage(playerid, YELLOW, "Server: The server language has been set to English.");
  2099.     }
  2100.     return true;
  2101. }
  2102.  
  2103. CMD:pass(playerid, params[])
  2104. {
  2105.     if(IsPlayerLoggedIn[playerid] == false)
  2106.     {
  2107.         if(GetPlayerClass[playerid] == TEAM_COUNTER)
  2108.         {
  2109.             SendClientMessage(playerid, RED, "Error: You MUST be logged in to use this command.");
  2110.             return true;
  2111.         }
  2112.         else if(GetPlayerClass[playerid] == TEAM_TERROR)
  2113.         {
  2114.             SendClientMessage(playerid, RED, "Ошибка: Вы должны войти в систему, чтобы использовать эту команду.");
  2115.         }
  2116.         return true;
  2117.     }
  2118.     if(GetPlayerLanguage[playerid] == ENGLISH)
  2119.     {
  2120.         ShowPlayerDialog(playerid, PASS_DIALOG, DIALOG_STYLE_INPUT, "{FFFFFF}Change Password", "{FFFFFF}Please enter a new password below:", "Change", "Cancel");
  2121.         return true;
  2122.     }
  2123.     else if(GetPlayerLanguage[playerid] == RUSSIAN)
  2124.     {
  2125.         ShowPlayerDialog(playerid, PASS_DIALOG, DIALOG_STYLE_INPUT, "{FFFFFF}Изменить пароль", "{FFFFFF}Пожалуйста, введите новый пароль в поле ниже:", "изменение", "отменить");
  2126.     }
  2127.     return true;
  2128. }
  2129.  
  2130. CMD:set(playerid, params[])
  2131. {
  2132.     new targetid, field[6];
  2133.     if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, WHITE, "SERVER: Unknown command.");
  2134.     if(sscanf(params, "us[6]", targetid, field)) return SendClientMessage(playerid, RED, "Usage: /set [name/id] [admin/vip]");
  2135.     if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, RED, "Error: Player not found.");
  2136.     if(!strcmp(field, "admin", true))
  2137.     {
  2138.         if(AccountInfo[targetid][user_level] == VIP_LEVEL)
  2139.         {
  2140.             AccountInfo[targetid][user_level] = PLAYER_LEVEL;
  2141.         }
  2142.         if(AccountInfo[targetid][user_level] == PLAYER_LEVEL)
  2143.         {
  2144.             AccountInfo[targetid][user_level] = ADMIN_LEVEL;
  2145.             SavePlayerAccount(targetid);
  2146.             new string[128];
  2147.             format(string, sizeof(string), "Server: %s (%d) has been promoted to admin.", GetUserName(targetid), targetid);
  2148.             SendClientMessage(playerid, WHITE, string);
  2149.             SendClientMessage(targetid, YELLOW, "Admin: You have been promoted to admin!");
  2150.             return true;
  2151.         }
  2152.         else if(AccountInfo[targetid][user_level] == ADMIN_LEVEL)
  2153.         {
  2154.             AccountInfo[targetid][user_level] = PLAYER_LEVEL;
  2155.             SavePlayerAccount(targetid);
  2156.             new string[128];
  2157.             format(string, sizeof(string), "Server: %s (%d) has been demoted from admin.", GetUserName(targetid), targetid);
  2158.             SendClientMessage(playerid, YELLOW, string);
  2159.             SendClientMessage(targetid, RED, "Admin: You have been demoted from admin!");
  2160.         }
  2161.         return true;
  2162.     }
  2163.     if(!strcmp(field, "vip", true))
  2164.     {
  2165.         if(AccountInfo[targetid][user_level] == ADMIN_LEVEL)
  2166.         {
  2167.             AccountInfo[targetid][user_level] = PLAYER_LEVEL;
  2168.         }
  2169.         if(AccountInfo[targetid][user_level] == PLAYER_LEVEL)
  2170.         {
  2171.             AccountInfo[targetid][user_level] = VIP_LEVEL;
  2172.             SavePlayerAccount(targetid);
  2173.             new string[128];
  2174.             format(string, sizeof(string), "Server: %s (%d) has been promoted to vip.", GetUserName(targetid), targetid);
  2175.             SendClientMessage(playerid, WHITE, string);
  2176.             SendClientMessage(targetid, YELLOW, "Admin: You have been promoted to vip!");
  2177.             return true;
  2178.         }
  2179.         else if(AccountInfo[targetid][user_level] == VIP_LEVEL)
  2180.         {
  2181.             AccountInfo[targetid][user_level] = PLAYER_LEVEL;
  2182.             SavePlayerAccount(targetid);
  2183.             new string[128];
  2184.             format(string, sizeof(string), "Server: %s (%d) has been demoted from vip.", GetUserName(targetid), targetid);
  2185.             SendClientMessage(playerid, YELLOW, string);
  2186.             SendClientMessage(targetid, RED, "Admin: You have been demoted from vip!");
  2187.         }
  2188.     }
  2189.     return true;
  2190. }
  2191.  
  2192. CMD:report(playerid, params[])
  2193. {
  2194.     new targetid, report[64], string[128];
  2195.     if(sscanf(params, "us[64]", targetid, report))
  2196.     {
  2197.         if(GetPlayerLanguage[playerid] == ENGLISH)
  2198.         {
  2199.             SendClientMessage(playerid, RED, "Usage: /report [name/id] [message]");
  2200.             return true;
  2201.         }
  2202.         else if(GetPlayerLanguage[playerid] == RUSSIAN)
  2203.         {
  2204.             SendClientMessage(playerid, RED, "Использование: /report [название] [сообщение]");
  2205.         }
  2206.         return true;
  2207.     }
  2208.     if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, RED, "Error: Player not found.");
  2209.     if(strlen(report) < 3 || strlen(report) > 64)
  2210.     {
  2211.         if(GetPlayerLanguage[playerid] == ENGLISH)
  2212.         {
  2213.             SendClientMessage(playerid, RED, "Error: Your report MUST be between 3-64 characters.");
  2214.             return true;
  2215.         }
  2216.         else if(GetPlayerLanguage[playerid] == RUSSIAN)
  2217.         {
  2218.             SendClientMessage(playerid, RED, "Ошибка: Ваше сообщение должно быть в пределах 3-64 символов.");
  2219.         }
  2220.         return true;
  2221.     }
  2222.     format(string, sizeof(string), "Report: %s (%d) reported %s (%d) for: %s", GetUserName(playerid), playerid, GetUserName(targetid), targetid, report);
  2223.     AdminRadio(string);
  2224.     if(GetPlayerLanguage[playerid] == ENGLISH)
  2225.     {
  2226.         SendClientMessage(playerid, ORANGE, "Server: Your report has been sent to all online admins.");
  2227.         return true;
  2228.     }
  2229.     else if(GetPlayerLanguage[playerid] == RUSSIAN)
  2230.     {
  2231.         SendClientMessage(playerid, ORANGE, "Сервер: Ваш доклад был направлен ко всем онлайновым администраторов.");
  2232.     }
  2233.     return true;
  2234. }
  2235.  
  2236. CMD:a(playerid, params[])
  2237. {
  2238.     new message[80], string[128];
  2239.     if(AccountInfo[playerid][user_level] < ADMIN_LEVEL) return SendClientMessage(playerid, RED, "Error: This is a restricted admin command.");
  2240.     if(sscanf(params, "s[80]", message)) return SendClientMessage(playerid, RED, "Usage: /a [message]");
  2241.     if(!strlen(message)) return SendClientMessage(playerid, RED, "Error: You MUST enter a message.");
  2242.     if(strlen(message) < 1 || strlen(message) > 80) return SendClientMessage(playerid, RED, "Error: Your message MUST be between 1-80 characters.");
  2243.     format(string, sizeof(string), "Admin %s: %s", GetUserName(playerid), message);
  2244.     AdminRadio(string);
  2245.     return true;
  2246. }
  2247.  
  2248. CMD:kick(playerid, params[])
  2249. {
  2250.     new targetid, reason[32];
  2251.     if(AccountInfo[playerid][user_level] < ADMIN_LEVEL) return SendClientMessage(playerid, RED, "Error: This is a restricted admin command.");
  2252.     if(sscanf(params, "us[32]", targetid, reason)) return SendClientMessage(playerid, RED, "Usage: /kick [name/id] [reason]");
  2253.     if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, RED, "Error: Player not found.");
  2254.     if(!strlen(reason)) return SendClientMessage(playerid, RED, "Error: You MUST enter a reason.");
  2255.     if(strlen(reason) < 1 || strlen(reason) > 32) return SendClientMessage(playerid, RED, "Error: Your reason MUST be between 1-32 characters.");
  2256.     KickPlayer(targetid, reason);
  2257.     return true;
  2258. }
  2259.  
  2260. CMD:ban(playerid, params[])
  2261. {
  2262.     new targetid, reason[32];
  2263.     if(AccountInfo[playerid][user_level] < ADMIN_LEVEL) return SendClientMessage(playerid, RED, "Error: This is a restricted admin command.");
  2264.     if(sscanf(params, "us[32]", targetid, reason)) return SendClientMessage(playerid, RED, "Usage: /ban [name/id] [reason]");
  2265.     if(AccountInfo[targetid][user_level] == ADMIN_LEVEL) return SendClientMessage(playerid, RED, "Error: You cannot ban admins.");
  2266.     if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, RED, "Error: Player not found.");
  2267.     if(GetPlayerState(targetid) == PLAYER_STATE_NONE) return SendClientMessage(playerid, RED, "Error: Player not spawned.");
  2268.     if(!strlen(reason)) return SendClientMessage(playerid, RED, "Error: You MUST enter a reason.");
  2269.     if(strlen(reason) < 1 || strlen(reason) > 32) return SendClientMessage(playerid, RED, "Error: Your reason MUST be between 1-32 characters.");
  2270.    
  2271.     AccountInfo[targetid][user_banned] = 1;
  2272.     SavePlayerAccount(targetid);
  2273.    
  2274.     new string[128];
  2275.     foreach(new id : Player)
  2276.     {
  2277.         if(GetPlayerLanguage[id] == ENGLISH)
  2278.         {
  2279.             format(string, sizeof(string), "Admin: %s (%d) has been banned from the server. Reason: %s", GetUserName(targetid), targetid, reason);
  2280.             SendClientMessage(id, RED, string);
  2281.         }
  2282.         else if(GetPlayerLanguage[id] == RUSSIAN)
  2283.         {
  2284.             format(string, sizeof(string), "Админ: %s (%d) была запрещена с сервера. Причина: %s", GetUserName(targetid), targetid, reason);
  2285.             SendClientMessage(id, RED, string);
  2286.         }
  2287.     }
  2288.     BanEx(targetid, reason);
  2289.     return true;
  2290. }
  2291.  
  2292. CMD:warn(playerid, params[])
  2293. {
  2294.     new targetid, reason[32], string[128], string2[128];
  2295.     if(AccountInfo[playerid][user_level] < ADMIN_LEVEL) return SendClientMessage(playerid, RED, "Error: This is a restricted admin command.");
  2296.     if(sscanf(params, "us[32]", targetid, reason)) return SendClientMessage(playerid, RED, "Usage: /warn [name/id] [reason]");
  2297.     if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, RED, "Error: Player not found.");
  2298.     if(!strlen(reason)) return SendClientMessage(playerid, RED, "Error: You MUST enter a reason.");
  2299.     if(strlen(reason) < 1 || strlen(reason) > 32) return SendClientMessage(playerid, RED, "Error: Your reason MUST be between 1-32 characters.");
  2300.     if(GetPlayerWarnCount[targetid] < 3)
  2301.     {
  2302.         GetPlayerWarnCount[targetid]++;
  2303.         if(GetPlayerLanguage[playerid] == ENGLISH)
  2304.         {
  2305.             format(string, sizeof(string), "Admin: You been warned by Admin %s for: %s [%d/3]", GetUserName(playerid), reason, GetPlayerWarnCount[playerid]);
  2306.             SendClientMessage(targetid, RED, string);
  2307.         }
  2308.         else if(GetPlayerLanguage[playerid] == RUSSIAN)
  2309.         {
  2310.             format(string, sizeof(string), "Admin: Вы были предупреждены Админ %s за: %s [%d/3]", GetUserName(playerid), reason, GetPlayerWarnCount[playerid]);
  2311.             SendClientMessage(targetid, RED, string);
  2312.         }
  2313.         format(string2, sizeof(string2), "Server: %s has been warned for: %s", GetUserName(targetid), reason);
  2314.         SendClientMessage(playerid, ORANGE, string2);
  2315.         return true;
  2316.     }
  2317.     else if(GetPlayerWarnCount[targetid] == 3)
  2318.     {
  2319.         KickPlayer(targetid, "3 Warnings/Предупреждения");
  2320.     }
  2321.     return true;
  2322. }
  2323.  
  2324. CMD:explode(playerid, params[])
  2325. {
  2326.     new targetid, string[128];
  2327.     if(AccountInfo[playerid][user_level] < ADMIN_LEVEL) return SendClientMessage(playerid, RED, "Error: This is a restricted admin command.");
  2328.     if(sscanf(params, "u", targetid)) return SendClientMessage(playerid, RED, "Usage: /explode [name/id]");
  2329.     if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, RED, "Error: Player not found.");
  2330.     new Float:x, Float:y, Float:z;
  2331.     GetPlayerPos(targetid, x, y, z);
  2332.     CreateExplosion(x, y, z, 6, 5);
  2333.     CreateExplosion(x+2.5, y, z, 6, 2.5);
  2334.     CreateExplosion(x, y+2.5, z, 6, 2.5);
  2335.     CreateExplosion(x, y, z+2.5, 6, 2.5);
  2336.     SetPlayerHealth(targetid, 0.0);
  2337.     foreach(new id : Player)
  2338.     {
  2339.         if(GetPlayerLanguage[id] == ENGLISH)
  2340.         {
  2341.             format(string, sizeof(string), "Server: %s (%d) has died in an unknown explosion...", GetUserName(targetid), targetid);
  2342.             SendClientMessage(id, PINK, string);
  2343.         }
  2344.         else if(GetPlayerLanguage[id] == RUSSIAN)
  2345.         {
  2346.             format(string, sizeof(string), "Сервер: %s (%d) умер в неизвестном взрыв...", GetUserName(targetid), targetid);
  2347.             SendClientMessage(id, PINK, string);
  2348.         }
  2349.     }
  2350.     return true;
  2351. }
  2352.  
  2353. CMD:goto(playerid, params[])
  2354. {
  2355.     new targetid, Float:x, Float:y, Float:z;
  2356.     if(AccountInfo[playerid][user_level] < ADMIN_LEVEL) return SendClientMessage(playerid, RED, "Error: This is a restricted admin command.");
  2357.     if(sscanf(params, "u", targetid)) return SendClientMessage(playerid, RED, "Usage: /goto [name/id]");
  2358.     if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, RED, "Error: Player not found.");
  2359.     GetPlayerPos(targetid, x, y, z);
  2360.     SetPlayerInterior(playerid, GetPlayerInterior(targetid));
  2361.     SetPlayerPos(playerid, x+2, y+2, z+1);
  2362.     return true;
  2363. }
  2364.  
  2365. CMD:get(playerid, params[])
  2366. {
  2367.     new targetid, Float:x, Float:y, Float:z;
  2368.     if(AccountInfo[playerid][user_level] < ADMIN_LEVEL) return SendClientMessage(playerid, RED, "Error: This is a restricted admin command.");
  2369.     if(sscanf(params, "u", targetid)) return SendClientMessage(playerid, RED, "Usage: /get [name/id]");
  2370.     if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, RED, "Error: Player not found.");
  2371.     GetPlayerPos(playerid, x, y, z);
  2372.     SetPlayerInterior(targetid, GetPlayerInterior(playerid));
  2373.     SetPlayerPos(targetid, x+2, y+2, z+1);
  2374.     return true;
  2375. }
  2376.  
  2377. CMD:spec(playerid, params[])
  2378. {
  2379.     new targetid;
  2380.     if(AccountInfo[playerid][user_level] < ADMIN_LEVEL) return SendClientMessage(playerid, RED, "Error: This is a restricted admin command.");
  2381.     if(sscanf(params, "u", targetid)) return SendClientMessage(playerid, RED, "Usage: /spec [name/id]");
  2382.     if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, RED, "Error: Player not found.");
  2383.     if(GetPlayerState(targetid) == PLAYER_STATE_NONE) return SendClientMessage(playerid, RED, "Error: Player not spawned.");
  2384.     if(targetid == playerid) return SendClientMessage(playerid, RED, "Error: You cannot spectate yourself.");
  2385.     IsAdminSpectating[playerid] = true;
  2386.     TogglePlayerSpectating(playerid, true);
  2387.     if(IsPlayerInAnyVehicle(targetid))
  2388.     {
  2389.         SetPlayerInterior(playerid, GetPlayerInterior(targetid));
  2390.         SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(targetid));
  2391.         PlayerSpectateVehicle(playerid, GetPlayerVehicleID(targetid));
  2392.         return true;
  2393.     }
  2394.     else
  2395.     {
  2396.         SetPlayerInterior(playerid, GetPlayerInterior(targetid));
  2397.         SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(targetid));
  2398.         PlayerSpectatePlayer(playerid, targetid);
  2399.     }
  2400.     return true;
  2401. }
  2402.  
  2403. CMD:specoff(playerid, params[])
  2404. {
  2405.     if(AccountInfo[playerid][user_level] < ADMIN_LEVEL) return SendClientMessage(playerid, RED, "Error: This is a restricted admin command.");
  2406.     if(IsAdminSpectating[playerid] == false) return SendClientMessage(playerid, RED, "Error: You are not spectating anyone.");
  2407.     IsAdminSpectating[playerid] = false;
  2408.     TogglePlayerSpectating(playerid, false);
  2409.     return true;
  2410. }
  2411.  
  2412. CMD:duty(playerid, params[])
  2413. {
  2414.     if(AccountInfo[playerid][user_level] < ADMIN_LEVEL) return SendClientMessage(playerid, RED, "Error: This is a restricted admin command.");
  2415.     if(IsAntiSpawnKillOn[playerid] == true) return SendClientMessage(playerid, RED, "Error: You cannot use this command whilst in anti-spawn mode.");
  2416.     if(IsAdminOnDuty[playerid] == false)
  2417.     {
  2418.         IsAdminOnDuty[playerid] = true;
  2419.         GetAdminTeamSkin[playerid] = GetPlayerSkin(playerid);
  2420.         SetPlayerSkin(playerid, 294);
  2421.         SetPlayerColor(playerid, PURPLE);
  2422.         SetPlayerHealth(playerid, 99999);
  2423.         return true;
  2424.     }
  2425.     else if(IsAdminOnDuty[playerid] == true)
  2426.     {
  2427.         if(GetPlayerClass[playerid] == TEAM_COUNTER)
  2428.         {
  2429.             SetPlayerSkin(playerid, GetAdminTeamSkin[playerid]);
  2430.             SetPlayerColor(playerid, BLUE);
  2431.             SetPlayerHealth(playerid, 100);
  2432.             IsAdminOnDuty[playerid] = false;
  2433.             return true;
  2434.         }
  2435.         else if(GetPlayerClass[playerid] == TEAM_TERROR)
  2436.         {
  2437.             SetPlayerSkin(playerid, GetAdminTeamSkin[playerid]);
  2438.             SetPlayerColor(playerid, RED);
  2439.             SetPlayerHealth(playerid, 100);
  2440.             IsAdminOnDuty[playerid] = false;
  2441.         }
  2442.     }
  2443.     return true;
  2444. }
  2445.  
  2446. CMD:respawn(playerid, params[])
  2447. {
  2448.     if(AccountInfo[playerid][user_level] < ADMIN_LEVEL) return SendClientMessage(playerid, RED, "Error: This is a restricted admin command.");
  2449.  
  2450.     for(new v = 0; v < MAX_VEHICLES; v++)
  2451.     {
  2452.         if(IsVehicleEmpty(v) == 1)
  2453.         {
  2454.             SetVehicleToRespawn(v);
  2455.         }
  2456.     }
  2457.     return true;
  2458. }
  2459.  
  2460. CMD:ann(playerid, params[])
  2461. {
  2462.     new message[32], string[128];
  2463.     if(AccountInfo[playerid][user_level] < ADMIN_LEVEL) return SendClientMessage(playerid, RED, "Error: This is a restricted admin command.");
  2464.     if(sscanf(params, "s[32]", message)) return SendClientMessage(playerid, RED, "Usage: /ann [msg]");
  2465.     if(strlen(message) < 1 || strlen(message) > 32) return SendClientMessage(playerid, RED, "Error: Your message MUST be between 1-32 characters.");
  2466.     format(string, sizeof(string), "~w~%s", message);
  2467.     GameTextForAll(string, 5000, 5);
  2468.     return true;
  2469. }
  2470.  
  2471.  
  2472. CMD:jet(playerid, params[])
  2473. {
  2474.     if(AccountInfo[playerid][user_level] < ADMIN_LEVEL) return SendClientMessage(playerid, RED, "Error: This is a restricted admin command.");
  2475.     SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USEJETPACK);
  2476.     return true;
  2477. }
  2478.  
  2479. CMD:changeteam(playerid, params[])
  2480. {
  2481.     new string[128];
  2482.     HasPlayerChangedClass[playerid] = true;
  2483.     SetPlayerHealth(playerid, 0);
  2484.     if(IsAntiSpawnKillOn[playerid] == true)
  2485.     {
  2486.         IsAntiSpawnKillOn[playerid] = false;
  2487.         KillTimer(anti_spawn_kill_timer[playerid]);
  2488.     }
  2489.     foreach(new id : Player)
  2490.     {
  2491.         if(GetPlayerLanguage[id] == ENGLISH)
  2492.         {
  2493.             format(string, sizeof(string), "Server: %s (%d) has changed team.", GetUserName(playerid), playerid);
  2494.             SendClientMessage(id, PINK, string);
  2495.         }
  2496.         else if(GetPlayerLanguage[id] == RUSSIAN)
  2497.         {
  2498.             format(string, sizeof(string), "Сервер: %s (%d) изменилась команда.", GetUserName(playerid), playerid);
  2499.             SendClientMessage(id, PINK, string);
  2500.         }
  2501.     }
  2502.     return true;
  2503. }
Advertisement
Add Comment
Please, Sign In to add comment