Обычно после конца раунда пишется что типо Attackers Win или Defenders Win но у мну почему то не пишет!
_________
//------------------------------------------------------------------------------
КОД
[pwn]forward VoteMove();
public VoteMove()
{
if((Current != -1) || !Voting) return 0;
new string[256];
VotingTime--;
format(string,256, "~n~~w~A~y~ vote~w~ is in progress!~n~All ~b~defenders~w~ are to ~y~vote~n~~w~/base (baseid)~n~~w~time: ~w~(~r~%d~w~)",VotingTime);
GameTextForAll(string,1200,3);
if(VotingTime <= 0)
{
Voting = false;
new maxam = 0, tmpbases[MAX_BASES];
for(new i; i < MAX_BASES; i++)
{
if(Exists[i] && (Votes[i] > 0))
{
tmpbases[maxam] = i;
maxam++;
}
}
StartMode(tmpbases[random(maxam)]);
return 1;
}
SetTimer("VoteMove",1000,0);
return 0;
} //------------------------------------------------------------------------------
forward VoteMove2();
public VoteMove2()
{
if((Current != -1) || !Voting) return 0;
new string[256];
VotingTime--;
format(string,256, "~n~~w~A~y~ vote~w~ is in progress!~n~All ~p~players~w~ are to ~y~vote~n~~w~/arena (arenaid)~n~~w~time: ~w~(~r~%d~w~)",VotingTime);
GameTextForAll(string,1200,3);
if(VotingTime <= 0)
{
Voting = false;
new maxam = 0, tmparenas[MAX_ARENAS];
for(new i; i < MAX_ARENAS; i++)
{
if(Exists2[i] && (Votes[i] > 0))
{
tmparenas[maxam] = i;
maxam++;
}
}
StartModeARENA(tmparenas[random(maxam)]);
return 1;
}
SetTimer("VoteMove2",1000,0);
return 0;
}
enum tmp_spawns
{
Float:sx,
Float:sy,
Float:sz,
bool:sin
}
//------------------------------------------------------------------------------
StartMode(baseid)
{
KillTimer(ModeTimer);
new string[STR], idx, fbase[STR];
Current = baseid;
format(string,STR,"*** База номер %d будет запущена через 10 секунд", baseid);
SendClientMessageToAll(AAD_COLOR_WHITE,string);
fbase = Basefile(baseid);
string = dini_Get(fbase,"home");
BaseCP[0] = floatstr(strtok(string,idx,','));
BaseCP[1] = floatstr(strtok(string,idx,','));
BaseCP[2] = floatstr(strtok(string,idx,','));
for(new c = 0; c < MAX_VEHICLES; c++) SetVehicleToRespawn©;
for(new i = 0; i < MAX_PLAYERS; i++)
{
Player[i][pVoted] = false;
if(IsPlayerConnected(i) && ((Player[i][pTeam] == T_REF) || (Player[i][pTeam] == T_ATT) || (Player[i][pTeam] == T_DEF)))
{
StopSpectate(i);
TogglePlayerControllable(i,0);
SetPlayerInterior(i,0);
SetPlayerHealth(i,100);
Player[i][pPlaying] = true;
Player[i][pVoted] = false;
SetPlayerPos(i,BaseCP[0]-50+random(100),BaseCP[1]-50+random(100),BaseCP[2]);
SetPlayerCameraLookAt(i,BaseCP[0],BaseCP[1],BaseCP[2]);
SetPlayerCameraPos(i,BaseCP[0]+1,BaseCP[1],BaseCP[2]+80);
SetPlayerCheckpoint(i,BaseCP[0],BaseCP[1],BaseCP[2],10000);
} else Player[i][pPlaying] = false;
}
StopCounting = 5;
SetTimer("ModeStartTimer",0,0);
for(new i = 0; i < MAX_BASES; i++) Votes[i] = 0;
}
//------------------------------------------------------------------------------
forward ModeStartTimer(bool:redo);
public ModeStartTimer()
{
StopCounting--;
new string[STR];
format(string,STR," ~w~ Base ~y~%d ~w~starting in ~r~ %d ~w~ seconds",Current,StopCounting);
GameTextForAll(string,1200,3);
if(StopCounting <= 0)
{
StopWatching();
}
else
{
SetTimer("ModeStartTimer",1000,0);
for(new i; i < MAX_PLAYERS; i++)
{
PlayerPlaySound(i,1056,0.0,0.0,0.0);
}
}
}
//------------------------------------------------------------------------------
StopWatching()
{
new string[STR], idx, fbase[STR], as[MAX_SPAWNS][tmp_spawns], ds[MAX_SPAWNS][tmp_spawns];
fbase = Basefile(Current);
for(new i = 0; i < MAX_SPAWNS; i++)
{
format(string, STR, "a_%d", i);
idx = 0;
if(dini_Isset(fbase,string))
{
string = dini_Get(fbase,string);
as[i][sx] = floatstr(strtok(string,idx,','));
as[i][sy] = floatstr(strtok(string,idx,','));
as[i][sz] = floatstr(strtok(string,idx,','));
as[i][sin] = true;
} else as[i][sin] = false;
format(string, STR, "d_%d", i);
idx = 0;
if(dini_Isset(fbase,string))
{
string = dini_Get(fbase,string);
ds[i][sx] = floatstr(strtok(string,idx,','));
ds[i][sy] = floatstr(strtok(string,idx,','));
ds[i][sz] = floatstr(strtok(string,idx,','));
ds[i][sin] = true;
} else ds[i][sin] = false;
}
new ap = 0, dp = 0; // attack position, defend position o_o
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && Player[i][pTeam] != T_NON)
{
PlayerPlaySound(i,1057,0.0,0.0,0.0);
TogglePlayerControllable(i,1);
SetCameraBehindPlayer(i);
SpawnPlayer(i);
SetPlayerHealth(i,100.0);
StrapUp(i);
if(Player[i][pTeam] == T_ATT)
{
ap++;
while(!as[ap][sin]) { ap++; if(ap >= 10) ap = 0; }
SetPlayerPos(i,as[ap][sx],as[ap][sy],as[ap][sz]);
mySetPlayerColor(i,AAD_COLOR_GREEN);
SetPlayerTeam(i,2);SetPlayerTeam(i,1);
} else if(Player[i][pTeam] == T_DEF) {
dp++;
while(!ds[dp][sin]) { dp++; if(dp >= 10) dp = 0; }
SetPlayerPos(i,ds[dp][sx],ds[dp][sy],ds[dp][sz]);
mySetPlayerColor(i,AAD_COLOR_BLUE);
SetPlayerTeam(i,1);SetPlayerTeam(i,2);
} else if(Player[i][pTeam] == T_REF)
{
SetPlayerPos(i,BaseCP[0],BaseCP[1],BaseCP[2]);
mySetPlayerColor(i,AAD_COLOR_PINK);
SetPlayerTeam(i,3);
}
}
}
ModeMin = modetime;
ModeSec = 0;
ModeUpdate();
format(string,STR,"Base #%d started", Current);
SendClientMessageToAll(AAD_COLOR_WHITE,string);
DefenderLockVehicles();
}
//------------------------------------------------------------------------------
forward ModeUpdate();
public ModeUpdate()
{
if(Current == -1) return 1;
new string[256], aalive = 0, dalive = 0;
ModeSec--;
if(ModeSec < 0)
{
ModeSec = 59;
ModeMin--;
if(ModeMin < 0)
{
DefWin();
return 1;
}
}
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && Player[i][pPlaying])
{
switch(Player[i][pTeam])
{
case T_ATT:
{
aalive++;
}
case T_DEF:
{
dalive++;
}
}
}
}
format(string,128,"~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~r~(Base %d) ~w~time: %d:%02d ~g~a: %d ~b~d: %d/",Current,ModeMin,ModeSec,aalive,dalive);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(gPlayerSpawned[i] == 1)
{
GameTextForPlayer(i,string,1200,3);
}
}
if(aalive < 1)
{
if(dalive < 1)
{
GameTextForAll(" ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~w~ Everyone died ~n~ No one wins",8000,6);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(Player[i][pPlaying])
{
ResetPlayerWeapons(i);
SetPlayerHealth(i,100.0);
SetPlayerInterior(i,MAIN_INTERIOR);
Player[i][pPlaying] = false;
new rand = random(sizeof(MainSpawns));
SetPlayerPos(i,MainSpawns[rand][0],MainSpawns[rand][1],MainSpawns[rand][2]);
}
DisablePlayerCheckpoint(i);
StopSpectate(i);
}
}
Current = -1;
return 1;
} else {
DefWin();
return 1;
}
} else if(dalive < 1)
{
AttWin();
return 1;
}
ModeTimer = SetTimer("ModeUpdate",1000,0);
return 0;
}
AttWin()
{
GameTextForAll(" ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~g~ Attackers win ",8000,6);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(Player[i][pPlaying])
{
ResetPlayerWeapons(i);
SetPlayerHealth(i,100.0);
SetPlayerInterior(i,MAIN_INTERIOR);
Player[i][pPlaying] = false;
new rand = random(sizeof(MainSpawns));
SetPlayerPos(i,MainSpawns[rand][0],MainSpawns[rand][1],MainSpawns[rand][2]);
}
DisablePlayerCheckpoint(i);
StopSpectate(i);
}
}
Current = -1;
}
DefWin()
{
GameTextForAll(" ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~b~ Defenders win ",8000,6);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(Player[i][pPlaying])
{
ResetPlayerWeapons(i);
SetPlayerHealth(i,100.0);
SetPlayerInterior(i,MAIN_INTERIOR);
Player[i][pPlaying] = false;
new rand = random(sizeof(MainSpawns));
SetPlayerPos(i,MainSpawns[rand][0],MainSpawns[rand][1],MainSpawns[rand][2]);
}
DisablePlayerCheckpoint(i);
StopSpectate(i);
}
}
Current = -1;
}
////////////////////////////////////////////////////////////////////////////////
//============================[Start Arena Code]================================
////////////////////////////////////////////////////////////////////////////////
StartModeARENA(arenaid)
{
KillTimer(ModeTimer2);
new string[STR], idx, farena[STR];
Current = arenaid;
format(string,STR," Зона номер %d будет запущена через 5 секунд.", arenaid);
SendClientMessageToAll(AAD_COLOR_WHITE,string);
farena = Arenafile(arenaid);
string = dini_Get(farena,"home");
ArenaCP[0] = floatstr(strtok(string,idx,','));
ArenaCP[1] = floatstr(strtok(string,idx,','));
ArenaCP[2] = floatstr(strtok(string,idx,','));
for(new c = 0; c < MAX_VEHICLES; c++)SetVehicleToRespawn©;
for(new i = 0; i < MAX_PLAYERS; i++)
{
Player[i][pVoted] = false;
if(IsPlayerConnected(i) && ((Player[i][pTeam] == T_REF) || (Player[i][pTeam] == T_ATT) || (Player[i][pTeam] == T_DEF)))
{
StopSpectate(i);
TogglePlayerControllable(i,0);
SetPlayerInterior(i,0);
SetPlayerHealth(i,100);
Player[i][pPlaying] = true;
Player[i][pVoted] = false;
SetPlayerPos(i,ArenaCP[0]-50+random(100),ArenaCP[1]-50+random(100),ArenaCP[2]);
SetPlayerCameraLookAt(i,ArenaCP[0],ArenaCP[1],ArenaCP[2]);
SetPlayerCameraPos(i,ArenaCP[0]+1,ArenaCP[1],ArenaCP[2]+80);
} else Player[i][pPlaying] = false;
}
StopCounting = 5;
SetTimer("ModeStartTimer2",0,0);
for(new i = 0; i < MAX_ARENAS; i++) Votes[i] = 0;
}
//------------------------------------------------------------------------------
forward ModeStartTimer2(bool:redo);
public ModeStartTimer2()
{
StopCounting--;
new string[STR];
format(string,STR," ~w~ Arena ~y~%d ~w~starting in ~r~ %d ~w~ seconds",Current,StopCounting);
GameTextForAll(string,1200,3);
if(StopCounting <= 0)
{
StopWatching2();
}
else
{
SetTimer("ModeStartTimer2",1000,0);
for(new i; i < MAX_PLAYERS; i++)
{
PlayerPlaySound(i,1056,0.0,0.0,0.0);
}
}
}
//------------------------------------------------------------------------------
StopWatching2()
{
new string[STR], idx, farena[STR], as[MAX_SPAWNS][tmp_spawns], ds[MAX_SPAWNS][tmp_spawns];
farena = Arenafile(Current);
for(new i = 0; i < MAX_SPAWNS; i++)
{
format(string, STR, "a_%d", i);
idx = 0;
if(dini_Isset(farena,string))
{
string = dini_Get(farena,string);
as[i][sx] = floatstr(strtok(string,idx,','));
as[i][sy] = floatstr(strtok(string,idx,','));
as[i][sz] = floatstr(strtok(string,idx,','));
as[i][sin] = true;
} else as[i][sin] = false;
format(string, STR, "d_%d", i);
idx = 0;
if(dini_Isset(farena,string))
{
string = dini_Get(farena,string);
ds[i][sx] = floatstr(strtok(string,idx,','));
ds[i][sy] = floatstr(strtok(string,idx,','));
ds[i][sz] = floatstr(strtok(string,idx,','));
ds[i][sin] = true;
} else ds[i][sin] = false;
}
new ap = 0, dp = 0;
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && Player[i][pTeam] != T_NON)
{
PlayerPlaySound(i,1057,0.0,0.0,0.0);
TogglePlayerControllable(i,1);
SetCameraBehindPlayer(i);
SpawnPlayer(i);
SetPlayerHealth(i,100.0);
StrapUp(i);
if(Player[i][pTeam] == T_ATT)
{
ap++;
while(!as[ap][sin]) { ap++; if(ap >= 10) ap = 0; }
SetPlayerPos(i,as[ap][sx],as[ap][sy],as[ap][sz]);
mySetPlayerColor(i,AAD_COLOR_GREEN);
SetPlayerTeam(i,2);SetPlayerTeam(i,1);
} else if(Player[i][pTeam] == T_DEF) {
dp++;
while(!ds[dp][sin]) { dp++; if(dp >= 10) dp = 0; }
SetPlayerPos(i,ds[dp][sx],ds[dp][sy],ds[dp][sz]);
mySetPlayerColor(i,AAD_COLOR_BLUE);
SetPlayerTeam(i,1);SetPlayerTeam(i,2);
} else if(Player[i][pTeam] == T_REF)
{
SetPlayerPos(i,ArenaCP[0],ArenaCP[1],ArenaCP[2]);
mySetPlayerColor(i,AAD_COLOR_PINK);
SetPlayerTeam(i,3);
}
}
}
ModeUpdate2();
format(string,STR,"*** База #%d запущена.", Current);
SendClientMessageToAll(AAD_COLOR_WHITE,string);
}
//------------------------------------------------------------------------------
forward ModeUpdate2();
public ModeUpdate2()
{
if(Current == -1) return 1;
new string[256], aalive = 0, dalive = 0;
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && Player[i][pPlaying])
{
switch(Player[i][pTeam])
{
case T_ATT:
{
aalive++;
}
case T_DEF:
{
dalive++;
}
}
}
}
format(string,128,"~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~n~~r~(Arena %d) ~g~~h~~h~a: %d ~b~~h~d: %d",Current,aalive,dalive);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(gPlayerSpawned[i] == 1)
{
GameTextForPlayer(i,string,1200,3);
}
}
if(aalive < 1)
{
if(dalive < 1)
{
GameTextForAll(" ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~w~ Everyone died ~n~ No one wins",8000,6);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(Player[i][pPlaying])
{
ResetPlayerWeapons(i);
SetPlayerHealth(i,100.0);
SetPlayerInterior(i,MAIN_INTERIOR);
Player[i][pPlaying] = false;
new rand = random(sizeof(MainSpawns));
SetPlayerPos(i,MainSpawns[rand][0],MainSpawns[rand][1],MainSpawns[rand][2]);
SetPlayerWorldBounds(i,20000,-20000,20000,-20000);
}
StopSpectate(i);
}
}
Current = -1;
return 1;
} else {
DefWin2();
return 1;
}
} else if(dalive < 1)
{
AttWin2();
return 1;
}
ModeTimer = SetTimer("ModeUpdate2",1000,0);
return 0;
}
//------------------------------------------------------------------------------
AttWin2()
{
GameTextForAll(" ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~g~ Attackers win ",8000,6);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(Player[i][pPlaying])
{
ResetPlayerWeapons(i);
SetPlayerHealth(i,100.0);
SetPlayerInterior(i,MAIN_INTERIOR);
Player[i][pPlaying] = false;
new rand = random(sizeof(MainSpawns));
SetPlayerPos(i,MainSpawns[rand][0],MainSpawns[rand][1],MainSpawns[rand][2]);
SetPlayerWorldBounds(i,20000,-20000,20000,-20000);
}
StopSpectate(i);
}
}
Current = -1;
}
//------------------------------------------------------------------------------
DefWin2()
{
GameTextForAll(" ~n~ ~n~ ~n~ ~n~ ~n~ ~n~ ~b~ Defenders win ",8000,6);
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(Player[i][pPlaying])
{
ResetPlayerWeapons(i);
SetPlayerHealth(i,100.0);
SetPlayerInterior(i,MAIN_INTERIOR);
Player[i][pPlaying] = false;
new rand = random(sizeof(MainSpawns));
SetPlayerPos(i,MainSpawns[rand][0],MainSpawns[rand][1],MainSpawns[rand][2]);
SetPlayerWorldBounds(i,20000,-20000,20000,-20000);
}
StopSpectate(i);
}
}
Current = -1;
}
[/pwn]