Jump to content
Sign in to follow this  
kocrachon

Fast rope issue

Recommended Posts

So I am running the Ofpec Fastrope Script and for some reason it works fine for me and my AI but if I use it online, all of the other players just fall out and die.

Heres the script if anyone can help me out.

Quote[/b] ];OFPEC Disembark by rope script

;OFPEC_rope.sqs

;Dec 2006 bedges, mandoble, Hoz

;

;Purpose:

;Disembark a group by rope from a chopper.

;

;Params:

;group to disembark

;helicopter

;Disembark altitude

;Unit descend speed in m/s (use negative numbers)

;size of each rope unit in meters (should be smaller than 0.5m)

;script to be executed after all units have been disembarked, "" if not needed. This script receives grup and chopper as arguments.

;Arma true/false

;

;Examples:

;[group lider1, heli, 30, -7, 0.2, "heliRTB.sqs", false] exec "OFPEC_rope.sqs"

;

;[grp1, heli2, 40, -5, 0.2, "", false] exec "OFPEC_rope.sqs"

;get passed params

_EjectGroup = _This Select 0

_Heli = _This Select 1

_disembarkalt = _This select 2

_vdown = _This select 3

_ropesize = _This select 4

_script = _This select 5

;determine the correct particle depending on game

_arma = _This select 6

?_arma:_particle = "\ca\data\cl_basic";_sizeextra=1.2

?!_arma:_particle = "cl_basic";_sizeextra=1.0

;lock the waypoints

_EjectGroup lockWP true

group driver _Heli lockWP true

;get the chopper into position

_altorig = getPos _Heli select 2

_Heli flyInHeight _disembarkalt

driver _Heli Move getPos _Heli

~1

;Wait until helicopter is really slow

@unitReady driver _Heli

@speed _Heli < 2

;get group count and set counter

_GroupUnits = Units _EjectGroup

_Everyone = Count _GroupUnits

_Count = 0

;We'll keep heli staying still so the rope does not get missplaced

_posheli = getPos _Heli

_dirheli = getDir _Heli

;The rope will be created with first unit in the air position

_firstunit = true

;begin ejecting

#Next

_ThisUnit = _GroupUnits Select _Count

UnassignVehicle _ThisUnit

_ThisUnit action ["getout", _heli]

;Wait for the unit in the air

@(getPos _ThisUnit select 2) > 0

?!_firstunit:_ThisUnit setPos [_xini, _yini, getPos _ThisUnit select 2]

;If first one, draw the rope

?_firstunit:goto "rope"

#continue

;animate the unit

_ThisUnit switchMove "LadderDownLoop"

;determine a random direction to face

_ang = random 360

;begin downward setpos loop

#MoveDown

;The rope doesn't like moving choppers - keep it stationary

_Heli setDir _dirheli

_Heli setPos _posheli

_thisUnit setDir (_dirheli + 180)

_thisUnit setVelocity[0,0,_vdown]

~0.001

;if the loon is near to the ground, do the landing sequence

? getPos _thisUnit select 2 < 0.5:goto "landed"

;if the loon is dead, make sure it shows

? !alive _ThisUnit: _ThisUnit switchMove "LadderDownEnd";goto "Check"

;if not, keep moving down

Goto "MoveDown"

;increase the counter: if all units are out, end the script

#Check

_Count = _Count + 1

? (_Count < _Everyone) : goto "Next"

_EjectGroup lockWP false

;Two extra seconds for rope retrieval

_segs = 0

#keephelihere

_Heli setDir _dirheli

_Heli setPos _posheli

_segs = _segs + 0.01

~0.01

?_Segs < 3:goto "keephelihere"

;let the chopper continue on its way

_Heli flyInHeight _altorig

group driver _Heli lockWP false

;if another script has been passed as a parameter, run it

#ending

?_script != "": [_Heli, _EjectGroup] exec _script

Exit

;unit has landed: move it to a safe distance, facing out

#landed

;make a poof of dust as the loon lands

@(getPos _thisUnit select 2) < 0.1

drop [_particle,"","Billboard",100,1,getPos _thisUnit,[0,0,0],10,25.5,20,0.14,[0.4,1.0],[[0.8,0.6,0.3,1],[0.8,0.6,0.4,1],[0.9,0.7,0.4,

1],[0.8,0.7,0,0]],[0,1,0,1],0,0,"","",""]

_ThisUnit switchMove ""

_ThisUnit doMove [(getPos _thisUnit select 0) + (20 * sin(_ang)), (getPos _thisUnit select 1) + (20 * cos(_ang)), 0]

Goto "Check"

;The rope is drawn in the space

#rope

~0.5

_xini = getPos _ThisUnit select 0

_yini = getPos _ThisUnit select 1

_posr = [getPos _ThisUnit select 0,getPos _ThisUnit select 1, (getPos _Heli select 2) + 1]

_steps = ((_posr select 2)-1) / (_ropesize / 2.0)

_segs = abs((getPos _Heli select 2)/_vdown)*_Everyone + 3.0 + 3.0

_delta = 3.0/_steps

_i = 0

#ropeunit

drop[_particle,"","Billboard",100,_segs,_posr,[0,0,0],0,25.50,20,0,[_r

opesize*_sizeextra],[[0.4,0.25,0,1]],[1],0,0,"","",""]

_segs = _segs - _delta

_posr = [_posr select 0,_posr select 1,(_posr select 2)-(_ropesize / 2.0)]

_i = _i + 1

?_i < _steps: goto "ropeunit"

_firstunit = false

goto "continue"

Share this post


Link to post
Share on other sites

Does the script or readme anywhere says that it is MP compatible?

Share this post


Link to post
Share on other sites

does not say one way or another. Just wondering if maybe anyone can see what can be changed in the script to make it MP

Share this post


Link to post
Share on other sites

hmm well that was helpful.

Is there anyone with some HELPFUL insight?

Or perhaps able to point me to an easy script for Fastroping.

I want one that doesn't require an add-on.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
Sign in to follow this  

×