Radi se o GTARP-ovoj skripti i sad imam komandu /poslovi. Kada kod ukucam poslovi izadje mi lista poslaova. Ako kliknem na prvo uredu sve bude ok, ali ako kliknem na drugo uredu izbaci me iz igrice.
Ovako izgleda taj deo gde mi je skripta:
if(strcmp(cmd, "/poslovi", true) == 0)
{
if(IsPlayerConnected(playerid))
{
ShowPlayerDialog(playerid, 4, DIALOG_STYLE_MSGBOX, "Poslovi", "1----Detektiv\n2----Advokat\n4----Diler Droge\n5----Kradljivac automobila\n6----Reporter Novinar\n7----Mehanicar\n8----Cuvar\n9----Diler oruzja\n10----Diler automobila\n12----Bokser\n14----Vozac autobusa\n16----Kamiondzija\n17----Raznosac pice\n18----Farmer\n19----Ilegalni Farmer\n20----Diler Droge\n21----Cistac Ulice\n23----Prodavac oruzja", "Uredu", "Uredu");
}
return 1;
}
Molim vas ako mozete da mi pomognete hvala....
postaj OnDialogResponse te cmd...
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new sendername[MAX_PLAYER_NAME];
new string[128];
if(response)
{
if(dialogid == 12346 || dialogid == 12347)
{
if(strlen(inputtext))
{
new tmppass[64];
strmid(tmppass, inputtext, 0, strlen(inputtext), 255);
//Encrypt(tmppass);
OnPlayerLogin(playerid,tmppass);
}
else
{
new loginstring[128];
new loginname[64];
GetPlayerName(playerid,loginname,sizeof(loginname));
format(loginstring,sizeof(loginstring),"POGRESAN PASSWORD\nMolimo vas upisite tacan password:",loginname);
ShowPlayerDialog(playerid,12347,DIALOG_STYLE_INPUT,"Login",loginstring,"Login","Exit");
gPlayerLogTries[playerid] += 1;
if(gPlayerLogTries[playerid] == 5) { Ban(playerid); }
}
}
if(dialogid == 12345)
{
if(strlen(inputtext))
{
GetPlayerName(playerid, sendername, sizeof(sendername));
format(string, sizeof(string), "%s.ini", sendername);
new File: hFile = fopen(string, io_read);
if (hFile)
{
SendClientMessage(playerid, COLOR_YELLOW, "To ime vec postoji u nasoj bazi podataka izaberite drugo.");
fclose(hFile);
return 1;
}
new tmppass[64];
strmid(tmppass, inputtext, 0, strlen(inputtext), 255);
//Encrypt(tmppass);
OnPlayerRegister(playerid,tmppass);
}
else
{
new regstring[128];
new regname[64];
GetPlayerName(playerid,regname,sizeof(regname));
format(regstring,sizeof(regstring),"Dobrodosli, %s\nJos uvek nemate account.\nMolimo registrujte se:",regname);
ShowPlayerDialog(playerid,12345,DIALOG_STYLE_INPUT,"Register",regstring,"Register","Exit");
}
}
}
else
{
Kick(playerid);
}
return 1;
}
Nadam se da je to to znate ja sam novi u skriptanju vise radim Mape u MTA
omg pa kad nemas dialogid 4 uopce uradjen
mozes mi pomoci oko tod dialogid-a :D :-[
pa ti ni nemas OndialogResponse code za tu cmd. xD.
napravi ovako:
if(dialogid == 4)
{
if(response)
{
if(listitem == 0)
{
//Tvoj code za posao detektiva
}
if(listitem == 1)
{
//Tvoj code za posao Advokata
}
if(listitem == 2)
{
//Tvoj code za posao Dilera Droge
}
}
return 1;
}
i ispod "if(listitem == 2)" dodas "if(listitem == 3)" otvoris zagradu, napravis code za slijedeci posao, zatvoris zagradu, onda opet stavis "if(listitem == 4)" i tako opet posupak za slijedeci posao. sam pazi na brojeve kod "listitem"
i ovaj "return 1;" na kraju, zbog toga te nece izbaciti kad pritisnes onu drugu tipku...
Malo sam ti prepravio komandu:
if(strcmp(cmd, "/poslovi", true) == 0)
{
ShowPlayerDialog(playerid, 4, DIALOG_STYLE_LIST, "Poslovi", "1----Detektiv\n2----Advokat\n4----Diler Droge\n5----Kradljivac automobila\n6----Reporter Novinar\n7----Mehanicar\n8----Cuvar\n9----Diler oruzja\n10----Diler automobila\n12----Bokser\n14----Vozac autobusa\n16----Kamiondzija\n17----Raznosac pice\n18----Farmer\n19----Ilegalni Farmer\n20----Diler Droge\n21----Cistac Ulice\n23----Prodavac oruzja", "Uredu", "");
return 1;
}
1. stvar: Ako hoćeš da ti bude samo jedan gumb onda staviš pod drugi gumb samo "".
2. stvar: Kad radiÅ¡ neku listu, to znaÄi da igraÄ može izabrati izmeÄ'u viÅ¡e opcija, onda stavi DIALOG_STYLE_LIST, a ne DIALG_STYLE_MSGBOX.
3. stvar: Na poÄetku komande ne moraÅ¡ koristiti IsPlayerConnected() funkciju.
Ako hoces da ti na /poslovi bude samo lista ok, al ako hoces da mozes i pritisnuti na te poslove pa da se izvrsi neka funkcija onda moras ubacti ono
dialogid == 4 ..
E ovako dosao sam do resenja skinucu jednostavno ovaj drugi deo i to je to... Hvala vam svima mnogo ste pomogli narucito oko dialogid... Hvala....