GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: Rodrick_William - 2013. november 28. - 19:03:20

Cím: Belépés
Írta: Rodrick_William - 2013. november 28. - 19:03:20
Sziasztok itt az a hiba ha nem irok bele semmit akkor is beenged. Valaki ki tudná javítani?
 
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
       if(dialogid == 1)
   {
       format(S, sizeof(S), \"Üdvözöllek a szerveren, a(z) %s név még nincs regisztrálva\\nÍrj be egy tetszõleges jelszót!\", Name(playerid));
               if(!response) Kick(playerid);
               if(strlen(inputtext) == 0) ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Regisztráció\", S, \"Rendben\", \"Mégsem\");
               format(File, sizeof(File), \"User/%s.ini\", Name(playerid));
               if(!fexist(File))
               {
                       dini_Create(File);
                       dini_Set(File, \"Password\", inputtext);
                       ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Bejelentkezés\", \"Írd be a jelszavad.\", \"Rendben\", \"Mégsem\");
               }
       }
       if(dialogid == 2)
   {
               format(File, sizeof(File), \"User/%s.ini\", Name(playerid));
               if(!response) Kick(playerid);
               format(PW, 64, \"%s\", dini_Get(File, \"Password\"));
               if(!strcmp(inputtext, PW, false))
               {
                       SendClientMessage(playerid, GREEN, \"Sikeres belépés! Válassz csapatot majd nyomd meg a \'SPAWN\' gombot!\"), Load(playerid);
               }
               else
               {
                       WPW[playerid] ++;
                       SendClientMessage(playerid, RED, \"Rossz jelszó!\");
                       if(WPW[playerid] == 3) return SendClientMessage(playerid, RED, \"Harmadszorra is elrontottad a jelszót, ki lettél rúgva!\"), Kick(playerid);
                       ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Bejelentkezés\", \"Írd a helyes jelszót!\", \"Rendben\", \"Mégsem\");
               }
       }
       return 1;
}
Cím: Belépés
Írta: Lucio - 2013. november 28. - 19:52:46
És így? :
 
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
   if(dialogid == 1)
   {
       format(S, sizeof(S), \"Üdvözöllek a szerveren, a(z) %s név még nincs regisztrálva\\nÍrj be egy tetszõleges jelszót!\", Name(playerid));
if(!response) Kick(playerid);
if(strlen(inputtext) == 0) ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Regisztráció\", S, \"Rendben\", \"Mégsem\");
format(File, sizeof(File), \"User/%s.ini\", Name(playerid));
if(!fexist(File))
{
   dini_Create(File);
   dini_Set(File, \"Password\", inputtext);
   ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Bejelentkezés\", \"Írd be a jelszavad.\", \"Rendben\", \"Mégsem\");
}
}
   if(dialogid == 2)
   {
format(File, sizeof(File), \"User/%s.ini\", Name(playerid));
if(!response) Kick(playerid);
if(strlen(inputtext) == 0) ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Bejelentkezés\", \"Írd a jelszavad:\", \"Rendben\", \"Mégsem\");
format(PW, 64, \"%s\", dini_Get(File, \"Password\"));
if(!strcmp(inputtext, PW, false))
{
   SendClientMessage(playerid, GREEN, \"Sikeres belépés! Válassz csapatot majd nyomd meg a \'SPAWN\' gombot!\"), Load(playerid);
}
else
{
   WPW[playerid] ++;
   SendClientMessage(playerid, RED, \"Rossz jelszó!\");
   if(WPW[playerid] == 3) return SendClientMessage(playerid, RED, \"Harmadszorra is elrontottad a jelszót, ki lettél rúgva!\"), Kick(playerid);
   ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Bejelentkezés\", \"Írd a helyes jelszót!\", \"Rendben\", \"Mégsem\");
}
}
       return 1;
}
Cím: Belépés
Írta: Rodrick_William - 2013. november 28. - 20:01:59

És így? :
 
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
   if(dialogid == 1)
   {
       format(S, sizeof(S), \"Üdvözöllek a szerveren, a(z) %s név még nincs regisztrálva\\nÍrj be egy tetszõleges jelszót!\", Name(playerid));
if(!response) Kick(playerid);
if(strlen(inputtext) == 0) ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Regisztráció\", S, \"Rendben\", \"Mégsem\");
format(File, sizeof(File), \"User/%s.ini\", Name(playerid));
if(!fexist(File))
{
   dini_Create(File);
   dini_Set(File, \"Password\", inputtext);
   ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Bejelentkezés\", \"Írd be a jelszavad.\", \"Rendben\", \"Mégsem\");
}
}
   if(dialogid == 2)
   {
format(File, sizeof(File), \"User/%s.ini\", Name(playerid));
if(!response) Kick(playerid);
if(strlen(inputtext) == 0) ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Bejelentkezés\", \"Írd a jelszavad:\", \"Rendben\", \"Mégsem\");
format(PW, 64, \"%s\", dini_Get(File, \"Password\"));
if(!strcmp(inputtext, PW, false))
{
   SendClientMessage(playerid, GREEN, \"Sikeres belépés! Válassz csapatot majd nyomd meg a \'SPAWN\' gombot!\"), Load(playerid);
}
else
{
   WPW[playerid] ++;
   SendClientMessage(playerid, RED, \"Rossz jelszó!\");
   if(WPW[playerid] == 3) return SendClientMessage(playerid, RED, \"Harmadszorra is elrontottad a jelszót, ki lettél rúgva!\"), Kick(playerid);
   ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Bejelentkezés\", \"Írd a helyes jelszót!\", \"Rendben\", \"Mégsem\");
}
}
       return 1;
}

 

[/quote]
Hát egy pöppett jobb de ha belépek és nem irok be semmit akkor azt irja hogy
Sikeres belépés! Válassz csapatot majd nyomd meg a \'SPAWN\' gombot!

 
Másodszor pedig leenged spawnolni :S
Cím: Belépés
Írta: Lucio - 2013. november 28. - 20:06:06
Most így ez az utolsó ötletem
 
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
   if(dialogid == 1)
   {
       format(S, sizeof(S), \"Üdvözöllek a szerveren, a(z) %s név még nincs regisztrálva\\nÍrj be egy tetszõleges jelszót!\", Name(playerid));
if(!response) Kick(playerid);
if(strlen(inputtext) == 0) ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Regisztráció\", S, \"Rendben\", \"Mégsem\");
format(File, sizeof(File), \"User/%s.ini\", Name(playerid));
if(!fexist(File))
{
   dini_Create(File);
   dini_Set(File, \"Password\", inputtext);
   ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Bejelentkezés\", \"Írd be a jelszavad.\", \"Rendben\", \"Mégsem\");
}
}
   if(dialogid == 2)
   {
format(File, sizeof(File), \"User/%s.ini\", Name(playerid));
if(!response) Kick(playerid);
if(strlen(inputtext) == 0) { ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Bejelentkezés\", \"Írd a jelszavad:\", \"Rendben\", \"Mégsem\"); }   
else
{
   format(PW, 64, \"%s\", dini_Get(File, \"Password\"));
   if(!strcmp(inputtext, PW, false))
   {
      SendClientMessage(playerid, GREEN, \"Sikeres belépés! Válassz csapatot majd nyomd meg a \'SPAWN\' gombot!\"), Load(playerid);
   }
   else
   {
      WPW[playerid] ++;
      SendClientMessage(playerid, RED, \"Rossz jelszó!\");
      if(WPW[playerid] == 3) return SendClientMessage(playerid, RED, \"Harmadszorra is elrontottad a jelszót, ki lettél rúgva!\"), Kick(playerid);
      ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Bejelentkezés\", \"Írd a helyes jelszót!\", \"Rendben\", \"Mégsem\");
   }
}
}
       return 1;
}
Cím: Belépés
Írta: Rodrick_William - 2013. november 28. - 20:12:25
Sajnos ugyan az a hiba. Kivéve nincs ott az a spawn szöveg
Cím: Belépés
Írta: BoOy - 2013. november 28. - 23:46:16
Talán így:
 
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 1)
{
format(S, sizeof(S), \"Üdvözöllek a szerveren, a(z) %s név még nincs regisztrálva\\nÍrj be egy tetszõleges jelszót!\", Name(playerid));
if(!response) Kick(playerid);
if(response)
{
if(0 > strlen(inputtext) > 64) ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Regisztráció\", S, \"Rendben\", \"Mégsem\");
format(File, sizeof(File), \"User/%s.ini\", Name(playerid));
if(!fexist(File))
{
   dini_Create(File);
   dini_Set(File, \"Password\", inputtext);
   ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Bejelentkezés\", \"Írd be a jelszavad.\", \"Rendben\", \"Mégsem\");
}
}
}
if(dialogid == 2)
{
format(File, sizeof(File), \"User/%s.ini\", Name(playerid));
if(!response) Kick(playerid);
format(PW, 64, \"%s\", dini_Get(File, \"Password\"));
if(!strcmp(inputtext, PW, false))
{
   SendClientMessage(playerid, GREEN, \"Sikeres belépés! Válassz csapatot majd nyomd meg a \'SPAWN\' gombot!\"), Load(playerid);
}
else
{
   WPW[playerid] ++;
   SendClientMessage(playerid, RED, \"Rossz jelszó!\");
   if(WPW[playerid] == 3) return SendClientMessage(playerid, RED, \"Harmadszorra is elrontottad a jelszót, ki lettél rúgva!\"), Kick(playerid);
   ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Bejelentkezés\", \"Írd a helyes jelszót!\", \"Rendben\", \"Mégsem\");
}
}
return 1;
}
Cím: Belépés
Írta: Rodrick_William - 2013. november 29. - 14:33:20
Nem jó. Nem ütök be semmit simán beenged.
Cím: Belépés
Írta: BoOy - 2013. november 29. - 15:00:18
Most próbáld meg: (Bocsi csak az a baj hogy nem tudom tesztelni, nem vagyok gépközelbe, de ha most se jó akkor valahol máshol van baj.)
 
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 1)
{
format(S, sizeof(S), \"Üdvözöllek a szerveren, a(z) %s név még nincs regisztrálva\\nÍrj be egy tetszõleges jelszót!\", Name(playerid));
if(!response) Kick(playerid);
                if(response)
               {
if(3 > strlen(inputtext) > 64) ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Regisztráció\", S, \"Rendben\", \"Mégsem\");
format(File, sizeof(File), \"User/%s.ini\", Name(playerid));
if(!fexist(File))
{
   dini_Create(File);
   dini_Set(File, \"Password\", inputtext);
   ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Bejelentkezés\", \"Írd be a jelszavad.\", \"Rendben\", \"Mégsem\");
}
        }
}
if(dialogid == 2)
{
format(File, sizeof(File), \"User/%s.ini\", Name(playerid));
if(!response) Kick(playerid);
format(PW, 64, \"%s\", dini_Get(File, \"Password\"));
if(!strcmp(inputtext, PW, false))
{
   SendClientMessage(playerid, GREEN, \"Sikeres belépés! Válassz csapatot majd nyomd meg a \'SPAWN\' gombot!\"), Load(playerid);
}
else
{
   WPW[playerid] ++;
   SendClientMessage(playerid, RED, \"Rossz jelszó!\");
   if(WPW[playerid] == 3) return SendClientMessage(playerid, RED, \"Harmadszorra is elrontottad a jelszót, ki lettél rúgva!\"), Kick(playerid);
   ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Bejelentkezés\", \"Írd a helyes jelszót!\", \"Rendben\", \"Mégsem\");
}
}
return 1;
}
Cím: Belépés
Írta: Rodrick_William - 2013. november 29. - 15:13:09
Hát nem tudom, de teszteltem és ugyanaz megint.
Cím: Belépés
Írta: BoOy - 2013. november 29. - 15:34:35
Utolsó 100%-os:
 
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
       if(dialogid == 1)
       {
               format(S, sizeof(S), \"Üdvözöllek a szerveren, a(z) %s név még nincs regisztrálva\\nÍrj be egy tetszõleges jelszót!\", Name(playerid));
               if(!response) Kick(playerid);
               if(response)
               {
               if(!(3 < strlen(inputtext) < 60))return ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Regisztráció\", S, \"Rendben\", \"Mégsem\");
               format(File, sizeof(File), \"User/%s.ini\", Name(playerid));
               if(!fexist(File))
               {
                       dini_Create(File);
                       dini_Set(File, \"Password\", inputtext);
                       ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Bejelentkezés\", \"Írd be a jelszavad.\", \"Rendben\", \"Mégsem\");
               }
       }
       }
       if(dialogid == 2)
       {
               format(File, sizeof(File), \"User/%s.ini\", Name(playerid));
               if(!response) Kick(playerid);
               format(PW, 64, \"%s\", dini_Get(File, \"Password\"));
               if(!strcmp(inputtext, PW, false))
               {
                       SendClientMessage(playerid, GREEN, \"Sikeres belépés! Válassz csapatot majd nyomd meg a \'SPAWN\' gombot!\"), Load(playerid);
               }
               else
               {
                       WPW[playerid] ++;
                       SendClientMessage(playerid, RED, \"Rossz jelszó!\");
                       if(WPW[playerid] == 3) return SendClientMessage(playerid, RED, \"Harmadszorra is elrontottad a jelszót, ki lettél rúgva!\"), Kick(playerid);
                       ShowPlayerDialog(playerid, 2, DIALOG_STYLE_INPUT, \"Bejelentkezés\", \"Írd a helyes jelszót!\", \"Rendben\", \"Mégsem\");
               }
       }
       return 1;
}
Cím: Belépés
Írta: Rodrick_William - 2013. november 29. - 17:40:40
Hát ez nem jó :/
Cím: Belépés
Írta: BoOy - 2013. november 29. - 22:23:02
nekem mükszik. máshol van a gond ember.
Cím: Belépés
Írta: Dfoglalo - 2013. november 29. - 22:27:18
Egyáltalán lefordítottad a forráskódot? :hmmm: :rolleyes:


Esetleg
 
if(strlen(inputtext) > 3)

 
? Amúgy szinte biztos, hogy máshol lesz a hiba...
Cím: Belépés
Írta: BoOy - 2013. november 29. - 22:31:55

Hát ez nem jó :/
 
[/quote]
Beszarok xdddd
Cím: Belépés
Írta: Lucio - 2013. november 29. - 22:33:19

Egyáltalán lefordítottad a forráskódot? :hmmm: :rolleyes:
 
[/quote]
Csak lefordította.. Már mint remélem.
Cím: Belépés
Írta: Pedró - 2013. november 30. - 14:40:58
Elég egyszerû a probléma öreg. :)
A problémás rész:
 
if(strlen(inputtext) == 0) ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Regisztráció\", S, \"Rendben\", \"Mégsem\");

 
Mégpedig, nem térsz vissza azonnal, hanem engeded, hogy lefusson a kódod...
Helyes kódrészlet:
 
if(strlen(inputtext) == 0) return ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Regisztráció\", S, \"Rendben\", \"Mégsem\");
Cím: Belépés
Írta: BoOy - 2013. november 30. - 15:21:10
Idézetet írta: Pedró date=1385818858\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"44946\" data-ipsquote-contentclass=\"forums_Topic
Elég egyszerû a probléma öreg. :)
A problémás rész:
 
if(strlen(inputtext) == 0) ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Regisztráció\", S, \"Rendben\", \"Mégsem\");

 
Mégpedig, nem térsz vissza azonnal, hanem engeded, hogy lefusson a kódod...
Helyes kódrészlet:
 
if(strlen(inputtext) == 0) return ShowPlayerDialog(playerid, 1, DIALOG_STYLE_INPUT, \"Regisztráció\", S, \"Rendben\", \"Mégsem\");

 

Ugyan ezt tartalmazza a kódom is és azt írta rá hogy nemjó.
Cím: Belépés
Írta: Dfoglalo - 2013. november 30. - 18:42:21
Próbálhatná sima elágazásokkal, ráadásul újraírva az egészet, és ha úgy sem jó, akkor máshol van a hiba. De ha egy ilyen egyszerû dolgot nem tud megoldsni, tanulnia kéne még egy kicsit a nyelvet...Ugyanis ha máshol van a hiba, magától szerintem nem fogja megtalálni. :whistle:
Cím: Belépés
Írta: ROOCK - 2013. december 01. - 11:13:49
tess itt egy komlett regisztráció és ez kicsit egyszerübb is mint amit te irtál
 
#include 
#include
#define DIALOG_REGISTER 1
#define DIALOG_LOGIN 2
#define DIALOG_SUCCESS_1 3
#define DIALOG_SUCCESS_2 4
#define PATH \"/Users/%s.ini\"
#define COL_WHITE \"{FFFFFF}\"
#define COL_RED \"{F81414}\"
#define COL_GREEN \"{00FF22}\"
#define COL_LIGHTBLUE \"{00CED1}\"
enum pInfo
{
   pPass,
}
new PlayerInfo[MAX_PLAYERS][pInfo];
forward LoadUser_data(playerid,name[],value[]);
public LoadUser_data(playerid,name[],value[])
{
   new INI:File = INI_Open(UserPath(playerid));
   INI_Int(\"Password\",PlayerInfo[playerid][pPass]);
//ide ird a betöltendõ cuccokat
   INI_Close(File);
   return 1;
}
public OnPlayerConnect(playerid)
{
   if(fexist(UserPath(playerid)))
   {
   INI_ParseFile(UserPath(playerid), \"LoadUser_%s\", .bExtra = true, .extra = playerid);
   ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,\"Bejelentkezés\",\"Írd be a jelszód a belépéshez\",\"Belép\",\"Bezár\");
   }else{
   ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT,\"\"COL_WHITE\"Regisztráció...\",\"\"COL_WHITE\"Ird be a jelszavad az új acountért.\",\"Register\",\"Quit\");
}
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
   new INI:File = INI_Open(UserPath(playerid));
   INI_SetTag(File,\"data\");
//ide
   INI_Close(File);
   return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
   switch( dialogid )
   {
       case DIALOG_REGISTER:
       {
           if (!response) return Kick(playerid);
           if(response)
           {
               if(!strlen(inputtext)) return ShowPlayerDialog(playerid, DIALOG_REGISTER, DIALOG_STYLE_INPUT, \"\"COL_WHITE\"Regisztráció...\",\"\"COL_RED\"Rossz jelszót adtál meg.\\n\"COL_WHITE\"Ird be a jelszavad az új acountért.\",\"Register\",\"Quit\");
               new INI:File = INI_Open(UserPath(playerid));
            INI_SetTag(File,\"data\");
       INI_WriteInt(File,\"Password\",udb_hash(inputtext));
            //ide tedd amit akarsz reginél
       INI_Close(File);
               ShowPlayerDialog(playerid, DIALOG_SUCCESS_1, DIALOG_STYLE_MSGBOX,\"\"COL_WHITE\"Zsir!\",\"\"COL_GREEN\"Késza cucmód jáccá.(Isten is jó cucmó!)\",\"Ok\",\"\");
           }
       }
case DIALOG_LOGIN:
        {
            if ( !response ) return Kick ( playerid );
            if( response )
            {
                if(udb_hash(inputtext) == PlayerInfo[playerid][pPass])//Ha a beírt jelszó egyezik a fájlban tároltéval.
                {
                    INI_ParseFile(UserPath(playerid), \"LoadUser_%s\", .bExtra = true, .extra = playerid);
                }
                else //ha nem egyezik a jelszó
                {
                    ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_INPUT,\"Bejelentkezés\",\"Helytelen jelszó.\\nÍrd be a jelszód a belépéshez.\",\"Belép\",\"Bezár\");
                }
                return 1;
            }
        }
    }
return 1;
}
stock UserPath(playerid)
{
   new string[128],playername[MAX_PLAYER_NAME];
   GetPlayerName(playerid,playername,sizeof(playername));
   format(string,sizeof(string),PATH,playername);
   return string;
}
/*Credits to Dracoblue*/
stock udb_hash(buf[]) {
   new length=strlen(buf);
   new s1 = 1;
   new s2 = 0;
   new n;
   for (n=0; n    {
      s1 = (s1 + buf[n]) % 65521;
      s2 = (s2 + s1)     % 65521;
   }
   return (s2 << 16) + s1;
}