Jump to content

Recommended Posts

53 minutes ago, .kju said:

@Larrow did you manage to sort it out yet?

No, I have currently moved on to other projects, I like to swap and change when I'm feeling stumped/burnt out on a project, its usually those times where you get a eureka moment for something else :D.

When I revisit it I'm thinking I may just have to hard code a range of screen sizes of known pixelGrid values for people to test their designs in.

  • Like 2
  • Thanks 1

Share this post


Link to post
Share on other sites
2 hours ago, .kju said:

 

Yes, they do work but they limit the AI to the one same position. I could always write a loop forcing the AI to a random position other than prone, but well, I don't see meself doing that each time I work on a mission with AIs. :/

I reckon I might take a look at the FSM and include an optional edit to either my Ravage mod or the Discipline mod...

Share this post


Link to post
Share on other sites

@haleks what about these config tweak options?

 

class cfgVehicles
	class Man: Land
		lyingLimitSpeedHiding = 0.8;
		crouchProbabilityHiding = 0.8;
		lyingLimitSpeedCombat = 1.8;
		crouchProbabilityCombat = 0.4;
		crouchProbabilityEngage = 0.75;
		lyingLimitSpeedStealth = 2;

class CfgSurfaces
	class Default
	/// = 0 - current state, see https://jira.bistudio.com/browse/AIII-30049
	/// = 1 - avoid prone (unless stealth or suppressed or ^)
	/// = 2 - never prone (unless ^)
	/// = 3 - don't know yet
		AIAvoidStance = 0;

 

  • Like 1
  • Thanks 2

Share this post


Link to post
Share on other sites
56 minutes ago, .kju said:

@haleks what about these config tweak options?

 


class cfgVehicles
	class Man: Land
		lyingLimitSpeedHiding = 0.8;
		crouchProbabilityHiding = 0.8;
		lyingLimitSpeedCombat = 1.8;
		crouchProbabilityCombat = 0.4;
		crouchProbabilityEngage = 0.75;
		lyingLimitSpeedStealth = 2;

class CfgSurfaces
	class Default
	/// = 0 - current state, see https://jira.bistudio.com/browse/AIII-30049
	/// = 1 - avoid prone (unless stealth or suppressed or ^)
	/// = 2 - never prone (unless ^)
	/// = 3 - don't know yet
		AIAvoidStance = 0;

 

 

Holy smoke - I never thought about checking the configs!

Thanks .Kju! I'll give those a try.

  • Like 2

Share this post


Link to post
Share on other sites

@.kju: The AIAvoidStance setting works great, it makes a real difference - and it doesn't alter the AI behaviour too much.

 

It doesn't seem to impact how quickly they move, I assumed a lot of the pauses were caused by the lying animations but that's not the case (good news for scenarios relying on close movement timing).

They do seem to better react to their surroundings though, probably because they have clearer LoS. Thanks again. ;)

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

Make sure to share your config tweak mod as others will surely appreciate it as well :thumbs-up:

  • Like 1

Share this post


Link to post
Share on other sites

Right now it's just that single change :

class CfgSurfaces {
	class Default {
		AIAvoidStance = 2;
	};
};

 

I'll apply it to Ravage and add it as an optional PBO for Discipline (I reckon people who still use it will enjoy another little immersion tweak).

  • Thanks 1

Share this post


Link to post
Share on other sites
On 12/18/2018 at 9:04 PM, .kju said:

@haleks what about these config tweak options?

 


class cfgVehicles
	class Man: Land
		lyingLimitSpeedHiding = 0.8;
		crouchProbabilityHiding = 0.8;
		lyingLimitSpeedCombat = 1.8;
		crouchProbabilityCombat = 0.4;
		crouchProbabilityEngage = 0.75;
		lyingLimitSpeedStealth = 2;

class CfgSurfaces
	class Default
	/// = 0 - current state, see https://jira.bistudio.com/browse/AIII-30049
	/// = 1 - avoid prone (unless stealth or suppressed or ^)
	/// = 2 - never prone (unless ^)
	/// = 3 - don't know yet
		AIAvoidStance = 0;

 

 

do we even have write access on those configs?

  • Confused 1

Share this post


Link to post
Share on other sites
20 hours ago, fn_Quiksilver said:

do we even have write access on those configs?

Yes, cfgSurfaces can be changed/expanded without issues

Share this post


Link to post
Share on other sites

In the light of https://feedback.bistudio.com/T135718

we want people to switch away from using call compile to parse things. But sadly parseSimpleArray is so limited that it's very hard to use with anything that was input by a user. Because users put spaces after comma's.

Allowing whitespace in there would make it MUCH more useful and wouldn't make it noticeably slower. Just skip spaces only after commas or at start/end.

Please, I just want to get rid of all the call compile's that really should be parseSimpleArray but can't be because of this one simple thing.

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

If I understand, it's preferable to use some

Fn_function = {code};     then later,   parameters call/spawn fn_function;

rather than

fn_Function = compile "stringed code";     then later,   parameters call/spawn fn_Function;

Especially if used in an on each frame or frequent EH (like animChanged)

 

So what about my habit:

Fn_function = compileFinal "stringed code";     then later,   parameters call/spawn fn_Function;

 

I know it's possible to add the function into the cfgFunction, but usually there are plenty of repetitive small scripts inside other scripts. Not sure they worth an entry class for that.

 

I discovered today, the future alternate syntax of compile. I'm not sure to understand when I should apply compile , compile (forceDisableCache) or compileFinal.  Any tuto insight?

 

Share this post


Link to post
Share on other sites
5 hours ago, pierremgi said:

Especially if used in an on each frame or frequent EH (like animChanged)

Eventhandlers are stored as strings and recompiled before every execution, so it doesn't matter if you pass precompiled code or just a string to it.

 

5 hours ago, pierremgi said:

compileFinal

Is EXACTLY the same as a normal compile. With the one difference that it sets a "readOnly" flag on every variable that you move the returned value into. Meaning you cannot overwrite that variable anymore, till it's deleted by the engine, which happens at mission end for missionNamespace.

That's also why "call compileFinal.." is absolute nonsense, if you never store it in a variable it does nothing different.

 

The new alternative syntax is aimed to counteract the memory leak associated with compiling functions. You should use the forceDisableCache whenever you input something dynamic into compile, for example data returned by a Extension or any place where "compile format [...]" is used.

Still hoping for a better solution from BI though. This won't help that much with the memory leak.

  • Thanks 1

Share this post


Link to post
Share on other sites

Would be really handy to have a command to get current index of setDriveOnPath path the vehicle is driving on.

 

This would enable taking vehicles off the path to perform actions and go on their merry way afterwards.

  • Like 2

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

×