Jump to content
Sign in to follow this  
jedra

Enhanced Skills Slider

Recommended Posts

So i made a quick test. Your skill sliders dont go beyond BIS max settings but do have the awesome ability to individually change the different skills.

I tested with a sniper (M107) on Utes airfield and placed moving enemies 350 meters away (walking around) and my sniper set to max skill in the "individual unit placer". He could not spot them. When i checked the Enhanced Skill Slider all the skills were maxed out meaning i cant give the sniper even longer spotting distance than what BIS has hardcoded?

Maybe that can be done? Override the BIS max spotting distance (like ACE and other addons did) and some other skills that could need to be cranked above BIS max levels. I tested with CBA and ESS only, however in the latest beta. Dont know if the beta breaks something.

Share this post


Link to post
Share on other sites
So i made a quick test. Your skill sliders dont go beyond BIS max settings but do have the awesome ability to individually change the different skills.

I tested with a sniper (M107) on Utes airfield and placed moving enemies 350 meters away (walking around) and my sniper set to max skill in the "individual unit placer". He could not spot them. When i checked the Enhanced Skill Slider all the skills were maxed out meaning i cant give the sniper even longer spotting distance than what BIS has hardcoded?

Maybe that can be done? Override the BIS max spotting distance (like ACE and other addons did) and some other skills that could need to be cranked above BIS max levels. I tested with CBA and ESS only, however in the latest beta. Dont know if the beta breaks something.

That's where you would use my optional config. This sets the minimum value to 0 and the maximum value to 1 - the biggest range it can have. By default the BIS setup is;


   aimingAccuracy[] = {0, 0, 1, 1};

   aimingShake[] = {0, 0, 1, 1};

   aimingSpeed[] = {0, 0.5, 1, 1};

   endurance[] = {0, 0, 1, 1};

   spotDistance[] = {0, 0.2, 1, 0.4};

   spotTime[] = {0, 0, 1, 0.7};

   courage[] = {0, 0, 1, 1};

   reloadSpeed[] = {0, 0, 1, 1};

   commanding[] = {0, 0, 1, 1};

   general[] = {0, 0, 1, 1};

You can see from this that the maximum that spotDistance can ever be is actually 0.4. So, for spotDistance, if you set the skill slider to 1.0, it is actually 0.4, if you set it to 0, it is actually 0.2 - the inbetween is probably a linear progression - but that's just a guess!

If you use the optional config, it sets all ranges as 0,0,1,1 - giving you access to the actual full range.

Problem is that ASR_AI and Zeus (and probably ACE too) redefine cfgAISkills too - use them all and who knows what you end up with ;-)

Share this post


Link to post
Share on other sites
That's where you would use my optional config.

You are right. The part i hadnt really checked yet. :) Will do. Thanks for the explanation.

Share this post


Link to post
Share on other sites
So i made a quick test. Your skill sliders dont go beyond BIS max settings but do have the awesome ability to individually change the different skills.

I tested with a sniper (M107) on Utes airfield and placed moving enemies 350 meters away (walking around) and my sniper set to max skill in the "individual unit placer". He could not spot them. When i checked the Enhanced Skill Slider all the skills were maxed out meaning i cant give the sniper even longer spotting distance than what BIS has hardcoded?

Maybe that can be done? Override the BIS max spotting distance (like ACE and other addons did) and some other skills that could need to be cranked above BIS max levels. I tested with CBA and ESS only, however in the latest beta. Dont know if the beta breaks something.

You can't really increase the spotting range with scripting alone. Biki actually states that spotDistance is a probability coefficient. To enhance the spotting range, you need config tweaks (adjusting sensitivity), as in ACE or ASR AI.

Jedra kindly offered me his interface work so I plan to use it as a visual editor of the skill levels for ASR AI, for both applying new skills on the fly and pasting them into the userconfig.

Edited by Robalo

Share this post


Link to post
Share on other sites

Nice tool :)

Question though. Lets say i hit the Blue side/all set the sliders etc and go apply. How do i then close the screen? The only button there is Cancel. If i make adjustments then press cancel wont that cancel the adjustments i have made? :)

And does these setting remain? So if i turn arma off and restart will i have to setup the adjustments again?

Regards

Share this post


Link to post
Share on other sites
Nice tool :)

Question though. Lets say i hit the Blue side/all set the sliders etc and go apply. How do i then close the screen? The only button there is Cancel. If i make adjustments then press cancel wont that cancel the adjustments i have made? :)

And does these setting remain? So if i turn arma off and restart will i have to setup the adjustments again?

Regards

You can press cancel or Escape to close the dialog - the changes you applied will still be applied. The skill settings are only valid for the mission you are playing, so if you start a new mission (or even re-start the same mission) then you'll have to re-apply the settings.

Share this post


Link to post
Share on other sites

Thxs for the reply mate :)

So when the mission starts

Select Blue/all do settings Apply

Select Red/all do settings Apply

Then hit cancel

Got it.. Nice work :)

Would you be thinking of adding a save function kinda a global settings save that you could pic for a certain scenario etc? Instead of moving the sliders all over again when a new game has started?

Regards

Share this post


Link to post
Share on other sites
If you use the optional config, it sets all ranges as 0,0,1,1 - giving you access to the actual full range.

Hi Jedra

Wonderful add-on, thank you :yay:

Since 1.60, the enemy AI seems to kill me off even more quickly/easily than usual - I played around with this just briefly, & got more extended firefights in general as well as surviving longer.

One problem - when I load the config addon as well, I get an error, here's the .rpt output:

Version 1.60.87580

Warning Message: 'units/' is not a class ('requiredVersion' accessed)

Warning Message: 'weapons/' is not a class ('requiredVersion' accessed)

Warning Message: 'requiredVersion/' is not a class ('requiredVersion' accessed)

Warning Message: 'requiredAddons/' is not a class ('requiredVersion' accessed)

& then access to the slider is unavailable. Only other mod loaded (apart from CBA) is OKT_NoBlur (loaded last).

Running CBA 0.8.3, CO. XP Pro.

I would actually prefer the config as a script in the User Config directory - it makes it easier to tweak if needed.

Much appreciate for the hard work and the inspiration needed to make this addon.

BR

Orcinus

Share this post


Link to post
Share on other sites

Hi Orcinus,

Strange - I just tried and the config loads OK. Only difference is that I am running the latest beta.

When I originally put the file up there was a problem, so maybe you could try and re-download it. The first link in the first post takes it direct from my server.

As for adding it to userconfig, I am not sure I can. CfgAISkill has to be overriden at class level and as far as I am aware this cannot be done in a userconfig file. I am happy to be proved wrong here though.

You can easily make your own though, it's just a single class definition so it wouldn't take much to de-pbo, edit and re-pbo.

I am working on the next version at the moment. A few bug fixes (although nothing that affects the skills) and a map to help locate groups and individual units. Also looking into making the skill changes persistant, in that any new units spawned will take on the values set previously in the sliders. I am also looking at a simple userconfig where slider values can be pre-entered.

Share this post


Link to post
Share on other sites

Hi Jedra :) I'm not entirely sure, but DAC may need a helping hand with this. Can you post up the command for setting the unit's properties so I can try it in the DAC AfterBuildUp event?

Share this post


Link to post
Share on other sites
Hi Jedra :) I'm not entirely sure, but DAC may need a helping hand with this. Can you post up the command for setting the unit's properties so I can try it in the DAC AfterBuildUp event?

Sure, here's a simple example that I use in one of my test-beds;


_unit = _this select 0;
_aimingAccuracy    = 0.666;
_aimingShake       = 0.666;
_aimingSpeed       = 0.666;
_endurance         = 0.666;
_spotDistance      = 0.666;
_spotTime          = 0.666;
_courage           = 0.666;
_reloadSpeed       = 0.666;
_commanding        = 0.666;
_general           = 0.666;
_unit  setSkill ["aimingAccuracy", _aimingAccuracy];
_unit  setSkill ["aimingShake", _aimingShake];
_unit  setSkill ["aimingSpeed", _aimingSpeed];
_unit  setSkill ["endurance", _endurance];
_unit  setSkill ["spotDistance", _spotDistance];
_unit  setSkill ["spotTime", _spotTime];
_unit  setSkill ["courage", _courage];
_unit  setSkill ["reloadSpeed", _reloadSpeed];
_unit  setSkill ["commanding", _commanding];
_unit  setSkill ["general", _general];

In the above example, the unit is passed in as a parameter.

Does this help?

Share this post


