OFPEC Forum

Editors Depot - Mission Editing and Scripting => OFP - Editing/Scripting Resources Beta Testing & Submission => Topic started by: Doolittle on 10 Oct 2002, 03:17:58

Title: Ultimate Vehicle Respawn Script
Post by: Doolittle on 10 Oct 2002, 03:17:58
Hey guys.  I just wrote this & I thought I'd share it.

respawn.sqs

;Ultimate Vehicle Respawn
;by Doolittle

;This script will respawn any vehicle if it has been dead for a while
;It will also respawn a vehicle if it has been abandoned somewhere for too long!

;Set the Initialization for whatever vehicles you want to respawn to
;[this] exec "respawn.sqs"
;That's it!

_obj = _this select 0
_pos = getPos _obj
_dir = getDir _obj

_magazines = magazines _obj
_j = count _magazines

#begin
? "m2staticmg" counttype [_obj] == 1 : goto "alive"

@count crew _obj != 0 || !alive _obj
? !alive _obj : goto "alive"
@count crew _obj == 0 || !alive _obj
? !alive _obj : goto "alive"

_oldtime = _time + 55

@_time > _oldtime || count crew _obj != 0 || !alive _obj
? !alive _obj : goto "alive"
? count crew _obj != 0 : goto "begin"
_obj setFuel 0
_obj setDammage 1

#alive
@!alive _obj

~40

_i = 0
#rearm
_mag = _magazines select _i
_obj removeMagazine _mag
_obj addMagazine _mag
_i = _i + 1
? _i < _j : goto "rearm"

_obj setPos _pos
_obj setDir _dir
_obj setDammage 0.3
~0.1
_obj setDammage 0.1
~0.1
_obj setDammage 0
_obj setFuel 1

goto "begin"

Title: Re:Ultimate Vehicle Respawn Script
Post by: mcnils on 11 Oct 2002, 05:15:20

Very interesting script but, a litle more info of
"what does what" would be appreciated from a scripting noob like me..

For example,
can i set a different respawn time if a vehicle is destroyed or without crew, or is there only one universal "timer" for both the situations? Where do i set the respawning time? How to make respawn east stuff on east side and west stuff on west side?



*feels noob*  :-\ ::)
Title: Re:Ultimate Vehicle Respawn Script
Post by: Doolittle on 11 Oct 2002, 20:47:15
Ok...let me comment.

;Ultimate Vehicle Respawn
;by Doolittle

;This script will respawn any vehicle if it has been dead for a while
;It will also respawn a vehicle if it has been abandoned somewhere for too long!

;Set the Initialization for whatever vehicles you want to respawn to
;[this] exec "respawn.sqs"
;That's it!

;Notice here I am getting a vehicle's position and direction
;What this does is that when the mission starts we will remember where every vehicle started
;Where the vehicle starts is where it will respawn, whether it is East or West doesn't matter
_obj = _this select 0
_pos = getPos _obj
_dir = getDir _obj

;Get weapon info for #rearm loop
_magazines = magazines _obj
_j = count _magazines

;Here is where that EMPTY VEHICLE code starts
;We check to see if a vehicle has been left empty
#begin
;Don't want to do this for M2 spots (they never move)
? "m2staticmg" counttype [_obj] == 1 : goto "alive"

@count crew _obj != 0 || !alive _obj
? !alive _obj : goto "alive"
@count crew _obj == 0 || !alive _obj
? !alive _obj : goto "alive"

;If a vehicle is left for 55 seconds then respawn it
;Change this number if you want
_oldtime = _time + 55

@_time > _oldtime || count crew _obj != 0 || !alive _obj
? !alive _obj : goto "alive"
? count crew _obj != 0 : goto "begin"
;Here we blow it up so that it will automatically respawn
;With fuel at 0 the vehicle will not explode w/ as much damage
_obj setFuel 0
_obj setDammage 1

#alive
@!alive _obj

;If a vehicle is not alive then it will respawn in 40 seconds
;Change this if you want
~40

;Rearm the vehicle
_i = 0
#rearm
_mag = _magazines select _i
_obj removeMagazine _mag
_obj addMagazine _mag
_i = _i + 1
? _i < _j : goto "rearm"

;Move the vehicle back to its original position
_obj setPos _pos
_obj setDir _dir
_obj setDammage 0.3
~0.1
_obj setDammage 0.1
~0.1
;If you change damage too fast it blows up again, so ease into 0 (perfect health)
_obj setDammage 0
_obj setFuel 1

;Now that vehicle has respawned, go back to check and see if it has been driven & left behind or if it is dead again
goto "begin"


I hope this helps!
Title: Re:Ultimate Vehicle Respawn Script
Post by: I-RZ# on 22 Oct 2002, 13:51:22
Do you put the script in a seperate SQS file or do you just copy & paste it into the bottom of an init.sqs script or what? :-\
Title: Re:Ultimate Vehicle Respawn Script
Post by: chill on 23 Oct 2002, 02:39:06
The Ai does not attack any vehicle that is made by this script. Any ideas around this as I building a massive dynamic battle in multiplayer.
Title: Re:Ultimate Vehicle Respawn Script
Post by: Doolittle on 24 Oct 2002, 03:27:32
Well I haven't figured out the AI stuff yet but I did update the script.  New version at http://www10.brinkster.com/dbircsak and I will post it here too.

Doolittle
Title: Re:Ultimate Vehicle Respawn Script
Post by: hoz on 10 Nov 2002, 07:53:01
I noticed just recently that the your set dir doesn't seem to work once the vehicle is respawned. I set a motor cycle one direction (not default) then go do my thing and when i come back the motorcycle is facing another direction and not in the direction i got off the vehicle.

hoz
Title: Re:Ultimate Vehicle Respawn Script
Post by: Terox on 14 Nov 2002, 18:50:41
This doesnt use the Local command or a game logic, so when mplaying across the internet, different effects will occur on different clients.
It needs to be server side scripted.


If you want to really create the Ultimate script, then
Create a looping script that only has 1 instance of it running no matter how many vehicles are on the map, and is written in template form.
also
1) It has the option within it of disarming, or arming each vehicle types individual weapons
2) Respawning if damaged (Optionally switched)
3) Respawning if unnocupied (Time limit variable)
4) (For real coolness, you could have it not respawn, if the last driver of the vehicle was within a trigger area of the vehicle, this would allow it to remain in position, if the driver had loaded it with weapons and was usingm it as an ammo crate)

Ie do it for vehicle classes, and have each vehicle named within a list.

So if there was 20 vehicles on the map, and 5 different types of vehicle, there wouldnt be 20 versions of the script running, or even 4 (1 for each version type).

Just 1 almighty script.


I know your script does some of this already, but to become reliable and totally versatile, it needs more work!

Please keep at it
Title: Re:Ultimate Vehicle Respawn Script
Post by: Nasty Buttler on 25 Feb 2003, 16:17:31
the AI attacking bus has been in flashpoint since 1.30....there is no cure as far as my BIS contacts tell me. Basically what happens is the AI dont concider dead units a threat so once they have been destroyed they are moved off the possible threat list and onto the dont worry about anymore list....they only true way to respawn a vehicle in Multiplayer is by using the createvehicle command.....yes you can assign a variable to it, BUT the variable will only be local to the machine it was created on and the server.....so AI can still use it but say if you order another client machine to moveindriver or something you will get weird things happening like u will be in the vehicle but in the middle of the ocean etc.....(usually point 0,0,0)

Anyway i hope that clarifies some things about vehicle respawn