Jump to content

Recommended Posts

5 hours ago, doc. caliban said:

I would like to place a zombie in a building and have it not be active until triggered.  (or spawn it when triggered).

 

This is what I've come up with.

 

I have a single group of zombies that I place in buildings.  (I use the Eden Enhanced "garrison" feature.)  The group is named "ZedGroup".

 

In my init.sqf I have,

sleep .5;

{_x disableAI "MOVE"} forEach units ZedGroup;

 

Then I have a trigger around the building (or whatever size I see fit) that is activated by a player being present, with this in the On Activation:

_nearestZeds = player nearEntities ["Man", 10];
{_x enableAI "MOVE"} forEach _nearestZeds;

 

It works perfectly so far.  It doesn't matter if it catches any already active zombies in the detection radius since it doesn't affect their behavior.

 

This was the most cut-and-paste zombies and triggers with the least amount of tweaking per-instance that I could figure out.

 

The point was to have a "mopping up" phase of missions where you have to go into buildings where you hear zombies that won't come out on their own.  They stay in the structures until you enter the trigger and then they become active.

 

I'd love it if it could be set up that, when the trigger is activated, the zombies only become active if they detect you.  That way they stay in the structure until you activate the trigger, but they only get MOVE enabled if they see or hear you after that point.  The tough part there is that, as a group, they would all be aware of you... I'm not sure if "detected by" can be limited to a specific unit that detected you?  Or does it always affect that unit's entire side?

 

It might be nicer to have the zombies have a specific string in their variable, like bZed, and have the init.sqf apply the disableAI command to any unit with that string.  That way they don't have to be grouped.  I know that can be done with the "find" command... I'll see if I can figure that out.

Share this post


Link to post
Share on other sites
6 hours ago, doc. caliban said:

I would like to place a zombie in a building and have it not be active until triggered.  (or spawn it when triggered).

 

I have tried everything I can think of for making it inactive (disabling simulation, movement, hold waypoint, garrisoning, etc) but apparently everything I do is overridden at mission start and the zombie immediately wanders out of the building.

I'm guessing I could simply spawn one with a player present trigger, but not sure how to do that.  What would the on activation code look like?  Also, if I do it that way will it have the proper behavior even though it was spawned after mission init?

 

Thanks!


The good news is: it is possible. I managed to do something like this (not tested on dedi).

 

The bad news is: That was a few months ago, just before I left A3 (frustrated & angry), so I can‘t tell you exactly what to do.

 

What I remember is, that I added an EH to the Zombie Base Class. Every zombie spawned by Ravage (not manually placed by me) had a small chance of triggering a script:

- check position around Zed for nearest building

- if building present check for number of positions in buildings

- teleport Zed to random position in building

- deactivate Wandering Zombie behaviour for this zed 

 

I do not have the command for the last point available, but I remember that it wasn‘t too complicated. Maybe @haleks can help here?

I am on the move to a new adress, so it may take a week or two before I am able to look into my notes.

 

Whiteface / Oliver
 

 

edit: ah, that‘s the problem with posting from work. Didn‘t see your new post while typing my message.

  • Like 1

Share this post


Link to post
Share on other sites
13 hours ago, whiteface73 said:

 

[...]

- deactivate Wandering Zombie behaviour for this zed 

 

I do not have the command for the last point available, but I remember that it wasn‘t too complicated. Maybe @haleks can help here?

 

Yep, that bit of code will do the trick :

_zed call {
	_this setDestination [getPosATL _this, "LEADER DIRECT", true];
	_this setVariable ["_active", false];
};

But the "_active" variable only works for agents - for hand-placed zombies, @doc. caliban came up with a good solution.

 

14 hours ago, doc. caliban said:

 

I'd love it if it could be set up that, when the trigger is activated, the zombies only become active if they detect you. 

 

You can ditch the trigger and tweak the init.sqf code like so :

sleep .5;
{
	_x disableAI "MOVE";
	_x spawn {
		waitUntil {sleep 1; !isNil {_this getVariable "_zTarget"}};
		_this enableAI "MOVE"
	};
} forEach units ZedGroup;

Zombies will pour out of their building as soon as they spot any target. 😉 

  • Like 5
  • Thanks 1

Share this post


Link to post
Share on other sites
8 hours ago, haleks said:

You can ditch the trigger and tweak the init.sqf code like so :


sleep .5;
{
	_x disableAI "MOVE";
	_x spawn {
		waitUntil {sleep 1; !isNil {_this getVariable "_zTarget"}};
		_this enableAI "MOVE"
	};
} forEach units ZedGroup;

Zombies will pour out of their buildings as soon as they spot any target. 😉 

 

The code works as expected, but I would like to tweak it if possible. 

As it is, the units in ZedGroup maintain position until they have a target, but that can be gunfire from bandits, players, etc.  Is there a way to set it up so that they only respond to direct sight of a player? 

 

The idea being that the condition of every zombie is not identical and predictable.  Maybe some have crap hearing compared to others, or have something more wrong with them and require near-direct contact to get a response from, etc.  

 

Is there a way to test for a playable unit being the target and keying off of that?

 

Thank you again for the help!

 

EDIT: This may have been suggested before, but... could the run speed and walk speeds be randomized so that each type of zombie (runner or walker) has a slightly randomized max movement speed?  That would keep them from getting clumped up in groups and lines as they pursue targets. 

 

 

Share this post


Link to post
Share on other sites
On 2/4/2020 at 8:24 AM, haleks said:

You can ditch the trigger and tweak the init.sqf code like so :


sleep .5;
{
	_x disableAI "MOVE";
	_x spawn {
		waitUntil {sleep 1; !isNil {_this getVariable "_zTarget"}};
		_this enableAI "MOVE"
	};
} forEach units ZedGroup;

Zombies will pour out of their building as soon as they spot any target. 😉 

Can I add the additional condition of the MP player being within a minimum distance?  That way a gunshot down the street won't trigger the enableAI "Move" line. 

 

I'd need to add something like {_x distance playableUnit <25} so that the MP player would have to be within 25m AND become a target.  Not sure how to do that.

 

Edit: {_this distance _zTarget <50} would probably be simpler.  I just don't know how to add it properly... I'm trying various synaxes...

 

Edit 2: I give up for now as the trial and error starts becoming a waste of time.  This is what I have and it seems like it should work, but I get an error saying it's missing a ; on the line testing for distance.  I've not done any scripting since early 2017 so I don't remember enough to understand where the problem is.

 

sleep .5;
{
    _x disableAI "MOVE";
    _x spawn {
        waitUntil {sleep 1; !isNil {_this getVariable "_zTarget"}};
        waitUntil {sleep 1; true {_this distance _zTarget <30}};
        _this enableAI "MOVE"
    };
} forEach units ZedGroup;

 

Would love to solve this on my own, but I've blown over an hour dealing with a syntax error.  Not worth it.  😕

Share this post


Link to post
Share on other sites

@doc. caliban

 

Hand placed zeds in my Sirens mission (SP) have this in their init. (courtesy of haleks)  they all have various distance checks, some 15, some 5 etc.

this spawn { 
 _uStayThere = getpos _this; 
 while {alive _this} do { 
  sleep 1; 
  if (_this distance _uStayThere > 15 && isNil {_this getVariable "_zTarget"}) then { 
   _this doMove _uStayThere; 
   _this forceSpeed 2; 
  }; 
 }; 
};

Maybe it can give you something to riff off. 🙂

  • Like 2

Share this post


Link to post
Share on other sites

@doc. caliban, try this bit :

sleep .5;
{
	_x disableAI "MOVE";
	_x spawn {
		waitUntil {sleep 1; !isNil {_this getVariable "_zTarget"} && {allPlayers findIf {_x distance _this < 30} != -1}};
		_this enableAI "MOVE"
	};
} forEach units ZedGroup;

The above will wake up zombies only if they have a target, and if a player is closer than 30 meters to said zombie. Player is not necessarily the target though - if that is what you want, you would go this way :

sleep .5;
{
	_x disableAI "MOVE";
	_x spawn {
		waitUntil {sleep 1; !isNil {_this getVariable "_zTarget"} && {isPlayer (_this getVariable "_zTarget")}};
		_this enableAI "MOVE"
	};
} forEach units ZedGroup;

 

  • Like 2

Share this post


Link to post
Share on other sites
58 minutes ago, Gunter Severloh said:

Hey Haleks and Ravage fans!

Check this new WIP mod, it uses Ravage as its base:

 

OPERATION COBALT: The Walking Dead Total Conversion

https://forums.bohemia.net/forums/topic/227847-operation-cobalt-the-walking-dead-total-conversion/

 

OMG THANK YOU!

 

@haleks I just want to say, that my mod would not have been possible without Ravage! Thank you for your amazing work! 😄

  • Like 4

Share this post


Link to post
Share on other sites

Hey there! Could somebody explain to me how i can distinguish between the Zombies and Renegades on a code basis? both are on the civilian side, so i cant do anything with that. Are they of a different group?

i am trying to create different "killed" eventhandlers for zombies and renegades...

Share this post


Link to post
Share on other sites

In the killed eventhandler, filter for killed/killer (depends on what you want to test):

 

If (_killer isequalto "zombie" ) then {....} ;

 

This executes your code if the killer is a zombie, or, if you want to apply the same to _killed, then it tells you if you killed a zombie. 

Share this post


Link to post
Share on other sites

Sorry, I guess i wasnt clear. I would like to have different eventhandlers for when the Zombie or Renegade is killed.

Something like that:

 

["CAManBase", "Killed", {
    params ["_unit"];
    
    if (side group _unit == civilian) then
    {    
        blablabla lots of code;
    } else { blablabla different code;};
}] call CBA_fnc_addClassEventHandler;

 

but for this to work, i need something to distinguish the Zombies from the Renegades in the if statement. anybody knows anything about this?

Share this post


Link to post
Share on other sites

@haleks, not sure if you have a Twitter account, but Ravage definitely deserves it's place here.

  • Like 2

Share this post


Link to post
Share on other sites
On 2/19/2020 at 10:00 AM, EO said:

@haleks, not sure if you have a Twitter account

 

Not yet. 😉 

 

But to be honest, I totally suck at taking pictures of large groups of zombies for some reason. I'm more a portrait kind of guy. ^^

If anyone has interesting screenshots to show off, don't hesitate to share them here for now!

Share this post


Link to post
Share on other sites

Hi. Is it possible to have a trigger that spawns one of your AI OPFOR squads with the "hunter" attribute set?

 

Basically, I want to have a loot box in a city, and when the players gets near it, I want the AI to come after him.

Share this post


Link to post
Share on other sites

I am trying to give spawned AI bandits more magazines for us to loot.

My idea is to use something like this in the right place:

_currentMag = currentMagazine _unit;
_unit addMagazines [_currentMag, floor(random 6)];

I tried adding it to fn_addWeapon.sqf in ravage.pbo but I get intermittent results, and always some kind of error when the first bandits spawn.  Sometimes the bandits have multiple magazines as per my code, but most of the time they have the single reload that they have by default.

 

EDIT: I just tried adding it to spawn_bandits.sqf as well but with no luck.

 

I would like this to apply to both faction AI groups, and to individual renegades.

 

I think that my idea is sound, but I am not implementing it correctly.  Suggestions?

 

-Doc

 

SOLVED:

I added this to the end of fn_addWeapon.sqf:

_magarray = primaryWeaponMagazine _unit;
if !(_magarray isEqualTo []) then {
 _mag = _magarray select 0;
 _unit addMagazines [_mag, ceil(random 8)];
}else {
_magarray = handgunMagazine _unit;
	if !(_magarray isEqualTo []) then {
	_mag = _magarray select 0;
	_unit addMagazines [_mag, ceil(random 8)];
	};
};

There may be a better way to do it, but so far this is working perfectly.

 

-Doc

  • Like 1

Share this post


Link to post
Share on other sites

Hey Ravage fans!

Wanted to give you guys an update on where the Ravage Utube channel is at these days:

 

Channel currently has:

  • 285 subscribers
  • 9,645 views

From Utube Anylitycs for the channel:

Your channel got 66 views in the last 28 days—less than the 70–110 it typically gets

Views

66   4 less than usual

 

Channel views

compared to your typical performance. Over time, this can help you spot high-performing videos,

anticipate seasonal changes, and determine when to upload new videos. This includes public, private, unlisted, and deleted videos.

Watch time (hours) 0.7    0.3 less than usual

Channel watch time compared to your typical performance. This includes public, private, unlisted, and deleted videos.

 

Subscribers

Subscribers  +1

 

Playlists

Watch time - Last 28 days (February 2020)

  • Full Episodes  -               52.2%
  • How to videos -               30
  • Full Playthroughs -         7.4%
  • Gameplay Clips -            4.5%
  • Gameplay Previews  -    0.2%

Playlists

Videos - per Playlist currently:

  • Full Episodes  -               163
  • Mini Episodes -               195
  • How to videos -               30
  • Full Playthroughs -         104
  • Gameplay Clips -            194
  • Gameplay Previews  -    94

Introduction to Ravage Mod for Arma 3 Video - see video ---> LINK

(i created for the channel 😉)

  • 9,647 views  -  27 likes - 5 dislikes

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

Notes:

I check for new Ravage videos every week, and then review the channel playlists of any videos that were made private

or deleted as the channel is a compilation of all the Ravage videos from the community, other then the introduction video

the channel has that i created, the channel doesn't have any videos i uploaded.

   This past week i think i added like 4-5 new videos, you can find out by going to the playlist tab and when you see the word updated under a particular playlist

then a new video has been added to it, new videos will show at the top of the playlist.

 

If there are any players/fans of Ravage that have videos you created and is not on the channel

let me know and or link the video to me and i can add it to the channel.

Cheers!

 

  • Like 5

Share this post


Link to post
Share on other sites

Someone please help me. I asked for Halek's help a few months ago seeing as he started the thread for this issue:

 

 

"Hey haleks, big fan of Ravage as I use it in about all the scenarios I make and cleverly implemented most elements into my favourite Escape missions. Quick question. I used to be able to get RHS and CUP equipment to spawn just fine in any Ravage-related mission just fine about a 8 months ago. Has something changed in the loot tables since then? Is it true that the zeds will no longer spawn with loot? Do I need designate which items will spawn in the loot table module? Does Ravage contain RHS, Warfare Thai mod, Frifth's Ruin, CUP Weapons, ect items in the mod itself, or must those be enabled to pull from (I've been unsuccessful in this measure.) the loot pool. Any info you could share with me would be entirely helpful."

 

I see multiple people sharing advice for other technical problems with different projects, so I don't know who to address. I saw one person say they adjusted an Force Adduniform parameter or so with positive results, but not sure if I can use this same thing to fixmy issue. Please hhelp me with this, my last post was several months ago.

Share this post


Link to post
Share on other sites

I'll try to answer your questions to the best of my ability....

17 hours ago, Jack144 said:

I used to be able to get RHS and CUP equipment to spawn just fine in any Ravage-related mission just fine about a 8 months ago. Has something changed in the loot tables since then?

Not much if anything has changed regarding loot tables, if it's been a few months since you used your mission it's probably worth taking a fresh look at how your Gear Pool module is set-up, but generally speaking CUP/RHS equipment should definitely spawn if enabled in the Gear Pool module.

17 hours ago, Jack144 said:

Is it true that the zeds will no longer spawn with loot?

To my knowledge Ravage Zeds have never spawned loot, you can however utilize the Killed EH in the Ambient Zombies module, fellow Ravager chernaruski combined George Floros' drop loot script with the Ambient Zombie module Killed EH to great effect.

17 hours ago, Jack144 said:

Does Ravage contain RHS, Warfare Thai mod, Frifth's Ruin, CUP Weapons, ect items in the mod itself, or must those be enabled to pull from (I've been unsuccessful in this measure.) the loot pool.

Ravage doesn't include but does support those mods, and obviously they have to loaded and configured correctly to work with Ravage.

:icon_biggrin:

Share this post


Link to post
Share on other sites

You know whats funny, and of course its serious in its own right but here we have a mod dedicated to the survival genre including with or without zombies

in an apocalyptic situation based on The White Plague, and currently we have an actual pandemic that is sweeping the world which started just 2 weeks ago!

   How f*cked up is that! :yell:

    Im expecting some interesting creative ideas for missions based on whats actually happening, to come out in some weeks to months about this.

Its really interesting that you can look at history and the situations that such populations had dealt with like the black plague, the Spanish flu and others

a mod like Ravage and the creative minds that play with it can really amplify or dramatize a situation to be more then what it is for the sake of gameplay, all in all

i can see ideas flowing.   Maybe the wrong word in the context of the real life situation but its inspiring in the right way.

  • Like 6

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

×