Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: McAfee poslato Mart 19, 2011, 13:10:23 POSLE PODNE

Naslov: [pomoc]oko komande /poslovi
Poruka od: McAfee poslato Mart 19, 2011, 13:10:23 POSLE PODNE
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....
Naslov: Odg: [pomoc]oko komande /poslovi
Poruka od: .G.h.0.s.T. poslato Mart 19, 2011, 13:35:31 POSLE PODNE
postaj OnDialogResponse te cmd...
Naslov: Odg: [pomoc]oko komande /poslovi
Poruka od: McAfee poslato Mart 19, 2011, 13:49:27 POSLE PODNE
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
Naslov: Odg: [pomoc]oko komande /poslovi
Poruka od: N0NE poslato Mart 19, 2011, 13:51:36 POSLE PODNE
omg pa kad nemas dialogid 4 uopce uradjen
Naslov: Odg: [pomoc]oko komande /poslovi
Poruka od: McAfee poslato Mart 19, 2011, 13:56:13 POSLE PODNE
mozes mi pomoci oko tod dialogid-a :D  :-[
Naslov: Odg: [pomoc]oko komande /poslovi
Poruka od: .G.h.0.s.T. poslato Mart 19, 2011, 13:56:28 POSLE PODNE
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...
Naslov: Odg: [pomoc]oko komande /poslovi
Poruka od: Joey_ poslato Mart 19, 2011, 14:11:38 POSLE PODNE
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.
Naslov: Odg: [pomoc]oko komande /poslovi
Poruka od: BOSNIACUS poslato Mart 19, 2011, 14:15:53 POSLE PODNE
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 ..
Naslov: Odg: [pomoc]oko komande /poslovi
Poruka od: McAfee poslato Mart 19, 2011, 14:38:47 POSLE PODNE
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....