Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Mikix poslato Mart 23, 2020, 17:36:10 POSLE PODNE

Naslov: Pomoc
Poruka od: Mikix poslato Mart 23, 2020, 17:36:10 POSLE PODNE
Problem(error/warning): Kako da napravim kada se registruje da treba da ukuca svoj email,i da mu se to kasnije cuva?
Dio skripte: //
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): //
Slika/video ingame problema(obavezno ako je ingame problem): //
Naslov: Odg: Pomoc
Poruka od: TarikBrt poslato Mart 23, 2020, 18:03:57 POSLE PODNE
Citat: Mikix poslato Mart 23, 2020, 17:36:10 POSLE PODNE
Problem(error/warning): Kako da napravim kada se registruje da treba da ukuca svoj email,i da mu se to kasnije cuva?
Dio skripte: //
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): //
Slika/video ingame problema(obavezno ako je ingame problem): //

Pa zavisi sta koristis za spremanje(INI, DINI, mysql itd..)
Naslov: Odg: Pomoc
Poruka od: Mikix poslato Mart 23, 2020, 18:09:15 POSLE PODNE
Ini
Naslov: Odg: Pomoc
Poruka od: TarikBrt poslato Mart 23, 2020, 18:13:04 POSLE PODNE
Citat: Mikix poslato Mart 23, 2020, 18:09:15 POSLE PODNE
Ini

Pa to je bar lako, ukolilo imas vec uradjeno cuvanje podatka dodaj novu varijablu u enum i nadji funkcije spremanja i ucitavanja i tu ih dodaj. Zatim napravis dialog i formatiras mail iz unesenog teksta u tu variablu i to je to.
Naslov: Odg: Pomoc
Poruka od: V01D poslato Mart 23, 2020, 19:15:04 POSLE PODNE
Moramo krenuti od pocetka xDD

Pre svega, nadjes enum od igraca :

[pawn]pEmail[35], //Ovo ces dodati u sam enum, ako ga stavljas na kraj, zarez ne treba, takodje, 35 znaci velicina[/pawn]

Kada si to dodao, idi u ucitavanje igraca i tu dodajes:

[pawn]INI_String("Email", PlayerInfo[playerid][pEmail], 35); //PlayerInfo u zavisnosti od toga kako ti je definisano[/pawn]

Sada idemo u cuvanje igraca i tu dodamo:

[pawn]INI_WriteString(File,"Email", PlayerInfo[playerid][pEmail]); //Ovde stoji File u zavinosti od toga kako si definisao INI Fajl[/pawn]

Sada, odemo negde unutar registracije i umesto da se igrac spawna stavimo da prikaze dialog

[pawn]ShowPlayerDialog(playerid, Dialog_Email, DIALOG_STYLE_INPUT, "Registracija", "Unesi email adresu", "Potvrdi", "Odustani");[/pawn]

I sada samo pod OnDialogResponse stavis da kada igrac unese email nastavi normalno dalje kao sto je bilo

Ne znam da li sam dobro objasnio, ali moras malo ukljuciti mozga za ovo, svaka skripta je razlicita, ja sam pokusao da pojasnim najbolje sto sam mogao. Ovo ne verujem da mozes ispratiti ako ne znas neke osnovne stvari.. Ukoliko budes imao problema, pisi ovde :)
Naslov: Odg: Pomoc
Poruka od: Mikix poslato Mart 23, 2020, 19:42:40 POSLE PODNE
Evo ovako sam uradio stavio sam pod OnPlayerClickTextDraw ovo
[pawn]if(clickedid == Reg18)
    {
        ShowPlayerDialog(playerid, DIALOG_GODINE, DIALOG_STYLE_INPUT,""COL_WHITE"Registracija",""COL_WHITE"Molimo upisite koliko godina imate","Register","OK");
        return 1;
   }[/pawn]
i onda sam pod OnDialog stavio ovako
[pawn]case DIALOG_GODINE:
        {
            new INI:File = INI_Open(UserPath(playerid));
           INI_SetTag(File,"data");
           INI_WriteInt(File,"Godine",(inputtext))//ovdje se javlja error
        }[/pawn]
I izalzi mi u gore liniji ovaj error
[pawn]: error 035: argument type mismatch (argument 3)[/pawn]
Naslov: Odg: Pomoc
Poruka od: V01D poslato Mart 23, 2020, 20:06:25 POSLE PODNE
[pawn]INI_WriteInt(File,"Godine", strval(inputtext));[/pawn]
Naslov: Odg: Pomoc
Poruka od: Mikix poslato Mart 23, 2020, 20:27:17 POSLE PODNE
Sada mi se sacuva Godine na 0...
Naslov: Odg: Pomoc
Poruka od: xLanmi poslato Mart 23, 2020, 21:19:32 POSLE PODNE
Koliko vidim a gde ti je sscanf kom trazis da igrac unese broj godina? On ne zna sta si ti uneo kao inputtext ako mu ne predjes u variablu, mislim mozda i zna ali nisam testao , uradi sscanf moj savet , a ako hoces ovo dodaj printf( " godine %d ", strval(inputtext) ) ; // Nema smisla ovo bez sscanf-a
dodaj ispod linije INI_WriteInt(File,"Godine", strval(inputtext));
Naslov: Odg: Pomoc
Poruka od: Mikix poslato Mart 23, 2020, 21:23:31 POSLE PODNE
Opet brt isto
Naslov: Odg: Pomoc
Poruka od: xLanmi poslato Mart 23, 2020, 21:25:02 POSLE PODNE
Daj mi da vidim kako ti sad izgleda kod.. ?
Naslov: Odg: Pomoc
Poruka od: TarikBrt poslato Mart 23, 2020, 21:27:41 POSLE PODNE
Citat: Mikix poslato Mart 23, 2020, 19:42:40 POSLE PODNE
Evo ovako sam uradio stavio sam pod OnPlayerClickTextDraw ovo
[pawn]if(clickedid == Reg18)
    {
        ShowPlayerDialog(playerid, DIALOG_GODINE, DIALOG_STYLE_INPUT,""COL_WHITE"Registracija",""COL_WHITE"Molimo upisite koliko godina imate","Register","OK");
        return 1;
   }[/pawn]
i onda sam pod OnDialog stavio ovako
[pawn]case DIALOG_GODINE:
        {
            new INI:File = INI_Open(UserPath(playerid));
           INI_SetTag(File,"data");
           INI_WriteInt(File,"Godine",(inputtext))//ovdje se javlja error
        }[/pawn]
I izalzi mi u gore liniji ovaj error
[pawn]: error 035: argument type mismatch (argument 3)[/pawn]

inputtext ti je string , stavi INI_WriteInt(File, "Godine", strval(inputtext));
Naslov: Odg: Pomoc
Poruka od: Mikix poslato Mart 23, 2020, 21:42:24 POSLE PODNE
Citat: TarikBrt poslato Mart 23, 2020, 21:27:41 POSLE PODNE
inputtext ti je string , stavi INI_WriteInt(File, "Godine", strval(inputtext));
Stavio sam to vec
Naslov: Odg: Pomoc
Poruka od: Mikix poslato Mart 23, 2020, 21:53:12 POSLE PODNE
Citat: xLanmi poslato Mart 23, 2020, 21:25:02 POSLE PODNE
Daj mi da vidim kako ti sad izgleda kod.. ?
Evo kad klikne textdraw
[pawn]if(clickedid == Reg18)
    {
        ShowPlayerDialog(playerid, DIALOG_GODINE, DIALOG_STYLE_INPUT,""COL_WHITE"Registracija",""COL_WHITE"Molimo upisite koliko godina imate\n"COL_RED"Ne ici ispod 8 i iznad 69","Register","OK");
        return 1;
   }[/pawn]
