15.07.2012, 12:57
It shouldn't be to count how many players are in a team instead of mix it? Lol.
Just change your way to set up team and it wouldn't be confuse like you did.
pawn Код:
public OnPlayerDisconnect(playerid,reason)
{
if(Account[playerid][gTeam]==Terrorists) return TerrorsCounter--;
else if(Account[playerid][gTeam]==Cops) return CopsCounter--;
return 1;
}
public OnPlayerDeath(playerid,killerid,reason)
{
if(Account[playerid][gTeam] == Terrorists) return TerrorsCounter--;
else if(Account[playerid][gTeam] == Cops) return CopsCounter--;
return 1;
}
pawn Код:
#define Cops 2
#define Terrorists 1
new TerrorsCounter= 0;
new CopsCounter = 0;
//by the way, this won't work onplayrquestclass, cause your team aren't defined here. so he will be able to respawn, i recommend you take a look in some tutorial about making team, it will help you alot.
public OnPlayerRequestClass(playerid,classid) // you should work with requestclass, instead of onplayerrequestspawn. so here, he won't spawn cause the team is full.
{
if(TerrorsCounter > CopsCounter && Account[playerid][gTeam]==Cops)
{
GameTextForPlayer(playerid, "~r~Team Full!~n~~w~Choose Cops/Army Team.", 3000, 3);
return 0;
}
else if(CopsCounter > TerrorsCounter && Account[playerid][gTeam]==Terrorists)
{
GameTextForPlayer(playerid, "~r~Team Full!~n~~w~Choose Terrorists/Mafia Team.", 3000, 3);
return 0;
}
// it could be like this...
/*else if(CopsCounter > TerrorsCounter || TerrorsCounter > CopsCounter){
GameTextForPlayer(playerid, "~r~Team Full!~n~~w~Choose Anoter Team!", 3000, 3);return 0;
}*/
return 1;
}
public OnPlayerSpawn(playerid)
// instead of define their teams here, you should start workiing with onplayerquestclass which is better than this.
{
new SkinID=GetPlayerSkin(playerid);
switch (SkinID)
{
case 121,122,272,123:
{
Account[playerid][gTeam]=Terrorists;
SetPlayerTeam(playerid,1);
}
case 165,265,166,283,280,286,285:
{
Account[playerid][gTeam]=Cops;
SetPlayerTeam(playerid,2);
}
case 287:
{
Account[playerid][gTeam]=Cops;
SetPlayerTeam(playerid,2);
Medic[playerid]=0;
Supporter[playerid]=1;
}
case 29:
{
Account[playerid][gTeam]=Terrorists;
SetPlayerTeam(playerid,1);
}
case 274,275,276:
{
Account[playerid][gTeam]=Cops;
SetPlayerTeam(playerid,2);
Medic[playerid]=1;
Supporter[playerid]=0;
}
case 70:
{
Account[playerid][gTeam]=Terrorists;
SetPlayerTeam(playerid,1);
}
}
}
public OnPlayerDisconnect(playerid,reason)
{
if(Account[playerid][gTeam]==Terrorists) return TerrorsCounter--;
else if(Account[playerid][gTeam]==Cops) return CopsCounter--;
return 1;
}