How to change zombie variables without redistributing?

Justin131113

New Member
I want to make zombies only walk, never run. I also want to make them do more damage and increase their spawns to balance it out. I'm doing this because I'm hosting a roleplaying server and I want the zombies to have some consistency. Right now they run and then walk when they enter some sort of building, which there isn't a plausible explanation for that I can think of. And since I'm sure if there was a way to make them run in buildings, the developers would have done it by now. At the very least it must be very difficult. Or maybe it's because of the fact that zombies would be too difficult if they could run in buildings, I'm not sure.

Anyways, is there a way to accomplish this without redistributing files? I really don't want to do this because re-signing DayZ files doesn't seem to work for me. I guess I need the original private key to do that. So the only way around this would be to turn off verifySignatures and I would only want to do that on a whitelisted server, and whitelisting isn't currently working with Vilayer for whatever reason.
 

Matt L

OpenDayZ Rockstar!
Can't help much with the running, but you can just reroute the compiles for the player_zombieattack.sqf (located dayz_code < compiles ) and change this block of code to suite your needs
Code:
    //diag_log ("Animation state: " +(_currentAnim));
    _attackanimations = ["zombiestandingattack1","zombiestandingattack2","zombiestandingattack3","zombiestandingattack4","zombiestandingattack5","zombiestandingattack6","zombiestandingattack7","zombiestandingattack8","zombiestandingattack9","zombiestandingattack10","zombiefeed1","zombiefeed2","zombiefeed3","zombiefeed4","zombiefeed5"];
    if (((_unit distance player) <= dayz_areaAffect) && ((animationState _unit) in _attackanimations)) then {
        //check LOS
        _inAngle = [_zPos,(getdir _unit),50,_tPos] call fnc_inAngleSector;
        if (_inAngle) then {
            //LOS check
            _cantSee = [_unit,_vehicle] call dayz_losCheck;
            if (!_cantSee) then {
                if (r_player_blood < (r_player_bloodTotal * 0.8)) then {
                    _cnt = count (DAYZ_woundHit select 1);
                    _index = floor (random _cnt);
                    _index = (DAYZ_woundHit select 1) select _index;
                    _wound = (DAYZ_woundHit select 0) select _index;
                } else {
                    _cnt = count (DAYZ_woundHit_ok select 1);
                    _index = floor (random _cnt);
                    _index = (DAYZ_woundHit_ok select 1) select _index;
                    _wound = (DAYZ_woundHit_ok select 0) select _index;
                };
                _damage = 0.1 + random (1.2);

                //diag_log ("START DAM: Player Hit on " + _wound + " for " + str(_damage));
                [player, _wound, _damage, _unit,"zombie"] call fnc_usec_damageHandler;
                [_unit,"hit",2,false] call dayz_zombieSpeak;
            };
        };
    };
};
 
Top