SA-MP Forums

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

Reply
 
Thread Tools Display Modes
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
Old 26/05/2016, 07:57 PM   #2
Ivan_Ino
Big Clucker
 
Join Date: Oct 2012
Location: Croatia
Posts: 101
Reputation: 120
Default Re: Missile Launcher

Good work.. I made this before long time for my server, xD
rep+ for 3DTryg and all this aswell
Ivan_Ino is offline   Reply With Quote
Old 27/05/2016, 06:08 AM   #3
Amunra
Gangsta
 
Amunra's Avatar
 
Join Date: Nov 2015
Location: Indonesian
Posts: 502
Reputation: 12
Default Re: Missile Launcher

Wow.. Amazing ...
I Like your Job Man ...
__________________
Legendary Criminals


Amunra is offline   Reply With Quote
Old 16/06/2016, 02:41 PM   #4
AbyssMorgan
Banned
 
Join Date: Apr 2015
Location: Poland
Posts: 1,213
Reputation: 352
Default Re: Missile Launcher

Update 1.2:
Added additional parameters:

Code:
MissileLaunch(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); 

byplayerid - selected player will be immune to detection range
teamid - player team will be immune to detection range
AbyssMorgan is offline   Reply With Quote
Old 18/06/2016, 08:00 PM   #5
AbyssMorgan
Banned
 
Join Date: Apr 2015
Location: Poland
Posts: 1,213
Reputation: 352
Default Re: Missile Launcher

Update v1.3:

Added callback:
PHP Code:
OnMissileDestroy(mobid,Float:x,Float:y,Float:z,type,killerid); 
Fix auto rotation for MISSILE_OBJECT_HYDRA
AbyssMorgan is offline   Reply With Quote
Old 19/06/2016, 09:37 PM   #6
AbyssMorgan
Banned
 
Join Date: Apr 2015
Location: Poland
Posts: 1,213
Reputation: 352
Default Re: Missile Launcher

Update v1.4:
- Added extended functions:
PHP Code:
Float:GetMissileExplodeVisibility();
SetMissileExplodeVisibility(Float:explode_stream); 
- Added version number
AbyssMorgan is offline   Reply With Quote
Old 22/06/2016, 07:30 PM   #7
AbyssMorgan
Banned
 
Join Date: Apr 2015
Location: Poland
Posts: 1,213
Reputation: 352
Default Re: Missile Launcher

Update v1.5B:
- Added callback:
PHP Code:
OnMissileDetectPlayer(playerid,killerid); 
- Fixed exploding rockets by passengers when they were fired from a vehicle @VehicleMissile.inc

Last edited by AbyssMorgan; 23/06/2016 at 08:20 AM.
AbyssMorgan is offline   Reply With Quote
Old 23/06/2016, 01:07 PM   #8
AbyssMorgan
Banned
 
Join Date: Apr 2015
Location: Poland
Posts: 1,213
Reputation: 352
Default Re: Missile Launcher

Update v1.6:
- Again fix rotation for MISSILE_OBJECT_HYDRA
- Fixed identification missile between scripts
- Changed value INVALID_MISSILE_ID from -1 to 0
AbyssMorgan is offline   Reply With Quote
Old 16/07/2016, 08:53 AM   #9
AbyssMorgan
Banned
 
Join Date: Apr 2015
Location: Poland
Posts: 1,213
Reputation: 352
Default Re: Missile Launcher

Update v1.6.4

- Added new params for MissileLaunch
Code:
MissileLaunch(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);
- Added function:
PHP Code:
MissileRemoteTarget(mobid,Float:tx,Float:ty,Float:tz,Float:speed 0.0); 
- Added Definitions:
PHP Code:
MAX_MISSILE_REMOTE_TARGET 
- Timers removed, replaced OnDynamicObjectMoved
AbyssMorgan is offline   Reply With Quote
Old 16/07/2016, 03:37 PM   #10
Freaksken
Gangsta
 
Freaksken's Avatar
 
Join Date: Mar 2009
Location: Belgium
Posts: 501
Reputation: 367
Default Re: Missile Launcher

Not anything I would use, but good job nonetheless!
__________________
Always keep in mind that a lot of people are active on this forum in their spare time.
They are sacrificing time they could easily spend on things they would rather do, to help you instead.


[Include] FCNPC A.I. - [Tutorial] Speedometer - [WIP] Single-player-like co-op mission - [Other] List of all my work
Freaksken is offline   Reply With Quote
Reply

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 07:45 PM.


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