26.05.2016, 17:42
(
Last edited by AbyssMorgan; 01/11/2019 at 07:55 AM.
Reason: Update v2.3.1
)
Hi I would like to present include for Missile Launcher.
Video:
1. Sniper Missile
2. Vehicle Missile (MapAndreas Version)
3. Vehicle Missile (ColAndreas Update)
4. Marica Mortar V1
5. Heavy Marica Mortar
6. Missile Launcher Aim Player
7. Congreve Rocket
8. Marica Mortar V2
9. New Vehicle Missile
10. Flares
Functions:
Callbacks:
Example Code:
Bullet example:
How to check is player kill by missile (this is not required if you using custom missile damage):
Download:
Missile.inc
3DTryg.inc Thread
ColAndreas Plugin
See also Vehicle Missile Launcher
Non-Registered Users:
Bug Report
Video:
1. Sniper Missile
2. Vehicle Missile (MapAndreas Version)
3. Vehicle Missile (ColAndreas Update)
4. Marica Mortar V1
5. Heavy Marica Mortar
6. Missile Launcher Aim Player
7. Congreve Rocket
8. Marica Mortar V2
9. New Vehicle Missile
10. Flares
Functions:
PHP Code:
Missile::Launch(type,Float:detection_range,Float:explode_radius,Float:speed,Float:x,Float:y,Float:z,worldid,interiorid,playerid,
Float:streamdistance,missile_object,Float:tx,Float:ty,Float:tz,byplayerid=INVALID_PLAYER_ID,teamid=ANY_TEAM,
bool:remote=false,remote_count=MAX_MISSILE_REMOTE_TARGET,remote_height=1.0,Float:arc_roll=0.0,Float:damage=-1.0,
Float:vehicle_damage=-1.0);
type - explosion type //https://sampwiki.blast.hk/wiki/Explosion_List
Float:detection_range - detection range player/vehicle
Float:explode_radius - the explosion range (the same as in CreateExplosion)
Float:speed - projectile speed
Float:x, Float:y, Float:z - Starting position
worldid, interiorid, playerid, Float:streamdistance - the same as in CreateDynamicObject
missile_object: MISSILE_OBJECT_NORMAL / MISSILE_OBJECT_BIG / MISSILE_OBJECT_HYDRA / MISSILE_OBJECT_BOMB / MISSILE_OBJECT_BOMB_STATIC / MISSILE_OBJECT_FLARE
Float:tx, Float:ty, Float:tz - Target position
byplayerid - selected player will be immune to detection range
teamid - player team will be immune to detection range
remote - enable remote targeting (for Vehicle Missile Mortar)
remote_count - number of remote targeting 1 - 32
remote_height - arc height
arc_roll - rotation Y axis
Float:damage - player damage on explosion created
Float:vehicle_damage - vehicle damage on explosion created
Rotation: Auto!
MissileLaunchAimPlayer(targetid,type,Float:detection_range,Float:explode_radius,Float:speed,Float:x,Float:y,Float:z,
worldid,interiorid,playerid,Float:streamdistance,missile_object,Float:tx,Float:ty,Float:tz,
byplayerid=INVALID_PLAYER_ID,teamid=ANY_TEAM,Float:damage=-1.0,Float:vehicle_damage=-1.0);
MissileRemoteTarget(mobid,Float:tx,Float:ty,Float:tz,Float:speed = 0.0);
Missile::Destroy(mobid);
mobid - id returned by Missile::Launch
Missile::StopAimPlayer(mobid);
Missile::GetExplodeVisibility();
Missile::SetExplodeVisibility(Float:explode_stream);
Missile::DisableAllAim(playerid);
PHP Code:
OnMissileDestroy(mobid,Float:x,Float:y,Float:z,type,killerid,byplayerid);
types:
MISSILE_DESTROY_TYPE_TARGET //When rocket reaches its destination (always killerid=INVALID_PLAYER_ID)
MISSILE_DESTROY_TYPE_DETECT //When rocket has been destroyed by detection range
MISSILE_DESTROY_TYPE_KILL //When rocket has been destroyed by player
OnMissileDetectPlayer(playerid,killerid); //called when a player is within range of detection range
OnMissileRequestLaunch(Float:x,Float:y,Float:z,playerid,targetid);
PHP Code:
public OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ){
if(weaponid == 34){
new Float:x, Float:y, Float:z,
Float:tx, Float:ty, Float:tz,
Float:rx, Float:rz,
vw, int, Float:dist;
GetPlayerPos(playerid,x,y,z);
GetRotationFor2Point3D(x,y,z,fX,fY,fZ,rx,rz);
dist = GetDistanceBetweenPoints3D(x,y,z,fX,fY,fZ);
vw = GetPlayerVirtualWorld(playerid);
int = GetPlayerInterior(playerid);
GetPointInFront3D(x,y,z,rx,rz,4.0,tx,ty,tz);
Missile::Launch(MISSILE_TYPE_EXPLODE_HUGE,4.0,25.0,35.0,tx,ty,tz,vw,int,-1,300.0,MISSILE_OBJECT_HYDRA,fX,fY,fZ,playerid,.damage=100.0,.vehicle_damage=1000.0);
GetPointInFront3D(x,y,z,rx,rz,3.0,tx,ty,tz);
Missile::Launch(MISSILE_TYPE_EXPLODE_HUGE,4.0,25.0,35.0,tx,ty,tz+3.0,vw,int,-1,300.0,MISSILE_OBJECT_HYDRA,fX,fY,fZ+3.0,playerid,.damage=100.0,.vehicle_damage=1000.0);
Missile::Launch(MISSILE_TYPE_EXPLODE_HUGE,4.0,25.0,35.0,tx,ty,tz-3.0,vw,int,-1,300.0,MISSILE_OBJECT_HYDRA,fX,fY,fZ-3.0,playerid,.damage=100.0,.vehicle_damage=1000.0);
GetPointInFront3D(tx,ty,tz,rx,rz+90.0,3.0,x,y,z);
GetPointInFront3D(x,y,z,rx,rz,dist,fX,fY,fZ);
Missile::Launch(MISSILE_TYPE_EXPLODE_HUGE,4.0,25.0,35.0,x,y,z,vw,int,-1,300.0,MISSILE_OBJECT_HYDRA,fX,fY,fZ,playerid,.damage=100.0,.vehicle_damage=1000.0);
GetPointInFront3D(tx,ty,tz,rx,rz-90.0,3.0,x,y,z);
GetPointInFront3D(x,y,z,rx,rz,dist,fX,fY,fZ);
Missile::Launch(MISSILE_TYPE_EXPLODE_HUGE,4.0,25.0,35.0,x,y,z,vw,int,-1,300.0,MISSILE_OBJECT_HYDRA,fX,fY,fZ,playerid,.damage=100.0,.vehicle_damage=1000.0);
}
return 1;
}
PHP Code:
Missile::Launch(MISSILE_TYPE_EXPLODE_NONE,1.0,1.0,20.0,Float:x,Float:y,Float:z,worldid,interiorid,playerid,Float:streamdistance,MISSILE_OBJECT_BULLET,Float:tx,Float:ty,Float:tz,byplayerid=INVALID_PLAYER_ID,teamid=ANY_TEAM,.damage=5.0,.vehicle_damage=25.0);
PHP Code:
enums:
last_missile_shot
last_missile_player
public OnMissileDestroy(mobid,Float:x,Float:y,Float:z,type,killerid,byplayerid){
if(type == MISSILE_DESTROY_TYPE_DETECT && killerid != INVALID_PLAYER_ID){
PlayerInfo[killerid][last_missile_shot] = GetTickCount();
PlayerInfo[killerid][last_missile_player] = byplayerid;
}
return 1;
}
public OnMissileDetectPlayer(playerid,killerid){
if(killerid != INVALID_PLAYER_ID){
PlayerInfo[playerid][last_missile_shot] = GetTickCount();
PlayerInfo[playerid][last_missile_player] = killerid;
}
return 1;
}
public OnPlayerDeath(playerid, killerid, reason){
if(PlayerInfo[playerid][last_missile_player] != INVALID_PLAYER_ID && reason > 46 && playerid != killerid){
if(GetTickCount()-PlayerInfo[playerid][last_missile_shot] < 2000){
killerid = PlayerInfo[playerid][last_missile_player];
reason = 51;
}
}
//your code
return 1;
}
Missile.inc
3DTryg.inc Thread
ColAndreas Plugin
See also Vehicle Missile Launcher
Non-Registered Users:
Bug Report