Evo OnDialog
[pawn]case DIALOG_GODINE:
        {
            new INI:File = INI_Open(UserPath(playerid));
           INI_WriteInt(File,"Godine",strval(inputtext));
              printf("GOdine %d", strval(inputtext));
        }[/pawn]
Naslov: Odg: Pomoc
Poruka od: TarikBrt poslato Mart 23, 2020, 22:02:24 POSLE PODNE
Citat: Mikix poslato Mart 23, 2020, 21:53:12 POSLE PODNE
Evo kad klikne textdraw
[pawn]if(clickedid == Reg18)
    {
        ShowPlayerDialog(playerid, DIALOG_GODINE, DIALOG_STYLE_INPUT,""COL_WHITE"Registracija",""COL_WHITE"Molimo upisite koliko godina imate\n"COL_RED"Ne ici ispod 8 i iznad 69","Register","OK");
        return 1;
   }[/pawn]
Evo OnDialog
[pawn]case DIALOG_GODINE:
        {
            new INI:File = INI_Open(UserPath(playerid));
           INI_WriteInt(File,"Godine",strval(inputtext));
              printf("GOdine %d", strval(inputtext));
        }[/pawn]

Pa jel' ti dobro printa godine ?
Naslov: Odg: Pomoc
Poruka od: Mikix poslato Mart 24, 2020, 22:44:31 POSLE PODNE
Neko da zna?Kada idem u scriptfiles i idem user ispisuje se Godine = 0???
Naslov: Odg: Pomoc
Poruka od: Mikix poslato Mart 26, 2020, 20:54:49 POSLE PODNE
Neko da objasni kako da napravim?
Naslov: Odg: Pomoc
Poruka od: Ukson Amigoss poslato Mart 26, 2020, 21:25:02 POSLE PODNE
 new god = strval(inputtext);
              if(god < 1) return ShowPlayerDialog(playerid,DIALOG_GODINE,DIALOG_STYLE_INPUT,""plava"Registracija:",""plava"Molimo vas upisite koliko imate godina.","Dalje","Izlaz");
                if(god > MAX_GOD) return ShowPlayerDialog(playerid,DIALOG_GODINE,DIALOG_STYLE_INPUT,""plava"Registracija:",""plava"Molimo vas upisite koliko imate godina.","Dalje","Izlaz");
            PlayerInfo[playerid][pGodine] = god;
            ShowPlayerDialog(playerid,DIALOG_DRZAVA,DIALOG_STYLE_LIST,""plava"Registracija: Izaberite vasu drzavu:",""plava"Hrvatska\n"plava"Srbija\n"plava"BIH","Dalje","Izlaz");

case DIALOG_GODINE:
        {
            new godine;

           INI_WriteInt(File,"Godine",strval(inputtext));
              printf("GOdine %d", strval(inputtext));
        }
Naslov: Odg: Pomoc
Poruka od: Ukson Amigoss poslato Mart 26, 2020, 21:36:06 POSLE PODNE
 new godine;
          godine = strval(inputtext);
            if(godine < 8 || godine > 69)
           {
                ShowPlayerDialog(playerid, DIALOG_GODINE, DIALOG_STYLE_INPUT,""COL_WHITE"Registracija",""COL_WHITE"Molimo upisite koliko godina imate\n"COL_RED"Ne ici ispod 8 i iznad 69","Register","OK");
            return true;
         }
         PlayerInfo[playerid][pGodine] = strval(inputtext);
Naslov: Odg: Pomoc
Poruka od: Mikix poslato Mart 26, 2020, 22:08:16 POSLE PODNE
Mozes mi reci sta pod sta ide..
Naslov: Odg: Pomoc
Poruka od: Mikix poslato Mart 26, 2020, 22:28:13 POSLE PODNE
Hvala punooo ;) ;)