Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2017-03-18, 16:53


Adis.exe

LUA Developer






Wiek: 23
Na forum: 3498 dni
Posty: 292
Nick w MP: Adiś.exe

Piwa: 997

Respekt: 110,3
Respekt: 110,3

Witam, ot?? zrobi?em panel prywatnych pojazd?w, pod kom /pojazdy, pokazuje sie lista twoich pojazd?w w dialogu.... Dialog ma id "DIALOG_PLAYER_VEHICLES" I teraz powiedzmy ?e gracz ma 3 pozycje pod /pojazdy bo ma 3 pojazdy, i jak zrobi? ten panel ? W sensie ze jak klikne na np pozycje 1 to sie wyswietla tam zaparkuj, sprzedaj itp, tylko ze jak ominac w ondialogreponse takiego ze tak powiem spamu ?
Pawn

if(dialogid == DIALOG_PLAYER_VEHICLES)
    {
        if(response == 1)
        {
            switch(listitem)
            {
                case 0:
                {
                    ShowPlayerDialog(playeridDIALOG_PANELDIALOG_STYLE_LIST"Panel Prywatnych Pojazdow ""Zaparkuj\nSprzedaj\nInformacje\nZamknij/Otworz\n""Wybierz""Wyjdz");
                }
                case 1:
                {
                    ShowPlayerDialog(playeridDIALOG_PANEL2DIALOG_STYLE_LIST"Panel Prywatnych Pojazdow ""Zaparkuj\nSprzedaj\nInformacje\nZamknij/Otworz\n""Wybierz""Wyjdz");
                }
                case 2:
                {
                    ShowPlayerDialog(playeridDIALOG_PANEL3DIALOG_STYLE_LIST"Panel Prywatnych Pojazdow ""Zaparkuj\nSprzedaj\nInformacje\nZamknij/Otworz\n""Wybierz""Wyjdz");
                }
                case 3:
                {
                    ShowPlayerDialog(playeridDIALOG_PANEL4DIALOG_STYLE_LIST"Panel Prywatnych Pojazdow ""Zaparkuj\nSprzedaj\nInformacje\nZamknij/Otworz\n""Wybierz""Wyjdz");
                }
                case 4:
                {
                    ShowPlayerDialog(playeridDIALOG_PANEL5DIALOG_STYLE_LIST"Panel Prywatnych Pojazdow ""Zaparkuj\nSprzedaj\nInformacje\nZamknij/Otworz\n""Wybierz""Wyjdz");
                }
            }
        }            
    }

Dokladnie takiego spamu... Nwm jak to zrobic, bo tym wyzej przedstawionym sposobem to wiem ze jak gracz nacisnie 1 pozycje i potem zaparkuj to b?dzie wywo?any dialog DIALOG_PANEL, i wiem ?e opcja zaparkuj b?dzie dotyczy?? pojazdu prywatnego nr. 1... Jak omin?c ten spam ?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-03-18, 19:04


Grace

Kierowca Pralki






Wiek: 24
Na forum: 3436 dni
Posty: 168
Nick w MP: Grace

Piwa: 1031

Respekt: 35,8

Zrobi? to wszystko w stock.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-03-18, 19:21


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
Musisz to zrobi? dynamicznie, a nie statycznie jak teraz. Zapewne nie masz Pojazd1, Pojazd2 tylko Pojazd[id_gracza][slot_pojazdu], a je?li tak nie masz, to zalecam tak to zrobi?. Wtedy zapisujesz sobie slot pojazdu, kt?ry wybra? gracz w dialogu.

Kod:

new playerPrivcar[MAX_PLAYERS][3]; //3 - maksymalna ilosc prywatnych pojazdow dla pojedynczego gracza

ShowPlayerDialog(playerid, 0, DIALOG_STYLE_TABLIST, "Wybierz pojazd", "0\tPojazd1\n1\tPojazd2\n2\tPojazd3", "Wybierz", ""); //to zrob dynamicznie, w petli (slot pojazdu\tdalsze informacje)

if(dialogid == 0)
{
new slotid = strval(inputtext); //
//teraz operujesz pojazdem playerPrivcar[playerid][slotid]
//reszta kodu
}


Wygl?da to skomplikowanie, ale sam si? za takie rzeczy zabierasz.

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
Adis.exe
Wysłany: 2017-03-18, 19:31


Adis.exe

LUA Developer






Wiek: 23
Na forum: 3498 dni
Posty: 292
Nick w MP: Adiś.exe

Piwa: 997

Respekt: 110,3
Respekt: 110,3

new slotid = strval(inputtext);
mog? prosi? o wyja?nienie co to znaczy ? :) I dok?adnie tak, mam pojazd pod slotami
new PrivCars[MAX_PLAYERS][MAX_PRIVATE_VEHICLE][PRIV_CARS];

[ Dodano: 2017-03-18, 19:34 ]
czyli jak zrobie to jak napisales wyzej, to zastosowanie to np. Zaparkuj
GetVehiclePos(vehicleid, PrivCars[playerid][slotid][PosX], ...);
przy czym to "slotid" znaczy new slotid = strval(inputtext);

[ Dodano: 2017-03-18, 19:39 ]
i "vehicleid" to playerPrivcar[playerid][slotid] ?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-03-18, 20:42


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
"Adikoo1302" napisał/a:

mog? prosi? o wyja?nienie co to znaczy


http://wiki.sa-mp.com/wiki/OnDialogResponse

Cytat:

inputtext[] - The text entered into the input box by the player or the selected list item text.


