Advertisement
Kuddy

[GM]KOAD - Advanced A/D Mode

Aug 14th, 2012
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 37.76 KB | None | 0 0
  1.                                                                                                                                                                                         /*
  2. Created bY Kuddy - [Koman 01]
  3.  
  4. KOAD v0.0.3 BETA por Kuddy
  5.  
  6. Colaboração de Dr_Pawno - [Koman 02]
  7.  
  8. Testers: PanicoVGS [Koman 03] e Dr_Pawno.
  9.  
  10. Códigos externos utilizados:
  11. ZCMD - Por ZeeX
  12. sscanf - Por Y_Less
  13. SII - Por Slick
  14. foreach - por Y_Less
  15.  
  16.  
  17. Licenciado sobre Creative Commons
  18. |       Autorizações de todos os locais que poderá ser postado no tópico original,
  19.         |       Acesse www.KuddyProject.blogspot.com
  20.                 |       Powered by Kuddy
  21. |||
  22.                                                                                                                                                                                                                     */
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31. #include <a_samp>
  32. #include <zcmd>
  33. #include <sscanf2>
  34. #include <SII>
  35. #include <foreach>
  36.  
  37.  
  38.  
  39.  
  40.  
  41. // Defines
  42. #define VERSION 0.0.3
  43.  
  44.  
  45. #define DIALOG_REGISTRO 3001
  46. #define DIALOG_LOGIN 3002
  47. #define DIALOG_CRIAR_ARENA 3003
  48. #define DIALOG_CRIANDO_ARENA 3004
  49. #define DIALOG_CONFIRMAR_CRIACAO 3005
  50.  
  51.  
  52. #define TIME_A 1
  53. #define TIME_B 2
  54.  
  55.  
  56. #define TIME_ATACANTE 3
  57. #define TIME_DEFENSOR 4
  58.  
  59.  
  60. #define COR_BRANCO 0xFFFFFFAA
  61. #define COR_VERMELHO 0xFF0000AA
  62. #define COR_VERDE 0x004000AA
  63. #define COR_AZUL 0x248DF7AA
  64. #define COR_ALARANJADO 0xFF8000AA
  65. #define COR_ROSA 0xFF4AFFAA
  66.  
  67.  
  68. enum pInfo
  69. {
  70.     bool:pLogged,
  71.     pSenha[30],
  72.     pScore,
  73.     pKills,
  74.     pDinheiro,
  75.     pVip,
  76.     pAdmin,
  77.     pMoney,
  78.     pContaID,
  79.     pTime,
  80.     pBanned,
  81.     bool:pInArena,
  82.     bool:afk,
  83.     bool:pDefenserState
  84. }
  85. enum dInfo
  86. {
  87.     Float:LobbyX,
  88.     Float:LobbyY,
  89.     Float:LobbyZ,
  90.     NomeTeamA[30],
  91.     NomeTeamB[30],
  92.     SkinA,
  93.     SkinB,
  94.     TempoDom,
  95.     Arma1,
  96.     Arma2,
  97.     Arma3,
  98.     Mun1,
  99.     Mun2,
  100.     Mun3
  101. }
  102.  
  103. enum mInfo
  104. {
  105.     Float:MapaXA,
  106.     Float:MapaYA,
  107.     Float:MapaZA,
  108.     Float:MapaXB,
  109.     Float:MapaYB,
  110.     Float:MapaZB,
  111.     Float:MapaXC,
  112.     Float:MapaYC,
  113.     Float:MapaZC,
  114.     bool:MapaCriando,
  115.     MapaCriandoNome[64]
  116. }
  117.  
  118. enum sInfo
  119. {
  120.     bool:ActionMode,
  121.     TimeDom,
  122.     CurrentMap[32]
  123. }
  124.  
  125. enum tInfo
  126. {
  127.     Defensores,
  128.     Pontos_A,
  129.     Pontos_B
  130. }
  131.  
  132. new ServerInfo[sInfo];
  133. new MapaInfo[mInfo];
  134. new DataInfo[dInfo];
  135. new PlayerInfo[MAX_PLAYERS][pInfo];
  136. new TeamInfo[tInfo];
  137.  
  138. new currentcontaid;
  139. new carro[MAX_PLAYERS];
  140.  
  141. // Textdraws
  142.  
  143. new Text:Textdraw0,
  144.     Text:Textdraw1,
  145.     Text:Textdraw2,
  146.     Text:Textbox0,
  147.     Text:Textbox1,
  148.     Text:Textbox2,
  149.     Text:Textbox3;
  150.  
  151. // Definiçoes
  152. new TimerGZdom;
  153. new Gangzone;
  154.  
  155.  
  156.  
  157.  
  158. main()
  159. {
  160.     print("-KOAD- -KOAD- -KOAD- -KOAD- -KOAD- -KOAD- ");
  161.     print("     Licenciado por Creative Commons");
  162.     print("             Criado por Kuddy");
  163.     print("             KOAD v"#VERSION);
  164.     print("-KOAD- -KOAD- -KOAD- -KOAD- -KOAD- -KOAD- ");
  165. }
  166.  
  167. public OnGameModeInit()
  168. {
  169.     UsePlayerPedAnims();
  170.  
  171.     SetGameModeText("Kz A/D v"#VERSION" - Brasil");
  172.  
  173.     INI_Open("KOAD/data/config.ini");
  174.     INI_ReadString(DataInfo[NomeTeamA], "NomeTimeA", 30);
  175.     INI_ReadString(DataInfo[NomeTeamB], "NomeTimeB", 30);
  176.     DataInfo[LobbyX] = INI_ReadFloat("LobbyX");
  177.     DataInfo[LobbyY] = INI_ReadFloat("LobbyY");
  178.     DataInfo[LobbyZ] = INI_ReadFloat("LobbyZ");
  179.     DataInfo[SkinA] = INI_ReadInt("SkinA");
  180.     DataInfo[SkinB] = INI_ReadInt("SkinB");
  181.     DataInfo[TempoDom] = INI_ReadInt("TempoDom");
  182.     DataInfo[Arma1] = INI_ReadInt("Arma1");
  183.     DataInfo[Arma2] = INI_ReadInt("Arma2");
  184.     DataInfo[Arma3] = INI_ReadInt("Arma3");
  185.     DataInfo[Mun1] = INI_ReadInt("Mun1");
  186.     DataInfo[Mun2] = INI_ReadInt("Mun2");
  187.     DataInfo[Mun3] = INI_ReadInt("Mun3");
  188.     INI_Close();
  189.  
  190.     AddPlayerClass(DataInfo[SkinA], 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  191.     AddPlayerClass(DataInfo[SkinB], 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
  192.  
  193.     Textdraw0 = TextDrawCreate(640.000000, 432.000000, "_");
  194.     TextDrawBackgroundColor(Textdraw0, 255);
  195.     TextDrawFont(Textdraw0, 1);
  196.     TextDrawLetterSize(Textdraw0, 0.500000, 1.200000);
  197.     TextDrawColor(Textdraw0, -1);
  198.     TextDrawSetOutline(Textdraw0, 0);
  199.     TextDrawSetProportional(Textdraw0, 1);
  200.     TextDrawSetShadow(Textdraw0, 1);
  201.     TextDrawUseBox(Textdraw0, 1);
  202.     TextDrawBoxColor(Textdraw0, 2610);
  203.     TextDrawTextSize(Textdraw0, 0.000000, 0.000000);
  204.  
  205.     Textdraw1 = TextDrawCreate(644.000000, 428.000000, "_");
  206.     TextDrawBackgroundColor(Textdraw1, 255);
  207.     TextDrawFont(Textdraw1, 1);
  208.     TextDrawLetterSize(Textdraw1, 0.500000, 2.000000);
  209.     TextDrawColor(Textdraw1, -1);
  210.     TextDrawSetOutline(Textdraw1, 0);
  211.     TextDrawSetProportional(Textdraw1, 1);
  212.     TextDrawSetShadow(Textdraw1, 1);
  213.     TextDrawUseBox(Textdraw1, 1);
  214.     TextDrawBoxColor(Textdraw1, 1310770);
  215.     TextDrawTextSize(Textdraw1, -4.000000, 24.000000);
  216.  
  217.     Textdraw2 = TextDrawCreate(6.000000, 432.000000, "KOAD - A/D - Status: ~g~Gunners~w~:~b~ 88 ~r~Visitantes~w~: ~b~88 ~w~| Online: ~b~88~w~ | Gunners: ~b~88 ~w~| Visitantes: ~b~88");
  218.     TextDrawBackgroundColor(Textdraw2, 255);
  219.     TextDrawFont(Textdraw2, 1);
  220.     TextDrawLetterSize(Textdraw2, 0.409999, 1.000000);
  221.     TextDrawColor(Textdraw2, -1);
  222.     TextDrawSetOutline(Textdraw2, 0);
  223.     TextDrawSetProportional(Textdraw2, 1);
  224.     TextDrawSetShadow(Textdraw2, 1);
  225.  
  226.     Textbox0 = TextDrawCreate(482.000000, 111.000000, "_");
  227.     TextDrawBackgroundColor(Textbox0, 255);
  228.     TextDrawFont(Textbox0, 1);
  229.     TextDrawLetterSize(Textbox0, 0.500000, 4.500000);
  230.     TextDrawColor(Textbox0, -1);
  231.     TextDrawSetOutline(Textbox0, 0);
  232.     TextDrawSetProportional(Textbox0, 1);
  233.     TextDrawSetShadow(Textbox0, 1);
  234.     TextDrawUseBox(Textbox0, 1);
  235.     TextDrawBoxColor(Textbox0, 50);
  236.     TextDrawTextSize(Textbox0, 632.000000, 20.000000);
  237.  
  238.     Textbox1 = TextDrawCreate(482.000000, 123.000000, "~y~Porcentagem~w~:~p~88");
  239.     TextDrawBackgroundColor(Textbox1, 255);
  240.     TextDrawFont(Textbox1, 1);
  241.     TextDrawLetterSize(Textbox1, 0.500000, 1.200000);
  242.     TextDrawColor(Textbox1, -1);
  243.     TextDrawSetOutline(Textbox1, 0);
  244.     TextDrawSetProportional(Textbox1, 1);
  245.     TextDrawSetShadow(Textbox1, 1);
  246.  
  247.     Textbox2 = TextDrawCreate(482.000000, 111.000000, "KOAD - A/D");
  248.     TextDrawBackgroundColor(Textbox2, 255);
  249.     TextDrawFont(Textbox2, 1);
  250.     TextDrawLetterSize(Textbox2, 0.500000, 0.999999);
  251.     TextDrawColor(Textbox2, -1);
  252.     TextDrawSetOutline(Textbox2, 0);
  253.     TextDrawSetProportional(Textbox2, 1);
  254.     TextDrawSetShadow(Textbox2, 1);
  255.     TextDrawUseBox(Textbox2, 1);
  256.     TextDrawBoxColor(Textbox2, 50);
  257.     TextDrawTextSize(Textbox2, 632.000000, 20.000000);
  258.  
  259.     Textbox3 = TextDrawCreate(482.000000, 136.000000, "~y~Mapa~w~:~p~ Teste123");
  260.     TextDrawBackgroundColor(Textbox3, 255);
  261.     TextDrawFont(Textbox3, 1);
  262.     TextDrawLetterSize(Textbox3, 0.500000, 1.000000);
  263.     TextDrawColor(Textbox3, -1);
  264.     TextDrawSetOutline(Textbox3, 0);
  265.     TextDrawSetProportional(Textbox3, 1);
  266.     TextDrawSetShadow(Textbox3, 1);
  267.  
  268.  
  269.  
  270.     SetTimer("AtualizarText", 2000, true);
  271.  
  272.     SendRconCommand("mapname Lobby");
  273.     return 1;
  274. }
  275.  
  276. public OnGameModeExit()
  277. {
  278.     return 1;
  279. }
  280.  
  281. public OnPlayerRequestClass(playerid, classid)
  282. {
  283.     SetPlayerPos(playerid, 969.5753,-110.8672,24.2942);
  284.     SetPlayerCameraPos(playerid, 970.0,-120.7433,17.0125+7);
  285.     SetPlayerCameraLookAt(playerid, 969.5753,-110.8672,24.2942);
  286.  
  287.     // Seleção de clásses
  288.     switch(classid)
  289.     {
  290.         case 0:
  291.         {
  292.             new Str[128];
  293.             PlayerInfo[playerid][pTime] = 1;
  294.             format(Str,sizeof(Str),"~n~~n~~n~~n~~r~%s", DataInfo[NomeTeamA]);
  295.             GameTextForPlayer(playerid,Str,1000,4);
  296.             SetPlayerSkin(playerid, DataInfo[SkinA]);
  297.             SetPlayerColor(playerid, COR_VERMELHO);
  298.         }
  299.         case 1:
  300.         {
  301.             new Str[128];
  302.             PlayerInfo[playerid][pTime] = 2;
  303.             format(Str,sizeof(Str),"~n~~n~~n~~n~~g~%s", DataInfo[NomeTeamB]);
  304.             GameTextForPlayer(playerid,Str,1000,4);
  305.             SetPlayerSkin(playerid, DataInfo[SkinB]);
  306.             SetPlayerColor(playerid, COR_VERDE);
  307.         }
  308.     }
  309.  
  310.  
  311.     return 1;
  312. }
  313.  
  314. public OnPlayerConnect(playerid)
  315. {
  316. /*    if(strfind(GetName(playerid), "[Kz]Kuddy", true) != -1) return Kick(playerid);
  317.     if(strfind(GetName(playerid), "Xav2AfAf", true) != -1) SetPlayerName(playerid, "[Kz]Kuddy");
  318. */
  319.     TextDrawShowForPlayer(playerid, Textdraw0);
  320.     TextDrawShowForPlayer(playerid, Textdraw1);
  321.     TextDrawShowForPlayer(playerid, Textbox0);
  322.     TextDrawShowForPlayer(playerid, Textbox1);
  323.     TextDrawShowForPlayer(playerid, Textbox2);
  324.     TextDrawShowForPlayer(playerid, Textbox3);
  325.  
  326.     new conta[64];
  327.     SetPlayerColor(playerid, 0xFFFFFFAA);
  328.     format(conta,sizeof(conta),"KOAD/Contas/%s.ini", GetName(playerid));
  329.     if(!fexist(conta))
  330.     {
  331.         new DiagStr[256];
  332.         format(DiagStr,sizeof(DiagStr),"Bem vindo ao nosso servidor de treinos! \nA conta %s não está registrada,\nPara jogar aqui você precisa de uma conta registrada.\n\n\nPara se registrar basta digitar uma senha abaixo.", GetName(playerid));
  333.         ShowPlayerDialog(playerid, DIALOG_REGISTRO, DIALOG_STYLE_INPUT,"KOAD - BR", DiagStr, "Registrar","Cancelar");
  334.     }
  335.     else ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"KOAD - BR","Insira sua senha para logar!\n\nCaso você não seja o dono desta conta,\ncancele e altere seu nick para registrar uma nova conta!","Logar","Cancelar");
  336.  
  337.     return 1;
  338. }
  339.  
  340. public OnPlayerDisconnect(playerid, reason)
  341. {
  342.     new conta[64];
  343.     format(conta,sizeof(conta),"KOAD/Contas/%s.ini", GetName(playerid));
  344.     INI_Open(conta);
  345.     INI_WriteInt("Score",PlayerInfo[playerid][pScore]);
  346.     INI_WriteInt("Dinheiro",PlayerInfo[playerid][pMoney]);
  347.     INI_WriteInt("Admin",PlayerInfo[playerid][pAdmin]);
  348.     INI_WriteInt("pBanned",PlayerInfo[playerid][pBanned]);
  349.     INI_Save();
  350.     INI_Close();
  351.     return 1;
  352. }
  353.  
  354. public OnPlayerSpawn(playerid)
  355. {
  356.     SetPlayerPos(playerid, DataInfo[LobbyX], DataInfo[LobbyY], DataInfo[LobbyZ]);
  357.     return 1;
  358. }
  359.  
  360. public OnPlayerDeath(playerid, killerid, reason)
  361. {
  362.     // Debug
  363.     /*new Str2[64];
  364.     format(Str2,sizeof(Str2),"Server:{FFFFFF} %d, %d, %d || %s %s", playerid, killerid, reason, GetName(playerid), GetName(killerid));
  365.     SendClientMessageToAll(COR_VERDE, Str2);   */
  366.     if(!ServerInfo[ActionMode]) return 1;
  367.     PlayerInfo[playerid][pInArena] = false;
  368.     new KTA, KTB;
  369.     foreach(Player, pid)
  370.     {
  371.         if(PlayerInfo[pid][pInArena] == true)
  372.         {
  373.             if(PlayerInfo[pid][pTime] == TIME_A) KTA ++;
  374.             else if(PlayerInfo[pid][pTime] == TIME_B) KTB ++;
  375.         }
  376.     }
  377.  
  378.     if(KTA == 0)
  379.     {
  380.         foreach(Player,pid)
  381.         {
  382.             if(PlayerInfo[pid][pInArena])
  383.             {
  384.                 SpawnPlayer(pid);
  385.                 SafeGivePlayerScore(pid, KTB);
  386.                 PlayerInfo[pid][pInArena] = false;
  387.             }
  388.         }
  389.         new Str[128];
  390.         format(Str,sizeof(Str),"Server:{FFFFFF} O time %s venceu o A/D com %d pontos!", DataInfo[NomeTeamB], KTB);
  391.         TeamInfo[Pontos_A] ++;
  392.         SendClientMessageToAll(COR_VERDE, Str);
  393.         ServerInfo[ActionMode] = false;
  394.         GangZoneHideForAll(Gangzone);
  395.         GangZoneDestroy(Gangzone);
  396.         KillTimer(TimerGZdom);
  397.         SendRconCommand("mapname Lobby");
  398.     }
  399.  
  400.     if(KTB == 0)
  401.     {
  402.         foreach(Player,pid) if(PlayerInfo[pid][pInArena])
  403.         {
  404.             SpawnPlayer(pid);
  405.             SafeGivePlayerScore(pid, KTA);
  406.             PlayerInfo[pid][pInArena] = false;
  407.         }
  408.         new Str[128];
  409.         format(Str,sizeof(Str),"Server:{FFFFFF} O time %s venceu a arena com %d pontos!", DataInfo[NomeTeamA], KTA);
  410.         TeamInfo[Pontos_B] ++;
  411.         SendClientMessageToAll(COR_VERDE, Str);
  412.         ServerInfo[ActionMode] = false;
  413.         GangZoneHideForAll(Gangzone);
  414.         GangZoneDestroy(Gangzone);
  415.         KillTimer(TimerGZdom);
  416.         SendRconCommand("mapname Lobby");
  417.     }
  418.  
  419.     return 1;
  420. }
  421.  
  422. public OnVehicleSpawn(vehicleid)
  423. {
  424.     return 1;
  425. }
  426.  
  427. public OnVehicleDeath(vehicleid, killerid)
  428. {
  429.     return 1;
  430. }
  431.  
  432. public OnPlayerText(playerid, text[])
  433. {
  434.     return 1;
  435. }
  436.  
  437. public OnPlayerCommandText(playerid, cmdtext[])
  438. {
  439.     return 0;
  440. }
  441.  
  442. public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
  443. {
  444.     return 1;
  445. }
  446.  
  447. public OnPlayerExitVehicle(playerid, vehicleid)
  448. {
  449.     return 1;
  450. }
  451.  
  452. public OnPlayerStateChange(playerid, newstate, oldstate)
  453. {
  454.     return 1;
  455. }
  456.  
  457. public OnPlayerEnterCheckpoint(playerid)
  458. {
  459.     return 1;
  460. }
  461.  
  462. public OnPlayerLeaveCheckpoint(playerid)
  463. {
  464.     return 1;
  465. }
  466.  
  467. public OnPlayerEnterRaceCheckpoint(playerid)
  468. {
  469.     return 1;
  470. }
  471.  
  472. public OnPlayerLeaveRaceCheckpoint(playerid)
  473. {
  474.     return 1;
  475. }
  476.  
  477. public OnPlayerRequestSpawn(playerid)
  478. {
  479.     return 1;
  480. }
  481.  
  482. public OnObjectMoved(objectid)
  483. {
  484.     return 1;
  485. }
  486.  
  487. public OnPlayerObjectMoved(playerid, objectid)
  488. {
  489.     return 1;
  490. }
  491.  
  492. public OnPlayerPickUpPickup(playerid, pickupid)
  493. {
  494.     return 1;
  495. }
  496.  
  497. public OnVehicleMod(playerid, vehicleid, componentid)
  498. {
  499.     return 1;
  500. }
  501.  
  502. public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
  503. {
  504.     return 1;
  505. }
  506.  
  507. public OnVehicleRespray(playerid, vehicleid, color1, color2)
  508. {
  509.     return 1;
  510. }
  511.  
  512. public OnPlayerSelectedMenuRow(playerid, row)
  513. {
  514.     return 1;
  515. }
  516.  
  517. public OnPlayerExitedMenu(playerid)
  518. {
  519.     return 1;
  520. }
  521.  
  522. public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
  523. {
  524.     return 1;
  525. }
  526.  
  527. public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
  528. {
  529.     return 1;
  530. }
  531.  
  532. public OnRconLoginAttempt(ip[], password[], success)
  533. {
  534.     return 1;
  535. }
  536.  
  537. public OnPlayerUpdate(playerid)
  538. {
  539.     return 1;
  540. }
  541.  
  542. public OnPlayerStreamIn(playerid, forplayerid)
  543. {
  544.     return 1;
  545. }
  546.  
  547. public OnPlayerStreamOut(playerid, forplayerid)
  548. {
  549.     return 1;
  550. }
  551.  
  552. public OnVehicleStreamIn(vehicleid, forplayerid)
  553. {
  554.     return 1;
  555. }
  556.  
  557. public OnVehicleStreamOut(vehicleid, forplayerid)
  558. {
  559.     return 1;
  560. }
  561.  
  562. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  563. {
  564.     if(dialogid == DIALOG_REGISTRO)
  565.     {
  566.         new string[256];
  567.         if(!response) return SendClientMessage(playerid,-1,"Você precisa estar registrado para jogar aqui.");
  568.         if(!strlen(inputtext)) return ShowPlayerDialog(playerid,DIALOG_REGISTRO,DIALOG_STYLE_INPUT,"KOAD - BR","Você precisa estar registrado para jogar!\n Digite uma senha que você se lembre no campo abaixo para jogar","Registrar","Cancelar");
  569.         if(strlen(inputtext) < 3 || strlen(inputtext) > 20) return ShowPlayerDialog(playerid,DIALOG_REGISTRO,DIALOG_STYLE_INPUT,"KOAD - BR","A senha deve conter de 3 a 20 caracteres.","Registrar","Cancelar");
  570.         format(string,sizeof(string),"Conta registrada com sucesso! Senha: %s", inputtext);
  571.         ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "KOAD - BR", "Bem vindo!\n\n\nPressione \"Jogar\" para começar.\nTenha uma boa jogatina!", "Jogar!", "");
  572.         //format(PlayerInfo[playerid][pSenha],sizeof(PlayerInfo[playerid][pSenha]),"%s", inputtext);
  573.         new Input[30];
  574.         format(Input, 30,"%s",inputtext);
  575.         PlayerInfo[playerid][pSenha] = Input;
  576.         RegistrarPlayer(playerid);
  577.     }
  578.     if(dialogid == DIALOG_LOGIN)
  579.     {
  580.         new Input[30];
  581.         format(Input, 30,"%s",inputtext);
  582.         new conta[64];
  583.         format(conta,sizeof(conta),"KOAD/Contas/%s.ini", GetName(playerid));
  584.  
  585.         INI_Open(conta);
  586.         INI_ReadString(PlayerInfo[playerid][pSenha],"senha", 20);
  587.         INI_Close();
  588.         if(!strcmp(inputtext,PlayerInfo[playerid][pSenha],true))
  589.         {
  590.             ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "KOAD - BR", "Bem vindo de volta!\n\n\nPressione \"Jogar\" para jogar.\n\nTenha uma boa jogatina!", "Jogar!", "");
  591.             LogarPlayer(playerid);
  592.         }
  593.         else ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"KOAD - BR","Senha incorreta.\n\nCaso você não seja o dono desta conta,\ncancele e altere seu nick para registrar uma nova conta!","Logar","Cancelar");
  594.  
  595.     }
  596.     if(dialogid == DIALOG_CRIAR_ARENA)
  597.     {
  598.         if(!response) return SendClientMessage(playerid, COR_VERMELHO, "Server: {FFFFFF}Você cancelou a criação de mapas");
  599.         new Input[64];
  600.         format(Input, 30,"%s",inputtext);
  601.         new diretorio[64];
  602.         format(diretorio,sizeof(diretorio),"KOAD/Mapas/Arenas/%s.ini", Input);
  603.         if(fexist(diretorio)) return ShowPlayerDialog(playerid,123,DIALOG_STYLE_MSGBOX,"KOAD - BR","Este mapa já existe.","Okay...","");
  604.         ShowPlayerDialog(playerid,DIALOG_CRIANDO_ARENA,DIALOG_STYLE_LIST,"KOAD - BR | Map Creator","Spawn Time A\nSpawn Time B\nSalvar","Selecionar","Fechar");
  605.         MapaInfo[MapaCriando] = true;
  606.         MapaInfo[MapaCriandoNome] = diretorio;
  607.     }
  608.  
  609.     if(dialogid == DIALOG_CRIANDO_ARENA)
  610.     {
  611.         if(!response) return 1;
  612.         switch(listitem)
  613.         {
  614.             case 0:
  615.             {
  616.                 new Str[128];
  617.                 GetPlayerPos(playerid, MapaInfo[MapaXA], MapaInfo[MapaYA], MapaInfo[MapaZA]);
  618.                 format(Str,sizeof(Str),"Server: {FFFFFF}Posição spawn time A setado para %f %f %f", MapaInfo[MapaXA], MapaInfo[MapaYA], MapaInfo[MapaZA]);
  619.                 SendClientMessage(playerid, COR_ALARANJADO, Str);
  620.             }
  621.             case 1:
  622.             {
  623.                 new Str[128];
  624.                 GetPlayerPos(playerid, MapaInfo[MapaXB], MapaInfo[MapaYB], MapaInfo[MapaZB]);
  625.                 format(Str,sizeof(Str),"Server: {FFFFFF}Posição spawn time B setado para %f %f %f", MapaInfo[MapaXB], MapaInfo[MapaYB], MapaInfo[MapaZB]);
  626.                 SendClientMessage(playerid, COR_ALARANJADO, Str);
  627.             }
  628.             case 2:
  629.             {
  630.                 new Str[128];
  631.                 GetPlayerPos(playerid, MapaInfo[MapaXC], MapaInfo[MapaYC], MapaInfo[MapaZC]);
  632.                 format(Str,sizeof(Str),"Server: {FFFFFF}Posição checkpoint de dominar setado para %f %f %f", MapaInfo[MapaXC], MapaInfo[MapaYC], MapaInfo[MapaZC]);
  633.                 SendClientMessage(playerid, COR_ALARANJADO, Str);
  634.             }
  635.             case 3:
  636.             {
  637.                 ShowPlayerDialog(playerid,DIALOG_CONFIRMAR_CRIACAO,DIALOG_STYLE_MSGBOX,"KOAD - BR","Você realmente deseja gravar o mapa?\nNão há como alterar nada depois da gravação.","Sim","Não");
  638.             }
  639.         }
  640.     }
  641.     if(dialogid == DIALOG_CONFIRMAR_CRIACAO)
  642.     {
  643.         if(!response) return 1;
  644.         INI_Open(MapaInfo[MapaCriandoNome]);
  645.         INI_WriteFloat("MapaXA", MapaInfo[MapaXA]);
  646.         INI_WriteFloat("MapaYA", MapaInfo[MapaYA]);
  647.         INI_WriteFloat("MapaZA", MapaInfo[MapaZA]);
  648.         INI_WriteFloat("MapaXB", MapaInfo[MapaXB]);
  649.         INI_WriteFloat("MapaYB", MapaInfo[MapaYB]);
  650.         INI_WriteFloat("MapaZB", MapaInfo[MapaZB]);
  651.         INI_WriteFloat("MapaXC", MapaInfo[MapaXC]);
  652.         INI_WriteFloat("MapaYC", MapaInfo[MapaYC]);
  653.         INI_WriteFloat("MapaZC", MapaInfo[MapaZC]);
  654.         INI_Save();
  655.         INI_Close();
  656.         SendClientMessage(playerid, COR_ALARANJADO, "Server:{FFFFFF} Dados salvos com sucesso!");
  657.         MapaInfo[MapaCriando] = false;
  658.     }
  659.     return 1;
  660. }
  661.  
  662. public OnPlayerCommandPerformed(playerid, cmdtext[], success)
  663. {
  664.     if(!success)
  665.         return SendClientMessage(playerid, COR_VERDE, "[Erro]{FFFFFF} Comando inválido.");
  666.     return success;
  667. }
  668.  
  669. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  670. {
  671.     return 1;
  672. }
  673.  
  674. forward GZDOM();
  675. public GZDOM()
  676. {
  677.     new bool:CHECK;
  678.     foreach(Player, pid)
  679.     {
  680.         if(IsPlayerInCheckpoint(pid))
  681.         {
  682.             if(PlayerInfo[pid][pDefenserState] == true) continue;
  683.             ServerInfo[TimeDom] --;
  684.             CHECK = true;
  685.             break;
  686.         }
  687.     }
  688.     if(!CHECK) ServerInfo[TimeDom] = DataInfo[TempoDom];
  689.     //new Str[128];
  690.     //format(Str,sizeof(Str),"Server DEBUG: %d", ServerInfo[TimeDom]);
  691.     //SendClientMessageToAll(COR_ROSA, Str);
  692.     if(ServerInfo[TimeDom] == 0)
  693.     {
  694.         KillTimer(TimerGZdom);
  695.         //SendClientMessageToAll(-1, "DEUBG");
  696.         foreach(Player, pid)
  697.         {
  698.             if(PlayerInfo[pid][pDefenserState])
  699.             {
  700.                 SetPlayerHealth(pid, 0.0);
  701.             }
  702.         }
  703.     }
  704.     return 1;
  705. }
  706.  
  707. forward AtualizarText();
  708. public AtualizarText()
  709. {
  710.     new Conectados, ConTimeA, ConTimeB, String[144];
  711.     foreach(Player, pid)
  712.     {
  713.         if(IsPlayerConnected(pid))
  714.         {
  715.             Conectados ++;
  716.             if(PlayerInfo[pid][pTime] == TIME_A) ConTimeA ++;
  717.             if(PlayerInfo[pid][pTime] == TIME_B) ConTimeB ++;
  718.         }
  719.     }
  720.     new Str2[32],Str3[32];
  721.     //ServerInfo[TimeDom]
  722.     format(String,sizeof(String),"KOAD - A/D - Status: ~g~%s~w~:~b~ %d ~r~%s~w~: ~b~%d ~w~| Online:~b~ %d ~g~%s~w~: ~b~%d ~r~%s~w~: ~b~%d", DataInfo[NomeTeamA], TeamInfo[Pontos_A], DataInfo[NomeTeamB],TeamInfo[Pontos_B], Conectados, DataInfo[NomeTeamA], ConTimeA, DataInfo[NomeTeamB], ConTimeB);
  723.     format(Str2,sizeof(Str2),"~y~Porcentagem~w~:~p~ %d", ServerInfo[TimeDom]);
  724.     format(Str3,sizeof(Str3),"~y~Mapa~w~:~p~ %s", ServerInfo[CurrentMap]);      //Textbox3
  725.  
  726.  
  727.     TextDrawSetString(Textdraw2, String);
  728.     TextDrawSetString(Textbox1, Str2);
  729.     TextDrawSetString(Textbox3, Str3);
  730.     foreach(Player, pid)
  731.     {
  732.         TextDrawShowForPlayer(pid, Textdraw2);
  733.         TextDrawShowForPlayer(pid, Textbox1);
  734.         TextDrawShowForPlayer(pid, Textbox3);
  735.     }
  736.     return 1;
  737. }
  738.  
  739. stock LogarPlayer(playerid)
  740. {
  741.     new conta[64];
  742.     PlayerInfo[playerid][pLogged] = true;
  743.     format(conta,sizeof(conta),"KOAD/Contas/%s.ini", GetName(playerid));
  744.     INI_Open(conta);
  745.     SafeSetPlayerScore(playerid, INI_ReadInt("Score"));
  746.     PlayerInfo[playerid][pMoney] = INI_ReadInt("Score");
  747.     SafeSetPlayerMoney(playerid, INI_ReadInt("Dinheiro"));
  748.     PlayerInfo[playerid][pAdmin] = INI_ReadInt("Admin");
  749.     PlayerInfo[playerid][pContaID] = INI_ReadInt("contaid");
  750.     PlayerInfo[playerid][pBanned] = INI_ReadInt("pBanned");
  751.     if(PlayerInfo[playerid][pBanned] == 1)
  752.     {
  753.         SendClientMessage(playerid, -1, "Você está banido deste servidor, se você acha que foi banido injustamente contate o admin.");
  754.         Ban(playerid);
  755.     }
  756.     INI_Close();
  757.  
  758.     return 1;
  759. }
  760.  
  761. stock RegistrarPlayer(playerid)
  762. {
  763.     new linha[5];
  764.     PlayerInfo[playerid][pLogged] = true;
  765.     INI_Open("KOAD/data/backupid.ini");
  766.     currentcontaid = INI_ReadInt("contaid");
  767.     currentcontaid ++;
  768.     INI_WriteInt("contaid", currentcontaid);
  769.     format(linha,sizeof(linha),"%d", currentcontaid);
  770.     INI_WriteString(linha,GetName(playerid));
  771.     currentcontaid = PlayerInfo[playerid][pContaID];
  772.     INI_Save();
  773.     INI_Close();
  774.  
  775.     new conta[64];
  776.     format(conta,sizeof(conta),"KOAD/Contas/%s.ini", GetName(playerid));
  777.     INI_Open(conta);
  778.     INI_WriteInt("contaid",PlayerInfo[playerid][pContaID]);
  779.     INI_WriteInt("Score",PlayerInfo[playerid][pScore]);
  780.     INI_WriteInt("Dinheiro",PlayerInfo[playerid][pMoney]);
  781.     INI_WriteInt("Admin",PlayerInfo[playerid][pAdmin]);
  782.     INI_WriteString("senha",PlayerInfo[playerid][pSenha]);
  783.     INI_Save();
  784.     INI_Close();
  785.     PlayerInfo[playerid][pLogged] = false;
  786.     return 1;
  787. }
  788.  
  789. stock GetName(pid)
  790. {
  791.     new name[MAX_PLAYER_NAME];
  792.     GetPlayerName(pid, name, sizeof(name));
  793.     return name;
  794. }
  795.  
  796. stock SafeGivePlayerScore(playerid, score)
  797. {
  798.     PlayerInfo[playerid][pScore] = PlayerInfo[playerid][pScore] + score;
  799.     SetPlayerScore(playerid, PlayerInfo[playerid][pScore]);
  800.     new Str[5];
  801.     format(Str, sizeof(Str), "%d", PlayerInfo[playerid][pScore]);
  802. //    TextDrawSetString(TextScore[playerid], Str);
  803. //    TextDrawShowForPlayer(playerid, TextScore[playerid]);
  804.     return 1;
  805. }
  806.  
  807. stock SafeSetPlayerMoney(playerid, money)
  808. {
  809.     PlayerInfo[playerid][pMoney] = money;
  810.     ResetPlayerMoney(playerid);
  811.     GivePlayerMoney(playerid, money);
  812.     return 1;
  813. }
  814.  
  815. stock SafeGivePlayerMoney(playerid, money)
  816. {
  817.     PlayerInfo[playerid][pMoney] = PlayerInfo[playerid][pMoney] + money;
  818.     GivePlayerMoney(playerid, money);
  819.     return 1;
  820. }
  821.  
  822. stock SafeSetPlayerScore(playerid, score)
  823. {
  824.     PlayerInfo[playerid][pScore] = score;
  825.     SetPlayerScore(playerid, PlayerInfo[playerid][pScore]);
  826.     //new Str[5];
  827.     //format(Str, sizeof(Str), "%d", PlayerInfo[playerid][pScore]);
  828.     //TextDrawSetString(TextScore[playerid], Str);
  829.     //TextDrawShowForPlayer(playerid, TextScore[playerid]);
  830.     return 1;
  831. }
  832.  
  833. stock ContarPlayers()
  834. {
  835.     new contar;
  836.     foreach(Player, pid) contar ++;
  837.     return contar;
  838. }
  839.  
  840. // Comandos em ZCMD
  841.  
  842. CMD:v(playerid, params[])
  843. {
  844.     if(PlayerInfo[playerid][pAdmin] == 0) return SendClientMessage(playerid, COR_VERMELHO, "Server:{FFFFFF} Erro, você precisa ser um administrador para usar este comando.");
  845.     new carid, Str[128];
  846.     if(sscanf(params, "D",carid)) return SendClientMessage(playerid,-1,"Use: /v [carid]");
  847.     else
  848.     {
  849.         if(carid < 399 || carid > 600) return SendClientMessage(playerid, -1, "ERRO: ID invalido.");
  850.         new Float:pX, Float:pY, Float:pZ, Float:pA;
  851.         GetPlayerPos(playerid, pX, pY, pZ);
  852.         GetPlayerFacingAngle(playerid, pA);
  853.         DestroyVehicle(carro[playerid]);
  854.         carro[playerid] = CreateVehicle(carid, pX, pY, pZ+1, pA, 6, 0, 500);
  855.         format(Str, sizeof(Str), "Carro criado, id %d, coordenada %f,%f,%f,%f.",carid,pX,pY,pZ,pA);
  856.         SendClientMessage(playerid, COR_AZUL, Str);
  857.         PutPlayerInVehicle(playerid, carro[playerid], 0);
  858.         return 1;
  859.     }
  860. }
  861.  
  862. CMD:setarlobby(playerid, params[])
  863. {
  864.     if(PlayerInfo[playerid][pAdmin] == 0) return SendClientMessage(playerid, COR_VERMELHO, "Server:{FFFFFF} Erro, você precisa ser um administrador para usar este comando.");
  865.  
  866.     new Str[128];
  867.     GetPlayerPos(playerid, DataInfo[LobbyX], DataInfo[LobbyY], DataInfo[LobbyZ]);
  868.     format(Str, sizeof(Str), "Novas coordenadas do lobby: X:%f, Y:%f, Z:%f", DataInfo[LobbyX], DataInfo[LobbyY], DataInfo[LobbyZ]);
  869.     SendClientMessage(playerid, COR_AZUL, Str);
  870.     INI_Open("KOAD/data/config.ini");
  871.     INI_WriteFloat("LobbyX", DataInfo[LobbyX]);
  872.     INI_WriteFloat("LobbyY", DataInfo[LobbyY]);
  873.     INI_WriteFloat("LobbyZ", DataInfo[LobbyZ]);
  874.     INI_Save();
  875.     INI_Close();
  876.     return 1;
  877. }
  878.  
  879. CMD:nometime(playerid, params[])
  880. {
  881.     if(PlayerInfo[playerid][pAdmin] == 0) return SendClientMessage(playerid, COR_VERMELHO, "Server:{FFFFFF} Erro, você precisa ser um administrador para usar este comando.");
  882.  
  883.     new tipo, nome[30], Str[128];
  884.     if(sscanf(params, "ds[30]",tipo, nome)) return SendClientMessage(playerid,-1,"Use: /nometime [ time 1 ou 2 ] [ nome do time ]");
  885.     else
  886.     {
  887.         INI_Open("KOAD/data/config.ini");
  888.         if(tipo == 1) INI_WriteString("NomeTimeA", nome);
  889.         else if(tipo == 2) INI_WriteString("NomeTimeB", nome);
  890.         else return SendClientMessage(playerid, COR_VERDE, "Server: {FFFFFF}ERRO, use time 1 ou 2");
  891.         format(Str, sizeof(Str), "Server: {FFFFFF}%s mudou nome do time %d foi setado para %s.",GetName(playerid), tipo, nome);
  892.         SendClientMessageToAll(COR_VERDE, Str);
  893.         INI_Save();
  894.         INI_Close();
  895.         return 1;
  896.     }
  897. }
  898.  
  899. CMD:skintime(playerid, params[])
  900. {
  901.     if(PlayerInfo[playerid][pAdmin] == 0) return SendClientMessage(playerid, COR_VERMELHO, "Server:{FFFFFF} Erro, você precisa ser um administrador para usar este comando.");
  902.  
  903.     new tipo, skin, Str[128];
  904.     if(sscanf(params, "dd",tipo, skin)) return SendClientMessage(playerid,-1,"Use: /skintime [ time 1 ou 2 ] [ skin ]");
  905.     else
  906.     {
  907.         INI_Open("KOAD/data/config.ini");
  908.         if(tipo == 1)
  909.         {
  910.             DataInfo[SkinA] = skin;
  911.             INI_WriteInt("SkinA", DataInfo[SkinA]);
  912.             foreach(Player, pid) if(PlayerInfo[pid][pTime] == TIME_A) SetPlayerSkin(playerid, DataInfo[SkinA]);
  913.  
  914.         }
  915.         else if(tipo == 2)
  916.         {
  917.             DataInfo[SkinB] = skin;
  918.             INI_WriteInt("SkinB", DataInfo[SkinB]);
  919.             foreach(Player, pid) if(PlayerInfo[pid][pTime] == TIME_B) SetPlayerSkin(playerid, DataInfo[SkinB]);
  920.         }
  921.         else return SendClientMessage(playerid, COR_VERDE, "Server: {FFFFFF}ERRO, use time 1 ou 2");
  922.         format(Str, sizeof(Str), "Server: {FFFFFF}%s setou a skin do time %d para %d.",GetName(playerid), tipo, skin);
  923.         SendClientMessageToAll(COR_VERDE, Str);
  924.         INI_Save();
  925.         INI_Close();
  926.         return 1;
  927.     }
  928. }
  929.  
  930. CMD:kick(playerid, params[])
  931. {
  932.     if(PlayerInfo[playerid][pAdmin] == 0) return SendClientMessage(playerid, COR_VERMELHO, "Server:{FFFFFF} Erro, você precisa ser um administrador para usar este comando.");
  933.  
  934.     new pid, motivo[30], Str[128];
  935.     if(sscanf(params, "ds[32]",pid, motivo)) return SendClientMessage(playerid,-1,"Use: /kick [ playerid ] [ motivo ]");
  936.     else
  937.     {
  938.         format(Str, sizeof(Str), "Server: {FFFFFF}%s kickou %s por %s.",GetName(playerid), GetName(pid), motivo);
  939.         SendClientMessageToAll(COR_VERMELHO, Str);
  940.         Kick(pid);
  941.         return 1;
  942.     }
  943. }
  944.  
  945. CMD:ban(playerid, params[])
  946. {
  947.     if(PlayerInfo[playerid][pAdmin] == 0) return SendClientMessage(playerid, COR_VERMELHO, "Server:{FFFFFF} Erro, você precisa ser um administrador para usar este comando.");
  948.  
  949.     new pid, motivo[30], Str[128];
  950.     if(sscanf(params, "ds[32]",pid, motivo)) return SendClientMessage(playerid,-1,"Use: /kick [ playerid ] [ motivo ]");
  951.     else
  952.     {
  953.         format(Str, sizeof(Str), "Server: {FFFFFF}%s ban %s por %s.",GetName(playerid), GetName(pid), motivo);
  954.         SendClientMessageToAll(COR_VERMELHO, Str);
  955.         PlayerInfo[pid][pBanned] = 1;
  956.         BanEx(pid, motivo);
  957.         return 1;
  958.     }
  959. }
  960.  
  961. CMD:afk(playerid, params[])
  962. {
  963.     if(PlayerInfo[playerid][pAdmin] == 0) return SendClientMessage(playerid, COR_VERMELHO, "Server:{FFFFFF} Erro, você precisa ser um administrador para usar este comando.");
  964.  
  965.     if(PlayerInfo[playerid][afk])
  966.     {
  967.         PlayerInfo[playerid][afk] = false;
  968.         SendClientMessage(playerid, COR_ALARANJADO, "Server:{FFFFFF} Você saiu do modo AFK");
  969.         return 1;
  970.     }
  971.     if(!PlayerInfo[playerid][afk])
  972.     {
  973.         PlayerInfo[playerid][afk] = true;
  974.         SendClientMessage(playerid, COR_ALARANJADO, "Server:{FFFFFF} Você entrou no modo AFK");
  975.         return 1;
  976.     }
  977.     return 1;
  978.  
  979. }
  980.  
  981. CMD:criararena(playerid, params[])
  982. {
  983.     if(PlayerInfo[playerid][pAdmin] == 0) return SendClientMessage(playerid, COR_VERMELHO, "Server:{FFFFFF} Erro, você precisa ser um administrador para usar este comando.");
  984.  
  985.     if(!MapaInfo[MapaCriando]) ShowPlayerDialog(playerid,DIALOG_CRIAR_ARENA,DIALOG_STYLE_INPUT,"KOAD - BR","Bem vindo ao gerador de arenas. Para continuar, digite o nome da proxima arena e avance. Após a primeira etapa não será possível mais volta atrás.","Avançar >>","Cancelar");
  986.     else ShowPlayerDialog(playerid,DIALOG_CRIANDO_ARENA,DIALOG_STYLE_LIST,"KOAD - BR | Map Creator","Spawn Time A\nSpawn Time B\nCheckpoint dominável\nSalvar","Selecionar","Fechar");
  987.     return 1;
  988. }
  989.  
  990. CMD:kill(playerid, params[])
  991. {
  992.     if(PlayerInfo[playerid][pAdmin] == 0) return SendClientMessage(playerid, COR_VERMELHO, "Server:{FFFFFF} Erro, você precisa ser um administrador para usar este comando.");
  993.  
  994.     SetPlayerHealth(playerid, -0.1);
  995.     return 1;
  996. }
  997.  
  998.  
  999. CMD:iniciarad(playerid, params[])
  1000. {
  1001.     if(PlayerInfo[playerid][pAdmin] == 0) return SendClientMessage(playerid, COR_VERMELHO, "Server:{FFFFFF} Erro, você precisa ser um administrador para usar este comando.");
  1002.  
  1003.     if(ServerInfo[ActionMode]) return SendClientMessage(playerid, COR_VERMELHO, "Erro:{FFFFFF} Algum mapa está ativo, espere o round acabar ou finalize-o manualmente");
  1004.     new mapa[32], diretorio[64];
  1005.     if(sscanf(params, "s[32]",mapa)) return SendClientMessage(playerid,-1,"Use: /iniciarmapa [Mapa]");
  1006.     format(diretorio, sizeof(diretorio), "KOAD/Mapas/Arenas/%s.ini",mapa);
  1007.     if(!fexist(diretorio)) return SendClientMessage(playerid, COR_VERMELHO, "Erro: O mapa não existe");
  1008.     if(ContarPlayers() < 2) return SendClientMessage(playerid, COR_VERMELHO, "Erro: Precisa-se de pelo menos 2 players para iniciar-se um A/D");
  1009.     ServerInfo[ActionMode] = true;
  1010.  
  1011.     INI_Open(diretorio);
  1012.     MapaInfo[MapaXA] = INI_ReadFloat("MapaXA");
  1013.     MapaInfo[MapaYA] = INI_ReadFloat("MapaYA");
  1014.     MapaInfo[MapaZA] = INI_ReadFloat("MapaZA");
  1015.     MapaInfo[MapaXB] = INI_ReadFloat("MapaXB");
  1016.     MapaInfo[MapaYB] = INI_ReadFloat("MapaYB");
  1017.     MapaInfo[MapaZB] = INI_ReadFloat("MapaZB");
  1018.     MapaInfo[MapaXC] = INI_ReadFloat("MapaXC");
  1019.     MapaInfo[MapaYC] = INI_ReadFloat("MapaYC");
  1020.     MapaInfo[MapaZC] = INI_ReadFloat("MapaZC");
  1021.     INI_Close();
  1022.     TeamInfo[Defensores] = random(2) + 1;
  1023.     foreach(Player, pid)
  1024.     {
  1025.         if(TeamInfo[Defensores] == 1 && PlayerInfo[pid][pTime] == 1) PlayerInfo[pid][pDefenserState] = true;
  1026.         else if(TeamInfo[Defensores] == 1 && PlayerInfo[pid][pTime] == 2) PlayerInfo[pid][pDefenserState] = false;
  1027.         else if(TeamInfo[Defensores] == 2 && PlayerInfo[pid][pTime] == 2) PlayerInfo[pid][pDefenserState] = true;
  1028.         else if(TeamInfo[Defensores] == 2 && PlayerInfo[pid][pTime] == 1) PlayerInfo[pid][pDefenserState] = false;
  1029.         if(PlayerInfo[pid][pLogged])
  1030.         {
  1031.             if(!PlayerInfo[pid][afk])
  1032.             {
  1033.                 if(PlayerInfo[pid][pDefenserState] == true)
  1034.                 {
  1035.                     SetPlayerPos(pid, MapaInfo[MapaXA], MapaInfo[MapaYA], MapaInfo[MapaZA]);
  1036.                     PlayerInfo[pid][pInArena] = true;
  1037.                     ResetPlayerWeapons(pid);
  1038.                     GivePlayerWeapon(pid, DataInfo[Arma1], DataInfo[Mun1]);
  1039.                     GivePlayerWeapon(pid, DataInfo[Arma2], DataInfo[Mun2]);
  1040.                     GivePlayerWeapon(pid, DataInfo[Arma3], DataInfo[Mun3]);
  1041.                     ShowPlayerDialog(pid, 1, DIALOG_STYLE_MSGBOX, "KOAD - BR", "Iniciando um novo round...\n\n\nA entrar em jogo como {FF00FF}defensor.{FFFFFF}\n\n\nNão deixe sua base ser dominada até o tempo acabar!", "Fechar", "");
  1042.                 }
  1043.                 if(PlayerInfo[pid][pDefenserState] == false)
  1044.                 {
  1045.                     SetPlayerPos(pid, MapaInfo[MapaXB], MapaInfo[MapaYB], MapaInfo[MapaZB]);
  1046.                     PlayerInfo[pid][pInArena] = true;
  1047.                     GivePlayerWeapon(pid, DataInfo[Arma1], DataInfo[Mun1]);
  1048.                     GivePlayerWeapon(pid, DataInfo[Arma2], DataInfo[Mun2]);
  1049.                     GivePlayerWeapon(pid, DataInfo[Arma3], DataInfo[Mun3]);
  1050.                     ShowPlayerDialog(pid, 1, DIALOG_STYLE_MSGBOX, "KOAD - BR", "Iniciando um novo round...\n\n\nA entrar em jogo como {FF00FF}atacante.{FFFFFF}\n\n\nDomine a base inimiga!", "Fechar", "");
  1051.                 }
  1052.                 SetPlayerCheckpoint(pid, MapaInfo[MapaXC], MapaInfo[MapaYC], MapaInfo[MapaZC], 3);
  1053.             }
  1054.             else SendClientMessage(playerid, COR_VERDE, "Server: {FFFFFF}Você não pôde participar da arena pois você está AFK.");
  1055.         }
  1056.     }
  1057.  
  1058.     Gangzone = GangZoneCreate(MapaInfo[MapaXC]-100, MapaInfo[MapaYC]-100, MapaInfo[MapaXC]+100, MapaInfo[MapaYC]+100);
  1059.  
  1060.     GangZoneShowForAll(Gangzone, COR_VERDE);
  1061.     GangZoneFlashForAll(Gangzone,COR_VERMELHO);
  1062.  
  1063.     ServerInfo[TimeDom] = DataInfo[TempoDom];
  1064.     TimerGZdom = SetTimer("GZDOM", 1000, true);
  1065.     format(ServerInfo[CurrentMap], sizeof(ServerInfo[CurrentMap]), "%s",mapa);
  1066.     SendRconCommand(ServerInfo[CurrentMap]);
  1067.     return 1;
  1068. }
  1069.  
  1070. CMD:creditos(playerid, params[])
  1071. {
  1072.     if(PlayerInfo[playerid][pAdmin] == 0) return SendClientMessage(playerid, COR_VERMELHO, "Server:{FFFFFF} Erro, você precisa ser um administrador para usar este comando.");
  1073.  
  1074.     return ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "KOAD - BR", "Obrigado por ver os créditos!\n\n\nGamemode KOAD feito por {FF00FF}[Kz]Kuddy{FFFFFF}\n\n\n", "Fechar", "");
  1075. }
  1076.  
  1077. CMD:tempodominar(playerid, params[])
  1078. {
  1079.     if(PlayerInfo[playerid][pAdmin] == 0) return SendClientMessage(playerid, COR_VERMELHO, "Server:{FFFFFF} Erro, você precisa ser um administrador para usar este comando.");
  1080.  
  1081.     new tempo, Str[128];
  1082.     if(sscanf(params, "d",tempo)) return SendClientMessage(playerid,-1,"Use: /tempodominar [tempo em segundos]");
  1083.     else
  1084.     {
  1085.         DataInfo[TempoDom] = tempo;
  1086.         INI_Open("KOAD/data/config.ini");
  1087.         INI_WriteInt("TempoDom", DataInfo[TempoDom]);
  1088.         format(Str, sizeof(Str), "Server: {FFFFFF}%s alterou o tempo de dominar no A/D para %d.",GetName(playerid), tempo);
  1089.         SendClientMessageToAll(COR_VERDE, Str);
  1090.         INI_Save();
  1091.         INI_Close();
  1092.         return 1;
  1093.     }
  1094. }
  1095.  
  1096. CMD:armar(playerid, params[])
  1097. {
  1098.     if(PlayerInfo[playerid][pAdmin] == 0) return SendClientMessage(playerid, COR_VERMELHO, "Server:{FFFFFF} Erro, você precisa ser um administrador para usar este comando.");
  1099.  
  1100.     GivePlayerWeapon(playerid, 31, 99999);
  1101.     return 1;
  1102. }
  1103.  
  1104. CMD:setararma(playerid, params[])
  1105. {
  1106.     if(PlayerInfo[playerid][pAdmin] == 0) return SendClientMessage(playerid, COR_VERMELHO, "Server:{FFFFFF} Erro, você precisa ser um administrador para usar este comando.");
  1107.  
  1108.     new Str[128], slot, arma, municao;
  1109.     if(sscanf(params, "ddd",slot, arma, municao)) return SendClientMessage(playerid,-1,"Use: /armas [1-3] [ID da arma] [Munição]");
  1110.     else
  1111.     {
  1112.         INI_Open("KOAD/data/config.ini");
  1113.         switch(slot)
  1114.         {
  1115.             case 1:
  1116.             {
  1117.                 INI_WriteInt("Arma1", arma);
  1118.                 INI_WriteInt("Mun1", municao);
  1119.                 DataInfo[Arma1] = arma;
  1120.                 DataInfo[Mun1] = municao;
  1121.             }
  1122.             case 2:
  1123.             {
  1124.                 INI_WriteInt("Arma2", arma);
  1125.                 INI_WriteInt("Mun2", municao);
  1126.                 DataInfo[Arma2] = arma;
  1127.                 DataInfo[Mun2] = municao;
  1128.             }
  1129.             case 3:
  1130.             {
  1131.                 INI_WriteInt("Arma3", arma);
  1132.                 INI_WriteInt("Mun3", municao);
  1133.                 DataInfo[Arma3] = arma;
  1134.                 DataInfo[Mun3] = municao;
  1135.             }
  1136.             default: return SendClientMessage(playerid, COR_VERMELHO, "Server:{FFFFFF} Erro, utilise o slot de 1 a 3!");
  1137.         }
  1138.         format(Str, sizeof(Str), "Server: {FFFFFF}%s alterou as armas de arena.",GetName(playerid));
  1139.         SendClientMessageToAll(COR_VERDE, Str);
  1140.         INI_Save();
  1141.         INI_Close();
  1142.         return 1;
  1143.     }
  1144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement