Zaključano

[Pomoc] Iz Komande U Dialog

Započeo Sale^
pre 13 godina
813
pregleda
16
postova
Ova tema je zaključana. Samo moderatori i administratori mogu odgovarati.
Johnny_DeVito
Wheel Man
pre 13 godina
Skripta koju koristim: Od 0
Detaljan opis problema: Evo napravio sam Biz sistem i sad me zanima kako da ove komande prebacim u ovaj dialog:

Ove Komande:
CMD:prodajfirmu(playerid, params[]) // prodaja stana
{
    for(new i = 0; i < sizeof(Firma_Data); i++)
{
    GetPlayerName(playerid, nameigraca, sizeof(nameigraca));
if(IsPlayerInRangeOfPoint(playerid, 3,Firma_Data, Firma_Data, Firma_Data) && strcmp(Firma_Data, nameigraca, false ) == 0)
{
strmid(Firma_Data, "Drzava", 0, strlen("Drzava"), 255);
Firma_Data = 1;
Firma_Data = 1;
GivePlayerMoney(playerid,Firma_Data);
SendClientMessage(playerid, BELA, "Uspesno Ste Prodali Firmu!");
  UcitajFirme(i);
SaveFirmu(i);
return 1;
}
}
return 1;
}
//
CMD:fostavi(playerid, params[])
{
new novac;
new string;
if(novac < 0) { return 1; }
for(new i = 0; i < sizeof(Firma_Data); i++)
{
GetPlayerName(playerid, nameigraca, sizeof(nameigraca));
if(IsPlayerInRangeOfPoint(playerid, 10,Firma_Data, Firma_Data, Firma_Data) && strcmp(Firma_Data, nameigraca, false ) == 0 && GetPlayerVirtualWorld(playerid) == Firma_Data)
{
if(GetPlayerMoney(playerid) >= novac)
{
Firma_Data += novac;
GivePlayerMoney(playerid,-novac);
format(string, sizeof(string), "Stavio si %d $ u sef, pa sad ima: %d", novac, Firma_Data);
SendClientMessage(playerid, ZUTA, string);
SaveFirmu(i);
return 1;
}
else { SendClientMessage(playerid,SIVA,"Nemas dovoljno para!"); return 1; }
}
}
return 1;
}
//
CMD:fpodigni(playerid, params[])
{
    new novac;
new string;
if(novac < 0) { return 1; }
for(new i = 0; i < sizeof(Firma_Data); i++)
{
GetPlayerName(playerid, nameigraca, sizeof(nameigraca));
if(IsPlayerInRangeOfPoint(playerid, 10,Firma_Data, Firma_Data, Firma_Data) && strcmp(Firma_Data, nameigraca, false ) == 0 && GetPlayerVirtualWorld(playerid) == Firma_Data)
{
if(Firma_Data >= novac)
  {
Firma_Data -= novac;
GivePlayerMoney(playerid,novac);
format(string, sizeof(string), "Uzeo si %d $ iz sefa, ostalo je jos: %d $", novac, Firma_Data);
SendClientMessage(playerid, ZUTA, string);
SaveFirmu(i);
return 1;
}
else { SendClientMessage(playerid,SIVA,"Nemas dovoljno para!"); return 1; }
}
}
return 1;
}


U Ovaj Dialog:
ShowPlayerDialog(playerid, DIALOG_FIRME, DIALOG_STYLE_LIST, "Firme", "Prodaj\nOstavi Novac\nPodigni Novac", "Odaberi", "Izadji");


Dio skripte:
Neke slike/video za lakse dobivanje pomoci(neobavezno):
Johnny_DeVito
Wheel Man
pre 13 godina
Moze ko pomoci ?
Obrisan korisnik Obrisan korisnik
pre 13 godina
Jel imaš neki postojeći OnDialogResponse za taj dijalog, ili da napravim novo?
Johnny_DeVito
Wheel Man
pre 13 godina
Imam ovaj
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_FIRME)
    {
        if(response) // If they clicked 'Select' or double-clicked a weapon
        {
            // Give them the weapon
            if(listitem == 0) // They selected the first item - Desert Eagle
            {
            new
Float:Pos,
string,
id = 1
;
        for(new i = 1; i < MAX_FIRMI; i++)//loop-amo kuce
        {
        format(string, sizeof(string), F_FAJL, i);
if(fexist(string)) id++;//Proveravamo da li postoji ta kuca ako postoji dodajemo na id +1 (trazimo slobodan id
        }
        format(string, sizeof(string), F_FAJL, id);//Formatiramo text
GetPlayerPos(playerid,Pos,Pos,Pos);//Uzimamo koordinate igraca gde se nalazi
Firma_Data = Pos;//Koordinata X ulaza
Firma_Data = Pos;//Koordinata Y ulaza
Firma_Data = Pos;//Koordinata Z ulaza
Firma_Data =  -25.884498;//Koordinata X izlaza
Firma_Data = -185.868988;//Koordinata X izlaza
Firma_Data = 1003.546875;//Koordinata X izlaza
format(Firma_Data,24,"Market");
Firma_Data = 250000;//Cena kuce
Firma_Data = 7;//Level kuce
Firma_Data = id+1;//Virtaul World kuce da se igraci nebi sudarali
Firma_Data = 17;//Interior ID kuce
Firma_Data = 1;//Stavljamo da se kuca prodaje
Firma_Data = 0;//Pare u sefu stavljamo na 0
format(Firma_Data,24,"Drzava");//Stavljamo da je vlasnik kuce Drzava
        /*ShowPlayerDialog(playerid,DIALOG_HOUSE,DIALOG_STYLE_INPUT,"Ime kuce","Unesite ime kuce","Unesi","Odustani");//Dialog za unosenje imena kuce*/
      SaveFirmu(id);//Sacuvamo informacije kuce
UcitajFirme(id);//Kreiramo labele i textove
            }
            if(listitem == 1) // They selected the second item - AK-47
            {
                GivePlayerWeapon(playerid, WEAPON_AK47, 120); // Give them an AK-47
            }
            if(listitem == 2) // They selected the third item - Desert Eagle
            {
                GivePlayerWeapon(playerid, WEAPON_SHOTGSPA, 28); // Give them a Combat Shotgun
            }
        }
        return 1; // We handled a dialog, so return 1. Just like OnPlayerCommandText.
    }
    return 0; // You MUST return 0 here! Just like OnPlayerCommandText.
}
Obrisan korisnik Obrisan korisnik
pre 13 godina
Probaj.
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
    if(dialogid == DIALOG_FIRME)
    {
        if(response) // If they clicked 'Select' or double-clicked a weapon
        {
            // Give them the weapon
            if(listitem == 0) // They selected the first item - Desert Eagle
            {
            new
Float:Pos,
string,
id = 1
;
        for(new i = 1; i < MAX_FIRMI; i++)//loop-amo kuce
        {
        format(string, sizeof(string), F_FAJL, i);
if(fexist(string)) id++;//Proveravamo da li postoji ta kuca ako postoji dodajemo na id +1 (trazimo slobodan id
        }
        format(string, sizeof(string), F_FAJL, id);//Formatiramo text
GetPlayerPos(playerid,Pos,Pos,Pos);//Uzimamo koordinate igraca gde se nalazi
Firma_Data = Pos;//Koordinata X ulaza
Firma_Data = Pos;//Koordinata Y ulaza
Firma_Data = Pos;//Koordinata Z ulaza
Firma_Data =  -25.884498;//Koordinata X izlaza
Firma_Data = -185.868988;//Koordinata X izlaza
Firma_Data = 1003.546875;//Koordinata X izlaza
format(Firma_Data,24,"Market");
Firma_Data = 250000;//Cena kuce
Firma_Data = 7;//Level kuce
Firma_Data = id+1;//Virtaul World kuce da se igraci nebi sudarali
Firma_Data = 17;//Interior ID kuce
Firma_Data = 1;//Stavljamo da se kuca prodaje
Firma_Data = 0;//Pare u sefu stavljamo na 0
format(Firma_Data,24,"Drzava");//Stavljamo da je vlasnik kuce Drzava
        /*ShowPlayerDialog(playerid,DIALOG_HOUSE,DIALOG_STYLE_INPUT,"Ime kuce","Unesite ime kuce","Unesi","Odustani");//Dialog za unosenje imena kuce*/
      SaveFirmu(id);//Sacuvamo informacije kuce
UcitajFirme(id);//Kreiramo labele i textove
            }
            if(listitem == 1) // They selected the second item - AK-47
            {
                GivePlayerWeapon(playerid, WEAPON_AK47, 120); // Give them an AK-47
            }
            if(listitem == 2) // They selected the third item - Desert Eagle
            {
                new novac;
new string;
if(novac < 0) { return 1; }
for(new i = 0; i < sizeof(Firma_Data); i++)
{
GetPlayerName(playerid, nameigraca, sizeof(nameigraca));
if(IsPlayerInRangeOfPoint(playerid, 10,Firma_Data, Firma_Data, Firma_Data) && strcmp(Firma_Data, nameigraca, false ) == 0 && GetPlayerVirtualWorld(playerid) == Firma_Data)
{
if(GetPlayerMoney(playerid) >= novac)
{
Firma_Data += novac;
GivePlayerMoney(playerid,-novac);
format(string, sizeof(string), "Stavio si %d $ u sef, pa sad ima: %d", novac, Firma_Data);
SendClientMessage(playerid, ZUTA, string);
SaveFirmu(i);
return 1;
}
else { SendClientMessage(playerid,SIVA,"Nemas dovoljno para!"); return 1; }
}
}
            }
        }
        return 1; // We handled a dialog, so return 1. Just like OnPlayerCommandText.
    }
    return 0; // You MUST return 0 here! Just like OnPlayerCommandText.
}
Johnny_DeVito
Wheel Man
pre 13 godina
Hvala, al nema ovo za Podignuti novac, i mislio sam ako to moze nekako kad se podize i spusta novac u Dialogu.

