Jump to content
Benny.

[SP/MP] BeCTI

Recommended Posts

THE MISSION :

BECTI is a Conquer The Island gamemode based on the old school OFP MFCTI where two teams composed of Players and AI fight for the controls of an island in a power struggle with towns and bases.

The commander is the leader of your side, only he may build the base and set the income distribution, all team leaders shall always listen to the commander. The commander is the only one which is able to perform upgrades and assign orders.

Towns need to be captured and held by your side, to capture a town, you simply have to stand next to the flag while no enemy is around, but watch out ! the town occupation may try to defend it ! The generated income and the units may vary depending on a town's size.

Funds are mainly earned by capturing town and salvaging wrecks but killing enemies will also reward you with a bounty bonus, funds may be used to purchase units and gear.

Parameters allows you to play with a different setup all the time, nearly everything can be changed (AI, base, environment, economy, gameplay, module, respawn, towns...).

As the fights goes on, different assets may appear such as:

  • HQ: The HQ is the commander's main toy. Once destroyed, a side may no longer build factories so move it wisely!
  • Repair trucks: Repair trucks may be used by anyone to buy and place defensive structure but they can also be used to repair and build factories. FOB may be deployed from it upon request!
  • Ammo trucks: The ammo truck act as mobile resupply point for both infantry and vehicles. The gear and the service menu may be accessed from it.
  • Salvage trucks: Salvage trucks may be used to gain a certain cash amount from vehicle wrecks (You get 50% of the bounty, the rest is split among the other units). Independent trucks may also be purchased by commander.
  • Forward operating base: Those special structures may be built from Repair Truck and may act as a mobile respawn/resupply point. Note that they are limited in a way that only X of them may be placed at a time. They can be dismantled by using the Repair Truck contextual menu.
  • Respawn: Whenever the player dies, he/she may choose to respawn at a FOB (if near) or at a factory built by the commander. The player may choose to respawn in one of his AI units if near (note that you get the AI's gear upon respawn). Revive will be possible in future versions.
  • Air/Sea Lifting: Roads are unsafe? Why not lift the HQ by the air or by the sea? SDV can hook wrecks underwater (HQ recovery!)
  • Command Center: Are you far from the base? Have you forgotten to buy a vehicle? Then this structure is meant for you! The Command Center increase the purchase range and allows the use of custom assets such as Units Cam and Sat Cam.

The mission is also composed of multiple menu (GUI) like:

  • Purchase Menu: This menu allows the player to reinforce his/her own squad with units/vehicles. The commander may purchase units to other groups.
  • Gear Menu: Thanks to the Barracks, FOB and Ammo Trucks the player may swap his gear on the fly (nb vest/uniform don't have any valid gear manipulation commands atm)
  • Orders Menu: The orders menu allows the commander to change the orders assigned to his/her teams. Some may need to to take town X while other have to take and hold town Y.
  • AI Micro Menu: By default, the engine gives a basic AI management regarding AI in one's group. This menu extends this management allowing the leader to plan/use custom orders for his/her AI such as patrol/take towns (Some orders like move or patrol can be queued)
  • Service Menu: This menu is used to perform utility/resupply actions on units and vehicles (heal, repair, rearm...)
  • Upgrade Menu: The commander has to perform upgrades in order to improve it's side assets (better units, better loadouts...)
  • Units Camera: When a Command Center is available, the units camera become available allowing the monitoring of other groups members.
  • Satellite Camera: When a Command Center is available and when this asset is upgraded, one may use the Sat cam in order to find enemy whereabouts.

INSTALLATION :

Place the PBO contained within the packages in your ArmA 3 MPMissions folder (The path may vary depending on your setup).

The mission works for SP/LAN/DED (DED shall be preferred).

DOWNLOAD :

Current version: 0.97

The mission(s) may be found on my SkyDrive: Download

Or on Armaholic: BeCTI CTI-x

KNOWN ISSUES:

  • Missing Scripting Commands to handle items PROPERLY in the vest like the backpack container...
  • Missing Scripting Commands to handle items PROPERLY in the uniform like the backpack container...
  • Missing Scripting Commands to load the current magazine of a weapon

CHANGELOG:

BUGS:

## VERSION: 0097

[x] Base: Lowered the Light Vehicle Factory's damage reduction

[x] Base: Structures and defenses preview-structure now have a disabled collision with the nearest entities (aside from world)

[x] Base: Destroyed structure could trigger "under attack" message

[x] Gameplay: Victory Conditions for all towns would not be triggered as intended

[x] Multiplayer: Null groups will no longer be shown

[x] UI AI Micromanagement: Hold order would get bugged in Multiplayer

[x] UI Gear: Players units were equipable disregarding of their positions

FEATURES:

## VERSION: 0097

[x] AI Teams: AI will attempt to do remote purchase now

[x] AI Teams: The AI FSM script will now attempt to automatically unstuck all units which didn't move since the last time (excluding statics)

[x] AI Commander: AI Commander will now attempt to purchase units to other Team Leaders (or transfer funds if possible)

[x] AI Commander: The logic behind the commander has been reworked to create a smoother construct flow

[x] AI Commander: Upgrades may now be performed by the commander

[x] Artillery: Artillery is now available via the Command Menu

[x] Artillery: Artillery UI supports enemy assets

[x] Base: Changed Factories HP (Repair, Ammo, Heavy, Air, Naval HP were slightly increased while LVF HP were halved)

[x] Base: Changed FOB model to the medical one

[x] Base: Defenses using Auto-manning will attempt to rearm at the nearest ammo depot/ammo truck when running out of ammunition

[x] Base: Defenses Auto-manning is now a thread started from the Barracks, each empty manable defenses will be manned

[x] Base: Defenses using Auto-manning may now be placed prior to Barracks

[x] Base: Each factories now have a "shortcut action" attached to them linking the player to the Purchase Menu

[x] Gameplay: BLUFOR (West) is now using the Blue color while INDFOR (Guer) is using the Green color

[x] Gameplay: Players performing a JIP over a disabled slot will now appear properly on map

[x] Gear: Added new uniforms, vest, helms, weapons, accessories and magazines.

[x] Gear: Items may be purchased within the vest and uniform

[x] Gear: Reworked the templates with vest and uniform support

[x] Multiplayer: Disabled slots are now fully supported

[x] Multiplayer: Headless Clients are automatically detected (Slots need to be created for them with forceHeadlessClient = 1, slots shall be civilians)

[x] Multiplayer: Multiple Headless Client support is now added (untested due to dev bugs but shall works)

[x] Respawn: Added the ability to spawn on a mobile respawn if enabled

[x] UI Base Management: Added the ability to sell structures for the commander

[x] UI Base Management: Replaces the Workers Menu

[x] Units: Startup vehicles now have a custom loadout in their cargo (defined from Config\Factories)

[x] Units: Vehicle emptiness may be handled differently now

[x] Upgrades: Town occupation upgrade will now increase the resource generation of non-occupied friendly towns

[x] Towns: Increased the town occupation range to 250 meters (circles)

[x] Towns: Increased the town detection range

SCRIPTING:

## VERSION: 0097

[x] Constant: Introduced "CTI_ARTILLERY_FILTER" which determine if artillery pieces magazines shall be filtered or not (remove AP/AT mines for instance)

[x] Constant: Introduced "CTI_ARTILLERY_TIMEOUT" which set a delay between fire missions

[x] Constant: Introduced "CTI_BASE_DEFENSES_AUTO_REARM_RANGE" which determine an Auto-Manning defense rearm range

[x] Constant: Introduced "CTI_FACTORIES" which regroup the factory which may build units

[x] Constant: Introduced "CTI_PLAYER_DEFAULT_ALIAS" which set the default alias of a player without any assigned

[x] Constant: Introduced "CTI_RESPAWN_MOBILE_RANGE" which set the mobile vehicle spawn range

[x] Function (Client): Introduced "CTI_CL_FNC_InitializeStructure" to initialize a constructed structure on the client

[x] Function (Common): Introduced "CTI_CO_FNC_CreateTeam" to create a team composed of infantry or vehicles

[x] Function (Common): Introduced "CTI_CO_FNC_CreateTownUnits" to create town units by either the server or the headless clients

[x] Function (Common): Introduced "CTI_CO_FNC_GetNearestSpecialVehicles" to get the nearest special vehicles

[x] Function (Common): Introduced "CTI_CO_FNC_HasStructure" to check if a side has a given structure

[x] Function (Common): Introduced "CTI_CO_FNC_HasUpgrade" to check if a side has a given upgrade level

[x] Function (Common): Introduced "CTI_CO_FNC_SanitizeArtillery" which sanitize artillery magazines

[x] Function (Server): Introduced "CTI_SE_FNC_AttemptDelegation" to attempt headless client delegation via round robin

[x] Function (Server): Introduced "CTI_SE_FNC_InitializeGroup" to initialize a group at start or on JIP (disabled slots)

[x] Function (Server): Introduced "CTI_SE_FNC_InitializeStructure" to initialize a constructed structure on the server

Edited by Benny.
Mirror
  • Like 2
  • Thanks 1

Share this post


Link to post
Share on other sites

Gratz for the release. I am looking forward to play this mission this evening (and maybe the rest of the week... it's probably your fault, I won't finish my bachelor thesis :D ).

Is the "Buy items into backpack" functional? I remember in the 0.9 testversion there was only a message that the commands are missing.

And I also think this BeCTI feels more like MFCTI then Benny Warfare from A2...

Edited by NeoArmageddon

Share this post


Link to post
Share on other sites

Ran into a bug when swapping from opfor to blufor on the stratis variant of your mission while in single player, here's the RPT error log:

Error in expression <_hostiles > 0) then { _value = _value * CTI_TOWNS_UNOCCUPIED_PERCENTAGE }; 
} el>
 Error position: <CTI_TOWNS_UNOCCUPIED_PERCENTAGE }; 
} el>
 Error Undefined variable in expression: cti_towns_unoccupied_percentage
