19.01.2014, 19:33
(
Last edited by Admigo; 20/01/2018 at 09:19 AM.
)
Hello.
Since i saw the great features of the new sa-mp 0.3z RC update i was thinking about detecting wheels and the petrol cap from all vehicles.
Whats new?
This include will add a new callback and new natives:
How to use?
1. Download the a_vshot.zip and extract it in the sa-mp folder.
2. Add #include <a_vshot.inc> on the top of your script
3. Add public OnPlayerShootVehiclePart(playerid, weaponid, vehicleid,hittype) in your script.
Example
This is an example how you can use this callback.
Example 1
Videos
http://www.youtube.com/watch?v=65I1y8hbWbk
Changelog
Future Updates
Downloads
Version 2.1 (Latest)
https://dl.dropboxusercontent.com/u/...vshot_v2.1.zip
http://pastebin.com/6nUTazQR
Version 2.0
https://dl.dropboxusercontent.com/u/...a_vshot_v2.zip
http://pastebin.com/bJpdge4T
Version 1.0
https://dl.dropboxusercontent.com/u/...98/a_vshot.zip
http://pastebin.com/Sf3ybSUt
Notice
- Not all vehicles have the right offset for the vehicle parts (Wheels only). I will improve the offsets later.
- Explosive and Melee weapons will not do any damage to the vehicles.
Credits
- Admigo(Scripting)
- pds2k12(Fixed the callbacks hooks)
Since i saw the great features of the new sa-mp 0.3z RC update i was thinking about detecting wheels and the petrol cap from all vehicles.
Whats new?
This include will add a new callback and new natives:
pawn Code:
#define BULLET_HIT_PETROL_TANK 0
#define BULLET_HIT_LEFT_FRONT_WHEEL 1
#define BULLET_HIT_RIGHT_FRONT_WHEEL 2
#define BULLET_HIT_LEFT_BACK_WHEEL 3
#define BULLET_HIT_RIGHT_BACK_WHEEL 4
#define BULLET_HIT_BODY 5
//GetVehicleTireStatus
#define VEHICLE_RIGHT_BACK_WHEEL 0
#define VEHICLE_RIGHT_FRONT_WHEEL 1
#define VEHICLE_LEFT_BACK_WHEEL 2
#define VEHICLE_LEFT_FRONT_WHEEL 3
//Callbacks
forward OnPlayerShootVehiclePart(playerid, weaponid, vehicleid,hittype);
//Natives
native EnableVehicleDamage(true/false); //Add this under OnGamemodeInit/OnFilterscriptInit to enable/disable.
native EnableVehiclePetrolCapExplosion(true/false);//Add this under OnGamemodeInit/OnFilterscriptInit to enable/disable.
native EnableVehicleWheelTirePop(true/false);//Add this under OnGamemodeInit/OnFilterscriptInit to enable/disable.
native ToggleVehicleDamage();//Toggle Vehicle Damage
native ToggleVehiclePetrolCapExplosion();//Toggle Vehicle Petrol Cap Explosion
native ToggleVehicleWheelTirePop();//Toggle Vehicle Wheel Tire Pop
native GetVehicleTireStatus(Vehicleid,Tire);//Checking the Vehicle Tire Status (Return 1 : Tire Popped - Return 0 : Tire Unpopped)
1. Download the a_vshot.zip and extract it in the sa-mp folder.
2. Add #include <a_vshot.inc> on the top of your script
3. Add public OnPlayerShootVehiclePart(playerid, weaponid, vehicleid,hittype) in your script.
Example
This is an example how you can use this callback.
Example 1
pawn Code:
public OnPlayerShootVehiclePart(playerid, weaponid, vehicleid,hittype)
{
if(hittype==BULLET_HIT_PETROL_TANK)//When player shoots on the petrol cap of a vehicle
{
new Float:vPosx,Float:vPosy,Float:vPosz;
GetVehiclePos(vehicleid, vPosx,vPosy,vPosz);
CreateExplosion(vPosx,vPosy,vPosz, 6, 30.0);
SetVehicleToRespawn(vehicleid);
SendClientMessage(playerid,-1,"You have hit the PETROL CAP!");
return 1;
}
if(hittype==BULLET_HIT_LEFT_FRONT_WHEEL)//When player shoots on the left front wheel of a vehicle
{
if(GetVehicleTireStatus(vehicleid,VEHICLE_LEFT_FRONT_WHEEL)==0)
{
SetVehicleTireStatus(vehicleid,VEHICLE_LEFT_FRONT_WHEEL);//will pop the left front wheel tire
SendClientMessage(playerid,-1,"You have hit the LEFT FRONT WHEEL!");
return 1;
}
else SendClientMessage(playerid,-1,"The LEFT FRONT WHEEL TIRE is already popped!");
}
if(hittype==BULLET_HIT_RIGHT_FRONT_WHEEL)//When player shoots on the right front wheel of a vehicle
{
if(GetVehicleTireStatus(vehicleid,VEHICLE_RIGHT_FRONT_WHEEL)==0)
{
SetVehicleTireStatus(vehicleid,VEHICLE_RIGHT_FRONT_WHEEL);//will pop the right front wheel tire
SendClientMessage(playerid,-1,"You have hit the RIGHT FRONT WHEEL!");
return 1;
}
else SendClientMessage(playerid,-1,"The RIGHT FRONT WHEEL TIRE is already popped!");
}
if(hittype==BULLET_HIT_LEFT_BACK_WHEEL)//When player shoots on the left back wheel of a vehicle
{
if(GetVehicleTireStatus(vehicleid,VEHICLE_LEFT_BACK_WHEEL)==0)
{
SetVehicleTireStatus(vehicleid,VEHICLE_LEFT_BACK_WHEEL);//will pop the left back wheel tire
SendClientMessage(playerid,-1,"You have hit the LEFT BACK WHEEL!");
return 1;
}
else SendClientMessage(playerid,-1,"The LEFT BACK WHEEL TIRE is already popped!");
}
if(hittype==BULLET_HIT_RIGHT_BACK_WHEEL)//When player shoots on the right back wheel of a vehicle
{
if(GetVehicleTireStatus(vehicleid,VEHICLE_RIGHT_BACK_WHEEL)==0)
{
SetVehicleTireStatus(vehicleid,VEHICLE_RIGHT_BACK_WHEEL);//will pop the right back wheel tire
SendClientMessage(playerid,-1,"You have hit the RIGHT BACK WHEEL!");
return 1;
}
else SendClientMessage(playerid,-1,"The RIGHT BACK WHEEL TIRE is already popped!");
}
if(hittype==BULLET_HIT_BODY)//When player shoots on a vehicle
{
SendClientMessage(playerid,-1,"You have hit the VEHICLE!");
return 1;
}
return 1;
}
http://www.youtube.com/watch?v=65I1y8hbWbk
Changelog
Code:
2.1 - Added native ToggleVehicleDamage(); - Added native ToggleVehiclePetrolCapExplosion(); - Added native ToggleVehicleWheelTirePop(); - Added native GetVehicleTireStatus(Vehicleid,Tire); - Added new defines that can be used for GetVehiveTireStatus: #define VEHICLE_RIGHT_BACK_WHEEL #define VEHICLE_RIGHT_FRONT_WHEEL #define VEHICLE_LEFT_BACK_WHEEL #define VEHICLE_LEFT_FRONT_WHEEL - Changed native EnableVehicleDamage(toggle);//now with toggle (true/false) - Changed native EnableVehiclePetrolCapExplosion(toggle);//now with toggle (true/false) - Changed native EnableVehicleWheelTirePop(toggle);//now with toggle (true/false) - Fixed: Tires didnt popped good. 2.0 - Added EnableVehicleDamage(); - Added EnableVehiclePetrolCapExplosion(); - Added EnableVehicleWheelTirePop(); - Changed the define BULLET_HIT_VEHICLE to BULLET_HIT_BODY - Fixed the Petrol Caps offsets. The Petrol Caps is now accurate. 1.0 - First Release
pawn Code:
- Improving Vehicle Parts offsets
- Adding bike support
- Adding middle wheels support (Thanks to king_hual for the suggestion)
- Adding more vehicle parts
Version 2.1 (Latest)
https://dl.dropboxusercontent.com/u/...vshot_v2.1.zip
http://pastebin.com/6nUTazQR
Version 2.0
https://dl.dropboxusercontent.com/u/...a_vshot_v2.zip
http://pastebin.com/bJpdge4T
Version 1.0
https://dl.dropboxusercontent.com/u/...98/a_vshot.zip
http://pastebin.com/Sf3ybSUt
Notice
- Not all vehicles have the right offset for the vehicle parts (Wheels only). I will improve the offsets later.
- Explosive and Melee weapons will not do any damage to the vehicles.
Credits
- Admigo(Scripting)
- pds2k12(Fixed the callbacks hooks)