Jump to content
Sign in to follow this  
norrin

Revive Script

Recommended Posts

revive.jpg

Description

This package of scripts creates playable units that fall unconcious when killed, which can then be revived. Enabling the ability to revive and heal other players, along with the combination of revive and respawn can really enrich your mission. The scripts can be used to enforce co-operation between players as you'll need to stick together and help one another to successfully complete a mission and they can also be used to limit the number of lives given to each player in respawn missions. These canned scripts take the guess work out of building respawn and revive into your mission.

Download

http://home.iprimus.com.au/simonnsl/revive/revive050_OA.rar (Version 0.50 - Can be used in SP or MP missions with AI enabled or disabled for Operation Arrowhead or Combined Operations)

If by contrast you are using vanilla ArmA2 then you'll need this version of the revive scripts:http://norrin.org/downloads/ArmA2/revive/AI_enabled/Revive_TEST_042.utes.rar

Implementation notes and credits are now contained in the PDF file in the download.

Simple Revive Mission: http://www.norrin.org/downloads/ArmA2/revive/AI_enabled/missions/Deep_in_the_Woods_02h.Chernarus.pbo (so you can see what these scripts do in a combat situation - uses a much older version of the revive scripts - to be updated).

There's also a PvP template for 2 sides that was kindly posted by Le Culto available here: http://norrin.org/downloads/ArmA2/revive/pvp/test_revive_pvp.Chernarus.rar - this also uses an older version of the script (0.3f) but it can be used as a guide on how to set up PvP revive missions using the latest version (to be updated)

What does the revive script do?

In its most basic form the revive script offers an alternative to the built in respawn function provided by BIS - it only works in MP missions. Essentially when a player is killed rather than dying and respawning at base he falls unconscious where he was shot and then he can be revived by another player and start from where he was killed, with the same weapons and ammo he was carrying.

While the player is lying unconscious waiting to be revived he can spectate any of the other units in his team using a range of cameras.

The script is designed to enforce team play as the only way you 're going to respawn is if some one comes to you aid.

You can see an old video showing (from 2 and a half years ago) showing this basic functionality here:

- mind you it’s a lot more refined than this now eg. additional camera functionality amongst other things.

Now that's the script in its simplest form but there are a myriad of additional options.

These include but are not limited to:

* Can enforce a set number of lives per player before he is declared dead outright

* Enable a revive time which if it elapses results in (your choice of) player death, automatic respawn at base or the players choice of multiple respawn points

* You can limit who can revive, for instance may specify that only medics can revive.

* Unconscious bodies can be dragged and carried, loaded onto vehicles and taken to specified CASEVAC points to be revived.

* Bleeding and bandages can be enabled - when damage reaches a certain level a unit starts bleeding - this can be stopped with bandages, if bandaging does not occur bleeding can cause unconsciousness - it also causes temporary black-outs

* You can also designate the number of revive packs a player carries so that he may only be able to revive lets say 3 players before he has to restock at a MASH tent

* Possiblity of a mobile respawn point, either player or vehicle based

* The scripts are playable AI compatible and there are options so that playable AI automatically move to and revive unconscious team mates or only come to the aid of a player if he calls for help (an option to the player while unconscious) - or if sent by the team leader to help another player or unit.

* If using AI you can specify that the AI throw smoke when attempting to revive as well as have a second AI unit provide cover while the other revives.

etc etc.

* Revived units can be given damage so that they are not a full health once the regain consciousness.

Using these options, the basic game play of ArmA2 can be made easier or a hell of a lot harder - most importantly they will hopefully enforce team play in the MP environment.

Possible fixes

* Updated for ArmA 2 v1.04 parameters

* Multiple fixes for alternate unconscious animations

* AI not reviving units

* Serialisation errors which occurred while trying to respawn at occupied bases

* Dialog report errors

* Multiple appearance of drag and revive options

* Drag action not working when using a secondary item - note if you attempt to drag while using a launcher (eg M136) you'll assume the drag position but won't be able to move until you switch to your primary weapon

* When all lives are expended the scripts now deal with death properly - for the time being you can't use Kegetys' Spectator cam as it causes a crash to desktop so make sure you leave _kegetys_spectator set to 0 - I'll start work on my own simpler spectator cam for death.

* Respawn at base without weapons - added a 2 second wait before these are defined so if you are giving units an alternate load-out at mission start please make sure it occurs quickly after mission initialisation

* Fixed the “You’re dead†dialog zooming on respawn points

* Hopefully, fixed lag when many players are unconscious

* Fixed loading wounded action on a dedicated server