File missions\__cur_sp.stratis\Client\GUI\GUI_OptionsMenu.sqf, line 46
Error in expression <NTAGE;
};
_side_income = _side_income + _value;
};
} forEach CTI_Towns;
((uiName>
 Error position: <_value;
};
} forEach CTI_Towns;
((uiName>
 Error Undefined variable in expression: _value
File missions\__cur_sp.stratis\Client\GUI\GUI_OptionsMenu.sqf, line 50
Error in expression <_hostiles > 0) then { _value = _value * CTI_TOWNS_UNOCCUPIED_PERCENTAGE }; 
} el>
 Error position: <CTI_TOWNS_UNOCCUPIED_PERCENTAGE }; 
} el>
 Error Undefined variable in expression: cti_towns_unoccupied_percentage
File missions\__cur_sp.stratis\Client\GUI\GUI_OptionsMenu.sqf, line 46
Error in expression <NOCCUPIED_PERCENTAGE;
};
_side_income = _side_income + _value;
};
} forEach CTI_>
 Error position: <_side_income + _value;
};
} forEach CTI_>
 Error Undefined variable in expression: _side_income
File missions\__cur_sp.stratis\Client\GUI\GUI_OptionsMenu.sqf, line 50
Error in expression <CENTAGE }; 
} else { 
_value = _value * CTI_TOWNS_UNOCCUPIED_PERCENTAGE;
};
_sid>
 Error position: <CTI_TOWNS_UNOCCUPIED_PERCENTAGE;
};
_sid>
 Error Undefined variable in expression: cti_towns_unoccupied_percentage
