Jump to content
Sign in to follow this  
norrin

SQF revive script

Recommended Posts

As any script (not just the revive scripts) that you may use that defines a variable as nil will stop the processing of your example code.

Norrin, I think he sent that example just as an example that you are overriding "nil" which is defined as being VOID according to the Biki and is perfectly legit to use to void variables. His example might not be the best way of using it and there are other ways but that in no way means that overwriting "nil" is not a bad thing. It will likely break a LOT of things.

Now, having said that, it is ridiculous that the script engine even allows one to overwrite "nil" but thats a whole other topic.

Share this post


Link to post
Share on other sites

As any script (not just the revive scripts) that you may use that defines a variable as nil will stop the processing of your example code.

Norrin, I think he sent that example just as an example that you are overriding "nil" which is defined as being VOID according to the Biki and is perfectly legit to use to void variables. His example might not be the best way of using it and there are other ways but that in no way means that overwriting "nil" is not a bad thing. It will likely break a LOT of things.

Now, having said that, it is ridiculous that the script engine even allows one to overwrite "nil" but thats a whole other topic.

Delta, I've got to admit I've been a bit confused by all of this and haven't understood the importance of what you and i0n0s have been saying - it didn't enter my mind that the nil variable is being overwritten and is no longer void when you define the scripts in this way - you're right why would the game engine allow this. crazy_o.gif

Anyway I had an email conversation with i0n0s last night and I've agreed to remove these nil statements from the revive.  I just need to test the changes and make sure I'm not introducing other problems by doing this and I'll get a new version posted.

Thanks to both of you for pointing out this problem. smile_o.gif

EDIT: xeno has just sent me a whole stack of enhancements and optimisations to the code so the fixed (nil-free) script may take a little longer to come as it will take me a little while to work my way through the new code.

Share this post


Link to post
Share on other sites

AI-disabled revive update(version x_1.46b)

Version 1.09+: http://home.iprimus.com.au/simonns....46b.zip

Version 1.08+: http://home.iprimus.com.au/simonns.....08.zip

Here's the revised scripts for both ArmA 1.09+ and 1.08+ that have the "nil = script" code removed.

Make sure you download the correct version

I've decided, as many of you are still using ArmA 1.08 (especially Linux users) not to include _xeno's revised code, which uses several of the new scripting commands available in 1.09+, just yet as in its present format the revive script is still fairly simple  to convert from ArmA 1.09 to 1.08 and this would be a hell of a lot more difficult with the new code.

Once the final patch is released I'll then update the code to incorporate _xenos excellent new changes which should reduce server load.

Share this post


Link to post
Share on other sites

Here's the revised scripts for both ArmA 1.09+ and 1.08+ that have the "nil = script" code removed.

That was quick!! smile_o.gif

Glad you saw the issue and fixed it pronto. Good stuff Norrin.

Share this post


Link to post
Share on other sites

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">if (!requiredVersion "1.09") exitWith {hint "Wrong game version for revive"};

Was the first codeline from revine_init.sqf out of AI_disabled_x_1.46b_1.08.zip.

Seems to be the false version packed.

Share this post


Link to post
Share on other sites

Oops very sorry m8, just comment it out.  Its part of the problem I have of converting from one version of ArmA to another - I always seems to miss something.

If you prefer you can get a hotfixed revive_init.sqf for the ArmA version 1.08 (with the offending line removed) from here: http://home.iprimus.com.au/simonnsl/norrinsArmA/revive_init.sqf

Previous links for ths 1.08 version have also been updated

Share this post


Link to post
Share on other sites
norrin have you tried rev with 1.11beta yet?

The latest 1.09+ version (x_1.46b) was developed using the 1.11 beta and as far as I can tell everything was working well.  

Sorry this is so confusing - I would like to move to developing exclusively for the 1.11 beta as this would save me and everybody else (due to my mistakes) alot of mucking around, but when ever  I add something new I always get requests for something 1.08 compatible so hence the multiple versions of the code.

EDIT: It seems that the rejoin punish option won't work in ArmA ver 1.08 as I publicVariable an array so there's no use in trying to implement this function on 1.08 servers

Share this post


Link to post
Share on other sites

Hi,

another 'bug':

NORRN_list at clientside: It's get defined after first JIP or first player death. But directly on init you use the it:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">if ((name player) in NORRN_list) then

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">{if ((name player) == _x) then {_zzz = _zzz + 1}}forEach NORRN_list;

Luckely ArmA doesn't make an error out of it, but please just change:

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">if (isServer) then {NORRN_list = []};

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">if (isNil "NORRN_list") then {NORRN_list = []};

Regards

Share this post


Link to post
Share on other sites

