Jump to content
Benny.

[SP/MP] BeCTI

Recommended Posts

What is the problem then? Maybe I can take a look at it?

Give this a whirl. Goes in server > FSM. I think thats sorted it but I'm not 100% convinced. Main thing to look for is the AI com still following the build/upgrade order (found in common > config > base > base_east/west.sqf) and not skipping things out (other than things already built/upgraded).

If that doesn't work then Ill try explain what I think is going on and what needs doing...

Share this post


Link to post
Share on other sites

I had a similar problem once, the AI commander FSM was colliding with the regular order FSM.

If the regular order is still running on the COM AI you need to put it in a standby state.

Another problem was that the Com unit was never in a unitready state, so i removed this condition and also increase minimum range that needs to be reached for the com to build a factory.

My version of those fsms are:

https://github.com/zerty/Benny-Edition-CTI-0.97-Zerty-Modification/blob/master/Server/FSM/update_commander.fsm

https://github.com/zerty/Benny-Edition-CTI-0.97-Zerty-Modification/blob/master/Server/FSM/update_ai.fsm

Hopping it can be of some help.

Share this post


Link to post
Share on other sites

First of all, thanks for this wonderfull mod ! I have few questions, because I host a server with this mod, modified by sari and it works great.

- When HQ is wreck, what are the rules for repairing ? sometimes, IA commander repair it sometimes, no, and I can't explain this...

- It is possible to repair HQ whitout AI Commander ?

Thx for answering !

Share this post


Link to post
Share on other sites
I had a similar problem once, the AI commander FSM was colliding with the regular order FSM.

If the regular order is still running on the COM AI you need to put it in a standby state.

Another problem was that the Com unit was never in a unitready state, so i removed this condition and also increase minimum range that needs to be reached for the com to build a factory.

My version of those fsms are:

https://github.com/zerty/Benny-Edition-CTI-0.97-Zerty-Modification/blob/master/Server/FSM/update_commander.fsm

https://github.com/zerty/Benny-Edition-CTI-0.97-Zerty-Modification/blob/master/Server/FSM/update_ai.fsm

Hopping it can be of some help.

When I implemented the commander voting I moved the AI commander to its own group. The update_ai.fsm doesn't run on it so there shouldn't be any clashes there. The problem I've been having is when the build/upgrade cycle reaches either a building that has already been built, or an upgrade that has already been researched then the cycle resets to the start instead of skipping it, causing a loop where sweet FA happens. Appreciate the heads up though - if Gabber or anyone else still reports issues with the file linked above I'll take a closer look at the unitready stuff.

First of all, thanks for this wonderfull mod ! I have few questions, because I host a server with this mod, modified by sari and it works great.

- When HQ is wreck, what are the rules for repairing ? sometimes, IA commander repair it sometimes, no, and I can't explain this...

- It is possible to repair HQ whitout AI Commander ?

Thx for answering !

To repair a HQ:

- First make sure the parameter 'BASE: HQ Repairable' is enabled at round start. Otherwise, once its dead, its dead.

