Jump to content

blckeagls' AI Mission - Version 2.0.2 Release (1/2/2015)


blckeagls

Recommended Posts

Hey all,  working some fixes.  Wait until v1.3.0

During initial testing, it appeared the AI was hurting players who just logged in..  But that isn't working anymore.  

For BE Filters.... there shouldn't be any issues since it runs on the server...  do not place the server files in the client side....

Link to comment
Share on other sites

i make all you say on the instruction ,

on mission side i just put teh debug folder like you say , creat an init.sqf with the code you give us

on server side i put blck_aiCleanUpTimer = 300; at the last line of the init of custom_server.pbo and put it on this location : epochHive/addon/

 

i don't know if i make a mistake but i don't think

 

sorry for my bad english

 

edit: i think i find what is wrong , for all have this restriction on his server , use the 0.2.5.2 mission file and not the 0.2.5.1 :D

Link to comment
Share on other sites

Hey blckeagls, 

 

The battleye issue I originally posted I think i found it. It was something that the mod was saving into the database, possibly a skin or something. Soon as I remove the mod I still had the issue. However when I reset the database it was all fixed. It might have been a gun or a vehicle, but it definitely was something in this mod that saved into the database. I think if the weapons were reset to vanilla epoch weapons it would probably fix the issue.

 

Keep up the good works, I look forward to the update. Just giving my input on what i found.

Link to comment
Share on other sites

Hi blckeagls,

 

I still have the issue with the marker not disappearing but I shot down the issue.

 

Minor\SM1.sqf:

Line 18 [] execVM "debug\remarkers75.sqf";

Should be [] execVM "debug\remmarkers75.sqf";

 

While debugging, I had severals error on my RPT, let's see what you can fix:

 

AI.sqf & AI1.sqf:

1. You are using the same variables name (_ai1) for both files and this cause issues, please rename the one in AI.sqf to _ai . With this I've been able to fix a variable type error.

2. Why are you getting the first 6 characters/indexes of the _Magazine variables? Get them all: change addMagazine [_magazines  select 0,5]; to addMagazine [_magazines];

 

My modified AI.sqf:

private ["_pos","_weap","_ammo","_other","_skin","_aiGroup","_ai","_magazines","_players","_owner","_ownerOnline"];
_pos = _this select 0;
_weap = _this select 1;
_ammo = _this select 2;
_other = _this select 3;
_skin = _this select 4;
_aiGroup = _this select 5;
 
_ai = ObjNull;
 
_skin createUnit [_pos, _aiGroup, "_ai = this", 0.7, "COLONEL"];
_ai setVariable["LASTLOGOUT_EPOCH",1000000000000];
_ai setVariable["LAST_CHECK",1000000000000];
_ai enableAI "TARGET";
_ai enableAI "AUTOTARGET";
_ai enableAI "MOVE";
_ai enableAI "ANIM";
_ai enableAI "FSM";
_ai allowDammage true;
_ai setCombatMode "RED";
_ai setBehaviour "COMBAT";
_magazines = getArray (configFile >> 'CfgWeapons' >> currentMuzzle _ai >> 'magazines');
diag_log format["_magazines: %1", _magazines];
_ai addMagazine [_magazines];
_ai setVariable ["AI",true,true];
_ai addeventhandler ["fired", {(_this select 0) setvehicleammo 1}];
_ai spawn {
waitUntil{!alive _this};
_x setOwner 1;
sleep blck_aiCleanUpTimer;
deleteVehicle _this;
};
while {true} do {
waitUntil {count playableunits > 0};
_players = [];
{
_players = _players + [_x];
} foreach playableunits;
_owner = _players call BIS_fnc_selectRandom;
_ai setOwner (owner _owner);
_ownerOnline = true;
_players = [];
while {_ownerOnline} do {
{
_players = _players + [_x];
} foreach playableunits;
if (!(_owner in _players)) then {
_ownerOnline = false;
};
sleep 60;
};
};

 

spawnVehicles.sqf:

You're calling a non defined variable (_veh call EPX_server_setVToken) is this necessary? I guess _veh call EPOCH_server_setVToken; already does your needs.

 

In your code, you're using the same variables names for different missions; this is causing issues and confusion while you're debugging the code/functions. If you plan to work more on this system, please take in consideration to clean up & optimize code.

 

Thanks!

Link to comment
Share on other sites

Hi blckeagls,

 

I still have the issue with the marker not disappearing but I shot down the issue.

 

Minor\SM1.sqf:

Line 18 [] execVM "debug\remarkers75.sqf";

Should be [] execVM "debug\remmarkers75.sqf";

 

BLCK: Thanks didnt notice this

 

While debugging, I had severals error on my RPT, let's see what you can fix:

 

AI.sqf & AI1.sqf:

1. You are using the same variables name (_ai1) for both files and this cause issues, please rename the one in AI.sqf to _ai . With this I've been able to fix a variable type error.

2. Why are you getting the first 6 characters/indexes of the _Magazine variables? Get them all: change addMagazine [_magazines  select 0,5]; to addMagazine [_magazines];

BLCK: 1. These are private variables, does not matter what they are called.

BLCK: 2. I get the Magazines for the weapon they are given.  when they are called from the CFG they come in as an array, therefore _magazines select 0 should select the first magazine in the array.  the ,5 means give 5 magazines...

 

My modified AI.sqf:

private ["_pos","_weap","_ammo","_other","_skin","_aiGroup","_ai","_magazines","_players","_owner","_ownerOnline"];
_pos = _this select 0;
_weap = _this select 1;
_ammo = _this select 2;
_other = _this select 3;
_skin = _this select 4;
_aiGroup = _this select 5;
 
_ai = ObjNull;
 
_skin createUnit [_pos, _aiGroup, "_ai = this", 0.7, "COLONEL"];
_ai setVariable["LASTLOGOUT_EPOCH",1000000000000];
_ai setVariable["LAST_CHECK",1000000000000];
_ai enableAI "TARGET";
_ai enableAI "AUTOTARGET";
_ai enableAI "MOVE";
_ai enableAI "ANIM";
_ai enableAI "FSM";
_ai allowDammage true;
_ai setCombatMode "RED";
_ai setBehaviour "COMBAT";
_magazines = getArray (configFile >> 'CfgWeapons' >> currentMuzzle _ai >> 'magazines');
diag_log format["_magazines: %1", _magazines];
_ai addMagazine [_magazines];
_ai setVariable ["AI",true,true];
_ai addeventhandler ["fired", {(_this select 0) setvehicleammo 1}];
_ai spawn {
waitUntil{!alive _this};
_x setOwner 1;
sleep blck_aiCleanUpTimer;
deleteVehicle _this;
};
while {true} do {
waitUntil {count playableunits > 0};
_players = [];
{
_players = _players + [_x];
} foreach playableunits;
_owner = _players call BIS_fnc_selectRandom;
_ai setOwner (owner _owner);
_ownerOnline = true;
_players = [];
while {_ownerOnline} do {
{
_players = _players + [_x];
} foreach playableunits;
if (!(_owner in _players)) then {
_ownerOnline = false;
};
sleep 60;
};
};

 

spawnVehicles.sqf:

You're calling a non defined variable (_veh call EPX_server_setVToken) is this necessary? I guess _veh call EPOCH_server_setVToken; already does your needs.

BLCK:  this is left over code, I'll remove it..

 

In your code, you're using the same variables names for different missions; this is causing issues and confusion while you're debugging the code/functions. If you plan to work more on this system, please take in consideration to clean up & optimize code.

BLCK: There are a difference between private and public variables.. Names only matter when public.

 

Thanks!

Link to comment
Share on other sites

Hi,

 

thanks for your time reading my comments, however if I leave untouched the variable _ai1 name on AI.sqf here's what happen:

 

16:14:02 Error in expression < = getArray (configFile >> 'CfgWeapons' >> currentMuzzle _ai1 >> 'magazines');
d>
16:14:02   Error position: <>> currentMuzzle _ai1 >> 'magazines');
d>
16:14:02   Error >>: Type Number, expected String
16:14:02 File q\addons\custom_server\AIMission\AI1.sqf, line 22

 
This doesn't happen if I rename the variable on AI.sqf. It seems the game doesn't understand the variable ;)
 
Thanks
Link to comment
Share on other sites

 

Hi,

 

thanks for your time reading my comments, however if I leave untouched the variable _ai1 name on AI.sqf here's what happen:

 

16:14:02 Error in expression < = getArray (configFile >> 'CfgWeapons' >> currentMuzzle _ai1 >> 'magazines');
d>
16:14:02   Error position: <>> currentMuzzle _ai1 >> 'magazines');
d>
16:14:02   Error >>: Type Number, expected String
16:14:02 File q\addons\custom_server\AIMission\AI1.sqf, line 22

 
This doesn't happen if I rename the variable on AI.sqf. It seems the game doesn't understand the variable ;)
 
Thanks

 

That is an issue with the cfgWeapons file.  That weapons didn't have a magazine defined for it. 

What was brought back to _magazines was a array of number, when it wanted an array of strings hence: Type Number, expected String

 

I get this:

 

 0:56:30 "_magazines: ["30Rnd_65x39_caseless_green","30Rnd_65x39_caseless_green_mag_Tracer"]"
 0:56:30 "_magazines: ["150Rnd_762x51_Box","150Rnd_762x51_Box_Tracer"]"
 0:56:30 "_magazines: []"
 0:56:30 Error in expression <mat["_magazines: %1", _magazines];
_ai1 addMagazine [_magazines select 0,5];
_ai>
 0:56:30   Error position: <addMagazine [_magazines select 0,5];
_ai>
 0:56:30   Error Type Any, expected String
 0:56:30 File q\addons\custom_server\AIMission\AI1.sqf, line 22

notice how some _magazines are in an array?  and one of the magazines is empty.  That is what is returned from the cfgweapons...

 

Since there is nothing returned, there is no magazine to spawn...

 

This code:

_magazines = getArray (configFile >> 'CfgWeapons' >> currentMuzzle _ai1 >> 'magazines');

gets the magazines that will work for the current weapon of the object _ai1

Link to comment
Share on other sites

Can you guys help me out with this error in my .rpt? Seems to be the only one i have.

 9:43:15   Error Undefined variable in expression: headlessclientonline
 9:43:15 File q\addons\custom_server\AIMission\spawnVehicle.sqf, line 159
 9:43:15 Error in expression < call EPX_server_setVToken;

waitUntil {HeadlessClientOnline};
_ai setOwner (own>
 9:43:15   Error position: <HeadlessClien
Link to comment
Share on other sites

 

Can you guys help me out with this error in my .rpt? Seems to be the only one i have.

 9:43:15   Error Undefined variable in expression: headlessclientonline
 9:43:15 File q\addons\custom_server\AIMission\spawnVehicle.sqf, line 159
 9:43:15 Error in expression < call EPX_server_setVToken;

waitUntil {HeadlessClientOnline};
_ai setOwner (own>
 9:43:15   Error position: <HeadlessClien

That was left over code when attempting to use headlessclients..  It has been removed in 1.3.3.  Use the latest release

Link to comment
Share on other sites

I updated to 1.3.4 and im getting this

10:17:45 Error in expression <t["_magazines: %1", _magazines];


_ai1 addMagazine [(_magazines select 0),5];

>
10:17:45   Error position: <addMagazine [(_magazines select 0),5];

>
10:17:45   Error Type Any, expected String
10:17:45 File q\addons\custom_server\AIMission\AI1.sqf, line 42

I noticed ilganna  modified his AI.sqf. Will that be changed in an upcoming release or is there another fix?

Link to comment
Share on other sites

I updated to 1.3.4 and im getting this

10:17:45 Error in expression <t["_magazines: %1", _magazines];


_ai1 addMagazine [(_magazines select 0),5];

>
10:17:45   Error position: <addMagazine [(_magazines select 0),5];

>
10:17:45   Error Type Any, expected String
10:17:45 File q\addons\custom_server\AIMission\AI1.sqf, line 42

I noticed ilganna  modified his AI.sqf. Will that be changed in an upcoming release or is there another fix?

That happens in all versions..  What I posted earlier on this subject:

That is an issue with the cfgWeapons file.  That weapons didn't have a magazine defined for it. 

What was brought back to _magazines was a array of number, when it wanted an array of strings hence: Type Number, expected String

 

I get this:

 

0:56:30 "_magazines: ["30Rnd_65x39_caseless_green","30Rnd_65x39_caseless_green_mag_Tracer]"

0:56:30 "_magazines: ["150Rnd_762x51_Box","150Rnd_762x51_Box_Tracer]"

0:56:30 "_magazines: []"

0:56:30 Error in expression <mat["_magazines: %1", _magazines];

_ai1 addMagazine [_magazines select 0,5];

_ai>

0:56:30 Error position: <addMagazine [_magazines select 0,5];

_ai>

0:56:30 Error Type Any, expected String

0:56:30 File q\addons\custom_server\AIMission\AI1.sqf, line 22

notice how some _magazines are in an array?  and one of the magazines is empty.  That is what is returned from the cfgweapons...

 

Since there is nothing returned, there is no magazine to spawn...

 