File missions\__cur_sp.stratis\Client\GUI\GUI_OptionsMenu.sqf, line 48
Error in expression <NOCCUPIED_PERCENTAGE;
};
_side_income = _side_income + _value;
};
} forEach CTI_>
 Error position: <_side_income + _value;
};
} forEach CTI_>
 Error Undefined variable in expression: _side_income
File missions\__cur_sp.stratis\Client\GUI\GUI_OptionsMenu.sqf, line 50
Error in expression < CTI_P_Coloration_Money, _income, round _side_income]);
_last_income = _income;
>
 Error position: <_side_income]);
_last_income = _income;
>
 Error Undefined variable in expression: _side_income

Share this post


Link to post
Share on other sites

Congratz Benny!

Great to see you keep CTI alive, strong and hugely improve the codebase. :bounce3:

PS: Dev has scripting commands incoming you need I believe.

Share this post


Link to post
Share on other sites
KNOWN ISSUES:

  • Missing Scripting Commands to handle items PROPERLY in the vest like the backpack container...
  • Missing Scripting Commands to handle items PROPERLY in the uniform like the backpack container...
  • Missing Scripting Commands to load the current magazine of a weapon

I just saw this on the feedback tracker and it looks like its being implemented really quickly. They may be the ones .kju mentioned.

