GTAOnline.net

San Andreas Multiplayer (sa:mp) => Scripting SA-MP [Pawn center] => Discussion démarrée par: TheAlex86 le 03 Novembre 2009, 16:07:09

Titre: probleme tres genant avec le /makeleader
Posté par: TheAlex86 le 03 Novembre 2009, 16:07:09
Yop yop alors voila j'ai un problème assez chiant,....

je pense que ça vien du /makeleader.

je m'explique

prenons l'exemple de la police.

admettons on m'invite policier on me met rang 5 ou 6 je peu utiliser le /gouv, je pue mettre des amende etc etc .

mais si je me makeleader dans la faction police et bien je ne sais plus faire /gouv ni /amende car il me dis que je suis pas policier -_-

Quelqu'un a une idée de comment régler le problème.

Au début jme suis dis je vais me faire /donnerrang Id 6.
Mais le même bug survient.

Je vous montre la Cmd Makeleader ci desous.

if(strcmp(cmd, "/makeleader", true) == 0)
{
    if(IsPlayerConnected(playerid))
    {
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /makeleader [playerid/PartieduNom] [numero(1-10)]");
SendClientMessage(playerid, COLOR_GRAD2," 1.Police 2.FBI 3.Armée 4.Paramedic 5.Triad ");
SendClientMessage(playerid, COLOR_GRAD2," 6.Clodo 7.Présidence 8.Yakuza 9.Journaliste 10.Transport");
SendClientMessage(playerid, COLOR_GRAD2," 11.Instructeur 12.Pegre ");
return 1;
}
new para1;
new level;
para1 = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
level = strval(tmp);
if(level > 12 || level < 0) { SendClientMessage(playerid, COLOR_GREY, "   N'allez pas au-dessous de numero 0, ou au-dessus de numero 11!"); return 1; }
if (PlayerInfo[playerid][pAdmin] >= 1337)
{
    if(IsPlayerConnected(para1))
    {
        if(para1 != INVALID_PLAYER_ID)
        {
            if(PlayerInfo[para1][pMember] > 0 || PlayerInfo[para1][pFMember] < 255)
            {
                SendClientMessage(playerid, COLOR_GREY, "   Ce joueur est déja dans une faction / famille !");
                return 1;
            }
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
PlayerInfo[para1][pLeader] = level;
format(string, sizeof(string), "   Vous avez été promus au Chef à la Faction demandée de Votre par Admin %s", sendername);
SendClientMessage(para1, COLOR_LIGHTBLUE, string);
format(string, sizeof(string), "   Vous avez donné le contrôle de %s pour diriger la Faction numero %d.", giveplayer,level);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
if(level == 0) { PlayerInfo[para1][pChar] = 0; }
else if(level == 1) { PlayerInfo[para1][pChar] = 288; } //Police Force
else if(level == 2) { PlayerInfo[para1][pChar] = 286; } //FBI/ATF
else if(level == 3) { PlayerInfo[para1][pChar] = 287; } //Army
else if(level == 4) { PlayerInfo[para1][pChar] = 228; } //Fire/Ambulance
else if(level == 5) { PlayerInfo[para1][pChar] = 113; } //triad
else if(level == 6) { PlayerInfo[para1][pChar] = 137; } //Clodo
else if(level == 7) { PlayerInfo[para1][pChar] = 295 ; } //Mayor
else if(level == 8) { PlayerInfo[para1][pChar] = 294; } //Hitmans
else if(level == 9) { PlayerInfo[para1][pChar] = 227; } //Journalistes
else if(level == 10) { PlayerInfo[para1][pChar] = 261; } //Taxi Cab Company
else if(level == 11) { PlayerInfo[para1][pChar] = 171; } //Driving/Flying School
else if(level == 12) { PlayerInfo[para1][pChar] = 133; } //Pegre
    gTeam[para1] = 12;
    PlayerInfo[para1][pTeam] = 12;
    SetPlayerSkin(para1, PlayerInfo[para1][pChar]);
}
}//not connected
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "   Tu n'es pas autorisé à utiliser cette commande !");
}
}
return 1;
}


Merci beaucoup.
Titre: Re : probleme tres genant avec le /makeleader
Posté par: Diablo62 le 03 Novembre 2009, 20:16:25
Salut.

Ton Makeleader a l'air bien pourtant, du moins chez moi j'ai plus ou moins la même chose. Je pense donc que c'est plus dans les autres que ça bug.

Regarde comment ils sont fait et voit si le leader de la faction 1 peux utiliser ses choses parce que d'après moi, le leader n'a pas l'autorisation adéquate pour le /gouv ou autres ;)
Titre: Re : probleme tres genant avec le /makeleader
Posté par: scott1 le 03 Novembre 2009, 21:37:43
Moi j'ai cette cmd

