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

Wysłany: 2017-05-18, 23:27


RivEk2002







Wiek: 23
Na forum: 4002 dni
Posty: 193
Nick w MP: RivEk

Piwa: 9

Respekt: 31,5

Siema, mam problem bo juz z 3x pisze temat tu bo nikt nie wie jak zrobic naprawe jednej czesci jak np. Chce tylko drzwi lewe to wpisze /dl i tylko te naprawi a nie cale auto. Prosze o pomoc bo jak ja kombinuje to smieje sie sam z siebie.

Podpis
Pomagam w miare moich możliwości !


Moje gg to: 53393163
Masz problem to możesz napisac !
Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-05-19, 01:21


Fudzo







Wiek: 28
Na forum: 3483 dni
Posty: 8
Nick w MP: Fudzo



Respekt: 50

Nie ma chyba takiej mo?liwo?ci, przynajmniej mi o tym nic nie wiadomo.

Mo?na zrobi? opcj?, kt?ra naprawi Ci auto, ale nie od razu do pe?na, w sensie p??.
Np. Dajesz, ?e przy uzyciu klucza, naprawi ci auto o 30% wi?cej.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-05-19, 01:25


Wafelowski







Wiek: 29
Na forum: 5348 dni
Posty: 428

Piwa: 100

Respekt: 232
Respekt: 232Respekt: 232

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-05-19, 06:26


RivEk2002







Wiek: 23
Na forum: 4002 dni
Posty: 193
Nick w MP: RivEk

Piwa: 9

Respekt: 31,5

Wafelowski, ja wiem o tych funkcjach. Pr?bowalem cos robic z nimi ale robie zle. Nie mam pomylsu na to. Daj wzor na byle co a dalej dam rade.

Podpis
Pomagam w miare moich możliwości !


Moje gg to: 53393163
Masz problem to możesz napisac !
Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-05-19, 11:19


Wafelowski







Wiek: 29
Na forum: 5348 dni
Posty: 428

Piwa: 100

Respekt: 232
Respekt: 232Respekt: 232

Og?lnie jest tu ma?y problem po stronie SA-MP-a mianowicie aby naprawi?a Ci si? jedna rzecz w poje?dzie musisz usun?? pojazd i stworzy? go na nowo gdy? ta cz??? si? nie naprawi, nie b?dzie widoczny efekt tej naprawy.

