• 05 Juin 2026, 14:59:13


Auteur Sujet: OnDialogResponse = Kick ? :)  (Lu 1623 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne Myk3L

  • *
  • Tueur en série
  • Messages: 197
    • Voir le profil
OnDialogResponse = Kick ? :)
« le: 27 Octobre 2010, 14:30:01 »
Salut !
J'ai fait des liste de dialogues ... sur mon gamemode. Tout marche, mais j'ai un problème, quand je choisis un truc dans la liste, ça me kick.
Voici mon OnDialogResponse() :

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
  if(dialogid == 1 && response)
{
    new sendername[MAX_PLAYER_NAME];
new string[128];
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "users/%s.ini", sendername);
new File: hFile = fopen(string, io_read);
            if(!hFile)
            {
                SendClientMessage(playerid, COLOR_RED, "Ce compte n'est pas enregistrer.");
                ShowPlayerDialog(playerid, 2,DIALOG_STYLE_INPUT,"Bienvenue sur Vie Ta Vie","Enregistrement\n\nEntrez votre mot de passe\nEntrez votre mot de passe : ","Enregistrer","Quitter");
            }
            //strmid(tmppass, tmp, 0, strlen(cmdtext), 255);
            OnPlayerLogin(playerid,inputtext);
            return 1;
         }
else
{
            Kick(playerid);
            return 1;
         }

if(dialogid == 2 && response)
{
    new sendername[20],string[128];
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "users/%s.ini", sendername);
new File: hFile = fopen(string, io_read);
if (hFile)
{
SendClientMessage(playerid, COLOR_YELLOW, "Ce nom est déjà utiliser reconnecter vous avec un autre Mot de passe.");
fclose(hFile);
return 1;
}
if(!strlen(inputtext))
{
ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Enregister vous","Veuillez entrez votre mot de passe\nPour vous enregistrer","Ok","Annuler");
return 1;
}
//Encrypt(tmppass);
OnPlayerRegister(playerid,inputtext);
}
else
{
   Kick(playerid);
   return 1;
}
         
  if(dialogid == 3 && response)
{
          new pName[MAX_PLAYER_NAME],gName[MAX_PLAYER_NAME];
          new giveplayerid = GetPVarInt(playerid,"ClickedPlayer");
          new message[256];
          new string[128];
  GetPlayerName(playerid,pName,sizeof pName); //pName : Administrateur
          GetPlayerName(giveplayerid,gName,sizeof gName); //gName : Joueur

if(listitem == 0)
{
              if(IsPlayerConnected(playerid))
           {
    if(IsPlayerConnected(giveplayerid))
    {
        if(giveplayerid != INVALID_PLAYER_ID)
        {
TogglePlayerControllable(giveplayerid, 1);
GameTextForPlayer(giveplayerid, "~w~Vous pouvez a nouveau bouger", 5000, 3);
format(string, sizeof(string), "%s à été unfreeze par %s", gName, pName);
ABroadCast(COLOR_YELLOW,string,1);
}
   }}
  }
if(listitem == 1)
{
              if(IsPlayerConnected(playerid))
           {
    if(IsPlayerConnected(giveplayerid))
    {
        if(giveplayerid != INVALID_PLAYER_ID)
        {
TogglePlayerControllable(giveplayerid, 0);
GameTextForPlayer(giveplayerid, "~w~Vous ne pouvez plus bouger", 5000, 3);
format(string, sizeof(string), "%s à été freeze par %s", gName, pName);
ABroadCast(COLOR_YELLOW,string,1);
}
}}
    }
  }

