Jump to content

shurix

Member
  • Content Count

    19
  • Joined

  • Last visited

  • Medals

Posts posted by shurix


  1. Can any Exile server admin/developer verify that BIS_fnc_MP isn't blocked by their server? It's the method used for syncing the attack animations over the network. Works on my end, dedicated server tested. I do believe since 1.48-1.50 there's a way to block it though.

     

    I know for a fact that BIS_fnc_MP is blocked in Epoch. I can report the same issue. Zombie stands close and I get hit with no animation.


  2. I noticed the difference when I moved zombies from spawning on the client side to server-side. There is definitely an increase in server performance but I lost most of the zombie chatter.

     

    When zombies spawned on the client side, you could hear them from a mile away and you could hear all 30 of them whining at the same time. Now I hardly ever hear a zombie sound.

     

    Can you guys review the logic so that when zombie acquires the target you would do something like:

    [_zombie,_target] say3D ("zombiespotted")

     

    Thanks!


  3. I was able to get zombies to attack me and bots using 2.6 by adding the following code

    civilian setFriend [resistance , 0];
    civilian setFriend [east , 0];
    
    resistance setFriend [civilian , 0];
    resistance setFriend [east , 0];
    

    and addRating value to each spawned zombie group

    {_x addRating -10000} forEach units _grp
    if (_x < _numToSpawn) then {goto "loop"}
    deletegroup _grp
    ~ryanzombiesfrequency
    

  4. MrSanches,

     

    I said I think zombie.sqf is getting executed because in 2.5 they run after me and attack. My spawn scripts remain the same between 2.5 and 2.6.

    In 2.6 they spawn and stand still or move around if I get close but do not attack.

     

    In both cases they were spawned from a trigger local to the client and this behavior must be caused by the locality change on zombie init in 2.6 as you mentioned earlier.

     

    Not to worry though. I'm sure this is caused by the difference between server/client locality. We went through that in the initial versions of EpochMod when bots were spawned but did not attack the players.


  5. BTW, on Taviana I have military outposts all over the map with MGs standing 7 meters off the ground on concrete bunkers. Zombies see the static gunners first and pile around the bunker unable to reach them. I understand that zombies are stupid, but I would add a height difference check when looking for the next target to exclude unreachable targets.

     

    886824ec4728b860b72dba8f8c74d43b.jpg


  6. I wonder if the zombie.sqf is executed at all by the server, if not, then there's your issue.

     

    I think it is getting executed. As I said zombies attack me, my vehicle and throw cars at me.

     

    Anyway, I think it has to do with the locality of the zombies. I will redo my trigger-setting script to run on the server-side and spawn zombies on the server-side as well. Setting proper trigger locality is going to be fun.


  7. I create triggers on the server, then pass them as an array to the clients. The clients are triggering their own spawner scripts.

     

    In the past I tried creating the triggers and spawning zombies on server-side only but found that server triggers don't work for clients for some reason. Maybe I missed a trigger setting that defined it as global..?

    InfAllLocations = [
    	//["Baltic Sea",[4699.25,3524.91,0.01]],
    	["Mitrovice",[3795.29,7222.12,0.01]],
    	["Branibor",[7682.46,4312.29,0.01]],
    	......
    	["Castle Georgiev",[24405.9,1367.89,0.01]]
    ];
    
    
    
    
    if (isServer) then
    { 
    
    civilian setFriend [resistance , 0];
    civilian setFriend [east , 0];
    resistance setFriend [civilian , 0];
    	
    	_ztriggers = [];
    
    		{
    			private ["_markName","_markPos","_mPosX","_mPosY","_mkrY","_mkrX","_detectorName","_x"];
    			_location=_x;
    			_locationName = _location select 0;
    			_locationPos= _location select 1;
    			//_locationPos = [(_locationPos select 0),(_locationPos select 1),0.01];
    			_trigger=createTrigger["EmptyDetector",_locationPos];
    			_size = 100;
    			if (_locationName in ["Krasnoznamen'sk","Sevastopol'","Airport Dubovo","Lyepestok","Ekaterinburg","Sabina","Branibor"]) then
    			{
    				_size = 500;
    			} else {
    				_size = 300;
    			};
    			_trigger setTriggerActivation ["EAST", "PRESENT", true];
    			//_trigger setTriggerStatements ["this","[thisTrigger,[0,0]] exec ""custom\zombies\spawn.sqf"";",""];
    			//diag_log format["Infected: Setting a Trigger in %1 at %2",_location,_locationPos];
    			_ztriggers pushBack [_trigger,_size];
    			sleep 0.1;
    		} forEach InfAllLocations;
    		
    		diag_log format["ZOMBIES: All locations are marked with triggers. Sending _ztriggers=%1",_ztriggers];
    		missionNamespace setVariable ["ztriggers", _ztriggers];
    		publicVariable "ztriggers";
    };
    
    if (!isServer) then {
    
    civilian setFriend [resistance , 0];
    civilian setFriend [east , 0];
    resistance setFriend [civilian , 0];
    
    	diag_log format["ZOMBIES: waiting for ztriggers"];
    	waitUntil {!isNil "ztriggers"};
    	_ztriggers = missionNamespace getVariable ["ztriggers", []];
    	diag_log format["ZOMBIES: _ztriggers %1",_ztriggers];
        {
    		_trigger = _x select 0;
    		_size = _x select 1;
    		_trigger setTriggerArea[_size,_size,0,false];
    		_trigger triggerAttachVehicle [player];
    		_trigger setTriggerActivation ["EAST", "PRESENT", true];
    		//_trigger setTriggerStatements ["this","thisTrigger spawn INF_fnc_autopop","thisTrigger spawn INF_fnc_playerLeavingZone;"];
    		//_trigger setTriggerStatements ["this","[thisTrigger,[0,0]] exec ""custom\zombies\spawn.sqf"";",""];
    		call compile format ["_trigger setTriggerStatements ['this','[thisTrigger,[%1,true,false]] exec ""custom\zombies\spawn.sqf"";',''];", str _size];
    	} forEach _ztriggers;
    };
    

  8. Ryan and MrSanches,

    2.5 works OK on my Epoch server. I created a bunch of triggers in the cities of Taviana and they trigger spawner script. Zombies run after me (east) and they also attack bots (resistance).

    After replacing the mod with 2.6 though using exactly the same logic, the zombies are getting spawned but they just stand there or loiter without attacking anyone.

    ~0.5
    
    #first
    _logic = _this select 0
    _paramsArray = _this select 1
    
    _spawnRadius = _paramsArray select 0
    _spawnRegular = _paramsArray select 1
    _spawnDemons = _paramsArray select 2
    
    diag_log format["Z Spawner: _paramsArray=%1",_paramsArray]
    
    if (isnil "ryanzombiesstart") then {ryanzombiesstart = 5}
    if (isnil "ryanzombiesdelay") then {ryanzombiesdelay = 0.5}
    if (isnil "ryanzombiescurrentamount") then {ryanzombiescurrentamount = 0}
    ryanzombiesamount = 8
    ryanzombiestotalamount = 1000
    if (isnil "ryanzombiesfrequency") then {ryanzombiesfrequency = 180}
    if (isnil "ryanzombiesactivation") then {ryanzombiesactivation = 0.9}
    if (isnil "ryanzombieshordesize") then {ryanzombieshordesize = 8}
    
    if (isnil "ryanzombiesdeletion") then {ryanzombiesdeletion = 1}
    if (isnil "Ryanzombieslogicroam") then {Ryanzombieslogicroam = 1}
    
    
    
    Ryanzombiesjump = 1
    Ryanzombiescanthrow = 1
    Ryanzombiescanthrowtank = 0
    Ryanzombiescanthrowdistance = 30
    ryanzombiescanthrowtankdistance = 0
    
    Ryanzombiesdamagecar = 0.005
    Ryanzombiesdamageair = 0.005
    Ryanzombiesdamagetank = 0
    
    Ryanzombiesdamagetankstrenth = 0
    
    _slowZs = ["RyanZombieC_man_1slow", "RyanZombieC_man_polo_1_Fslow", "RyanZombieC_man_polo_2_Fslow", "RyanZombieC_man_polo_4_Fslow", "RyanZombieC_man_polo_5_Fslow", "RyanZombieC_man_polo_6_Fslow", "RyanZombieC_man_p_fugitive_Fslow", "RyanZombieC_man_w_worker_Fslow", "RyanZombieC_scientist_Fslow", "RyanZombieC_man_hunter_1_Fslow", "RyanZombieC_man_pilot_Fslow", "RyanZombieC_journalist_Fslow", "RyanZombieC_Orestesslow", "RyanZombieC_Nikosslow", "RyanZombieB_Soldier_02_fslow", "RyanZombieB_Soldier_02_f_1slow", "RyanZombieB_Soldier_02_f_1_1slow", "RyanZombieB_Soldier_03_fslow", "RyanZombieB_Soldier_03_f_1slow", "RyanZombieB_Soldier_03_f_1_1slow", "RyanZombieB_Soldier_04_fslow", "RyanZombieB_Soldier_04_f_1slow", "RyanZombieB_Soldier_04_f_1_1slow", "RyanZombieB_Soldier_lite_Fslow", "RyanZombieB_Soldier_lite_F_1slow"]
    _mediumZs = ["RyanZombieC_man_1medium", "RyanZombieC_man_polo_1_Fmedium", "RyanZombieC_man_polo_2_Fmedium", "RyanZombieC_man_polo_4_Fmedium", "RyanZombieC_man_polo_5_Fmedium", "RyanZombieC_man_polo_6_Fmedium", "RyanZombieC_man_p_fugitive_Fmedium", "RyanZombieC_man_w_worker_Fmedium", "RyanZombieC_scientist_Fmedium", "RyanZombieC_man_hunter_1_Fmedium", "RyanZombieC_man_pilot_Fmedium", "RyanZombieC_journalist_Fmedium", "RyanZombieC_Orestesmedium", "RyanZombieC_Nikosmedium", "RyanZombieB_Soldier_02_fmedium", "RyanZombieB_Soldier_02_f_1medium", "RyanZombieB_Soldier_02_f_1_1medium", "RyanZombieB_Soldier_03_fmedium", "RyanZombieB_Soldier_03_f_1medium", "RyanZombieB_Soldier_03_f_1_1medium", "RyanZombieB_Soldier_04_fmedium", "RyanZombieB_Soldier_04_f_1medium", "RyanZombieB_Soldier_04_f_1_1medium", "RyanZombieB_Soldier_lite_Fmedium", "RyanZombieB_Soldier_lite_F_1medium"]
    _fastZs = ["RyanZombieC_man_1", "RyanZombieC_man_polo_1_F", "RyanZombieC_man_polo_2_F", "RyanZombieC_man_polo_4_F", "RyanZombieC_man_polo_5_F", "RyanZombieC_man_polo_6_F", "RyanZombieC_man_p_fugitive_F", "RyanZombieC_man_w_worker_F", "RyanZombieC_scientist_F", "RyanZombieC_man_hunter_1_F", "RyanZombieC_man_pilot_F", "RyanZombieC_journalist_F", "RyanZombieC_Orestes", "RyanZombieC_Nikos", "RyanZombieB_Soldier_02_f", "RyanZombieB_Soldier_02_f_1", "RyanZombieB_Soldier_02_f_1_1", "RyanZombieB_Soldier_03_f", "RyanZombieB_Soldier_03_f_1","RyanZombieB_Soldier_03_f_1_1","RyanZombieB_Soldier_04_f","RyanZombieB_Soldier_04_f_1","RyanZombieB_Soldier_04_f_1_1","RyanZombieB_Soldier_lite_F","RyanZombieB_Soldier_lite_F_1"]
    _spiderZs = ["RyanZombieSpider1", "RyanZombieSpider2", "RyanZombieSpider3", "RyanZombieSpider4", "RyanZombieSpider5", "RyanZombieSpider6", "RyanZombieSpider7", "RyanZombieSpider8", "RyanZombieSpider9", "RyanZombieSpider10", "RyanZombieSpider11", "RyanZombieSpider12", "RyanZombieSpider13", "RyanZombieSpider14"]
    _demonZs = ["RyanZombieboss1","RyanZombieboss2","RyanZombieboss3","RyanZombieboss4","RyanZombieboss5","RyanZombieboss6","RyanZombieboss7","RyanZombieboss8","RyanZombieboss9","RyanZombieboss10","RyanZombieboss11","RyanZombieboss12","RyanZombieboss13","RyanZombieboss14"]
    
    
    ryanzombiescurrentamount = missionNamespace getVariable [format ["%1_ZsInThisZone", _logic], 0]
    if (ryanzombiescurrentamount < 0) then {ryanzombiescurrentamount=0}
    
    diag_log format["Z Spawner: _ZsInThisZone=%1",ryanzombiescurrentamount]
    
    if (ryanzombiescurrentamount > ryanzombiesamount) then  {goto "end"}
    
    _grp = createGroup civilian
    _x = ryanzombiescurrentamount
    _randChance = floor(random(100))
    _numToSpawn = floor(random(ryanzombieshordesize))
    
    #loop
    
    _zombieTypes = []
    
    if (_spawnRegular) then {_zombieTypes = [[_slowZs,100],[_mediumZs,50],[_fastZs,15],[_spiderZs,30]]}
    if (_spawnDemons) then {_zombieTypes pushback [_demonZs,3]}
    _arraySelect = _zombieTypes call BIS_fnc_selectRandom
    	if ((_arraySelect select 1) > _randChance) then {
    		_x = _x + 1
    		_array = _arraySelect select 0
    		_random = _array select floor random count _array
    		if (ryanzombiescurrentamount > ryanzombiestotalamount) then {goto "end"}
    		if (ryanzombiescurrentamount < ryanzombiesamount) then {format ["%1",_random] createunit [position _logic, _grp, format ["this switchmove 'AmovPercMstpSnonWnonDnon_SaluteOut';this setpos [(getpos this select 0) + random %1 - random %2, (getpos this select 1) + random %3 - random %4]; [this] exec '\ryanzombies\count.sqf'",_spawnRadius,_spawnRadius,_spawnRadius,_spawnRadius]] }
    		if (ryanzombiescurrentamount < ryanzombiesamount) then {ryanzombiescurrentamount = ryanzombiescurrentamount + 1}
    		if (ryanzombiescurrentamount < ryanzombiesamount) then {missionNamespace setVariable [format ["%1_ZsInThisZone", _logic], ryanzombiescurrentamount] }
    		if (ryanzombiescurrentamount < ryanzombiesamount) then {diag_log format["Z Spawner: Adding a Z : ryanzombiescurrentamount=%1",ryanzombiescurrentamount] }
    		~ryanzombiesdelay
    	}
    if (_x < _numToSpawn) then {goto "loop"}
    deletegroup _grp
    ~ryanzombiesfrequency
    goto "loop"
    
    
    #end
    

  9. Also, the zombies do check for new targets. I was playing earlier tonight...was in a tank..got out...they kept on attacking the tank for like 2-3 more seconds and then they went after me. Did they never stop attacking the vehicle for you?

     

    They did not stop attacking the vehicle even after 30 seconds while I was standing in plain sight next to them. 


  10. Awesome mod! Thanks Ryan!

     

    I'm running an Epoch server on Taviana and I noticed that when I'm exiting a vehicle to fight zombies, they would attack my vehicle without even noticing me! I think it makes sense to check if _target should change every few seconds.

     

    Also, it would be nice to create a mission variable like ryanzombiesinventory = ['bullets','hand guns','food','drink'] so that you are not wasting your bullets killing zombies but can also search their pockets for loot. This is how it was in DayZ and it worked. I understand that it's not something you can add into scenario selection screen. But it may be something you could hardcode and allow us to overwrite..?

     

    Can you add more mission variables to say slow, medium, fast and spider zombies cannot attack vehicles but demons can?


  11. I was able to put zombie faces to work by adding to fn_spawner.sqf:

    ....

    _object = infectedattacker createUnit ["O_soldier_F",_buildingPos, [], 1, "PRIVATE"];

    [_object,_myZone] spawn INF_fnc_infectedinit;

    };

    _infectedCount= _infectedCount + 1;

    missionNamespace setVariable ["infected", _object];

    publicVariable "infected";

    sleep 0.3

    please note I updated my createUnit command from the original version

    Next, on the client side you will need to add to init.sqf

    [] execVM "custom\remote.sqf";

    and custom\remote.sqf

    if(!isDedicated) then {

    setZomboyFace =

    {

    _me = _this;

    _chosenFace = ["zombi","zomboy"] call BIS_fnc_selectRandom;

    //diag_log format["_me=%1",_me];

    _me setFace _chosenFace;

    _mimic = ["dead","danger","hurt"] call BIS_fnc_selectRandom;

    _me setMimic _mimic;

    enablesentences false;

    _me setObjectMaterial [0, "A3\Characters_F\Common\Data\basicbody_injury.rvmat"];

    };

    "infected" addPublicVariableEventHandler {(_this select 1) call setZomboyFace;};

    };


  12. @Hotzenplotz - is it possible to replace Arma 2 buildings with Arma 3 buildings or add bigger towns at some point?

    I'd love to use your map for my Epoch mod server where looting is essential. Please advise.

    ---------- Post added at 20:12 ---------- Previous post was at 19:37 ----------

    Thanks Monk!

    @Hotzenplotz - Love this map!!! Have a couple of questions though. Is there a good reason for 0 coordinate to be in the middle of map? There is a line in the middle between the islands and above it I get 001,002,003 map reference and below it 099,098,097. Is this by design or this is a result of gluing 4 islands together into the same map? Maybe, my map settings need to be adjusted?


  13. I tried a few things on my EpochMod server and successfully created a new WAI mission based on the system I found here. Thanks very much!

    However, I still cannot re-skin my zombies to look like zombies. I tried using:

    _chosenFace = ["infected2","infected1","zombi","zomboy"] call BIS_fnc_selectRandom;

    _me setFace _chosenFace;

    [[_me,_chosenFace], "setZomboyFace"] call BIS_fnc_MP;

    on the server-side to call:

    setZomboyFace =

    {

    private["_me","_face"];

    _me = _this select 0;

    _face = _this select 1;

    _me setFace _face;

    enablesentences false;

    _me setObjectMaterial [0, "A3\Characters_F\Common\Data\basicbody_injury.rvmat"];

    hintSilent "setting zombi face";

    };

    on the client mission side but it doesn't work. I think BIS_fnc_MP is overwritten by EpochMod (or infiSTAR antihack).

    I also tried setting new Identities via description.ext:

    class CfgIdentities

    {

    class Zombie1

    {

    name = "Zombi 1";

    face="zomboy";

    glasses = "None";

    speaker = "Male01ENG";

    pitch = 1.1;

    };

    class Zombie2

    {

    name = "Zombi 2";

    face="zombi";

    glasses = "None";

    speaker = "Male01ENG";

    pitch = 1.1;

    };

    class Zombie3

    {

    name = "Zombi 3";

    face="infected2";

    glasses = "None";

    speaker = "Male01ENG";

    pitch = 1.1;

    };

    class Zombie4

    {

    name = "Zombi 4";

    face="infected1";

    glasses = "None";

    speaker = "Male01ENG";

    pitch = 1.1;

    };

    };

    with this code:

    _identity = ["Zombie1","Zombie2","Zombie3","Zombie4"] call BIS_fnc_selectRandom;

    _me setIdentity _identity;

    it doesn't work either.

    Note that when I create new unit in editor and do:

    _this setFace "zombi";

    it works great

    So I currently put:

    _me addHeadgear "wolf_mask_epoch";

    on all my zombies in the mission and go with the Werewolf/Toxic Experiment story.

    Anyone has a clue on how to make this work?

    Thanks in advance!


  14. Hi. I'm trying to use LCAC in my EpochMod on Arma 3.

    When I place LCAC in editor it works great.

    However if I spawn the vehicle using my server mission script, it comes out all twisted and screwed-up like previously reported by another user here:http://forums.bistudio.com/showthread.php?180092-Burnes-Armories-Tanks-and-Deployment-Vehicles&p=2850738&viewfull=1#post2850738

    Here are some samples:

    6iv1xt.jpg

    ouy0cl.jpg

    e84h7a.jpg

    1z68da1.jpg

    I use the following code to spawn the vehicle:

    _veh = createVehicle ["Burnes_LCAC_1",[(_position select 0),(_position select 1),(_position select 2)], [], 0, "CAN_COLLIDE"];
    clearWeaponCargoGlobal _veh;
    clearMagazineCargoGlobal _veh;
    _vehdir = round(random 360);
    _veh setDir _vehdir;

    My missiong.sqf file contains the following addons:

    addOns[] = {"A3_Soft_F_Car","A3_Soft_F_Quadbike","a3_soft_f_beta_quadbike","A3_Boat_F_Civilian_Boat","A3_Boat_F_Boat_Transport_01","A3_Air_F_Heli_Light_01","A3_Air_F_Heli_Heli_Transport_04","A3_Air_F_Heli_Heli_Transport_03","a3_map_altis","a3_characters_f_gamma","A3_Characters_F_OPFOR","A3_Characters_F_INDEP","A3_Characters_F_Civil","A3_epoch_config","a3_characters_f","A3_Data_F_Curator_Virtual","h3","DAR_HMMWV","Rup_Dinosaurs","Test_boat_F"};
    addOnsAuto[] = {"A3_epoch_config","a3_map_altis","Test_boat_F"};
    

    Please help! There is no alternative to your LCAC and I'd love to use it on my server.


  15. Hi! Awesome skins!

    I was a bit disappointed to find that, if added to trader's inventory, the skin cannot be bought as other clothes (in a package) in my Arma 2: OA - DayZ Epoch. Is that a limitation with my Epoch or the class used by the trader is missing? Any idea how I could fix that? I'd really love to be able to sell these skins to my users.

    Thanks!

×