Jump to content

[Release] Wicked AI 2.2.0


f3cuk

Recommended Posts

27 minutes ago, Rolcsi said:

Hi please help give rpt error

Error in expression <n {
for "_i" from 1 to _mags do {
_unit addMagazine _magazine;
};
_unit addweapo>
19:33:56   Error position: <addMagazine _magazine;
};
_unit addweapo>

 

What is this?

check your spawn_group.sqf  ( WAI/COMPILE/ )

this line must be:


		if (!_unarmed) then {
			for "_i" from 1 to _mags do {
				_unit addMagazine _magazine;
			};
			_unit addweapon _weapon;
			_unit selectWeapon _weapon;
		};

 

Link to comment
Share on other sites

Hello, so I have WAI installed, with some custom spawn missions and the default ones. Here is are the 2 errors that I am getting.

 2:47:20 Error in expression <launcher call find_suitable_ammunition;
_unit addMagazine _rocket;
_unit addMaga>
 2:47:20   Error position: <_unit addMagazine _rocket;
_unit addMaga>
 2:47:20   Error Undefined variable in expression: _unit
 2:47:20 File z\addons\dayz_server\WAI\compile\spawn_group.sqf, line 193

and this one

 2:47:20 "WAI: Spawned a group of any AI (Bandit) at [1532.32,4476.64,0]"
 2:47:20 Error in expression <I: Spawned a group of %1 AI (%3) at %2",_unitnumber,_position,_aitype];

_unitGr>
 2:47:20   Error position: <_unitnumber,_position,_aitype];

_unitGr>
 2:47:20   Error Undefined variable in expression: _unitnumber
 2:47:20 File z\addons\dayz_server\WAI\compile\spawn_group.sqf, line 219

Any help would be great.

 

Link to comment
Share on other sites

  • 2 weeks later...

Hi all. Can anyone help me. Keep getting this message.

 6:53:28 Error in expression <tion = wai_mission_data select _mission select 3;
};

{
_x setVariable ["Aggress>
 6:53:28   Error position: <select 3;
};

{
_x setVariable ["Aggress>
 6:53:28   Error select: Type Number, expected Array,Config entry
 6:53:28 File z\addons\dayz_server\WAI\compile\hero_behaviour.sqf, line 14

anyone know how to fix it?

Link to comment
Share on other sites

Hey :) 

Someone has probably asked this question but 93 pages is a bit much to search lol :P

But umm how and where can i edit the amount of units that spawn @ a mission ?

There is a few missions where there is like 20 - 24 ai and umm thats a bit much lol and it also lags my server for a few seconds when the mission is starting..

I would prefer less units around 15.. And just a little bit more skilled then the default WAI ai :) 

Thanx :) 

Link to comment
Share on other sites

Edit each mission file

MISSION_EXAMPLE.sqf

 

