Jump to content

Recommended Posts

Any chance of making it work on the LHD too? I made 50% of the changes required to make this work (in old version), but can't find where it sets the position for some of the remaining states.

Does this support revive for 2 teams? i.e. both BluFor and OpFor.

Share this post


Link to post
Share on other sites

Thanks Vengeance :)

@Dr - the current version allows respawning on the LHD if thats what you're after - also its a fairly simple matter to make it work with 2 teams - just need to have a revive_init_west and revive_init_east and some code in the init.sqf so that depending on the players side it runs the correct revive_init.sqf. I can send you an example if you like just PM your email address mate.

Share this post


Link to post
Share on other sites

I've tried but couldn't get it work so far. Is it possible to disable the respawn completely so that you can only be revived for 5 times after which you die and mission will end unless all team members get unconcious which will also lead to failure? How the revive_init.sqf should be modified to get it right?

Share this post


Link to post
Share on other sites

Note: will update first post in thread if I get feed back suggesting that all's OK.

We'll have a coop evening today. I'll update the revive script for my missions (I'm glad that's my already planned work :)) so I can give you a feedback the next morning.

Share this post


Link to post
Share on other sites

Here's the revive_init.sqf options for a basic set-up for six players (s1,s2,s3,s4,s5,s6). Five minute revive time limit (300 seconds) then the player dies outright and mission ends when all players are unconscious, no respawn points, no welcome screen.

/*
 ARMA2 REVIVE SCRIPT - AI enabled or disabled

 © AUGUST 2009 - norrin (norrin@iinet.net.au)

 Version:  0.3 ArmA2	
*******************************************************************************************************
 See release notes for details on contributors and instructions for incorporating revive scripts into your  own missions
************************************************************************************
Start revive_init.sqf
*/
// =====================================================================================================================
// DO NOT MODIFY THIS CODE
// =====================================================================================================================
// sickboy's code modified by _xeno
T_INIT 	= false;
T_Server 	= false; 
T_Client 	= false; 
T_JIP 	= false;

T_MP = (if (playersNumber east + playersNumber west + playersNumber resistance + playersNumber civilian > 0) then {true} else {false});

