Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: lv poslato Jun 20, 2014, 19:11:58 POSLE PODNE

Naslov: [POMOC] Znak %
Poruka od: lv poslato Jun 20, 2014, 19:11:58 POSLE PODNE
Skripta koju koristim: UnderPoint RP v0.1
Detaljan opis problema: Ovako, posto sam nacuo, a i sam se uverio da na UPu ima bug  kada upises znak % u input dialog server padne. Pa me zanima da li je moguce napraviti proveru oko znaka %, da ne mogu da ga upisem u dialog.. Hvala unapred na pomoci :)
Dio skripte: Treba to meni ..
Neke slike/video za lakse dobivanje pomoci(neobavezno): ///
Naslov: Odg: [POMOC] Znak %
Poruka od: Blaeks poslato Jun 20, 2014, 22:18:01 POSLE PODNE
neophono je koristisi %s da bi ispisao nick igraca
Naslov: Odg: [POMOC] Znak %
Poruka od: Denis_Lapi poslato Jun 20, 2014, 22:26:03 POSLE PODNE
Znak % se koristi uopste u radu sa stringovima, takodje, koristi se u radu sa brojevima %d, %i koji trebaju da se ispisu. Ovaj znak ne mozes koristiti u SendClientMessage f-ji, pa je potrebno da ga formatiras kroz string i dobijes vrednost, kasnije da bi prikazao tu vrednost mozes ga ispisati u SendClientMessage f-ji
Primer:

new string[256];
format(string,sizeof(string),"Igracevo ime je %s",GetPlayerName(playerid));
SendClientMessage(playerid,-1,string);


Takodje mozes ga koristiti i za operacije koje imaju iza sebe ostatak (deljenje "/")
Naslov: Odg: [POMOC] Znak %
Poruka od: lv poslato Jun 20, 2014, 23:23:09 POSLE PODNE
Ne , ne razumete :D Znam za sta se koristi %. Ali , igrac da ne sme da upise znak % u input dialoge :D
Naslov: Odg: [POMOC] Znak %
Poruka od: Denis_Lapi poslato Jun 20, 2014, 23:54:16 POSLE PODNE
Aha kapiram, znaci igrac ne sme da unese takav znak (%) jer se desi nesto sto ne bi trebalo. Oke, reci samo sta se desi i posalji nam dialoge u kojima se to pojavljuje. Sigurno ima neka provera za unos tog znaka
Naslov: Odg: [POMOC] Znak %
Poruka od: lv poslato Jun 22, 2014, 23:26:55 POSLE PODNE
Ovako. Posto je nacin spremanja PW-a udb_hash-ovan, kada igrac upise % u register dialog, server padne .. :) Znaci srw uvek padne cim se upise % u register diaalog


