Jump to content

[Release] Walk Amongst The Dead - (Hide from zombies like "The Walking Dead")


Sandbird

Recommended Posts

Thanks for the script Sandbird.  So far everything works and is playing nicely with the AH.  I did notice that even-though DZ_zombiePartsNeeded is set to 1, if you have more than 1 zombie part in your inventory, they all get removed.  Not a big deal, thought I would run it by you. Thanks again!!!

Link to comment
Share on other sites

lol about the sound flies :P

 

yeah there are other sounds to use that are included in the config file. But i wanted to use sounds that you dont hear from zombies (since the epoch team failed to add them to the config file)...so you can separate the sounds you hear from your own.

Link to comment
Share on other sites

So I have this installed on two servers.  Runs great on one, and the other (installed the same way) the zombies will still chase and detect players, but won't attack them.  So players have a trail of zombies chasing them.  Any ideas?  Thanks!

 

Did you ever find a solution to this issue?

Link to comment
Share on other sites

  • 1 month later...

I already had a CfgSounds. So I did this:
 
 

class CfgSounds
{
    sounds[] = {stronghold,z_wzombie1,z_wzombie2,introSong};
    class stronghold
    {
        name = "stronghold";
        sound[] = {\custom\origins\sfx\vrata_sound.ogg,0.1,1};
        titles[] = {};
    };
class z_wzombie1 {
name = "";
sound[] = {"custom\walkamongstthedead\dayz_sfx\femalezombie_attack_04.ogg",0.3,1,40};
titles[] = {0, ""};
};
 
class z_wzombie2 : z_wzombie1 {
sound[] = {"custom\walkamongstthedead\dayz_sfx\femalezombie_spotted_01.ogg",0.3,1,40};
};
    
class introSong
    {
    name="introSong";
    sound[]={introSong.ogg,0.9,1};
    titles[] = {};
    };
};

