Jump to content

[Release] Gebriel Safe Zones Maybe


Recommended Posts

Nice. Thankyou for the reply!

you can't access any player backpack into the safe zone.

the code for that is in the install instructions, on section:

"3) [MISSION FOLDER]\DAYZ_CODE\COMPILE\FN_GEARMENUCHECKS.SQF"

You want the vehicles Gear Protect System on the players backpacks?

Link to comment
Share on other sites

Nice. Thankyou for the reply!

you can't access any player backpack into the safe zone.

the code for that is in the install instructions, on section:

"3) [MISSION FOLDER]\DAYZ_CODE\COMPILE\FN_GEARMENUCHECKS.SQF"

You want the vehicles Gear Protect System on the players backpacks?

ups no :D just forget to edit the gearmenuchecks :P thank you anyway.

Link to comment
Share on other sites

hey can you help please, how do i make all the traders safe zone?

like klen, bash, and the hero and bandit traders and any other trader im going to add?

safezone are where your trader sensors are. soo just add the sensor for your added traders.

 

class Sensors
{
items=12;
class Item10
{
position[]={18520,13225.447,2477.83};
activationBy="WEST";
repeating=1;
interruptable=1;
age="UNKNOWN";
name="ArmorTrader";
expCond="(player distance ArmorTrader) < 75;";
expActiv="[""ArmorTrader"",true,""enter""] spawn player_traderCity;";
expDesactiv="[""ArmorTrader"",true,""leave""] spawn player_traderCity;";
class Effects
{
};
};
class Item11
{
position[]={1673.25,.477,12264};
activationBy="WEST";
repeating=1;
interruptable=1;
age="UNKNOWN";
name="bunker";
expCond="(player distance bunker) < 40;";
expActiv="[""Bunker Entrance"",true,""enter""] spawn player_traderCity;";
expDesactiv="[""Bunker Entrance"",true,""leave""] spawn player_traderCity;";
class Effects
{
};
};
};
};
Link to comment
Share on other sites

NEW FEATURE 1 - *NOT STILL ON MAIN POST*

- Players have a aditional god mode (30 sec) when leaving the safe zones.

- Vehicles have a aditional god mode (15 sec) when leaving the safe zones.

- Players and vehicles can't shot when in the aditional god mode state.

EXTRA REQUERIMENT FOR NEW FEATURE 1 TO WORK

- If you does not use infiStar, the extra requeriment does not exist.

- If you use infiStar, like we do on our server, the extra requeriment is: modify 1 line of infiStar AH.SQF file.

Are you guys interested in see it?

UPDATE ON FIX 1 - SEE POST ABOVE

Remember FIX 1 on the post above this one? This fix will not work if you have infiStar, so players on safes still can die if a vehicle runs over hin and, may be, players still can die for AI.

To that FIX 1 to works on servers with infiStar and players stop diening with those causes (vehicle & AI) it's needed a change in 1 line of infiStar AH.SQF file.

Are you guys interested in see it?

CONCLUSION

So the 30 seconds aditional god mode and a 100% eficienty god mode solution requires the change of 2 lines in infiStar AH.SQF file.

If you don't use infiStar, there will be no extra needs to use those new feature and fix, remembering the new feature is still not revealed on main post.

Yes and what is the fix ^^ ? would be nice to know :P cause the 30 seconds god mode on and of still dont work.

Link to comment
Share on other sites

Is this script compatible with NoxSicarius' Admin Tools? Specifically with it's god mode function. Most safe zone scripts don't get a long with that, was wondering if this is any different.

this will deactivate your god mode just like all others I have tried

It gives god mode then takes it away, so if you have your god mode on when you enter it will disable when you leave.

I just turn it off then on again if i'm doing admin stuff.

Link to comment
Share on other sites

this will deactivate your god mode just like all others I have tried

It gives god mode then takes it away, so if you have your god mode on when you enter it will disable when you leave.

I just turn it off then on again if i'm doing admin stuff.

 

Alright might give this a shot then. I currently have a customized safezone script that does everything I need, except vehicles can still be destroyed from outside the safezone. Not the biggest issue since there are scripts for that aswell, but I might try this out anyway.

Link to comment
Share on other sites

**[RELEASED ON 01 SEPTEMBER]**

**[uPDATED ON 02 SEPTEMBER]**

Rocu,

I have not tested, but this is the [Mission Folder]/custom/safezone.sqf file compatible with NoxSicarus Admin Tools:

With that change, Gebriel Safe Zones will not disable Admin Tools God Mode if it is on.

New/Modified lines have one of those 2 comments:

//ADDED FOR ADMIN TOOLS COMPATIBILITY

//MODIFIED FOR ADMIN TOOLS COMPATIBILITY

 

//Gebriel Safezones
//By Donnovan from Brazil
don_incar = 0;
don_firedEH_1 = nil;
don_godon_1 = 0;
inSafeZone = false;
if (isNil "godMode") then {godMode = false;}; //ADDED FOR ADMIN TOOLS COMPATIBILITY
[] spawn {
	private ["_runOneTime","_canbuild","_don_passengers","_don_veh_crew","_don_player_veh","_don_veh_driver"];
	waitUntil {!(isNil "canbuild")};
	_runOneTime = false;
	_canbuild = canbuild;
	while {true} do {
		waitUntil {!((_canbuild && canbuild) || (!_canbuild && !canbuild)) || !_runOneTime};
		_canbuild = canbuild;
		if (!canbuild) then {
			player_zombieCheck = {};
			fnc_usec_damageHandler = {};
			fnc_usec_unconscious  = {};
			player allowDamage false;
			player removeAllEventHandlers "handleDamage"; don_godon_1 = 1; inSafeZone = true;
                        sleep 0.025;
			[] spawn {
				private ["_myHdEh"];
				while {!canbuild} do {
					_myHdEh = player addEventHandler ["handleDamage", {0}];
					sleep 0.02;
					player removeEventHandler ["handleDamage",_myHdEh];
				};
			};
			if (isNil "don_firedEH_1") then {
				don_firedEH_1 = 0; sleep 0.025;
				don_firedEH_1 = player addEventHandler ["Fired",{
					cutText ["Can't fire with godon.","PLAIN DOWN", 2];
					deleteVehicle (_this select 6);
				}];
			};
		};
		if (canbuild && _runOneTime) then {
			[] spawn {
				for "_x" from 1 to 30 do {
					if (_x >= 6) then {cutText [format ["%1 seconds to godoff and shoton.", 31-_x], "PLAIN DOWN"];};
					sleep 1;
					if (!canbuild) exitWith {};
					if (_x == 30) then { //MODIFIED FOR ADMIN TOOLS COMPATIBILITY
						cutText ["Godoff and Shoton!", "PLAIN DOWN"];
						if (!godMode) then {
							player_zombieCheck = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_zombieCheck.sqf";
							fnc_usec_damageHandler = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_damageHandler.sqf";
							fnc_usec_unconscious = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_unconscious.sqf";
							player allowDamage true;
							player removeAllEventHandlers "handleDamage";
							player addEventHandler ["handleDamage", {_this select 2}];
						};
						player removeEventHandler ["Fired", don_firedEH_1]; don_firedEH_1 = nil;
						don_godon_1 = 0; inSafeZone = false;
					};
				};
			};
		};
		if (!canbuild && don_incar == 1) then {
			_don_player_veh = don_player_veh; don_veh_crew = crew _don_player_veh; _don_veh_driver = driver _don_player_veh;
			_don_player_veh allowDamage false;
			_don_player_veh removeAllEventHandlers "handleDamage";
			_don_player_veh addEventHandler ["handleDamage", {0}];
			_don_player_veh removeAllEventHandlers "Fired";
			_don_player_veh addEventHandler ["Fired",{deleteVehicle (_this select 6);}];			
			//PASSENGERS NAMES
			_don_passengers = ""; {if (Alive _x) then {_don_passengers = _don_passengers + format [" %1",name _x];};} forEach don_veh_crew;
			_don_veh_crew = []; {if (Alive _x) then {_don_veh_crew = _don_veh_crew + [getPlayerUID _x];};} forEach don_veh_crew;
			//ASSING OWNERS
			if (player == _don_veh_driver) then {
				_don_player_veh setVariable ["don_ownerity_code", format ["%1_%2", getPlayerUID player, round diag_tickTime], true];
				_don_player_veh setVariable ["don_crew", _don_veh_crew, true]; //CHANGE
				_don_player_veh setVariable ["don_passengers", _don_passengers, true];
			};
		};
		if (canbuild && don_incar == 1) then {
			_don_player_veh = don_player_veh; _don_veh_driver = driver _don_player_veh;			
			[_don_player_veh] spawn {
				for "_x" from 1 to 15 do {
					sleep 1;
					if (!canbuild) exitWith {};
					if (_x == 15) then {
						(_this select 0) allowDamage true;
						(_this select 0) removeAllEventHandlers "handleDamage";
						(_this select 0) addEventHandler ["handleDamage", {_this select 2}];
						(_this select 0) removeAllEventHandlers "Fired";
					};
				};	
			};
			//DISASSING OWNERS
			if (player == _don_veh_driver) then {
				_don_player_veh setVariable ["don_ownerity_code", nil, true];
				_don_player_veh setVariable ["don_crew", nil, true];
				_don_player_veh setVariable ["don_passengers", nil, true];
			};
		};
		_runOneTime = true;
	};
};
[] spawn {
	private ["_don_veh_crew","_wait_time","_last_mark","_max_time"];
	while {true} do {
		_max_time = 480;
		waitUntil {sleep 0.0625; vehicle player != player};
		don_player_veh = vehicle player;
		don_incar = 1;
		if (!canbuild) then {
			//VEHICLE OWNERITY CHECK
			_don_veh_crew = don_player_veh getVariable ["don_crew", nil]; if (isNil "_don_veh_crew") then {_don_veh_crew = [getPlayerUID player];};
			if !(getPlayerUID player in _don_veh_crew) then {
				call compile format ['if (isNil "don_%1") then {don_%1 = diag_tickTime;}; _last_mark = don_%1;', don_player_veh getVariable ["don_ownerity_code", 0]];
				_wait_time = diag_tickTime - _last_mark;
				if (_wait_time < _max_time) then {
					player action ["getOut", don_player_veh];
					[objNull, player, rSAY, "error1"] call RE;
					cuttext [format ["Owners:%1. %2 seconds to liberate.", don_player_veh getVariable ["don_passengers","Owners not found"], round (_max_time - _wait_time)], "PLAIN DOWN"];
					cad_pvar_smessage = [format ["%1 is messing with your vehicle! %2 seconds to liberate!", name player, round (_max_time - _wait_time)], _don_veh_crew];
					publicVariable "cad_pvar_smessage";
				} else {
					call compile format ['don_%1 = nil;', don_player_veh getVariable ["don_ownerity_code", 0]];
					//DISASSING OWNERS
					don_player_veh setVariable ["don_ownerity_code", nil, true];
					don_player_veh setVariable ["don_crew", nil, true];
					don_player_veh setVariable ["don_passengers", nil, true];
					cuttext [format ["Vehicle is now free for all!"], "PLAIN DOWN"];
					cad_pvar_smessage = [format ["One of your safe vehicle is now free and player %1 is in it!", name player], _don_veh_crew];
					publicVariable "cad_pvar_smessage";
				};
			};
			don_player_veh allowDamage false;
			don_player_veh removeAllEventHandlers "handleDamage";
			don_player_veh addEventHandler ["handleDamage", {0}];
			don_player_veh removeAllEventHandlers "Fired";
			don_player_veh addEventHandler ["Fired",{deleteVehicle (_this select 6);}];
		};
		if (canbuild) then {
			don_player_veh allowDamage true;
			don_player_veh removeAllEventHandlers "handleDamage";
			don_player_veh addEventHandler ["handleDamage", {_this select 2}];
		        don_player_veh removeAllEventHandlers "Fired";
		 	//DISASSING OWNERS
			if (player == driver don_player_veh) then {
				don_player_veh setVariable ["don_ownerity_code", nil, true];
				don_player_veh setVariable ["don_crew", nil, true];
				don_player_veh setVariable ["don_passengers", nil, true];
			};
		};
		waitUntil {sleep 0.0625; vehicle player == player};
		don_incar = 0;
		don_player_veh = nil;
	};
};
//Thanks Maca for the Remote Message idea
"cad_pvar_smessage" addPublicVariableEventHandler {
	private ["_message", "_receivers"];
	_message = (_this select 1) select 0; _receivers = (_this select 1) select 1;
	if (getPlayerUID player in _receivers) then {cutText [_message, "PLAIN DOWN"];};
};
Link to comment
Share on other sites

**[RELEASED ON 01 SEPTEMBER]**

**[uPDATED ON 02 SEPTEMBER]**

Rocu,

I have not tested, but this is the [Mission Folder]/custom/safezone.sqf file compatible with NoxSicarus Admin Tools:

Whit that change, Gebriel Safe Zones will not disable Admin Tools God Mode.

New/Modified lines have one of those 2 comments:

//ADDED FOR ADMIN TOOLS COMPATIBILITY

//MODIFIED FOR ADMIN TOOLS COMPATIBILITY

 

 

Nice job with this. Will try it out as soon as possible. 

Link to comment
Share on other sites

Rocu, have you tested the script compatible with Admin Tolls?

 

Sorry for the delay. My GPU died recently so I was without Arma & my mod files for a while. Got a new one now, will try this today.

 

 

Edit// I gave it a shot and it seems that if I run in and out of safe zone with my Admin Tool's godmode activate then the "Can't fire with godon." sticks with me forever. RPT didn't show anything.

Link to comment
Share on other sites

  • 2 weeks later...

added this great safezone to my 3rd server. 

this is the best safezone I have tried...

would make it better if you added in the option to 

Delete or teleport vehicles parked in safezones

 

edit... I just found this to move or delete vehicles left in safezones. 

but would be great if any car left in zone would be set unlocked by setting the character ID to 0

Link to comment
Share on other sites

  • 2 weeks later...

*** UPDATED WITH A MAJOR BUG FIX IN THE DATE 2014-10-06 1:10 PM

*** This update will fix the Repair Vehicle working always in all cases

*** without the need of vehicle parts, wheell, glass, motor or tools

*** for vehicles that entered the safezone.

*** The only file that change is the file safezone.sqf.

Changed that:

_vehicle addEventHandler ["handleDamage", {_this select 2;}];
to that:

_vehicle addEventHandler ["handleDamage", {_this call vehicle_handleDamage;}];
Thanks a lot StiflresM0M!
Link to comment
Share on other sites

  • 1 month later...

1) INIT.SQF

At the end of your init.sqf file, add this code:

if (!isServer) then {
	//Gebriel Safe
	[] execVM "custom\safezone.sqf";	
};

 

didnt work in if (!isServer) then { for me

 

if (!isDedicated) then {
    //Gebriel Safe
    [] execVM "custom\safezone.sqf";
};

 

this seem to fix it

Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now
×
×
  • Create New...