Need help with Vehicle Missiles. -
techg9 - 25.04.2013
Hey guys,
I am trying to make a Missile that will be shoot from a vehicle by clicking the "KEY_FIRE" key.
So I want to ask if there is any way to create like a hunter missile that will explode when hitting a car or a wall...
(Like the exploding barrel)
BTW I saw this tread
https://sampforum.blast.hk/showthread.php?tid=229111 and I need something else... because as far as I know, this script will explode by a timer.
Thanks again guys =)
Re: Need help with Vehicle Missiles. -
techg9 - 25.04.2013
Bump + if an objects explode on a player and kill him, that's making the object id equal to the killerid?
Re: Need help with Vehicle Missiles. -
techg9 - 26.04.2013
Bump.
I did this, and for some reason its not working.
PHP код:
GetVehiclePos(GetPlayerVehicleID(playerid), OldMoveCor[playerid][0], OldMoveCor[playerid][1], OldMoveCor[playerid][2]);
GetVehicleZAngle(GetPlayerVehicleID(playerid), OldMoveCor[playerid][3]);
//1225
MissileID[playerid] = CreateObject(354,OldMoveCor[playerid][0],OldMoveCor[playerid][1],OldMoveCor[playerid][2],0.0000000,90.0000000,OldMoveCor[playerid][3]);
Код HTML:
//========================================[North West]======================================//
if(floatcmp(OldMoveCor[playerid][3], 0.0) == 1 && floatcmp(OldMoveCor[playerid][3], 90.0) == -1) // -x, +y
{
NewMoveCor[playerid][0] = OldMoveCor[playerid][0] - 500.0; // X щмймй
OldMoveCor[playerid][0] = floatmul(OldMoveCor[playerid][0], -1.0);
NewMoveCor[playerid][1] = floatsub(NewMoveCor[playerid][0], OldMoveCor[playerid][0]);
if(NewMoveCor[playerid][1] > 0.0)
NewMoveCor[playerid][1] = floatadd(OldMoveCor[playerid][3],NewMoveCor[playerid][1]);
else
NewMoveCor[playerid][1] = floatsub(OldMoveCor[playerid][3],NewMoveCor[playerid][1]);
if(OldMoveCor[playerid][1] > 0.0)
NewMoveCor[playerid][1] = floatadd(NewMoveCor[playerid][1], OldMoveCor[playerid][1]);
else
NewMoveCor[playerid][1] = floatsub(NewMoveCor[playerid][1], OldMoveCor[playerid][1]);
MoveObject(MissileID[playerid], NewMoveCor[playerid][0], NewMoveCor[playerid][1], OldMoveCor[playerid][2], 100.00);
}
else
//========================================[South West]======================================//
if(floatcmp(OldMoveCor[playerid][3], 90.0) == 1 && floatcmp(OldMoveCor[playerid][3], 180.0) == -1) // -x, -y
{
NewMoveCor[playerid][0] = OldMoveCor[playerid][0] - 500.0; // X щмймй
OldMoveCor[playerid][0] = floatmul(OldMoveCor[playerid][0], -1.0);
NewMoveCor[playerid][1] = floatsub(NewMoveCor[playerid][0], OldMoveCor[playerid][0]);
if(NewMoveCor[playerid][1] > 0.0)
NewMoveCor[playerid][1] = floatadd(OldMoveCor[playerid][3],NewMoveCor[playerid][1]);
else
NewMoveCor[playerid][1] = floatsub(OldMoveCor[playerid][3],NewMoveCor[playerid][1]);
if(OldMoveCor[playerid][1] > 0.0)
NewMoveCor[playerid][1] = floatadd(NewMoveCor[playerid][1], OldMoveCor[playerid][1]);
else
NewMoveCor[playerid][1] = floatsub(NewMoveCor[playerid][1], OldMoveCor[playerid][1]);
MoveObject(MissileID[playerid], NewMoveCor[playerid][0], NewMoveCor[playerid][1], OldMoveCor[playerid][2], 100.00);
}
else
//========================================[South East]======================================//
if(floatcmp(OldMoveCor[playerid][3], 180.0) == 1 && floatcmp(OldMoveCor[playerid][3], 270.0) == -1) // +x, -y
{
NewMoveCor[playerid][0] = OldMoveCor[playerid][0] + 500.0; // X щмймй
OldMoveCor[playerid][0] = floatmul(OldMoveCor[playerid][0], -1.0);
NewMoveCor[playerid][1] = floatsub(NewMoveCor[playerid][0], OldMoveCor[playerid][0]);
if(NewMoveCor[playerid][1] > 0.0)
NewMoveCor[playerid][1] = floatadd(OldMoveCor[playerid][3],NewMoveCor[playerid][1]);
else
NewMoveCor[playerid][1] = floatsub(OldMoveCor[playerid][3],NewMoveCor[playerid][1]);
if(OldMoveCor[playerid][1] > 0.0)
NewMoveCor[playerid][1] = floatadd(NewMoveCor[playerid][1], OldMoveCor[playerid][1]);
else
NewMoveCor[playerid][1] = floatsub(NewMoveCor[playerid][1], OldMoveCor[playerid][1]);
MoveObject(MissileID[playerid], NewMoveCor[playerid][0], NewMoveCor[playerid][1], OldMoveCor[playerid][2], 100.00);
}
else
//========================================[North East]======================================//
if(floatcmp(OldMoveCor[playerid][3], 270.0) == 1 && floatcmp(OldMoveCor[playerid][3], 360.0) == -1) // +x, +y
{
NewMoveCor[playerid][0] = OldMoveCor[playerid][0] + 500.0; // X щмймй
OldMoveCor[playerid][0] = floatmul(OldMoveCor[playerid][0], -1.0);
NewMoveCor[playerid][1] = floatsub(NewMoveCor[playerid][0], OldMoveCor[playerid][0]);
if(NewMoveCor[playerid][1] > 0.0)
NewMoveCor[playerid][1] = floatadd(OldMoveCor[playerid][3],NewMoveCor[playerid][1]);
else
NewMoveCor[playerid][1] = floatsub(OldMoveCor[playerid][3],NewMoveCor[playerid][1]);
if(OldMoveCor[playerid][1] > 0.0)
NewMoveCor[playerid][1] = floatadd(NewMoveCor[playerid][1], OldMoveCor[playerid][1]);
else
NewMoveCor[playerid][1] = floatsub(NewMoveCor[playerid][1], OldMoveCor[playerid][1]);
MoveObject(MissileID[playerid], NewMoveCor[playerid][0], NewMoveCor[playerid][1], OldMoveCor[playerid][2], 100.00);
}
The missile is flying in the wrong direction.