GTAOnline.net
San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: coco76640 le 11 Octobre 2011, 17:18:00
-
Bonjour, dans mon serveur Zombie, il y a deux équipes: humains et zombies
Le problème c'est que tout le monde se met humain et le jeu ne se fais pas car du coup il n'y a pas de zombie.
Ce que je voudrais c'est limiter le nombre de joueurs dans chaque équipe. Et que cette limite augmente en fonction du nombre de connecté.
Si je met une limite fixe, genre "limite humain = 10" il pourrat y avoir 10 humains et 1 zombies. Du coup je voudrais que cette limite augmente ou diminue proportionelement en fonction du nombre de joueurs.
Je me suis cassé la tete tout l'apres midi.... :wall Need your help :P
Merci
-
Tu créer 2 variables :
new Humain;
new Zombie;
quand un joueur sélectionne Humain tu l'incrémente en fessant :
new Humain++;
ou
new Zombie++;
ce qui ajoute 1 tu est d'accord ?
Et la vient le détail dans le OnPlayerRequestClasse tu fais une vérifiquation avec une multiplication ou un + a toi de voir ou bien tu vérifies si le nombre d'humain est > (supérieur strictement) a celui des zombie !
En exemple :
if(Humain < Zombie)
{
//Tu le spawn
}
else
{
//Tu lui envoi un message d'erreur !
}
A toi de voir comme dit plus haut !
EDIT : N'oublie pas de décrémenté la variable avec Humain--; quand il le faut !
-
Ne pas oublier de decrementer a la deconnection ou au changement d'equipe ;)
-
J'avais oublier en plus :bouley:.
-
J'opterais pour seulement fixer une valeur d'écart.
-
Voici ce que j'ai fais:
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerWeather(playerid,20);
SetPlayerTime(playerid, 20, 0);
SetupPlayerForClassSelection(playerid);
if(classid >= 12 && classid <= 162) {
if (zombie > humain)
{
GameTextForPlayer(playerid,"~b~Humains",5000,6);
gTeam[playerid] = TEAM_HUMAN;
humain = humain + 1;
}
else
{
SendClientMessage(playerid,COLOR_YELLOW,"ERREUR: Il y a trop d'humains, veuillez sélectionner zombie");
SendClientMessage(playerid,COLOR_YELLOW,"ERROR: They're too many humans, please select zombie!");
SendClientMessage(playerid,COLOR_YELLOW,"ERROR: hay demasiados humanos, por favor, seleccione zombie");
}
}
else if(classid >= 0 && classid <= 11) {
if (zombie < humain)
{
gTeam[playerid] = TEAM_ZOMBIE;
GameTextForPlayer(playerid,"~p~Zombies",5000,6);
zombie = zombie + 1;
}
else
{
SendClientMessage(playerid,COLOR_YELLOW,"ERREUR: Il y a trop de zombies, veuillez sélectionner humain");
SendClientMessage(playerid,COLOR_YELLOW,"ERROR: They're too many zombies, please select human!");
SendClientMessage(playerid,COLOR_YELLOW,"ERROR: hay demasiados zombies, por favor, seleccione humano");
}
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
if (gTeam[playerid] == TEAM_HUMAN)
{
humain = humain - 1;
}
else if (gTeam[playerid] == TEAM_ZOMBIE)
{
zombie = zombie - 1;
}
TextDrawDestroy(HealthBar[playerid]);
return 1;
}
Qu'en pensez vous? Au passage merci d'avoir répondu.