Da mu izbaci ono Input, i da upises sumu.

I ovo za oruzje mozes izbrisati, to sam nesto bezveze radio.
Obrisan korisnik Obrisan korisnik
pre 13 godina
Pokušaj sam, ja želim da shvatiš ne da ti uradim, ovako bi išao.
ShowPlayerDialog(playerid, DIALOG_FOSTAVI, DIALOG_STYLE_INPUT, "Firme", "Ukucajte sumu novca koju ostavljate.", "Odaberi", "Izadji");
Johnny_DeVito
Wheel Man
pre 13 godina
I ja bi zeleo da sam naucim, al' ne mogu bez primera.
Obrisan korisnik Obrisan korisnik
pre 13 godina
Nisam testao ali bi trebalo da radi, samo definiši ID dijaloga.
    if(dialogid == DIALOG_FOSTAVI)
    {
    if(response)
    {
    new kodic = inputtext(tmp);
    new sefic = Firma_Data;
    if(kodic > sefic || kodic < 0) return SendClientMessage(playerid, ZUTA, "Nepravilan unos.");
    Firma_Data -=kodic;
    GivePlayerMoney(playerid, kodic);
    format(string, sizeof(string), "Podigao si %d $ iz sefa, pa sad ima: %d", kodic, Firma_Data);
SendClientMessage(playerid, ZUTA, string);
    }
    }
Johnny_DeVito
Wheel Man
pre 13 godina
error 017: undefined symbol "tmp"
Djolle
Wheel Man
pre 13 godina
new tmp;
Djolle
Wheel Man
pre 13 godina
Greska za DP sry
Johnny_DeVito
Wheel Man
pre 13 godina
C:\Users\Nebojsa\Desktop\My Stuffs\nVidia\gamemodes\biz.pwn(327) : error 012: invalid function call, not a valid address
C:\Users\Nebojsa\Desktop\My Stuffs\nVidia\gamemodes\biz.pwn(327) : warning 215: expression has no effect
C:\Users\Nebojsa\Desktop\My Stuffs\nVidia\gamemodes\biz.pwn(327) : error 001: expected token: ";", but found ")"
C:\Users\Nebojsa\Desktop\My Stuffs\nVidia\gamemodes\biz.pwn(327) : error 029: invalid expression, assumed zero
C:\Users\Nebojsa\Desktop\My Stuffs\nVidia\gamemodes\biz.pwn(327) : fatal error 107: too many error messages on one line

Linija 327:
new kodic = inputtext(tmp);


Citav kod:
	    if(dialogid == DIALOG_FOSTAVI)
    {
    if(response)
    {
    new tmp;
    new kodic = inputtext(tmp);
    new sefic = Firma_Data;
    if(kodic > sefic || kodic < 0) return SendClientMessage(playerid, ZUTA, "Nepravilan unos.");
    Firma_Data -=kodic;
    GivePlayerMoney(playerid, kodic);
    format(string, sizeof(string), "Podigao si %d $ iz sefa, pa sad ima: %d", kodic, Firma_Data);
SendClientMessage(playerid, ZUTA, string);
    }
Obrisan korisnik Obrisan korisnik
pre 13 godina
A jbt jesam se zajebao, ovo ide.
new kodic = strval(inputtext);
Johnny_DeVito
Wheel Man
pre 13 godina
Hvala radi, samo kad ostavljam novac idem ovako,
GivePlayerMoney(playerid, -kodic);


Il' kako

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava