Bom criei esse fs em 15 minutos...
E gostaria que algum scripter mais experiente podesse dar uma olhada pra ver se algo pode dar errado dar bug etc...
pawn Код:
#define FILTERSCRIPT
#include <a_samp>
#include <zcmd>
#include <sscanf2>
//------- Cores -------
#define Verde 0x00FF00FF
#define Vermelho 0xFF0000AA
#define Azul 0x0000FFAA
#define Marron 0x804000AA
#define Branco 0xFFFFFFAA
#define Laranja 0xFF8000AA
#define Azul_Marinho 0x80FFFFAA
#define Cinza 0xC0C0C0AA
#define Rosa 0xFF80FFAA
#define AZUL_CLARO 0x80BFFFAA
#define Verde_Escuro 0x007138AA
#define Amarelo 0xFFFF00AA
#define Roxo 0x9F009FAA
#define VERDE_AGUA 0x03D687FF
#define CINZA_ESCURO 0x626262FF
#define VERDE 0x21DD00FF
#define VERMELHO_CLARO 0xFB0000FF
#define VERDE_CLARO 0x38FF06FF
#define ROSA_CHOQUE 0xE100E1FF
#define VERDE_ESCURO 0x008040FF
#define CINZA_ESCURO 0x626262FF
#define COR_ERRO 0xFF0000DD
#define COR_BRANCO 0xFFFFFFAA
#define COR_ADM 0x007FFFAA
#define MensagemFormatadaParaTodos(%0,%1,%2); format(String, sizeof(String), %1, %2); SendClientMessageToAll(%0, String);
#define MensagemFormatada(%0,%1,%2,%3); format(String, sizeof(String), %2, %3); SendClientMessage(%0, %1, String);
#define Loop(%0,%1) for(new %0 = 0; %0 < %1; ++%0)
enum eVotacao
{
bool:Criada,
ArenaA,
ArenaB
}
new
bool:NaArenaA,
bool:NaArenaB;
new Votacao[eVotacao];
new Time[2] = {1, 2};
new SkinsTerrorista[3] = {121, 122, 124};
new Text3D:label;
//new String[200];
new bool:EstanoBatter[MAX_PLAYERS];
#define publica%0(%1) \
forward%0(%1); public%0(%1)
#if defined FILTERSCRIPT
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Sistema de Batterground feeito por: Bruno Alves");
print("--------------------------------------\n");
SetTimer("abrirVotacao", 300000, true);
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
#else
main()
{
print("\n----------------------------------");
print(" Sistema de Batterground feeito por: Bruno Alves");
print("----------------------------------\n");
}
#endif
public OnPlayerConnect(playerid)
{
EstanoBatter[playerid] = false;
SetPlayerTeam(playerid, 0);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
EstanoBatter[playerid] = false;
SetPlayerTeam(playerid, 0);
DeletePlayer3DTextLabel(playerid, PlayerText3D:label);
return 1;
}
public OnPlayerSpawn(playerid)
{
if(GetPlayerTeam(playerid) == 1)
{
DeletePlayer3DTextLabel(playerid, PlayerText3D:label);
label = Create3DTextLabel("Contra Terrorista", Vermelho, 30.0, 40.0, 50.0, 40.0, 0);
Attach3DTextLabelToPlayer(label, playerid, 0.0, 0.0, 0.7);
SetPlayerSkin(playerid, 285);
}
if(GetPlayerTeam(playerid) == 2)
{
DeletePlayer3DTextLabel(playerid, PlayerText3D:label);
label = Create3DTextLabel("Terroristas", Azul, 30.0, 40.0, 50.0, 40.0, 0);
Attach3DTextLabelToPlayer(label, playerid, 0.0, 0.0, 0.7);
SetPlayerSkin(playerid, SkinsTerrorista[random(sizeof(SkinsTerrorista))]);
}
if(EstanoBatter[playerid] == true)
{
if(NaArenaA == true)
{
SetPlayerColor(playerid, Azul);
SetPlayerPos(playerid, 753.0212,-2556.3840,11.9725);
}
if(NaArenaB == true)
{
SetPlayerColor(playerid, Vermelho);
SetPlayerPos(playerid, 753.0212,-2556.3840,11.9725);
}
else {
SetPlayerColor(playerid, Vermelho);
SetPlayerPos(playerid, 753.0212,-2556.3840,11.9725);
}
}
return 1;
}
CMD:batterground(playerid)
{
if(EstanoBatter[playerid] == true) return SendClientMessage(playerid, -1, "Vocк ja esta no Batteground");
EstanoBatter[playerid] = true;
SetPlayerTeam(playerid, Time[random(sizeof(Time))]);
SpawnPlayer(playerid);
return 1;
}
CMD:sairbatterground(playerid)
{
if(EstanoBatter[playerid] == false) return SendClientMessage(playerid, -1, "Vocк nгo esta no Batteground");
EstanoBatter[playerid] = false;
SetPlayerColor(playerid, Branco);
DeletePlayer3DTextLabel(playerid, PlayerText3D:label);
SetPlayerSkin(playerid, 24);
SetPlayerTeam(playerid, 0);
SpawnPlayer(playerid);
return 1;
}
CMD:arenaa(playerid)
{
if(EstanoBatter[playerid] == true) return SendClientMessage(playerid, -1, "Vocк tem que estar no batterground");
if(Votacao[Criada] == false) return SendClientMessage(playerid, Cinza, "Nenhuma Votacao aberta!");
Votacao[ArenaA]++;
SendClientMessage(playerid, Amarelo, "Voto computado com sucesso.");
return 1;
}
CMD:arenab(playerid)
{
if(EstanoBatter[playerid] == true) return SendClientMessage(playerid, -1, "Vocк tem que estar no batterground");
if(Votacao[Criada] == false) return SendClientMessage(playerid, Cinza, "Nenhuma Votacao aberta!");
Votacao[ArenaB]++;
SendClientMessage(playerid, Amarelo, "Voto computado com sucesso.");
return 1;
}
publica abrirVotacao(playerid)
{
Votacao[Criada] = true;
SetTimerEx("FecharVotacao", 30000, false, "i", playerid);
SendClientMessageToAll(AZUL_CLARO, "Vote para a nova arena de batterground (Opiзхes /ArebaA ou /ArenaB) sу a 30 segundos!");
Loop(B, MAX_PLAYERS)
{
if(EstanoBatter[B] == true)
{
TogglePlayerControllable(B, false);
}
}
return 1;
}
publica FecharVotacao(playerid)
{
new StrVotacao[256];
if(EstanoBatter[playerid] == true)
{
TogglePlayerControllable(playerid, true);
Votacao[Criada] = false;
format(StrVotacao, 256, "Votos Arena A: %d", Votacao[ArenaA]);
SendClientMessageToAll(ROSA_CHOQUE, StrVotacao);
format(StrVotacao, 256, "Voto Arena B: %d", Votacao[ArenaB]);
SendClientMessageToAll(ROSA_CHOQUE, StrVotacao);
if(Votacao[ArenaA] > Votacao[ArenaB])
{
SendClientMessageToAll(Rosa, "\nO Arena A Venceu.");
NaArenaB = false;
NaArenaA = true;
Loop(B, MAX_PLAYERS)
{
SpawnPlayer(B);
}
return 1;
}
if(Votacao[ArenaB] > Votacao[ArenaA])
{
SendClientMessageToAll(Rosa, "\nO Arena B Venceu.");
NaArenaA = false;
NaArenaB = true;
Loop(B, MAX_PLAYERS)
{
SpawnPlayer(B);
}
return 1;
}
if(Votacao[ArenaA] == 0 && Votacao[ArenaB] == 0)
{
NaArenaA = true;
Loop(B, MAX_PLAYERS)
{
SpawnPlayer(B);
}
}
}
return 1;
}
stock Nome(playerid)
{
new pNome[MAX_PLAYER_NAME];
GetPlayerName(playerid, pNome, 24);
return pNome;
}