- To do it yourself you need a repair truck and drive it upto the hq wreck, where you should see an orange action to repair the HQ (you don't have to be commander for this)

- If you're using the latest version I posted then the repair cost is 20000 supply, but it goes up 20000 each time it gets destroyed (if you have supply turned off in the parameters then the repair price is 10x the amount in $)

- If the AI commander is active then it will prioritize the repairing of the HQ over any other action, provided your team has a repair factory.

- Once the necessary funds have been raised then the AI commander should move to the HQ and repair it automatically (I will rework it at some point so that the AI com buys a rep truck to do so, its another thing I didn't have time to fully implement)

- If there's no repair factory then the AI commander will revert to carrying out anything it can in its normal cycle (issue orders, perform upgrades etc).

If the above doesn't happen then gimmie a poke, maybe I've buggered something up ... again.

Share this post


Link to post
Share on other sites

Thanks for the extra fast answer !

It solved my problem, because I have not enough supply (60000 in the last version 10/3/2015). Another problem is very often the HQ is repaired and exploded at the same time...

21:30:46 "[CTI (INFORMATION)] [frameno:429491 | ticktime:8328.27 | fps:49.8442] [FILE: Server\Functions\Server_RepairHQ.sqf] [EAST] HQ has been Repaired"

21:30:46 "[CTI (INFORMATION)] [frameno:429493 | ticktime:8328.3 | fps:47.9042] [FILE: Server\Functions\Server_OnHQKilled.sqf] [EAST] HQ has been destroyed by [Error: No vehicle] on side [uNKNOWN], Teamkill? [false]"

Share this post


Link to post
Share on other sites
Give this a whirl. Goes in server > FSM. I think thats sorted it but I'm not 100% convinced. Main thing to look for is the AI com still following the build/upgrade order (found in common > config > base > base_east/west.sqf) and not skipping things out (other than things already built/upgraded).

If that doesn't work then Ill try explain what I think is going on and what needs doing...

I had a similar problem once, the AI commander FSM was colliding with the regular order FSM.

If the regular order is still running on the COM AI you need to put it in a standby state.

Another problem was that the Com unit was never in a unitready state, so i removed this condition and also increase minimum range that needs to be reached for the com to build a factory.

My version of those fsms are:

https://github.com/zerty/Benny-Edition-CTI-0.97-Zerty-Modification/blob/master/Server/FSM/update_commander.fsm

https://github.com/zerty/Benny-Edition-CTI-0.97-Zerty-Modification/blob/master/Server/FSM/update_ai.fsm

Hopping it can be of some help.

Thank you both for your answers. Im on holidays now so I can't test any of those versions atm.

There was one other thing that I noticed some time ago. After approx 3 hours of gameplay the server became unable to create any more groups for any side. All the server does is creating <NULL-group>. At first I thought that this is caused by low fps but after some testing reducing the number of AI's this could be excluded. Next thing I did was disabling all mods but that didn't help either. I don't know how to solve this.

Share this post


Link to post
Share on other sites
Thanks for the extra fast answer !

It solved my problem, because I have not enough supply (60000 in the last version 10/3/2015). Another problem is very often the HQ is repaired and exploded at the same time...

That shouldn't happen. I'll add a 1 second invulnerability period or something to the create vehicle function. Might help against a few other niggles as well.

Thank you both for your answers. Im on holidays now so I can't test any of those versions atm.

There was one other thing that I noticed some time ago. After approx 3 hours of gameplay the server became unable to create any more groups for any side. All the server does is creating <NULL-group>. At first I thought that this is caused by low fps but after some testing reducing the number of AI's this could be excluded. Next thing I did was disabling all mods but that didn't help either. I don't know how to solve this.

Sounds like some dead/empty groups aren't getting cleared up over time. IIRC theres a hardlimit to the amount of groups arma can support (144 rings a bell for some reason). I'll investigate. What settings for town resis/occu difficulty where you using and did you have ai teams enabled?

Edited by Sari

Share this post


Link to post
Share on other sites

Sounds like some dead/empty groups aren't getting cleared up over time. IIRC theres a hardlimit to the amount of groups arma can support (144 rings a bell for some reason). I'll investigate. What settings for town resis/occu difficulty where you using and did you have ai teams enabled?

Unrelated to BECTI, but I experienced this on my own mission yesterday afternoon. The BIS Wiki page for createGroup says empty groups are automatically deleted, but I believe it might be bugged in 1.40 as I had to manually purge the groups myself.

Share this post


Link to post
Share on other sites
That shouldn't happen. I'll add a 1 second invulnerability period or something to the create vehicle function. Might help against a few other niggles as well.

Thank again. Yes, it'a a major issue because players try at the beginning to build new bases and HQ is too unstable. I have made some tests and HQ explode at 80%. Maybe because others buildings are too close ? Is there a quick way to make him invulnerable, in vehicle state ? Because the mission is unplayable for me at this time and it's very frustrating ;) I am surprised to be alone with this huge problem. I am trying to do it by myself but too noob in coding ;)

EDIT : doing some new tests, maybe it's because I build first buildings very close to HQ...

Edited by Ecphrasis

Share this post


Link to post
Share on other sites
Sounds like some dead/empty groups aren't getting cleared up over time. IIRC theres a hardlimit to the amount of groups arma can support (144 rings a bell for some reason). I'll investigate. What settings for town resis/occu difficulty where you using and did you have ai teams enabled?

I am hosting the mission with 8 AI leaders per side and town resistance/occupation set to hard.

Unrelated to BECTI, but I experienced this on my own mission yesterday afternoon. The BIS Wiki page for createGroup says empty groups are automatically deleted, but I believe it might be bugged in 1.40 as I had to manually purge the groups myself.

Sounds interesting. This bug first occured with 1.40. When I am back home I am gonna test it with 1.38 again with the same settings.

Edited by gabberxxl

Share this post


Link to post
Share on other sites

hi,sari i have a question to the ffv positions....maybe you have an idea where I can get the ffv or turrets turn off????

the problem is that the ai buy vehicles ,for example, always with 12 gunners or 4 driver ...if the vehicles have a plurality ffv positions like the RHS-MOD

benny said to me this

Benny:hey, i think there is an extra parameters for AI, check the man vehicle function (find where it's called in the server side) and set turrets on false

Benny: smthing like [true, true, true, false] afaik

but can not find a solution ....

I've searched in these two files Common\Functions\Common_ManVehicle.sqf and Common\Functions\Common_GetVehicleTurrets.sqf

thank you for your answer....regards...

///I hope you understand everything///

Share this post


Link to post
Share on other sites
Unrelated to BECTI, but I experienced this on my own mission yesterday afternoon. The BIS Wiki page for createGroup says empty groups are automatically deleted, but I believe it might be bugged in 1.40 as I had to manually purge the groups myself.
I am hosting the mission with 8 AI leaders per side and town resistance/occupation set to hard.

Sounds interesting. This bug first occured with 1.40. When I am back home I am gonna test it with 1.38 again with the same settings.

Ta for the heads up. Again, will investigate

Thank again. Yes, it'a a major issue because players try at the beginning to build new bases and HQ is too unstable. I have made some tests and HQ explode at 80%. Maybe because others buildings are too close ? Is there a quick way to make him invulnerable, in vehicle state ? Because the mission is unplayable for me at this time and it's very frustrating ;) I am surprised to be alone with this huge problem. I am trying to do it by myself but too noob in coding ;)

EDIT : doing some new tests, maybe it's because I build first buildings very close to HQ...

Added a 1 sec invunerability to all vehicle spawns (inc hq). Doesn't fix all instances of things damaging/exploding on spawn but appears to have drastically reduced the occurances as far as i can tell. Obviously it might be a different story on a overloaded server but I'm sure time will tell...

And yes, building things very close to hq probably wont help much :p

hi,sari i have a question to the ffv positions....maybe you have an idea where I can get the ffv or turrets turn off????

the problem is that the ai buy vehicles ,for example, always with 12 gunners or 4 driver ...if the vehicles have a plurality ffv positions like the RHS-MOD

benny said to me this

