Team Balancer doesn't work - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (
https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (
https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: Team Balancer doesn't work (
/showthread.php?tid=359817)
Team Balancer doesn't work -
CoDeZ - 15.07.2012
pawn Код:
#define Cops 2
#define Terrorists 1
new TerrorsCounter= 0;
new CopsCounter = 0;
public OnPlayerRequestSpawn(playerid)
{
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;
}
return 1;
}
public OnPlayerSpawn(playerid)
{
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;
}
public OnPlayerDeath(playerid,killerid,reason)
{
if(Account[playerid][gTeam] == Terrorists) return TerrorsCounter--;
else if(Account[playerid][gTeam] == Cops) return CopsCounter--;
return 1;
}
It still doesn't work..
What's wrong? :/
Re: Team Balancer doesn't work -
leonardo1434 - 15.07.2012
It shouldn't be to count how many players are in a team instead of mix it? Lol.
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;
}
Just change your way to set up team and it wouldn't be confuse like you did.
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;
}
Re: Team Balancer doesn't work -
CoDeZ - 15.07.2012
Thanks , will work on it now.