• 30 Juin 2025, 20:56:23


Auteur Sujet: Lucifer - Topic Général d'aide  (Lu 3737 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Lucifer

  • *
  • Tueur en série
  • Messages: 199
    • Voir le profil
    • Midtown States Role Play
Lucifer - Topic Général d'aide
« le: 14 Novembre 2010, 09:01:00 »
Bonjour,

Je pense que je vais faire comme Myk3L, un topic général ou je poserais toutes mes questions :).

Donc, première question :

1. Je possède l'include de Dixon pour le permis automatique, j'aimerais savoir comment faire pour que le joueur puisse seulement /passercode que si il y a 0 instructeurs de connecté ? (J'ai une idée mais j'aimerais savoir comment vous feriez vous) ?

Merci d'avance de vos aides.

Hors ligne Myk3L

  • *
  • Tueur en série
  • Messages: 197
    • Voir le profil
Re : Lucifer - Topic Général d'aide
« Réponse #1 le: 14 Novembre 2010, 09:34:57 »
Tu fais une fonction pour savoir si les membres d'une faction sont connectés avec boucle for de ce genre.:

forward IsMemberConnected(idfaction);

public IsMemberConnected(idfaction)
{
for(new i = 0; i < MAX_PLAYER; i++)
{
   if(IsPlayerConnected(i))
     {
        if(PlayerInfo[pMember] == idfaction || PlayerInfo[pLeader] == idfaction)
         {
             return 1;
         }
        else
        {       
             return 0;
        }
     }
}
}

PS : Code fait sur un portable ;)

Myk3L.

HS : T'as raison de faire un topic ;)

Hors ligne Lucifer

  • *
  • Tueur en série
  • Messages: 199
    • Voir le profil
    • Midtown States Role Play
Re : Lucifer - Topic Général d'aide
« Réponse #2 le: 14 Novembre 2010, 10:09:18 »
D'accord, je vois le truc et après dans la commande, il faut que je mette quoi ?

Hors ligne Myk3L

  • *
  • Tueur en série
  • Messages: 197
    • Voir le profil
Re : Lucifer - Topic Général d'aide
« Réponse #3 le: 14 Novembre 2010, 10:28:45 »
Bah tu mets quelque chose du genre

Ta commande
{
  if(IsAMemberConnected(11))
    {
        SendClientMessage(playerid, COLOR_WHITE, "Des instructeurs sont disponibles, pour les contactez, attendez ici ((Ou tappez /instructeur))");
        return 1;
    }
    else
    {
        Fonction de Dixon
    }
  return 1;
}

Voilà, et tu pourras te servir de cette fonction pour toutes les factions. (11 est l'id de la faction instructeurs je crois)

Myk3L.

Hors ligne Lucifer

  • *
  • Tueur en série
  • Messages: 199
    • Voir le profil
    • Midtown States Role Play
Re : Lucifer - Topic Général d'aide
« Réponse #4 le: 14 Novembre 2010, 10:36:40 »
D'accord merci bien..

J'ai juste ce warning à régler :

38525 : warning 209: function "IsAMemberConnected" should return a value

public IsAMemberConnected(idfaction)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
    if(IsPlayerConnected(i))
      {
        if(PlayerInfo[i][pMember] == idfaction || PlayerInfo[i][pLeader] == idfaction)
          {
              return 1;
          }
        else
        {
              return 0;
        }
      }
}
Ligne 38525 : }


Hors ligne Lucifer

  • *
  • Tueur en série
  • Messages: 199
    • Voir le profil
    • Midtown States Role Play
Re : Lucifer - Topic Général d'aide
« Réponse #5 le: 14 Novembre 2010, 10:43:46 »
Oui :)

Donc, j'ai aucune erreur....juste que sa marche pas correctement.

Que je soit dans la faction 5, 6, 11 ou 32, sa me dit toujours qu'il y a un instructeur de connecté.