* The long unconscious camera panning that was causing crashes has been removed

Known Issues

* Report error relating to name of dead unit - you'll have to live with this I'm afraid as I haven't found another solution for this yet

* Reported problem with the mobile respawn tent disappearing - I haven't been able to replicate this bug yet so please let me know if you come across it and let me know what happened prior to it occurring

Please let me know if you are still having issues with any of the proposed fixes

New Features

* New animations

* Respawn on the carrier or in a chopper

* Turn revive off as a parameter in missions

* Limit the number of lives for players who JIP

* Chance of death - risk based on the number of times you've been revived and the location of the hit

* Make units wait if they respawn at base

* You can now drag unconscious units to vehicles with empty cargo spaces and load them onboard, once they are loaded you can unload them - as this is new if you try it let me know how you get on - units can only be loaded if they are being dragged (not carried)

* PDF file containing implementation notes, credits and explanation of features

* Players can drag and carry the bodies of unconscious players and playable AI - units must be dragged before the carry action appears

* CASEVAC system so that units can be taken to a hospital etc to be revived, needs to be an array eg. [0] not used or [1, ["MASH"]]; the second internal array ["MASH"] represents the type of object at which you'd like the units to automatically revive, note: you can put a list of objects here.

* Spectator_cam after death - now there's an option so that the screen turns black or a unit can spectate other friendly units when it has run out of lives - currently using a simple spectator script (see readMe for more details).

* You can specify an additional class which can have more medpacks or bandages than the standard unit - Can only be used in conjunction with medpacks and bleeding.

* Can limit the number of revive kits per unit

* Can make units bleed and require bandages

* Medical items can be obtained by players by going up to a MASH tent and using the "Take medical supplies" action. Playable AI are automatically resupplied if they are within 5 metres of a MASH tent. Also for the time being playable AI do not bandage themselves so you'll have to take care of them

* reward_function - Bonus lives for reviving other units

* team kill function - Lose lives for killing team mates

Future plans

Here's what I'm planning on adding above and beyond the original scripts:

1. Additional side support - units that can revive, can be revived, enemy sides etc

2. Option to disable revive in missions and use normal base spawning instead

3. Ability to rejoin perpetual server missions at the position and with the same gear etc you left the mission with

4. MEDIVAC system

Finally, many thanks to all of you for testing :)

Edited by norrin

Share this post


Link to post
Share on other sites

Norrin, we LOVE your work!!! :) We couldn't play ArmA without your revive script, and are EAGERLY awaiting Revive v2. :yay:

Does Revive complement or replace the ArmA 2 wounding system?

Edited by [ZSU]Preacher

Share this post


Link to post
Share on other sites

Hoping it will be complimentary and so far it appears to be but won't know for sure until I get all the niggles ironed out.

Share this post


Link to post
Share on other sites

If we restrict the revive capability to medics, is there any way to implement a respawn timer for the medics only (say 3 minutes to discourage the medics from getting killed), whilst disabling the respawn timer for all other players (so they have no choice but to be revived)?

Share this post


Link to post
Share on other sites

Don't think you can have different 'respawn timers' using the engine system. I think you would have to work with instant respawn for everyone, then some artificial delay (call it inprisonment) before you regain control over the character.

But I have some ideas:

1) CAS Evac system. Bring the unconscious player to a revival point for instant respawn, fully healed. It's like a medic doing the revival, but for use when the medic is not in play.

2) Not too magical. I mean, sometimes you just die. Explosions and head shots shouldn't be possible at all to revive, other stuff depending on the wound that caused you to bleed to death.

3) If medic is in play, the medic has three times the respawn times as others. One thing though, a variable respawn time should be slot based depending on mission, not class based. That way it will be easy to use with other addons. I might want to use even greater penalties for medics. Also snipers would get a respawn penalty from me. Riflemen the quickest, given they are the easiest to 'replace'.

4) Also, a slot based 'weapon handling system'. Me as a mission designer might allow others to 'steal' weapons from downed players, but if it is an 'exotic' weapon, I wouldn't like to have the weapon increase in availability due to respawning. I.e. if a player attempts to pickup a Javelin, he gets the message "You're not allowed to use a Javelin", or something. Then the Javelin is given back to the dead player. I.e. arrays of allowedInventoryToPickup per slot, and one allowedInventoryToLoose per slot? Might need to be brainstormed further.

5) Parameters that can be accessed and changed by outside scripts. In early Dominatrix I allowed 4 respawns per remaining target when the player joined, pluss two extra lives for the early joiners. But I was never able to access the script variables properly and provide a dialog that showed the remaining number of lives. I.e. I would have liked to punish team killers by removing lives (although now I would just jail their ass, doubling their jail time every time).