Link to post
Share on other sites
Hi Orcinus,

Strange - I just tried and the config loads OK. Only difference is that I am running the latest beta.

When I originally put the file up there was a problem, so maybe you could try and re-download it. The first link in the first post takes it direct from my server.

OK, have done so - files were identical, but I replaced them anyway. Also dropped OKT_NoBlur just. I still get the same error.

Here's the complete rpt up to the first game menu:

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

== G:\ARMA II\arma2OA.exe

== "G:\ARMA II\arma2OA.exe" -malloc=tbb4malloc_bi -nosplash -skipintro -showscripterrors -window -world=empty -MOD=@CBA;@JED_ESS;@JED_CONFIG

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

Exe timestamp: 2012/02/10 22:09:14

Current time: 2012/02/18 20:43:03

Version 1.60.87580

Warning Message: 'units/' is not a class ('requiredVersion' accessed)

Warning Message: 'weapons/' is not a class ('requiredVersion' accessed)

Warning Message: 'requiredVersion/' is not a class ('requiredVersion' accessed)

Warning Message: 'requiredAddons/' is not a class ('requiredVersion' accessed)

Weird that yhis (apparently) only happens onmy machinr - which just had a full reinstall of both AII and OA, by the way.

Next version looks like being even more useful, thank you!

BR

Orcinus

Share this post


Link to post
Share on other sites

@Orcinus - OK, I have reproduced this now. It's because only the latest beta removes the dependency on required version. If you run with one of the latest betas then it will work. I'll put up a hotfix for this file in a while.

EDIT ----> Ok added a hotfix for this file only in the downloads section of the first post.

It wasn't the reason I thought it was - I had just made a mistake in the config. Whoops.

Edited by Jedra

Share this post


Link to post
Share on other sites
Sure, here's a simple example that I use in one of my test-beds;


_unit = _this select 0;
_aimingAccuracy    = 0.666;
_aimingShake       = 0.666;
_aimingSpeed       = 0.666;
_endurance         = 0.666;
_spotDistance      = 0.666;
_spotTime          = 0.666;
_courage           = 0.666;
_reloadSpeed       = 0.666;
_commanding        = 0.666;
_general           = 0.666;
_unit  setSkill ["aimingAccuracy", _aimingAccuracy];
_unit  setSkill ["aimingShake", _aimingShake];
_unit  setSkill ["aimingSpeed", _aimingSpeed];
_unit  setSkill ["endurance", _endurance];
_unit  setSkill ["spotDistance", _spotDistance];
_unit  setSkill ["spotTime", _spotTime];
_unit  setSkill ["courage", _courage];
_unit  setSkill ["reloadSpeed", _reloadSpeed];
_unit  setSkill ["commanding", _commanding];
_unit  setSkill ["general", _general];

In the above example, the unit is passed in as a parameter.

Does this help?

Do those passed parameters have a global identity? If they were global variables then I could use them in a script called by the DAC AfterBuildUp event. Also, it looks like the globals will need naming so that the correct side's values are passed.

So, thinking about it, I guess I'm asking for sets of global variables representing the current setting values, for each side. Like Blufor_aimingAccuracy, Opfor_aimingAccuracy etc. Then I will need to check for null values for those settings that have not been set and exclude them, but that's not your concern :)

It might be worth your while maintaining a set of globals anyway for use by any other addon that might decide to use them :)

Share this post


Link to post
Share on other sites

At the moment I am not storing the skill slider positions or random spread values as globals - they are just passed into a function as parms and the function then runs on the server and each and every client.

When I come to make them persistant I will have to store the slider positions as globals and I will also store the min and max values (from the randomiser sliders) as globals. The pre-init function will then use these globals when a new unit is initialized.

The random spreads will be calculated 'on the fly' when a unit is created - it's the only way to ensure that each new unit gets a slightly different spread of values.

The downside of me making the values persistant is that the addon will need to be on the server and all clients (not just the admin client as is the case now). This is because the pre-init functions have to be defined at a config level which cannot be achieved with script. It changes things significantly!

Anyway, it means the next version will take a little time to get out as I am also trying not to stray into ASR_AI territory - Robalo does this well and I am not up to the competition ;-)

Share this post


Link to post
Share on other sites