W dialogu b?dzie to slot pojazdu, a callback OnDialogResponse przeka?e ten slot w argumencie inputtext jako string, a funkcja strval zwr?ci slot pojazdu jako liczba (integer), kt?rego u?yjesz do tablicy prywatnych pojazd?w. Mo?na to zrobi? inaczej (np. jako listitem), ale tak jest naj?atwiej i najbezpieczniej, dlaczego? A no dlatego, ?e je?li gracz b?dzie mie? pojazd na slocie drugim, a nie b?dzie mie? pojazdu na slocie zerowym, to listitem tutaj nic nie zdzia?a, a funkcja strval zwr?ci poprawny slot. Wtedy jest to dynamicznie, bez zb?dnego tworzenia tablic przechowuj?cych dany slot. A reszta jest tak jak piszesz, wi?c mo?esz dzia?a?.

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
Adis.exe
Wysłany: 2017-03-18, 23:01


Adis.exe

LUA Developer






Wiek: 23
Na forum: 3498 dni
Posty: 292
Nick w MP: Adiś.exe

Piwa: 997

Respekt: 110,3
Respekt: 110,3

Pawn

if(dialogid == DIALOG_PLAYER_VEHICLES)
    {
        if(response == 1)
        {
            slotid[playerid] = strval(inputtext);
            ShowPlayerDialog(playeridDIALOG_PANELDIALOG_STYLE_LIST"Panel Prywatnych Pojazdow ""{ffffff}Zaparkuj\nSprzedaj\nInformacje\n{c40000}Zamknij/{00ff15}Otworz\n""Wybierz""Wyjdz");
        }    
    }


i uzywam to
Pawn

new stringinfocar[500];
                    new Float:Przebieg GetVehicleCourse(PrivCars[playerid][slotid[playerid]][SampID]);
                    format(stringinfocarsizeof(stringinfocar), "{42f1f4}UID:%d\n{42f1f4}Marka:{ffffff}%s\n{42f1f4}Model:{ffffff}%d\n{42f1f4}Tablica rej.:{ffffff}%s\n{42f1f4}Przebieg:{ffffff}%.2f"PrivCars[playerid][slotid[playerid]][UID], VehicleNames[PrivCars[playerid][slotid[playerid]][Modelid]-400], PrivCars[playerid][slotid[playerid]][Modelid], PrivCars[playerid][slotid[playerid]][Plate], Przebieg);
                    ShowPlayerDialog(playeridD_PRIVCARINFODIALOG_STYLE_MSGBOX"Informacje o twoim aucie"stringinfocar"OK"#);

I to dzia?a tylko w przypadku 1 pojazdu, jak klikam na pojazd 2 to wyskakuje info o 1 pojedzie jak parkuje pojazd 2 to parkuje mi si? pojazd 1, co robi? ?

Podpis

KONTAKT:
GG: 60968224
Discord: Adiś.exe#3828

Użytkownik: 05.11.2016
GTAO Member: 20.02.2019
Support-Team: 25.07.2018
Support-Team: 19.01.2019
Test Mod: 08.02.2019

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-03-19, 10:06


Combacior







Wiek: 29
Na forum: 5795 dni
Posty: 1516

Piwa: 2161

Respekt: 1060
Respekt: 1060

Ostrzeżeń: 20%
Poka? kod, kt?ry pokazujesz graczowi dialog DIALOG_PLAYER_VEHICLES. Zapewne ?le formatujesz informacje i funkcja strval zwraca 0. Powinno to wygl?da? mniej wi?cej tak

Kod:

//petla na wszystkie pojazdy gracza
format(string, sizeof string, "%d\t%s\n", slotid, cos tam dalej co chcesz); //format danego pojazdu
strcat(...); //laczenie wyzej sformatowanego pojazdu z caloscia
//koniec petli
ShowPlayerDialog(...);


Wa?ne jest, aby przed pierwszym tabulatorem (\t) znajdowa? si? tylko i wy??cznie slot pojazdu, nic innego, ?adnych literek.

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
Adis.exe
Wysłany: 2017-03-19, 10:10


Adis.exe

LUA Developer






Wiek: 23
Na forum: 3498 dni
Posty: 292
Nick w MP: Adiś.exe

Piwa: 997

Respekt: 110,3
Respekt: 110,3

Pawn

CMD:pojazdy(playerid)
{
    new stringpojazdy[400];

    mysql_query(sprintf("SELECT UID, Model FROM `privcars` WHERE `Owner` = '%s'"PlayerCache[playerid][pName])); //Wstaw sobie enum sw?j z nazw? gracza
    mysql_store_result();

    if( mysql_num_rows() == SendGuiInformation(playerid"Wyst?pi? b??d""Nie posiadasz zadnych prywatnych pojazdow.");
    else
    {
        DynamicGui_Init(playerid);
        for(new i;i<mysql_num_rows();i++)
        {
            mysql_data_seek(i);
            mysql_fetch_row_data();
                
            new uid mysql_fetch_field_int("UID");

            // Wszystkie pojazdy gracza dodajemy do listy
            format(stringpojazdysizeof(stringpojazdy), "%s[UID: %d] %s\n"stringpojazdyuidVehicleNames[mysql_fetch_field_int("Model")-400]);
            DynamicGui_AddRow(playeriduid);
        }
            
        ShowPlayerDialog(playeridDIALOG_PLAYER_VEHICLESDIALOG_STYLE_LIST"Pojazdy nalezace do Ciebie:"stringpojazdy"(Un)spawn""Zamknij");
    }
    mysql_free_result();
    return 1;
}


Podpis

KONTAKT:
GG: 60968224
Discord: Adiś.exe#3828

Użytkownik: 05.11.2016
GTAO Member: 20.02.2019
Support-Team: 25.07.2018
Support-Team: 19.01.2019
Test Mod: 08.02.2019

Postaw piwo autorowi tego posta
 

 
Tagi: pojazd :: prywatny :: panel
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN » Pojazd Prywatny - Panel Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku