Function/Callback that detects... - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (
https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (
https://sampforum.blast.hk/forumdisplay.php?fid=12)
+---- Forum: Help Archive (
https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: Function/Callback that detects... (
/showthread.php?tid=122906)
Function/Callback that detects... -
Torran - 23.01.2010
Function And/Or Callback that detects the tiniest damage on a vehicle?
Re: Function/Callback that detects... -
mansonh - 23.01.2010
Nope there isn't one. All callbacks are listed
here
You can make it yourself though.
put this in your filterscript
pawn Code:
#include vhealth.inc
public OnFilterScriptInit()
{
SetTimer("VehicleHCheck", 500, 1);
}
//put this callback where you want it
public OnVehicleDamage(driverid, vehicleid)
{
.....
}
in an include file call it vhealth.inc put it in pawn/include
pawn Code:
//This is in here for security, just leave as is
#if defined _vhealthcallback_Included
#endinput
#endif
#define _vhealthcallback_Included
//have a variable for all players for their cars vehicle healths.
new Float:playerVHealth[GetMaxPlayers()];
//This is your callback, put this where you want it in your filterscript
forward OnVehicleDamage(driverid, vehicleid);
forward VehicleHCheck();
public VehicleHCheck()
{
new Float:VHealth, vehicleid;
for(new playerid=0; player<GetMaxPlayers();playerid++)
{
if(GetPlayerState(playerid)!=PLAYER_STATE_DRIVER) continue;
vehicleid = GetPlayerVehicleID(playerid);
GetVehicleHealth(vehicleid, VHealth);
if(VHealth < playerVHealth[playerid])
{
OnVehicleDamage(playerid, vehicle);
}
playerVHealth[playerid] = VHealth;
}
}
Re: Function/Callback that detects... -
Torran - 23.01.2010
Wouldnt work for what im wanting it for
Re: Function/Callback that detects... -
Correlli - 24.01.2010
pawn Code:
/* not tested, but it should work*/
forward myTimer();
forward OnVehicleHealthChange(vehicleid, newhealth, oldhealth);
new
oldVehicleHealth[MAX_VEHICLES], newVehicleHealth[MAX_VEHICLES]; // change MAX_VEHICLES to your own vehicle amount.
Float:VehicleHealth(vehicleid)
{
new
Float:health;
GetVehicleHealth(vehicleid, health);
return health;
}
public myTimer()
{
for(new v = 1; v <= MAX_VEHICLES; v++) // change MAX_VEHICLES to your own vehicle amount or use foreach function.
{
newVehicleHealth[v] = floatround(VehicleHealth(v));
if(newVehicleHealth[v] != oldVehicleHealth[v])
{
OnVehicleHealthChange(v, newVehicleHealth[v], oldVehicleHealth[v]);
oldVehicleHealth[v] = newVehicleHealth[v];
}
}
return true;
}
public OnVehicleHealthChange(vehicleid, newhealth, oldhealth)
{
if(newhealth < oldhealth)
{
// damage..
}
return true;
}
// under OnGameModeInit/OnFilterScriptInit-callback.
SetTimer("myTimer", 1000, true); // every second.
Re: Function/Callback that detects... -
Torran - 24.01.2010
Quote:
Originally Posted by Don Correlli
pawn Code:
/* not tested, but it should work*/
forward myTimer(); forward OnVehicleHealthChange(vehicleid, newhealth, oldhealth);
new oldVehicleHealth[MAX_VEHICLES], newVehicleHealth[MAX_VEHICLES]; // change MAX_VEHICLES to your own vehicle amount.
Float:VehicleHealth(vehicleid) { new Float:health; GetVehicleHealth(vehicleid, health); return health; }
public myTimer() { for(new v = 1; v <= MAX_VEHICLES; v++) // change MAX_VEHICLES to your own vehicle amount or use foreach function. { newVehicleHealth[v] = floatround(VehicleHealth(v)); if(newVehicleHealth[v] != oldVehicleHealth[v]) { OnVehicleHealthChange(v, newVehicleHealth[v], oldVehicleHealth[v]); oldVehicleHealth[v] = newVehicleHealth[v]; } } return true; }
public OnVehicleHealthChange(vehicleid, newhealth, oldhealth) { return true; }
// under OnGameModeInit/OnFilterScriptInit-callback. SetTimer("myTimer", 1000, true); // every second.
|
Still wouldnt work for what i want it for xd
Re: Function/Callback that detects... -
Correlli - 24.01.2010
Quote:
Originally Posted by Torran
Still wouldnt work for what i want it for xd
|
And what do you want it for?
Re: Function/Callback that detects... -
Torran - 24.01.2010
Quote:
Originally Posted by Don Correlli
Quote:
Originally Posted by Torran
Still wouldnt work for what i want it for xd
|
And what do you want it for?
|
http://forum.sa-mp.com/index.php?topic=148011.0
Re: Function/Callback that detects... -
Correlli - 24.01.2010
I already gave you the correct code.
Re: Function/Callback that detects... -
Torran - 24.01.2010
Quote:
Originally Posted by Don Correlli
I already gave you the correct code.
|
I mean, It wouldnt work for planes, Like hitting buildings, Or rockets or something like that
Re: Function/Callback that detects... -
Correlli - 24.01.2010
How about if you try it out before you post again?