• 03 Juillet 2025, 05:33:03


Auteur Sujet: [RESOLU] Team avec Leader est Rangs [RESOLU]  (Lu 1451 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Spike4395

  • *
  • Criminel
  • Messages: 29
    • Voir le profil
[RESOLU] Team avec Leader est Rangs [RESOLU]
« le: 09 Novembre 2008, 17:17:14 »
Bonjours tout le monde :)

Alors voila sa fait 1 semain que je cherche un TUTO pour créer des TEAM avec leader et Rangs (Comme Godfather) mais sans rien trouver

J'ai utuliser la fonction rechercher du serveur
J'ai chercher sur le Forum de SA-MP
J'ai chercher sur Google (Suicidaire ^^)

Mais toujours rien...

Donc je me demande si quelqu'un aurai un TUTO ou pourai en créer un  :)

Voila  :P

Aurevoir et Merci d'avance
« Modifié: 07 Décembre 2008, 10:36:00 par Spike4395 »

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Team avec Leader est Rangs
« Réponse #1 le: 09 Novembre 2008, 20:43:03 »
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++
« Modifié: 09 Novembre 2008, 20:56:03 par Sim »





Hors ligne Spike4395

  • *
  • Criminel
  • Messages: 29
    • Voir le profil
Re : Team avec Leader est Rangs
« Réponse #2 le: 09 Novembre 2008, 21:16:04 »
Re Salut

Merci a toi  :)

mais ses pas ce que je cherche  :(

Je cherche un tuto pour faire une Team avec leader et rangs

avec un truck du style que l'admin (Lui seul) Peux faire /makeleader (Id /partie du nom du joueur) (Id de la team (ou le nom) )

Apres le Leader peux faire ces commands 

/recruter ID  (Permet de recruter un autre joueur dans la team)
/uprank ID (ID du rank) (Permet de monter/descendre le grade du joueur de la team)


Voila :D

PS : L'autre tuto que tu ma fait va m'aider pour mon serveur Dm :D

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Team avec Leader est Rangs
« Réponse #3 le: 09 Novembre 2008, 21:24:08 »
salut,

tu peut changer le système comme tu le désie, tu renomme les team puis tu met un truc du genre

if(!strcmp(cmdtext,"/repair",true)){
 if(TeamPlayers[playerid][TeamPlayer] != TEAM_MECANO)return SendClientmessage(playerid,COLOR_RED,"Tu ne peut faire cette commande, tu n'est pas mécano!");

et puis les niveaux tu fais comme tu veut, une commande pour les admins, qu'ils changent les niveaux des gens,
 au lieu du NbKill, tu écrit Points, et ça a une toute autre signification...
ensuite, si il fait un boulot, tu lui donne des points, à un certains nb de point, il monte de niveau etc...
les niveaux, tu leurs mets les noms que tu veut:
#define LEVEL_DEBUTANT 0
#define LEVEL_INTERMATIDAIRE 1
#define LEVEL_HABITUER 2
#define LEVEL_CONNAISSEUR 3
#define LEVEL_EXPERT 4
#define LEVEL_MEILLEUR 4

et voilà tu as des team pour un rpg, enfin, à peu près

++Sim++





Hors ligne Spike4395

  • *
  • Criminel
  • Messages: 29
    • Voir le profil
Re : Team avec Leader est Rangs
« Réponse #4 le: 10 Novembre 2008, 09:02:07 »
A oui  :D

 :laugh Merci encore

Hors ligne Spike4395

  • *
  • Criminel
  • Messages: 29
    • Voir le profil
Re : Team avec Leader est Rangs
« Réponse #5 le: 05 Décembre 2008, 17:15:18 »
Désolé de remonte le Sujet mais si je veux que les informations ce sauvegarde je fais comment ? ( Dini j'ai du mal a m'en servire )

et on fait comment pour faire une command ( /grade ) suivi de l'id pour qu'elle ce fait que sur L'id designié

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Team avec Leader est Rangs
« Réponse #6 le: 05 Décembre 2008, 21:56:49 »
Salut,

pour l'include dini, tu doit en premier créer le fichier (dini_create(adresse) ou encore fcreate(adresse))

alors par exemple, pour stocké les fichiers dans un dossiers users, tu vas avoir, comme  adresse /Users/NOMDUJOUEUR

mais, afin d'avoir le nom du joueur, et ne pas insérer les caractères inutilisables pour les fichiers, tu dois utiliser format et udb_encode

format(string,sizeof(string),"/Users/%s",udb_encode(name));
puis, tu te fie à l'utilité de chacune des fonctions, voici la liste, environ:

  • dini_get, dini_set: receuillir/enregistrer des strings.
  • dini_Int, dini_IntSet : receuillir/enregister un nombre entier
  • dini_Bool, dini_BoolSet : receuilir/enregistrer des valeurs booléenne(vrai/faux) (mais perso j'aime pas trop son fonctionnement)
  • dini_exist : savoir si un ifchier existe, que tu peut remplacer par fexost qui effectue exactement la même chose
  • dini_remove : supprimer un fichier, comme fremove, mais avec un test fexist, donc si le fichier n'existe pas,retourne 0
  • dini_create : créer un fichier
  • dini_dini_PRIVATE_ExtractKey,  dini_PRIVATE_ExtractValue : pour retrouver la partie devant l'espace(key) (dans le fichier, si tu as récupéré toute la ligne) ou la partie après (value)
  • dini_Float, dini_FloatSet : récupérer/enregistrer un nombre à virgules
  • dini_UnSet : éffacer une ligne du fichier
  • dini_IsSet : retourne 1 si une valeur à été trouvé pour la ligne en question, 0 dans le cas contraire

sinon, après tu te sert correctement de ces fonctions et tu devrais être capable de t'arranger, en apssant, dans le plupart des cas, les fonctions sont sous la forme suivante:

pour les enregistrement : dini_***(adresse du fichier, le mot avant le = dans le fichier,valeur à enregistrer);
pour les récupération de valeur: dini_***(adresse, teme) et la fonction retourne la valeur trouvé

voici un petit exemple:

OnPlayerDisConnect(playerid,reason)
{
    new Name[MAX_PLAYER_NAME];
    new string[128];
    GetPlayerName(playerid,Name,MAX_PLAYER_NAME);
    if(reason != 2){//si il n'a pas été gentil XD
        format(string,sizeof(string),"/Users/%s",udb_encode(Name)
       dini_IntSet(string,"Cash",GetPlayerMoney(playerid));//pour le fichier avec le nmom du joueur, à la ligne nommé "cash" on place son argent!!
    }
    return 1;
}

++Sim++





Hors ligne Spike4395

  • *
  • Criminel
  • Messages: 29
    • Voir le profil
Re : Team avec Leader est Rangs
« Réponse #7 le: 06 Décembre 2008, 17:20:20 »
:) Merci Sim  :) [/b]

Tout ce que je peux faire pour te remercié c'est de te mettre dans les crédits  :happy

Pas grand chose mais bon...

Merci encore :)

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : Team avec Leader est Rangs
« Réponse #8 le: 06 Décembre 2008, 18:29:12 »
Salut,

ne te sens pas obligé, je ne l'ai pas fait pour être dans les crédits mais bien pour t'aider...

++Sim++