Voici ma commande :

    if(strcmp(cmdtext, "/passercode",true)==0)
    {
        if(IsPlayerConnected(playerid))
        {
if(PlayerToPoint(5.0, playerid, -2027.1587,-114.5045,1035.1719)) // DMV
    {
        if(PlayerInfo[playerid][pLevel] > 0)
        {
        if(PlayerInfo[playerid][pCarLic] < 1)
        {
            if(IsAMemberConnected(11))
{
                if(pTest[playerid] == 0)
                {
        if(GetPlayerMoney(playerid) >= 500)
        {
        SetPlayerInterior(playerid,3);
        TogglePlayerControllable(playerid, 0);
        GameTextForPlayer(playerid, "~r~Suivez les instructions !",5000,3);
        pTest[playerid] = 1;
                                   /* ClearChatbox(playerid, 8);
    SendClientMessage(playerid, COLOR_LIGHTRED, "The Information Outline Course");
SendClientMessage(playerid, COLOR_YELLOW, " ");
SendClientMessage(playerid, COLOR_YELLOW, "Welcome to the Information Outline course. In this course you");
SendClientMessage(playerid, COLOR_YELLOW, "will learn about the things that will be tested later on.");
SendClientMessage(playerid, COLOR_YELLOW, " "); */
IO1(playerid);
//SetTimerEx("IO1", 10000, 0, "d", playerid);
SetTimerEx("IO2", 20000, 0, "d", playerid);
SetTimerEx("IO3", 40000, 0, "d", playerid);
SetTimerEx("IO4", 60000, 0, "d", playerid);
SetTimerEx("IO5", 80000, 0, "d", playerid);
SetTimerEx("IO6", 60000, 0, "d", playerid);
SetTimerEx("IO7", 100000, 0, "d", playerid);
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Vous n'avez pas 500$ assez d'argent pour passer le test!");
return 1;
}
}
else
{
    SendClientMessage(playerid, COLOR_GREY, "Vous êtes déjà en train de le passer !");
return 1;
}
}
else
    {
    SendClientMessage(playerid,COLOR_GREY,"  Instructeur de Disponible /instructeur");
return 1;
}
}
    else
{
    SendClientMessage(playerid, COLOR_GREY, "Vous avez déjà votre permis de conduire !");
return 1;
}
}
else
{
SendClientMessage(playerid, COLOR_GREY, "Vous n'avez pas le niveau requis.");
return 1;
}
    }
                return 1;
        }
        return 1;
}

Hors ligne Myk3L

  • *
  • Tueur en série
  • Messages: 197
    • Voir le profil
Re : Lucifer - Topic Général d'aide
« Réponse #6 le: 14 Novembre 2010, 11:11:51 »
C'est normal car tu vérifie si un instructeur est connecté, si oui, tu balance le test, en gros, l'inverse de ce que j'avais dit.
Avec ça, tu devrais y arrivé : http://pastebin.com/dpF9JBG0

Myk3L.

Hors ligne Lucifer

  • *
  • Tueur en série
  • Messages: 199
    • Voir le profil
    • Midtown States Role Play
Re : Lucifer - Topic Général d'aide
« Réponse #7 le: 14 Novembre 2010, 11:35:07 »
C'est bizarre.....sa marche toujours pas

Hors ligne Myk3L

  • *
  • Tueur en série
  • Messages: 197
    • Voir le profil
Re : Lucifer - Topic Général d'aide
« Réponse #8 le: 14 Novembre 2010, 11:43:27 »
Essaye de le faire avec juste un truc comme ça :

   if(strcmp(cmdtext, "/yadesinstru",true)==0)
    {
                       if(IsAMemberConnected(11))
{
   SendClientMessage(playerid,COLOR_GREY,"Instructeur de Disponible /instructeur");
   return 1;
}   
                else SendClientMessage(playerid, COLOR_RED, "Il n'y a pas d'instructeurs en ligne :D");
    }
      return 1;
}

Myk3L.

PS : Au lieu de faire des copié/collé bêtes de ce que j'ai fais, essaye de réfléchir, de modifier des trucs ... ça marchera un jour ;)

Hors ligne Lucifer

  • *
  • Tueur en série
  • Messages: 199
    • Voir le profil
    • Midtown States Role Play
Re : Lucifer - Topic Général d'aide
« Réponse #9 le: 14 Novembre 2010, 12:02:39 »
Citer
PS : Au lieu de faire des copié/collé bêtes de ce que j'ai fais, essaye de réfléchir, de modifier des trucs ... ça marchera un jour Clin d'oeil

C'est ce que je fais ;)

Hors ligne Katou76

  • *
  • Tueur en série
  • Messages: 107
    • Voir le profil
Re : Lucifer - Topic Général d'aide
« Réponse #10 le: 14 Novembre 2010, 14:42:51 »
Salut,

Essaye plutôt ca:

if(!IsAMemberConnected(11))
a la place de if(IsAMemberConnected(11)
J'espère t'avoir aidé ;)
Ce code est un crime contre la programmation.

Hors ligne Myk3L

  • *
  • Tueur en série
  • Messages: 197
    • Voir le profil
Re : Lucifer - Topic Général d'aide
« Réponse #11 le: 14 Novembre 2010, 15:14:00 »
J'y ai pensé après, mais je le laissais réfléchir un peux, si il aurait vraiment rien trouvé, je lui aurais filé un coup de (pied ? :P) main !

Myk3L.

Hors ligne Eloctro

  • Pawno Fan
  • *
  • Grand Banditisme
  • Aight !
  • Messages: 846
    • Voir le profil
    • GtaSA-RP
Re : Lucifer - Topic Général d'aide
« Réponse #12 le: 14 Novembre 2010, 15:23:03 »

 ;D c'est pire

Si un membre de la faction ID 11 est connecté ça renvoi la valeur 1=true sinon 0=false .
La le fait de mettre un "!" inversse le résultat en remplaçant 1 par 0 soit passe de true à false donc ça n'a aucun interet
Enfin bref l'erreur vient de la fonction .
Avant la boucle de pouvait faire qu'un tour et passer par le joueur id 0 car il y avait un return dans les deux cas .
Ce qui revenait à faire :
public IsAMemberConnected(idfaction)
{
if(IsPlayerConnected(0))
{
       if(PlayerInfo[0][pMember] == idfaction || PlayerInfo[0][pLeader] == idfaction)
{
return 1;
}
  else
  {
return 0;
}
}
}

Tout pour en venir à te dire que la fonction est fausse et de vérifié que même si tu change de faction que tu n'est pas encore leader de la 11 .
Correction :
public IsAMemberConnected(idfaction)
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
     {
         if(PlayerInfo[i][pMember] == idfaction || PlayerInfo[i][pLeader] == idfaction)
         {
             return 1;
         }
     }
}
return 0;
}
« Modifié: 14 Novembre 2010, 15:32:05 par Eloctro »

Hors ligne Myk3L

  • *
  • Tueur en série
  • Messages: 197
    • Voir le profil
Re : Lucifer - Topic Général d'aide
« Réponse #13 le: 14 Novembre 2010, 16:50:12 »
Je me coucherais moins con ce soir, je faisais des fonctions avec else return 0; mais en fait pas besoin du else :)

Myk3L.

Hors ligne Lucifer

  • *
  • Tueur en série
  • Messages: 199
    • Voir le profil
    • Midtown States Role Play
Re : Lucifer - Topic Général d'aide
« Réponse #14 le: 14 Novembre 2010, 18:03:57 »
Merci de vos aides, sa marche niquel ;)

C'est juste que je testais mal :). Du coup j'ai mis un NPC instructeur pour voir et sa marche :P