Benny:hey, i think there is an extra parameters for AI, check the man vehicle function (find where it's called in the server side) and set turrets on false

Benny: smthing like [true, true, true, false] afaik

but can not find a solution ....

I've searched in these two files Common\Functions\Common_ManVehicle.sqf and Common\Functions\Common_GetVehicleTurrets.sqf

thank you for your answer....regards...

///I hope you understand everything///

I did fix FFV positions showing as turrets for players but didn't realise it was affecting AI teams as well. I'll take another look at it now but if I can't find a quick fix it'll have to wait. I'm trying to get things wrapped up for an update. For the record the fix I did is in common > config > units > Get_DetailledTurrets.sqf (see "//---ignore FFV positions" comment)

Edit: common_getVehicleTurrets was the culprit, its a slightly cutdown version of GetDetailledTurrets so ive merged the two into one file (fix inc) for the sake of a little simplicity.

Edited by Sari

Share this post


Link to post
Share on other sites
Ta for the heads up. Again, will investigate

Added a 1 sec invunerability to all vehicle spawns (inc hq). Doesn't fix all instances of things damaging/exploding on spawn but appears to have drastically reduced the occurances as far as i can tell. Obviously it might be a different story on a overloaded server but I'm sure time will tell...

And yes, building things very close to hq probably wont help much :p

Need to wait the next release of mod to have this code, or maybe you can tell me where and what to insert in the code directly, to have it now ?

Thanks !

Share this post


Link to post
Share on other sites

Greetings gents,

Quick question - yesterday I tried my hand at commanding for the first time. Pretty much understood everything with one exception - I ordered up to Independent Salvagers and they just sat there. I could not see them in my Base Management window to disband, I could not manipulate them by their own vehicle menus - I couldn't find any way to set them in motion. Ive looked around but haven't been able to find any details on their usage so Im here to ask - how do I make them do what they do? (There were plenty of wrecks out on our map - in case they're supposed to automatically detect them or something)

Thanks!

Share this post


Link to post
Share on other sites
Need to wait the next release of mod to have this code, or maybe you can tell me where and what to insert in the code directly, to have it now ?

Thanks !

in common > config > common_createvehicle.sqf, somewhere after the line containing the createVehicle command add:

_vehicle spawn {

_vehicle = _this;

_tempEH = _vehicle addEventHandler ["HandleDamage", {false}];

sleep 1;

_vehicle removeEventhandler ["HandleDamage", _tempEH];

};

Greetings gents,

Quick question - yesterday I tried my hand at commanding for the first time. Pretty much understood everything with one exception - I ordered up to Independent Salvagers and they just sat there. I could not see them in my Base Management window to disband, I could not manipulate them by their own vehicle menus - I couldn't find any way to set them in motion. Ive looked around but haven't been able to find any details on their usage so Im here to ask - how do I make them do what they do? (There were plenty of wrecks out on our map - in case they're supposed to automatically detect them or something)

Thanks!

Indie salvagers only work upto a range of 5000m. If you're using the files I posted then you can see a list of active indie salvagers (as commander) in Commanding menu > Base management, as well as disband them. If they aren't showing there then send me your rpt file as something is probably causing errors.

Share this post


Link to post
Share on other sites

Hi.

I wondered, is the opposite team (when only ai are in it) actually tries to capture the island?

Just asking cause I never saw it happened, or markers on the map do not update.

Edited by ElectroEsper

Share this post


Link to post
Share on other sites

Hi,Sari

thanks for your answer ...and for all your work !!!!!!! 10/5 great work :yay::yay:

Share this post


Link to post
Share on other sites
in common > config > common_createvehicle.sqf, somewhere after the line containing the createVehicle command add:

_vehicle spawn {

_vehicle = _this;

_tempEH = _vehicle addEventHandler ["HandleDamage", {false}];

sleep 1;

_vehicle removeEventhandler ["HandleDamage", _tempEH];

};

Indie salvagers only work upto a range of 5000m. If you're using the files I posted then you can see a list of active indie salvagers (as commander) in Commanding menu > Base management, as well as disband them. If they aren't showing there then send me your rpt file as something is probably causing errors.

I just looked in my Arma 3 docs folder and didn't see an .rpt - I assume it would generate automatically upon errors occurring? Im going to give it another go shortly and see if the behavior is replicated. I am using your files, unaltered.

Share this post


Link to post
Share on other sites
I just looked in my Arma 3 docs folder and didn't see an .rpt - I assume it would generate automatically upon errors occurring? Im going to give it another go shortly and see if the behavior is replicated. I am using your files, unaltered.

Try here

C:\Users\YOU\AppData\Local\Arma 3

Share this post


Link to post
Share on other sites
Hi.

I wondered, is the opposite team (when only ai are in it) actually tries to capture the island?

Just asking cause I never saw it happened, or markers on the map do not update.

They should be, however you wont see them on the map. All you'll see is occasional markers placed by friendly AI teams when they detect and movements in their vicinity. As far as I'm aware AI Teams wont actively assault an enemy base though (AI teams are another low priority area for us - they have a nasty habit of melting servers when enabled...)

I just looked in my Arma 3 docs folder and didn't see an .rpt - I assume it would generate automatically upon errors occurring? Im going to give it another go shortly and see if the behavior is replicated. I am using your files, unaltered.

What BL1P said. If you want to feel really hardcore you can enable 'showscripterrors' in the launcher. Then errors will pop up in game in real time (still saves to the RPT as well). However in multiplayer it will only show clientside errors in game, serverside errors will only be logged to the server.rpt

Share this post


Link to post
Share on other sites

After 19 hours, this morning, I triy to mobilize the HQ and Badaboum !

This is my "Common_CreateVehicle.sqf". despite of the invulnerabilty, the HQ exploded as soon as he spawned, in the air.

/*
 # HEADER #
Script: 		Common\Functions\Common_CreateVehicle.sqf
Alias:			CTI_CO_FNC_CreateVehicle
Description:	Create an empty vehicle
				Note that making a vehicle public with the _net variable will make it
				undergo the function CTI_CO_FNC_InitializeNetVehicle
				A public vehicle is initialized for all (+JIP) but the server
Author: 		Benny
Creation Date:	16-09-2013
Revision Date:	04-06-2014 (sari)

 # PARAMETERS #
   0	[string]: The type of vehicle to create
   1	[Array/Object]: The 2D/3D position where the vehicle should be created at
   2	[integer]: The Azimuth direction (0-360°) of the vehicle
   3	[side/Integer]: The Side or Side ID of the vehicle
   4	{Optionnal} [boolean]: Determine if the vehicle should be created locked or not
   5	{Optionnal} [boolean]: Determine if the vehicle should be "public" or not
   6	{Optionnal} [boolean]: Determine if the vehicle should be handled upon destruction or not (bounty...tk...)
   7	{Optionnal} [string]: Set a special spawn mode for the vehicle

 # RETURNED VALUE #
[Object]: The created vehicle

 # SYNTAX #
[CLASSNAME, POSITION, DIRECTION, SIDE] call CTI_CO_FNC_CreateVehicle
[CLASSNAME, POSITION, DIRECTION, SIDE, LOCKED] call CTI_CO_FNC_CreateVehicle
[CLASSNAME, POSITION, DIRECTION, SIDE, LOCKED, PUBLIC] call CTI_CO_FNC_CreateVehicle
[CLASSNAME, POSITION, DIRECTION, SIDE, LOCKED, PUBLIC, HANDLED] call CTI_CO_FNC_CreateVehicle
[CLASSNAME, POSITION, DIRECTION, SIDE, LOCKED, PUBLIC, HANDLED, SPECIAL] call CTI_CO_FNC_CreateVehicle

 # DEPENDENCIES #
Common Function: CTI_CO_FNC_GetSideFromID
Common Function: CTI_CO_FNC_GetSideID
Common Function: CTI_CO_FNC_OnUnitGetOut
Common Function: CTI_CO_FNC_OnUnitHit
Common Function: CTI_CO_FNC_OnUnitKilled

 # EXAMPLE #
_vehicle = ["B_Quadbike_01_F", getPos player, 0, CTI_P_SideJoined] call CTI_CO_FNC_CreateVehicle; 
  -> Create a "B_Quadbike_01_F" at the player's position facing North on the player's initial side
_vehicle = ["B_Quadbike_01_F", getPos player, 180, CTI_P_SideJoined, true, true] call CTI_CO_FNC_CreateVehicle; 
  -> Create a locked and handled "B_Quadbike_01_F" at the player's position facing South on the player's initial side
*/

private ["_direction", "_handle", "_locked", "_net", "_position", "_side", "_special", "_type", "_vehicle"];

_type = _this select 0;
_position = _this select 1;
_direction = _this select 2;
_side = _this select 3;
_locked = if (count _this > 4) then {_this select 4} else {false};
_net = if (count _this > 5) then {_this select 5} else {false};
_handle = if (count _this > 6) then {_this select 6} else {false};
_special = if (count _this > 7) then {_this select 7} else {"FORM"};

if (typeName _position == "OBJECT") then {_position = getPos _position};
if (typeName _side == "SIDE") then {_side = (_side) call CTI_CO_FNC_GetSideID};

_vehicle = createVehicle [_type, _position, [], 7, _special];
_vehicle setDir _direction;
_vehicle setPos [getPos _vehicle select 0, getPos _vehicle select 1, 0.5]; //--- Make the vehicle spawn above the ground level to prevent any bisteries

if (_special != "FLY") then {
_vehicle setVelocity [0,0,1];
} else {
_vehicle setVelocity [50 * (sin _direction), 50 * (cos _direction), 0];
};

if (_locked) then {_vehicle lock 2} else {_vehicle lock 0};
if (_net) then {_vehicle setVariable ["cti_net", _side, true]};
if (_handle) then {
_vehicle addEventHandler ["killed", format["[_this select 0, _this select 1, %1] spawn CTI_CO_FNC_OnUnitKilled", _side]]; //--- Called on destruction
_vehicle addEventHandler ["hit", {_this spawn CTI_CO_FNC_OnUnitHit}]; //--- Register importants hits
//--- Track who get in or out of the vehicle so that we may determine the death more easily
_vehicle addEventHandler ["getIn", {_this spawn CTI_CO_FNC_OnUnitGetOut}]; 
_vehicle addEventHandler ["getOut", {_this spawn CTI_CO_FNC_OnUnitGetOut}]; 
_vehicle setVariable ["cti_occupant", _side call CTI_CO_FNC_GetSideFromID];
};

_vehicle spawn {
_vehicle = _this;
_tempEH = _vehicle addEventHandler ["HandleDamage", {false}];
sleep 2;
_vehicle removeEventhandler ["HandleDamage", _tempEH];
};

_vehicle

Nothing special in the .RPT

 9:31:54 Admin Ecphrasis logged in.
9:33:31 Server: Object 2:2845 not found (message Type_227)
9:36:04 Out of path-planning region for R Alpha 2-1:5 at 9421.9,15940.3, node type
9:36:05 Out of path-planning region for R Alpha 2-1:5 at 9421.9,15940.3, node type

Explosion was around 9:34

Maybe a problem with Linux, an uppercase or something ?

Share this post


Link to post
Share on other sites

hi,everyone

a question about the flags

where i can find the correct paa data..from all the flags ... ..and where i change these I have this Flag_nato_CO.paa replaced by these flag_german_co.paa in the factory !!!! but nothing works

thx

Edited by ajt

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

×