6) If medic is in play, but everyone can revive, the player should always start out with a hefty bit of damage to reduce his combat effectiveness. They'd better have an ambulance with them at least.

7) If medic are not in play, the respawn timers can be halved or something, for selected slots (my snipers might not get this benefit).

8) A modular system where the mission designer adds a variable. This variable informs the revive system how respawn will take place. I can have a barracks in the base with setting the variable to a fixed value for position and direction. Or I can add an MHQ that is updated on each getOut that will update the respawn marker. Or maybe add it just to a flag pole. Markers of variables, not sure what is the best approach. But if markers, the mission designer should have full control over which marker is used. Basically, it should be simple for me to define new respawn points of various types, and control of they are available or not.

Sorry for a lot, just throwing in some ideas. Haven't really played revive missions since ACE, and I'm sure a lot of new cool stuff has appeared since then.

Share this post


Link to post
Share on other sites

I hope whatever norrin is gonna create, he keeps the way with the optional feature scenario of the old revive_init.sqf ;) That's the absolute basic of everything.

Share this post


Link to post
Share on other sites

norrin, your script works perfect in arma2 , however the camera dont seem to work properly but thats not so dramatic, everything else works just great:)

i played yesterday with some dudes in a afghanvillage mission i created in arma2 with your script ai disabled and 1 respawn point after all get killed and it worked awsome:D

your script adds sooooo much more intensity into arma1 and 2 that i wont play any mission in mp without your revive script ;)

Share this post


Link to post
Share on other sites

Good Job Norrin, don't forget the Respawn Vehicle if you can and controllable Respawn Points based on Mission Objectives met.

Share this post


Link to post
Share on other sites

excellent news

I will be your beta tester

I have got you in my Msn so tell me if you want

I'am working on VTS3 so I will add your revive script in it

Share this post


Link to post
Share on other sites

Hey Norrin,

I'm with ZSU, Preacher asked me to post any thoughts about your script over here. Firstly, full kudo's to your work, it makes our games fun while still being tactically challenging, and removes the dreaded conveyor belt syndrome.

Secondly, I know NOTHING about scripting, and have not been following the Revive discussions at all, so I have no idea about the functionality available to the mission designer at all.

ZSU is in the midst of discussions re revive handling primarily for ARMA2, so below is my two cents worth, pretty much a copy and paste form a ZSU post I made. Note that much is specific to our clan, which generally has two or three fireteams of about 4 members, plus an overall Squad leader and over Squad medic. Note also that this is not criticism of the Revive script, we just are looking at ways to balance realism, tactical teamwork, fun and quality gameplay time (last one is a big issue for mature gamers...)

" Must admit that this is the bit the annoys me about Revive, there really isn't a penalty for dying if anyone can revive you, and you are pretty much instantaneously back to full health straight away. I do like the penalties that ACE applies post revive (intermittent black outs, poor aim, etc) until you've seen a proper medic.

The gameplay aspects I enjoy and want to see promoted are:

1/. Teamwork

2/. No conveyor belt

3/. Significant enough penalty for being 'killed' without ruining our precious 2 or 3 hours of gaming time (which for a few of us is almost all we have a week, so it is very precious, and as someone commented, becomes non fun if you are spending even 10% of that time waiting for transport back to the 'front')

So, borrowing a number of current ZSU thoughts:

1/. One Squad level medic as presently, he/she is the ONLY one with full revive capabilities as currently implemented

2/. Each fire team has a 'field-medic', who has only partial revive skills. Basically can get a downed member back up, but partially revived member is solely stabilized (ie very vulnerable to further fire), experiencing say intermittent blackouts etc. Perhaps the revive timer would therefore be shortened to say 2 minutes, which places heavy emphasis on a fireteam to work and stay together (rather than individual members playing autonomously), so if someone does go down, fireteam medic can get to them quickly. Once member is back up, they can function in a very limited state, but still require squad medic to restore them to full health (or visit to field hospital). Optionally, if blackouts and vunerablity are all a bit too serious, something like movement restricted to crawl speed or something... 'Injured' player can still shoot fine, but can go nowhere fast, strong motivation to get squad medic there or injured into vehicle to visit squad medic nearby.)

3/. NO other players have any kind of revive ability

4/. All roles above would be gear independent (ie ignore the ACE bandages/IV/etc gear issue: they are role specific)

5/. If a team member does go down, it is likely to lead to the real life situation where the fireteam forms a defensive perimeter on the fallen person while the team medic partially revives, and then holds position till squad medic visits. I like this idea, because the current revive really doesn't promote this team work: anyone can wander of as a solo individual to revive multiple players, without little need for cover or defensive work (a 15 second unconscious->full health process is a low risk proposition.

6/. This allows teams to function more independently, because the team medics keep them functional. The team medic is therefore a high value item, and needs to play accordingly: if he/she goes down, the team becomes that much more vulnerable, requiring the squad medic to be nearby, therefore limiting their maneuverability. Team medics need to stay back a bit from the action

7/. Similarly, squad medic is very very important: if he/she goes down, can still be partially revived by team medic, but will need transport to field hospital to get working fully again. NO solo runs into hot territory for a squad medic (ahem!!! ;D)

My 3 dollars worth....

Again, as I said I have no idea where you are currently at with your script, so these are just my isolated ideas with no reference to existing comments in this thread at all

Share this post


Link to post
Share on other sites

Revive Alpha

ArmA2 revive (corresponds to the old AI_enabled scripts) - it can be used with the AI_enabled or disabled:

http://norrin.org/downloads/ArmA2/revive/AI_enabled/ArmA2_revive01b.utes.rar

There's no thank yous or implementation notes yet but you set it up in your mission just like the old system eg gamelogic called, respawn_west, boot_hill server etc. You can check here: http://www.ofpec.com/tutorials/index.php?action=show&id=125&page=132

A couple of other things:

1. interface size must be set to normal otherwise the dialog formats freak out.

2. Kegetys spectator script needs updating so it might cause a popup when you run out of lives and die.

3. I've completely rearranged the revive_init - all the old settings are there I've just tried to re-order them to be make it more logical.

4. You'll also notice plenty of variables that are not implemented yet - they are just placeholders until I can get some more features sorted - I'm hoping I won't have to change the revive_init in future so all you'll have to do is swap the revive_sqf in your mission folder.

5. You need to have the new health system disabled ie. remove any health game logics as these cause respawning units to be immortal once they respawn - unfortunate game bug that I'm hoping will be fixed:http://forums.bistudio.com/showthrea...hlight=respawn

Once I get the implementation notes sorted I'll make a proper post and update the first post in the thread.

Also thank you to everyone that has made suggestions I'll try to get as many of these options implemented over the coming months.

One final thing is that please only use these scripts for the time being if you have had experience with them in the past as at the moment I'm very busy trying to get the AI disabled scripts done (amongst other things) so I don't really have the time to help you to get these scripts implemented in your missions - sorry bout this but hopefully its only temporary.

If you get a chance please let me know what bugs you come across.

PS: Thanks to vengeance1 for his testing over the week-end :)

EDIT: Please post any bugs/issues with the scripts here: http://dev-heaven.net/projects/norrin/issues

Edited by norrin

Share this post


Link to post
Share on other sites

Very nice! I will upgrade my first missions with it! :)

But I've got one wish. I'd like to give the ingame revive + animations + body drag a chance. I know it's buggy right now but BIS will fix this. Could you please create an option so that mission designers can choose between the classic animation/drag and the ArmA II internal?

Share this post


Link to post
Share on other sites

Revive script update

Get it here: http://norrin.org/downloads/ArmA2/revive/AI_enabled/ArmA2_revive01d.utes.rar

Fixes:

Dialog errors

ArmA report errors relating to duplicate weapons and NORRN_variables

Reduced size of the sounds folder

Fix for mobile respawn vehicle thanks to vengeance1

Note: There's still a couple of dialog errors that appear in the report that I need to work on.

Edited by norrin

Share this post


Link to post
Share on other sites

Yeah i hope Kegetys gets a spectator script made soon! :D

Share this post


Link to post
Share on other sites

I have added the revive script 01d in my live coop mission editor (VTS3)

and we have tried it with some friends last night

it work well

I report just some little bugs

1- one player use all is count of revive but was not dead (he just respawn at base)

2- I have moved the respawn mobile (tent) but the tent become invisible after a time and so I was unable to move it after that but the marker stay visible and the respawn on mobile work always

3- drag body don't work (the animation start but the inconsiouss body stay at the same place

4- one time, a player lost is weapons after revive (replace by standard weapons)

we were 5 players last night and we use each 7 revive (in Arma2 AI are really goods :D )

and all dead dialogue work well

great job Norrin

I am waiting to the spectating script to (to add it in VTS3)

kegetys were are you ? :)

Edited by gonza

Share this post


Link to post
Share on other sites

