SA-MP Forums

Go Back   SA-MP Forums > SA-MP Scripting and Plugins > Filterscripts > Includes

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Old 26/05/2016, 06:42 PM   #1
AbyssMorgan
Banned
 
Join Date: Apr 2015
Location: Poland
Posts: 1,213
Reputation: 352
Cool Missile Launcher

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:
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://wiki.sa-mp.com/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
:xFloat:yFloat:Starting position
worldid
interioridplayeridFloat: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
:txFloat:tyFloat: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); 
Callbacks:
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); 
Example Code:
PHP Code:
public OnPlayerWeaponShot(playeridweaponidhittypehitidFloat:fXFloat:fYFloat:fZ){
    if(
weaponid == 34){
        new 
Float:xFloat:yFloat:z,
            
Float:txFloat:tyFloat:tz,
            
Float:rxFloat:rz,
            
vwintFloat: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;

Bullet example:
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); 
How to check is player kill by missile (this is not required if you using custom missile damage):
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(playeridkilleridreason){
    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;

Download:
Missile.inc
3DTryg.inc Thread
ColAndreas Plugin

See also Vehicle Missile Launcher


Non-Registered Users:
Bug Report

Last edited by AbyssMorgan; 01/11/2019 at 08:55 AM. Reason: Update v2.3.1
AbyssMorgan is offline   Reply With Quote
 

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Missile Object PCheriyan007 Help Archive 4 31/05/2011 04:49 PM


All times are GMT. The time now is 11:18 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.