if(dialogid == 4 && response)
{
    switch(listitem)
    {

case 1:
{
    SendClientMessage(playerid, COLOR_WHITE, "* Vous êtes sur le point de devenir Avocat, et d'obtenir un contrat de 5h.");
SendClientMessage(playerid, COLOR_WHITE, "* Vous devez finir le contrat de 5h si vous voulez quitter ce job plus tard.");
SendClientMessage(playerid, COLOR_WHITE, "* Si vous êtes sur de devenir Avocat, tapper /accepter job.");
GettingJob[playerid] = 2;
TogglePlayerControllable(playerid,1);
//return 1;
}
  case 2:
{
    SendClientMessage(playerid, COLOR_WHITE, "* Vous êtes sur le point de devenir Livreur, et d'obtenir un contrat de 5h.");
SendClientMessage(playerid, COLOR_WHITE, "* Vous devez finir le contrat de 5h si vous voulez quitter ce job plus tard.");
SendClientMessage(playerid, COLOR_WHITE, "* Si vous êtes sur de devenir Livreur, tapper /accepter job.");
GettingJob[playerid] = 16;
TogglePlayerControllable(playerid,1);
//return 1;
}
  case 3:
{
    SendClientMessage(playerid, COLOR_WHITE, "* Vous êtes sur le point de devenir Fermier, et d'obtenir un contrat de 5h.");
SendClientMessage(playerid, COLOR_WHITE, "* Vous devez finir le contrat de 5h si vous voulez quitter ce job plus tard.");
SendClientMessage(playerid, COLOR_WHITE, "* Si vous êtes sur de devenir Fermier, tapper /accepter job.");
GettingJob[playerid] = 18;
TogglePlayerControllable(playerid,1);
//return 1;
}
        case 4:
        {
    SendClientMessage(playerid, COLOR_WHITE, "* Vous êtes sur le point de devenir Chauffeur de Taxi, et d'obtenir un contrat de 5h.");
SendClientMessage(playerid, COLOR_WHITE, "* Vous devez finir le contrat de 5h si vous voulez quitter ce job plus tard.");
SendClientMessage(playerid, COLOR_WHITE, "* Si vous êtes sur de devenir Chauffeur de Taxi, tapper /accepter job.");
    GettingJob[playerid] = 13;
        //SendClientMessage(playerid, COLOR_WHITE, "* Pour avoir ce Job, posté une candidature forum et attendez de vous faire inviter par un administrateur !");
    TogglePlayerControllable(playerid,1);
    //return 1;
}
case 5:
{
    SendClientMessage(playerid, COLOR_WHITE, "* Vous êtes sur le point de devenir Chauffeur de Bus, et d'obtenir un contrat de 5h.");
SendClientMessage(playerid, COLOR_WHITE, "* Vous devez finir le contrat de 5h si vous voulez quitter ce job plus tard.");
SendClientMessage(playerid, COLOR_WHITE, "* Si vous êtes sur de devenir Chauffeur de Bus, tapper /accepter job.");
GettingJob[playerid] = 14;
                //SendClientMessage(playerid, COLOR_WHITE, "* Pour avoir ce Job, posté une candidature forum et attendez de vous faire inviter par un administrateur !");
TogglePlayerControllable(playerid,1);
//return 1;
}
/*case 2:
{
    SendClientMessage(playerid, COLOR_WHITE, "* Vous êtes sur le point de devenir Livreur de Journaux, et d'obtenir un contrat de 5h.");
SendClientMessage(playerid, COLOR_WHITE, "* Vous devez finir le contrat de 5h si vous voulez quitter ce job plus tard.");
SendClientMessage(playerid, COLOR_WHITE, "* Si vous êtes sur de devenir Livreur de Journals, tapper /accepter job.");
GettingJob[playerid] = 15;
TogglePlayerControllable(playerid,1);
return 1;
}*/
case 6:
{
    SendClientMessage(playerid, COLOR_WHITE, "* Vous êtes sur le point de devenir Livreur de Pizza, et d'obtenir un contrat de 5h.");
SendClientMessage(playerid, COLOR_WHITE, "* Vous devez finir le contrat de 5h si vous voulez quitter ce job plus tard.");
SendClientMessage(playerid, COLOR_WHITE, "* Si vous êtes sur de devenir Livreur de Pizza, tapper /accepter job.");
GettingJob[playerid] = 17;
TogglePlayerControllable(playerid,1);
//return 1;
}
  case 7:
{
    SendClientMessage(playerid, COLOR_WHITE, "* Vous êtes sur le point de devenir Balayeur de Rue, et d'obtenir un contrat de 5h.");
SendClientMessage(playerid, COLOR_WHITE, "* Vous devez finir le contrat de 5h si vous voulez quitter ce job plus tard.");
SendClientMessage(playerid, COLOR_WHITE, "* Si vous êtes sur de devenir Balayeur de Rue, tapper /accepter job.");
GettingJob[playerid] = 21;
TogglePlayerControllable(playerid,1);
//return 1;
}
  case 8:
{
    SendClientMessage(playerid, COLOR_WHITE, "* Vous êtes sur le point de devenir Mecanicien, et d'obtenir un contrat de 5h.");
SendClientMessage(playerid, COLOR_WHITE, "* Vous devez finir le contrat de 5h si vous voulez quitter ce job plus tard.");
SendClientMessage(playerid, COLOR_WHITE, "* Si vous êtes sur de devenir Mecanicien, tapper /accepter job.");
GettingJob[playerid] = 7;
TogglePlayerControllable(playerid,1);
//return 1;
}
  //return 1;
}
  return 1;
}
 return 1;
}