Thanks for the feedback mate. For the drag action make sure you are not using the drag/carry logic from ARmA2 as the the logic and the revive carry actions conflict. Will test the other probs over the next couple of days.

Share this post


Link to post
Share on other sites

no I am sure that I don't use it

I just use animals gamelogic

but I have tried it only one time

Edited by gonza

Share this post


Link to post
Share on other sites

NPs I'll test the drag function and see what happens - I may not have tried dragging another player yet only AI. I thought for the time being until Keg's new spectator script is out that I might make a simpler version of the unconscious camera script called "dead cam" so that players can still spectate when they have run out of lives.

EDIT: Found the reason for the player respawning once he has run out of lives and its a simple syntax error. On the end of line 679 of the revive_player.sqf there is a colon not a semi -colon, the correct line should look like this

_name setVariable ["NORRN_life_bonus", 0, true];

Edited by norrin

Share this post


Link to post
Share on other sites

Hi Mate

Found a small thing

When dead choose a respawnpoint the shown map will move to its position.

Now press go back and choose another one, map will not move to the new position

Emmi

Share this post


Link to post
Share on other sites

Norrin, I noticed some entries in the ArmA2.rpt during JIP. Maybe it'll help you:

Error loading control mpmissions\__CUR_MP.utes\description.ext/Respawn_button_3b/Respawn_1b/
Error loading control mpmissions\__CUR_MP.utes\description.ext/Respawn_button_3b/Respawn_2b/
Error loading control mpmissions\__CUR_MP.utes\description.ext/Respawn_button_3b/Respawn_3b/

Edit:

Players reported that they lost their weapons after respawn again. All players died, all players hit the second respawn button, all players lost their weapons.

Edited by [GLT] Legislator

Share this post


Link to post
Share on other sites

Thanks guys keep those bug reports coming :)

Has anybody else had problems with the drag action?

@ Legislator - yeah I'm aware that there are still some ArmA2 report errors caused by the dialogs. I've managed to reduce them but any dialog that appears as a button is still causing an error. Here's the code I'm using for the buttons

		class Help_1 {
		access = ReadAndWrite;
		idc = 5;
		type = CT_BUTTON;
		style = ST_CENTRE;
		font = "TahomaB";
		sizeEx = 0.022;
		colorText[] = { 0, 0, 0, 1 };
		colorDisabled[] = { 0, 0, 1, 0.7 };   
		colorBackground[] = { 1, 1, 1, 0.5 };
		colorBackgroundDisabled[] = { 1, 1, 1, 0.5 };   
		colorBackgroundActive[] = { 0.5, 0.5, 0.5, 0.5 };   
		offsetX = 0.003;
		offsetY = 0.003;
		offsetPressedX = 0.002;
		offsetPressedY = 0.002;
		colorFocused[] = { 0.31, 0.31, 0.31, 0.31 }; 
		colorShadow[] = { 0, 0, 0, 0.5 };
		colorBorder[] = { 0.5, 0.5, 0.5, 0.5 };
		borderSize = 0;
		soundEnter[] = { "", 0, 1 };   // no sound
		soundPush[] = { "", 0, 1 };
		soundClick[] = { "", 0, 1 };
		soundEscape[] = { "", 0, 1 };
		x = 0.02; y = 0.10;
		w = 0.11; h = 0.04;
		text = "Call for Help";
		action = "[] call Norrn_Call4Help";	
	};

If anybody knows what needs to be done to fix this please let me know.

One other thing, what was your _respawn_at_base_addWeapons option set to in the revive_init.sqf? Also did they respawn with no weapons or the default load-out? This will help me track down the weapon respawn error.

@ MC - will get it sorted mate. The AI_disabled only version is still on the way, just waiting till I get my second copy of the game as it will help me test enormously as I'm getting a "CD key already in use" error whenever I try and connect two instances of ArmA2 to a local server - unlike ArmA.

Finally, does anybody know of a new command (eg AIdisabled") that will let you determine whether the AI has been disabled or not?

Share this post


Link to post
Share on other sites

Norrin,

Only weapon loss I ran across was this:

_respawn_at_base_addWeapons = 0; //array no.11 - unit respawns with waepons it commenced the mission with

When all of us died in Water I respawned using Menu after washing ashore and had my weapons, all my AI timed out and respawned without weapons. Not sure if it was like that before or not in ARMA1.

Also may want to consider a word change on call out for "@##damit Out of Ammo";)

Share this post


Link to post
Share on other sites

Thanks Vengeance. As for the out of ammo call-out I checked but I don't think thats part of my scripts, it might be incorporated as part of the game though.

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  

×