SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Русский/Russian

Reply
 
Thread Tools Display Modes
Old 08/11/2017, 10:57 AM   #1
Mcc
Huge Clucker
 
Join Date: May 2015
Posts: 470
Reputation: 19
Default UpdateVehicleDamageStatus - баг или фича?

Пытаюсь по отдельности ремонтировать каждый поврежденный элемент автомобиля. Текущий статус элемента определяется без проблем, и без проблем чинится каждый элемент только при условии, что другие элементы - не повреждены. Если повреждено более двух элементов - визуально ремонт не выполняется, но статус повреждения изменяется


Другими словами:
Quote:
Всем доброго времени суток! Проблема такая, когда я пытаюсь отремантировать двери или бампера с помощью этой функции (которая в названии темы), то реакции нет. Причём нет именно тогда, когда сломоно что-то ещё. Если же к примеру сломана одна дверь или 2 двери на одной стороне, то они ремонтируются. Идея заключается в том что бы каждая деталь автомобиля востонавливалась отдельно. Исключая конечно же задние двери, так как их состояние нельзя определить.
PHP Code:
stock RepairVehicleElement(vehicleidtype_elementelementnewstate)
{
    new 
pdlt;
    new 
door_bonnetdoor_bootdoor_driverdoor_passenger;
    new 
front_left_panelfront_right_panelrear_left_panelrear_right_panelwindshieldfront_bumperrear_bumper;
    new 
rear_right_tirefront_right_tirerear_left_tirefront_left_tire;
    
    
GetVehicleDamageStatus(vehicleidpdlt);
    
    if(
type_element == 1
    {
                
decode_panels(pfront_left_panelfront_right_panelrear_left_panelrear_right_panelwindshieldfront_bumperrear_bumper);
        if(
element == 1) { encode_panels(newstatefront_right_panelrear_left_panelrear_right_panelwindshieldfront_bumperrear_bumper); }
        else if(
element == 2) { encode_panels(front_left_panelnewstaterear_left_panelrear_right_panelwindshieldfront_bumperrear_bumper); }
        else if(
element == 3) { encode_panels(front_left_panelfront_right_panelnewstaterear_right_panelwindshieldfront_bumperrear_bumper); }
        else if(
element == 4) { encode_panels(front_left_panelfront_right_panelrear_left_panelnewstatewindshieldfront_bumperrear_bumper); }
        else if(
element == 5) { encode_panels(front_left_panelfront_right_panelrear_left_panelrear_right_panelnewstatefront_bumperrear_bumper); }
        else if(
element == 6) { encode_panels(front_left_panelfront_right_panelrear_left_panelrear_right_panelwindshieldnewstaterear_bumper); encode_lights(0000); }
        else if(
element == 7) { encode_panels(front_left_panelfront_right_panelrear_left_panelrear_right_panelwindshieldfront_bumpernewstate); }
    }
    else if(
type_element == 2
    { 
                
decode_doors(ddoor_bonnetdoor_bootdoor_driverdoor_passenger);
        if(
element == 1) { encode_doors(newstatedoor_bootdoor_driverdoor_passenger00); }
        else if(
element == 2) { encode_doors(door_bonnetnewstatedoor_driverdoor_passenger00); }
        else if(
element == 3) { encode_doors(door_bonnetdoor_bootnewstatedoor_passenger00); }
        else if(
element == 4) { encode_doors(door_bonnetdoor_bootdoor_drivernewstate00); }
    }
    else if(
type_element == 3
    { 
                
decode_tires(trear_right_tirefront_right_tirerear_left_tirefront_left_tire);
        if(
element == 1) { encode_tires(newstatefront_right_tirerear_left_tirefront_left_tire); }
        else if(
element == 2) { encode_tires(rear_right_tirenewstaterear_left_tirefront_left_tire); }
        else if(
element == 3) { encode_tires(rear_right_tirefront_right_tirenewstatefront_left_tire); }
        else if(
element == 4) { encode_tires(rear_right_tirefront_right_tirerear_left_tirenewstate); }
    }
    
    
UpdateVehicleDamageStatus(vehicleidpdlt);
    return 
1;

Переходить к костылям или все же что то здесь упущено?
Mcc is offline   Reply With Quote
Old 08/11/2017, 11:00 AM   #2
eakwarp
High-roller
 
Join Date: Feb 2007
Posts: 1,899
Reputation: 128
Default Re: UpdateVehicleDamageStatus - баг или фича?

На самом деле, проблема самой гта, никак не фиксится, и зависит от конкретной машины. У некоторых машин, например, невозможно починить задние двери от слова вообще.
__________________
More than 10 years of development, more than 40 mb(sic! 1 kk lines+) of source code, more than a two hundred units and more than 35k revisions(upd. aug 2017). Valakas Roleplay - choose your role.

Как правило, то, что делаю я, лишь через годы начинают делать другие, но потом, обязательно мне ставят в укор, "ой, да это уже у всех есть"...



[Gamemode] Valakas Trucker Roleplay (Russian).
eakwarp is offline   Reply With Quote
Old 08/11/2017, 11:02 AM   #3
Mcc
Huge Clucker
 
Join Date: May 2015
Posts: 470
Reputation: 19
Default Re: UpdateVehicleDamageStatus - баг или фича?

PHP Code:
encode_doors(xebonnetxebootdriver_doorpassenger_doorbehind_driver_doorbehind_passenger_door)
{
    
#pragma unused behind_driver_door
    #pragma unused behind_passenger_door
    
return xebonnet | (xeboot << 8) | (driver_door << 16) | (passenger_door << 24);
}

encode_panels(flpfrprlprrpwindshieldfront_bumperrear_bumper)
{
    return 
flp | (frp << 4) | (rlp << 8) | (rrp << 12) | (windshield << 16) | (front_bumper << 20) | (rear_bumper << 24);
}

encode_tires(tire1tire2tire3tire4) return tire1 | (tire2 << 1) | (tire3 << 2) | (tire4 << 3); 
Mcc is offline   Reply With Quote
Old 08/11/2017, 11:39 AM   #4
Mcc
Huge Clucker
 
Join Date: May 2015
Posts: 470
Reputation: 19
Default Re: UpdateVehicleDamageStatus - баг или фича?

Пофиксил. Можно клосед.
Mcc is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
[Ajuda] UpdateVehicleDamageStatus Ermanhaut Portuguкs/Portuguese 1 10/07/2016 01:06 AM
UpdateVehicleDamageStatus() => BIT BrianHarrisHun Scripting Help 2 15/02/2016 08:28 PM
little hel with UpdateVehicleDamageStatus forgottenkings Scripting Help 1 14/04/2014 06:14 AM
UpdateVehicleDamageStatus Help Angelus~ Help Archive 5 10/10/2010 04:58 AM


All times are GMT. The time now is 12:39 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.