if (isServer) then 
{
T_Server = true;
if (!isNull player) then {T_Client = true};
T_INIT = true;
} else {
T_Client = true;
if (isNull player) then 
{
	T_JIP = true;
	[] spawn {waitUntil {!isNull player};T_INIT = true};
} else {
	T_INIT = true;
};
};
waitUntil {T_INIT};
// =====================================================================================================================
// THE FOLLOWING CODE CAN BE MODIFIED
// =====================================================================================================================
// GENERAL REVIVE OPTIONS  (Off = 0, On = 1)
_mission_end_function 				= 1;				//array no.0  - mission ends when all players are unconscious
_call_out_function 				= 1;				//array no.6  - whether a unit calls out while unconscious
_water_dialog 					= 1;				//array no.45 - whether a dialog appears when a unit dies in water so that it can auto wash ashore 
_unconscious_drag 				= 1;				//array no.39 - whether a unit can drag the bodies of unconscious players 
_load_wounded					= 1;				//array no.61 - allows you to load unconscious units on vehicles
_altUnc_animation 				= 1;				//array no.54 - use alternate unconscious animation
_JIP_spawn_dialog 				= 0;				//array no.2  - whether a dialog appears when a player JIP so that he can be transported to a spawn point near the action 
_time_b4_JIP_spawn_dialog 			= 10000;			//array no.17 - time before the respawn dialog appears for JIP players 
_perpetual_server					= 0;				//array no.62 - NOT IMPLEMENTED
// ==================================================================
// LIST OF PLAYABLE UNITS
NORRN_player_units = ["s1","s2","s3","s4","s5","s6"];
// ==================================================================
// WELCOME SCREEN
//  
// ==================================================================
// REVIVE OPTIONS
_max_respawns 					= param2;			//array no.38 - Number of lives per unit
_JIP_respawns					= [0,0];			//array no.63 - 0 - off or the number of lives players receive when they join in progress , JIP time after the mission starts 
_revive_timer 					= 1;	 			//array no.7  - Whether you want to limit the amount of timer a player has while unconscious
_revive_time_limit 				= 300;				//array no.27 - Amount of time a player remains unconscious before respawning or dying
_revive_damage 					= 0;				//array no.37 - Unit's level of damage following revive
_unconscious_markers 				= 1;				//array no. 4 - Whether a marker appears on the game map at the location of the unconscious unit
_caseVAC						= [0, [""]];		//array no.64 - Allows units to be taken to a hospital etc to be revived
_mediVAC						= [];				//array no.65 - NOT IMPLEMENTED
_chance_ofDeath					= [0,0];			//array no.66 - Two parameters in the array the first switches off/on (0/1) chance of death when shot, increases dues to hit location and number of times revived and the second parameter switches on/off the decreasing respawn timer based on how many times you have been revived, if using set respawn-time to at least 300 seconds.
_dualTimer						= 0;				//array no.67 - NOT IMPLEMENTED - normal units can only revive for eg 30 seconds whereas medics can heal players up to 120 secs - array - [0/1 - off/on, revive timer for normal unit, timer for medic] 
_deadSpectator_cam 				= 1;				//array no.92 - leave as 0 - whether a unit can spectate other friendly units when it has run out of lives
// ==================================================================
// RESPAWN OPTIONS
_no_respawn_points 				= 0;				//array no.12 - no of respawn points (Max number 4)  
_Base_1 						= "";			//array no.13 - spawn position names  
_Base_2 						= "";		//array no.14
_Base_3 						= "";		//array no.15
_Base_4 						= "";	//array no.16 
_Base_free_respawn 				= [1,1,0,0];		//array no.36 - select whether to allow respawning at spawn points even if enemy troops are present (options OFF = 0, ON = 1) 
_respawn_at_base_addWeapons 			= 1;				//array no.11 - unit respawns with waepons it commenced the mission with  
_respawn_at_base_magazines 			= [];				//array no.34 - If using the respawn_at_base_addWeapons option then place the magazine and weapon 
_respawn_at_base_weapons 			= [];				//array no.35   types in the following arrays, if left blank respawns with weapons from mission start
_respawn_position 				= 3;				//array no.28 - 0 - respawn at base_1; 1 -  the closest enemy free respawn point; 2 - players choice; and 3 -  dies
_respawnAtBaseWait				= [0,10];			//array no.68 - Two parameters: 1st if = 1 makes players that respawn at base wait for (parameter 2) seconds before being able to see surroundings   
_objectiveBasedRP					= []; 				//array no.69 - NOT IMPLEMENTED
// Mobile Spawn Settings
_mobile_spawn 					= 0;				//array no.51 - set to 1 if you want to use mobile spawn	
_mobile_base_start 				= "objNull";		//array no.52
_mobile_base2_start 				= "";				//array no.70 - NOT IMPLEMENTED
_mobile_type 					= 1;				//array no.60 - set as 0 - for vehicle and 1 for man
_mobile_man 					= objNull;  				//array no.53 - place name of unit here or if not used make sure set as objNull
_mobile_man2					= objNull;			//array no.71 - NOT IMPLEMENTED
// ==================================================================
// UNITS THAT CAN REVIVE/UNITS THAT CAN BE REVIVED
_can_revive 					= "soldierWB";		//array no.18 
_can_revive_2 					= "";				//array no.19
_can_revive_3					= "";				//array no.72 - NOT IMPLEMENTED
_can_revive_4					= "";				//array no.73 - NOT IMPLEMENTED
_can_be_revived 					= "soldierWB";		//array no.20  
_can_be_revived_2 				= "";				//array no.21 
_can_be_revived_3					= "";				//array no.74 - NOT IMPLEMENTED 
_can_be_revived_4 				= "";				//array no.75 - NOT IMPLEMENTED
_medic_1						= "";				//array no.76 - Used in conjunction with medpacks and bleeding	
_medic_2						= "";				//array no.77 - Used in conjunction with medpacks and bleeding
_medic_3						= "";				//array no.78 - NOT IMPLEMENTED	
_medic_4						= "";				//array no.79 - NOT IMPLEMENTED	
//========================================================
// MEDPACK AND BLEEDING OPTIONS
_medpacks						= 0;				//array no.80 - Whether you want to give the units a limited number of revive kits 0/1 - no/yes
_stabilisation					= 0;				//array no.81 - NOT IMPLEMENTED
_bleeding 						= 0;				//array no.82 - Make units bleed and require bandages
_medic_medpacks 					= 5;				//array no.83 - No of medpacks for units specified in the _medic variables - they are required for reviving units		
_unit_medpacks 					= 5;				//array no.84 - No of medpacks for units specified in the _can_revive variables - they are required for reviving units			
_medic_bandages 					= 5;				//array no.85 - Bandages stop bleeding		
_unit_bandages 					= 5;				//array no.86 - 
_medic_stable					= 0;				//array no.100 - NOT IMPLEMENTED
_unit_stable					= 0;				//array no.101 - NOT IMPLEMENTED
_stabTime_tillDeath				= 0;				//array no.87 - NOT IMPLEMENTED //Time until death following revive without stabilisation
// ==================================================================
// ENEMY SIDE TO PLAYABLE UNITS
_no_enemy_sides 					= 1;				//array no.22 - No of Enemy sides (0, 1 or 2). 
_enemy_side_1 					= "EAST";			//array no.23 - Enemy sides can be "EAST", "WEST", "GUER" etc  
_enemy_side_2 					= "";				//array no.24 
_enemy_side_3 					= "";				//array no.88 - NOT IMPLEMENTED
_enemy_side_4 					= "";				//array no.89 - NOT IMPLEMENTED
// ==================================================================
// FRIENDLY SIDE TO PLAYABLE UNITS
_allied_side_1 					= "WEST";			//array no.42 - Friendly sides can be "EAST", "WEST","RESISTANCE" etc.  
_allied_side_2 					= "WEST";			//array no.43 - If all players are from the same side make sure you set the same side for both variables eg "WEST", "WEST"
_allied_side_3 					= "";				//array no.90 - NOT IMPLEMENTED
_allied_side_4 					= "";				//array no.91 - NOT IMPLEMENTED
// ==================================================================
// UNCONSCIOUS CAMERA OPTIONS
_follow_cam 					= 1;				//array no.5  - option to allow viewing of friendly units while unconscious
_follow_cam_distance				= 250;				//array no.32 - the range that unconscious players can spectate friendly units
_follow_cam_team	   				= 0;				//array no.44 - set to 1 if you wish unconscious players only to spectate players within NORRN_player_units array
_top_view_height 	   				= 70;				//array no.55 - allows you to set the top down camera height 
_visible_timer 					= 1;				//array no.41 - view a cound-down timer while unconscious
_unconscious_music 				= 0;				//array no.46 - music must appear as unc_theme in music.hpp
// ==================================================================
// RESPAWN DIALOG OPTIONS
_nearest_teammate_dialog 			= 0;				//array no.3  - whether a respawn dialog appears when there are no players within this distance  
_all_dead_dialog 					= 0;				//array no.1  - whether a respawn dialog appears when all players are unconscious (_all_dead_player = 1)  
_respawn_button_timer 				= 10000;			//array no.25 - Time until respawn button appears (0 = approx. 12 seconds), NB: Set to a high number like 100000 seconds if you do not want
_distance_to_friend 				= 10000;				//array no.26 - If the closest friendly unit is further than this distance away trigger respawn dialog 
_all_dead_player 					= 0;				//array no.56
_all_dead_distance 				= 10000;			//array no.57 - whether a respawn dialog appears when all players within a specified distance are unconscious (_all_dead_player = 1)
// ==================================================================
// Bonus life for aiding team mates function
_reward_function 					= 0; 				//array no.96 - specify whether a unit receives bonus lives for reviving other players
_revives_required 				= 0;				//array no.97 - Number of revives required before recieving a bonus life
// ==================================================================
// Team kill function
_team_kill_function 				= 0;    			//array no.98 - specify whether a unit loses a life for killing team mates
_no_team_kills 					= 0;				//array no.99 - Number of teamkills before punishment
// ==================================================================
// CONFIGURABLE OPTIONS FOR HEAL YOURSELF FUNCTION
_heal_yourself 					= 1;				//array no.8  - whether a unit can heal damage to itself
_no_of_heals 					= 2;				//array no.29 - Number of heals that each player gets during a mission  
_lower_bound_heal 				= 0.1;				//array no.30 - The damage level range between which the heal action becomes available 
_upper_bound_heal 				= 0.8;				//array no.31
// ==================================================================
// AI REVIVE BEHAVIOUR OPTIONS
_goto_revive 					= 0;				//array no. 9  - closest AI automatically moves to revive a downed team mate
_AI_smoke 						= 0;				//array no. 40 - if available reviving AI throws smoke on downed AI position
_AI_aware 						= 0;				//array no. 49 - AI will clear an enemy units it is aware of before auto reviving
_AI_cover 						= 1;				//array no. 50 - second AI unit moves with AI reviver to give cover
_AI_dismount 					= 0;				//array no. 58 - toggles ability of reviving AI units to dismount vehicles (1 = dismount)
_call_for_AI_help 				= 1;				//array no. 59 - allows AI units to call for help 
_goto_revive_distance 				= 500;				//array no. 33 - distance AI units will move to revive a downed team mate
// ==================================================================
// OPTIONS FOR PLAYER'S DEAD BODIES AND EQUIPMENT - Additional revive functions with many thanks to alef (0 - off, 1 - on except for _bury_timeout)
_drop_weapons 					= 0; 				//array no.93  - should the respawned player drop his weapons where he died?
_cadaver 						= 0; 				//array no.94 - should the respawned player's body remain there?
_bury_timeout 					= 0;				//array no.95 - if drop weapons OR player body, how long before the body is buried?
												// 0=maximum (1200s) , n=seconds up to 1200s (hard coded)
// ==================================================================
// USER CODE - eg. NORRNCustonexec1="execvm ""myscript.sqf"";hint ""myoutput"";"
NORRNCustomExec1					=""; 				// Exec1 occurs following being revived
NORRNCustomExec2					="";  				// Exec2 occurs when you team kill
NORRNCustomExec3					="";  				// Exec3 occurs when you spawn at base
NORRNCustomExec4					="";  				// Exec4 occurs when you try and spawn at base but it is still occupied
NORRNCustomExec5					="";  				// Must use variables: MAP_r_rejoin (false - first time, 
												// true - rejoining the server, and 
												// MAP_r_no_lives - number of lives if you rejoin server) 
// =====================================================================================================================
// DO NOT MODIFY THE FOLLOWING CODE
// =====================================================================================================================
NORRN_revive_array = [];
NORRN_revive_array = [_mission_end_function,_all_dead_dialog,_JIP_spawn_dialog,_nearest_teammate_dialog,_unconscious_markers,_follow_cam,_call_out_function,_revive_timer,
_heal_yourself,_goto_revive,_unconscious_invincibility,_respawn_at_base_addWeapons,_no_respawn_points,_Base_1,_Base_2,_Base_3,_Base_4,_time_b4_JIP_spawn_dialog,
_can_revive,_can_revive_2,_can_be_revived,_can_be_revived_2,_no_enemy_sides,_enemy_side_1,_enemy_side_2,_respawn_button_timer,_distance_to_friend,
_revive_time_limit,_respawn_position,_no_of_heals,_lower_bound_heal,_upper_bound_heal,_follow_cam_distance,_goto_revive_distance,_respawn_at_base_magazines,
_respawn_at_base_weapons, _Base_free_respawn, _revive_damage, _max_respawns, _unconscious_drag,_AI_smoke,_visible_timer,_allied_side_1,_allied_side_2,_follow_cam_team,
_water_dialog, _unconscious_music, _enemy_units_1, _enemy_units_2, _AI_aware,_AI_cover,_mobile_spawn,_mobile_base_start,_mobile_man,_altUnc_animation,_top_view_height,
_all_dead_player,_all_dead_distance,_AI_dismount,_call_for_AI_help,_mobile_type,_load_wounded,_perpetual_server,_JIP_respawns,_caseVAC,_mediVAC,_chance_ofDeath,_dualTimer,
_respawnAtBaseWait,_objectiveBasedRP,_mobile_base2_start,_mobile_man2,_can_revive_3,_can_revive_4,_can_be_revived_3,_can_be_revived_4,_medic_1,_medic_2,_medic_3,_medic_4,
_medpacks,_stabilisation,_bleeding,_medic_medpacks,_unit_medpacks,_medic_bandages,_unit_bandages,_stabTime_tillDeath,_enemy_side_3,_enemy_side_4,
_allied_side_3,_allied_side_4,_deadSpectator_cam,_drop_weapons,_cadaver,_bury_timeout,_reward_function,_revives_required,_team_kill_function,_no_team_kills,_medic_stable, _unit_stable];

// start related revive functions
[] execVM "revive_sqf\init_related_scripts.sqf";

if (true) exitWith {};	
//Last edited 18/08/09

Share this post


Link to post
Share on other sites

Sorry norrin :( Couldn't do any tests with revive 0.3 beta yesterday. There was an error message (I didn't write it down). Seemed like a file was missing inside the revive folder. I simply deleted the old folders and inserted the new ones. I'll have a closer look into it today.

Share this post


Link to post
Share on other sites

Revive 0.3b beta update

Download

http://norrin.org/downloads/ArmA2/revive/AI_enabled/Revive_TEST_03b.utes.rar just replace the revive_sqf folder in your mission file with the one in the download.

Fixes

*Number of medpacks used for AI units

*JIP respawn dialog now works correctly with mobile respawn and with the special respawn points eg chopper and LHD

@Legis - mate I've converted and tested 3 missions so far by swapping the revive_sqf folder and haven't come across any missing file errors, so please let me now if it keeps happening.

Share this post


Link to post
Share on other sites

NORRIN

I tested .03 in Sharks EOD Mission converted to AI Enabled Mode (Thanks Shark adding a Gnat Sub Insertion and Chinook CRRC Drop;)) for hours last night, worked great except for respawning in the middle of the ocean when I selected Mobile Respawn Point. Can't remember if I rejoined but looks like you addressed that in .03b. I need to do more JIP testing.