I thought of the saving of options as well. As I understand it, this is a GUI for a large set of values that would otherwise have to be put in some .cfg file in your profile? If so, perhaps you could make an export into a flat file that would make it easier to paste the values into this .cfg file?

Sorry if this is not the case, just what came to mind if "saving" the settings are a non-trivial task

-OP

Share this post


Link to post
Share on other sites
I thought of the saving of options as well. As I understand it, this is a GUI for a large set of values that would otherwise have to be put in some .cfg file in your profile? If so, perhaps you could make an export into a flat file that would make it easier to paste the values into this .cfg file?

Sorry if this is not the case, just what came to mind if "saving" the settings are a non-trivial task

-OP

Not exactly! The slider manipulates values that are available for anyone to use via script, in fact they are described here in the wiki. Just saving them to the clipboard or something will not really help much (other than to plug back in to the userconfig file that it will use). I am looking at two enhancements in regard to this;

1. Adding a userconfig which will allow the user to set these values before loading Arma2. Then, once in mission there will be a button to apply the userconfig values (or it might do it automatically, not sure yet).

2. The values will be persistant in that any new units created during the mission will have these values applied to them (or in the case of a randon range, they will have a random range applied).

The second option complicates matters somewhat. Currently the Advanced Skills Slider just needs to be on the admin client. With this change it will need to be on the server and all clients.

I'll be plugging away this week on it as long as real work doesn't get in the way!

Share this post


Link to post
Share on other sites
@Orcinus - OK, I have reproduced this now. It's because only the latest beta removes the dependency on required version. If you run with one of the latest betas then it will work. I'll put up a hotfix for this file in a while.

EDIT ----> Ok added a hotfix for this file only in the downloads section of the first post.

It wasn't the reason I thought it was - I had just made a mistake in the config. Whoops.

:)

No worries, thanks for the fast response! I'm really looking forward to experimenting with this.

BR

Orcinus

Share this post


Link to post
Share on other sites

This is quite useful as is, and has tremendous potential as well. Keep it up sir, it is appreciated. Especially given the ridiculous accuracy of the AI right now. . .

Share this post


Link to post
Share on other sites

Just to let people know that version 2.0 is currently being tested and should be ready in a couple of days. Came across a particularly stubborn bug last night that, rather like a door to door salesman, just won't go away! Anyway, hopefully with the dawn of a new day my brain will be ready to tackle it again later on.

Major features of v2 are;

1. Mini-map display breifly showing where a unit is in relation to the admin. In the case of a group, it is the leader's position shown.

2. Any skills set for 'all units' are now persistant. This means that any new units spawned will take on the values (or random spread range) set for that side.

3. To achieve this, and master and slave component will be needed (master on the admin client, slave on the server and all connected clients including the admin). If the slave is not on a client then 'persistency' will not work for units spawned on that client.

4. Lots of internal code changes invisible to the the human eye!

No userconfig as yet - I am still in two minds about whether to implement this or not!

Stay tuned and until the next time, happy hunting...

Share this post


Link to post
Share on other sites

2. Any skills set for 'all units' are now persistant. This means that any new units spawned will take on the values (or random spread range) set for that side.

3. To achieve this, and master and slave component will be needed (master on the admin client, slave on the server and all connected clients including the admin). If the slave is not on a client then 'persistency' will not work for units spawned on that client.

Sounds great :)

One query re point 3 - will this affect how the mod works for SP? Or will ir be sufficient just to run it on the local machine?

Hope this doesn't seem to dumb a question, but I don't play MP (well, not yet anyway).

Thanks again for this much-needed development.

BR

Orcinus

Share this post


Link to post
Share on other sites

Orcinus, no it's a fair question. I have done it this way specifically to avoid problems playing in Single Player (I also play SP a lot, so I have a vested interest!). In actuality there is no reason why it couldn't just be one mod, but the GUI is irrelevant to all but the admin client - by the time it comes to release, it may be combined as one. In fact, in SP you would load both anyway. I'll see how bug fixing goes today and the message will be clearer!!

My mind is focused in resolving this pesky bug so perhaps my explanations are a little confused!

Share this post


Link to post
Share on other sites

No worries - I'll wait patiently for the next release.

Cheers

Orcinus

Share this post


Link to post
Share on other sites

Sounds good Jedra! Looking forward to it when done...

/KC

Edited by KeyCat

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
Sign in to follow this  

×