if(isServer) then {
    
    private         ["_baserunover","_mission","_directions","_position","_crate","_crate_type","_num"];

    // Get a safe position 80 meters from the nearest object
    _position        = [80] call find_position;
    
    // Initialise the mission variable with the following options, [position, difficulty, mission name, mission type (MainHero/Mainbandit), minefield (true or false)] call mission_init;
    [_mission,_position,"hard","Test Mission","MainHero",true] call mission_init;

    diag_log         format["WAI: Mission Test Mission started at %1",_position];

    //Setup the crate
    _crate_type     = crates_large call BIS_fnc_selectrandom; // Choose between crates_large, crates_medium and crates_small
    _crate             = createVehicle [_crate_type,[(_position select 0),(_position select 1),0],[],0,"CAN_COLLIDE"];

    // Crate Spawn Example
    // Parameters:    0: _crate
    //                1: Max number of guns OR [MAX number of guns,gun_array]
    //                2: Max number of tools OR [MAX number of tools,tool_array]
    //                3: Max number of items OR [MAX number of items,item_array]
    //                4: Max number of backpacks OR [MAX number of backpacks,backpack_array]
    [_crate,16,[8,crate_tools_sniper],[3,crate_items_high_value],[4,crate_backpacks_large]] call dynamic_crate;
    
    // Create some Buildings
    _baserunover0     = createVehicle ["land_fortified_nest_big",[(_position select 0) - 40, (_position select 1),-0.2],[], 0, "CAN_COLLIDE"];
    _baserunover1     = createVehicle ["land_fortified_nest_big",[(_position select 0) + 40, (_position select 1),-0.2],[], 0, "CAN_COLLIDE"];
    _baserunover2     = createVehicle ["land_fortified_nest_big",[(_position select 0), (_position select 1) - 40,-0.2],[], 0, "CAN_COLLIDE"];
    _baserunover3     = createVehicle ["land_fortified_nest_big",[(_position select 0), (_position select 1) + 40,-0.2],[], 0, "CAN_COLLIDE"];
    _baserunover4     = createVehicle ["Land_Fort_Watchtower",[(_position select 0) - 10, (_position select 1),-0.2],[], 0, "CAN_COLLIDE"];
    _baserunover5     = createVehicle ["Land_Fort_Watchtower",[(_position select 0) + 10, (_position select 1),-0.2],[], 0, "CAN_COLLIDE"];
    _baserunover6     = createVehicle ["Land_Fort_Watchtower",[(_position select 0), (_position select 1) - 10,-0.2],[], 0, "CAN_COLLIDE"];
    _baserunover7     = createVehicle ["Land_Fort_Watchtower",[(_position select 0), (_position select 1) + 10,-0.2],[], 0, "CAN_COLLIDE"];
    
    // Adding buildings to one variable just for tidiness
    _baserunover = [_baserunover0,_baserunover1,_baserunover2,_baserunover3,_baserunover4,_baserunover5,_baserunover6,_baserunover7];
    
    // Set some directions for our buildings
    _directions = [90,270,0,180,0,180,270,90];
    { _x setDir (_directions select _forEachIndex) } forEach _baserunover;

    // Make buildings flat on terrain surface
    { _x setVectorUp surfaceNormal position _x; } count _baserunover;

    // Group Spawn Examples
    // Parameters:    0: Position
    //                1: Unit Count
    //                2: Unit Skill ("easy","medium","hard","extreme" or "random")
    //                3: Guns (gun or [gun,launcher])
    //                    Guns options    : (0 = ai_wep_assault, 1 = ai_wep_machine, 2 = ai_wep_sniper, "random" = random weapon, "Unarmed" = no weapon)
    //                    Launcher options: (at = ai_wep_launchers_AT, aa = ai_wep_launchers_AA or "classname")
    //                4: Magazine Count
    //                5: Backpack ("random" or "classname")
    //                6: Skin ("Hero","bandit","random","special" or "classname")
    //                7: Gear (0:ai_gear0, 1:ai_gear1, 2:ai_gear2, 3:ai_gear3, 4:ai_gear4 or "random")
    //                8: AI Type ("bandit","Hero","special" or ["type", #] format to overwrite default gain amount) ***Used to determine humanity gain or loss***
    //                9: Mission variable from line 9 (_mission)
    _num = round (random 3) + 4;
    [[_position select 0, _position select 1, 0],_num,"extreme",["random","at"],4,"random","bandit","random",["bandit",150],_mission] call spawn_group;
    [[_position select 0, _position select 1, 0],4,"hard","random",4,"random","bandit","random","bandit",_mission] call spawn_group;
    [[_position select 0, _position select 1, 0],4,"random","random",4,"random","bandit","random","bandit",_mission] call spawn_group;
    [[_position select 0, _position select 1, 0],4,"random","random",4,"random","bandit","random","bandit",_mission] call spawn_group;
    [[_position select 0, _position select 1, 0],4,"random","random",4,"random","bandit","random","bandit",_mission] call spawn_group;


    // Humvee Patrol Example
    // Parameters:    0: Patrol position
    //                1: Starting position
    //                2: Patrol radius
    //                3: Number of Waypoints
    //                4: Vehicle classname
    //                5: Unit Skill ("easy","medium","hard","extreme" or "random")
    //                6: Skin ("Hero","bandit","random","special" or "classname")
    //                7: AI Type ("bandit","Hero" or "special") ***Used to determine humanity gain or loss***
    //                8: Mission variable from line 9 (_mission)
    [[(_position select 0) + 100, _position select 1, 0],[(_position select 0) + 100, _position select 1, 0],50,2,"HMMWV_Armored","random","bandit","bandit",_mission] call vehicle_patrol;
    
    // Static Turret Examples
    // Parameters:    0: Spawn position
    //                1: Classname ("classname" or "random" to pick from ai_static_weapons)
    //                2: Unit Skill ("easy","medium","hard","extreme" or "random") ***NO effect if ai_static_skills = true;***
    //                3: Skin ("Hero","bandit","random","special" or "classname")
    //                4: AI Type ("bandit","Hero" or "special") ***Used to determine humanity gain or loss***
    //                5: Gun (0:ai_wep_assault 1:ai_wep_machine 2:ai_wep_sniper or "random") ***NO effect if ai_static_useweapon = false;***
    //                6: Magazine Count ***NO effect if ai_static_useweapon = false;***
    //                7: Backpack ("random" or "classname") ***NO effect if ai_static_useweapon = false;***
    //                8: Gear (0:ai_gear0, 1:ai_gear1, 2:ai_gear2, 3:ai_gear3, 4:ai_gear4 or "random") ***NO effect if ai_static_useweapon = false;***
    //                9: Mission variable from line 9 (_mission)
    };
    [[[(_position select 0) - 10, (_position select 1) + 10, 0]],"M2StaticMG","easy","bandit","bandit",0,2,"random","random",_mission] call spawn_static;
    [[[(_position select 0) + 10, (_position select 1) - 10, 0]],"M2StaticMG","easy","bandit","bandit",0,2,"random","random",_mission] call spawn_static;
    [[[(_position select 0) + 10, (_position select 1) + 10, 0]],"M2StaticMG","easy","bandit","bandit",0,2,"random","random",_mission] call spawn_static;
    [[[(_position select 0) - 10, (_position select 1) - 10, 0]],"M2StaticMG","easy","bandit","bandit",0,2,"random","random",_mission] call spawn_static;

    // Heli Paradrop Example
    // Parameters:    0: Paradrop position
    //                1: Spawn position
    //                2: Trigger radius
    //                3: Vehicle classname
    //                4: Amount of paratroopers
    //                5: Unit Skill ("easy","medium","hard","extreme" or "random") ***NO effect if ai_static_skills = true;***
    //                6: Gun (0:ai_wep_assault 1:ai_wep_machine 2:ai_wep_sniper or "random")
    //                7: Magazine Count
    //                8: Backpack ("random" or "classname")
    //                9: Skin ("Hero","bandit","random","special" or "classname")
    //                10: Gear (0:ai_gear0, 1:ai_gear1, 2:ai_gear2, 3:ai_gear3, 4:ai_gear4 or "random")
    //                11: AI Type ("bandit","Hero" or "special") ***Used to determine humanity gain or loss***
    //                12: Heli stay and fight after troop deployment? (true or false)
    //                13: Mission variable from line 9 (_mission)
    [[(_position select 0), (_position select 1), 0],[0,0,0],400,"UH1H_DZ",10,"random","random",4,"random","bandit","random","bandit",true,_mission] spawn heli_para;

    // Assassination target example
    // This is the same as normal group spawns but we assign it to a variable instead for use in the trigger below (if there are multiple units in this group you'll need to kill them all)
    _assassinate = [[_position select 0, _position select 1, 0],1,"hard","random",4,"random","special","random","bandit",_mission] call spawn_group;

    // Mission objective options and messages
    [
        [_mission,_crate],    // mission variable (from line 9) and crate
        ["crate"],             // Mission objective type (["crate"], or ["kill"], or ["assassinate", _assassinate])
        [_baserunover],     // buildings to cleanup after mission is complete, does not include the crate
        "A Mission has spawned, hurry up to claim the loot!",    // mission announcement
        "The mission was complete/objective reached",            // mission success
        "The mission timed out and nobody was in the vicinity"    // mission fail
    ] call mission_winorfail;

    // End of mission
    diag_log format["WAI: Mission bandit base ended at %1 ended",_position];

    h_missionsrunning = h_missionsrunning - 1;
};