Je voit tout ça normal moi :P
Merci d'avance !

Hors ligne spiirou

  • *
  • L'avenir appartient à ceux qui se lèvent
  • Messages: 866
    • Voir le profil
Re : OnDialogResponse = Kick ? :)
« Réponse #1 le: 27 Octobre 2010, 14:34:53 »
Euh.. J'ai pas envie de lire ton code, il est identé avec les pieds  :closedeyes

Hors ligne Jcvag44800

  • *
  • Grand Banditisme
  • Messages: 616
    • Voir le profil
Re : OnDialogResponse = Kick ? :)
« Réponse #2 le: 27 Octobre 2010, 14:37:34 »
Met ton code avec pastebin


Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Re : OnDialogResponse = Kick ? :)
« Réponse #3 le: 27 Octobre 2010, 14:38:28 »
Perso pour les dialogue,

je te conseil les #define TONDIALOG    1
#define TONDIALOG2      2
#define TONDIALOG3      3

ça t'evite de te tromber dans les if(dialogid == ..

ce qui a du se passer
Refait un Game mode a partir d'une page blanche



Mes partages:

Systeme de Radio avec Frequence Création

Ajouter des véhicule dans le LARP - Godfather Tuto

Anti Cheat "JunkBuster" traduit en FR Traduction

LARP Traduit FR, V0.3 Traduction

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : OnDialogResponse = Kick ? :)
« Réponse #4 le: 27 Octobre 2010, 14:39:10 »
if( dialogid == 1 )
{
    if( response )
    {
new sendername[MAX_PLAYER_NAME];
new string[128];
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "users/%s.ini", sendername);
new File: hFile = fopen(string, io_read);
if(!hFile)
{
SendClientMessage(playerid, COLOR_RED, "Ce compte n'est pas enregistrer.");
ShowPlayerDialog(playerid, 2,DIALOG_STYLE_INPUT,"Bienvenue sur Vie Ta Vie","Enregistrement\n\nEntrez votre mot de passe\nEntrez votre mot de passe : ","Enregistrer","Quitter");
}
//strmid(tmppass, tmp, 0, strlen(cmdtext), 255);
OnPlayerLogin(playerid,inputtext);
return 1;
}
else
{
Kick(playerid);
return 1;
}
}


Normalement la ça devrai être bon, lit le code tu comprendra ton erreur



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne Myk3L

  • *
  • Tueur en série
  • Messages: 197
    • Voir le profil
Re : OnDialogResponse = Kick ? :)
« Réponse #5 le: 27 Octobre 2010, 15:06:48 »
Je vais tester, voici mon pastebin ;)

http://pastebin.gtaonline.fr/pastebin.php?show=915

Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Re : OnDialogResponse = Kick ? :)
« Réponse #6 le: 27 Octobre 2010, 15:45:55 »
J'aime pas lire ce genre de code, aucun n'est droit, tu ne vois pas les erreur de { }
Refait un Game mode a partir d'une page blanche



Mes partages:

Systeme de Radio avec Frequence Création

Ajouter des véhicule dans le LARP - Godfather Tuto

Anti Cheat "JunkBuster" traduit en FR Traduction

LARP Traduit FR, V0.3 Traduction

Hors ligne S!m

  • *
  • Messages: 2341
    • Voir le profil
Re : OnDialogResponse = Kick ? :)
« Réponse #7 le: 27 Octobre 2010, 19:43:36 »
Salut,

cas qui montre clairement pourquoi je n'aime pas les tests combinés (alors qu'ils ne vont pas vraiment ensemble).

la combinaison du test sur le dialog et la réponse est la problème ici (comme l'a vu Sasuke).

ton premier test: si le dialog est le 1 et que la réponse est 1.
le else (qui kick) : si c'est le dialog 1 et la réponse est 0 OU ce n'est pas le dialog 1 => kick

bref, tu kick pour tous les dialogs sauf le 1 (avec réponse = 1)

++Sim++





Hors ligne Myk3L

  • *
  • Tueur en série
  • Messages: 197
    • Voir le profil
Re : OnDialogResponse = Kick ? :)
« Réponse #8 le: 27 Octobre 2010, 20:27:01 »
J'ai refais le truc "en mode sasuke", c'est vrai que mon code était assez "sale" ;)
Je vous dit si ça marche dans un moment car je ne peut pas lancer de serveur en local, seulement le mettre sur mon serveur !