This code:

_magazines = getArray (configFile >> 'CfgWeapons' >> currentMuzzle _ai1 >> 'magazines');

gets the magazines that will work for the current weapon of the object _ai1

It's not a huge issue...  There is nothing that can be done about it..  It's just how the script gets the magazine for each weapon (so you don't have to define it individually)...  it accesses the cfgWeapons.hpp file in the @EPOCH config.bin....  it looks up the current weapon in there and looks for magazines that are defined for it..  if none found you will get that error...  or the the unit does not have a weapon it will not find it.

The error is Type Any, expected String. This is is because Type Any means it is empty.  It was looking for a string, but since nothing returned you have type emtpy

If you don't want to see the error just replace:

 

//Adds 5 magazines to AI Unit
_ai1 addMagazine [(_magazines select 0),5];

with:

 

//Adds 5 magazines to AI Unit
if (typeOf _magazines == "ARRAY") then {
     _ai1 addMagazine [(_magazines select 0),5];
};
Link to comment
Share on other sites

HELLO BLACk!

 

My problem is the AI spawn not with the mod weapon (The spawn with vanilla weapons)

 

what must i do??????????

 

I have do this.

look my INIT.sqf

 

 

/*
AI Mission Compiled by blckeagls @ Zombieville.net
Code was modified by blckeagls using other peoples code.  Been over a year, don't have their names anymore.  Sorry =(
*/


//Variables to Edit Below


//This defines the range from center to spawn
mapRange = 12000; 


//This defines center of mapRange
mapCenter = [6322,7801,0];


//Spawn time between AI
blck_AISpawnTime = 300; //Time in seconds


//This Defines what goes into the box;
blck_FillBoxes = {
private["_crate","_Weapons","_mags","_cfgweapons","_weapon","_plx","_mag","_mags","_allweap","_box"];
_crate = _this select 0;
clearWeaponCargoGlobal _crate;
clearMagazineCargoGlobal _crate;


_crate addWeaponCargoGlobal ["arifle_mas_hk416_h", 4];
_crate addWeaponCargoGlobal ["arifle_mas_g36c_a", 3];
_crate addWeaponCargoGlobal ["arifle_mas_mk16_h", 4];
_crate addWeaponCargoGlobal ["arifle_mas_mk17_sd", 2];
_crate addWeaponCargoGlobal ["srifle_mas_sr25_h", 5];
_crate addWeaponCargoGlobal ["srifle_mas_m110_sd", 1];
_crate addWeaponCargoGlobal ["LMG_mas_Mk48_F_t", 2];
_crate addWeaponCargoGlobal ["mas_launch_RPG7_F", 1];
_crate addMagazineCargoGlobal ["30Rnd_mas_556x45_Stanag",18];
_crate addMagazineCargoGlobal ["20Rnd_mas_762x51_Stanag",9];
_crate addMagazineCargoGlobal ["100Rnd_mas_762x51_Stanag",3];
_crate addMagazineCargoGlobal ["mas_PG7V",1];
_crate addMagazineCargoGlobal ["CinderBlocks",15];
_crate addMagazineCargoGlobal ["jerrycan_epoch",10];
_crate addMagazineCargoGlobal ["lighter_epoch",2];
_crate addMagazineCargoGlobal ["CircuitParts",10];
_crate addMagazineCargoGlobal ["ItemCorrugatedLg",20];
_crate addMagazineCargoGlobal ["ItemCorrugated",20];
_crate addMagazineCargoGlobal ["ItemMixOil",3];
_crate addMagazineCargoGlobal ["MortarBucket",8];
_crate addMagazineCargoGlobal ["MultiGun",2];
_crate addMagazineCargoGlobal ["Heal_EPOCH",2];
_crate addMagazineCargoGlobal ["EnergyPack",5];
_crate addMagazineCargoGlobal ["EnergyPackLg",2];
_crate addMagazineCargoGlobal ["WhiskeyNoodle",5];
_crate addMagazineCargoGlobal ["water_epoch",5];
};


//This defines the random weapon to spawn on the AI
blck_WeaponList = [
"arifle_mas_g36c_h",
"LMG_mas_Mk48_F",
"LMG_mas_pkm_F",
"mas_launch_RPG7_F",
"arifle_mas_g36c_h"
];


//This defines the skin list
blck_SkinList = [
"O_G_Soldier_F",
"O_G_Soldier_lite_F",
"O_G_Soldier_SL_F",
"O_G_Soldier_TL_F",
"O_G_Soldier_AR_F",
"O_G_medic_F",
"O_G_Soldier_exp_F",
"O_G_Soldier_GL_F",
"O_G_Soldier_M_F",
"O_G_Soldier_LAT_F",
"O_G_Soldier_A_F",
"O_G_officer_F",
"O_officer_F",
"O_Soldier_02_F",
"O_Soldier_F",
"O_Soldier_lite_F",
"O_Soldier_GL_F",
"O_Soldier_AR_F",
"O_Soldier_SL_F",
"O_Soldier_TL_FO_soldier_M_F",
"O_Soldier_LAT_F",
"O_medic_F",
"O_soldier_repair_F",
"O_soldier_exp_F",
"O_helipilot_F",
"O_engineer_F",
"O_soldier_PG_F",
"O_Story_Colonel_F",
"O_Story_CEO_F",
"O_soldier_UAV_F",
"O_diver_F",
"O_spotter_F",
"O_sniper_F",
"O_recon_F",
"O_recon_M_F",
"O_recon_LAT_F",
"O_recon_exp_F",
"O_recon_JTAC_F",
"O_recon_TL_F",
"O_Soldier_AAR_F",
"O_Soldier_AAT_F",
"O_Soldier_AAA_F",
"O_support_MG_F",
"O_support_GMG_F",
"O_support_Mort_F",
"O_support_AMG_F",
"O_support_AMort_F",
"O_soldierU_F",
"O_soldierU_AR_F",
"O_soldierU_AAR_F",
"O_soldierU_LAT_F",
"O_soldierU_TL_FO_SoldierU_SL_F",
"O_soldierU_medic_F",
"O_engineer_U_F",
"O_soldierU_M_F",
"O_soldierU_A_F",
"O_SoldierU_GL_F"
];
//This defines the minimum number of AI to spawn per mission
blck_MinAI = 8;


//This defines the maximum number of AI to spawn per mission
blck_MaxAI = 19;


//This defines how long after an AI dies that it's body disappears.
blck_aiCleanUpTimer = 600; // in seconds


//Do Not Edit Below Here


[] spawn {
MissionGo = 0;
MissionGoMinor = 0;
[] execVM "\q\addons\custom_server\AIMission\Major\SM1.sqf"; //Starts major mission system
[] execVM "\q\addons\custom_server\AIMission\Minor\SM1.sqf"; //Starts minor mission system
[] execVM "\q\addons\custom_server\AIMission\Major2\SM1.sqf"; //Starts major mission system
[] execVM "\q\addons\custom_server\AIMission\Minor2\SM1.sqf"; //Starts minor mission system
};
Link to comment
Share on other sites

That worked :)     but heres another for ya  lol

11:01:03   Error position: <HeadlessClientOnline};
_ai setOwner (own>
11:01:03   Error Undefined variable in expression: headlessclientonline
11:01:03 File q\addons\custom_server\AIMission\spawnVehicle.sqf, line 159
11:01:03 Error in expression < call EPX_server_setVToken;

waitUntil {HeadlessClientOnline};
_ai setOwner (own>
Link to comment
Share on other sites

Hey blckeagls

 

I get kicked here:

29.12.2014 09:48:48: [sOWG] Aztec (24.15.252.186:2304) xxxxxxxxxxxxxxxxxxxxxxxx - #41 "Marker = createMarker ["MainMarker", Ccoords];
_MainMarker setMarkerColor "ColorGreen";
_MainMarker setMarkerShape "ELLIPSE";
_M"

 

This is on your latest version.

 

Update: I had to add BE filters for ever sqf file in debug  (yikes!)

 

Now I get kicked for addweaponcargo restriction 0. Here is the log file:

29.12.2014 10:51:12: [sOWG] Aztec (24.15.252.186:2304) xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx - #0 "srifle_GM6_SOS_F" 0:0

 

I added a be filter in addweaponcargo.txt file:

!="srifle_GM6_SOS_F"

 

checking to see if this fixes it.

Link to comment
Share on other sites

 

That worked :)     but heres another for ya  lol

11:01:03   Error position: <HeadlessClientOnline};
_ai setOwner (own>
11:01:03   Error Undefined variable in expression: headlessclientonline
11:01:03 File q\addons\custom_server\AIMission\spawnVehicle.sqf, line 159
11:01:03 Error in expression < call EPX_server_setVToken;

waitUntil {HeadlessClientOnline};
_ai setOwner (own>

Update to newest version to remove this...

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...