Link to comment
Share on other sites

When it comes to ai skill and behavior

Edit every mission file  (The 4 is how many ai spawn and change "hard" to what setting you want)

//                1: Unit Count

//                5: Unit Skill ("easy","medium","hard","extreme" or "random")

Example line taken from a bandit mission.

[[_position select 0, _position select 1, 0],4,"hard","random",4,"random","bandit","random","bandit",_mission] call spawn_group;

Inside Config.sqf are the settings for each level so if you set your mission ai to easy there are the settings for easy.

ai_skill_extreme = [["aimingAccuracy",1.00],["aimingShake",1.00],["aimingSpeed",1.00],["endurance",1.00],["spotDistance",1.00],["spotTime",1.00],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",1.00]]; // Extreme
ai_skill_hard = [["aimingAccuracy",0.80],["aimingShake",0.80],["aimingSpeed",0.80],["endurance",1.00],["spotDistance",0.80],["spotTime",0.80],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",1.00]]; // Hard
ai_skill_medium = [["aimingAccuracy",0.60],["aimingShake",0.60],["aimingSpeed",0.60],["endurance",1.00],["spotDistance",0.60],["spotTime",0.60],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",1.00]];    // Medium
ai_skill_easy = [["aimingAccuracy",0.40],["aimingShake",0.50],["aimingSpeed",0.50],["endurance",1.00],["spotDistance",0.50],["spotTime",0.50],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",1.00]];    // Easy
ai_skill_random = [ai_skill_extreme,ai_skill_hard,ai_skill_hard,ai_skill_hard,ai_skill_hard,ai_skill_medium,ai_skill_medium,ai_skill_medium,ai_skill_medium,ai_skill_easy];
 
ai_static_useweapon = true;    // Allows AI on static guns to have a loadout
ai_static_weapons = ["KORD_high_TK_EP1","DSHKM_Ins","M2StaticMG"];    // static guns
 
ai_static_skills = false;    // Allows you to set custom array for AI on static weapons. (true: On false: Off)
ai_static_array = [["aimingAccuracy",0.20],["aimingShake",0.70],["aimingSpeed",0.75],["endurance",1.00],["spotDistance",0.70],["spotTime",0.50],["courage",1.00],["reloadSpeed",1.00],["commanding",1.00],["general",1.00]];
 

I DO NOT CHANGE THESE ai settings in the main config.sqf

I set easy,medium,hard,extreme or random in each mission file

Also adding to difficulty is the ai behavior

ai_bandit_combatmode = "RED";    // combatmode of bandit AI
ai_bandit_behaviour = "COMBAT";    // behaviour of bandit AI
 
ai_hero_combatmode = "RED";    // combatmode of hero AI
ai_hero_behaviour = "COMBAT";    // behaviour of hero AI

RED,YELLOW etc...

https://community.bistudio.com/wiki/ArmA:_AI_Combat_Modes

Link to comment
Share on other sites

NOTE: To make AI hunt down a known target, you need to use '_unit setCombatMode "RED"'. The Seek & Destroy waypoint only makes the AI to search the vicinity of the waypoint itself. Not affect their behavior on their way to the waypoint itself.

if you do not want the ai to hunt down a player when they shoot (Ai just run around at the misison set to YELLOW)

Link to comment
Share on other sites

On 11/16/2016 at 9:19 AM, DAKA said:

Hi all. Can anyone help me. Keep getting this message.

 6:53:28 Error in expression <tion = wai_mission_data select _mission select 3;
};

{
_x setVariable ["Aggress>
 6:53:28   Error position: <select 3;
};

{
_x setVariable ["Aggress>
 6:53:28   Error select: Type Number, expected Array,Config entry
 6:53:28 File z\addons\dayz_server\WAI\compile\hero_behaviour.sqf, line 14

anyone know how to fix it?

I covered this a few pages back, only way I know how.

 

 

Link to comment
Share on other sites

Thanks for the help. Do you by chance know how to fix this error?

2:47:20 Error in expression <launcher call find_suitable_ammunition;
_unit addMagazine _rocket;
_unit addMaga>
 2:47:20   Error position: <_unit addMagazine _rocket;
_unit addMaga>
 2:47:20   Error Undefined variable in expression: _unit
 2:47:20 File z\addons\dayz_server\WAI\compile\spawn_group.sqf, line 193

Link to comment
Share on other sites

Hello all,

I moved a WAI Folder from Sauerland to Chernarus. Chernarus is smaller. So the missions are spawning in the water sometimes.                                                        My question is, How does WAI find the center of the map of its script? Seems to me its a radius problem. I checked the mission.sqm on mission side, this is what I found:

    class Markers
    {
        items=18;
        class Item0
        {
            position[]={7839.6055,381.33774,8414.7324};
            name="center";
            type="Empty";
        };

Class Item0 has worked on 3 different Chernarus maps that I have built. 

Link to comment
Share on other sites

  • 2 weeks later...

Looking for any information on running WAI on Epoch 106.  it seems to work but defiantly has issues like the AI randomly disappearing. and after they are killed, there bodies disappear in a few minutes. Also Static guns and vehicles are being deleted as soon as they spawn with lines like this in the rpt.

13:43:31 ["z\addons\dayz_server\system\scheduler\sched_safetyVehicle.sqf","KILLING A HACKER","Benjamin Garcia"," IN ","M2StaticMG"]

I've stopped the static guns from being deleted by adding them to DZE_safeVehicle but there must be a better way to do it.

Thanks in advance to anyone who can help, and here's hoping that the vast improvements that 106 has brought to our game will bring more the players back.

Link to comment
Share on other sites

Hello all !!!
I have serious issues with WAI Mission
I followed the steps from here : https://github.com/f3cuk/WICKED-AI

and took the files from there as well, but it looks like its a serious fiesta in my RPT because of those lines :

 

"Duplicate magazine 30Rnd_556x45_Stanag detected (id 2:885) in slots Single and Single"
"Duplicate magazine 30Rnd_556x45_Stanag detected (id 2:885) in slots Single and Burst"
"Duplicate magazine 30Rnd_556x45_Stanag detected (id 2:885) in slots Single and FullAuto" 

I have like 10000 lines from that everytime AI spawn on the map. I suspect the function.sqf where you can find that :

 
 
if (count _ammoArray > 0) then {
_result = _ammoArray select 0;
call {
if(_result == "20Rnd_556x45_Stanag") exitWith { _result = "30Rnd_556x45_Stanag"; };
if(_result == "30Rnd_556x45_G36") exitWith { _result = "30Rnd_556x45_Stanag"; };
if(_result == "30Rnd_556x45_G36SD") exitWith { _result = "30Rnd_556x45_StanagSD"; };
};
};

_result

Can someone help me to fix that ? Any idea ?

EDIT : Epoch 1.0.5.1 here

Link to comment
Share on other sites

On 12/7/2016 at 9:19 AM, DAKA said:

So with this new work around. Do i take those files, copy and paste that new code into the sqf's that are listed in the pull. That part doesnt make sense to me. Sorry

The link that ebay supplied goes to the page that shows what he changed in the files to make WAI work in the new Epoch 1.0.6.  These changes have already been made to the download zip that you will find on the  "<>code" tab. Do a new install using these files and instructions.

Link to comment
Share on other sites

1 hour ago, Thug said:

Epoch 106 wai mission boxes are dumping items on ground.

https://dl.dropboxusercontent.com/u/487376647/box1.jpg

https://dl.dropboxusercontent.com/u/487376647/box2.jpg

https://dl.dropboxusercontent.com/u/487376647/20161209132001_1.jpg

Anyone have an ideal on how to fix this? No errors in RPTs

what about:

?

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
  • Advertisement
×
×
  • Create New...