UpdateVehicleDamageStatus - баг или фича?
#1

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


Другими словами:
Quote:

Всем доброго времени суток! Проблема такая, когда я пытаюсь отремантировать двери или бампера с помощью этой функции (которая в названии темы), то реакции нет. Причём нет именно тогда, когда сломоно что-то ещё. Если же к примеру сломана одна дверь или 2 двери на одной стороне, то они ремонтируются. Идея заключается в том что бы каждая деталь автомобиля востонавливалась отдельно. Исключая конечно же задние двери, так как их состояние нельзя определить.

PHP код:
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;

Переходить к костылям или все же что то здесь упущено?
Reply
#2

На самом деле, проблема самой гта, никак не фиксится, и зависит от конкретной машины. У некоторых машин, например, невозможно починить задние двери от слова вообще.
Reply
#3

PHP код:
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); 
Reply
#4

Пофиксил. Можно клосед.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)