I had no issues with missing files. I converted 3 missions, EOD, Russian Occupation, Special Forces Neptune.

I will try this one in same mission today or tomorrow.

Thanks

Edited by vengeance1

Share this post


Link to post
Share on other sites

gday mate ..

forgive my ignorance .. but

is it possible to present the jip/respawn dialog to the player on mission start

without starting the unit in an unconcious state ...

@ vengeance

anytime mate feel free to alter at will ... :)

(be real nice to join you sometime see how it plays)

Share this post


Link to post
Share on other sites

I managed to get Revive 0.3b working, but at one point something went wrong. I had a group of 20 AI soldiers using the revive script. I played a mission on the dedicated server. The enemy decided to crash a Mi-8 into my group. Almost everybody got killed except for 4 units. I think the units got kicked out of the revive script. They weren't in my group anymore and near none of the respawn markers. I don't know if they spawned at respawn_west or not, but I guess so. I don't know why but somehow there is are problem with explosions and the revive script for ages now :(

There were no errors in the RPT file reported. A few seconds after that incident my ArmA II crashed relating to a fault adress in the d3d9.dll, but I think it's not related to the script. Somehow the system was overwhelmed by something.

Share this post


Link to post
Share on other sites

This came from Xeno:

Edit: There's another bug in A2 1.03, dead AI units can't be deleted sometimes (only in MP) although the object refs get into my dead list array just fine,

I noticed in Revive sometimes Dead Units did not get deleted.

Share this post


Link to post
Share on other sites

@legis - I've only every tried killing 4 units in a Hummer in a single explosion with the latest versions (never had any probs) but I'll try blowing up a truck full of units and see if I can trigger the bug.

@Vengeance - thanks for that info - there is a possibility that if I remove all the dead units weapons first they delete fine (need to test this further) so I may have to modify the code if its not fixed in the next patch.

@Shark -Yep just set in the revive_init.sqf

_JIP_spawn_dialog = 1;
_time_b4_JIP_spawn_dialog = 300;

Where the 300 is the time in seconds after the mission starts that you want the JIP dialog to start appearing for joining players.

Revive 0.3b beta

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

Edited by norrin

Share this post


Link to post
Share on other sites

Gents, I'm trying to set the _revive_damage variable such that upon revive, a player is functional but badly wounded (e.g. can only crawl, and needs medic to heal).

Setting this to 0.9 results in wavering gunsights and visible blood, but player can still run. Setting 0.99, 0.95 etc simply results in player dying again straight after being revived. Anyone know a magic number to achieve what I'm after, or some other way of doing so?

