Jump to content
Sign in to follow this  
celery

Parachute bug fix

Recommended Posts

I'm pretty sure something like this has been done already in some missions but what the heck.

The parachute bug basically makes you lose your parachute before getting close enough to the ground, resulting in an annoying death by falling too high. It's caused in multiplayer by different players' games having a different idea of where the ground is and for some reason those clients can affect when the chutes of other players disappear.

With every client having this script running, they can land safely on the ground regardless of any bugs trying to mess things up.

parafix.sqs

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">;Parachute bug fix by Celery

;Fixes the issue of paratroopers losing their

;chutes prematurely and falling to their deaths

;

;Have each player exec this script in an init script or trigger

#start

~1

?vehicle player iskindof "ParachuteBase":goto "para"

goto "start"

#para

@vehicle player==player

?!alive player:goto "start"

_altlogic="Logic" createvehicle [0,0,0]

_altlogic setpos [getpos player select 0,getpos player select 1,0]

_alt=player distance _altlogic

?(getpos player select 2>1.6):player setvelocity [0,0,0];player setpos [getpos player select 0,getpos player select 1,_alt-(getpos player select 2)+1.6]

deletevehicle _altlogic

goto "start"

Share this post


Link to post
Share on other sites

Nice Celery, but why not a more efficient sqf version for something that always runs in the background ?

Share this post


Link to post
Share on other sites

well for such a simple script there is most likely no real difference.

it is said that 1.15 will fix the problem.. once it will be out.

Share this post


Link to post
Share on other sites

this bug still exists.

I patched it this way:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">

while{ ((getPos vehicle player)select 2) > 2.0 }do{

sleep 0.2;

if( vehicle player == player )then

{

player moveInDriver _chute;

};

};

Share this post


Link to post
Share on other sites
Gnat @ Sep. 28 2008,04:55)]Nice Celery, but why not a more efficient sqf version for something that always runs in the background ?

Sqs waits until the cpu is available for the job, sqf steals the resources from other tasks if it wants so with sqs there is absolutely no difference while sqf would make it worse if there is lots of stuff happening. And really, optimizing 0.001 fps is only in our heads and I think the function of the script is more important than one task out of a million more for the processor.

this bug still exists.

I patched it this way:

Do you mean to say that you tested it online and the script doesn't work?

Share this post


Link to post
Share on other sites

hm i think we are still running 1.14 or did i miss something tounge2.gif

Share this post


Link to post
Share on other sites

I updated the script with a temporary altitude logic so that landings on artificial structures such as bridges and roofs don't get glitched.

Share this post


Link to post
Share on other sites
I will use it in next version of sabotage.

Does this bug occur for AI?

I think it does, but only in multiplayer. The script I made works for players only though. To make it work for AI, all units have to exec the script individually and the "player" has to be replaced with "_unit", with _unit=_this select 0 at the start.

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  

×