Co? tam uda?o mi si? wyskroba?. A mianowicie trzeba zdekodowa? cz??ci pojazdu (poprzez decode: http://wiki.sa-mp.com/wiki/DamageStatus ) no i tu jest ca?a zabawa bo p??niej w warunku czy switchu musisz sobie rozpisa? co Ci ma naprawi? (musisz pokombinowa?) i zakodowa? to ponownie poprzez encode), p??niej usuwasz pojazd i tworzysz go na nowo i aktualizujesz status uszkodze? przez UpdateDamageStatus(..).

Poni?ej daje Ci ten kod:
Pawn

// Niszczymy panele
cmd:updatepanel(playeridparams[])
{
    new vehicleid GetPlayerVehicleID(playerid),
        panelsdoorslightstires;
    
    GetVehicleDamageStatus(vehicleidpanelsdoorslightstires);
    panels encode_panels(00000strval(params), strval(params));
    UpdateVehicleDamageStatus(vehicleidpanelsdoorslightstires);
    return 1;
}

cmd:fixpanel(playeridparams[])
{
    new 
        panelsdoorslightstires,
        flpfrprlprrpwfbrb,

        Float:Pos[4],
        vehicleid GetPlayerVehicleID(playerid);

    GetVehicleDamageStatus(vehicleidpanelsdoorslightstires);
    decode_panels(panelsflpfrprlprrpwfbrb);

    GetVehiclePos(vehicleidPos[0], Pos[1], Pos[2]);
    GetVehicleZAngle(vehicleidPos[3]);

    switch(strval(params))
    {
        // 0 - Przedni zderzak
        // 1 - Tylni zderzak
        case 0:
        {
            panels encode_panels(flpfrprlprrpw0rb);
        }
        case 1:
        {
            panels encode_panels(flpfrprlprrpwfb0);
        }
    }

    DestroyVehicle(vehicleid);
    vehicleid CreateVehicle(541Pos[0], Pos[1], Pos[2], Pos[3], -1, -1, -10);

    PutPlayerInVehicle(playeridvehicleid0);

    UpdateVehicleDamageStatus(vehicleidpanelsdoorslightstires);
    GameTextForPlayer(playerid"~b~~h~FIXED!"30004);
}


// Funkcje do dekodowania/kodowania paneli bitmaska
stock decode_panels(panels, &front_left_panel, &front_right_panel, &rear_left_panel, &rear_right_panel, &windshield, &front_bumper, &rear_bumper)
{
    front_left_panel panels 15;
    front_right_panel panels >> 15;
    rear_left_panel panels >> 15;
    rear_right_panel panels >> 12 15;
    windshield panels >> 16 15;
    front_bumper panels >> 20 15;
    rear_bumper panels >> 24 15;
}
 
stock encode_panels(front_left_panelfront_right_panelrear_left_panelrear_right_panelwindshieldfront_bumperrear_bumper)
{
    return front_left_panel | (front_right_panel << 4) | (rear_left_panel << 8) | (rear_right_panel << 12) | (windshield << 16) | (front_bumper << 20) | (rear_bumper << 24);
}


Przetestuj, przeanalizuj sobie kod i b?dziesz wiedzia? jak to dzia?a. Co do komendy updatepanel to podajesz tam jak?? warto?? 3 lub 4 (nie pami?tam) i wtedy rozwali Ci dwa zderzaki, takie do testu.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-05-19, 16:52


RivEk2002







Wiek: 23
Na forum: 4002 dni
Posty: 193
Nick w MP: RivEk

Piwa: 9

Respekt: 31,5

A moge cmd updatepanel kod z niej dac do 1 cmd zeby 1 cmd robila all ?

Podpis
Pomagam w miare moich możliwości !


Moje gg to: 53393163
Masz problem to możesz napisac !
Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-05-19, 17:06


Wafelowski







Wiek: 29
Na forum: 5348 dni
Posty: 428

Piwa: 100

Respekt: 232
Respekt: 232Respekt: 232

Ta komenda updatepanel jest po to ?eby zniszczy? zderzaki w poje?dzie, to jest tylko do testu ?ebym nie musia? co chwile rozwala? auta tylko w sekund? sobie je rozwal?.

Chcia?e? kod to masz, ja nie wiem w jaki spos?b chcesz naprawia? te pojazdy. Musisz to poprzerabia? po swojemu, co jeszcze chcesz? Wszystko podane jak na tacy.

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
RivEk2002
Wysłany: 2017-05-19, 19:07


RivEk2002







Wiek: 23
Na forum: 4002 dni
Posty: 193
Nick w MP: RivEk

Piwa: 9

Respekt: 31,5

Ogarne czy dziala i jak bd ok to nie bd ju meczyl.

[ Dodano: 2017-05-19, 20:43 ]
Troche nie o to mi chodzi?o bo tu tworzy si? nowy pojazd ciagle a tamten sie usuwa. A mi chodzi ze ( bo ja chce to w txd zrobic) jak jest w czekpie auto to nie tworzy si? nowe czy cos tylko na jednym ci?gle robi? to. Da si? tak czy musze robic zapis stanu pojazdu itp i pojedy?cze naprawianie ?

Podpis
Pomagam w miare moich możliwości !


Moje gg to: 53393163
Masz problem to możesz napisac !
Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-05-19, 21:42


Wafelowski







Wiek: 29
Na forum: 5348 dni
Posty: 428

Piwa: 100

Respekt: 232
Respekt: 232Respekt: 232

Nie za bardzo rozumiem pytania, opisz to co chcesz zrobi? ale dok?adniej. Chcia?e? kod na naprawianie jednej cz??ci to taki ci zrobi?em, rozumiem ?e chcesz zrobi? co? takiego tylko ?e z wybraniem kilku cz??ci i dopiero je?eli gracz wybra? przyk?adowo 3 cz??ci i nacisn?? przycisk zatwierdzaj?cy to maj? si? wtedy od razu 3 rzeczy na raz naprawi??

Co do tego czemu ten pojazd si? usuwa i tworzy nowy masz napisane w pi?tym po?cie, tak dzia?a SA-MP nic z tym nie zrobisz.

Je?eli chodzi o te zaznaczanie kilku cz??ci to binarny si? k?ania ( http://gtao.pl.com/showthread.php?t=177523 ). Jest to ?atwe do zrobienia jednak?e trzeba troch? pog??wkowa?.

Postaw piwo autorowi tego posta
 

 
Tagi: naprawianie :: pojedynczych :: czesci
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN » Naprawianie pojedynczych czesci 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