But they are constantly playing, not one sound every 30 seconds like they use to. Annoying cause it sounds like a Justin Bieber song. :(

Link to comment
Share on other sites

I already had a CfgSounds. So I did this:

 

 

class CfgSounds
{
    sounds[] = {stronghold,z_wzombie1,z_wzombie2,introSong};
    class stronghold
    {
        name = "stronghold";
        sound[] = {\custom\origins\sfx\vrata_sound.ogg,0.1,1};
        titles[] = {};
    };
class z_wzombie1 {
name = "";
sound[] = {"custom\walkamongstthedead\dayz_sfx\femalezombie_attack_04.ogg",0.3,1,40};
titles[] = {0, ""};
};
 
class z_wzombie2 : z_wzombie1 {
sound[] = {"custom\walkamongstthedead\dayz_sfx\femalezombie_spotted_01.ogg",0.3,1,40};
};
    
class introSong
    {
    name="introSong";
    sound[]={introSong.ogg,0.9,1};
    titles[] = {};
    };
};

But they are constantly playing, not one sound every 30 seconds like they use to. Annoying cause it sounds like a Justin Bieber song. :(

 

That looks right to me.

 

Open the walkamonstthedead.sqf and try changing :

_chance = ceil (random 10);

to this:

_chance = ceil (random 20);

lower chances for the sounds to play.

Link to comment
Share on other sites

  • 2 weeks later...
  • 6 months later...
  • 6 months later...
3 minutes ago, MeinCain said:

Hello,

I have some problem: in combat fire zombies do no damage normal players. If you play with admin rights, the damage is activated in combat fire. I think the problem in Infistar.
Can you help me?

Best regards

Crap....yeah, i think infistar has changed something in his code.

Did you do this line here like i said in the instructions ?

player_zombieAttack = compile preprocessFileLineNumbers '\z\addons\dayz_code\compile\player_zombieAttack.sqf';

Try putting it back...see if the attacks are registered.
Have an admin and a normal player test it. Does it kick the normal player?

Link to comment
Share on other sites

1 minute ago, MeinCain said:

But nothing has changed....

Crap.....i have no idea then.

You'll have to contact infistar about this....Probably he forgot to add some exceptions about my script in his AH. If i remember correctly he did have some exceptions set for it before in the past.
Unfortunately i have stopped playing Dayz. I dont even have the game installed on my PC anymore... :/
Unless someone else can help out, your best case scenario would be to contact Chris (infistar).

Did it work with the previous AH version ?
If yes, then use a text editor compare tool (like Ultraedit, or Beyond Compare 4) to compare the 2 different AH versions...Maybe you can see what Chris changed and be able to figure it out.
 

Link to comment
Share on other sites

On 30.3.2016 at 0:12 PM, MeinCain said:

Hello,

I have some problem: in combat fire zombies do no damage normal players. If you play with admin rights, the damage is activated in combat fire. I think the problem in Infistar.
Can you help me?

Best regards

Got the same problem. If anyone has a solution please post it here.

Link to comment
Share on other sites

  • 4 months later...

It is possible....but i stopped playing Arma :/ I dont even have the game installed anymore to test it.

Basically you check if the player is inside a vehicle...and if he is, you exit from the main rain check loop. But i cant be sure to blindly write code for it.

The check for 'if player is inside vehicle' is :

if (vehicle player == player) then {};

Try changing the whole function sand_cleanCheck in walkamongstthedead.sqf to this:

 

sand_cleanCheck = {
private ["_isRain","_RefillTime","_countdown","_RainAmt","_startRefillTime","_onLadder","_canDo","_playerPos","_isWater","_canClean","_isPond","_isWell","_pondPos","_objectsWell","_objectsPond","_pondNear","_wellNear","_isInVehicle"];
	while {true} do {
		if(hasGutsOnHim and (!sand_washed)) then {
				 scopeName "rainloop";
			  _onLadder 	= (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;
			  _canDo    	= (!r_drag_sqf and !r_player_unconscious and !_onLadder);
				_playerPos 	= getPosATL player;
				_isWater		= dayz_isSwimming;  //(surfaceIsWater _playerPos) or 
				_isInVehicle = vehicle player != player;
				_canClean		= count nearestObjects [_playerPos, DZ_waterSources, 4] > 0;
	      _isPond = false;
	      _isWell = false;
	      _pondNear = false;
	      _wellNear = false;
	      _pondPos = [];
	      _objectsWell = [];
				_isRain = false;
				if ((!hasGutsOnHim) and sand_washed) then {breakOut "rainloop";};
				if (_isWater) exitwith { cutText [format["You have successfully washed away the zombie parts from your body."], "PLAIN DOWN"]; call sand_endScript;};
				if ((time - DZ_ZCAMO_STARTTIME) > DZ_ZCAMO_USE_TIME and (DZ_ZCAMO_USE_TIME > 0)) exitwith { cutText [format["The zombie camo has faded away."], "PLAIN DOWN"]; call sand_endScript; breakOut "rainloop";};
	
				// Gather global weather (rain) variable; ranges from 0 to 1 (none to very, very hard rain)
				_RainAmt = drn_var_DynamicWeather_Rain; // referenced from \z\addons\dayz_code\system\DynamicWeatherEffects.sqf
				
				// If global rain amount is higher than 0, then set flag isRain to true
				if (_RainAmt > 0) then { _isRain = true; };
				
				_objectsPond = nearestObjects [_playerPos, [], 20];
				{
				//Check for pond
				_isPond = ["pond",str(_x),false] call fnc_inString;
				if (_isPond) then {
					_pondPos = (_x worldToModel _playerPos) select 2;
					if (_pondPos < 0) then {
						_pondNear = true;
					};
				};
				} forEach _objectsPond;
				
				_objectsWell = nearestObjects [_playerPos, [], 4];
				{
				//Check for Well
				_isWell = ["_well",str(_x),false] call fnc_inString;
				if (_isWell) then {_wellNear = true};
				} forEach _objectsWell;
				
				
				if(!isNull player) then {
				  if((speed player <= 1) && (_canClean || _pondNear || _wellNear) && _canDo) then {
				      if (s_player_cleanguts < 0) then {
				          s_player_cleanguts = player addaction["<t color=""#ff4444"">" + "Clean Guts" + "</t>","custom\walkamongstthedead\usewatersupply.sqf","",5,false,true,"",""];
				      };
				  } else {
				      player removeAction s_player_cleanguts;
				      s_player_cleanguts = -1;
				  };
				};
	
				// It's raining! Remove the zombie parts
				if (!dayz_inside and _isRain and hasGutsOnHim and !_isInVehicle) then {
				  
				  // Set initial loop variables
				  _startRefillTime = time;
				  r_interrupt = false;
				  r_doLoop = true;
				   
				  // Set refill time depending upon degree of rain (heavy, medium, or light)
				  _RefillTime = DZ_ZCAMO_LightRainLoseCamo; // set as default
				  if (_RainAmt > 0.53) then { // heavy rain
					_RefillTime = DZ_ZCAMO_HeavyRainLoseCamo; };
				  if (_RainAmt > 0.25) then { // medium rain
				    _RefillTime = DZ_ZCAMO_MediumRainLoseCamo; }; 
				  if (_RainAmt < 0.25) then { // light rain
				    _RefillTime = DZ_ZCAMO_LightRainLoseCamo; }; 
				  
				  _countdown = _RefillTime;
				  // Loop thru required time to fill and check for interruptions
					while {r_doLoop} do { 
						if (!dayz_inside) then {
							_countdown = (_countdown - 1);
							// Inform the player how long it will take till camo wears off
							if ((time - _startRefillTime) <= _RefillTime) then {
									 cutText [format["Its raining. Your zombie camo is getting washed away in %1 seconds.\nQuickly! Get inside a building.",str(_countdown)], "PLAIN DOWN"];
							} else {    
									cutText [format["Your zombie camo got washed away by the rain."], "PLAIN DOWN"];
									sand_washed = true;
									hasGutsOnHim = false;  
									r_doLoop = false;
							};
							_RainAmt = drn_var_DynamicWeather_Rain; // Check for rain stopping
							
							if (_RainAmt < 0.025) exitWith {
								cutText [format["The rain has stopped. Your zombie camo didnt wash off."], "PLAIN DOWN"];
								r_doLoop = false;
							};
						};
			      if (dayz_inside) exitWith {
							cutText [format["Good, your zombie camo is safe now."], "PLAIN DOWN"];
							r_doLoop = false;
			      };
				  sleep 1;          
					}; // end (timed) while loop
				};
		}else{
			if (dayz_combat != 1) then {hasGutsOnHim = true;  player removeAction s_player_cleanguts; s_player_cleanguts = -1;};
			if (sand_washed) then {call sand_endScript;};		
		};
		sleep 1;
	};
};

 

This should check if the player is inside a vehicle and if he is, it wont wash the camo away.
The motorcycle/atv etc is far more difficult to do it blindly...I am not even sure if this would work to tell you the truth :/

 

 

Link to comment
Share on other sites

On 26.12.2014 at 10:27 PM, F507DMT said:

 


		if (_isWoman) then {
			_type = ["z_fattack_"+str floor(random 4),"z_fchase_"+str floor(random 4),"z_fspotted_"+str floor(random 4) ];
		} else {
			_type = ["z_idle_"+str floor(random 35)];
		};

all sound for zombie. not need to sound files!!!

 

Fixed

if (_isWoman) then {
			_type = ["fattack_"+str floor(random 4),"z_fchase_"+str floor(random 4),"z_fspotted_"+str floor(random 4) ];
		} else {
			_type = ["idle_"+str floor(random 35)];
		};
Link to comment
Share on other sites

1 minute ago, Ghostis said:

Fixed


if (_isWoman) then {
			_type = ["fattack_"+str floor(random 4),"z_fchase_"+str floor(random 4),"z_fspotted_"+str floor(random 4) ];
		} else {
			_type = ["idle_"+str floor(random 35)];
		};

 

Was there an update that fixed the Z sounds ? The reason i added the female sounds in the pack was that the config.bin within the map files had wrong name entries compared to the sound files names.
Have you tested this for both male/female z sounds?

Link to comment
Share on other sites

 

3 minutes ago, Sandbird said:

 

Was there an update that fixed the Z sounds ? The reason i added the female sounds in the pack was that the config.bin within the map files had wrong name entries compared to the sound files names.
Have you tested this for both male/female z sounds?

sand_makeSounds = {
	private ["_type","_chance","_sound","_isWoman","_plsound","_bloodleft","_id"];
	_isWoman = getText(configFile >> "cfgVehicles" >> (typeOf player) >> "TextPlural") == "Women";	
	while {true} do {
		if (!hasGutsOnHim) exitWith {};
		if (_isWoman) then {
			_type = ["z_fattack_"+str floor(random 4),"z_fchase_"+str floor(random 4),"z_fspotted_"+str floor(random 4) ];
		} else {
			_type = ["idle_"+str floor(random 35)];
		};
		_plsound  = _type call BIS_fnc_selectRandom;
		_chance = ceil (random 10);
		if ((round(random _chance) == _chance) or (_chance == 0)) then {
			_sound = "z_" + _plsound;
			[nil,player,rSAY,[_sound, 10]] call RE;
			if (isNil "showNotificationOnce") then {systemChat ("Zombie ninja: You will be making random zombie sounds like this one."); showNotificationOnce = false;};
			sleep 1;
		};
		if (!DZ_ZCAMO_DEFAULT) then {
			if (!DZ_ZCAMO_HUMANITY) then {
				_bloodleft = r_player_blood - DZ_ZCAMO_BLOOD_AMOUNT;
				if (_bloodleft < 0) then {
					_id = [] spawn player_death;
				} else {
					r_player_blood = _bloodleft;
				};
				sleep DZ_ZCAMO_SLEEP_BLOOD;	
			} else {
				[player,DZ_ZCAMO_LOSE_HUMANITY, DZ_ZCAMO_SLEEP_HUMANITY] call player_humanityChange;
			};
		};
		if (DZ_ZCAMO_DEFAULT) then {
			sleep 1;
		};
	};
};

last check , it works, it seems :)

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
×
×
  • Create New...