Jump to content

Wicked AI/Mission system


Markk311

Recommended Posts

Good evening good folks, Ive installed this on my Pathera server, the server runs beta 11255.

The missions spawn but the loot crates doesn't.

This is what my RPT file says, as im a noob at scripting I can not find a error... XD

 

 

0:51:51 "WAI: Starting Mission crash_spawner"
 0:51:51 "WAI: Mission Crash_Spawner Started At [431.737,449.086]"
 0:51:51 UH1Wreck_DZ: MainTurret - unknown animation source MainTurret
 0:51:51 UH1Wreck_DZ: MainGun - unknown animation source mainGun
 0:51:51 UH1Wreck_DZ: Gatling - unknown animation source Gatling
 0:51:51 Error in expression <t 2;
_radius =    _this select 3;

switch (_iClass) do
{
default
{

_item = createV>
 0:51:51   Error position: <_iClass) do
{
default
{

_item = createV>
 0:51:51   Error Undefined variable in expression: _iclass
 0:51:51 File z\addons\dayz_code\compile\spawn_loot.sqf, line 9
 0:51:51 Error in expression <s select _index;
_itemType = _itemTypes select _index;
[_itemType select 0, _ite>
 0:51:51   Error position: <select _index;
[_itemType select 0, _ite>
 0:51:51   Error Zero divisor
 0:51:51 File z\addons\dayz_server\WAI\missions\missions\crash_spawner.sqf, line 73
 0:51:51 Error in expression <t 2;
_radius =    _this select 3;

switch (_iClass) do
{
default
{

_item = createV>
 0:51:51   Error position: <_iClass) do
{
default
{

_item = createV>
 0:51:51   Error Undefined variable in expression: _iclass
 0:51:51 File z\addons\dayz_code\compile\spawn_loot.sqf, line 9
 0:51:51 Error in expression <s select _index;
_itemType = _itemTypes select _index;
[_itemType select 0, _ite>
 0:51:51   Error position: <select _index;
[_itemType select 0, _ite>
 0:51:51   Error Zero divisor
 0:51:51 File z\addons\dayz_server\WAI\missions\missions\crash_spawner.sqf, line 73
 0:51:51 Error in expression <t 2;
_radius =    _this select 3;

switch (_iClass) do
{
default
{

_item = createV>
 0:51:51   Error position: <_iClass) do
{
default
{

_item = createV>
 0:51:51   Error Undefined variable in expression: _iclass
 0:51:51 File z\addons\dayz_code\compile\spawn_loot.sqf, line 9
 0:51:51 Error in expression <s select _index;
_itemType = _itemTypes select _index;
[_itemType select 0, _ite>
 0:51:51   Error position: <select _index;
[_itemType select 0, _ite>
 0:51:51   Error Zero divisor
 0:51:51 File z\addons\dayz_server\WAI\missions\missions\crash_spawner.sqf, line 73
 0:51:51 Error in expression <t 2;
_radius =    _this select 3;

switch (_iClass) do
{
default
{

_item = createV>
 0:51:51   Error position: <_iClass) do
{
default
{

_item = createV>
 0:51:51   Error Undefined variable in expression: _iclass
 0:51:51 File z\addons\dayz_code\compile\spawn_loot.sqf, line 9
 0:51:51 Error in expression <s select _index;
_itemType = _itemTypes select _index;
[_itemType select 0, _ite>
 0:51:51   Error position: <select _index;
[_itemType select 0, _ite>
 0:51:51   Error Zero divisor
 0:51:51 File z\addons\dayz_server\WAI\missions\missions\crash_spawner.sqf, line 73
 0:51:51 Error in expression <t 2;
_radius =    _this select 3;

switch (_iClass) do
{
default
{

_item = createV>
 0:51:51   Error position: <_iClass) do
{
default
{

_item = createV>
 0:51:51   Error Undefined variable in expression: _iclass
 0:51:51 File z\addons\dayz_code\compile\spawn_loot.sqf, line 9
 0:51:51 Error in expression <s select _index;
_itemType = _itemTypes select _index;
[_itemType select 0, _ite>
 0:51:51   Error position: <select _index;
[_itemType select 0, _ite>
 0:51:51   Error Zero divisor
 0:51:51 File z\addons\dayz_server\WAI\missions\missions\crash_spawner.sqf, line 73
 0:51:51 Error in expression <t 2;
_radius =    _this select 3;

switch (_iClass) do
{
default
{

_item = createV>
 0:51:51   Error position: <_iClass) do
{
default
{

_item = createV>
 0:51:51   Error Undefined variable in expression: _iclass
 0:51:51 File z\addons\dayz_code\compile\spawn_loot.sqf, line 9
 0:51:51 Error in expression <s select _index;
_itemType = _itemTypes select _index;
[_itemType select 0, _ite>
 0:51:51   Error position: <select _index;
[_itemType select 0, _ite>
 0:51:51   Error Zero divisor
 0:51:51 File z\addons\dayz_server\WAI\missions\missions\crash_spawner.sqf, line 73
 0:51:51 "WAI: Spawned a group of 8 Bandits at [431.737,449.086,0]"

 

 

I'm guessing it has something to do with the Beta 112555 since I've heard it cases alot of errors.

Thanks in advance! =)

Link to comment
Share on other sites

Wanted to put this out there as it worked for me. I found a quick fix for the parachutes not cleaning up after the guys land while using heli_para.sqf. I was reading about some people having trouble with the chutes not disappearing in another mod, since the latest Arma 2 update, and noticed that my WAI custom para spawns were leaving parachutes all over the place. I changed the heli_para.sqf so that it cleans up after itself. I didn't see anything on the front page so maybe this can help.

if (!isServer)exitWith{};

private ["_cleanheli","_drop","_helipos","_gunner2","_gunner","_playerPresent","_skillarray","_aicskill","_aiskin","_aigear","_helipatrol","_gear","_skin","_backpack","_mags","_gun","_triggerdis","_startingpos","_aiweapon","_mission","_heli_class","_startPos","_helicopter","_unitGroup","_pilot","_skill","_paranumber","_position","_wp1"];

_position = _this select 0;

_startingpos = _this select 1;

_triggerdis = _this select 2;

_heli_class = _this select 3;

_paranumber = _this select 4;

_skill = _this select 5;

_gun = _this select 6;

_mags = _this select 7;

_backpack = _this select 8;

_skin = _this select 9;

_gear = _this select 10;

_helipatrol = _this select 11;

if (count _this > 12) then {

_mission = _this select 12;

} else {

_mission = False;

};

//_delay = _this select 12;

_aiweapon = [];

_aigear = [];

_aiskin = "";

_aicskill = [];

_skillarray = ["aimingAccuracy","aimingShake","aimingSpeed","endurance","spotDistance","spotTime","courage","reloadSpeed","commanding","general"];

 

// wait for player to come into area.

diag_log "WAI: Paradrop Waiting for player";

waitUntil

{

sleep 10;

_playerPresent = false;

{if((isPlayer _x) AND (_x distance [(_position select 0),(_position select 1),0] <= _triggerdis)) then {_playerPresent = true};}forEach playableUnits;

(_playerPresent)

};

//Delay before chopper spawns in.

//sleep _delay;

//Spawing in Chopper and crew

diag_log format ["WAI: Spawning a %1 with %2 units to be paradropped at %3",_heli_class,_paranumber,_position];

_unitGroup = createGroup east;

_pilot = _unitGroup createUnit ["Bandit1_DZ", [0,0,0], [], 1, "NONE"];

[_pilot] joinSilent _unitGroup;

ai_air_units = (ai_air_units +1);

 

_helicopter = createVehicle [_heli_class, [(_startingpos select 0),(_startingpos select 1), 100], [], 0, "FLY"];

_helicopter setFuel 1;

_helicopter engineOn true;

_helicopter setVehicleAmmo 1;

_helicopter flyInHeight 150;

_helicopter addEventHandler ["GetOut",{(_this select 0) setFuel 0;(_this select 0) setDamage 1;}];

 

_pilot assignAsDriver _helicopter;

_pilot moveInDriver _helicopter;

 

_gunner = _unitGroup createUnit ["Bandit1_DZ", [0,0,0], [], 1, "NONE"];

_gunner assignAsGunner _helicopter;

_gunner moveInTurret [_helicopter,[0]];

[_gunner] joinSilent _unitGroup;

ai_air_units = (ai_air_units +1);

 

_gunner2 = _unitGroup createUnit ["Bandit1_DZ", [0,0,0], [], 1, "NONE"];

_gunner2 assignAsGunner _helicopter;

_gunner2 moveInTurret [_helicopter,[1]];

[_gunner2] joinSilent _unitGroup;

ai_air_units = (ai_air_units +1);

 

{_pilot setSkill [_x,1]} forEach _skillarray;

{_gunner setSkill [_x,0.7]} forEach _skillarray;

{_gunner2 setSkill [_x,0.7]} forEach _skillarray;

{_x addweapon "Makarov";_x addmagazine "8Rnd_9x18_Makarov";_x addmagazine "8Rnd_9x18_Makarov";} forEach (units _unitgroup);

PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor,_helicopter];

[_helicopter] spawn veh_monitor;

 

_unitGroup allowFleeing 0;

_unitGroup setBehaviour "CARELESS";

_unitGroup setSpeedMode "FULL";

_unitGroup setCombatMode "RED";

 

// Add waypoints to the chopper group.

_wp = _unitGroup addWaypoint [[(_position select 0), (_position select 1)], 0];

_wp setWaypointType "MOVE";

_wp setWaypointCompletionRadius 100;

_DeleteP=[];

 

_drop = True;

_helipos = getpos _helicopter;

while {(alive _helicopter) AND (_drop)} do {

private ["_magazine","_weapon","_weaponandmag","_chute","_para","_pgroup"];

sleep 1;

_helipos = getpos _helicopter;

if (_helipos distance [(_position select 0),(_position select 1),100] <= 200) then {

_pgroup = createGroup east;

for "_x" from 1 to _paranumber do {

_helipos = getpos _helicopter;

switch (_gun) do {

case 0 : {_aiweapon = ai_wep0;};

case 1 : {_aiweapon = ai_wep1;};

case 2 : {_aiweapon = ai_wep2;};

case 3 : {_aiweapon = ai_wep3;};

case 4 : {_aiweapon = ai_wep4;};

case "Random" : {_aiweapon = ai_wep_random call BIS_fnc_selectRandom;};

};

_weaponandmag = _aiweapon call BIS_fnc_selectRandom;

_weapon = _weaponandmag select 0;

_magazine = _weaponandmag select 1;

switch (_gear) do {

case 0 : {_aigear = ai_gear0;};

case 1 : {_aigear = ai_gear1;};

case 2 : {_aigear = ai_gear2;};

case 3 : {_aigear = ai_gear3;};

case 4 : {_aigear = ai_gear4;};

case "Random" : {_aigear = ai_gear_random call BIS_fnc_selectRandom;};

};

_gearmagazines = _aigear select 0;

_geartools = _aigear select 1;

if (_skin == "") then {

_aiskin = ai_skin call BIS_fnc_selectRandom;

} else {

_aiskin = _skin

};

_para = _pgroup createUnit [_aiskin, [0,0,0], [], 1, "PRIVATE"];

if (_backpack == "") then {

_aipack = ai_packs call BIS_fnc_selectRandom;

} else {

_aipack = _backpack

};

_para enableAI "TARGET";

_para enableAI "AUTOTARGET";

_para enableAI "MOVE";

_para enableAI "ANIM";

_para enableAI "FSM";

_para setCombatMode ai_combatmode;

_para setBehaviour ai_behaviour;

removeAllWeapons _para;

removeAllItems _para;

_para addweapon _weapon;

for "_i" from 1 to _mags do {_para addMagazine _magazine;};

_para addBackpack _aipack;

{_para addMagazine _x} forEach _gearmagazines;

{_para addweapon _x} forEach _geartools;

if (ai_custom_skills) then {

switch (_skill) do {

case 0 : {_aicskill = ai_custom_array1;};

case 1 : {_aicskill = ai_custom_array2;};

case 2 : {_aicskill= ai_custom_array3;};

case "Random" : {_aicskill = ai_skill_random call BIS_fnc_selectRandom;};

};

{_para setSkill [(_x select 0),(_x select 1)]} forEach _aicskill;

} else {

{_para setSkill [_x,_skill]} forEach _skillarray;

};

ai_ground_units = (ai_ground_units + 1);

_para addEventHandler ["Killed",{[_this select 0, _this select 1, "ground"] call on_kill;}];

_chute = createVehicle ["ParachuteEast", [(_helipos select 0), (_helipos select 1), (_helipos select 2)], [], 0, "NONE"];

_DeleteP=_DeleteP + [_chute];

_para moveInDriver _chute;

[_para] joinSilent _pgroup;

sleep 1.5;

};

_drop = false;

_pgroup selectLeader ((units _pgroup) select 0);

diag_log format ["WAI: Spawned in %1 ai units for paradrop",_paranumber];

[_pgroup, _position,_mission] call group_waypoints;

};

};

 

if (_helipatrol) then { 

_wp1 = _unitGroup addWaypoint [[(_position select 0),(_position select 1)], 100];

_wp1 setWaypointType "SAD";

_wp1 setWaypointCompletionRadius 150;

_unitGroup setBehaviour "AWARE";

_unitGroup setSpeedMode "FULL";

_unitGroup setCombatMode "RED";

{_x addEventHandler ["Killed",{[_this select 0, _this select 1, "air"] call on_kill;}];} forEach (units _unitgroup);

} else {

{_x doMove [(_startingpos select 0), (_startingpos select 1), 100]} forEach (units _unitGroup);

_unitGroup setBehaviour "CARELESS";

_unitGroup setSpeedMode "FULL";

_unitGroup setCombatMode "RED";

_cleanheli = True;

while {_cleanheli} do {

sleep 20;

_helipos1 = getpos _helicopter;

if ((_helipos1 distance [(_startingpos select 0),(_startingpos select 1),100] <= 200) OR (!alive _helicopter)) then {

deleteVehicle _helicopter;

{deleteVehicle _x} forEach (units _unitgroup);

sleep 10;

deleteGroup _unitGroup;

ai_air_units = (ai_air_units -3);

diag_log "WAI: Paradrop cleaned up";

_cleanheli = False;

};

};

};

 

sleep 35;

{deleteVehicle _x} forEach _DeleteP;

 
 
 

 

I defined an array _DeleteP just above the while loop start. Then inside the loop that spawns the guys and assigns them to a parachute I added

_DeleteP=_DeleteP + [_chute];

 

and at the very end of the script I use sleep to give them 35 seconds to land and delete everything inside the _DeleteP array. Depending on terrain or other factors you may want to adjust the 35 seconds but that seems to work for me.

Hope this helps!

hogs

Link to comment
Share on other sites

@DayZ_Epoch_Server\addons\dayz_server\WAI (Packed in PBO)

 

tail end of server_monitor.sqf looks like this...

 

    [] ExecVM "\z\addons\dayz_server\WAI\init.sqf";
    allowConnection = true;    
    sm_done = true;
    publicVariable "sm_done";
};

 

 

  Nothing Happens... NAPF map Epoch 1.0.4.2

 

 

Now what? Any Ideas... help... astonished accusations...

 

Thanks

Bao.

Link to comment
Share on other sites

The mission runs great from the start, but then as soon as I switch the ai on ,by putting wai configloaded and wai mission config from false to true, I get fantastic ai , with static groups and fixed emplacements, chopper patrols and paradrops, but the mission stops?

it cant be much but what am I doing wrong pls, running on chernarus

cheers

Link to comment
Share on other sites

Does anyone knows if there is a limit of units to be spawned? Custom units...

Because i'm making an AI Base and i did 20 custom ground unit spawns, 5 heli spawns, 4 Static Machine gun spawn and 6 vehicle spawn. 

They are spawning, but just a few.. Like.. 8 ground units, 3 helis, 2 machune gun and 3 vehicles.

 

Anyone?

Link to comment
Share on other sites

17:53:22 "WAI: Mission Crash_Spawner Started At [8706.39,12160.8]"
17:53:22 Error in expression <t 2;
_radius =	_this select 3;

switch (_iClass) do
{
default
{

_item = createV>
17:53:22   Error position: <_iClass) do
{
default
{

_item = createV>
17:53:22   Error Undefined variable in expression: _iclass
17:53:22 File z\addons\dayz_code\compile\spawn_loot.sqf, line 9
17:53:22 Error in expression <s select _index;
_itemType = _itemTypes select _index;
[_itemType select 0, _ite>
17:53:22   Error position: <select _index;
[_itemType select 0, _ite>
17:53:22   Error Zero divisor
17:53:22 File z\addons\dayz_server\WAI\missions\missions\crash_spawner.sqf, line 73
17:53:22 Error in expression <t 2;
_radius =	_this select 3;

switch (_iClass) do
{
default
{

I'm also getting the same rpt errors Vangard is getting but I'm on version 103718. I'm also not spawning a crate. This error cycles several times. Any idea on how to fix this?

Link to comment
Share on other sites

Qdoba has about 120 ground units (in groups of 5) and  a dozen MGs, so I doubt there's a limit.

More likely you have a syntax error in your custom_spawn.sqf.

 

My script was in a different order, chopper spawn was above the vehicle patrol spawn, it was ruining everything. LoL It toke me ages to figure it out! =D

Link to comment
Share on other sites

I have this running on my Overpoch server and it works fine but the Overwatch weapons won't spawn in the weapons box. Any ideas.

 

Heres how I have them set up.

http://pastebin.com/v5mjVEBJ

 

Edit.

I even went through and added all the ammo types for the weapons and it still didnt work.

http://pastebin.com/RYUk7CSg

Edited by Three Plus
Link to comment
Share on other sites

I started using your WAI about a week ago as a and the standard missions work great, but I cant get the "active" units the do anything. Is there something I am missing?

(Active Units == HeliPatrol, VehiclePatrol, ActiveEmplacement, and ActiveGround Units listed in the Init.sqf

createCenter east;
WEST setFriend [EAST,0];
EAST setFriend [WEST,0];
WAIconfigloaded = False;
WAImissionconfig = False;

ai_ground_units = 4;
ai_emplacement_units = 5;
ai_air_units = 5;
ai_vehicle_units = 6;
)

Do I perhaps have to alter the sqf files for this specific map? I assumed that you had them set up as random spawns like the missions and since I didn't see anything telling me to modify scripts for them (as with the static missions) I didn't look into it too closely.

The server log shows:

11:32:59 "4 Active ground units"
11:32:59 "5 Active emplacement units"
11:32:59 "5 Active chopper patrol units (Crew)"
11:32:59 "6 Active vehicle patrol units (Crew)"
11:33:44 "TIME SYNC: Local Time set to [2013,8,3,4,33]"
11:36:18 "CLEANUP: Deleted 3 Loot Piles out of 143"
11:37:34 "CLEANUP: Deleted 1 Animals out of 1"
11:38:44 "TIME SYNC: Local Time set to [2013,8,3,4,38]"
11:40:03 "RUNNING EVENT: Supplyitems on [2014,6,26,4,40]"
11:43:02 "4 Active ground units"
11:43:02 "5 Active emplacement units"
11:43:02 "5 Active chopper patrol units (Crew)"
11:43:02 "6 Active vehicle patrol units (Crew)"
11:43:44 "TIME SYNC: Local Time set to [2013,8,3,4,43]"
11:48:48 "TIME SYNC: Local Time set to [2013,8,3,4,48]"

But there nothing is showing up in game even after several days of gameplay.

Thanks,
Bao

Link to comment
Share on other sites

I have this running on my Overpoch server and it works fine but the Overwatch weapons won't spawn in the weapons box. Any ideas.

 

Heres how I have them set up.

http://pastebin.com/v5mjVEBJ

 

Edit.

I even went through and added all the ammo types for the weapons and it still didnt work.

http://pastebin.com/RYUk7CSg

Have you done any special thing to make it run in Overpoch server?

Because i can't make it run in my server.

Link to comment
Share on other sites

Nope just added it and it worked, Only problem I've had is that it won't pull Overwatch weapons from that list. So I've had to add the weapons manually to the AIs gear and mission boxes.

 

I've tried to add the system.. but no success.. =/

 

I was following the steps in this tutorial.. Is this everything we need to do?

Add above allowConnection = true; in server_monitor.sqf
    [] ExecVM "\z\addons\dayz_server\WAI\init.sqf";
    allowConnection = true;

Or am i missing something?

Because this way didn't worked for my overpoch server.

Link to comment
Share on other sites

I've tried to add the system.. but no success.. =/

 

I was following the steps in this tutorial.. Is this everything we need to do?

Add above allowConnection = true; in server_monitor.sqf
    [] ExecVM "\z\addons\dayz_server\WAI\init.sqf";
    allowConnection = true;

Or am i missing something?

Because this way didn't worked for my overpoch server.

Thats all I did and it works fine.

 

 

 

I also have another question for anybody else, Is there a way to set it so when players run over the AIs they lose their gear.

Link to comment
Share on other sites

Hi all;

 

I v got a small problem for epoch1.0.5.1 when i try to spawn land vehicle patrol .

 

All the vehicle i selected to be spawn are locked.

And they v got engine on but no driver or guner on them...

Does i miss something somewhere?

 

Here it's an exemple of one of my land vehicle patrol:

[[10661.962,18323.227,-11.709791],   //Position to patrol
[10661.962,18323.227,-11.709791],	// Position to spawn at
600,					//Radius of patrol
10,                     //Number of waypoints to give
"GAZ_Vodnik_HMG",		//Classname of vehicle (make sure it has driver and gunner)
1						//Skill level of units 
] spawn vehicle_patrol;
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement
×
×
  • Create New...