[Include] [0.3z]a_OnPlayerShootVehiclePart
#1

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:
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)
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
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;
}
Videos
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
Future Updates
pawn Code:
- Improving Vehicle Parts offsets
- Adding bike support
- Adding middle wheels support (Thanks to king_hual for the suggestion)
- Adding more vehicle parts
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)
Reply


Messages In This Thread
[0.3z]a_OnPlayerShootVehiclePart - by Admigo - 19.01.2014, 19:33
Respuesta: [0.3z]a_OnPlayerShootVehiclePart - by Swedky - 19.01.2014, 19:37
Re: [0.3z]a_OnPlayerShootVehiclePart - by Patrick - 19.01.2014, 19:39
Re: [0.3z]a_OnPlayerShootVehiclePart - by Admigo - 19.01.2014, 19:45
Re: [0.3z]a_OnPlayerShootVehiclePart - by KingHual - 19.01.2014, 19:51
Re: [0.3z]a_OnPlayerShootVehiclePart - by Pottus - 19.01.2014, 20:05
Re: [0.3z]a_OnPlayerShootVehiclePart - by Admigo - 19.01.2014, 20:13
Re: [0.3z]a_OnPlayerShootVehiclePart - by Akcent_Voltaj - 20.01.2014, 14:26
Re: [0.3z]a_OnPlayerShootVehiclePart - by iZN - 20.01.2014, 15:24
Re: [0.3z]a_OnPlayerShootVehiclePart - by Lordzy - 20.01.2014, 15:58
Re: [0.3z]a_OnPlayerShootVehiclePart - by PaulDinam - 20.01.2014, 18:17
Re: [0.3z]a_OnPlayerShootVehiclePart - by Admigo - 20.01.2014, 20:13
Re: [0.3z]a_OnPlayerShootVehiclePart - by Kar - 21.01.2014, 00:10
Re: [0.3z]a_OnPlayerShootVehiclePart - by Admigo - 21.01.2014, 07:33
Re: [0.3z]a_OnPlayerShootVehiclePart - by PaulDinam - 21.01.2014, 15:15
Re: [0.3z]a_OnPlayerShootVehiclePart - by Ace155 - 21.01.2014, 15:55
Re: [0.3z]a_OnPlayerShootVehiclePart - by Admigo - 21.01.2014, 16:22
Re: [0.3z]a_OnPlayerShootVehiclePart - by Diesel5 - 21.01.2014, 17:25
Re: [0.3z]a_OnPlayerShootVehiclePart - by Admigo - 21.01.2014, 20:37
Re: [0.3z]a_OnPlayerShootVehiclePart - by PT - 21.01.2014, 20:47
Re: [0.3z]a_OnPlayerShootVehiclePart - by Kar - 21.01.2014, 20:58
Re: [0.3z]a_OnPlayerShootVehiclePart - by Admigo - 21.01.2014, 21:03
Re: [0.3z]a_OnPlayerShootVehiclePart - by Kar - 21.01.2014, 23:12
Re: [0.3z]a_OnPlayerShootVehiclePart - by Mauzen - 21.01.2014, 23:25
Re: [0.3z]a_OnPlayerShootVehiclePart - by Kar - 21.01.2014, 23:48
Re: [0.3z]a_OnPlayerShootVehiclePart - by Pottus - 22.01.2014, 03:17
Re: [0.3z]a_OnPlayerShootVehiclePart - by Luis- - 22.01.2014, 13:58
Re: [0.3z]a_OnPlayerShootVehiclePart - by Admigo - 22.01.2014, 14:30
Re: [0.3z]a_OnPlayerShootVehiclePart - by Admigo - 22.01.2014, 20:55
Re: [0.3z]a_OnPlayerShootVehiclePart - by Kar - 22.01.2014, 22:39
Re: [0.3z]a_OnPlayerShootVehiclePart - by Admigo - 29.01.2015, 16:55
Re: [0.3z]a_OnPlayerShootVehiclePart - by Ritzy2K - 24.02.2015, 18:28
Re: [0.3z]a_OnPlayerShootVehiclePart - by 26_RUSSS - 18.03.2015, 23:29
Re: [0.3z]a_OnPlayerShootVehiclePart - by Abagail - 19.03.2015, 02:30
Re: [0.3z]a_OnPlayerShootVehiclePart - by IzadorO - 18.06.2015, 19:09
Re: [0.3z]a_OnPlayerShootVehiclePart - by TheArcher - 18.06.2015, 19:27

Forum Jump:


Users browsing this thread: 3 Guest(s)