Jump to content
Sign in to follow this  
terox

zeu_ServerSkill (Serverside AI skill setting addon with userconfig configuration)

Recommended Posts

And Zeu AI ONLY set the skill level ONCE after one second into play?

So if you play any mission with respawning AI (for example after 10 minutes into the mission), they will be unaffected by ZEU AI and will use the default BI AI (accuracy)?

Isn't it possible in this case, to affect respawned AI too?

I wasn't aware when AI respawned that this occured.

I will test this and if it is the case, then the addon will deal with it ?

If this is the case and I do need to add some code, then this will most likely overwrite all ai skill systems that are running in missions and addons, which is most likely what the server admin wants anyway

Edited by Terox

Share this post


Link to post
Share on other sites
I wasn't aware when AI respawned that this occured.

I will test this and if it is the case, then the addon will deal with it ?

If this is the case and I do need to add some code, then this will most likely overwrite all ai skill systems that are running in missions and addons, which is most likely what the server admin wants anyway

@Terox

Seemed to be the same problem here (a solution you will find in the thread)

http://forums.bistudio.com/showthread.php?132416-Change-Skill-after-or-during-spawn

Share this post


Link to post
Share on other sites

Just make a loop:

[] spawn {

_skill = [0.45, 0.45, 0.45, 1, 0.45, 1, 0.45, 1, 0.45, 1];

sleep 1;

while {true} do {

	{
		_x setskill ["aimingspeed", (_skill select 0)];
		_x setskill ["aimingaccuracy", (_skill select 1)];
		_x setskill ["aimingshake", (_skill select 2)];
		_x setskill ["spotdistance", (_skill select 3)];
		_x setskill ["spottime", (_skill select 4)];
		_x setskill ["commanding", (_skill select 5)];
		_x setskill ["courage", (_skill select 6)];
		_x setskill ["endurance", (_skill select 7)];
		_x setskill ["reloadSpeed", (_skill select 8)];
		_x setskill ["general", (_skill select 9)];
	} forEach allUnits;

	sleep 60;

};

};

Share this post


Link to post
Share on other sites
Just make a loop:

[] spawn {

_skill = [0.45, 0.45, 0.45, 1, 0.45, 1, 0.45, 1, 0.45, 1];

sleep 1;

while {true} do {

	{
		_x setskill ["aimingspeed", (_skill select 0)];
		_x setskill ["aimingaccuracy", (_skill select 1)];
		_x setskill ["aimingshake", (_skill select 2)];
		_x setskill ["spotdistance", (_skill select 3)];
		_x setskill ["spottime", (_skill select 4)];
		_x setskill ["commanding", (_skill select 5)];
		_x setskill ["courage", (_skill select 6)];
		_x setskill ["endurance", (_skill select 7)];
		_x setskill ["reloadSpeed", (_skill select 8)];
		_x setskill ["general", (_skill select 9)];
	} forEach allUnits;

	sleep 60;

};

};

There are better ways that that

Share this post


Link to post
Share on other sites
Any plans for a new version which includes respawned AI?

I am currently working on a newer version.

It still needs some finalisation, and a bit of server-side testing. I will hopefully find the time to do that in the next few days, but certainly by the end of the week

The code has been re-written and optimised

The new version will have the following additional abilities

  1. Custom defineable randomisation values
  2. Works for single player as well as server. (This does not mean it will work for a non server client in a multiplayer environment. It has been designed to specificaly not do that)
  3. Works for playable units when they respawn using an Respawn Eventhandler

Here's a copy of the user-config which has been totally revamped

// AUTHOR	:	Terox (terox_@hotmail.com) www.zeus-community.net
// LAST Edited	:	7/4/2013
// MP MACHINE	:	Serverside	
// Called from	:	Zeu_ServerBriefing/init.sqf		
// Called using	: 	[]execVm
// Time Called	:	Before Time 0 
// Description	:	Defines AI skills 
//					(Temporary or permanent fix for the inability to define your precision and skill settings in the .ArmA3profile)
//					It also gives you more control over the entire skill settings for AI
//
//	COMMENTS 		skill array elements as follows
//
//						select 0:	aimingspeed
//						select 1:	aimingaccuracy
//						select 2:	aimingshake
//						select 3:	spotdistance
//						select 4:	spottime
//						select 5:	commanding
//						select 6:	courage
//						select 7:	endurance
//						select 8:	reloadSpeed
//						select 9:	general
//
//						Value range is between 0 and 1


 _option = [3,2];		// 1st element selects the skill matrix option
					// 2nd element selects the randomisation matrix option
					// The randomisation is +/- from the core selected value
					// For example if you used the _option = [3,2] then the 0.45 core value will be randomised to a value between 0.35 and 0.55

 _mode		= 2;		// 0: Addon module is disabled
					// 1: serverside only
					// 2: Server & Clientside
					// 3: Single player mode

 _debug	= TRUE;	// This will output the skill settings to your server .rpt for debugging purposes



 // The following is the core skill matrix
_skill = switch(_option select 0)do
   {
        case 0:{[ 0.2,  0.2,  0.2, 1,  0.2, 1,  0.2, 1,  0.2, 1];};
        case 1:{[0.25, 0.25, 0.25, 1, 0.25, 1, 0.25, 1, 0.25, 1];};
        case 2:{[0.35, 0.35, 0.35, 1, 0.35, 1, 0.35, 1, 0.35, 1];};
        case 3:{[0.45, 0.45, 0.45, 1, 0.45, 1, 0.45, 1, 0.45, 1];};
        case 4:{[0.55, 0.55, 0.55, 1, 0.55, 1, 0.55, 1, 0.55, 1];};
        case 5:{[0.65, 0.65, 0.65, 1, 0.60, 1, 0.65, 1, 0.65, 1];};
        case 6:{[0.75, 0.75, 0.75, 1, 0.75, 1, 0.75, 1, 0.75, 1];};
        case 7:{[0.85, 0.85, 0.85, 1, 0.80, 1, 0.85, 1, 0.85, 1];};
        case 8:{[0.95, 0.95, 0.95, 1, 0.95, 1, 0.95, 1, 0.95, 1];};
        case 9:{[1,1,1,1,1,1,1,1,1];};
	 default {[0.1, 0.45, 0.45, 1, 0.45, 1, 0.45, 1, 0.45, 1];};
   };

// The following is the randomisation skill matrix
 _rnd = switch(_option select 1)do
   {
     case 0:{[   0,    0,    0, 0,    0, 0,    0, 0,    0, 0];}; // use this option if you do not want randomisation
        case 1:{[ 0.5,  0.5,  0.5, 0,  0.5, 0,  0.5, 0,  0.5, 0];};
        case 2:{[ 0.1,  0.1,  0.1, 0,  0.1, 0,  0.1, 0,  0.1, 0];};
 case 3:{[ 1.5,  1.5,  1.5, 0,  1.5, 0,  1.5, 0,  1.5, 0];};
 case 4:{[ 0.2,  0.2,  0.2, 0,  0.2, 0,  0.2, 0,  0.2, 0];};
 default {[ 0.1,  0.1,  0.1, 0,  0.1, 0,  0.1, 0,  0.1, 0];};
   };
   Zeu_ServerSkill = [_skill,_rnd,_mode,_debug];

Share this post


Link to post
Share on other sites
Is case3 going to be correct in the randomisation? +-1.5 ?

you can place whatever values you want in the randomisation matrix, that's the whole point of the userrconfig

if the random value causes the skill value to be set below 0 it will be reset to 0, same as if the value ends up being greater than 1, it will reset to 1

Share this post


Link to post
Share on other sites

New version available

v1.02

Changelog

  1. Added randomisation tolerances
  2. Added support for respawning A.I
  3. Added single Player support
  4. Complete overhaul on existing code

Please note earlier versions of this addon are not compatible with this version, so please remove the following files before installing this version

  • *:\ArmA3\ userconfig\zeu\zeu_ServerSkills.hpp
  • ArmA3\ Addons\zeu_ServerSkills.pbo

See initial post for download links and more information


Any know issues with this mod and the PlayWithSix content manager?

Not that i am aware of nor should it


NB>> The initial 1.02 package was missing the actual addon, please redownload to aquire the correct package

Edited by Terox

Share this post


Link to post
Share on other sites

Thank you for doing this, it's such an important aspect of the game. Is there any chance of making it so that we can adjust the skills for friendly/enemy independently?

Share this post


Link to post
Share on other sites
Thank you for doing this, it's such an important aspect of the game. Is there any chance of making it so that we can adjust the skills for friendly/enemy independently?

I had not anticipated this.

It may be possible but.........

If there were 2 playable sides with AI how do we define which side is enemy and if both sides were defining the other side as enemy, both sides would end up with the same value.

some servers run A&D's, which is basically 2 coops playing against each other, both using AI

Also the skills are set locally to the AI

I assume the server wont be able to define which side is enemy or friendly.

I would have to add code to check for the number of playable units per side. if there were only playable units on 1 side then I could select the appropriate array matrix to be used to setskill

This would mean potentially there would be multiple array matrix to configure which may add confusion

Edited by Terox

Share this post


Link to post
Share on other sites

dont know how to code it, but this is what the player profile cfg does...it allows you to specify friendly skill and enemy skill independently.

Share this post


Link to post
Share on other sites

Perhaps you could make it so that "enemy" is itself a separate skill array, and then enable the default for any sides with playable units in them, and the "enemy" array for any that do not? Wouldn't work very well for things like having the independent faction being sided with the ally, but there's probably a way to check for that as well.

Share this post


Link to post
Share on other sites

May it be, that one of the last dev builds broke "zeu_ServerSkill"?

I think they changed/removed the "spawn()" command.

Share this post


Link to post
Share on other sites

This addon requires CBA

CBA is currently broken due to certain commands being disabled by BIS to prevent certain hacks that have been taking place

Share this post


Link to post
Share on other sites

Looking forward to it working again Terox, I hope you'll post here when you have a working version again.

I never got the chance to try it out before the "Hacks" so looking forward to it when CBA is sorted.

Many Thanks

Share this post


Link to post
Share on other sites

I also wonder, if either zeu_Serverskill would work with the new cba_beta3 or it would need any adjustments?

Share this post


Link to post
Share on other sites

Just tried CBA and ZEU with the latest version of CBA and got some errors so I presume it is still broken.

I am presuming it is still called as with any mod in the command line for the Dedicated server

-mod=@CBA_A3; @zeu_ServerSkills

and that Clients joining would have to have the CBA mod installed but not the Zeu mod

Share this post


Link to post
Share on other sites

My server if offline at the moment undergoing a major upgrade and reinstall, so please bear with me. I want to get this addon working again, but right now I have higher prioriities

and that Clients joining would have to have the CBA mod installed but not the Zeu mod

The clients do not need CBA

Edited by Terox

Share this post


Link to post
Share on other sites

No problem! Still looking for intelligent AI with realistic aiming in the hopefully near future. ;)

Share this post


Link to post
Share on other sites
My server if offline at the moment undergoing a major upgrade and reinstall, so please bear with me. I want to get this addon working again, but right now I have higher prioriities

The clients do not need CBA

NP Terox ... eagerly awaiting your update, take your time.

K as for the Addons, I've got myself all confusimacted.

I run a Dedicated Server on my Home PC, then connect via Lan - 2 or 3 friends would join via Internet.

Zeu requires CBA >> CBA requires serverkey installed in serverkey directory .. zeu does not (so clients don't need that as it runs serverside only - understood) >> however if running verifySigantures=2 then does the Dedicated server not knock back Clients from joining as it sees that they do not have CBA ?

??

Share this post


Link to post
Share on other sites

Okay an update

Now Working Again:yay:

I finally got some time to debug the issue

With this version of CBA: https://dev-heaven.net/attachments/download/20597/CBA_A3_beta3.7z

the addon runs without any problems.

Use the test mission to prove its working okay on your server

Just to reiterate for jxjcksn

The clients DO NOT NEED @CBA_A3

The clients SHOULD NOT HAVE zeu_ServerSkills (Although if they do have it, it wont effect anything)

The server MUST HAVE @CBA_A3

The server MUST HAVE zeu_ServerSkills and the required userconfig folder

Having server keys installed on the server is for the clients benefit, it means that if you have say a BiKey for Addon_X in the keys folder on your server, then the client can use Addon_X providing that Addon_X has a bisign

The reason why zeu_ServerSkills does not have a bisign or bikey is to prevent clients using it or attempting to use it in an MP environment, while still allowing a Player hosted server to use it

Edited by Terox

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this  

×