-
Sziasztok,írtam egy dialogot,és ha 18 és 60 közé esõ számot írok be,akkor is visszadob a dialoghoz.
[pawn]
if(dialogid == kor)
{
if(response)
{
if(strlen(inputtext) == 0)
{
ShowPlayerDialog(playerid, kor, DIALOG_STYLE_INPUT, \"Kor\", \"Írd be hány éves\\nlegyen a karaktered.\", \"Rendben\", \"Mégse\");
return 0;
}
if(strlen(inputtext) > 17 && strlen(inputtext) < 61)
{
new file[128];
new string[128];
new megadottkor = strval(inputtext);
JatekosInfo[playerid][Kor] = megadottkor;
JatekosInfo[playerid][KezdoSpawn] = 1;
GetPlayerName(playerid, nev, sizeof(nev));
format(file,sizeof(file),\"/Adatbazis/Karakterek/%s.ini\", nev);
dini_IntSet(file,\"Kezdõ Spawn\", JatekosInfo[playerid][KezdoSpawn]);
TogglePlayerControllable(playerid,1);
format(string, sizeof(string), \"Karaktered %d éves lett!\", megadottkor);
SendClientMessage(playerid, 0xFFFFFF, string);
return 1;
}
else
{
ShowPlayerDialog(playerid, kor, DIALOG_STYLE_INPUT, \"Kor\", \"18 és 60 között!\", \"Rendben\", \"Mégse\");
return 1;
}
}
if(!response)
{
Kick(playerid);
}
}
[/pawn]
Köszi a segítséget :D
-
Szerintem így lesz a jó:
if(18 <= strlen(inputtext) <= 60)
-
Nem jó.
-
Nem strlen hanem strval :D :D :
if(18 <= strval(inputtext) <= 60)
-
Igaz..
strlen(gth) = karakterlánc hosszúság.
str(inter)val(um) = karakterlánc értéke.
-
if(strval(inputtext) < 18 || strval(inputtext) > 60)
-
|| ezt nem kéne átírni &&-re? csak mert nem akkor csinálja amit csinálni kell amikor valamelyik igaz,hanem ha mindkettõ.
-
|| ezt nem kéne átírni &&-re? csak mert nem akkor csinálja amit csinálni kell amikor valamelyik igaz,hanem ha mindkettõ.
De, igazad van, gondolom figyelmetlenség.
A || akkor csinálja, ha vagy ez, vagy az a feltétel valami.
A && akkor, ha mind a kettõ megadott feltétel valami.
-
[pawn]
if(dialogid == kor)
{
if(response)
{
/*if(strlen(inputtext) == 0)
{
ShowPlayerDialog(playerid, kor, DIALOG_STYLE_INPUT, \"Kor\", \"Írd be hány éves\\nlegyen a karaktered.\", \"Rendben\", \"Mégse\");
return 0;
}*/
if(strval(inputtext) < 18 && strval(inputtext) > 60)
{
new file[128];
new string[128];
new megadottkor = strval(inputtext);
JatekosInfo[playerid][Kor] = megadottkor;
JatekosInfo[playerid][KezdoSpawn] = 1;
GetPlayerName(playerid, nev, sizeof(nev));
format(file,sizeof(file),\"/Adatbazis/Karakterek/%s.ini\", nev);
dini_IntSet(file,\"Kezdõ Spawn\", JatekosInfo[playerid][KezdoSpawn]);
TogglePlayerControllable(playerid,1);
format(string, sizeof(string), \"Karaktered %d éves lett!\", megadottkor);
SendClientMessage(playerid, 0xFFFFFF, string);
return 1;
}
else
{
ShowPlayerDialog(playerid, kor, DIALOG_STYLE_INPUT, \"Kor\", \"18 és 60 között!\", \"Rendben\", \"Mégse\");
return 1;
}
}
if(!response)
{
Kick(playerid);
}
}[/pawn]
Most így néz ki,és bármit írok be,mindig kiírja,hogy 18 és 60 között.
-
Ez így akkor fut le ha a beírt szám 18-nál kevesebb és 60-nál több.
Így elméletileg jó.
if(strval(inputtext) >= 18 && strval(inputtext) <= 60)
-
Ez így akkor fut le ha a beírt szám 18-nál kevesebb és 60-nál több.
Így elméletileg jó.
if(strval(inputtext) > 18 && strval(inputtext) < 60)
De ha 18-at, vagy 60-at ír be, akkor is újra ki adja majd a dialogot..
if(strval(inputtext) >= 18 && strval(inputtext) <= 60)
-
Köszönöm, hogy szóltál, az egyenlõség jel lemaradt. Bõvítem!
-
if(strval(inputtext)<18 || strval(inputtext)>60) return ShowPlayerDialog(playerid, REGSTEP4, DIALOG_STYLE_INPUT, \"{A500FF}Hány éves legyen a karaktered?\", \"{FFFFFF}Az alábbi mezõbe irj egy számot 18 és 60 között!\", \"Kiválaszt\", \"\");
Én így használtam a saját módomban és hibátlanul mûködott
-
if(strval(inputtext)<18 || strval(inputtext)>60) return ShowPlayerDialog(playerid, REGSTEP4, DIALOG_STYLE_INPUT, \"{A500FF}Hány éves legyen a karaktered?\", \"{FFFFFF}Az alábbi mezõbe irj egy számot 18 és 60 között!\", \"Kiválaszt\", \"\");
Én így használtam a saját módomban és hibátlanul mûködott
Itt sem engedi a 18-at és a 60-at. :D
E: Ha jobban megnézem akkor mégis engedi, kicsit elhamarkodtam, bocsi :D
-
Találtam egy másik megoldást arra, amit 1ST_Chr írt.
[pawn]if(strval(inputtext) > 17 && strval(inputtext) < 61)[/pawn]
-
Találtam egy másik megoldást arra, amit 1ST_Chr írt.
if(strval(inputtext) > 17 && strval(inputtext) < 61)
De ez hülyeség ahogy van, hogy lehetne a szám egyszerre kisebb 61nél és nagyobb 17nél?
-
És ti nevezitek magatokat scripternek....
if((strlen(inputtext) >= 18) && (strlen(inputtext) <= 60))
-
A strlen helyett nem strval?
Ezt a kérdésedet nem értem Sheet.
Azt jelenti, hogy a feltétel, hogy 17-nél nagyobb és 61-nél kisebb legyen. Vagy tévedek?
Amúgy én még sehol sem neveztem magamat scripternek.
-
Nem jó :S
-
if(strval(inputtext)<18 || strval(inputtext)>60) return ShowPlayerDialog(playerid, REGSTEP4, DIALOG_STYLE_INPUT, \"{A500FF}Hány éves legyen a karaktered?\", \"{FFFFFF}Az alábbi mezõbe irj egy számot 18 és 60 között!\", \"Kiválaszt\", \"\");
Én így használtam a saját módomban és hibátlanul mûködott
Itt sem engedi a 18-at és a 60-at. :D
E: Ha jobban megnézem akkor mégis engedi, kicsit elhamarkodtam, bocsi :D
[/quote]
[mod]Máskor zárd le a témát.[/mod]
[mod]bocsánat, nem figyeltem.[/mod]
-
Köszi,a legutóbbi sikerült. :D