//----------------------------------[MAKELEADER]------------------------------------------------
if(strcmp(cmd, "/mettrechef", true) == 0)
{
    if(IsPlayerConnected(playerid))
    {
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_WHITE, "USAGE: /mettrechef [playerid/PartOfName] [numero(1-16)]");
SendClientMessage(playerid, COLOR_WHITE, "Numéro: 1 Police - 2 FBI - 3 Armée - 4 Medecin - 5 Bloodz");
SendClientMessage(playerid, COLOR_WHITE, "Numéro: 6 Corleone - 7 Gouvernement - 8 Hitman -  9 L.A. Times");
SendClientMessage(playerid, COLOR_WHITE, "Numéro: 14 Cripz - 15 Chornaya Bratva - 16 Top Shottas - 17 Duke");
return 1;
}
new para1;
new level
para1 = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
level = strval(tmp);
if(level > 17 || level < 0) { SendClientMessage(playerid, COLOR_GREY, "Mauvais numero defaction!"); return 1; }
if (PlayerInfo[playerid][pAdmin] >= 4)
{
    if(IsPlayerConnected(para1))
    {
        if(para1 != INVALID_PLAYER_ID)
        {
            if(PlayerInfo[para1][pMember] > 0 || PlayerInfo[para1][pFMember] < 255)
            {
                SendClientMessage(playerid, COLOR_GREY, "Ce joueur est déjà dans une Faction!");
                return 1;
            }
            new ttext[20];
if(level == 0) { ttext = "Civil"; }
else if(level == 1) { ttext = "Police"; }
else if(level == 2) { ttext = "FBI"; }
else if(level == 3) { ttext = "Armée"; }
else if(level == 4) { ttext = "Medecin"; }
else if(level == 5) { ttext = "Bloodz"; }
else if(level == 6) { ttext = "Corleone"; }
else if(level == 7) { ttext = "Gouvernement"; }
else if(level == 8) { ttext = "Hitman"; }
else if(level == 9) { ttext = "LA Time"; }
//else if(level == 10) { ttext = "Taxi"; }
//else if(level == 11) { ttext = "School Instructor"; }
else if(level == 14) { ttext = "Cripz"; }
else if(level == 15) { ttext = "Chornaya Bratva"; }
else if(level == 16) { ttext = "Top Shottas"; }
else if(level == 17) { ttext = "Duke"; }
GetPlayerName(para1, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
PlayerInfo[para1][pLeader] = level;
format(string, sizeof(string), "Vous avez été promus chef de la faction %s Par l'Admin %s",ttext ,sendername);
SendClientMessage(para1, COLOR_WHITE, string);
format(string, sizeof(string), "Vous avez donné à %s le controle de la faction %s.", giveplayer,ttext);
SendClientMessage(playerid, COLOR_WHITE, string);
if(level == 0) { PlayerInfo[para1][pChar] = 0; PlayerInfo[para1][pRank] = 0; gTeam[para1] = 3; PlayerInfo[para1][pTeam] = 0; return 1; }
else if(level == 1) { PlayerInfo[para1][pChar] = 288; } //Police Force
else if(level == 2) { PlayerInfo[para1][pChar] = 286; } //FBI/ATF
else if(level == 3) { PlayerInfo[para1][pChar] = 287; } //National Guard
else if(level == 4) { PlayerInfo[para1][pChar] = 228; } //Fire/Ambulance
else if(level == 5) { PlayerInfo[para1][pChar] = 28; } //Bloodz
else if(level == 6) { PlayerInfo[para1][pChar] = 120; } //La Famiglia Corleone
else if(level == 7) { PlayerInfo[para1][pChar] = 147; } //Mayor
else if(level == 8) { PlayerInfo[para1][pChar] = 20; } //Hitmans
else if(level == 9) { PlayerInfo[para1][pChar] = 186; } //News Reporters
//else if(level == 10) { PlayerInfo[para1][pChar] = 61; } //Taxi Cab Company
else if(level == 11) { PlayerInfo[para1][pChar] = 171; } //Driving/Flying School
else if(level == 14) { PlayerInfo[para1][pChar] = 270; } //Cripz
else if(level == 15) { PlayerInfo[para1][pChar] = 113; } //Chornaya Bratva
else if(level == 16) { PlayerInfo[para1][pChar] = 25; } //Top Shottas
else if(level == 17) { PlayerInfo[para1][pChar] = 46; } //Duke

if(level == 0)
{
    gTeam[para1] = 3;
    PlayerInfo[para1][pTeam] = 3;
}
else if(level == 1 || level == 2 || level == 3)
{
    gTeam[para1] = 2;
    PlayerInfo[para1][pTeam] = 2;
}
else if(level == 4)
{
    gTeam[para1] = 1;
    PlayerInfo[para1][pTeam] = 1;
}
else
{
    gTeam[para1] = 15;
    PlayerInfo[para1][pTeam] = 15;
}

    SetPlayerSkin(para1, PlayerInfo[para1][pChar]);
   
    if(level == 0)
    {
        PlayerInfo[para1][pRank] = 0;
    }
    else
    {
    PlayerInfo[para1][pRank] = 6;
}
}
}//not connected
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "Vous n'êtes pas autorisé à utiliser cette commande!");
}
}
return 1;
}
Titre: Re : probleme tres genant avec le /makeleader
Posté par: Jerome02 le 03 Novembre 2009, 23:52:00
ton probleme vient de la commande /amende ou /gouv pas makeleader le makeleader na rien a voir avec ton probleme je t'explique :