I was recommended this gametype by another player and as I never played A2 version, really looking forward to it.

Thanks for letting us know your official version is out.

Share this post


Link to post
Share on other sites

We just played 6 hours.

Great to see something like MFCTI again. Much fun. The missing equipment commands and some "undefiend variable" errors are annoying but I think benny will fix them soon.

Also I am missing artillery... where is it?

Share this post


Link to post
Share on other sites

Wow, Thank you Benny! We have been waiting for this. Testing on our dedi server asap. :rthumb:

Share this post


Link to post
Share on other sites
Gratz for the release. I am looking forward to play this mission this evening (and maybe the rest of the week... it's probably your fault, I won't finish my bachelor thesis :D ).

Is the "Buy items into backpack" functional? I remember in the 0.9 testversion there was only a message that the commands are missing.

And I also think this BeCTI feels more like MFCTI then Benny Warfare from A2...

Hehe, the backpack is ok still vest & uniform are not (maybe if those scripting commands are added... :))

Ran into a bug when swapping from opfor to blufor on the stratis variant of your mission while in single player, here's the RPT error log:

Error in expression <_hostiles > 0) then { _value = _value * CTI_TOWNS_UNOCCUPIED_PERCENTAGE }; 
} el>
 Error position: <CTI_TOWNS_UNOCCUPIED_PERCENTAGE }; 
} el>
 Error Undefined variable in expression: cti_towns_unoccupied_percentage
File missions\__cur_sp.stratis\Client\GUI\GUI_OptionsMenu.sqf, line 46
Error in expression <NTAGE;
};
_side_income = _side_income + _value;
};
} forEach CTI_Towns;
((uiName>
 Error position: <_value;
};
} forEach CTI_Towns;
((uiName>
 Error Undefined variable in expression: _value
File missions\__cur_sp.stratis\Client\GUI\GUI_OptionsMenu.sqf, line 50
Error in expression <_hostiles > 0) then { _value = _value * CTI_TOWNS_UNOCCUPIED_PERCENTAGE }; 
} el>
 Error position: <CTI_TOWNS_UNOCCUPIED_PERCENTAGE }; 
} el>
 Error Undefined variable in expression: cti_towns_unoccupied_percentage
File missions\__cur_sp.stratis\Client\GUI\GUI_OptionsMenu.sqf, line 46
Error in expression <NOCCUPIED_PERCENTAGE;
};
_side_income = _side_income + _value;
};
} forEach CTI_>
 Error position: <_side_income + _value;
};
} forEach CTI_>
 Error Undefined variable in expression: _side_income
File missions\__cur_sp.stratis\Client\GUI\GUI_OptionsMenu.sqf, line 50
Error in expression <CENTAGE }; 
} else { 
_value = _value * CTI_TOWNS_UNOCCUPIED_PERCENTAGE;
};
_sid>
 Error position: <CTI_TOWNS_UNOCCUPIED_PERCENTAGE;
};
_sid>
 Error Undefined variable in expression: cti_towns_unoccupied_percentage
File missions\__cur_sp.stratis\Client\GUI\GUI_OptionsMenu.sqf, line 48
Error in expression <NOCCUPIED_PERCENTAGE;
};
_side_income = _side_income + _value;
};
} forEach CTI_>
 Error position: <_side_income + _value;
};
} forEach CTI_>
 Error Undefined variable in expression: _side_income
File missions\__cur_sp.stratis\Client\GUI\GUI_OptionsMenu.sqf, line 50
Error in expression < CTI_P_Coloration_Money, _income, round _side_income]);
_last_income = _income;
>
 Error position: <_side_income]);
_last_income = _income;
>
 Error Undefined variable in expression: _side_income

I haven't tried the teamswapping yet, I'll try to improve it with some Events.

;2528802']Congratz Benny!

Great to see you keep CTI alive' date=' strong and hugely improve the codebase. :bounce3:

PS: Dev has scripting commands incoming you need I believe.[/quote']

It's always fun to do everything again properly :)

Just for fun:

- The mission use 0 waypoints

- There is only 1 publicvariable (I will tweak the Fast Time later on)

- Inits are done by setVariable.

Glad to read it about those commands, they're really missing.

We just played 6 hours.

Great to see something like MFCTI again. Much fun. The missing equipment commands and some "undefiend variable" errors are annoying but I think benny will fix them soon.

Also I am missing artillery... where is it?

Could you PM me the rpt? I'm always interested into fixing those errors :)

Artillery is not included yet, I'm still trying to figure out how to calculate the min-max range from the config, any hints are more than welcome on this rocket science part (Else i'll just have to hard-code it).

you can add Headless Client?

I'm not too fond of the licensing model regarding the HC but if people want it then why not. It's a shame that the AI is not that mutlicore friendly.

Share this post


Link to post
Share on other sites

Did I ever tell you that I love you Benny?

Can't wait to put this up on some servers I run, One of the first missions I played on ARMA 2 was BE Warfare CTI on Fallujah, good times :)

Share this post


Link to post
Share on other sites

Could you PM me the rpt? I'm always interested into fixing those errors :)

I added you in Skype to directly send to you my RPT and the servers RPT if thats okay for you.

Also here are some bugs/flaws we found while playing:

  • Defending AI seems to spawn at one spot and then seems to disperse in different directions
  • Spawn distance is to close for cities. As Sniper/Tank/UAV team one has to go in the vicinity of the city to spawn the AI for the long range units. Spawndistance = Viewdistance + City Radius would be great. Ability to lower the distance for less powerfull server in params would be nice, too.
  • If automanning of defense is off and you diassemble and assemble a static gun, a unit gets spawn in as gunner.
  • Param for vanilla artillery would be nice.
  • The light factory building (garage) seems to take much more damage than any other building.
  • Ammoboxes in the defense menu would be a nice addition.
  • I am missing an option for mobile respawn on medic vehicles.

Most of the errors in the rpt are related to not defined local variables. I had a quick look in your scripts: If you add

private["_clicked_position","_nearest"];

with all in the specific script used local variables to the first line of the scripts, most errors will be gone. I think thise "undefiend local variable" errors are only thrown in the devbuild. Maybe that is the reason you overlooked this.

How many variables are needed to store the state of a session? Maybe it would be a great feature to save the state of a mission to the servers profilenamespace.

And I also like the tidy params!

Edited by NeoArmageddon

Share this post


Link to post
Share on other sites

Benny, one request, i'd love an ability to adjust the AI skill level.

Share this post


Link to post
Share on other sites

BE Warfare, best mission ever! :yay: Thanks!

I would love to see a few support items added to the upgrades that modern armys would have at their disposal, air taxi/ground transport (instead of fast travel), CAS, vehicle drop, and Ammo drop.

