Advertisement
Guest User

CW/TG Mode by QWER

a guest
Sep 26th, 2012
3,696
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 60.36 KB | None | 0 0
  1. /*
  2.  *  CW/TG Mode for CSSR
  3.  *  © by Denis 'QWER' Granec
  4.  *  "Prišiel som, Videl som, Vyhral som..."
  5.  *  "Najvačší okamžik života je úspech"
  6.  *
  7.  *  Clan War System
  8.  *      - Zmena názvu teamu
  9.  *      - Zmena 3x30 na YxZ
  10.  *      - Záverečná štatistika
  11.  *              - ...
  12.  */
  13. #include <a_samp>
  14. #undef MAX_PLAYERS
  15. #define MAX_PLAYERS 50 // zadaj POČET HRÁČOV (slotov)
  16. #pragma tabsize 0
  17.  
  18. #define DEFAULT_HOME_NAME "CSSR"
  19. #define DEFAULT_AWAY_NAME "Away"
  20. #define DEFAULT_WEB "clan-cssr.eu"
  21. #define DEFAULT_ROUNDS 3
  22. #define DEFAULT_ROUND_SCORE 30
  23. #define DEFAULT_WEAPON 26
  24. #define IPFILE "ip/%s.txt"
  25.  
  26. #define TEAM_HOME 0
  27. #define TEAM_AWAY 1
  28. #define TEAM_SPEC 2
  29.  
  30. #define COLOR_RED 0xFF0000BB
  31. #define COLOR_GREEN 0x00FF00BB
  32.  
  33. #define QCMD:%1()          \
  34.                         forward cmd_%1(playerid,params[],bool:help); \
  35.                         public cmd_%1(playerid,params[],bool:help)
  36. #define isnull(%1) ((!(%1[0])) || (((%1[0]) == '\1') && (!(%1[1]))))
  37. #define ForPlayers(%0) for(new %0; %0 <= Connects;%0++) if(IsPlayerConnected(%0))
  38. new bool:FALSE=false;
  39. #define SCMF(%0,%1,%2,%3) do{new _string[128]; format(_string,sizeof(_string),%2,%3); SendClientMessage(%0,%1,_string);} while(FALSE)
  40. #define SCMTAF(%0,%1,%2) do{new _string[128]; format(_string,sizeof(_string),%1,%2); SendClientMessageToAll(%0,_string);} while(FALSE)
  41. #define SCM SendClientMessage
  42. #define SCMTA SendClientMessageToAll
  43.  
  44. new Connects;
  45. new ServerMap;
  46. //4 = MAPA 4 = TEAM 4 = X,Y,Z,A
  47. new Float:PlayerDM[4][3][4] =
  48. {//12.0156    10.8203  14.1484 35.2487
  49.     {{1330.1001,2212.9092,12.0156,178.8035},{1411.2450,2124.0459,12.0156,88.8759},{1368.8029,2196.1875,14.2495,177.3583}},
  50.     {{1586.5869,745.4418,10.8203,179.2617},{1746.8711,695.1851,10.8203,0.9733},{1663.3925,747.8785,19.9141,182.0584}},
  51.     {{-1341.9940,-26.4392,14.1484,225.0088},{-1186.4745,-182.0161,14.1484,44.5505},{-1221.5259,-72.7803,27.3481,131.6112}},
  52.     {{-2047.4285,-117.2283,35.2487,178.9484},{-2051.0955,-267.9533,35.3203,358.7801},{-2076.3069,-106.9902,40.2293,194.5918}}
  53. };
  54.  
  55. new Team[MAX_PLAYERS] = {-1,...};
  56. new TeamName[2][50];
  57. new Text:Textdraw0;
  58. new Text:Textdraw1[MAX_PLAYERS];
  59.  
  60. new Text:Textdraw01;
  61. new Text:Textdraw100;
  62. new Text:Textdraw2;
  63. new Text:Textdraw3;
  64. new Text:Textdraw4;
  65. new Text:Textdraw5;
  66. new Text:Textdraw6;
  67. new Text:Textdraw7;
  68. new Text:Textdraw8;
  69. new Text:Textdraw9;
  70. new Text:Textdraw10;
  71. new Text:Textdraw11;
  72. new Text:Textdraw12;
  73. new Text:Textdraw13;
  74. new Text:Textdraw14;
  75.  
  76. new TeamScore[2];
  77. new TeamRounds[2];
  78. new Count = -1;
  79. new MaxRounds; // 3x
  80. new MaxRoundScore;//30
  81. new TotalScore[2];
  82. new Object[9];
  83. //3x30
  84. new Weapon;
  85.  
  86. new ServerPassword[50];
  87. new LockTeam;
  88. new Kills[MAX_PLAYERS],Deaths[MAX_PLAYERS],TeamKills[MAX_PLAYERS];
  89. new stopped;
  90.  
  91. new pDrunkLevelLast[MAX_PLAYERS];
  92. new pFPS[MAX_PLAYERS];
  93. new Spec[MAX_PLAYERS] = {-1,...};
  94. new Admin[MAX_PLAYERS];
  95. new Trening;
  96. new Owned[2];
  97.  
  98. new Cars[50];
  99. new CarsCount;
  100.  
  101. forward CountDownPublic();
  102. forward HideWin();
  103. forward LockedServerKick(playerid);
  104. forward PosRefresh();
  105. forward Test(playerid,Float:x,Float:y,Float:z,type);
  106.  
  107. new Float:Objects[9][4] ={
  108.  {1337.74, 2094.88, 20.58,180.0},
  109.  {1292.11, 2143.55, 20.14,90.0},
  110.  {1663.00, 8293.00, 734.00,0.0},
  111.  {1664.21, 734.22, 13.11,0.0},
  112.  {1663.94, 706.63, 13.11,180.04},
  113.  { -1234.09, -84.41, 16.39,-44.94},
  114.  {-1195.23, -131.88, 16.39,-44.94},
  115.  {-2096.01, -188.82, 37.45,90.04},
  116.  {-2011.62, -189.27, 37.45,-90.04}
  117. };
  118.  
  119. main()
  120. {
  121.     print("\n=============== CSSR ==============");
  122.     print(" GameMode: CW/TG Mode");
  123.     print(" Type: TDM/CW/TG");
  124.     print(" Autor: QWER");
  125.     print(" Date: 08.08.2012");
  126.     print(" For CSSR clan and samp version 0.3e");
  127.     print("=============== CW/TG ===============\n");
  128. }
  129.  
  130. stock PlayerSpectatePlayerEx(playerid,id){
  131.     new str[100];
  132.     format(str, 100, "~r~%s ~w~(%d)~n~Previous KEY_WALK     Next KEY_JUMP", Jmeno(id),id);
  133.     GameTextForPlayer(playerid, str, 60000, 4);
  134.     PlayerSpectatePlayer(playerid,id,0);
  135. }
  136. public OnGameModeInit()
  137. {
  138.     SetGameModeText("CSSR]vs[Away");
  139.  
  140.     //102 103 104 106 107 108 114 137 174 252
  141.     AddPlayerClass(102,-1247.2589,-91.8672,14.1484,203.8234,0,0,0,0,0,0);
  142.     AddPlayerClass(103,-1247.2589,-91.8672,14.1484,203.8234,0,0,0,0,0,0);
  143.     AddPlayerClass(104,-1247.2589,-91.8672,14.1484,203.8234,0,0,0,0,0,0);
  144.     AddPlayerClass(106,-1247.2589,-91.8672,14.1484,203.8234,0,0,0,0,0,0);
  145.     AddPlayerClass(107,-1247.2589,-91.8672,14.1484,203.8234,0,0,0,0,0,0);
  146.     AddPlayerClass(108,-1247.2589,-91.8672,14.1484,203.8234,0,0,0,0,0,0);
  147.     AddPlayerClass(114,-1247.2589,-91.8672,14.1484,203.8234,0,0,0,0,0,0);
  148.     AddPlayerClass(137,-1247.2589,-91.8672,14.1484,203.8234,0,0,0,0,0,0);
  149.     AddPlayerClass(174,-1247.2589,-91.8672,14.1484,203.8234,0,0,0,0,0,0);
  150.     AddPlayerClass(252,-1247.2589,-91.8672,14.1484,203.8234,0,0,0,0,0,0);
  151.     AddPlayerClass(137,-1247.2589,-91.8672,14.1484,203.8234,0,0,0,0,0,0);
  152.    
  153.  
  154.     Object[0] = CreateObject(7914, 1337.74, 2094.88, 20.58,   0.00, 0.00, 180.00);
  155.     Object[1] = CreateObject(7914, 1292.11, 2143.55, 20.14,   0.00, 0.00, 90.00);
  156.     Object[2] = CreateObject(7914, 1663.00, 8293.00, 734.00,   0.00, 0.00, 0.00);
  157.     Object[3] = CreateObject(7914, 1664.21, 734.22, 13.11,   0.00, 0.00, 0.00);
  158.     Object[4] = CreateObject(7914, 1663.94, 706.63, 13.11,   0.00, 0.00, 180.04);
  159.     Object[5] = CreateObject(7914, -1234.09, -84.41, 16.39,   0.00, 0.00, -44.94);
  160.     Object[6] = CreateObject(7914, -1195.23, -131.88, 16.39,   0.00, 0.00, -44.94);
  161.     Object[7] = CreateObject(7914, -2096.01, -188.82, 37.45,   0.00, 0.00, 90.04);
  162.     Object[8] = CreateObject(7914, -2011.62, -189.27, 37.45,   0.00, 0.00, -90.04);
  163.    
  164.     format(TeamName[0],50,"%s",DEFAULT_HOME_NAME);
  165.     format(TeamName[1],50,"%s",DEFAULT_AWAY_NAME);
  166.     Weapon = DEFAULT_WEAPON;
  167.     MaxRounds = DEFAULT_ROUNDS;
  168.     MaxRoundScore = DEFAULT_ROUND_SCORE;
  169.  
  170.     DisableInteriorEnterExits();
  171.     UsePlayerPedAnims();
  172.     RefreshObject();
  173.     SetTimer("PosRefresh",1500,true);
  174.     new SpawnObject;
  175.     SpawnObject = CreateObject(19353, 2029.183471, 1007.522155, 12.245361, 0.000000, -92.499984, 178.099945);
  176. //  SetObjectMaterialText(SpawnObject, "ssss", 0, OBJECT_MATERIAL_SIZE_256x128,"Arial", 50, 0, 0x00000000, 0x00000000, OBJECT_MATERIAL_TEXT_ALIGN_LEFT);
  177.     SetObjectMaterial(SpawnObject, 0, 19341, "egg_texts", "easter_egg01", 0x00FFFFFF);
  178.     SpawnObject = CreateObject(19353, 2021.775878, 1006.701049, 16.422132, 0.000000, 0.000000, 0.000000);
  179.     SetObjectMaterialText(SpawnObject, "{FF8200}www.clan-css\nServer  CSS", 0, OBJECT_MATERIAL_SIZE_256x128,"Arial", 51, 0, 0xFFFF8200, 0xFF000000, OBJECT_MATERIAL_TEXT_ALIGN_LEFT);
  180.     SpawnObject = CreateObject(19353, 2021.775878, 1008.581396, 16.422132, 0.000000, 0.000000, 0.000000);
  181.     SetObjectMaterialText(SpawnObject, "{FF8200}        sr.eu\n        R", 0, OBJECT_MATERIAL_SIZE_256x128,"Arial", 51, 0, 0xFFFF8200, 0xFF000000, OBJECT_MATERIAL_TEXT_ALIGN_LEFT);
  182.  
  183.     Textdraw0 = TextDrawCreate(1.000000, 428.000000, "~n~");
  184.     TextDrawBackgroundColor(Textdraw0, 255);
  185.     TextDrawFont(Textdraw0, 1);
  186.     TextDrawLetterSize(Textdraw0, 0.350000, 1.000000);
  187.     TextDrawColor(Textdraw0, -1);
  188.     TextDrawSetOutline(Textdraw0, 0);
  189.     TextDrawSetProportional(Textdraw0, 1);
  190.     TextDrawSetShadow(Textdraw0, 1);
  191.     TextDrawUseBox(Textdraw0, 1);
  192.     TextDrawBoxColor(Textdraw0, 255);
  193.     TextDrawTextSize(Textdraw0, 675.000000, 0.000000);
  194.    
  195.     for(new i; i < MAX_PLAYERS;i++){
  196.     Textdraw1[i] = TextDrawCreate(313.000000, 428.000000, "~g~Green ~w~vs ~r~Red ~w~I Score: ~g~01~w~:~r~02 ~w~I Round: ~g~02~w~:~r~02 ~w~I  Kills: ~b~05 ~w~I Deaths: ~b~07 I Ratio: ~b~1.20 ~w~I Web: ~w~rsgame.cz");
  197.     TextDrawAlignment(Textdraw1[i], 2);
  198.     TextDrawBackgroundColor(Textdraw1[i], 255);
  199.     TextDrawFont(Textdraw1[i], 1);
  200.     TextDrawLetterSize(Textdraw1[i], 0.319999, 1.000000);
  201.     TextDrawColor(Textdraw1[i], -1);
  202.     TextDrawSetOutline(Textdraw1[i], 0);
  203.     TextDrawSetProportional(Textdraw1[i], 1);
  204.     TextDrawSetShadow(Textdraw1[i], 1);
  205.     }
  206.    
  207.     Textdraw01 = TextDrawCreate(-10.000000, 110.000000, "~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~");
  208.     TextDrawBackgroundColor(Textdraw01, 255);
  209.     TextDrawFont(Textdraw01, 1);
  210.     TextDrawLetterSize(Textdraw01, 0.500000, 1.000000);
  211.     TextDrawColor(Textdraw01, -1);
  212.     TextDrawSetOutline(Textdraw01, 0);
  213.     TextDrawSetProportional(Textdraw01, 1);
  214.     TextDrawSetShadow(Textdraw01, 1);
  215.     TextDrawUseBox(Textdraw01, 1);
  216.     TextDrawBoxColor(Textdraw01, 170);
  217.     TextDrawTextSize(Textdraw01, 650.000000, 0.000000);
  218.  
  219.     Textdraw100 = TextDrawCreate(202.000000, 108.000000, "CSSR Clan War Mode");
  220.     TextDrawBackgroundColor(Textdraw100, -1);
  221.     TextDrawFont(Textdraw100, 2);
  222.     TextDrawLetterSize(Textdraw100, 0.500000, 1.000000);
  223.     TextDrawColor(Textdraw100, 255);
  224.     TextDrawSetOutline(Textdraw100, 1);
  225.     TextDrawSetProportional(Textdraw100, 1);
  226.  
  227.     Textdraw2 = TextDrawCreate(50.000000, 110.000000, "~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~");
  228.     TextDrawBackgroundColor(Textdraw2, 255);
  229.     TextDrawFont(Textdraw2, 1);
  230.     TextDrawLetterSize(Textdraw2, 0.500000, 1.000000);
  231.     TextDrawColor(Textdraw2, -1);
  232.     TextDrawSetOutline(Textdraw2, 0);
  233.     TextDrawSetProportional(Textdraw2, 1);
  234.     TextDrawSetShadow(Textdraw2, 1);
  235.     TextDrawUseBox(Textdraw2, 1);
  236.     TextDrawBoxColor(Textdraw2, 136);
  237.     TextDrawTextSize(Textdraw2, 590.000000, 0.000000);
  238.  
  239.     Textdraw3 = TextDrawCreate(320.000000, 110.000000, "~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~");
  240.     TextDrawAlignment(Textdraw3, 2);
  241.     TextDrawBackgroundColor(Textdraw3, 255);
  242.     TextDrawFont(Textdraw3, 1);
  243.     TextDrawLetterSize(Textdraw3, 0.500000, 1.000000);
  244.     TextDrawColor(Textdraw3, -1);
  245.     TextDrawSetOutline(Textdraw3, 0);
  246.     TextDrawSetProportional(Textdraw3, 1);
  247.     TextDrawSetShadow(Textdraw3, 1);
  248.     TextDrawUseBox(Textdraw3, 1);
  249.     TextDrawBoxColor(Textdraw3, -16777046);
  250.     TextDrawTextSize(Textdraw3, 0.000000, 0.000000);
  251.  
  252.     Textdraw4 = TextDrawCreate(50.000000, 118.000000, "~g~Name                      Kills  Deaths  Ratio");
  253.     TextDrawBackgroundColor(Textdraw4, 255);
  254.     TextDrawFont(Textdraw4, 1);
  255.     TextDrawLetterSize(Textdraw4, 0.360000, 1.000000);
  256.     TextDrawColor(Textdraw4, -1);
  257.     TextDrawSetOutline(Textdraw4, 0);
  258.     TextDrawSetProportional(Textdraw4, 1);
  259.     TextDrawSetShadow(Textdraw4, 1);
  260.  
  261.     Textdraw5 = TextDrawCreate(323.000000, 118.000000, "~r~Name                      Kills  Deaths  Ratio");
  262.     TextDrawBackgroundColor(Textdraw5, 255);
  263.     TextDrawFont(Textdraw5, 1);
  264.     TextDrawLetterSize(Textdraw5, 0.360000, 1.000000);
  265.     TextDrawColor(Textdraw5, -1);
  266.     TextDrawSetOutline(Textdraw5, 0);
  267.     TextDrawSetProportional(Textdraw5, 1);
  268.     TextDrawSetShadow(Textdraw5, 1);
  269.  
  270.     Textdraw6 = TextDrawCreate(210.000000, 348.000000, "Match: Green vs Red~n~Win: Red~n~Round: 01:02~n~Total: 78:172~n~Type: 3x30");
  271.     TextDrawBackgroundColor(Textdraw6, 255);
  272.     TextDrawFont(Textdraw6, 1);
  273.     TextDrawLetterSize(Textdraw6, 0.500000, 1.000000);
  274.     TextDrawColor(Textdraw6, -1);
  275.     TextDrawSetOutline(Textdraw6, 0);
  276.     TextDrawSetProportional(Textdraw6, 1);
  277.     TextDrawSetShadow(Textdraw6, 1);
  278.     TextDrawUseBox(Textdraw6, 1);
  279.     TextDrawBoxColor(Textdraw6, 204);
  280.     TextDrawTextSize(Textdraw6, 471.000000, 1.000000);
  281.  
  282.     Textdraw7 = TextDrawCreate(50.000000, 128.000000, "Name~n~Name"); // HOME
  283.     TextDrawBackgroundColor(Textdraw7, 255);
  284.     TextDrawFont(Textdraw7, 1);
  285.     TextDrawLetterSize(Textdraw7, 0.360000, 1.000000);
  286.     TextDrawColor(Textdraw7, -1);
  287.     TextDrawSetOutline(Textdraw7, 0);
  288.     TextDrawSetProportional(Textdraw7, 1);
  289.     TextDrawSetShadow(Textdraw7, 1);
  290.  
  291.     Textdraw8 = TextDrawCreate(205.000000, 128.000000, "08~n~07");// HOME
  292.     TextDrawBackgroundColor(Textdraw8, 255);
  293.     TextDrawFont(Textdraw8, 1);
  294.     TextDrawLetterSize(Textdraw8, 0.360000, 1.000000);
  295.     TextDrawColor(Textdraw8, -1);
  296.     TextDrawSetOutline(Textdraw8, 0);
  297.     TextDrawSetProportional(Textdraw8, 1);
  298.     TextDrawSetShadow(Textdraw8, 1);
  299.  
  300.     Textdraw9 = TextDrawCreate(246.000000, 128.000000, "08~n~07");// HOME
  301.     TextDrawBackgroundColor(Textdraw9, 255);
  302.     TextDrawFont(Textdraw9, 1);
  303.     TextDrawLetterSize(Textdraw9, 0.360000, 1.000000);
  304.     TextDrawColor(Textdraw9, -1);
  305.     TextDrawSetOutline(Textdraw9, 0);
  306.     TextDrawSetProportional(Textdraw9, 1);
  307.     TextDrawSetShadow(Textdraw9, 1);
  308.  
  309.     Textdraw10 = TextDrawCreate(285.000000, 128.000000, "1.14~n~2.99");// HOME
  310.     TextDrawBackgroundColor(Textdraw10, 255);
  311.     TextDrawFont(Textdraw10, 1);
  312.     TextDrawLetterSize(Textdraw10, 0.360000, 1.000000);
  313.     TextDrawColor(Textdraw10, -1);
  314.     TextDrawSetOutline(Textdraw10, 0);
  315.     TextDrawSetProportional(Textdraw10, 1);
  316.     TextDrawSetShadow(Textdraw10, 1);
  317.  
  318.     Textdraw11 = TextDrawCreate(323.000000, 128.000000, "Name~n~Name");
  319.     TextDrawBackgroundColor(Textdraw11, 255);
  320.     TextDrawFont(Textdraw11, 1);
  321.     TextDrawLetterSize(Textdraw11, 0.360000, 1.000000);
  322.     TextDrawColor(Textdraw11, -1);
  323.     TextDrawSetOutline(Textdraw11, 0);
  324.     TextDrawSetProportional(Textdraw11, 1);
  325.     TextDrawSetShadow(Textdraw11, 1);
  326.  
  327.     Textdraw12 = TextDrawCreate(478.000000, 128.000000, "08~n~07");
  328.     TextDrawBackgroundColor(Textdraw12, 255);
  329.     TextDrawFont(Textdraw12, 1);
  330.     TextDrawLetterSize(Textdraw12, 0.360000, 1.000000);
  331.     TextDrawColor(Textdraw12, -1);
  332.     TextDrawSetOutline(Textdraw12, 0);
  333.     TextDrawSetProportional(Textdraw12, 1);
  334.     TextDrawSetShadow(Textdraw12, 1);
  335.  
  336.     Textdraw13 = TextDrawCreate(518.000000, 128.000000, "08~n~07");
  337.     TextDrawBackgroundColor(Textdraw13, 255);
  338.     TextDrawFont(Textdraw13, 1);
  339.     TextDrawLetterSize(Textdraw13, 0.360000, 1.000000);
  340.     TextDrawColor(Textdraw13, -1);
  341.     TextDrawSetOutline(Textdraw13, 0);
  342.     TextDrawSetProportional(Textdraw13, 1);
  343.     TextDrawSetShadow(Textdraw13, 1);
  344.  
  345.     Textdraw14 = TextDrawCreate(559.000000, 128.000000, "1.14~n~2.99");
  346.     TextDrawBackgroundColor(Textdraw14, 255);
  347.     TextDrawFont(Textdraw14, 1);
  348.     TextDrawLetterSize(Textdraw14, 0.360000, 1.000000);
  349.     TextDrawColor(Textdraw14, -1);
  350.     TextDrawSetOutline(Textdraw14, 0);
  351.     TextDrawSetProportional(Textdraw14, 1);
  352.     TextDrawSetShadow(Textdraw14, 1);
  353.     return 1;
  354. }
  355.  
  356. public PosRefresh(){
  357. ForPlayers(playerid){
  358. if(Team[playerid] == TEAM_SPEC){
  359. if(Spec[playerid] != -1) continue;
  360. new Float:Z;
  361. GetPlayerPos(playerid, Z,Z,Z);
  362. if(ServerMap != 0) {
  363. if(Z < PlayerDM[ServerMap][TEAM_HOME][2]+1) SpawnPlayer(playerid);
  364. }else{
  365. if(Z < 12){
  366. SpawnPlayer(playerid);
  367. }
  368. }
  369. }
  370. }
  371. return true;
  372. }
  373. public OnGameModeExit()
  374. {
  375.     return 1;
  376. }
  377.  
  378. public OnPlayerRequestClass(playerid, classid)
  379. {
  380.     SetPlayerPos(playerid, 2030.4219,1007.3387,13.2771);
  381.     SetPlayerCameraPos(playerid, 2038.6110,1007.1172,13.2771);
  382.     SetPlayerCameraLookAt(playerid, 2030.4219,1007.3387,13.2771);
  383.     return 1;
  384. }
  385.  
  386. public OnPlayerConnect(playerid)
  387. {
  388. new str[128];
  389. new cesta[50];
  390. format(cesta,50,IPFILE,Ip(playerid));
  391. new File:a;
  392. new name[MAX_PLAYER_NAME];
  393. GetPlayerName(playerid,name,MAX_PLAYER_NAME);
  394. fcreate(cesta);
  395. a = fopen(cesta,io_read);
  396. new nasiel;
  397. while(fread(a,str)){
  398. DelChar(str);
  399. if(!strcmp(name,str,false)){
  400. nasiel = 1;
  401. break;
  402. }
  403. }
  404. fclose(a);
  405. if(nasiel == 0){
  406. a = fopen(cesta,io_append);
  407. format(str,128,"%s\r\n",Jmeno(playerid));
  408. fwrite(a,str);
  409. fclose(a);
  410. }
  411.  
  412. Admin[playerid] = 0;
  413. Kills[playerid] = 0;
  414. Deaths[playerid] = 0;
  415. TeamKills[playerid] = 0;
  416. SCMTAF(0x00FF00AA,"Hráč %s sa pripojil na server",Jmeno(playerid));
  417.     pDrunkLevelLast[playerid]   = 0;
  418.     pFPS[playerid]          = 0;
  419. Team[playerid] = -1;
  420. if(playerid > Connects) Connects = playerid;
  421. if(!ServerPassword[1]){
  422.     format(str,100,"%s\n%s\nSpecator",TeamName[0],TeamName[1]);
  423.     ShowPlayerDialog(playerid,1,2,"Team",str,"Vybrať","Odpojiť");
  424. }else{
  425. ShowPlayerDialog(playerid,2,1,"Locked","{FFFFFF}Pravdepodobne sa hrá nejaký zápas a preto je server zamknutý,\n zadaj heslo inak ťa to do {FF0000}10{FFFFFF} sekund vyhodí zo servera","Vybrať","Opustiť");
  426. SetTimerEx("LockedServerKick",10000,false,"i",playerid);
  427. }
  428.     RemoveBuildingForPlayer(playerid, 8087, 1667.7422, 723.2266, 21.0938, 0.25);
  429.     RemoveBuildingForPlayer(playerid, 712, 1555.4844, 710.5000, 19.3359, 0.25);
  430.     RemoveBuildingForPlayer(playerid, 3459, 1577.1953, 725.0156, 17.2188, 0.25);
  431.     RemoveBuildingForPlayer(playerid, 674, 1756.0234, 723.0078, 9.7656, 0.25);
  432.     RemoveBuildingForPlayer(playerid, 674, 1756.0234, 719.5781, 9.7656, 0.25);
  433.     RemoveBuildingForPlayer(playerid, 3459, 1758.2344, 725.6641, 17.1641, 0.25);
  434.     RemoveBuildingForPlayer(playerid, 7617, 1333.3828, 2075.9297, 22.8359, 0.25);
  435.     RemoveBuildingForPlayer(playerid, 645, 1323.4766, 2094.1797, 10.8750, 0.25);
  436.     RemoveBuildingForPlayer(playerid, 1278, 1349.7031, 2103.8516, 24.0078, 0.25);
  437.     RemoveBuildingForPlayer(playerid, 1278, 1302.8984, 2105.6953, 24.0078, 0.25);
  438.     RemoveBuildingForPlayer(playerid, 1278, 1396.5625, 2103.8516, 24.0078, 0.25);
  439.     RemoveBuildingForPlayer(playerid, 1278, 1301.8906, 2154.2344, 24.0078, 0.25);
  440.     RemoveBuildingForPlayer(playerid, 1278, 1301.8906, 2197.9688, 24.0078, 0.25);
  441.     RemoveBuildingForPlayer(playerid, 1278, 1351.7891, 2197.9688, 24.0078, 0.25);
  442.     RemoveBuildingForPlayer(playerid, 1278, 1396.5625, 2154.2422, 24.0078, 0.25);
  443.     SCM(playerid,0x00FF00AA,"=============== CSSR ===============");
  444.     SCM(playerid,0xFF0000AA,"Vitaj na cw/tg servery clanu {FF0000}CSSR");
  445.     SCM(playerid,0xFF0000AA,"príkazy nájdeš /help");
  446.     SCM(playerid,0x00FF00AA,"=============== CSSR ===============");
  447.    
  448.     return 1;
  449. }
  450.  
  451. public OnPlayerDisconnect(playerid, reason)
  452. {
  453. if(playerid == Connects){
  454. warp:
  455. Connects--;
  456. if(!IsPlayerConnected(Connects) && Connects > 0) goto warp;
  457. }
  458.  
  459. if(reason == 0) SCMTAF(0x00FF00AA,"Hráč %s opustil server {FF0000}(spadla hra)",Jmeno(playerid));
  460. else if(reason == 1) SCMTAF(0x00FF00AA,"Hráč %s opustil server {FF0000}(odišiel)",Jmeno(playerid));
  461. else SCMTAF(0x00FF00AA,"Hráč %s opustil server {FF0000}(kick/ban)",Jmeno(playerid));
  462.     return 1;
  463. }
  464.  
  465. public OnPlayerSpawn(playerid)
  466. {
  467. SetPlayerHealth(playerid,100);
  468. ResetPlayerWeapons(playerid);
  469. SetPlayerPos(playerid,PlayerDM[ServerMap][Team[playerid]][0],PlayerDM[ServerMap][Team[playerid]][1],PlayerDM[ServerMap][Team[playerid]][2]);
  470. SetPlayerFacingAngle(playerid,PlayerDM[ServerMap][Team[playerid]][3]);
  471. if(Team[playerid] != TEAM_SPEC){
  472. GivePlayerWeapon(playerid,Weapon,9998);
  473. }
  474.     return 1;
  475. }
  476. public OnPlayerUpdate(playerid) {
  477.  
  478.     new drunknew;
  479.     drunknew = GetPlayerDrunkLevel(playerid);
  480.  
  481.     if (drunknew < 100) {
  482.         SetPlayerDrunkLevel(playerid, 2000);
  483.     } else {
  484.  
  485.         if (pDrunkLevelLast[playerid] != drunknew) {
  486.  
  487.             new wfps = pDrunkLevelLast[playerid] - drunknew;
  488.  
  489.             if ((wfps > 0) && (wfps < 200))
  490.                 pFPS[playerid] = wfps;
  491.  
  492.             pDrunkLevelLast[playerid] = drunknew;
  493.         }
  494.  
  495.     }
  496.  
  497. return 1;
  498. }
  499. public OnPlayerText(playerid,text[]){
  500.  
  501. if(text[0] == '!'){
  502. new Name[25];
  503. GetPlayerName(playerid,Name,25);
  504. ForPlayers(i){
  505. if(Team[playerid] == Team[i]){
  506. SCMF(i,0xB88A00FF,"%s:{FFFFFF} %s",Name,text[1]);
  507. }
  508. }
  509. return 0;
  510. }
  511. if(GetPVarInt(playerid,"Muted") == 1){
  512. SCM(playerid,0xFF0000FF,"Si umlčaný");
  513. return 0;
  514. }
  515. return true;
  516. }
  517. forward SpecRefresh(playerid,specid);
  518. public SpecRefresh(playerid,specid){
  519. PlayerSpectatePlayerEx(specid, playerid);
  520. return true;
  521. }
  522.  
  523. public OnPlayerDeath(playerid, killerid, reason)
  524. {
  525. if(killerid == INVALID_PLAYER_ID) return SpawnPlayer(playerid);
  526. if(Team[playerid] == TEAM_SPEC) return SpawnPlayer(playerid);
  527. GameTextForPlayer(killerid,Jmeno(playerid),6000,1);
  528. Kills[killerid]++;
  529. Deaths[playerid]++;
  530. if(Team[playerid] == Team[killerid]) TeamKills[killerid]++;
  531. SpawnPlayer(playerid);
  532. SendDeathMessage(killerid,playerid,reason);
  533. SetPlayerScore(killerid,Kills[killerid]);
  534. ForPlayers(i) {
  535. if(Spec[i] == playerid){
  536. SetTimerEx("SpecRefresh",50,false,"ii",playerid,i);
  537. break;
  538. }
  539. }
  540. if(Trening == 1) {
  541. TeamScoreUpdate(playerid,killerid);
  542. }else{
  543. UpdateScoreBar();
  544. }
  545.     return 1;
  546. }
  547.  
  548. stock TeamScoreUpdate(playerid,killerid){
  549. new team;
  550. if(Team[playerid] == Team[killerid]){
  551. if(Team[playerid] == TEAM_HOME) team = TEAM_AWAY;
  552. else team = TEAM_HOME;
  553. SCMTAF(-1,"Team {FF0000}%s{FFFFFF} urobil team kill !",TeamName[Team[killerid]]);
  554. TeamScore[team]++;
  555. if(TeamScore[team] == MaxRoundScore){
  556. TeamRounds[team]++;
  557. SCMTA(COLOR_RED,"================================");
  558. SCMTAF(-1,"Team {FF0000}%s{FFFFFF} vyhral",TeamName[team]);
  559. SCMTAF(-1,"{00FF00}%s %d{FFFFFF}:{FF0000}%d %s",TeamName[TEAM_HOME],TeamScore[TEAM_HOME],TeamScore[TEAM_AWAY],TeamName[TEAM_AWAY]);
  560. SCMTA(COLOR_RED,"================================");
  561. TotalScore[TEAM_HOME] += TeamScore[TEAM_HOME];
  562. TotalScore[TEAM_AWAY] += TeamScore[TEAM_AWAY];
  563. TeamScore[TEAM_HOME] = 0;
  564. TeamScore[TEAM_AWAY] = 0;
  565.  
  566. if(TeamRounds[team] == MaxRounds || (TeamRounds[team]+TeamRounds[Team[playerid]]) == MaxRounds){
  567.  
  568. }else {
  569. CountDown(5);
  570. ForPlayers(i){
  571. SetPlayerHealth(i,100);
  572. SpawnPlayer(i);
  573. //odpočet
  574. }
  575. }
  576. }
  577. if(TeamRounds[team] == MaxRounds || (TeamRounds[team]+TeamRounds[Team[playerid]]) == MaxRounds){
  578. TeamWinClanWar();
  579. }else{
  580.  
  581. }
  582. }else{
  583. Owned[Team[playerid]] = 0;
  584. Owned[Team[killerid]]++;
  585. if(Owned[Team[killerid]] == 5){
  586. new str[128];
  587. format(str,128,"~r~!! Team ~w~%s~r~ dal teamu ~w~%s~r~ OWNED !!",TeamName[Team[killerid]],TeamName[Team[playerid]]);
  588. GameTextForAll(str, 7000,3);
  589. SCMTAF(-1,"Team {FF0000}%s{FFFFFF} dal teamu {FF0000}%s{FFFFFF} OWNED!",TeamName[Team[killerid]],TeamName[Team[playerid]]);
  590. }
  591. team = Team[killerid];
  592. TeamScore[team]++;
  593. if(TeamScore[team] == MaxRoundScore){
  594. TeamRounds[team]++;
  595. SCMTA(COLOR_RED,"================================");
  596. SCMTAF(-1,"Team {FF0000}%s{FFFFFF} vyhral",TeamName[team]);
  597. SCMTAF(-1,"{00FF00}%s (%d) %d{FFFFFF}:{FF0000}%d (%d) %s",TeamName[TEAM_HOME],TeamRounds[TEAM_HOME],TeamScore[TEAM_HOME],TeamScore[TEAM_AWAY],TeamRounds[TEAM_AWAY],TeamName[TEAM_AWAY]);
  598. SCMTA(COLOR_RED,"================================");
  599. TotalScore[TEAM_HOME] += TeamScore[TEAM_HOME];
  600. TotalScore[TEAM_AWAY] += TeamScore[TEAM_AWAY];
  601. TeamScore[TEAM_HOME] = 0;
  602. TeamScore[TEAM_AWAY] = 0;
  603.  
  604. if(TeamRounds[team] == MaxRounds || (TeamRounds[team]+TeamRounds[Team[playerid]]) == MaxRounds){
  605.  
  606. }else {
  607. ForPlayers(i){
  608. SetPlayerHealth(i,100);
  609. SpawnPlayer(i);
  610. //odpočet
  611. }
  612. CountDown(5);
  613. }
  614. }
  615. if(TeamRounds[team] == MaxRounds || (TeamRounds[team]+TeamRounds[Team[playerid]]) == MaxRounds){
  616. TeamWinClanWar();
  617.  
  618. }
  619. }
  620. UpdateScoreBar();
  621. }
  622.  
  623. stock TeamWinClanWar(){
  624. ForPlayers(i){
  625. SetPlayerHealth(i,100);
  626. SetPlayerPos(i,PlayerDM[ServerMap][Team[i]][0],PlayerDM[ServerMap][Team[i]][1],PlayerDM[ServerMap][Team[i]][2]);
  627. SetPlayerFacingAngle(i,PlayerDM[ServerMap][Team[i]][3]);
  628. TogglePlayerControllable(i,0);
  629. }
  630. new win;
  631. if(TeamRounds[TEAM_HOME] > TeamRounds[TEAM_AWAY]) win = TEAM_HOME;
  632. else win = TEAM_AWAY;
  633. TeamWin(win);
  634. SCMTA(COLOR_RED,"================================");
  635. SCMTAF(-1,"Team {FF0000}%s{FFFFFF} vyhral clan war",TeamName[win]);
  636. SCMTAF(-1,"Total Score: {00FF00}%s %d{FFFFFF}:{FF0000}%d %s",TeamName[TEAM_HOME],TotalScore[TEAM_HOME],TotalScore[TEAM_AWAY],TeamName[TEAM_AWAY]);
  637. SCMTA(COLOR_RED,"================================");
  638. TotalScore[TEAM_HOME] = 0;
  639. TotalScore[TEAM_AWAY] = 0;
  640. TeamRounds[TEAM_HOME] = 0;
  641. TeamRounds[TEAM_AWAY] = 0;
  642. SetTimer("HideWin",30000,false);
  643. }
  644.  
  645. stock TeamWin(win){
  646. ClearKillList();
  647. TextDrawShowForAll(Textdraw01);
  648. TextDrawShowForAll(Textdraw100);
  649. TextDrawShowForAll(Textdraw2);
  650. TextDrawShowForAll(Textdraw3);
  651. TextDrawShowForAll(Textdraw4);
  652. TextDrawShowForAll(Textdraw5);
  653. new NameString[2][MAX_PLAYER_NAME*10];
  654. new KillString[2][MAX_PLAYER_NAME*10];
  655. new DeathString[2][MAX_PLAYER_NAME*10];
  656. new RatioString[2][MAX_PLAYER_NAME*10];
  657.  
  658.  
  659. ForPlayers(i){
  660. if(Team[i] != TEAM_SPEC){
  661. format(NameString[Team[i]],300,"%s%s~n~",NameString[Team[i]],Jmeno(i));
  662. format(KillString[Team[i]],300,"%s%d~n~",KillString[Team[i]],Kills[i]);
  663. format(DeathString[Team[i]],300,"%s%d~n~",DeathString[Team[i]],Deaths[i]);
  664. new Float:ratio;
  665. if(Deaths[i] == 0) ratio = Kills[i];
  666. else ratio = float(Kills[i])/float(Deaths[i]);
  667. format(RatioString[Team[i]],300,"%s%0.2f~n~",RatioString[Team[i]],ratio);
  668. }
  669.  
  670. }
  671. TextDrawSetString(Textdraw7,NameString[0]);
  672. TextDrawSetString(Textdraw8,KillString[0]);
  673. TextDrawSetString(Textdraw9,DeathString[0]);
  674. TextDrawSetString(Textdraw10,RatioString[0]);
  675. TextDrawSetString(Textdraw11,NameString[1]);
  676. TextDrawSetString(Textdraw12,KillString[1]);
  677. TextDrawSetString(Textdraw13,DeathString[1]);
  678. TextDrawSetString(Textdraw14,RatioString[1]);
  679. TextDrawShowForAll(Textdraw7);
  680. TextDrawShowForAll(Textdraw8);
  681. TextDrawShowForAll(Textdraw9);
  682. TextDrawShowForAll(Textdraw10);
  683. TextDrawShowForAll(Textdraw11);
  684. TextDrawShowForAll(Textdraw12);
  685. TextDrawShowForAll(Textdraw13);
  686. TextDrawShowForAll(Textdraw14);
  687. new winstr[5];
  688. if(win == 0) format(winstr,5,"~g~");
  689. else format(winstr,5,"~r~");
  690. new BigStr[1][1500];
  691. format(BigStr[0],1500,"Match: ~g~%s ~w~vs ~r~%s~n~~w~Win: %s%s~n~~w~Round: ~g~%02d~w~:~r~%02d~n~~w~Total: ~g~%d~w~:~r~%d~n~~w~Type: ~r~%d~w~x~r~%02d~n~~w~Map: ~r~%s",TeamName[TEAM_HOME],TeamName[TEAM_AWAY],winstr,TeamName[win],TeamRounds[TEAM_HOME],TeamRounds[TEAM_AWAY],TotalScore[TEAM_HOME],TotalScore[TEAM_AWAY],MaxRounds,MaxRoundScore,ReturnDmName(ServerMap));
  692. TextDrawSetString(Textdraw6,BigStr[0]);
  693. TextDrawShowForAll(Textdraw6);
  694.  
  695. }
  696.  
  697. stock CountDown(time){
  698. new str[10];
  699. format(str,10,"%d",time);
  700. GameTextForAll(str, 1000, 5);
  701. Count = time-1;
  702. ForPlayers(i){ TogglePlayerControllable(i,0); }
  703. SetTimer("CountDownPublic",1000,false);
  704. }
  705.  
  706. public CountDownPublic(){
  707. if(stopped == 1) return 0;
  708. if(Count > 0){
  709. new str[10];
  710. format(str,10,"%d",Count);
  711. GameTextForAll(str, 1000, 5);
  712. Count--;
  713. ForPlayers(i) { PlayerPlaySound(i, 1056, 0.0, 0.0, 0.0); }
  714. SetTimer("CountDownPublic",1000,false);
  715. }else{
  716. GameTextForAll("~r~GO GO GO", 1000, 5);
  717. ForPlayers(i){
  718. TogglePlayerControllable(i,1);
  719. SpawnPlayer(i);
  720. SetPlayerHealth(i,100);
  721. }
  722. RecreateObject();
  723. RefreshObject();
  724. Count = -1;
  725. }
  726. return true;
  727. }
  728.  
  729. stock UpdateScoreBar(){
  730. new str[256];
  731. ForPlayers(i){
  732. format(str,256,"~g~%s ~w~vs ~r~%s ~w~I Round: ~g~%02d~w~:~r~%02d ~w~I Score: ~g~%02d~w~:~r~%02d",TeamName[TEAM_HOME],TeamName[TEAM_AWAY],TeamRounds[TEAM_HOME],TeamRounds[TEAM_AWAY],TeamScore[TEAM_HOME],TeamScore[TEAM_AWAY]);
  733. new Float:ratio;
  734. if(Deaths[i] == 0) ratio = Kills[i];
  735. else ratio = float(Kills[i])/float(Deaths[i]);
  736. format(str,256,"%s ~w~I  Kills: ~b~%d ~w~I Deaths: ~b~%d ~w~I Ratio: ~b~%0.2f ~w~I Web: ~g~%s",str,Kills[i],Deaths[i],ratio,DEFAULT_WEB);
  737. TextDrawSetString(Textdraw1[i],str);
  738. }
  739. RefreshObject();
  740. }
  741.  
  742. stock UpdatePlayerScoreBar(i){
  743. new str[256];
  744. format(str,256,"~g~%s ~w~vs ~r~%s ~w~I Round: ~g~%02d~w~:~r~%02d ~w~I Score: ~g~%02d~w~:~r~%02d",TeamName[TEAM_HOME],TeamName[TEAM_AWAY],TeamRounds[TEAM_HOME],TeamRounds[TEAM_AWAY],TeamScore[TEAM_HOME],TeamScore[TEAM_AWAY]);
  745. new Float:ratio;
  746. if(Deaths[i] == 0) ratio = Kills[i];
  747. else ratio = float(Kills[i])/float(Deaths[i]);
  748. format(str,256,"%s ~w~I  Kills: ~b~%d ~w~I Deaths: ~b~%d ~w~I Ratio: ~b~%0.2f ~w~I Web: ~g~%s",str,Kills[i],Deaths[i],ratio,DEFAULT_WEB);
  749. TextDrawSetString(Textdraw1[i],str);
  750. }
  751.  
  752. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  753. {
  754.     if(dialogid == 1)
  755.     {
  756.         if(response) {
  757.         switch(listitem){
  758.         case 0:{
  759.         if(LockTeam == 1){
  760.         new str[100];
  761.         format(str,100,"%s\n%s\nSpecator",TeamName[0],TeamName[1]);
  762.         return ShowPlayerDialog(playerid,1,2,"{FF0000}Teamy su zamknuté",str,"Vybrať","Odpojiť");
  763.         }
  764.         SCMTAF(COLOR_RED,"Hráč %s sa pridal do team %s",Jmeno(playerid),TeamName[0]);
  765.         Team[playerid] = TEAM_HOME;
  766.         SetPlayerColor(playerid,0x003300FF);
  767.         }
  768.         case 1:{
  769.         if(LockTeam == 1){
  770.         new str[100];
  771.         format(str,100,"%s\n%s\nSpecator",TeamName[0],TeamName[1]);
  772.         return ShowPlayerDialog(playerid,1,2,"{FF0000}Teamy su zamknuté",str,"Vybrať","Odpojiť");
  773.         }
  774.         SCMTAF(COLOR_RED,"Hráč %s sa pridal do team %s",Jmeno(playerid),TeamName[1]);
  775.         Team[playerid] = TEAM_AWAY;
  776.         SetPlayerColor(playerid,0xFF0000FF);
  777.         }
  778.         case 2:{
  779.         SCMTAF(COLOR_RED,"Hráč %s sa pridal do team specator",Jmeno(playerid));
  780.         Team[playerid] = TEAM_SPEC;
  781.         SetPlayerColor(playerid,0xFFFF00FF);
  782.         }
  783.         }
  784.         TextDrawShowForPlayer(playerid,Textdraw0);
  785.         TextDrawShowForPlayer(playerid,Textdraw1[playerid]);
  786.         UpdatePlayerScoreBar(playerid);
  787.         if(GetPVarInt(playerid,"ClassSelected") == 1) SpawnPlayer(playerid);
  788.         }else{
  789.         new str[100];
  790.         format(str,100,"%s\n%s\nSpecator",TeamName[0],TeamName[1]);
  791.         ShowPlayerDialog(playerid,1,2,"{FF0000}Teamy su zamknuté",str,"Vybrať","Odpojiť");
  792.         }
  793.         return 1;
  794.     }
  795. if(dialogid == 2){
  796. if(response){
  797. if(!strcmp(ServerPassword,inputtext,false)){
  798. new str[100];
  799. format(str,100,"%s\n%s\nSpecator",TeamName[0],TeamName[1]);
  800. ShowPlayerDialog(playerid,1,2,"Team",str,"Vybrať","Odpojiť");
  801. Team[playerid] = 0;
  802. }else{
  803. return ShowPlayerDialog(playerid,2,1,"Locked","{FF0000}Zlé heslo\n{FFFFFF}Pravdepodobne sa hrá nejaký zápas a preto je server zamknutý,\n zadaj heslo inak ťa to do {FF0000}10{FFFFFF} sekund vyhodí zo servera","Vybrať","Opustiť");
  804. }
  805. }else{
  806. SCMTAF(-1,"Hráč {FF0000}%s{FFFFFF} bol vyhodený - nezadal heslo",Jmeno(playerid));
  807.  Kick(playerid);
  808. }
  809. }
  810.     return 0;
  811. }
  812.  
  813. public LockedServerKick(playerid){
  814. if(!IsPlayerConnected(playerid)) return 0;
  815. if(Team[playerid] == -1){
  816. SCMTAF(-1,"Hráč {FF0000}%s{FFFFFF} bol vyhodený - nezadal heslo",Jmeno(playerid));
  817. Kick(playerid);
  818.  
  819. }
  820. return true;
  821. }
  822. QCMD:class(){
  823. new str[100];
  824. format(str,100,"%s\n%s\nSpecator",TeamName[0],TeamName[1]);
  825. ShowPlayerDialog(playerid,1,2,"Team",str,"Vybrať","Odpojiť");
  826. SetPVarInt(playerid,"ClassSelected",1);
  827. return true;
  828. }
  829.  
  830. QCMD:dm(){
  831. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  832. if(isnull(params)) return SCM(playerid,COLOR_RED,"Použi: /dm [ 0 - 3 ]");
  833. new id = strval(params);
  834. if(id > 3 || id < 0) return SCM(playerid,COLOR_RED,"Použi: /dm [ 0 - 3 ]");
  835. ServerMap = id;
  836. SCMTAF(COLOR_RED,"Administrátor %s zmenil mapu na %s",Jmeno(playerid),ReturnDmName(id));
  837. ForPlayers(i){
  838. SpawnPlayer(i);
  839. SetPlayerHealth(i,100);
  840. }
  841. return true;
  842. }
  843.  
  844. QCMD:stop(){
  845. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  846. ForPlayers(i){ TogglePlayerControllable(i,0); }
  847. stopped = 1;
  848. GameTextForAll("~r~~r~STOP", 1000, 5);
  849. return true;
  850. }
  851.  
  852. QCMD:start(){
  853. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  854. stopped = 0;
  855. if(Count > -1){
  856. new str[10];
  857. format(str,10,"%d",Count);
  858. GameTextForAll(str, 1000, 5);
  859. ForPlayers(i){ TogglePlayerControllable(i,0); }
  860. SetTimer("CountDownPublic",1000,false);
  861. }else{
  862. GameTextForAll("~g~~g~START", 1000, 5);
  863. ForPlayers(i){ TogglePlayerControllable(i,1); }
  864. }
  865. return true;
  866. }
  867.  
  868. QCMD:count(){
  869. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  870. CountDown(strval(params));
  871. return true;
  872. }
  873.  
  874. QCMD:weapon(){
  875. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  876. if(isnull(params)) return SCM(playerid,COLOR_RED,"Použi: /weapon [ 1 - 46 ]");
  877. new id = strval(params);
  878. if(id > 46 || id < 1) return SCM(playerid,COLOR_RED,"Použi: /weapon [ 1 - 46 ]");
  879. Weapon = id;
  880. new name[60];
  881. GetWeaponName(id,name,60);
  882. SCMTAF(COLOR_RED,"Administrátor %s nastavil zbraň %s",Jmeno(playerid),name);
  883. ForPlayers(i){
  884. SpawnPlayer(i);
  885. SetPlayerHealth(i,100);
  886. }
  887. return true;
  888. }
  889.  
  890. QCMD:kill(){
  891. SCMTAF(-1,"Hráč {FF0000}%s{FFFFFF} sa zabil",Jmeno(playerid));
  892. SetPlayerHealth(playerid,-1);
  893. return true;
  894. }
  895.  
  896. QCMD:jetpack(){
  897. if(Team[playerid] != TEAM_SPEC) return SCM(playerid,-1,"Niesi v týmu specator !");
  898. SetPlayerSpecialAction(playerid,SPECIAL_ACTION_USEJETPACK);
  899. return true;
  900. }
  901.  
  902. QCMD:spec(){
  903. if(Team[playerid] != TEAM_SPEC) return SCM(playerid,-1,"Niesi v týmu specator !");
  904. if(isnull(params)) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /spec ID");
  905. new id = strval(params);
  906. if(!IsPlayerConnected(id)) return  SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Hráč nieje online");
  907. Spec[playerid] = id;
  908. TogglePlayerSpectating(playerid, 1);
  909. PlayerSpectatePlayerEx(playerid, id);
  910. return true;
  911. }
  912.  
  913. QCMD:specoff(){
  914. Spec[playerid] = -1;
  915. TogglePlayerSpectating(playerid, 0);
  916. return true;
  917. }
  918.  
  919. QCMD:unbug(){
  920. SCMTAF(-1,"Hráč {FF0000}%s{FFFFFF} sa unbugol",Jmeno(playerid));
  921. new Float:health;
  922. new Float:x, Float:y, Float:z;
  923. GetPlayerPos(playerid,x,y,z);
  924. GetPlayerHealth(playerid,health);
  925. SpawnPlayer(playerid);
  926. SetPlayerPos(playerid,x,y,z);
  927. SetPlayerHealth(playerid,health);
  928. return true;
  929. }
  930.  
  931. QCMD:return(){
  932. SCMTAF(-1,"Hráč {FF0000}%s{FFFFFF} sa respawnol",Jmeno(playerid));
  933. SpawnPlayer(playerid);
  934. SetPlayerHealth(playerid,100);
  935. return true;
  936. }
  937.  
  938. QCMD:teamname(){
  939. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  940. new team,name[50];
  941. if(sscanf(params,"is",team,name)) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /teamname 0-1 nazov");
  942. if(team > 1 || team < 0) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /teamname 0-1 nazov");
  943. SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} zmenil tým {FF0000}%s{FFFFFF} na {FF0000}%s",Jmeno(playerid),TeamName[team],name);
  944. format(TeamName[team],50,"%s",name);
  945. UpdateScoreBar();
  946. return true;
  947. }
  948.  
  949. QCMD:freeze(){
  950. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  951. if(isnull(params)) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /freeze ID");
  952. new id = strval(params);
  953. if(!IsPlayerConnected(id)) return  SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Hráč nieje online");
  954. TogglePlayerControllable(id,0);
  955. SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} zmrazil hráča {FF0000}%s",Jmeno(playerid),Jmeno(id));
  956. return true;
  957. }
  958.  
  959. QCMD:unfreeze(){
  960. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  961. if(isnull(params)) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /unfreeze ID");
  962. new id = strval(params);
  963. if(!IsPlayerConnected(id)) return  SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Hráč nieje online");
  964. TogglePlayerControllable(id,1);
  965. SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} odmrazil hráča {FF0000}%s",Jmeno(playerid),Jmeno(id));
  966. return true;
  967. }
  968.  
  969. QCMD:mute(){
  970. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  971. if(isnull(params)) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /mute ID");
  972. new id = strval(params);
  973. if(!IsPlayerConnected(id)) return  SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Hráč nieje online");
  974. SetPVarInt(id,"Muted",1);
  975. SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} umlčal hráča {FF0000}%s",Jmeno(playerid),Jmeno(id));
  976. return true;
  977. }
  978. QCMD:unmute(){
  979. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  980. if(isnull(params)) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /unmute ID");
  981. new id = strval(params);
  982. if(!IsPlayerConnected(id)) return  SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Hráč nieje online");
  983. DeletePVar(id,"Muted");
  984. SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} odmlčal hráča {FF0000}%s",Jmeno(playerid),Jmeno(id));
  985. return true;
  986. }
  987.  
  988. QCMD:ip(){
  989. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  990. if(isnull(params)) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /unmute ID");
  991. new id = strval(params);
  992. if(!IsPlayerConnected(id)) return  SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Hráč nieje online");
  993. new str[1000];
  994. new cesta[50];
  995. format(cesta,50,IPFILE,Ip(id));
  996. new File:a = fopen(cesta,io_read);
  997. new str2[128];
  998. format(str,1000,"Hráč %s mal tieto nicky:\n",Jmeno(id));
  999. while(fread(a,str2)){
  1000. strcat(str,str2);
  1001. }
  1002. fclose(a);
  1003. ShowPlayerDialog(playerid,3,0,"Anti-Fake",str,"OK","");
  1004. return true;
  1005. }
  1006.  
  1007. stock Ip(i){
  1008. new x[20];
  1009. GetPlayerIp(i,x,20);
  1010. return x;
  1011. }
  1012.  
  1013. QCMD:ban(){
  1014. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  1015. new id,dovod[100];
  1016. if(isnull(params)) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /ban ID DOVOD");
  1017. if(sscanf(params,"is",id,dovod)) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /ban ID DOVOD");
  1018. if(!IsPlayerConnected(id)) return  SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Hráč nieje online");
  1019. SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} zabanoval hráča {FF0000}%s {FFFFFF}[{FF0000}%s{FFFFFF}]",Jmeno(playerid),Jmeno(id),dovod);
  1020. BanEx(id,dovod);
  1021. return true;
  1022. }
  1023. QCMD:kick(){
  1024. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  1025. new id,dovod[100];
  1026. if(isnull(params)) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /kick ID DOVOD");
  1027. if(sscanf(params,"is",id,dovod)) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /kick ID DOVOD");
  1028. if(!IsPlayerConnected(id)) return  SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Hráč nieje online");
  1029. SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} kickol hráča {FF0000}%s {FFFFFF}[{FF0000}%s{FFFFFF}]",Jmeno(playerid),Jmeno(id),dovod);
  1030. Kick(id);
  1031. return true;
  1032. }
  1033. QCMD:spawn(){
  1034. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  1035. if(isnull(params)) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /spawn ID");
  1036. new id = strval(params);
  1037. if(!IsPlayerConnected(id)) return  SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Hráč nieje online");
  1038. SpawnPlayer(id);
  1039. SetPlayerHealth(id,100);
  1040. SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} respawnol hráča {FF0000}%s",Jmeno(playerid),Jmeno(id));
  1041. return true;
  1042. }
  1043. QCMD:spawnall(){
  1044. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  1045. ForPlayers(i){
  1046. if(Team[i] != TEAM_SPEC){
  1047. SpawnPlayer(i);
  1048. SetPlayerHealth(i,100);
  1049. }
  1050. }
  1051. SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} respawnol všetkých hráčov",Jmeno(playerid));
  1052. return true;
  1053. }
  1054. QCMD:hp(){
  1055. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  1056. if(isnull(params)) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /hp ID");
  1057. new id = strval(params);
  1058. if(!IsPlayerConnected(id)) return  SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Hráč nieje online");
  1059. SetPlayerHealth(id,100);
  1060. SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} doplnil život hráčovy {FF0000}%s",Jmeno(playerid),Jmeno(id));
  1061. return true;
  1062. }
  1063. QCMD:hpall(){
  1064. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  1065. ForPlayers(i){
  1066. SpawnPlayer(i);
  1067. SetPlayerHealth(i,100);
  1068. }
  1069. SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} doplnil život všetkým hráčom",Jmeno(playerid));
  1070. return true;
  1071. }
  1072.  
  1073. QCMD:pointsaway(){
  1074. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  1075. if(isnull(params)) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /pointsaway 0-30");
  1076. new id = strval(params);
  1077. if(id > 30 || id < 0) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /pointsaway 0-30");
  1078. TeamScore[TEAM_AWAY]  = id;
  1079. SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} nastavil score teamu {FF0000}%s{FFFFFF} na {FF0000}%d",Jmeno(playerid),TeamName[TEAM_AWAY],id);
  1080. UpdateScoreBar();
  1081. return true;
  1082. }
  1083. QCMD:pointshome(){
  1084. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  1085. if(isnull(params)) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /pointshome 0-30");
  1086. new id = strval(params);
  1087. if(id > 30 || id < 0) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /pointshome 0-30");
  1088. TeamScore[TEAM_HOME]  = id;
  1089. SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} nastavil score teamu {FF0000}%s{FFFFFF} na {FF0000}%d",Jmeno(playerid),TeamName[TEAM_HOME],id);
  1090. UpdateScoreBar();
  1091. return true;
  1092. }
  1093. QCMD:rounds(){
  1094. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  1095. if(isnull(params)) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /rounds 1-5");
  1096. new id = strval(params);
  1097. if(id > 5 || id < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /rounds 1-5");
  1098. MaxRounds  = id;
  1099. SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} nastavil počet kôl na {FF0000}%d",Jmeno(playerid),id);
  1100. SCMTAF(-1,"Odteraz sa hrá %dx%d",MaxRounds,MaxRoundScore);
  1101. return true;
  1102. }
  1103. QCMD:roundscore(){
  1104. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  1105. if(isnull(params)) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /roundscore 1-100");
  1106. new id = strval(params);
  1107. if(id > 100 || id < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /roundscore 1-100");
  1108. MaxRoundScore  = id;
  1109. SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} nastavil počet kôl na {FF0000}%d",Jmeno(playerid),id);
  1110. SCMTAF(-1,"Odteraz sa hrá %dx%d",MaxRounds,MaxRoundScore);
  1111. return true;
  1112. }
  1113. QCMD:home(){
  1114. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  1115. if(isnull(params)) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /home ID");
  1116. new id = strval(params);
  1117. if(!IsPlayerConnected(id)) return  SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Hráč nieje online");
  1118. Team[id] = TEAM_HOME;
  1119. SpawnPlayer(id);
  1120. SetPlayerColor(id,0x003300FF);
  1121. SetPlayerHealth(id,100);
  1122. SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} pridal hráča {FF0000}%s{FFFFFF} do týmu {FF0000}%s",Jmeno(playerid),Jmeno(id),TeamName[TEAM_HOME]);
  1123. return true;
  1124. }
  1125. QCMD:away(){
  1126. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  1127. if(isnull(params)) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /away ID");
  1128. new id = strval(params);
  1129. if(!IsPlayerConnected(id)) return  SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Hráč nieje online");
  1130. Team[id] = TEAM_AWAY;
  1131. SpawnPlayer(id);
  1132. SetPlayerColor(id,0xFF0000FF);
  1133. SetPlayerHealth(id,100);
  1134. SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} pridal hráča {FF0000}%s{FFFFFF} do týmu {FF0000}%s",Jmeno(playerid),Jmeno(id),TeamName[TEAM_AWAY]);
  1135. return true;
  1136. }
  1137. QCMD:reset(){
  1138. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  1139. TeamScore[TEAM_HOME] = 0;
  1140. TeamScore[TEAM_AWAY] = 0;
  1141. SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} resetoval score",Jmeno(playerid));
  1142. UpdateScoreBar();
  1143. return true;
  1144. }
  1145. QCMD:divak(){
  1146. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  1147. if(isnull(params)) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /divak ID");
  1148. new id = strval(params);
  1149. if(!IsPlayerConnected(id)) return  SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Hráč nieje online");
  1150. Team[id] = TEAM_SPEC;
  1151. SpawnPlayer(id);
  1152. SetPlayerColor(id,0xFFFF00FF);
  1153. SetPlayerHealth(id,100);
  1154. SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} pridal hráča {FF0000}%s{FFFFFF} do týmu {FF0000}Diváci",Jmeno(playerid),Jmeno(id));
  1155. return true;
  1156. }
  1157.  
  1158. QCMD:resetall(){
  1159. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  1160. TeamScore[TEAM_HOME] = 0;
  1161. TeamScore[TEAM_AWAY] = 0;
  1162. TeamRounds[TEAM_HOME] = 0;
  1163. TeamRounds[TEAM_AWAY] = 0;
  1164. SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} resetoval celkové score",Jmeno(playerid));
  1165. UpdateScoreBar();
  1166. return true;
  1167. }
  1168. QCMD:resetplayer(){
  1169. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  1170. ForPlayers(i){
  1171. SetPlayerScore(i,0);
  1172. Kills[i] = 0;
  1173. Deaths[i] = 0;
  1174. TeamKills[i] = 0;
  1175. }
  1176. SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} resetoval štatistiky hráčov",Jmeno(playerid));
  1177. UpdateScoreBar();
  1178. return true;
  1179. }
  1180. QCMD:lockserver(){
  1181. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  1182. if(isnull(params)) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /luckserver HESLO");
  1183. if(!params[2] || strlen(params) > 49) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /luckserver HESLO");
  1184. format(ServerPassword,50,"%s",params);
  1185. SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} nastavil heslo na servera {FF0000}%s",Jmeno(playerid),params);
  1186. return true;
  1187. }
  1188. QCMD:unlockserver(){
  1189. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  1190. format(ServerPassword,50," ");
  1191. SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} odomkol server",Jmeno(playerid));
  1192. return true;
  1193. }
  1194.  
  1195. QCMD:lockteam(){
  1196. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  1197. if(isnull(params)) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /luckserver 0-1");
  1198. new id = strval(params);
  1199. if(id > 1 || id < 0) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /luckserver 0-1");
  1200. LockTeam = id;
  1201. if( id == 1){SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} zamkol teamy",Jmeno(playerid));
  1202. }else{ SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} odomkol teamy",Jmeno(playerid));
  1203. }
  1204. return true;
  1205. }
  1206.  
  1207. QCMD:fps(){
  1208. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  1209. if(isnull(params)) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /fps ID");
  1210. new id = strval(params);
  1211. if(!IsPlayerConnected(id)) return  SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Hráč nieje online");
  1212. SCMTAF(-1,"Hráč {FF0000}%s{FFFFFF} má {FF0000}%d {FFFFFF}FPS",Jmeno(id),GetPlayerFPS(id));
  1213. return true;
  1214. }
  1215.  
  1216.  
  1217. QCMD:fpsall(){
  1218. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  1219. ForPlayers(i){
  1220. SCMTAF(-1,"Hráč {FF0000}%s{FFFFFF} má {FF0000}%d {FFFFFF}FPS",Jmeno(i),GetPlayerFPS(i));
  1221. }
  1222. return true;
  1223. }
  1224.  
  1225. QCMD:register(){
  1226. if(isnull(params)) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /register heslo");
  1227. if(strlen(params) < 4) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /register heslo");
  1228. new s[128];
  1229. format(s,128,"%s.txt",Jmeno(playerid));
  1230. if(fexist(s)) return SCM(playerid,0xFF0000FF,"Už si registrovaný, použi /login");
  1231. new File:f = fopen(s,io_write);
  1232. format(s,128,"%s\r\n0",qhash(params));
  1233. SetPVarString(playerid,"Pass",qhash(params));
  1234. fwrite(f,s);
  1235. fclose(f);
  1236. SetPVarInt(playerid,"Logged",1);
  1237. SCMF(playerid,-1,"Úspešne registrovaný, heslo {FF0000}%s",params);
  1238. return true;
  1239. }
  1240.  
  1241. QCMD:login(){
  1242. if(isnull(params)) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /login heslo");
  1243. new s[128];
  1244. format(s,128,"%s.txt",Jmeno(playerid));
  1245. if(!fexist(s)) return SCM(playerid,0xFF0000FF,"Niesi registrovaný, použi /register");
  1246. new File:f = fopen(s,io_read);
  1247. fread(f,s);
  1248. DelChar(s);
  1249. if(strval(s) != num_hash(params)) return SCM(playerid,0xFF0000FF,"Zlé heslo");
  1250. SetPVarString(playerid,"Pass",s);
  1251. fread(f,s);
  1252. Admin[playerid] = strval(s);
  1253. fclose(f);
  1254. SetPVarInt(playerid,"Logged",1);
  1255. SCMF(playerid,-1,"Úspešne prihlásený, admin level %d",Admin[playerid]);
  1256. return true;
  1257. }
  1258.  
  1259. QCMD:setadmin(){
  1260. new id,level;
  1261. if(!IsPlayerAdmin(playerid)){
  1262. if(Admin[playerid] < 2) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Niesi admin");
  1263.  
  1264. }
  1265. if(sscanf(params,"ii",id,level)) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /setadmin id 0-2");
  1266. if(!IsPlayerConnected(id)) return  SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Hráč nieje online");
  1267. if(level > 2 || level < 0) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /setadmin id 0-2");
  1268. if(GetPVarInt(id,"Logged") != 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Hráč nieje registrovaný/prihlásený");
  1269. new get[128],s[50];
  1270. format(s,50,"%s.txt",Jmeno(id));
  1271. GetPVarString(id,"Pass",get,128);
  1272. new File:f = fopen(s,io_write);
  1273. format(s,128,"%s\r\n%d",get,level);
  1274. fwrite(f,s);
  1275. fclose(f);
  1276. Admin[id] = level;
  1277. SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} dal hráčovy {FF0000}%s {FFFFFF}admin level {FF0000}%d",Jmeno(playerid),Jmeno(id),level);
  1278. return true;
  1279. }
  1280.  
  1281. QCMD:cw(){
  1282. if(isnull(params)) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /cw 0-1");
  1283. new id = strval(params);
  1284. if(id > 1 || id < 0) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /cw 0-1");
  1285. if(id == 0) SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} spustil {FF0000}TG {FFFFFF}mód, odteraz sa nebude pripočítavať score",Jmeno(playerid),id);
  1286. else SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} spustil {FF0000}CW {FFFFFF}mód, odteraz sa bude pripočítavať score",Jmeno(playerid),id);
  1287. Trening = id;
  1288. return true;
  1289. }
  1290.  
  1291. QCMD:help(){
  1292. new string[600];
  1293. strcat(string,"{FF0000}All: {FFFFFF}/class /kill /return /unbug\n");
  1294. strcat(string,"{FFFFFF}/register /login /credits\n");
  1295. strcat(string,"{FFFF00}Spec: {FFFFFF}/spec /specoff /jetpack\n");
  1296. if(Admin[playerid] > 0){
  1297. strcat(string,"{FF0000}Level 1: {FFFFFF}/dm /stop /start /count /weapon\n");
  1298. strcat(string,"{FFFFFF}/teamname /freeze /unfreeze /mute /unmute\n");
  1299. strcat(string,"{FFFFFF}/ban /kick /spawn /spawnall /hp /hpall /cw\n");
  1300. strcat(string,"{FFFFFF}/pointshome /pointsaway /rounds /roundscore\n");
  1301. strcat(string,"{FFFFFF}/home /away /divak /reset /resetall\n");
  1302. strcat(string,"{FFFFFF}/resetplayer /car /dcar /refreshobject\n");
  1303. strcat(string,"{FFFFFF}/lockserver /unlockserver /lockteam /fps /fpsall\n");
  1304. strcat(string,"{FF0000}Level 2: {FFFFFF}/setadmin");
  1305. }
  1306. if(IsPlayerAdmin(playerid)){
  1307.  
  1308. strcat(string,"\n{FF0000}Rcon: {FFFFFF}/testab /testcleo");
  1309. }
  1310. ShowPlayerDialog(playerid,3,0,"Príkazy",string,"Exit","");
  1311. return true;
  1312. }
  1313.  
  1314. QCMD:credits(){
  1315. SCM(playerid,0x00FF00AA,"=============== CSSR ===============");
  1316. SCM(playerid,0xFF0000AA,"Tvorca módu:  {FFFFFF}QWER");
  1317. SCM(playerid,0xFF0000AA,"Kontakt:       {FFFFFF}danis1999@gmail.com");
  1318. SCM(playerid,0xFF0000AA,"               {FFFFFF}pawno.cz -> SZ");
  1319. SCM(playerid,0xFF0000AA,"Skype:         {FFFFFF}denis.granec");
  1320. SCM(playerid,0x00FF00AA,"====================================");
  1321. return true;
  1322. }
  1323.  
  1324. QCMD:refreshobject(){
  1325. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  1326. RecreateObject();
  1327. RefreshObject();
  1328. SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} refreshol objekty",Jmeno(playerid));
  1329. return true;
  1330. }
  1331.  
  1332. QCMD:car(){
  1333. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  1334. if(isnull(params)) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /car 400 - 611");
  1335. new id = strval(params);
  1336. if(id > 611 || id < 400) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} /car 400 - 611");
  1337. if(CarsCount == 50) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Už je 50 aut vytvorených, použi /dcar");
  1338. new Float:X,Float:Y,Float:Z,Float:A;
  1339. GetPlayerPos(playerid, X,Y,Z);
  1340. GetPlayerFacingAngle(playerid, A);
  1341. Cars[CarsCount] = CreateVehicle(id,X+5,Y+5,Z,A+90,random(128),random(128),-1);
  1342. CarsCount++;
  1343. SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} vytvoril auto %d (%d/50)",Jmeno(playerid),id,CarsCount);
  1344. return true;
  1345. }
  1346.  
  1347. QCMD:dcar(){
  1348. if(Admin[playerid] < 1) return SCM(playerid,0xFF0000FF,"Použi:{FFFFFF} Nemáš dostatočný admin level !");
  1349. for(new i; i < CarsCount;i++){
  1350. DestroyVehicle(Cars[i]);
  1351. }
  1352. SCMTAF(-1,"Administrátor {FF0000}%s{FFFFFF} vymazal autá (%d)",Jmeno(playerid),CarsCount);
  1353. CarsCount = 0;
  1354. return true;
  1355. }
  1356.  
  1357. public OnPlayerKeyStateChange(playerid,newkeys,oldkeys){
  1358. if(Spec[playerid] > -1){
  1359. if(newkeys == KEY_WALK){
  1360. new nasiel = -1;
  1361.  
  1362. for(new id=Spec[playerid]-1; id <= 0;id--){
  1363. if(IsPlayerConnected(id)){
  1364. if(GetPlayerState(id) != PLAYER_STATE_SPECTATING){
  1365. nasiel = id;
  1366. break;
  1367. }
  1368. }
  1369. }
  1370.  
  1371. if(nasiel != -1){
  1372. Spec[playerid] = nasiel;
  1373. TogglePlayerSpectating(playerid, 1);
  1374. PlayerSpectatePlayerEx(playerid, nasiel);
  1375. }else{
  1376. for(new id=Spec[playerid]+1; id <= Connects;id++){
  1377. if(id == Spec[playerid]) break;
  1378. if(IsPlayerConnected(id)){
  1379. if(GetPlayerState(id) != PLAYER_STATE_SPECTATING){
  1380. nasiel = id;
  1381. break;
  1382. }
  1383. }
  1384. }
  1385.  
  1386. if(nasiel != -1){
  1387. Spec[playerid] = nasiel;
  1388. TogglePlayerSpectating(playerid, 1);
  1389. PlayerSpectatePlayerEx(playerid, nasiel);
  1390. }
  1391.  
  1392. }
  1393. }
  1394. else if(newkeys == KEY_JUMP){
  1395. new nasiel = -1;
  1396.  
  1397. for(new id=Spec[playerid]+1; id <= Connects;id++){
  1398. if(id == Spec[playerid]) break;
  1399. if(IsPlayerConnected(id)){
  1400. if(GetPlayerState(id) != PLAYER_STATE_SPECTATING){
  1401. nasiel = id;
  1402. break;
  1403. }
  1404. }
  1405. }
  1406.  
  1407. if(nasiel != -1){
  1408. Spec[playerid] = nasiel;
  1409. TogglePlayerSpectating(playerid, 1);
  1410. PlayerSpectatePlayerEx(playerid, nasiel);
  1411. }else{
  1412. for(new id=Spec[playerid]-1; id <= 0;id--){
  1413. if(id == Spec[playerid]) break;
  1414. if(IsPlayerConnected(id)){
  1415. if(GetPlayerState(id) != PLAYER_STATE_SPECTATING){
  1416. nasiel = id;
  1417. break;
  1418. }
  1419. }
  1420. }
  1421.  
  1422. if(nasiel != -1){
  1423. Spec[playerid] = nasiel;
  1424. TogglePlayerSpectating(playerid, 1);
  1425. PlayerSpectatePlayerEx(playerid, nasiel);
  1426. }
  1427.  
  1428. }
  1429.  
  1430. }
  1431. }
  1432. return true;
  1433. }
  1434.  
  1435.  
  1436.  
  1437. public HideWin(){
  1438. TextDrawHideForAll(Textdraw01);
  1439. TextDrawHideForAll(Textdraw100);
  1440. TextDrawHideForAll(Textdraw2);
  1441. TextDrawHideForAll(Textdraw3);
  1442. TextDrawHideForAll(Textdraw4);
  1443. TextDrawHideForAll(Textdraw5);
  1444. TextDrawHideForAll(Textdraw6);
  1445. TextDrawHideForAll(Textdraw7);
  1446. TextDrawHideForAll(Textdraw8);
  1447. TextDrawHideForAll(Textdraw9);
  1448. TextDrawHideForAll(Textdraw10);
  1449. TextDrawHideForAll(Textdraw11);
  1450. TextDrawHideForAll(Textdraw12);
  1451. TextDrawHideForAll(Textdraw13);
  1452. TextDrawHideForAll(Textdraw14);
  1453. ForPlayers(i){ TogglePlayerControllable(i,1); }
  1454. return true;
  1455. }
  1456.  
  1457. stock ReturnDmName(id){
  1458. new s[25];
  1459. if(id == 0) format(s,25,"Baseball");
  1460. else if(id == 1) format(s,25,"Hangáry");
  1461. else if(id == 2) format(s,25,"Letisko");
  1462. else format(s,25,"Autoškola");
  1463. return s;
  1464. }
  1465.  
  1466. public OnPlayerCommandText(playerid,cmdtext[]){
  1467. return OnPlayerCommand(playerid,cmdtext);
  1468. }
  1469.  
  1470. stock Jmeno(playerid){
  1471. new n[MAX_PLAYER_NAME];
  1472. GetPlayerName(playerid,n,MAX_PLAYER_NAME);
  1473. return n;
  1474. }
  1475.  
  1476. stock ClearKillList()
  1477. {
  1478.    for(new l=0; l<6; l++) SendDeathMessage(202, 202, 202);
  1479. }
  1480.  
  1481. stock RefreshObject(){
  1482. new str[100];
  1483. format(str,100,"{00FF00}%d{FFFFFF}:{FF0000}%d",TeamScore[TEAM_HOME],TeamScore[TEAM_AWAY]);
  1484. for(new i; i < 9;i++){
  1485. DestroyObject(Object[i]);
  1486. Object[i] = CreateObject(7914, Objects[i][0], Objects[i][1], Objects[i][2],   0.00, 0.00,  Objects[i][3]);
  1487. SetObjectMaterialText(Object[i],str, 0, OBJECT_MATERIAL_SIZE_256x128,"Arial", 60, 0, 0xFFFF8200, 0xFF000000, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
  1488. }
  1489.  
  1490. }
  1491. /*
  1492.     Object[0] = CreateObject(7914, 1337.74, 2094.88, 20.58,   0.00, 0.00, 180.00);
  1493.     Object[1] = CreateObject(7914, 1292.11, 2143.55, 20.14,   0.00, 0.00, 90.00);
  1494.     Object[2] = CreateObject(7914, 1663.00, 8293.00, 734.00,   0.00, 0.00, 0.00);
  1495.     Object[3] = CreateObject(7914, 1664.21, 734.22, 13.11,   0.00, 0.00, 0.00);
  1496.     Object[4] = CreateObject(7914, 1663.94, 706.63, 13.11,   0.00, 0.00, 180.04);
  1497.     Object[5] = CreateObject(7914, -1234.09, -84.41, 16.39,   0.00, 0.00, -44.94);
  1498.     Object[6] = CreateObject(7914, -1195.23, -131.88, 16.39,   0.00, 0.00, -44.94);
  1499.     Object[7] = CreateObject(7914, -2096.01, -188.82, 37.45,   0.00, 0.00, 90.04);
  1500.     Object[8] = CreateObject(7914, -2011.62, -189.27, 37.45,   0.00, 0.00, -90.04);
  1501. */
  1502. stock RecreateObject(){
  1503. new str[100];
  1504. format(str,100,"{00FF00}%d{FFFFFF}:{FF0000}%d",TeamScore[TEAM_HOME],TeamScore[TEAM_AWAY]);
  1505. for(new i; i < 9;i++){
  1506. DestroyObject(Object[i]);
  1507. Object[i] = CreateObject(7914, Objects[i][0], Objects[i][1], Objects[i][2],   0.00, 0.00,  Objects[i][3]);
  1508. SetObjectMaterialText(Object[i],str, 0, OBJECT_MATERIAL_SIZE_256x128,"Arial", 60, 0, 0xFFFF8200, 0xFF000000, OBJECT_MATERIAL_TEXT_ALIGN_CENTER);
  1509. }
  1510.  
  1511. }
  1512.  
  1513. stock OnPlayerCommand(playerid,command[])
  1514. {
  1515.         new     cmd[50],callback[55], params[128], size, len = strlen(command),help;
  1516.                 for(new i; i < len;i++){
  1517.                 if(command[i] != ' '){
  1518.                 if(command[i] >= 'A' && command[i] <= 'Z'){
  1519.                 command[i] += 32;
  1520.                 }
  1521.                 }else{
  1522.                 size = i;
  1523.                 break;
  1524.                 }}
  1525.  
  1526.                 if(size > 0){
  1527.                 strmid(cmd,command,1,size,50);
  1528.                 strmid(params,command,size+1,len,128);
  1529.                 }else{
  1530.                 format(cmd,50,command[1]);
  1531.                 }
  1532.  
  1533.         if(!params[0]) params = " ";
  1534.         if(!strcmp(params,"help")) help = 1;
  1535.         format(callback,50,"cmd_%s",cmd);
  1536.                 if(CallLocalFunction(callback,"isi",playerid,params,help))
  1537.         {
  1538.                 return true;
  1539.                         }else{
  1540.                         return false;
  1541.         }
  1542. }
  1543.  
  1544. stock GetPlayerFPS(playerid) return pFPS[playerid];
  1545.  
  1546.  
  1547. stock DelChar(tstring[])
  1548. {
  1549. new ln = strlen(tstring);
  1550. if(tstring[ln-2] == '\r')tstring[ln-2] = '\0';
  1551. if(tstring[ln-1] == '\n')tstring[ln-1] = '\0';
  1552. }
  1553.  
  1554. stock fcreate(file[])
  1555.     {
  1556.         if(fexist(file)) return false;
  1557.         new File:cFile = fopen(file,io_write);
  1558.         return fclose(cFile);
  1559.     }
  1560.    
  1561. stock num_hash(buf[])
  1562.  {
  1563.     new length=strlen(buf);
  1564.     new s1 = 1;
  1565.     new s2 = 0;
  1566.     new n;
  1567.     for (n=0; n<length; n++) {
  1568.        s1 = (s1 + buf[n]) % 65521;
  1569.        s2 = (s2 + s1)     % 65521;
  1570.     }
  1571.     return (s2 << 16) + s1;
  1572.  }
  1573.  
  1574. stock qhash(str2[]) {
  1575.    new tmpdasdsa[128];
  1576.    tmpdasdsa[0]=0;
  1577.    valstr(tmpdasdsa,num_hash(str2));
  1578.    return tmpdasdsa;
  1579. }
  1580.  
  1581.  
  1582. stock sscanf(string[], format[], {Float,_}:...)
  1583. {
  1584.     #if defined isnull
  1585.         if (isnull(string))
  1586.     #else
  1587.         if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
  1588.     #endif
  1589.         {
  1590.             return format[0];
  1591.         }
  1592.     #pragma tabsize 4
  1593.     new
  1594.         formatPos = 0,
  1595.         stringPos = 0,
  1596.         paramPos = 2,
  1597.         paramCount = numargs(),
  1598.         delim = ' ';
  1599.     while (string[stringPos] && string[stringPos] <= ' ')
  1600.     {
  1601.         stringPos++;
  1602.     }
  1603.     while (paramPos < paramCount && string[stringPos])
  1604.     {
  1605.         switch (format[formatPos++])
  1606.         {
  1607.             case '\0':
  1608.             {
  1609.                 return 0;
  1610.             }
  1611.             case 'i', 'd':
  1612.             {
  1613.                 new
  1614.                     neg = 1,
  1615.                     num = 0,
  1616.                     ch = string[stringPos];
  1617.                 if (ch == '-')
  1618.                 {
  1619.                     neg = -1;
  1620.                     ch = string[++stringPos];
  1621.                 }
  1622.                 do
  1623.                 {
  1624.                     stringPos++;
  1625.                     if ('0' <= ch <= '9')
  1626.                     {
  1627.                         num = (num * 10) + (ch - '0');
  1628.                     }
  1629.                     else
  1630.                     {
  1631.                         return -1;
  1632.                     }
  1633.                 }
  1634.                 while ((ch = string[stringPos]) > ' ' && ch != delim);
  1635.                 setarg(paramPos, 0, num * neg);
  1636.             }
  1637.             case 'h', 'x':
  1638.             {
  1639.                 new
  1640.                     num = 0,
  1641.                     ch = string[stringPos];
  1642.                 do
  1643.                 {
  1644.                     stringPos++;
  1645.                     switch (ch)
  1646.                     {
  1647.                         case 'x', 'X':
  1648.                         {
  1649.                             num = 0;
  1650.                             continue;
  1651.                         }
  1652.                         case '0' .. '9':
  1653.                         {
  1654.                             num = (num << 4) | (ch - '0');
  1655.                         }
  1656.                         case 'a' .. 'f':
  1657.                         {
  1658.                             num = (num << 4) | (ch - ('a' - 10));
  1659.                         }
  1660.                         case 'A' .. 'F':
  1661.                         {
  1662.                             num = (num << 4) | (ch - ('A' - 10));
  1663.                         }
  1664.                         default:
  1665.                         {
  1666.                             return -1;
  1667.                         }
  1668.                     }
  1669.                 }
  1670.                 while ((ch = string[stringPos]) > ' ' && ch != delim);
  1671.                 setarg(paramPos, 0, num);
  1672.             }
  1673.             case 'c':
  1674.             {
  1675.                 setarg(paramPos, 0, string[stringPos++]);
  1676.             }
  1677.             case 'f':
  1678.             {
  1679.  
  1680.                 new changestr[16], changepos = 0, strpos = stringPos;
  1681.                 while(changepos < 16 && string[strpos] && string[strpos] != delim)
  1682.                 {
  1683.                     changestr[changepos++] = string[strpos++];
  1684.                     }
  1685.                 changestr[changepos] = '\0';
  1686.                 setarg(paramPos,0,_:floatstr(changestr));
  1687.             }
  1688.             case 'p':
  1689.             {
  1690.                 delim = format[formatPos++];
  1691.                 continue;
  1692.             }
  1693.             case '\'':
  1694.             {
  1695.                 new
  1696.                     end = formatPos - 1,
  1697.                     ch;
  1698.                 while ((ch = format[++end]) && ch != '\'') {}
  1699.                 if (!ch)
  1700.                 {
  1701.                     return -1;
  1702.                 }
  1703.                 format[end] = '\0';
  1704.                 if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
  1705.                 {
  1706.                     if (format[end + 1])
  1707.                     {
  1708.                         return -1;
  1709.                     }
  1710.                     return 0;
  1711.                 }
  1712.                 format[end] = '\'';
  1713.                 stringPos = ch + (end - formatPos);
  1714.                 formatPos = end + 1;
  1715.             }
  1716.             case 'u':
  1717.             {
  1718.                 new
  1719.                     end = stringPos - 1,
  1720.                     id = 0,
  1721.                     bool:num = true,
  1722.                     ch;
  1723.                 while ((ch = string[++end]) && ch != delim)
  1724.                 {
  1725.                     if (num)
  1726.                     {
  1727.                         if ('0' <= ch <= '9')
  1728.                         {
  1729.                             id = (id * 10) + (ch - '0');
  1730.                         }
  1731.                         else
  1732.                         {
  1733.                             num = false;
  1734.                         }
  1735.                     }
  1736.                 }
  1737.                 if (num && IsPlayerConnected(id))
  1738.                 {
  1739.                     setarg(paramPos, 0, id);
  1740.                 }
  1741.                 else
  1742.                 {
  1743.                     #if !defined foreach
  1744.                         #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  1745.                         #define __SSCANF_FOREACH__
  1746.                     #endif
  1747.                     string[end] = '\0';
  1748.                     num = false;
  1749.                     new
  1750.                         name[MAX_PLAYER_NAME];
  1751.                     id = end - stringPos;
  1752.                     foreach (Player, playerid)
  1753.                     {
  1754.                         GetPlayerName(playerid, name, sizeof (name));
  1755.                         if (!strcmp(name, string[stringPos], true, id))
  1756.                         {
  1757.                             setarg(paramPos, 0, playerid);
  1758.                             num = true;
  1759.                             break;
  1760.                         }
  1761.                     }
  1762.                     if (!num)
  1763.                     {
  1764.                         setarg(paramPos, 0, INVALID_PLAYER_ID);
  1765.                     }
  1766.                     string[end] = ch;
  1767.                     #if defined __SSCANF_FOREACH__
  1768.                         #undef foreach
  1769.                         #undef __SSCANF_FOREACH__
  1770.                     #endif
  1771.                 }
  1772.                 stringPos = end;
  1773.             }
  1774.             case 's', 'z':
  1775.             {
  1776.                 new
  1777.                     i = 0,
  1778.                     ch;
  1779.                 if (format[formatPos])
  1780.                 {
  1781.                     while ((ch = string[stringPos++]) && ch != delim)
  1782.                     {
  1783.                         setarg(paramPos, i++, ch);
  1784.                     }
  1785.                     if (!i)
  1786.                     {
  1787.                         return -1;
  1788.                     }
  1789.                 }
  1790.                 else
  1791.                 {
  1792.                     while ((ch = string[stringPos++]))
  1793.                     {
  1794.                         setarg(paramPos, i++, ch);
  1795.                     }
  1796.                 }
  1797.                 stringPos--;
  1798.                 setarg(paramPos, i, '\0');
  1799.             }
  1800.             default:
  1801.             {
  1802.                 continue;
  1803.             }
  1804.         }
  1805.         while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
  1806.         {
  1807.             stringPos++;
  1808.         }
  1809.         while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
  1810.         {
  1811.             stringPos++;
  1812.         }
  1813.         paramPos++;
  1814.     }
  1815.     do
  1816.     {
  1817.         if ((delim = format[formatPos++]) > ' ')
  1818.         {
  1819.             if (delim == '\'')
  1820.             {
  1821.                 while ((delim = format[formatPos++]) && delim != '\'') {}
  1822.             }
  1823.             else if (delim != 'z')
  1824.             {
  1825.                 return delim;
  1826.             }
  1827.         }
  1828.     }
  1829.     while (delim > ' ');
  1830.     return 0;
  1831. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement