Jump to content

Recommended Posts

gf-set-aiskill-script-version-10-1_4.png

GF Set AISkill Script

 

by

 

GEORGE FLOROS [GR]

 

 

Description:

GF Set AISkill Script , Set your desired AI Skills settings.
You are free to do anything but i would like to give me Credits for this!
Simple and easy to use and adapt .
Have Fun !

 


Installation / Usage:

For usage instructions and information of how to use the GF Set AISkill Script  , please refer to the included documentation and/or example mission.

Place in your mission the files . There is everything included , in the init.sqf and in the Description.ext , to copy paste in your mission .

 

 

https://community.bistudio.com/wiki/SQF_syntax
Don't try to open this with the simple notepad.

For everything that is with comment // in front or between /*
means that it is disabled , so there is no need to delete the extra lines.

You can open this ex:
with notepad++
https://notepad-plus-plus.org/

and also use the extra pluggins
(this way will be better , it will give also some certain colours to be able to detect ex. problems )
http://www.armaholic.com/page.php?id=8680

or use any other program for editing .

For the Compilation List of my GF Scripts , you can search in:

https://forums.bohemia.net/forums/topic/215850-compilation-list-of-my-gf-scripts/

 

 

Notes:

Copy in the descripion.ext  :

#include "Mission_Parameters.hpp"

and add the Mission_Parameters.hpp in your mission files.

 

Or copy , in your descripion.ext :

class Params
{
	class GF_Set_AISkill 
	{
		title = "GF_Set_AISkill";
		values[] = {0,1,2,3,4,5};
		default = 1;
		texts[] = {"Novice","Rookie","Recruit","Veteran","Expert","Random"};
	};
};

 

 

Credits & Thanks:

Thanks to All script contributors
Thanks to everyone who tries to do the best for this game!
Thanks to BIS for such a great platform .
Thanks to BIS Community and BIS Community Forums .
Thanks to Armaholic Community and Forums .

 

 

Changelog:

 

v1.0

 

 

Forum topic:
- Armaholic forums http://www.armaholic.com/forums.php?m=posts&q=40229

 


 

Armaholic

download

GF Set AISkill Script

 

  • Like 4

Share this post


Link to post
Share on other sites

No need for all those if statements. You can pass values in the parameters.

values[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};

Then divide by 10.

  • Like 2

Share this post


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

You can pass values in the parameters.

 

Yes indeed !

 

But this way it is possible for everyone to give their personal settings and there is also an option available for Random Skill.

Share this post


Link to post
Share on other sites
14 minutes ago, AlexMercerIV said:

set up separately for each side

 

Hello there AlexMercerIV !

 

you can add in the spawn

https://community.bistudio.com/wiki/Side_relations

if(side _x isEqualto west)then{

 

example :

[] spawn {
	while {true} do {

if (GF_Set_AISkill_Systemchat_info) then {
systemchat "GF_Set_AISkill Random";	
};			

		if(side _x isEqualto west)then{
		{		
		if (((alive _x)) && (!(_x getVariable ["GF_AISkill",false]))) then {
			_x setSkill ["aimingAccuracy", 0.25 + (random 0.75)];
			_x setSkill ["aimingShake", 0.25 + (random 0.75)];
			_x setSkill ["aimingSpeed", 0.25 + (random 0.75)];
			_x setSkill ["commanding", 0.25 + (random 0.75)];
			_x setSkill ["courage", 0.25 + (random 0.75)];
			_x setSkill ["general", 0.25 + (random 0.75)];
			_x setSkill ["reloadSpeed", 0.25 + (random 0.75)];
			_x setSkill ["spotDistance", 0.25 + (random 0.75)];
			_x setSkill ["spotTime", 0.25+ (random 0.75)];
			};						
			_x setVariable ["GF_AISkill",true];
			{waitUntil {!alive _x};
			_x setVariable ["GF_AISkill",false];		 
			};
		}forEach allUnits;
		sleep 10;
		};
	};
};

 

Share this post


Link to post
Share on other sites
43 minutes ago, GEORGE FLOROS GR said:

 

Hello there AlexMercerIV !

 

you can add in the spawn 

https://community.bistudio.com/wiki/Side_relations


if(side _x isEqualto west)then{

 

example :


[] spawn {
	while {true} do {

if (GF_Set_AISkill_Systemchat_info) then {
systemchat "GF_Set_AISkill Random";	
};			

		if(side _x isEqualto west)then{
		{		
		if (((alive _x)) && (!(_x getVariable ["GF_AISkill",false]))) then {
			_x setSkill ["aimingAccuracy", 0.25 + (random 0.75)];
			_x setSkill ["aimingShake", 0.25 + (random 0.75)];
			_x setSkill ["aimingSpeed", 0.25 + (random 0.75)];
			_x setSkill ["commanding", 0.25 + (random 0.75)];
			_x setSkill ["courage", 0.25 + (random 0.75)];
			_x setSkill ["general", 0.25 + (random 0.75)];
			_x setSkill ["reloadSpeed", 0.25 + (random 0.75)];
			_x setSkill ["spotDistance", 0.25 + (random 0.75)];
			_x setSkill ["spotTime", 0.25+ (random 0.75)];
			};						
			_x setVariable ["GF_AISkill",true];
			{waitUntil {!alive _x};
			_x setVariable ["GF_AISkill",false];		 
			};
		}forEach allUnits;
		sleep 10;
		};
	};
};

 

 

Where should I write this? somewhere under "case X:" I am not very good at it

something like this?

Quote

 

//________________    Novice    ________________
//
case 0:    {
[] spawn {
    while {true} do {

if (GF_Set_AISkill_Systemchat_info) then {
systemchat "GF_Set_AISkill Random";    
};            

        if(side _x isEqualto west)then{
        {        
        if (((alive _x)) && (!(_x getVariable ["GF_AISkill",false]))) then {
            _x setSkill ["aimingAccuracy", 0.25 + (random 0.75)];
            _x setSkill ["aimingShake", 0.25 + (random 0.75)];
            _x setSkill ["aimingSpeed", 0.25 + (random 0.75)];
            _x setSkill ["commanding", 0.25 + (random 0.75)];
            _x setSkill ["courage", 0.25 + (random 0.75)];
            _x setSkill ["general", 0.25 + (random 0.75)];
            _x setSkill ["reloadSpeed", 0.25 + (random 0.75)];
            _x setSkill ["spotDistance", 0.25 + (random 0.75)];
            _x setSkill ["spotTime", 0.25 + (random 0.75)];
            };                        
            _x setVariable ["GF_AISkill",true];
            {waitUntil {!alive _x};
            _x setVariable ["GF_AISkill",false];        
            };
        }forEach allUnits;
        sleep 10;
        };
    
if (GF_Set_AISkill_Systemchat_info) then {
systemchat "GF_Set_AISkill Random";    
};            

        if(side _x isEqualto east)then{
        {        
        if (((alive _x)) && (!(_x getVariable ["GF_AISkill",false]))) then {
            _x setSkill ["aimingAccuracy", 0.15 + (random 0.75)];
            _x setSkill ["aimingShake", 0.15 + (random 0.75)];
            _x setSkill ["aimingSpeed", 0.15 + (random 0.75)];
            _x setSkill ["commanding", 0.15 + (random 0.75)];
            _x setSkill ["courage", 0.15 + (random 0.75)];
            _x setSkill ["general", 0.15 + (random 0.75)];
            _x setSkill ["reloadSpeed", 0.15 + (random 0.75)];
            _x setSkill ["spotDistance", 0.15 + (random 0.75)];
            _x setSkill ["spotTime", 0.15 + (random 0.75)];
            };                        
            _x setVariable ["GF_AISkill",true];
            {waitUntil {!alive _x};
            _x setVariable ["GF_AISkill",false];        
            };
        }forEach allUnits;
        sleep 10;
        };            
    
    };
};   

};   

 

  • Like 1

Share this post


Link to post
Share on other sites

It's fine as i see just add a };  if you haven't  to close the

case 0:    {

 

and delete the second systemchat.

You can also test this with the first code.

 

Share this post


Link to post
Share on other sites
18 minutes ago, GEORGE FLOROS GR said:

It's fine as i see just add a };  if you haven't  to close the

case 0:    {

 

and delete the second systemchat.

You can also test this with the first code.

  

Thx. One more question, is it possible to increase the shooting distance for bots?

  • Like 1

Share this post


Link to post
Share on other sites
5 minutes ago, AlexMercerIV said:

to increase the shooting distance for bots?

 

More than the standard ?

  • Like 1

Share this post


Link to post
Share on other sites

There are some scripts that you can search here.

Personally i was using this and it was working very good :

http://www.armaholic.com/page.php?id=23797

 

It suppose not to be for non vanilla units , though i was testing this mainly with the CUP mod and it was working fine.

Share this post


Link to post
Share on other sites

Something does not work in Zeus. with such parameters

 

 

Quote

//________________    Novice    ________________


case 0:    {    


[] spawn {
    while {true} do {

if (GF_Set_AISkill_Systemchat_info) then {
systemchat "GF_Set_AISkill east";    
};            

        if(side _x isEqualto east)then{
        {        
        if (((alive _x)) && (!(_x getVariable ["GF_AISkill",false]))) then {
            _x setSkill ["aimingAccuracy", 0.2 + (random 0.05)];
            _x setSkill ["aimingShake", 0.2 + (random 0.05)];
            _x setSkill ["aimingSpeed", 0.2 + (random 0.05)];
            _x setSkill ["commanding", 0.2 + (random 0.05)];
            _x setSkill ["courage", 0.2 + (random 0.05)];
            _x setSkill ["general", 0.2 + (random 0.5)];
            _x setSkill ["reloadSpeed", 0.2 + (random 0.05)];
            _x setSkill ["spotDistance", 0.2 + (random 0.05)];
            _x setSkill ["spotTime", 0.2 + (random 0.05)];
            };                        
            _x setVariable ["GF_AISkill",true];
            {waitUntil {!alive _x};
            _x setVariable ["GF_AISkill",false];        
            };
        }forEach allUnits;
        sleep 10;
        };
    
if (GF_Set_AISkill_Systemchat_info) then {
systemchat "GF_Set_AISkill west";    
};            

        if(side _x isEqualto west)then{
        {        
        if (((alive _x)) && (!(_x getVariable ["GF_AISkill",false]))) then {
            _x setSkill ["aimingAccuracy", 0.7 + (random 0.05)];
            _x setSkill ["aimingShake", 0.7 + (random 0.05)];
            _x setSkill ["aimingSpeed", 0.7 + (random 0.05)];
            _x setSkill ["commanding", 0.7 + (random 0.05)];
            _x setSkill ["courage", 0.7 + (random 0.05)];
            _x setSkill ["general", 0.7 + (random 0.05)];
            _x setSkill ["reloadSpeed", 0.7 + (random 0.05)];
            _x setSkill ["spotDistance", 0.7 + (random 0.05)];
            _x setSkill ["spotTime", 0.7 + (random 0.05)];
            };                        
            _x setVariable ["GF_AISkill",true];
            {waitUntil {!alive _x};
            _x setVariable ["GF_AISkill",false];        
            };
        }forEach allUnits;
        sleep 10;
        };            
    
    };
};    
    
};

 

 

 

Share this post


Link to post
Share on other sites

The values will not be the same for every type of unit, because it's different by  default , when you apply changes to a regular army and to guerilla.

In order to check your edit if and how is working , make a check with the first script, as i see that you are using this in the image and check the skill without running the script also , to see the difference.

 

You can add your units also in the example mission and run tests to adjust the numbers.

Share this post


Link to post
Share on other sites
8 minutes ago, GEORGE FLOROS GR said:

The values will not be the same for every type of unit, because it's different by  default , when you apply changes to a regular army and to guerilla.

In order to check your edit if and how is working , make a check with the first script, as i see that you are using this in the image and check the skill without running the script also , to see the difference.

 

You can add your units also in the example mission and run tests to adjust the numbers.

Initially, I had to attach the bot setup to the "kp Liberation" mission, but the script option with a specific side conflict does not work "if (side _x is Equalto east) then"

Share this post


Link to post
Share on other sites
1 minute ago, AlexMercerIV said:

does not work

 

If it does't work  are you sure that you have edit this correctly?

Share this post


Link to post
Share on other sites
1 hour ago, GEORGE FLOROS GR said:

 

If it does't work  are you sure that you have edit this correctly? 

 

 

 

Quote

//________________    Novice    ________________

case 0:    {    
[] spawn {
    while {true} do {

if (GF_Set_AISkill_Systemchat_info) then {
systemchat "GF_Set_AISkill Random";    
};            

        if(side _x isEqualto east)then{
        {        
        if (((alive _x)) && (!(_x getVariable ["GF_AISkill",false]))) then {
            _x setSkill ["aimingAccuracy", 0.5 + (random 0.02)];
            _x setSkill ["aimingShake", 0.5 + (random 0.02)];
            _x setSkill ["aimingSpeed", 0.5 + (random 0.02)];
            _x setSkill ["commanding", 0.5 + (random 0.02)];
            _x setSkill ["courage", 0.5 + (random 0.02)];
            _x setSkill ["general", 0.5 + (random 0.02)];
            _x setSkill ["reloadSpeed", 0.5 + (random 0.02)];
            _x setSkill ["spotDistance", 0.5 + (random 0.02)];
            _x setSkill ["spotTime", 0.5 + (random 0.02)];
            };                        
            _x setVariable ["GF_AISkill",true];
            {waitUntil {!alive _x};
            _x setVariable ["GF_AISkill",false];        
            };
        }forEach allUnits;
        sleep 10;
        };
    };
};
};
       


       east soldier

 

https://ibb.co/vcH7zYG

 

 

//________________    Novice    ________________

case 0:    {    
[] spawn {
    while {true} do {

if (GF_Set_AISkill_Systemchat_info) then {
systemchat "GF_Set_AISkill Novice 0.5";            
};            
        {        
        if (((alive _x)) && (!(_x getVariable ["GF_AISkill",false]))) then {
            _x setSkill ["aimingAccuracy", 0.5];
            _x setSkill ["aimingShake", 0.5 ];
            _x setSkill ["aimingSpeed", 0.5 ];
            _x setSkill ["commanding", 0.5 ];
            _x setSkill ["courage", 0.5 ];
            _x setSkill ["general", 0.5 ];
            _x setSkill ["reloadSpeed", 0.5 ];
            _x setSkill ["spotDistance", 0.5  ];
            _x setSkill ["spotTime", 0.5 ];
            };                        
            _x setVariable ["GF_AISkill",true];
            {waitUntil {!alive _x};
            _x setVariable ["GF_AISkill",false];        
            };
        }forEach allUnits;
        sleep 10;
    };
};    
};

 

https://ibb.co/sHP6vtf

 

 

 

Share this post


Link to post
Share on other sites

did you tested with and without the script , in order to check if you have edit this correctly ?  ( The same unit )

Plus might be in your mission already a script running for skill ?

Share this post


Link to post
Share on other sites
1 hour ago, GEORGE FLOROS GR said:

did you tested with and without the script , in order to check if you have edit this correctly ?  ( The same unit )

Plus might be in your mission already a script running for skill ? 

oh yes without "if (side _x isqualto east) then {" works

Share this post


Link to post
Share on other sites

Have you also add the mission parameters and the selected is number 0 (case 0 ) ?

Share this post


Link to post
Share on other sites
2 minutes ago, GEORGE FLOROS GR said:

Have you also add the mission parameters and the selected is number 0 (case 0 ) ? 

at the start of the mission in the parameters?

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

×