Just ran a quick check of the latest revive with the new beta 1.12 and everything looks like its running as it should smile_o.gif

@i0n0s - will do with next release mate.

Share this post


Link to post
Share on other sites

In Revive_player.sqf, around line 100, as you set the marker "%2 is down".

You use call compile format and the 2nd param is name player. This cause the script to fail if the player has " in the nick name.

Share this post


Link to post
Share on other sites

Player1 drive the mobile respawn and deploy the camo net. Player2 respawn at the camo net. Player2 stow the camo and drive the landrover to another place. Player2 deploy the camo net, and since that point unc. players have not the option to respawn at mobile, but at base. Some locality issue?

Edit: After some tests, it seems that you need just a deploy/stow cycle and the respawn at mobile is no more available.

Share this post


Link to post
Share on other sites
Player1 drive the mobile respawn and deploy the camo net. Player2 respawn at the camo net. Player2 stow the camo and drive the landrover to another place. Player2 deploy the camo net, and since that point unc. players have not the option to respawn at mobile, but at base. Some locality issue?

Edit: After some tests, it seems that you need just a deploy/stow cycle and the respawn at mobile is no more available.

Is this the test mission m8 or one of your own as I tested deploying and stowing the mobile spawn point many times using different players each time and it always seemed to work in the test mission.  

If it is one of your own missions can you please send it to me so I can see if the script is conflicting with something else?

EDIT: You're right there's a problem with the mobile respawn code on a dedicated server.

Share this post


Link to post
Share on other sites

It happens in our mission. I've sent it to you. Never tested your test mission in MP, nor for different deploy/stow cycles.

Thanks for your support,

alef

Share this post


Link to post
Share on other sites
Edit: After some tests, it seems that you need just a deploy/stow cycle and the respawn at mobile is no more available.

We had the same issue.

I thought it was destroyed first but it was deployed by another player and was no longer available.

This was on dedicated server.

(We still run 1.08 and this was with 1.08-revive version)

BR

VanhA

Share this post


Link to post
Share on other sites

The problem relates to the locality of the setMarkerPos command as recently identified by Doolittle: http://community.bistudio.com/wiki/setMarkerPos

I'm aware of this and working on a fix - so far I have the mobile respawn point working as it should on a dedicated server just having a little trouble with attaching the enemy occupied spawn point triggers but I should have something posted in the next few days which addresses this problem.

Share this post


Link to post
Share on other sites

Thanks Norrin, really like the way the Mobile Respawn works.

Vengeance

Share this post


Link to post
Share on other sites

Update AI_disabled revive version x_1.47 (10th April 2008)

Get the updated script here

Fixes

There's just a couple - the mobile respawn point and the rejoin punish option should now work correctly on a dedicated server

@alef and anybody else who wants to know whats been changed I've made changes to the revive_init.sqf, all the scripts in the mobile sub-folder within the revive_sqf folder and the rejoin.sqf in the revive_sqf folder

Share this post


Link to post
Share on other sites

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">//Exec3 occurs when you spawn at base

NORRNCustomExec3="Player setPos (getMarkerPos 'Markername' set [2, 21]);

That should lift the player on the carrier.

Share this post


Link to post
Share on other sites

Thanks, but

1. That doesn't work sad_o.gif Error Empty, Awaiting Array

2. Second problem is, that it tries to be executed on each spawn point, but it's only needed at spawn point 1. So I need an individual fix biggrin_o.gif

Share this post


Link to post
Share on other sites

<table border="0" align="center" width="95%" cellpadding="0" cellspacing="0"><tr><td>Code Sample </td></tr><tr><td id="CODE">//Exec3 occurs when you spawn at base

NORRNCustomExec3="Player setPos (getMarkerPos 'Markername' select 0, getMarkerPos 'Markername' select 1, 21);

Try that. I think that markers only have 2 coordinates [x,y]?

Share this post


Link to post
Share on other sites

Doesn't work either sad_o.gif I've placed a flag on the aircraft carrier. I tried to let the player spawn at it.

Quote[/b] ]

NORRNCustomExec3="Player setPos [(getpos Flagge select 0), (getpos Flagge select 1),21];";

There was no error message but the player still spawns in the water. I suppose there is a problem with the aircraft carrier objects dropping through it. The carrier isn't recognized as a solid object by the script I think. sad_o.gif

Ah by the way ...

Bug report: Version: 1.47 (Revivable Players - AI disabled)

The respawn button timer doesn't seem to work anymore. I've tried multiple timings, 30 seconds, 60 seconds, 120 seconds but the respawn button is always visible shortly after the player dies.

Share this post


Link to post
Share on other sites

'Flagge' or ""Flagge"" tounge2.gif

Markers, so you have to set them as string.

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  

×