Problem(error/warning): Koristim y_dialogs i kako da proverim da li je inputtext null, isnull ne radi da znate
Deo skripte: [pawn]stock Auth_DoRegister(playerid, step = 0)
{
switch(step)
{
case 0:
{
inline passwordDialog(id, dialogid, response, listitem, string:inputtext[])
{
#pragma unused id, dialogid, listitem
if(!response) {
Kick(playerid);
return;
}
if(strlen(inputtext) < MIN_PASSWORD_LENGTH) {
va_SendErrorMessage(playerid, "Žao nam je ali Vaša lozinka mora da ima minimalno %d karaktera!", MIN_PASSWORD_LENGTH);
Auth_DoRegister(playerid);
return;
}
strcpy(PlayerPassword[playerid], inputtext);
va_SendServerMessage(playerid, "Okej, uneli ste "SERVER"%s "WHITE"za lozinku naloga.", inputtext);
Auth_DoRegister(playerid, step + 1);
}
new string[450];
format(string, sizeof(string), ""WHITE"Dobro nam došli, "SERVER"%s\n\n"WHITE"Ovaj nalog "DARK_ORANGE"nije registrovan "WHITE"na našem serveru.\nDa biste ga registrovali, unesite željenu lozinku.\nUnošenjem lozinke zapocinjete proces registracije naloga.\n\n"INDIANRED"Napomene:\n\t"INDIANRED"- Lozinka mora imati minimalno %d karaktera\n\t"INDIANRED"- Lozinka mora da bude sacinjena od brojeva i slova\n\t"INDIANRED"- Ova lozinka ce Vam biti potrebna za logovanje na nalog", PlayerName[playerid], MIN_PASSWORD_LENGTH);
Dialog_ShowCallback(playerid, using inline passwordDialog, DIALOG_STYLE_PASSWORD, va_return(""ORANGE_RED"(%d/4) Lozinka", step + 1), string, D_CONFIRM, D_CANCEL);
}
case 1:
{
inline genderDialog(id, dialogid, response, listitem, string:inputtext[])
{
#pragma unused id, dialogid, inputtext
if(!response) {
Auth_DoRegister(playerid, step - 1);
return;
}
PlayerGender{playerid} = (listitem + 1);
va_SendServerMessage(playerid, "Okej, izabrali ste "SERVER"%s "WHITE"pol.", listitem == 0 ? "muški" : "ženski");
Auth_DoRegister(playerid, step + 1);
}
Dialog_ShowCallback(playerid, using inline genderDialog, DIALOG_STYLE_LIST, va_return(""ORANGE_RED"(%d/4) Pol", step + 1), ""WHITE"Muško\n"WHITE"Žensko", D_CONFIRM, D_CANCEL);
}
case 2:
{
inline skinTone(id, dialogid, response, listitem, string:inputtext[])
{
#pragma unused id, dialogid, inputtext
if(!response) {
Auth_DoRegister(playerid, step - 1);
return;
}
PlayerSkinTone{playerid} = (listitem + 1);
va_SendServerMessage(playerid, "Okej, izabrali ste "SERVER"%s "WHITE"ton kože.", listitem == 0 ? "svetliji" : "tamniji");
Auth_DoRegister(playerid, step + 1);
}
Dialog_ShowCallback(playerid, using inline skinTone, DIALOG_STYLE_LIST, va_return(""ORANGE_RED"(%d/4) Ton kože", step + 1), ""WHITE"Svetliji\nTamniji", D_CONFIRM, D_CANCEL);
}
case 3:
{
inline playerRefferal(id, dialogid, response, listitem, string:inputtext[])
{
#pragma unused id, dialogid
if(!response) {
Auth_DoRegister(playerid, step - 1);
return;
}
// This condition is called even though I did not enter anything...
if(inputtext[0] != '\1') //
{
print("AAAA");
inline doSqlCheck()
{
if(cache_num_rows())
{
PlayerRefferal{playerid} = REFFERAL_PLAYER;
cache_get_value_name_int(0, "player_id", PlayerRefferalDBID[playerid]);
va_SendServerMessage(playerid, "Okej, izabrali ste "SERVER"%s "WHITE"za Vašeg preporucitelja.", inputtext[0]);
}
else
{
va_SendErrorMessage(playerid, "Nismo uspeli pronaci "FIREBRICK"%s "WHITE"u databazi!", inputtext[0]);
Auth_DoRegister(playerid, step);
}
MySQL_TQueryInline(dbHandler, using inline doSqlCheck, "SELECT `player_id` FROM `player_profile` WHERE `player_name` = '%e'", inputtext[0]);
}
}
else
{
switch(listitem)
{
case 0:
{
Dialog_ShowCallback(playerid, using inline playerRefferal, DIALOG_STYLE_INPUT, va_return(""ORANGE_RED"(%d/4) Refferal", step + 1), ""WHITE"Molimo Vas unesite username Vašeg prijatelja:", D_CONFIRM, D_CANCEL);
}
case 1:
{
PlayerRefferal{playerid} = REFFERAL_SERVER_LIST;
SendServerMessage(playerid, "Okej, izabrali ste "SERVER"listu servera "WHITE"za preporucitelja.");
}
}
}
}
Dialog_ShowCallback(playerid, using inline playerRefferal, DIALOG_STYLE_LIST, va_return(""ORANGE_RED"(%d/4) Kako ste saznali za naš server?", step + 1), ""WHITE"Od prijatelja\nLista servera (Game-State/SACNR Monitor)\nFacebook Grupe\nDrugo", D_CONFIRM, D_CANCEL);
}
default:
{
inline doHash()
{
bcrypt_get_hash(PlayerPassword[playerid]);
Auth_FinishRegistration(playerid);
}
BCrypt_HashInline(PlayerPassword[playerid], 12, using inline doHash);
}
}
return;
}[/pawn]
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): /
strlen ?
Citat: __vedran.xyz77 poslato Avgust 17, 2020, 15:32:33 POSLE PODNE
strlen ?
Decko uzeo moj kod sa githuba i pejsta ovde issues koje sam otvarao...
Zapravo je SAMP bug (ili je namerno uradjeno tako) da kada neko selektuje
LISTITEM, inputtext nasledi vrednost LISTITEM-a
EDIT: Zapravo na wiki piše ovo:
Response output:
listitem is the number of the selected item, starting from 0.
inputtext is the text contained by the selected listitem, without the colors
Nego nisam čitao uopšte to, ljmao
Jesus -_-
Boze moj -.- :-[
(https://www.dodaj.rs/images/maxy-bsampa196e3a1d8a7e73b.png)
sta se bozekate sve vas mogu poklopiti u skriptanju VI OVAJ KOD NE RAZUMETE JER JEDINI JA ZNAM DA SE RESAVA SA PROVEROM \1 spavanjee decki