switch (dialogid)
    {
case DIALOG_REGISTER:
    {
if(!response) return Kick(playerid);
    if(response)
{
if(strlen(inputtext) < MIN_DUZINA_LOZINKE)
{
    new regstring[512], regname[64]; GetPlayerName(playerid,regname,sizeof(regname));
format(regstring,sizeof(regstring),"{FFFFFF}Dobrodosli "SPLAVA"%s,\n\n{FFFFFF}Molimo vas da unesete zeljenu lozinku\nkako biste zapoceli registraciju.\nKada upisete zeljenu lozinku,\nbice vam prikazan intro.\n\nUzivajte igrajuci na nasem serveru",regname);
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"{FFCC00}Rregister",regstring,"Registracija","Izlaz");
SCM(playerid,-1,"{FFCC00}[BV:RP]:{FFFFFF} Lozinka mora imati vise od 6 znakova.");
}
else if(strlen(inputtext) > MAX_DUZINA_LOZINKE)
{
    new regstring[512], regname[64]; GetPlayerName(playerid,regname,sizeof(regname));
format(regstring,sizeof(regstring),"{FFFFFF}Dobrodosli "SPLAVA"%s,\n\n{FFFFFF}Molimo vas da unesete zeljenu lozinku\nkako biste zapoceli registraciju.\nKada upisete zeljenu lozinku,\nbice vam prikazan intro.\n\nUzivajte igrajuci na nasem serveru",regname);
ShowPlayerDialog(playerid,DIALOG_REGISTER,DIALOG_STYLE_PASSWORD,"{FFCC00}Register",regstring,"Registracija","Izlaz");
SCM(playerid,-1,"{FFCC00}[BV:RP]:{FFFFFF} Lozinka ne sme imati vise od 14 znakova.");
}
else if(strlen(inputtext) >= MIN_DUZINA_LOZINKE && strlen(inputtext) <= MAX_DUZINA_LOZINKE)
{
new INI:File = INI_Open(Korisnici(playerid));
INI_SetTag(File,"data");
INI_WriteInt(File,"Password",udb_hash(inputtext));
INI_WriteInt(File,"Cash",0);
    INI_WriteInt(File,"Admin",0);
INI_WriteInt(File,"Ubistava",0);
INI_WriteInt(File,"Smrti",0);
    INI_WriteInt(File,"Level",1);
INI_WriteInt(File,"Supporter",0);
INI_WriteInt(File,"Skin",0);
    INI_WriteInt(File,"Godine",0);
INI_WriteInt(File,"Drzava",0);
INI_WriteInt(File,"Pol",0);
    INI_WriteInt(File,"Tutorial",0);
INI_WriteInt(File,"Email",0);
INI_WriteInt(File,"Lider",0);
    INI_WriteInt(File,"Clan",0);
INI_WriteInt(File,"Rank",0);
INI_WriteInt(File,"Mutiran",0);
    INI_WriteInt(File,"NovacBanka",0);
INI_WriteInt(File,"Warn",0);
    INI_WriteInt(File,"BankovniRacun",0);
INI_WriteInt(File,"Zatvor",0);
INI_WriteInt(File,"ZatvorenVreme",0);
    INI_WriteInt(File,"Respekti",0);
INI_WriteInt(File,"UhapsenPuta",0);
INI_WriteInt(File,"Droga",0);
    INI_WriteInt(File,"Mats",0);
INI_WriteInt(File,"PayDayPoeni",0);
INI_WriteInt(File,"SatiIgre",0);
    INI_WriteInt(File,"IznosRate",0);
INI_WriteInt(File,"IznosKredita",0);
INI_WriteInt(File,"PreostaloZaOtplatu",0);
    INI_WriteInt(File,"ADozvola",0);
INI_WriteInt(File,"KamionDozvola",0);
INI_WriteInt(File,"AvionDozvola",0);
    INI_WriteInt(File,"MotorDozvola",0);
INI_WriteInt(File,"BrodDozvola",0);
INI_WriteInt(File,"GunDozvola",0);
    INI_WriteInt(File,"PosedovanjeFirme",-1);
INI_WriteInt(File,"Mobilni",0);
INI_WriteInt(File,"Imenik",0);
    INI_WriteInt(File,"MobKredit",0);
INI_WriteInt(File,"Cigare",0);
INI_WriteInt(File,"Upaljac",0);
    INI_WriteInt(File,"Kanap",0);
INI_WriteInt(File,"Naocare",0);
INI_WriteInt(File,"Sat",0);
INI_WriteInt(File,"BorbeniStil",4);
INI_WriteInt(File,"Posao",0);
INI_WriteInt(File,"Hrana",0);
INI_WriteInt(File,"PosedovanjeKuce",-1);
    INI_WriteInt(File,"ProveraSpawna",0);
    INI_WriteInt(File,"Rent",-1);
    INI_WriteInt(File,"PosedovanjeStana",-1);
    INI_WriteInt(File,"PosedovanjeVikendice",-1);
    INI_WriteInt(File,"OrgUgovor",0);
    INI_WriteInt(File,"PosaoUgovor",0);
                    INI_WriteInt(File,"PosedovanjeAuta",-1);
                    INI_WriteInt(File,"DzeparosVreme",0);
INI_WriteInt(File,"PosedovanjeMotora",-1);
INI_WriteInt(File,"Kaciga",-1);
INI_WriteInt(File,"PosedovanjeBicikla",-1);
INI_WriteInt(File,"PosedovanjeAviona",-1);
INI_WriteInt(File,"PosedovanjePlovila",-1);
INI_Close(File);
new string[128];
format(string,sizeof(string),""ZUTA"{FFCC00}[BV:RP] "BELA"Registracija je uspesna.Vasa lozinka je: "SPLAVA"%s",inputtext);
SCM(playerid,-1,string);
ShowPlayerDialog(playerid, 3, DIALOG_STYLE_LIST, "{FFCC00}POL", "{0066FF}- {FFFFFF}Musko\n{0066FF}- {FFFFFF}Zensko", "Dalje", "Odustani");
}
    }
    }
Naslov: Odg: [POMOC] Znak %
Poruka od: lv poslato Jun 23, 2014, 18:31:00 POSLE PODNE
BUMP !