alors ton probleme vient de la commande exemple ( je met ma commande /gouv ici )

if(strcmp(cmd, "/gouvernement", true) == 0 || strcmp(cmd, "/gouv", true) == 0)
{
   if(IsPlayerConnected(playerid))
   {
if(gTeam[playerid] != 2)
{
   if(PlayerInfo[playerid][pLeader] != 7)
   {
    SendClientMessage(playerid, COLOR_GREY, "Vous n'êtes pas policier!");
    return 1;
}
}
if(PlayerInfo[playerid][pRank] < 6)
{
   SendClientMessage(playerid, COLOR_GREY, "Vous n'êtes pas assez gradez pour utiliser cette commande!");
   return 1;
}
GetPlayerName(playerid, sendername, sizeof(sendername));
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
result[idx - offset] = EOS;
if(!strlen(result))
{
SendClientMessage(playerid, COLOR_GRAD2, "USAGE: (/gouv)ernement [text]");
return 1;
}
SendClientMessageToAll(COLOR_WHITE, "|___________ Annonce du Gouvernement ___________|");
if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
{
if(PlayerInfo[playerid][pRank] == 8) { format(string, sizeof(string), "Chef %s: %s", sendername, result); }
   else if(PlayerInfo[playerid][pRank] == 7) { format(string, sizeof(string), "Chef Adjoint %s: %s", sendername, result); }
   else if(PlayerInfo[playerid][pRank] == 6) { format(string, sizeof(string), "Capitaine %s: %s", sendername, result); }
SendClientMessageToAll(COLOR_BLUE, string);
}
else if(PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2)
{
format(string, sizeof(string), "Agent %s: %s", sendername, result);
SendClientMessageToAll(COLOR_GRAD2, string);
}
else if(PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 3)
{
format(string, sizeof(string), "Soldat %s: %s", sendername, result);
SendClientMessageToAll(COLOR_GREEN, string);
}
else if(PlayerInfo[playerid][pLeader] == 7)
{
format(string, sizeof(string), "Maire %s: %s", sendername, result);
SendClientMessageToAll(COLOR_GREY, string);
}
}
return 1;
}


et toi tu arrive pas a faire la commande car tu a pas monter le grade dans la commande c'est sa :

if(PlayerInfo[playerid][pLeader] != 7)
cherche un truque du genre et met ke grade qui correspond a ta faction





PS : je ne sais pas si c'est vraiment sa courriger moi si c'est pas sa  :-[ ::) comme vous le voyer je debute aussi  :P
Titre: Re : probleme tres genant avec le /makeleader
Posté par: cristab le 04 Novembre 2009, 00:25:59
[HS]


Je commmence a comprendre pourquoi certain RPG pese 45000 lignes coder comme pas possible :ninja


[/HS]

EDIT Jerome02 il me semble que ta sign est Hors Norm

Citer
- Le format maximal autorisé est 630*150 pour les images.
Titre: Re : Re : probleme tres genant avec le /makeleader
Posté par: Diablo62 le 04 Novembre 2009, 00:35:11
Je commmence a comprendre pourquoi certain RPG pese 45000 lignes coder comme pas possible :ninja

XD Et moi qui me plaignait avec mes 20.000 Lignes (dont 7.000 sont déjà partis à la poubelle et d'autres suivront bientôt)
Titre: Re : probleme tres genant avec le /makeleader
Posté par: TheAlex86 le 10 Novembre 2009, 09:30:12
non non les grades que j'ai mis dans ma commandes gouv corresponde bien au grade existant et le pleader corresond bien a la bonne faction lma preuve est que si on m'invite dans la faction et me met chef la ben le /gouv marche,... c'ets pour ça que je pensais que c'était mon gouv. vu que c'est juste avec le makeleader qur ça marche pas.
Titre: Re : probleme tres genant avec le /makeleader
Posté par: FuSion le 10 Novembre 2009, 13:10:49
Essaye de voir s'il y'a un  :
  if(PlayerInfo[playerid][pLeader] == 1)dans la condition des commandes parfois il y'a simplement un
  if(PlayerInfo[playerid][pMember] == 1)

PS : Remplace 1 par l'id des policiers mais sur LARP 1 = Police par défaut  ;)

++
FS'
Titre: Re : probleme tres genant avec le /makeleader
Posté par: TheAlex86 le 10 Novembre 2009, 16:42:34
oui oui j'ai bien le leader  j'ai mis ça comme ça .
if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1)
Titre: Re : probleme tres genant avec le /makeleader
Posté par: Mr.Redovan le 13 Novembre 2009, 18:32:20
Essaye de te Setteam, au 2.