Jump to content

Recommended Posts

It seems an initialization problem, but honestly i've no idea where i could start to look...

Share this post


Link to post
Share on other sites

First off my group and I see much potential in this script as it's similar to ACE wounds. I have some feedback for you to look at with the new revive system enabled.

You are able to take way too much damage. It can take over 10 bullets to down someone.

The carry/drag only appears for a short time after someone is downed then disappears.

With BTC_disable_respawn = 1; you can still respawn.

They way my group would like to use this script is that anyone can perform combat medicine for example giving morphine, epi, cpr and bandages. But only a certain unit (medics) can use their medkit to fully heal someone to 100% health. Everything else would be a temporary health boost/temp revive until a medic can fully path you up and stop you from passing out. Right now I don't see an option for this. We would also be amazed that when your downed with (respawning disabled) and your timer runs out you go into a spectator mode. I couldn't test to see if this is what would happen as disable_respawn = 1 would still allow me to respawn.

With this feedback implemented I would see this script being used on every server.

Share this post


Link to post
Share on other sites

I tried out the new medical system and it is simply amazing. No mods and still can can come this close to simulating that.

On the other hand:

I have to agree with Source... There are too many options (scroll wheel? or buttons?, blank screen? or clear screen?) and in some of these combinations, disable_respawn = 1 does not work. I found several combinations where blank screen is off and buttons are disabled which eliminates the respawn options. But this is not always the case.

Share this post


Link to post
Share on other sites

Hi Giallustio;

oooops - got my problem figured out. Anyhow - love the script really enjoying it.

Edited by 7th_Serf

Share this post


Link to post
Share on other sites

Hi Giallustio, any word on the guerrilla mobile respawn issue?

Also.. there's numerous bugs with the new system. When healing/patching yourself up, if you get killed, respawn at base, you cannot run. Have to be killed again.

There's another issue with respawning on people and the respawn button not going away.

Edited by SpectreRSG

Share this post


Link to post
Share on other sites

My group has noticed that we lose our binoculars/rangefinders whenever we are revived. It's actually been going on for a while now as far as updates to the script. Any chance of fixing this in the next release?

Share this post


Link to post
Share on other sites

Also, there should be a better bleeding notification. Like a red border on the screen that fades in and out, colored red.

A question - can you clarify how one becomes wounded versus just instantly dead in this script?

Edited by SpectreRSG

Share this post


Link to post
Share on other sites

Random question, but I'm trying to figure out the cause of an issue I'm seeing in game that may not even be BTC Revive related. Has anyone found that when they get shot or take damage in game they'll randomly switch to a secondary weapon (pistol or launcher)? I originally thought it was just a bug in A3, but someone said it might have something to do with the scripts being used. Since BTC Revive is one of them I'm using, just wanted to see if anyone else using BTC is seeing the same thing to try to narrow it down.

Share this post


Link to post
Share on other sites

Hey all! Back at work!

I'm starting a new project and my time for this script will be very limited.

No new features will be added for a while, i'm planning a new release to fix all the problems you reported, (binocular and rangefinder problem, guer mobile respawn).

I'm also looking for 3d artists, i'll be very happy if someone jump in and help us!

Share this post


Link to post
Share on other sites

Great to hear Giallustio!

Edit: also, Gia, can you explain your design on what is determined to be a kill shot or a wound shot?

Edited by SpectreRSG

Share this post


Link to post
Share on other sites

I just played my own mission using this script. I like the overall idea of this script, but the execution could use some work and overall we all found it kinda annoying. When riding an atv and hitting a fence to pass through it, I would start bleeding and need to bandage myself, and give myself morphine and a bloodtransfution. After all that I would also need a medkit.

And when I went on a slide and jumped down, I ended up blacking out because I didn't have 3 FAKs to heal myself. Also, after reviving someone they walk slow, but it can be bypassed by shooting them and then giving them the whole treatment.

In short, our complaints come down to; it takes a lot of first aid kits, injuries happen too easily and the limping is kinda annoying, and it would be nice to see some other way to compensate for getting revived instead of patched up.

Share this post


Link to post
Share on other sites
I just played my own mission using this script. I like the overall idea of this script, but the execution could use some work and overall we all found it kinda annoying. When riding an atv and hitting a fence to pass through it, I would start bleeding and need to bandage myself, and give myself morphine and a bloodtransfution. After all that I would also need a medkit.

And when I went on a slide and jumped down, I ended up blacking out because I didn't have 3 FAKs to heal myself. Also, after reviving someone they walk slow, but it can be bypassed by shooting them and then giving them the whole treatment.

In short, our complaints come down to; it takes a lot of first aid kits, injuries happen too easily and the limping is kinda annoying, and it would be nice to see some other way to compensate for getting revived instead of patched up.

Just take a medikit with you, but i think that the standard revive system fits more with your gameplay style

Share this post


Link to post
Share on other sites

The problem with taking a medkit with us, is that at the start of this mission, all players gear is removed, and new gear needs to be found. I'll probably end up moving back to the old system.

Share this post


Link to post
Share on other sites

How do I disable the respawn button? I've looked into the configuration file. Can't seem to find anything.

Share this post


Link to post
Share on other sites

Would it be possible to disable the mobile spawn initially, but set on objective where you have to go and capture the respawn vehicle... at which point it becomes active?

Share this post


Link to post
Share on other sites

New bug: Sometimes, when I go down, my Vest and Backpack items are replaced with Watches. Not just 1 for 1. It fills them with Watches. It also fills my empty space in my uniform with watches. If I switch vests, it fills the extra space with watches, infinitely. its happened twice, both times not using the new system.

Dafuq?

---------- Post added at 01:30 ---------- Previous post was at 01:21 ----------

To elaborate: Both times I was the host and playing the Autorifleman unit, using Massi's US SOCOM mod with corresponding mods and units. No effing idea why this keeps happening, but its fairly game breaking for me. I do, however, know what time it is. It doesn't happen to anyone else, and it seems to exclusively affect the Autorifleman.

Share this post


Link to post
Share on other sites

I also happened to one of the guys in my unit - same thing - he's the autorifleman with Massi's mod.

Share this post


Link to post
Share on other sites
I also happened to one of the guys in my unit - same thing - he's the autorifleman with Massi's mod.

Were you using DELTA faction, specifically, or another Massi units faction? Because it happened to me both times as DELTA Autorifleman.

Share this post


Link to post
Share on other sites

We had the sane issue on our MP hosted - not only did a few of us end up with 100's of watches that we couldnt remove as another one would appear in our inventory, it also happened with a few different uniforms. We we using the default ARMA3 characters

Share this post


Link to post
Share on other sites
Were you using DELTA faction, specifically, or another Massi units faction? Because it happened to me both times as DELTA Autorifleman.

we're using the 2012 Ranger uniforms - the Autogunner. That is the only person having the issue. We are also using Massi's SF weapons - and he was using the SAW Para. Hosted server - no other issues.

Share this post


Link to post
Share on other sites

Hey, I see a lot of great potential for this script in making medics actually useful and fun to play, but I've been trying to get it working properly for a while now and I'm a bit confused.

Ideally, I would like to disable respawn entirely and, after you run out of time to be revived, have you die and go into the default BI spectator camera. After reading this thread, I found that (instead of "BTC_disable_respawn = 1" as I first assumed), to disable respawn you need to set:

BTC_active_lifes = 1;
BTC_lifes = 1;

So that's nice, it works and you can get revived without using up that life. Cool.

Thing is, in some cases, if "BTC_respawn_gear" is set to 1, it seems like you get revived with your inventory full of infinite amounts of watches. If it is set to 0, you rise up again and might find that magazines or grenades or other things have been added or removed from your inventory, which is a bit less than ideal, but obviously better than sprouting watches from every pocket. I have yet to try it with the "BTC_loop_check" turned on. I also see some people have reported issues of having binoculars or rangefinders disappear when being revived. Has anyone found a way for these things not to happen?

In an effort to figure out the watch abundance problem, I looked at the code and found these lines in BTC_set_gear:

line 144: while {loadUniform _unit < 1} do {_unit addItem "itemWatch";_watch = _watch + 1;};
line 147: while {loadVest _unit < 1} do {_unit addItem "itemWatch";_watch = _watch + 1;};
line 150: for "_i" from 1 to _watch do {_unit removeItem "ItemWatch";};

As far as I can see, these are the only references to "ItemWatch", "loadUniform", "loadVest", or "_watch" in all of the BTC Revive files. To my eyes (which are relatively new to sqf so I might totally be wrong) it seems like the script first gives you watches until both loadUniform and loadVest are above one, and then removes them again after. But loadVest or loadUniform are not modified anywhere else so it just loops forever, giving you an endless supply of timepieces.

Am I missing something and there's a logic and a purpose to this watch adding or is this an error?

EDIT: Actually, loadUniform and loadVest seem to be functions that look at how much stuff you're carrying in your uniform and vest, so instead of constantly giving you watches it just fills your uniform and vest with watches until it's full and then keeps doing it if you take watches out of there?

Edited by Sniper_Party
Clarification, fixed unfinished sentence

Share this post


Link to post
Share on other sites

I have problem with setting an guer respawn...

I already set mobile_west_0, mobile_west_1 and they work perfect.

I tried to add also mobile_guer_0 and mobile_quer_1 I also added respawn_guer marker to the map and BTC_base_flag_guer sign on the map.

I added BTC_base_flag_guer to init file as I did with the west....

West works Guer doesnt what am i doing wrong ?

Heres the code----

/*

Created by =BTC= Giallustio

version 0.93 Offical release

Visit us at:

http://www.blacktemplars.altervista.org/

06/03/2012

*/

////////////////// EDITABLE \\\\\\\\\\\\\\\\\\\\\\\\\\

BTC_r_new_system = 0; //WIP - set 1 to activate it

BTC_r_wait_for_revive = 1;//If BTC_r_new_system set to 1 you can choose if you want or not a revive time available after death (Similar to wounding system in ACE)

BTC_r_action = 0;//[NOT IMPLEMENTED] - 0 if you don't want the healing animation (ACE style), 1 if you want the animations (You can't stop the animation)

BTC_r_med_fa = 1;//0 for only first aid kit, 1 if you don't have a medikit you need a first aid kit, 2 only medikit

BTC_r_cpr_time = 60;

BTC_r_trans_ratio = 100;

BTC_revive_time_min = 5;

BTC_revive_time_max = 600;

BTC_who_can_revive = ["Man"];

BTC_loop_check = 0;

BTC_disable_respawn = 0;

BTC_respawn_gear = 1;

BTC_active_lifes = 1;

BTC_lifes = 10;

BTC_spectating = 2;//0 = disable; 1 = units group; 2 = side units; 3 = all units

BTC_spectating_view = [0,0];//To force a view set the first number of the array to 1. The second one is the view mode: 0 = first person; 1 = behind the back; 2 = High; 3 = free

BTC_s_mode_view = ["First person","Behind the back","High","Free"];

BTC_black_screen = 0;//Black screen + button while unconscious or action wheel and clear view

BTC_action_respawn = 0;//if black screen is set to 0 you can choose if you want to use the action wheel or the button. Keep in mind that if you don't use the button, the injured player can use all the action, frag too....

BTC_camera_unc = 1;

BTC_camera_unc_type = ["Behind the back","High","Free"];

BTC_respawn_time = 30;

BTC_active_mobile = 1;//Active mobile respawn (You have to put in map the vehicle and give it a name. Then you have to add one object per side to move to the mobile (BTC_base_flag_west,BTC_base_flag_east) - (1 = yes, 0 = no))

BTC_mobile_respawn = 1;//Active the mobile respawn fnc (1 = yes, 0 = no)

BTC_mobile_respawn_time = 30;//Secs delay for mobile vehicle to respawn

BTC_need_first_aid = 1;//You need a first aid kit to revive (1 = yes, 0 = no)

BTC_pvp = 0; //(disable the revive option for the enemy)

BTC_injured_marker = 1;

BTC_3d_can_see = ["Man"];

BTC_3d_distance = 30;

BTC_3d_icon_size = 0.5;

BTC_3d_icon_color = [1,0,0,1];

BTC_dlg_on_respawn = 1;//1 = Mobile only - 2 Leader group and mobile - 3 = Units group and mobile - 4 = All side units and mobile

BTC_objects_actions_west = [bTC_base_flag_west];

BTC_objects_actions_east = [];

BTC_objects_actions_guer = [bTC_base_flag_guer];

BTC_objects_actions_civ = [];

if (isServer) then

{

BTC_vehs_mobile_west = [mobile_west_0,mobile_west_1];//Editable - define mobile west

BTC_vehs_mobile_east = [];//Editable - define mobile east

BTC_vehs_mobile_guer = [mobile_guer_0,mobile_guer_1];//Editable - define mobile independent

BTC_vehs_mobile_civ = [];//Editable - define mobile civilian

};

////////////////// Don't edit below \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\

if (!isDedicated) then {};

//FNC

call compile preprocessFile "=BTC=_revive\=BTC=_functions.sqf";

if (isServer) then

{

//Mobile

BTC_vehs_mobile_west_str = [];BTC_vehs_mobile_east_str = [];BTC_vehs_mobile_guer_str = [];BTC_vehs_mobile_civ_str = [];

if (BTC_active_mobile == 1 && count BTC_vehs_mobile_west != 0) then {for "_i" from 0 to ((count BTC_vehs_mobile_west) - 1) do {_veh = (BTC_vehs_mobile_west select _i);_var = str (_veh);BTC_vehs_mobile_west_str = BTC_vehs_mobile_west_str + [_var];_veh setVariable ["BTC_mobile_west",_var,true];if (BTC_mobile_respawn == 1) then {_resp = [_veh,_var,"BTC_mobile_west"] spawn BTC_vehicle_mobile_respawn;};};} else {{deleteVehicle _x} foreach BTC_vehs_mobile_west;};

if (BTC_active_mobile == 1 && count BTC_vehs_mobile_east != 0) then {for "_i" from 0 to ((count BTC_vehs_mobile_east) - 1) do {_veh = (BTC_vehs_mobile_east select _i);_var = str (_veh);BTC_vehs_mobile_east_str = BTC_vehs_mobile_east_str + [_var];_veh setVariable ["BTC_mobile_east",_var,true];if (BTC_mobile_respawn == 1) then {_resp = [_veh,_var,"BTC_mobile_east"] spawn BTC_vehicle_mobile_respawn;};};} else {{deleteVehicle _x} foreach BTC_vehs_mobile_east;};

if (BTC_active_mobile == 1 && count BTC_vehs_mobile_guer != 0) then {for "_i" from 0 to ((count BTC_vehs_mobile_guer) - 1) do {_veh = (BTC_vehs_mobile_guer select _i);_var = str (_veh);BTC_vehs_mobile_guer_str = BTC_vehs_mobile_guer_str + [_var];_veh setVariable ["BTC_mobile_guer",_var,true];if (BTC_mobile_respawn == 1) then {_resp = [_veh,_var,"BTC_mobile_guer"] spawn BTC_vehicle_mobile_respawn;};};} else {{deleteVehicle _x} foreach BTC_vehs_mobile_guer;};

if (BTC_active_mobile == 1 && count BTC_vehs_mobile_civ != 0) then {for "_i" from 0 to ((count BTC_vehs_mobile_civ) - 1) do {_veh = (BTC_vehs_mobile_civ select _i);_var = str (_veh);BTC_vehs_mobile_civ_str = BTC_vehs_mobile_civ_str + [_var];_veh setVariable ["BTC_mobile_civ",_var,true];if (BTC_mobile_respawn == 1) then {_resp = [_veh,_var,"BTC_mobile_civ"] spawn BTC_vehicle_mobile_respawn;};};} else {{deleteVehicle _x} foreach BTC_vehs_mobile_civ;};

if (BTC_active_mobile == 1) then {publicVariable "BTC_vehs_mobile_west_str";publicVariable "BTC_vehs_mobile_east_str";publicVariable "BTC_vehs_mobile_guer_str";publicVariable "BTC_vehs_mobile_civ_str";};

//

BTC_killed_pveh = [];publicVariable "BTC_killed_pveh";

BTC_drag_pveh = [];publicVariable "BTC_drag_pveh";

BTC_carry_pveh = [];publicVariable "BTC_carry_pveh";

BTC_marker_pveh = [];publicVariable "BTC_marker_pveh";

BTC_load_pveh = [];publicVariable "BTC_load_pveh";

BTC_pullout_pveh = [];publicVariable "BTC_pullout_pveh";

if (BTC_r_new_system == 1) then

{

BTC_anim_pveh = [];publicVariable "BTC_anim_pveh";

BTC_cpr_pveh = [];publicVariable "BTC_cpr_pveh";

BTC_ban_pveh = [];publicVariable "BTC_ban_pveh";

BTC_med_pveh = [];publicVariable "BTC_med_pveh";

};

};

if (isDedicated) exitWith {};

BTC_dragging = false;

BTC_respawn_cond = false;

//Init

[] spawn

{

waitUntil {!isNull player};

waitUntil {player == player};

"BTC_drag_pveh" addPublicVariableEventHandler BTC_fnc_PVEH;

"BTC_carry_pveh" addPublicVariableEventHandler BTC_fnc_PVEH;

"BTC_marker_pveh" addPublicVariableEventHandler BTC_fnc_PVEH;

"BTC_load_pveh" addPublicVariableEventHandler BTC_fnc_PVEH;

"BTC_pullout_pveh" addPublicVariableEventHandler BTC_fnc_PVEH;

"BTC_killed_pveh" addPublicVariableEventHandler BTC_fnc_PVEH;

BTC_r_mobile_selected = objNull;

BTC_r_bleeding = 0;

BTC_r_bleeding_loop = false;

player addRating 9999;

BTC_r_list = [];

BTC_side = playerSide;

BTC_r_s_cam_view = [-15,-15,15];

BTC_respawn_marker = format ["respawn_%1",playerSide];

if (BTC_respawn_marker == "respawn_guer") then {BTC_respawn_marker = "respawn_guerrila";};

BTC_r_base_spawn = "Land_HelipadEmpty_F" createVehicleLocal getMarkerPos BTC_respawn_marker;

if (BTC_pvp == 1) then {if (BTC_respawn_marker == "respawn_civ") then {BTC_respawn_marker = "respawn_civilian";};};

if (BTC_r_new_system == 0) then

{

player addEventHandler ["Killed", BTC_player_killed];if (BTC_respawn_gear == 1) then {player addEventHandler ["HandleDamage", BTC_fnc_handledamage_gear];};

}

else

{

"BTC_cpr_pveh" addPublicVariableEventHandler BTC_fnc_PVEH;

"BTC_ban_pveh" addPublicVariableEventHandler BTC_fnc_PVEH;

"BTC_med_pveh" addPublicVariableEventHandler BTC_fnc_PVEH;

"BTC_anim_pveh" addPublicVariableEventHandler BTC_fnc_PVEH;

player setVariable ["BTC_r_status",[0,0,0,0,0],true];

player addEventHandler ["HandleDamage", BTC_fnc_handledamage];

player addEventHandler ["Killed", BTC_eh_killed];

BIS_fnc_healthEffects_handleDamage_code = {};

BIS_fnc_healtEffects_init = {};

BTC_r_action_menu = true;

BTC_r_med_effect = false;

BTC_is_bleeding = false;

enableCamShake true;

BTC_r_unc = false;

BTC_r_unc_loop = false;

BTC_r_damage = 0;

BTC_r_head = 0;

BTC_r_damage_legs = 0;

BTC_r_damage_hands = 0;

BTC_r_hit = 0;

};

player setVariable ["BTC_need_revive",0,true];

//{_x setVariable ["BTC_need_revive",0,true];} foreach allunits;//[] spawn {while {true} do {sleep 0.1;player sidechat format ["%1",BTC_r_mobile_selected];};};

if (BTC_pvp == 1) then {player setVariable ["BTC_revive_side",str (BTC_side),true];};

player setVariable ["BTC_dragged",0,true];

if (BTC_r_new_system == 0) then {if ([player] call BTC_is_class_can_revive) then {player addAction [("<t color=""#ED2744"">") + ("First aid") + "</t>","=BTC=_revive\=BTC=_addAction.sqf",[[],BTC_first_aid], 8, true, true, "", "[] call BTC_check_action_first_aid"];};} else {player addAction [("<t color=""#ED2744"">") + ("Medical unit check") + "</t>","=BTC=_revive\=BTC=_addAction.sqf",[[],BTC_check_unit_state], 8, true, false, "", "[] call BTC_check_action_unit_state"];player addAction [("<t color=""#ED2744"">") + ("Check yourself") + "</t>","=BTC=_revive\=BTC=_addAction.sqf",[[player],BTC_check_unit_state], -8, false, false, "", "BTC_r_action_menu && format [""%1"",player getVariable ""BTC_need_revive""] == ""0"" && vehicle player == player"];};

player addAction [("<t color=""#ED2744"">") + ("Drag") + "</t>","=BTC=_revive\=BTC=_addAction.sqf",[[],BTC_drag], 8, true, true, "", "[] call BTC_check_action_drag"];

player addAction [("<t color=""#ED2744"">") + ("Carry") + "</t>","=BTC=_revive\=BTC=_addAction.sqf",[[],BTC_carry], 8, true, true, "", "[] call BTC_check_action_drag"];

player addAction [("<t color=""#ED2744"">") + ("Pull out injured") + "</t>","=BTC=_revive\=BTC=_addAction.sqf",[[],BTC_pull_out], 8, true, true, "", "[] call BTC_pull_out_check"];

if (BTC_active_mobile == 1) then

{

switch (true) do

{

case (BTC_side == west) : {{private ["_veh"];_veh = _x;_spawn = [_x] spawn BTC_mobile_marker;{_x addAction [("<t color=""#ED2744"">") + ("Move to mobile " + _veh) + "</t>","=BTC=_revive\=BTC=_addAction.sqf",[[_veh],BTC_move_to_mobile], 8, true, true, "", format ["[""%1""] call BTC_mobile_check",_veh]];} foreach BTC_objects_actions_west;} foreach BTC_vehs_mobile_west_str;};

case (BTC_side == east) : {{private ["_veh"];_veh = _x;_spawn = [_x] spawn BTC_mobile_marker;{_x addAction [("<t color=""#ED2744"">") + ("Move to mobile " + _veh) + "</t>","=BTC=_revive\=BTC=_addAction.sqf",[[_veh],BTC_move_to_mobile], 8, true, true, "", format ["[""%1""] call BTC_mobile_check",_veh]];} foreach BTC_objects_actions_east;} foreach BTC_vehs_mobile_east_str;};

case (str (BTC_side) == "guer") : {{private ["_veh"];_veh = _x;_spawn = [_x] spawn BTC_mobile_marker;{_x addAction [("<t color=""#ED2744"">") + ("Move to mobile " + _veh) + "</t>","=BTC=_revive\=BTC=_addAction.sqf",[[_veh],BTC_move_to_mobile], 8, true, true, "", format ["[""%1""] call BTC_mobile_check",_veh]];} foreach BTC_objects_actions_guer;} foreach BTC_vehs_mobile_guer_str;};

case (BTC_side == civilian) : {{private ["_veh"];_veh = _x;_spawn = [_x] spawn BTC_mobile_marker;{_x addAction [("<t color=""#ED2744"">") + ("Move to mobile " + _veh) + "</t>","=BTC=_revive\=BTC=_addAction.sqf",[[_veh],BTC_move_to_mobile], 8, true, true, "", format ["[""%1""] call BTC_mobile_check",_veh]];} foreach BTC_objects_actions_civ;} foreach BTC_vehs_mobile_civ_str;};

};

};

BTC_gear = [] call BTC_get_gear;

if (BTC_loop_check == 1) then {[] spawn BTC_revive_loop;};

if (({player isKindOf _x} count BTC_3d_can_see) > 0) then {if (BTC_pvp == 1) then {_3d = [] spawn BTC_3d_markers_pvp;} else {_3d = [] spawn BTC_3d_markers;};};

//[] spawn {while {true} do {sleep 0.5;hintSilent format ["%1",BTC_gear];};};

BTC_revive_started = true;

//hint "REVIVE STARTED";

};

Share this post


Link to post
Share on other sites

I don't have anything to add to your post, Sniper_Party, except to say that I have disabled BTC_respawn_gear and re-enabled VAS' Load On Respawn in the missions I develop/support for this very reason. I think the issue may have something to do with yet another DEV build update, because this function did work correctly only days ago without any changes to BTC scripts before or after the problem arose. Hopefully, BIS will settle down with background changes (as they should have during the Alpha) and we'll be able to stabilize the functionality of these scripts and other addons.

As a reminder, Giallustio's group plays on the Stable branch, so these scripts are not really designed for DEV build in the first place.

Share this post


Link to post
Share on other sites

One other thought, have you guys tried using BTC revive without any of the other mods/scripts running to make sure that it's BTC and not one of the other scripts causing the issue?

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

×