Basically when a player goes down, I want anyone to be able to revive them, so they will be able to see, and shoot very poorly but cannot move much at all, and perhaps crawl or walk at best. Only medic can heal them fully... Player is sort of functional, but very vulnerable and still a liability

Share this post


Link to post
Share on other sites

gnarly, from my experience (reviving with 0.7 damage and only medics can heal) it was a horrible experience. On paper having medics be important is a great idea, but gameplay wise everything took forever and was a pain. :)

Share this post


Link to post
Share on other sites
Basically when a player goes down, I want anyone to be able to revive them, so they will be able to see, and shoot very poorly but cannot move much at all, and perhaps crawl or walk at best. Only medic can heal them fully... Player is sort of functional, but very vulnerable and still a liability

Hi mate,

Here's a script by Hulking Unicorn for the old ArmA revive that I've just updated for ArmA2 that stops revived players from kneeling and standing until they are fully healed by a medic: http://norrin.org/downloads/ArmA2/revive/AI_enabled/fix/rPrn.rar

To use

* You'll need to copy the rPrn.sqf into your mission folder.

In the revive_init.sqf:

* set the revive_damage to at least 0.7 eg.

_revive_damage 	= 0.7;

* in NORRNCustomExec1 put

NORRNCustomExec1 ="if (_name == player) then {[_name] execVM 'rPrn.sqf'}";

@Legis - I've just tried blowing up a truck containing 10 playable AI and another player (all revivable) without problems, all the units fell unconscious and remained in my group and could be revived/dragged etc

Revive 0.3b

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

Edited by norrin

Share this post


Link to post
Share on other sites

Very strange ... maybe you should recreate the way it happened in my mission. The soldiers were on an open field near Pogorevka. The Mi-8 crashed directly into the group. So maybe the problems differ in a way if people are inside vehicles or outside of vehicles. Or maybe the type of the explosion shell triggers the problem. I simply don't know :( It could also be a total randomized error. I'll a look into it in the future.

Share this post


Link to post
Share on other sites

Revive 0.3 Beta Update (Version 0.3C)

Download

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

Just replace the revive_sqf folder in your mission directory

Fixes

* JIP errors

* Dead body removal - found the code error responsible for this

* Updated some global variables to new ArmA2 format

* Fixed unlimited revives when JIP revive function used

* Fixed slopeFix function

Share this post


Link to post
Share on other sites

Thanks NORRIN,

I'll give this update a try with Shark's mission (thanks Shark hope you don't mind, also improved the Chinook Drop a lot).

QUESTION: I is possible to have some of your AI team respawn as normal in AI-Enabled but NOT Playable when part of your group? Example: I have say three AI in the group NON-Playable and 3 AI Playable.

Thanks

Share this post


Link to post
Share on other sites
So you want revivable non playable AI units? Its possible mate but there would be a lot of new code involved so its a bit outside my present goal, which is to get the current version bug free - sorry mate.

Revive Beta Version 0.3C: http://norrin.org/downloads/ArmA2/revive/AI_enabled/Revive_TEST_03c.utes.rar

No big deal, always looking for new features.

I tested last night new version but got killed in water while in boat in EOD mission, could not Wash Ashore, had button but never happened, could not respawn, had to Abort. Could be my mission I will test again tonight to confirm.

Share this post


Link to post
Share on other sites

Why do I get "Player is dead. Please press escape, return to the unit selection menu and choose another playable unit"?

Share this post


Link to post
Share on other sites
Why do I get "Player is dead. Please press escape, return to the unit selection menu and choose another playable unit"?

Hi mate,

Is it possible that you have the respawn_west marker placed where you units start on the map? If it is move it right out of the combat area.

norrin

Share this post


Link to post
Share on other sites

no the markers are placed outside the regular map. I have only base defined as a respawn. Sometimes its work, but when its a headshot or serious wound it doesn't let you select respawn at base.

Share this post


Link to post
Share on other sites
no the markers are placed outside the regular map. I have only base defined as a respawn. Sometimes its work, but when its a headshot or serious wound it doesn't let you select respawn at base.

Mate email me your mission here and I'll take a look. Are you using a beta version of ArmA2?

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

×