Accidents system - help!
#7

pawn Код:
public OnPlayerVehicleDamage(playerid,vehicleid,Float:Damage)
{
    if(Damage > 149.0)
    {
        foreach(Player, i)
        {
            if(GetPlayerVehicleID(i) == vehicleid)
            {
                if(belt[i] == 1)
                {
                    GivePlayerHealth(i, -2);
                }
                else
                {
                    GivePlayerHealth(i, -30);
                }
            }
        }
    }
    return 1;
}
Or this one, which I prefer.

pawn Код:
public OnPlayerVehicleDamage(playerid,vehicleid,Float:Damage)
{
    foreach(Player, i)
    {
        if(GetPlayerVehicleID(i) == vehicleid)
        {
            if(belt[i] != 1)
            {
                new Float:dam;
                dam = (Damage / 20) * 3;
                GivePlayerHealth(i, -dam);
            }
        }
    }
    return 1;
}

You'll need the include.

And:

OPVD.inc

pawn Код:
/********************************************
 * OnPlayerVehicleDamage! V1.0              *
 * Credits: wups                            *
 ********************************************/

// include

#include <a_samp>


// defines
#if defined OPVD_INC
    #endinput
#endif
#define OPVD_INC

forward OnPlayerVehicleDamage(playerid,vehicleid,Float:Damage);

static
        Float:OPVD_VehHealth[MAX_VEHICLES] = {1000.0, 1000.0,...},
        bool:OPVD_VehUpd[MAX_VEHICLES]={false,false,...},
        bool:OPVD_OPUP,
        bool:OPVD_OPSC;
       
       
public OnPlayerUpdate(playerid)
{
    static      PL_VehID;
    PL_VehID = GetPlayerVehicleID(playerid);
    if(PL_VehID)
    {
        static      Float:PL_VehHP;
        GetVehicleHealth(PL_VehID,PL_VehHP);
        if(OPVD_VehUpd[PL_VehID])
                OPVD_VehUpd[PL_VehID]=false;
        else
        {
            if(PL_VehHP != OPVD_VehHealth[PL_VehID] && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
                    CallLocalFunction("OnPlayerVehicleDamage","iif",playerid,PL_VehID,(OPVD_VehHealth[PL_VehID]-PL_VehHP));
        }
        OPVD_VehHealth[PL_VehID]=PL_VehHP;
    }
   
    return (OPVD_OPUP)?CallLocalFunction("OPVD_OnPlayerUpdate","i",playerid):1;
}

#if defined _ALS_OnPlayerUpdate
    #undef OnPlayerUpdate
#else
    #define _ALS_OnPlayerUpdate
#endif

#define OnPlayerUpdate OPVD_OnPlayerUpdate
forward OPVD_OnPlayerUpdate(playerid);
// OnPlayerStateChange
public OnPlayerStateChange(playerid, newstate, oldstate)
{
    if(newstate == PLAYER_STATE_DRIVER)
        OPVD_VehUpd[GetPlayerVehicleID(playerid)]=true;
    return (OPVD_OPSC)?CallLocalFunction("OPVD_OnPlayerStateChange","iii",playerid,newstate,oldstate):1;
}
#if defined _ALS_OnPlayerStateChange
    #undef OnPlayerStateChange
#else
    #define _ALS_OnPlayerStateChange
#endif
#define OnPlayerStateChange OPVD_OnPlayerStateChange

forward OPVD_OnPlayerStateChange(playerid,newstate, oldstate);

forward OPVD_SetVehicleHealth(vehicleid,Float:health);
public OPVD_SetVehicleHealth(vehicleid,Float:health)
{
    OPVD_VehUpd[vehicleid]=true;
    return SetVehicleHealth(vehicleid, health);
}

forward OPVD_RepairVehicle(vehicleid);
public OPVD_RepairVehicle(vehicleid)
{
    OPVD_VehUpd[vehicleid]=true;
    return RepairVehicle(vehicleid);
}
#define RepairVehicle OPVD_RepairVehicle
#define SetVehicleHealth OPVD_SetVehicleHealth


#if defined FILTERSCRIPT
    // OnFilterScriptInit
    public OnFilterScriptInit()
    {
        OPVD_OPUP = (funcidx("OPVD_OnPlayerUpdate") != -1);
        OPVD_OPSC = (funcidx("OPVD_OnPlayerStateChange") != -1);
        return (funcidx("OPVD_OnFilterScriptInit") != -1)?CallLocalFunction("OPVD_OnFilterScriptInit",""):1;
    }
    #if defined _ALS_OnFilterScriptInit
        #undef OnFilterScriptInit
    #else
        #define _ALS_OnFilterScriptInit
    #endif
    #define OnFilterScriptInit OPVD_OnFilterScriptInit
    forward OPVD_OnFilterScriptInit();
#else
    // OnGameModeInit
    public OnGameModeInit()
    {
        OPVD_OPUP = (funcidx("OPVD_OnPlayerUpdate") != -1);
        OPVD_OPSC = (funcidx("OPVD_OnPlayerStateChange") != -1);
        return (funcidx("OPVD_OnGameModeInit") != -1)?CallLocalFunction("OPVD_OnGameModeInit",""):1;
    }
    #if defined _ALS_OnGameModeInit
        #undef OnGameModeInit
    #else
        #define _ALS_OnGameModeInit
    #endif
    #define OnGameModeInit OPVD_OnGameModeInit
    forward OPVD_OnGameModeInit();
#endif
// end
Reply


Messages In This Thread
Accidents system - help! - by kudloc - 19.09.2012, 14:59
Re: Accidents system - help! - by Jessyy - 19.09.2012, 15:08
Re: Accidents system - help! - by kudloc - 19.09.2012, 16:06
Re: Accidents system - help! - by trapstar2020 - 19.09.2012, 16:20
Re: Accidents system - help! - by HuSs3n - 19.09.2012, 16:29
Re: Accidents system - help! - by kudloc - 19.09.2012, 16:56
Re: Accidents system - help! - by milanosie - 19.09.2012, 17:41
Re: Accidents system - help! - by kudloc - 21.09.2012, 18:28

Forum Jump:


Users browsing this thread: 7 Guest(s)