Vehicle Damage ?

Započeo just_Sukiii
8. Okt. 2017. Zaključano
746
pregleda
6
postova
just_Sukiii
4
Enforcer
8. Okt. 2017.

Koji callback da koristim da bih mogao da detektujem kad ja sa autom udarim nekog drugog ko je u autu ?
Postoji li uopste takav callback

Hvala unaprijed... 😄

ophion
5
OG Legend
8. Okt. 2017.
probaj nekako sa  callbackom OnVehicleDamageStatusUpdate
just_Sukiii
4
Enforcer
8. Okt. 2017.
Łuk wrote on October 8, 2017, 12:16 pm:
probaj nekako sa  callbackom OnVehicleDamageStatusUpdate

Nemam neku ideju, moze li se koristiti
OnPlayerWeaponShot pa weaponid da bude WEAPON_VEHICLE tj id 49  ?
ophion
5
OG Legend
9. Okt. 2017.
just_Sukiiii wrote on October 8, 2017, 12:16 pm:
probaj nekako sa  callbackom OnVehicleDamageStatusUpdate

Nemam neku ideju, moze li se koristiti
OnPlayerWeaponShot pa weaponid da bude WEAPON_VEHICLE tj id 49  ?

Editovao sam include OnPlayerVehicleDamage od wupsa
INC>

#include

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

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

static
Float:OPVD_VehHealth = {1000.0, 1000.0,...},
bool:OPVD_VehUpd={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)
OPVD_VehUpd=false;
else
{
if(PL_VehHP != OPVD_VehHealth && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
CallLocalFunction("WhenPlayerOrVehicleDamageVehicle","iif",playerid,PL_VehID,(OPVD_VehHealth-PL_VehHP));
}
OPVD_VehHealth=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=true;
return SetVehicleHealth(vehicleid, health);
}

forward OPVD_RepairVehicle(vehicleid);
public OPVD_RepairVehicle(vehicleid)
{
OPVD_VehUpd=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



KOD MOJ KOJI U SKRIPTU STAVIS:
public WhenPlayerOrVehicleDamageVehicle(playerid,vehicleid,Float:Damage)
{
new a = GetVehicleDriver(vehicleid);
if(IsPlayerInVehicle(playerid))
{
if(IsPlayerInVehicle(a))
{
//sta da se desi
}
}
return 1;
}


Nisam 100% siguran da li ce da radi 🙂
just_Sukiii
4
Enforcer
9. Okt. 2017.
Łuk wrote on October 8, 2017, 12:16 pm:
probaj nekako sa  callbackom OnVehicleDamageStatusUpdate

Nemam neku ideju, moze li se koristiti
OnPlayerWeaponShot pa weaponid da bude WEAPON_VEHICLE tj id 49  ?

Editovao sam include OnPlayerVehicleDamage od wupsa
INC>

#include

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

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

static
Float:OPVD_VehHealth = {1000.0, 1000.0,...},
bool:OPVD_VehUpd={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)
OPVD_VehUpd=false;
else
{
if(PL_VehHP != OPVD_VehHealth && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
CallLocalFunction("WhenPlayerOrVehicleDamageVehicle","iif",playerid,PL_VehID,(OPVD_VehHealth-PL_VehHP));
}
OPVD_VehHealth=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=true;
return SetVehicleHealth(vehicleid, health);
}

forward OPVD_RepairVehicle(vehicleid);
public OPVD_RepairVehicle(vehicleid)
{
OPVD_VehUpd=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



KOD MOJ KOJI U SKRIPTU STAVIS:
public WhenPlayerOrVehicleDamageVehicle(playerid,vehicleid,Float:Damage)
{
new a = GetVehicleDriver(vehicleid);
if(IsPlayerInVehicle(playerid))
{
if(IsPlayerInVehicle(a))
{
//sta da se desi
}
}
return 1;
}


Nisam 100% siguran da li ce da radi 🙂

Eo ubacio sam sve mi se fino kompajla, al moramo cekat sutra da nabavim nego da testamo 😄
Mada cini mi se da ce ovo radit, hvala ti puno na trudu <3
ophion
5
OG Legend
10. Okt. 2017.
just_Sukiiii wrote on October 8, 2017, 12:16 pm:
probaj nekako sa  callbackom OnVehicleDamageStatusUpdate

Nemam neku ideju, moze li se koristiti
OnPlayerWeaponShot pa weaponid da bude WEAPON_VEHICLE tj id 49  ?

Editovao sam include OnPlayerVehicleDamage od wupsa
INC>

#include

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

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

static
Float:OPVD_VehHealth = {1000.0, 1000.0,...},
bool:OPVD_VehUpd={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)
OPVD_VehUpd=false;
else
{
if(PL_VehHP != OPVD_VehHealth && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
CallLocalFunction("WhenPlayerOrVehicleDamageVehicle","iif",playerid,PL_VehID,(OPVD_VehHealth-PL_VehHP));
}
OPVD_VehHealth=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=true;
return SetVehicleHealth(vehicleid, health);
}

forward OPVD_RepairVehicle(vehicleid);
public OPVD_RepairVehicle(vehicleid)
{
OPVD_VehUpd=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



KOD MOJ KOJI U SKRIPTU STAVIS:
public WhenPlayerOrVehicleDamageVehicle(playerid,vehicleid,Float:Damage)
{
new a = GetVehicleDriver(vehicleid);
if(IsPlayerInVehicle(playerid))
{
if(IsPlayerInVehicle(a))
{
//sta da se desi
}
}
return 1;
}


Nisam 100% siguran da li ce da radi 🙂

Eo ubacio sam sve mi se fino kompajla, al moramo cekat sutra da nabavim nego da testamo 😄
Mada cini mi se da ce ovo radit, hvala ti puno na trudu <3
Nnc, samo testiraj, ako radi lockaj, ako ne, imam jos ideja kako da napravim

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha