AutoRepair for Airplanes
#1

Quote:

public OnVehicleDamageStatusUpdate(vehicleid, playerid)
{
#pragma unused playerid

new panels, doors, lights, tires;
GetVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
tires = encode_tires(0, 0, 0, 0); // fix all tires
panels = encode_panels(0, 0, 0, 0, 0, 0, 0); // fix all panels //fell off - (3, 3, 3, 3, 3, 3, 3)
doors = encode_doors(0, 0, 0, 0, 0, 0); // fix all doors //fell off - (4, 4, 4, 4, 0, 0)
lights = encode_lights(0, 0, 0, 0); // fix all lights
SetVehicleHealth(vehicleid,1000.0);
UpdateVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
return 1;
}

encode_tires(tire1, tire2, tire3, tire4) return tire1 | (tire2 << 1) | (tire3 << 2) | (tire4 << 3);
encode_panels(flp, frp, rlp, rrp, windshield, front_bumper, rear_bumper)
{
return flp | (frp << 4) | (rlp << | (rrp << 12) | (windshield << 16) | (front_bumper << 20) | (rear_bumper << 24);
}
encode_doors(bonnet, boot, driver_door, passenger_door, behind_driver_door, behind_passenger_door)
{
#pragma unused behind_driver_door
#pragma unused behind_passenger_door
return bonnet | (boot << | (driver_door << 16) | (passenger_door << 24);
}
encode_lights(light1, light2, light3, light4)
{
return light1 | (light2 << 1) | (light3 << 2) | (light4 << 3);
}
// end of it!

Its only for cars auto repair but its not working on airplane. Help me how too add autorepairs for airplanes helicopters.
Reply
#2

Use RepairVehicle in a timer. You can't detect if a plane's wings are damaged with OnVehicleDamageStatusUpdate or GetVehicleDamageStatus AFAIK.
Reply
#3

pawn Код:
new AutoFix[MAX_PLAYERS];

public OnPlayerConnect(playerid)
{
    AutoFix[playerid] = 0;
    return 1;
}

COMMAND:autorepair(playerid, params[])
{
    if(AutoFix[playerid] == 0)
    {
        AutoFix[playerid] = 1;
        SendClientMessage(playerid, COLOR_GREEN, "( ! ) You turned on autorepair.");
    }
    else
    {
        AutoFix[playerid] = 0;
        SendClientMessage(playerid, COLOR_GREEN, "( ! ) You turned off autorepair.");
    }
    return 1;
}

public OnPlayerUpdate(playerid)
{
    if(AutoFix[playerid] == 1 && IsPlayerInAnyVehicle(playerid))
    {
        RepairVehicle(GetPlayerVehicleID(playerid));
    }
    return 1;
}
I think you can edit it according to your needs.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)