Salut,
alors tu peut commencer par créé des variables avec différents niveau, le mieux c'est de définir des constantes pour les niveaux et les équipes...
#define TEAM_DEFENDER 0
#define TEAM_ATTACKER 1
#define LEVEL_SOLDIER 0
#define LEVEL_OFFICER 1
#define LEVEL_LEADER 2
enum TeamLevels
{
TeamJoueur,
LevelJoueur,
NbKill
}
new TeamPlayers[MAX_PLAYERS][teamLevels];
alors là tu aurais tes variables pour les team et les niveaux..
ensuite dans ton OnPlayerRequestClass, tu assigne les équipes que tu désire selon le skin ( tu peut le faire avec une commande ou un autre truc si tu le désire):
public OnPlayerRequestClass(playerid,classid)
{
if(classid == 0) TeamPlayers[playerid][TeamJoueur] = TEAM_DEFENDER;
if(classid == 1) TeamPlayers[playerid][TeamJoueur] = TEAM_ATTACKER;
return 1;
}
puis tu fais comme tu veut pour définir les niveaux, je te recommande selon le nombre de kill, tu défini un nombre minimum pour les niveaux et pour le niveau le plus haut, je m,arrangerais pour que le joueur qui a le plus de kill soit le seul de ce niveau...
exemple:
en haut:
#define NB_KILL_OFFICER 5
#define NB_KILL_LEADER 15
puis lorsque les joueurs tuent:
public OnPlayerDeath(playerid,killerid,reason)
{
if(killerid == INVALID_PLAYER_ID) return 1;
TeamPlayers[killerid][NbKill]++;
if(TeamPlayers[killerid][LevelJoueur] == LEVEL_SOLDIER){
if(TeamPlayers[killerid][NbKill] == NB_KILL_OFFICER){
TeamPlayers[killerid][LevelJoueur] = LEVEL_OFFICER;
GameTextForPlayer(killerid,"Congratulation, you are now an Officer!",3500,5);
return 1;
}
}
else if(TeamPlayers[killerid][LevelJoueur] == LEVEL_OFFICER){
if(TeamPlayers[killerid][NbKill] >= NB_KILL_LEADER){
new IsThereALeader;
for(new i; <MAX_PLAYERS; i++){
if(IsPlayerConnected(i)){
if(TeamPlayers[i][LevelJoueur] == LEVEL_LEADER && TeamPlayers[killerid][TeamJoueur] == TeamPlayers[i][TeamJoueur]){//SI UN JOUEUR DE LA MÊME ÉQUIPE EST LEADER
IsThereAleader = 1;
if(TeamPlayers[i][NbKill] >= TeamPlayers[killerid][NbKill])break;//INUTILE DE CONTINUER, AU MOINS UN JOUEUR EST ÉGAL OU MEILLEUR
TeamPlayers[i][LevelJoueur] = LEVEL_OFFICER;//on le descend de rang
TeamPlayers[killerid][LevelJoueur] = LEVEL_LEADER;//on le monte de rang
GameTextForPlayer(i,"You are no more the leader of your team!",2500,5);
GametextForPlayer(killerid,"Congratulation, you are noew the leaer of your team!",3500,5);//
return 1;
}
}
}
}
}
return 1;
}
je crois que s'y est a peu près, je rajouterai des explications prochaine fois que je le regarderai
P.S. il y a peut-être des fautes, je l'ai composé sur le forum..
++Sim++