-
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;
}
-
É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;
}
-
É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
-
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;
}
-
Sajnos ugyan az a hiba. Kivéve nincs ott az a spawn szöveg
-
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;
}
-
Nem jó. Nem ütök be semmit simán beenged.
-
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;
}
-
Hát nem tudom, de teszteltem és ugyanaz megint.
-
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;
}
-
Hát ez nem jó :/
-
nekem mükszik. máshol van a gond ember.
-
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...
-
Hát ez nem jó :/
[/quote]
Beszarok xdddd
-
Egyáltalán lefordítottad a forráskódot? :hmmm: :rolleyes:
[/quote]
Csak lefordította.. Már mint remélem.
-
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\");
-
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ó.
-
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:
-
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;
}