Also I miss some of the parameters paticularly one that allows you to adjust the body deletion time.

Share this post


Link to post
Share on other sites
Did I ever tell you that I love you Benny?

Can't wait to put this up on some servers I run, One of the first missions I played on ARMA 2 was BE Warfare CTI on Fallujah, good times :)

Still a long way to go :)

I added you in Skype to directly send to you my RPT and the servers RPT if thats okay for you.

Also here are some bugs/flaws we found while playing:

  • Defending AI seems to spawn at one spot and then seems to disperse in different directions
  • Spawn distance is to close for cities. As Sniper/Tank/UAV team one has to go in the vicinity of the city to spawn the AI for the long range units. Spawndistance = Viewdistance + City Radius would be great. Ability to lower the distance for less powerfull server in params would be nice, too.
  • If automanning of defense is off and you diassemble and assemble a static gun, a unit gets spawn in as gunner.
  • Param for vanilla artillery would be nice.
  • The light factory building (garage) seems to take much more damage than any other building.
  • Ammoboxes in the defense menu would be a nice addition.
  • I am missing an option for mobile respawn on medic vehicles.

Most of the errors in the rpt are related to not defined local variables. I had a quick look in your scripts: If you add

private["_clicked_position","_nearest"];

with all in the specific script used local variables to the first line of the scripts, most errors will be gone. I think thise "undefiend local variable" errors are only thrown in the devbuild. Maybe that is the reason you overlooked this.

How many variables are needed to store the state of a session? Maybe it would be a great feature to save the state of a mission to the servers profilenamespace.

And I also like the tidy params!

To sum it up from our convo :)

- I'll try to make AI spawn next to houses/buildings with a better pattern.

- I'm not against a dynamic range, it could be a good idea.

- I'm not sure about that one but i'll give it a spin.

- I'll let the vanilla arty as a param (Disabled, Vanilla, Short, Med, Long)

- Yes i've noticed it too, i'll lower it's dmg reduction.

- I'll add ammo crates to the defense menu

- Mobile respawn is easy to add so I can add it (wondering about some kind of fee).

Persistency? I like that idea, well if we sum up what do we have to save:

- Towns (Side ID / Last Side ID)

- Logics status (Game Eta like upgrade, hq, structures...)

- Units/Vehicles (Position / Damage / Side ID)

- Teams variable (Funds, orders)

Then I could add a save(+autosave)/load menu :)

"Add Polish immigrant" :/

Benny, why?

Yes

... thanks Benny, for this wonderful mission :)

Have fun! :)

Benny, one request, i'd love an ability to adjust the AI skill level.

I'll add BL1P skill module for ai with some tweaks.

BE Warfare, best mission ever! :yay: Thanks!

I would love to see a few support items added to the upgrades that modern armys would have at their disposal, air taxi/ground transport (instead of fast travel), CAS, vehicle drop, and Ammo drop.

Also I miss some of the parameters paticularly one that allows you to adjust the body deletion time.

I'll add those features soon (including the deletion time but as a "ratio" since each kind has it's own timer).

Share this post


Link to post
Share on other sites

Benny, can you please remove the Marid from heavy 0 and replace it with the BTR-K. The Marid is no competition at all versus the AMV-7 Marshal.

The Marid is more on par with the Panther and that lives at heavy 1. To be honest neither of them I would class as heavy, you could put both of them (Marid and Panther) at light 1 instead.

Share this post


Link to post
Share on other sites

Well first of all : Félicitations pour cette release.

I just have a small question/suggestion which is : can you port the mission souces into a revision control platform (devheaven, github ...) so we can fork it and keep track of who modify what. It could be usefull for people like Bl1p or myself (correct me if I am wrong :) ), and could improve the environment of people working on your mission.

That said, congratz and see you around.

Edited by ZertyKchan

Share this post


Link to post
Share on other sites

Nice to see this is still alive an kicking! Congrats on the release Benny!

Haven't got the right hardware for A3 yet, but that will soon change, so I can test this myself :)

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

×