Results 1 to 9 of 9

Thread: Predator UAV camera and missiles

  1. #1

    Predator UAV camera and missiles

    I just put together a script for a Predator UAV simulation that I was thinking of using as a killstreak in MP missions. It's a fun MW2 style orbiting camera with TV guided missile that you can steer with the arrow keys. This is purely a virtual unit using camera calculations to perform the simulation.

    Supply a position to the script, the camera will switch to a UAV which will orbit the position, during this time the player can slew the camera around a bit using "move forward", "move backward", "move left" and "move right". To fire a TV guided missile press V. The camera will then switch to a seeker head view while you guide it using the same control scheme. If the player doesn't fire a missile within one minute the script exits.

    Code:
    _pos = _this select 0
    _removeGogs = false
    ?((Daytime < 17) and (Daytime > 7)) : goto "start"
    ?!(player hasweapon "NVGoggles"): _removeGogs = true;
    player removeweapon "NVGoggles"
    player addweapon "NVGoggles"
    player action["NVGoggles"]
    #start
    _theta = random 360
    _r = 900
    _phi = (random 30) + 45
    _vel = 6
    _rx = _r * (sin _theta) * (cos _phi)
    _ry = _r * (cos _theta) * (cos _phi)
    _rz = _r * (sin _phi)
    _camera = "camera" camCreate [(_pos select 0) + _rx, (_pos select 1) + _ry, _rz]
    _camera cameraEffect ["internal","back"]
    _camera camSetTarget _pos
    _camera camSetFOV 0.1
    _camera camCommit 0
    @camCommitted _camera
    _campos = GetPos _camera
    _timeout = _time + 60
    _direction = 1
    ?(random 2 > 1) : _direction = -1
    _tx = _pos select 0
    _ty = _pos select 1
    #orbit
    _theta = _theta + (_direction * 0.0688)
    _theta = _theta mod 360
    _rx = _r * (sin _theta) * (cos _phi)
    _ry = _r * (cos _theta) * (cos _phi)
    _camera camSetPos [(_pos select 0) + _rx, (_pos select 1) + _ry, _rz]
    _camera camSetTarget [_tx,_ty,0]
    _camera camcommit 0
    @camCommitted _camera
    _camera camCommand "Manual on"
    _campos = getpos _camera
    ~0.02
    ?(_camera != _camera) : titletext["","BLACK OUT",0.04]; goto "fire"
    _camera camCommand "Manual off"
    _cx = 15*((getpos _camera select 0)-(_campos select 0))
    _cy = 15*((getpos _camera select 1)-(_campos select 1))
    _tx = _tx + _cx
    _ty = _ty + _cy
    ?(_timeout > _time) : goto "orbit"
    ?(_removeGogs) : player removeweapon "NVGoggles"
    _camera camCommand "Manual on"
    _camera cameraEffect ["Terminate","back"]
    _camera camcommit 0
    @camcommitted _camera
    camDestroy _camera
    exit
    #fire
    titletext["","BLACK IN",10];
    ~0.1
    _pos = [_tx,_ty,0]
    ?(alive _camera): camDestroy _camera
    _camera = "camera" camcreate _campos
    _camera cameraEffect ["internal","back"]
    _camera camSetTarget _pos
    _camera camSetFOV 0.7
    _camera camCommit 0
    titletext["","BLACK IN",0.1];
    @camcommitted _camera
    _vx = _vel * (cos _phi) * -(sin _theta)
    _vy = _vel * (cos _phi) * -(cos _theta)
    _vz = _vel * (sin _phi)
    #approach
    _rz = _rz - _vz
    _camera camsetpos [(_campos select 0) + _vx,(_campos select 1) + _vy,_rz]
    _camera camSetTarget _pos
    _camera camCommit 0
    @camCommitted _camera
    _rx = (_campos select 0)-(_pos select 0)
    _ry = (_campos select 1)-(_pos select 1)
    _phi = ((_campos select 2) atan2 (sqrt((_rx^2)+(_ry^2))))
    _theta = _rx atan2 _ry
    _campos = GetPos _camera
    _camera camCommand "Manual on"
    ~0.02
    _cx = 15*((getpos _camera select 0)-(_campos select 0))
    _cy = 15*((getpos _camera select 1)-(_campos select 1))
    _pos set[0,(_pos select 0) + _cx]
    _pos set[1,(_pos select 1) + _cy]
    _camera camCommand "Manual off"
    _vx = _vel * (cos _phi) * - (sin _theta)
    _vy = _vel * (cos _phi) * - (cos _theta)
    _vz = _vel * (sin _phi)
    ?((getpos _camera select 2) > 1) : goto "approach"
    ?(_removeGogs) : player removeweapon "NVGoggles"
    _camera camCommand "Manual on"
    _camera cameraEffect ["Terminate","back"]
    _camera camcommit 0
    @camcommitted _camera
    camDestroy _camera
    _bang = "maverick" createvehicle [_pos select 0, _pos select 1,0]
    I may add some on screen titletext info like heading, AGL and time to impact etc

    I'd like to add a missile smoke trail which follows the camera. Anyone got a particle array that might be suitable?

    Also is it possible to create a laptop opening/closing animation in the style of the game main menu that would be run before the camera switches to the UAV and when the camera switches back to the player?

    I believe it may be possible to make an AC-130 script in a similar fashion (providing keys to switch weapons is a bit convoluted a dialog may be necessary).

    Oh and yes, I do know that this is all completely unrealistic... "ENEMY PREDATOR MISSILE INCOMING!!!!!"
    Last edited by *Zeewolf*; Apr 30 2012 at 21:50.

  2. #2
    Ok, I got a working cutrsc for an opening laptop by using this description.ext:

    Code:
    class RscTitles
    {
    	class RscLaptopOpen
    	{
    		idd=-1;
    		type=80;
    		movingEnable=1;
    		objects[]={"Laptop"};
    		duration=4;
    		class Laptop
    		{
    			duration=4;
    			model="notebook.p3d";
    			idc=-1;
    			type=83;
    			autoOpen=1;
    			autoZoom=1;
    			animSpeed=2;
    			animation="notebook.rtm";
    			position[]={0,-0.15,0.3};
    			direction[]={"sin 5","sin 20 * cos 5","cos 20 * cos 5"};
    			up[]={0,"cos 20","-sin 20"};
    			positionBack[]={0,-0.04,0.6};
    			inBack=0;
    			enableZoom=0;
    			zoomDuration=1;
    			scale=1;
    		};
    	};
    };
    But I can't get an equivalent closing animation. I'm guessing I need to change the phase, does anyone know how?

  3. #3
    I'm afraid game engine does that automatically for it's own purposes. Create a standard 3D dialog from the bin\Resource and you'll notice there's no closing animation.

    The workaround would be to define a second object with separate reversed animation.

  4. #4
    Thanks, I managed to get it working by creating a reversed version in RtmToolbox.

    Finally got round to play testing this today. Had it running as part of an oddball MP mission as an action available to the flag carrier. It worked very well, as did a basic killcam script I tested at the same time. The main feedback I got from players was that they preferred to have the initial camera feed focus on them rather than a selected map grid as it was much less disorienting in high speed game play.

    Some other refinements to the script are;
    A boost function that doubles the speed of the "missile" when you press V while it's already in-flight.
    Orbit view now cancelled if the player dies.
    Some on screen text gubbins (AGL, bearing, bingo/time to target).

    Code:
    _pos = getpos player
    cutrsc["RscLaptopOpen","PLAIN"]
    _removeGogs = false
    ?((Daytime < 17) and (Daytime > 7)) : goto "start"
    ?!(player hasweapon "NVGoggles"): _removeGogs = true;
    player removeweapon "NVGoggles"
    player addweapon "NVGoggles"
    player action["NVGoggles"]
    #start
    ~0.5
    _theta = random 360
    _vel = 6
    _r = 500
    _phi = (random 30) + 45
    _rx = _r * (sin _theta) * (cos _phi)
    _ry = _r * (cos _theta) * (cos _phi)
    _rz = _r * (sin _phi)
    _camera = "camera" camCreate [(_pos select 0) + _rx, (_pos select 1) + _ry, _rz]
    _camera cameraEffect ["internal","back"]
    _camera camSetTarget _pos
    _camera camSetFOV 0.1
    _camera camCommit 0
    @camCommitted _camera
    cutrsc["Default","PLAIN"]
    _campos = GetPos _camera
    _timeout = _time + 60
    _direction = 1
    ?(random 2 > 1) : _direction = -1
    _tx = _pos select 0
    _ty = _pos select 1
    _i = 0
    #orbit
    _theta = _theta + (_direction * 0.0688)
    _theta = _theta mod 360
    _rx = _r * (sin _theta) * (cos _phi)
    _ry = _r * (cos _theta) * (cos _phi)
    _camera camSetPos [(_pos select 0) + _rx, (_pos select 1) + _ry, _rz]
    _camera camSetTarget [_tx,_ty,0]
    _camera camcommit 0
    @camCommitted _camera
    _camera camCommand "Manual on"
    _campos = getpos _camera
    ~0.02
    _i = _i + 1
    ?(_i == 10): _i = 0; titletext[Format["\nHeading: %1                                                                                     %2\nAGL: %3                                                                                          ", (direction _camera) - (direction _camera mod 1),(_timeout - _time),_campos select 2],"PLAIN DOWN",0.05] 
    ?(_camera != _camera): _pos = [_tx,_ty,0]; goto "fire"
    _camera camCommand "Manual off"
    _cx = 15*((getpos _camera select 0)-(_campos select 0))
    _cy = 15*((getpos _camera select 1)-(_campos select 1))
    _tx = _tx + _cx
    _ty = _ty + _cy
    ?((_timeout > _time) and (alive player)) : goto "orbit"
    ?(_removeGogs) : player removeweapon "NVGoggles"
    _camera camCommand "Manual on"
    _camera cameraEffect ["Terminate","back"]
    _camera camcommit 0
    @camcommitted _camera
    camDestroy _camera
    ; Laptop Close animation requires reversed .rtm
    ;cutrsc["RscLaptopClose","PLAIN"]
    ~0.5
    ;cutrsc["Default","PLAIN"]
    exit
    #fire
    titletext["","BLACK IN",10];
    ; broadcast launch to other clients (triggers "enemy predator missile incoming" announcement)
    fxcode = 1
    publicvariable "fxcode"
    ~0.1
    #boost
    ?(alive _camera): camDestroy _camera
    _camera = "camera" camcreate _campos
    _camera cameraEffect ["internal","back"]
    _camera camSetTarget _pos
    _camera camSetFOV 0.7
    _camera camCommit 0
    titletext["","BLACK IN",0.1];
    @camcommitted _camera
    _vx = _vel * (cos _phi) * -(sin _theta)
    _vy = _vel * (cos _phi) * -(cos _theta)
    _vz = _vel * (sin _phi)
    _i = 0
    #approach
    _rz = _rz - _vz
    _camera camsetpos [(_campos select 0) + _vx,(_campos select 1) + _vy,_rz]
    _camera camSetTarget _pos
    _camera camCommit 0
    @camCommitted _camera
    _rx = (_campos select 0)-(_pos select 0)
    _ry = (_campos select 1)-(_pos select 1)
    _distance = (sqrt((_rx^2)+(_ry^2)))
    _phi = (_campos select 2) atan2 _distance
    _theta = _rx atan2 _ry
    _campos = GetPos _camera
    _camera camCommand "Manual on"
    ~0.02
    ?(_camera != _camera):titletext["","BLACK IN",10]; _vel = 12; goto "boost"
    _i = _i + 1
    ?(_i == 10): _i = 0; titletext[Format["\nHeading: %1                                                                                     %2\nAGL: %3                                                                                          ", (direction _camera) - (direction _camera mod 1),(_distance*0.02)/_vel,_campos select 2],"PLAIN DOWN",0.05] 
    _cx = 25*((getpos _camera select 0)-(_campos select 0))
    _cy = 25*((getpos _camera select 1)-(_campos select 1))
    _pos set[0,(_pos select 0) + _cx]
    _pos set[1,(_pos select 1) + _cy]
    _camera camCommand "Manual off"
    _vx = _vel * (cos _phi) * - (sin _theta)
    _vy = _vel * (cos _phi) * - (cos _theta)
    _vz = _vel * (sin _phi)
    ?((getpos _camera select 2) > 1) : goto "approach"
    ?(_removeGogs) : player removeweapon "NVGoggles"
    _camera camCommand "Manual on"
    _camera cameraEffect ["Terminate","back"]
    _camera camcommit 0
    @camcommitted _camera
    camDestroy _camera
    ; Laptop Close animation requires reversed .rtm
    ;cutrsc["RscLaptopClose","PLAIN"]
    _bang = "maverick" createvehicle [_pos select 0, _pos select 1,0]
    ~0.5
    ;cutrsc["Default","PLAIN"]
    exit
    EDIT: New killcam script (I forgot switchcamera worked in MP lol). Call it as a killed eventhandler or from a killed eventhandler e.g. player addeventhandler [{killed} , {_this exec {killcam.sqs}}]

    Code:
    _killer = _this select 1
    
    _killer switchCamera "Internal"
    _killer cameraEffect ["terminate","back"]
    
    _timeout = _time + 5
    #lp
    ~0.1
    ?(_timeout - _time > 0): titletext[format["KillCam %1",_timeout - _time],"PLAIN",0.05];
    ?(_timeout > _time): goto "lp"
    player switchCamera "Internal"
    player cameraEffect ["terminate","back"]
    exit
    I won't be releasing a demo mission for this. This stuff will be in the MWC/Create-A-Class/Killstreak system I'm working on but I'm not committed to publicly releasing that, hence why I thought I'd post these handy scripts.
    Last edited by *Zeewolf*; Jun 2 2012 at 17:00.

  5. #5
    hi,

    Quote Originally Posted by *Zeewolf* View Post
    I'd like to add a missile smoke trail which follows the camera. Anyone got a particle array that might be suitable?
    I wrote a missile smoke script if you are still interested. You may have to tweak the values but it works fine as it is and there's nearly no fps impact. You can also use the function missile_smoke.sqf for vapor trail on plane wings.

    missile_smoke.sqs
    Spoiler:


    missile_smoke.sqf
    Spoiler:


    Nice UAV script BTW

    cya.

    Nikiller.
    Last edited by Nikiller; May 11 2012 at 20:52. Reason: correted code error
    [LOL] ofp/ArmA clan since 2004.
    No Respawns, No Crosshairs, No Muppets.
    Want a good ofp/ArmA2 coop? Visit the [LOL] clan homepage | ofp [LOL] addons pack | ArmA2 [LOL] addons pack

    WW4mod25 sound replacement mod v1.1 | Nikiller's scripts pack

  6. #6
    Thanks for that, the smoke really needs to be shown on all clients, which is really tricky considering that the player can move the target point. I may end up just generating the smoke after the missile has hit (so the final impact point is known) then generate a trail from the impact point to the position it was fired from (i.e. broadcast two positions as publicvariables), or just make a random smoke trail from the impact point to a valid orbit position (i.e. broadcast only one position).

  7. #7

    Reaper script

    So I've put your particle array to good use (there's a bug in your .sqf listing by the way, in the particle array _randpos should be _rdpos and _rdpos should be calculated as (random 2) - 1).

    Here's a script for MW3's "Reaper" strike chain reward. As usual, move forward, backward, left, right pans the camera; but now move up or V cycles the FOV/zoom level, move down fires a "missile" which can be guided to the target by moving the crosshairs around after launch. You get fourteen missiles and one minute to launch them.

    Code:
    _pos = getpos player
    ; Cutrsc for opening laptop
    ;cutrsc["RscLaptopOpen","PLAIN"]
    ; Setup ammo
    _missiles = 14
    _missileStatus = "| | | | | | | | | | | | | |"
    ; Set velocity (300m/s)
    _vel = 6
    ; Setup zoom levels
    _currentFOV = 2
    _zooms = [0.7,0.4,0.1,0.05]
    _panGain = [60,30,10,5]
    ; setup Night vision
    _removeGogs = false
    ?((Daytime < 17) and (Daytime > 7)) : goto "start"
    ?!(player hasweapon "NVGoggles"): _removeGogs = true;
    player removeweapon "NVGoggles"
    player addweapon "NVGoggles"
    player action["NVGoggles"]
    #start
    ~0.5
    ; calculate random azimuth
    _theta = random 360
    ; set radius (500m for MP purposes)
    _r = 500
    ; set polar angle
    _phi = (random 30) + 45
    ; calculate initial cartesian position
    _rx = _r * (sin _theta) * (cos _phi)
    _ry = _r * (cos _theta) * (cos _phi)
    _rz = _r * (sin _phi)
    ; clear laptop cutrsc
    cutrsc["Default","PLAIN"]
    ; create the camera
    _camera = "camera" camCreate [(_pos select 0) + _rx, (_pos select 1) + _ry, _rz]
    _camera cameraEffect ["internal","back"]
    _camera camSetTarget _pos
    _camera camSetFOV 0.1
    _camera camCommit 0
    @camCommitted _camera
    _campos = getPos _camera
    ; set one minute timer
    _timeout = _time + 60
    ; set random orbit direction
    _direction = 1
    ?(random 2 > 1) : _direction = -1
    ; set initial camera target
    _tx = _pos select 0
    _ty = _pos select 1
    ; initialise frame counter
    _i = 0
    #orbit
    ; update azimuth
    _theta = _theta + (_direction * 0.0688)
    _theta = _theta mod 360
    ; update cartesian position
    _rx = _r * (sin _theta) * (cos _phi)
    _ry = _r * (cos _theta) * (cos _phi)
    ; update camera
    _camera camSetPos [(_pos select 0) + _rx, (_pos select 1) + _ry, _rz]
    _camera camSetTarget [_tx,_ty,0]
    _camera camSetFOV (_zooms select _currentFOV)
    _camera camcommit 0
    @camCommitted _camera
    ; set camera to manual until next frame
    _camera camCommand "Manual on"
    ; save current position
    _campos = getpos _camera
    ; wait for next frame
    ~0.02
    ; increment frame counter
    _i = _i + 1
    ; display status every ten frames
    ?(_i == 10): _i = 0; titletext[Format["\nHeading: %1                                     %2                            %3\nAGL: %4                                                                                          ", (direction _camera) - (direction _camera mod 1),_missileStatus, (_timeout - _time),_campos select 2],"PLAIN DOWN",0.05]
    ; detect user pressing V
    ?(_camera != _camera):camdestroy _camera;_ret = "orbit"; goto "zoom"
    ; turn manual mode off
    _camera camCommand "Manual off"
    ; calculate change in camera position due to user input
    _cx = (_panGain select _currentFOV)*((getpos _camera select 0)-(_campos select 0))
    _cy = (_panGain select _currentFOV)*((getpos _camera select 1)-(_campos select 1))
    _cz = (getpos _camera select 2)-(_campos select 2)
    ; update target position
    _tx = _tx + _cx
    _ty = _ty + _cy
    ; calculate change in height due to user input
    ?((_cz < -0.05) and (_cx == 0) and (_cy == 0)): goto "fire"
    ?((_cz > 0.05) and (_cx == 0) and (_cy == 0)): _ret = "orbit"; goto "zoom"
    ; check for timeout and player death
    ?((_timeout > _time) and (alive player)) : goto "orbit"
    ; reset nightvision
    ?(_removeGogs) : player removeweapon "NVGoggles"
    ; terminate and destroy camera
    _camera cameraEffect ["Terminate","back"]
    _camera camcommit 0
    @camcommitted _camera
    camDestroy _camera
    ; Laptop close animation requires custom reversed .rtm
    ;cutrsc["RscLaptopClose","PLAIN"]
    ~0.5
    ; clear laptop cutrsc
    cutrsc["Default","PLAIN"]
    exit
    #fire
    ; update ammo status display
    _i = 0
    _missileStatus = ""
    _missiles = _missiles - 1
    ?(_missiles == 0): _missileStatus = "              "; goto "calculateShot"
    #updateStatus1
    _missileStatus = format["%1| ",_missileStatus]
    _i = _i + 1
    ?(_i < _missiles): goto "updateStatus1"
    #updateStatus2
    _missileStatus = format["%1  ",_missileStatus]
    _i = _i + 1
    ?(_i < 14): goto "updateStatus2"
    #calculateShot
    ; calculate azimuth and polar angle for missile
    _mphi = (_campos select 2) atan2 _distance
    _mtheta = _rx atan2 _ry
    ; calculate velocity vector for missile
    _vx = _vel * (cos _mphi) * -(sin _mtheta)
    _vy = _vel * (cos _mphi) * -(cos _mtheta)
    _vz = _vel * (sin _mphi)
    ; calculate distance to target
    _dx = (_campos select 0)-_tx
    _dy = (_campos select 1)-_ty
    ; set initial missile position
    _mx = _campos select 0
    _my = _campos select 1
    _mz = _campos select 2
    ; reset frame counter
    _i = 0
    #home
    ; update camera
    _camera camSetPos [(_pos select 0) + _rx, (_pos select 1) + _ry, _rz]
    _camera camSetTarget [_tx,_ty,0]
    _camera camCommit 0
    @camCommitted _camera
    ; update camera azimuth
    _theta = _theta + (_direction * 0.0688)
    _theta = _theta mod 360
    ; update camera position
    _rx = _r * (sin _theta) * (cos _phi)
    _ry = _r * (cos _theta) * (cos _phi)
    ; save camera position
    _campos = GetPos _camera
    ; set manual mode to detect user input
    _camera camCommand "Manual on"
    ; update distance to target
    _dx = _mx-_tx
    _dy = _my-_ty
    _distance = (sqrt((_dx^2)+(_dy^2)))
    ; update missile azimuth and polar angle
    _mphi = _mz atan2 _distance
    _mtheta = _dx atan2 _dy
    ; update missile velocity vector
    _vx = _vel * (cos _mphi) * - (sin _mtheta)
    _vy = _vel * (cos _mphi) * - (cos _mtheta)
    _vz = _vel * (sin _mphi)
    ; update missile position
    _mx = _mx + _vx
    _my = _my + _vy
    _mz = _mz - _vz
    ; create Nikiller missile smoke
    drop ["cl_basic","","Billboard",10,random(3)+3,[_mx,_my+(random 2)-1,_mz],[(random 3)-1.5,(random 3)-1.5,(random 3)-1.5],0,1.22,1,0.2,[1,5],[[0.95,0.95,0.95, 0.15],[0.95,0.95, 0.95,0]],[0],0.75,0.5,"","",""];
    ~0.02
    ; increment frame counter
    _i = _i + 1
    ; update status display every ten frames
    ?(_i == 10): _i = 0; titletext[Format["\nHeading: %1                                     %2                             %3\nAGL: %4                                          %5                                          ", (direction _camera) - (direction _camera mod 1),_missileStatus, (_timeout - _time),_campos select 2,_mz],"PLAIN DOWN",0.05]
    ; detect change in camera position due to user input
    _cx = (_panGain select _currentFOV)*((getpos _camera select 0)-(_campos select 0))
    _cy = (_panGain select _currentFOV)*((getpos _camera select 1)-(_campos select 1))
    _cz = (getpos _camera select 2)-(_campos select 2)
    ; update camera target
    _tx = _tx + _cx
    _ty = _ty + _cy
    ; detect change in camera height due to user input
    ?((_cz > 0.05) and (_cx == 0) and (_cy == 0)): _ret = "home"; goto "zoom"
    ?(_camera != _camera):camdestroy _camera;_ret = "home"; goto "zoom"
    ; switch manual mode off
    _camera camCommand "Manual off"
    ; loop until missile hits ground
    ?(_mz > 1) : goto "home"
    ; spawn warhead
    _bang = "maverick" createvehicle [_tx, _ty,0]
    ; if ammo remaining continue orbit
    ?(_missiles > 0): goto "orbit"
    ; reset nightvision
    ?(_removeGogs) : player removeweapon "NVGoggles"
    ; terminate and destroy camera
    _camera cameraEffect ["Terminate","back"]
    _camera camcommit 0
    @camcommitted _camera
    camDestroy _camera
    ; laptop close animation requires custom .rtm
    ;cutrsc["RscLaptopClose","PLAIN"]
    ~0.5
    ; clear laptop cutrsc
    cutrsc["Default","PLAIN"]
    exit
    #zoom
    ; update FOV selection
    _currentFOV = _currentFOV + 1
    ; clip FOV selection
    ?(_currentFOV == count _zooms): _currentFOV = 0
    ; black out camera
    titletext["","BLACK IN",10];
    ; destroy old camera
    camdestroy _camera
    ; create a new camera
    _camera = "camera" camcreate _campos
    _camera cameraEffect ["internal","back"]
    _camera camSetTarget _pos
    _camera camSetFOV (_zooms select _currentFOV)
    _camera camCommit 0
    @camcommitted _camera
    ~0.1
    ; black back in
    titletext["","BLACK IN",0.1]
    ; return to caller
    goto _ret
    I'm sure you'll agree the missile smoke looks very nice, trouble is there is no solid object in front of it. I don't want to spawn a real missile or shell on the front of it and move it around or apply relative acceleration, because the whole purpose of this style of scripting is to cut down on bandwidth intensive commands like setpos and setvelocity. Any ideas on a way to put a solid looking object on the front of the smoke trail without broadcasting its position to other clients?

    If I create an object with camcreate do updates applied by setpos commands applied to it get broadcast to other clients even though it's a local object?

  8. #8
    Is there any demo-mission for that one

  9. #9
    Demo mission (multiupload)

    Just a single player mission that I made in about 5 minutes, but it's got the predator, reaper and two versions of the AC-130 script in it and some people to fire them at. There are two versions of the mission, one calls the laptop closing animation which is held in the included mwc_anims.pbo. If you don't care about having the laptop animation then use the mission in the no addons folder. Call the scripts using the radio, click on the map when prompted to set the position the camera will orbit. I've also included sounds for the AC-130 weapons.

    The glued AC130 is linked to the cessna that's droning around the village so if you want to control that just edit its waypoints.

    I'm not doing a demo for the multiplayer killstreak versions of these right now, it'll take me too long to disentangle it from MWC's other scripts and addons and I'd rather spend the time working on the main framework and templates.

    EDIT: Updated demo mission with fix for glued AC130 script (camera stuck at 100m AGL, not passed flyInHeight), fixed predator missile boost mode resetting target
    Last edited by *Zeewolf*; Jun 17 2012 at 17:16.

Similar Threads

  1. anty air missiles to a m-q9 predator ?
    By zombo in forum ARMA 2 & OA : MISSIONS - Editing & Scripting
    Replies: 0
    Last Post: Dec 11 2010, 21:26
  2. UAV Camera for player
    By Kladho in forum ARMA 2 & OA : MISSIONS - Editing & Scripting
    Replies: 0
    Last Post: Feb 14 2010, 11:56
  3. UAV camera projcetet on a tv or screen
    By Ringhejm in forum ARMA 2 & OA : MISSIONS - Editing & Scripting
    Replies: 3
    Last Post: Jul 27 2009, 08:54
  4. UAV RQ-1 Predator
    By EMSI in forum ARMA - ADDONS & MODS: COMPLETE
    Replies: 39
    Last Post: Jun 25 2009, 23:06
  5. Predator UAV
    By Platoon RedHawk in forum ADDONS & MODS: DISCUSSION
    Replies: 21
    Last Post: Feb 26 2005, 11:57

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •