Jump to content

Recommended Posts

Jman;2612979']Yes because that's what setting BTC_respawn_gear = 1 does.

Odd, I have it set to "1" and we are still respawning/reviving with our base class gear, not the gear we died with.

Share this post


Link to post
Share on other sites

I have made a coop mission where the players play as the Independent AAF. At the base I have added a flag object named BTC_base_flag_guer (which matches the script) and a marker named Respawn_Guer. Both the flag object and the marker are right next to each other. I also have a Strider named Mobile_Respawn. I changed the name in the script to match the vehicles name. Everything works (Mobile Respawn / Respawn on Squad Leader) except the base respawn. If you respawn at base it dumps you in the south west ocean. I'm sure there is a simple fix for this, I just have no idea what I'm doing wrong.

Thanks in advance

Edited by Dertywerk

Share this post


Link to post
Share on other sites

I think the marker should be named "respawn_guerilla" instead of guer

respawn_west; respawn_east; respawn_guerrila; respawn_civilian

Share this post


Link to post
Share on other sites

Hello all once again!

I have a COOP mission with an 8 man weapons squad, and a 2 man sniper team residing on a 10 man dedicated server.( AI disabled (false) in the description.ext. )

As I am the only East Coast US (EST) member of my unit, I find myself alone on the server just about all the time so I decided to included the High Command and Subordinate Command modules along with some forces to give me a fighting chance.

And it works great!

That is, until I die. If i am respawned, ( I use =BTC=Revive ) it seemingly breaks the synchronization and I can no longer select the high command menu once I'm back.

Any idea or tips?

Might not even be revive, just curious of anyone else has had this issue and if so how they rectified it. (Forum search yielded no results)

Thank you.

Fixed: respawning with gear breaks it.

Edited by Dark_Spectre

Share this post


Link to post
Share on other sites

I am new to ARMA 3 scripting, but how can I use this revive script in Altis Life? I can get it to work and perform revive, but player that is revived can't get out of respawn selection screen.. any idea on how to solve this?

Share this post


Link to post
Share on other sites

Any idea what might be causing this error?

tlhfCXk.jpg

init.sqf:

isACE = false;

sideW = West;
sideE = East;

// Disable saving to save time
enableSaving [false, false];

// Disable automatic radio messages
enableSentences false;

// Configuration values
[] call compile preprocessFileLineNumbers "configuration.sqf";

// Run client script on clients (including non-dedicated host).
if (!isDedicated) then
{
waitUntil {!isNull player};
waitUntil {time > 0.01};
sidePlayer = side player;

[] execVM "client.sqf";
};

// BTC_revive
call compile preprocessFileLineNumbers "=BTC=_revive\=BTC=_revive_init.sqf";

// Supply paradrop
call compile preprocessFileLineNumbers "logistics\supply_init.sqf";

// Run server scripts on server (dedicated or hosted)
if (isServer) then
{
[] execVM "server.sqf";
};

description.ext:

disabledAI = 1;
respawn = 3;
respawndelay = 1;

class Header
{
gameType = COOP;
minPlayers = 1;
maxPlayers = 17;
};

class params
{
class NightOrDay
{
	title = $STR_NightDay;
	values[] = {0, 1, 2, 3};
	texts[] = {$STR_Day, $STR_Moon14, $STR_Moon12, $STR_Moon34};
	default = 0;
};

class nameLength
{
	title = $STR_MarkerNameLength;
	values[] = {0, 1, 2, 3, 4, 5, 6, 7, 10, 20};
	texts[] = {$STR_NoMarkerNames, "1", "2", "3", "4", "5", "6", "7", "10", "20"};
	default = 4;	
};
};

class CfgCommunicationMenu
{
   class SupplyParadrop
   {
       text = $STR_SupplyParadrop; // Text displayed in the menu and in a notification
       submenu = ""; // Submenu opened upon activation (expression is ignored when submenu is not empty.)
       expression = "[_pos] call fnc_sendSupplyParadropRequest"; // Code executed upon activation
       icon = "\a3\Ui_f\data\GUI\Cfg\CommunicationMenu\supplydrop_ca.paa"; // Icon displayed permanently next to the command menu
       cursor = "\a3\Ui_f\data\IGUI\Cfg\Cursors\iconCursorSupport_ca.paa"; // Custom cursor displayed when the item is selected
       enable = "1"; // Simple expression condition for enabling the item
       removeAfterExpressionCall = 0; // 1 to remove the item after calling
   };
};

author = "Gal Zohar";
onLoadName = "ALiVE IDF";
overviewText = "IDF mission using the ALiVE modules.";
onLoadMission = "IDF mission using the ALiVE modules.";
//loadScreen = "logo.jpg";
//overviewPicture = "logo.jpg";
onLoadIntroTime = 0;

//joinUnassigned = 0;

#include "=BTC=_revive\=BTC=_respawn.h"

=BTC=_revive_init.sqf:

/*
Created by =BTC= Giallustio
version 0.96 Offical release
Visit us at: 
http://www.blacktemplars.altervista.org/
06/03/2012
*/

////////////////// EDITABLE \\\\\\\\\\\\\\\\\\\\\\\\\\
BTC_r_new_system    = 1; //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    = 0;
BTC_active_lifes    = 0;
BTC_lifes           = 10;
BTC_spectating      = 0;//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    = 1;//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    = 0;
BTC_active_mobile   = 0;//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  = 0;//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_objects_actions_east = [];
BTC_objects_actions_guer = [];
BTC_objects_actions_civ  = [];
if (isServer) then
{
BTC_vehs_mobile_west = [];//Editable - define mobile west
BTC_vehs_mobile_east = [];//Editable - define mobile east
BTC_vehs_mobile_guer = [];//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";};
if (BTC_respawn_marker == "respawn_civ") then {BTC_respawn_marker = "respawn_civilian";};
BTC_r_base_spawn = "Land_HelipadEmpty_F" createVehicleLocal getMarkerPos BTC_respawn_marker;
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;};
	};
}
else
{
	BTC_vehs_mobile_west_str = [];BTC_vehs_mobile_east_str = [];BTC_vehs_mobile_guer_str = [];BTC_vehs_mobile_civ_str = [];
};
BTC_gear = [player] 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";
};

Whole mission download:

http://www.mediafire.com/download/m9udjb7vhcfud7n/repro.zip

Any help would be much appreciated.

Share this post


Link to post
Share on other sites

Fixed few posts back. I'm away from home and i can't update the zip

Share this post


Link to post
Share on other sites

Replace all the class BTC_respawn_button_dialog in the =BTC=_respawn.h file

by

class BTC_respawn_button_dialog
{
idd = -1;
movingEnable = 1;
onLoad = "";//"uiNamespace setVariable [""BTC_respawn_dialog"", _this select 0];[] spawn BTC_check_kit;if (getNumber (configFile >> ""cfgVehicles"" >> typeof player >> ""attendant"") == 1) then {[] spawn BTC_ctrlShow;};_spawn = [] spawn BTC_check_sniper;";
objects[] = {};
class controlsBackground 
{
};
class controls 
{
	class respawn_button : Button 
	{
		idc = 9;
		text = "Respawn"; 
		action = "closeDialog 0;_respawn = [] spawn BTC_player_respawn;";
		x = 0.7;
		y = 0.6;
		default = true;
		colorFocused[] = { 1, 1, 1, 1 };
		colorBackgroundFocused[] = { 1, 1, 1, 0 };  
	};
};
};

Share this post


Link to post
Share on other sites

This results in error:

...line 165: /BTC_respawn_button_dialog/controls.respawn_button: Undefined base class 'Button'

Share this post


Link to post
Share on other sites

seems nobody has reported it so i will do. You are using a function to store player gear each time this one takes damages,

BTC_gear = [] call BTC_get_gear;

But when you get near from a burning vehicle the function is executed many time and results in a massive lag then freeze until the fire has gone. I noticed that for lower configs (i was on a laptop when my graphic card was dead) it also produce lags when you take a bullet... We are alot to play together and we encounted this problem on every mission that are using BTC revive.

Share this post


Link to post
Share on other sites

Never noticed playing, but i'll look into it when i'll come back home. You can disable it btw.

Share this post


Link to post
Share on other sites

What is the best way to have -- call compile preprocessFileLineNumbers "=BTC=_revive\=BTC=_revive_init.sqf"; listed in init.sqf?

listed 1st vs other sqf files? together?

I am trying to have mobile spawn work and for some reason BTC is not loading. Are there any other sqf files or mods that people know that interfere with BTC?

I have strobes, BTC revive, random cachemarker spawn, field repair, teleport to TL, fastropes in this init file, everything is loading except BTC.

I will load the file when I get home.

Share this post


Link to post
Share on other sites

Is there currently any working version off this script? I have a lot of trouble getting this to work on my missions or any for that matter. Lots of errors boxes and the revive doesn't work. :/

Share this post


Link to post
Share on other sites
Guest

New version frontpaged on the Armaholic homepage.

===================================================

We have also "connected" these pages to your account on Armaholic.

This means in the future you will be able to maintain these pages yourself if you wish to do so. Once this new feature is ready we will contact you about it and explain how things work and what options you have.

When you have any questions already feel free to PM or email me!

Share this post


Link to post
Share on other sites

Is the advanced revive permanently gone on just until you work out some of the kinks? I happen to like this script very much because it was the least buggy advanced revive script. The 173rd airborne Arma 3 platoon uses that particular script for it's official operations.

Share this post


Link to post
Share on other sites

I converted it in mod, fixed it, added more features, so i guess gone. I've to think about the release.

Share this post


Link to post
Share on other sites

Can you add number of lives to lite version and who can revive? Or tell us how we can do that.

Can you also add instant respawn option, like we have base, mobile etc...?

Thanks.

Edited by mladjaSRB

Share this post


Link to post
Share on other sites

Hey Gia, quick question. If using your revive with respawn disabled (BTC_disable_respawn = 1;) at the end of the BTC_revive_time_max period the player still gets the drop down menu showing the respawn locations with a Close and Apply button. Is there any way to interrupt that?

Basically what I'd like to do is that if a player isn't revived in time the 'self-revive' but at random spot from where they went down to simulate some friendly local dragging them to safety and getting them back up.

Even if you can just point me at the location where that menu box is called, I might be able to figure it out from there on my own ;)

Share this post


Link to post
Share on other sites

Not at my pc, but it should be BTC_player_respawn. if you re-define it after load the revive system u won't re-apply the code in case of update. Probably it's not that clear but it's late and i hate to write from phone :p

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

×