Jump to content
🛡️FORUMS ARE IN READ-ONLY MODE Read more... ×
Rydygier

HETMAN - Artificial Commander

For HAC users: What is the maximum number of simultaneously used by you Leaders?  

64 members have voted

  1. 1. For HAC users: What is the maximum number of simultaneously used by you Leaders?

    • Only one
      18
    • Two
      9
    • Three
      15
    • Four of them
      0
    • Five
      6
    • Six
      0
    • Seven
      12
    • All eight!
      1


Recommended Posts

Exactly. Will do some test with UAV when finish radio messages (I prefer to end one thing before start with another). Counting also on this demo mission from CaptainBravo, his cargo problems worries me, also reported and until today not recreated in my tests lags.

Share this post


Link to post
Share on other sites

great script you have here :D

I set up an enemy platoon with the platoon commander being HAC against myself as platoon commander of my own forces. I only did a simple defense against the attacking commander and I was impressed! I had setup mgs to cover the road as I was expecting a head on attack, to my surprise, hac sent one squad on each flank to try and encircle my position. Caught me off guard a bit, but managed to take out the flanking squads before the main frontal assault took place. Then HAC decided to play a game of attrition doing small hit and runs on our fortified position, and it was doing a very good job at it too - I lost half of my platoon from this until I decided to counter attack (rather carelessly) and was killed.

Very impressive work indeed, just one question though: does HAC utilize artillery? Or would it work if I used Blakes forward observer script to call artillery with HAC giving orders to the FO?

Anyway, this is great work, and gives a fresh new way to challenge myself with platoon vs platoon engagements. Looking forward to the next release.

Share this post


Link to post
Share on other sites
does HAC utilize artillery? Or would it work if I used Blakes forward observer script to call artillery with HAC giving orders to the FO?

HAC itself do not utilize artillery, however works fine with external artillery scripts, FOs should be placed by HAC on forward and elevated positions. Didn't tested with Blakes FO (probably works fine), but tested with my own FAW. Because FAW was maded earlier I decide do not give to HAC internal artillery control, but maded HETMAN in such way, that works with FAW good. If I decided to combine HAC with FAW, this would consist simply in adding FAW scripts into HAC folder, so when used as separate pbo/scripts, works same way, as if combined into one addon. There is one logical limitation in this: HAC only partially takes into consideration factor of own/enemy artillery firepower and do not control directly artillery fire (so will not, for example, make artillery smoke screen to cover withdrawing units, but will consider enemy arty units as important targets, also will send on good positions units, that are by default used by FAW as FOs (FAW will choose and cover with salvos most valuable and vulnerable enemy target known to FO unit with quite smart correction for target movement), so in fact HAC makes rather good use of FAW controlled artillery). Of course, you may try to use any other artillery addon/script instead of FAW, if you find another one more suitable. Tried to make HAC that way, that worked well with other addons, and should until other addons do not mess with waypoints.

Edited by Rydygier

Share this post


Link to post
Share on other sites

About voice notifciation...

Tried to prepare some kind of semi-dynamic minidialog (sentences without dynamic arguments, but with some random choosing, and partially dependant on circumstancies and kind of mission, so there are for example five different order confirmations and one of them is randomly chosen), but encountered problems. Full sentences are consist of pieces - individual phrases like "take", "position", "BeAdviced", "enemy", "NotFar" and so on. First problem is, that there is no some important for my purposes phrases (like "patrol", "area", "defend", "destination" etc.); second is, I found, that only part of them has equivalents in other languages (Russian, Czech), so sentence, that sounds fine in English, is incomplete in other languages; and third problem - can't test, if this will work for non-vanilla factions, eg from OA. For now I do not know, what to do with that, so, unless I manage to figure out something, there will be by default only on-screen text notification and optional voice dialog recommended for USMC faction only... :(

Edited by Rydygier

Share this post


Link to post
Share on other sites

"Patrol" for sure appears in SecOps. I can help you out in chopping audio files to fish out phrases you want to use.

Remember that those dialogues are only fancy addon, its the notification of order that is important. So radio blip and text still can get the job done if all else fails.

BTW: I just had an idea for neat (at lest I think its neat) mission using HAC. An AI supported Advance and secure with bit of a twist. Both sides start with some units and a base. Their main objective is to capture the other team base (present and no enemy for X seconds). Both commanders commander get random reinforcements every X seconds (it would be cool if reinforcements were delivered in immersive way: vehicles are dropped, infantry choppered, and air flies in), but its rather slow. There are 2 "key" points on the map that are secondary objectives. Capturing secondary objectives shortens the span between reinforcements. Not much else, but I like simple missions. Maybe just semi-random placement of secondary objectives, using game logic and setpos.

Edited by Taro8

Share this post


Link to post
Share on other sites

You can release the version with voice and we will test.

Another option is import the sound files from outside game. I did a mission once where I used custmized .ogg sound files (in sound folder) for voice commands by HQ and it sounded much better than game one. People will just download the sound file along with script. The sound files are small so should not be too much hassle. This way you can have russian, us or even aliens sounds files :)

Share this post


Link to post
Share on other sites

Thanks guys, I know, this is only ornament, not clou, but still... There are some reasons, for which better are generic phrases: JSRS audio mod gives them very nice touch, and there is matter of launguage, which is, or should be, matched to faction. Will release version with voices, when ready, rather not today, slept only a few hours last night and now barely keep myself vertical. :)

Share this post


Link to post
Share on other sites
... there will be by default only on-screen text notification and optional voice dialog recommended for USMC faction only... :(

Which is pretty good already! Still the text hint will be handy...

In regard to lack of words, I had the same problem finding a word "degrees" or equivalent, I went the length to even look for existing phrases with which I could edit the audio part to create the sound from scratch with no good results :(, then I tried to record it myself but it was just in a voice too different from default to be useful.

There is no good solution to this problem, either the word is there or in full in a prerecorded sentence or its kind of a dead end. My middle ground was to have the sentence in text alone as you also figured.

Regarding the different languages this raises a correction of what I had said earlier about config version of the mod. Sentences you which to add should be done in "CfgTalkTopics" under respective topics (ie. "class Core_Full", "class CoreFull_E", etc) NOT where I said earlier (RadioProtocolEN, RadioProtocolRU, etc) these topics are set in the units config in a peculiar way:

class USMC_Soldier: USMC_Soldier_Base {
...
class TalkTopics: TalkTopics {
 core = "Core_E";
 core_cz = "Core_Degenerated";
 core_en = "Core_Full_E";
 core_ru = "Core_Degenerated";
 core_tk = "Core_Degenerated_E";
};
...

So you add the sentences you whish to add to whichever TalkTopic the unit has configured making the correlation above. Adding to "Core_E" and access call kbTalk with "core" as topic should get you far since most units have this in its base.

Mostly you should be able to make English speaking characters to voice their orders independently of Arma version.

BAF units for example only have "core_en = "Core_Full_E"" in their TalkTopics. You just need to check a unit's base class. =&options[sort_values_by]=&commit=Change"]I use this for quick reference, (click "Show Full" and make sure you select the proper Arma version there too).

Enabling the mod for non-english speaking characters implies repeating these steps for each base class, and might not be worth it early on.

Note1: To me there is a grey area here also since I tend to think this is also related with the game being multi-language

Note2: Some "special" characters such as members of Razor Team for example, which have a defined CfgIdentity, if used as "leaderHQ" might also raise voice issues *be advised*

---------- Post added at 08:02 PM ---------- Previous post was at 07:52 PM ----------

Let me add, that since adding words is easy (even with the nice lipsynching) you could even add your own recorded words to it, this comes feasible since it will be mostly tied to whatever the commander speaks in the context of the activity under your mod, so there should not be a problem of him speaking in a different voice then its basic one for other stuff.

Keep track of the words/sentences you will need, maybe later on I find some time to look at configs in search for good equivalent phrases.

Edited by gammadust

Share this post


Link to post
Share on other sites

Interesting, thanks gammadust, must look at this closer, when will be more rested.

For now - only very limited demo with dialog concept for interested. There is nothing to do, just wait and listen, voice is applied only for idle orders, and such order will be issued to you. In tests some sentences may vary, it is this randomization feature. Also gaps between sentences are randomized to make conversation more realistic. You can also to change in editor leaderHQ and yours unit to WOC or RU faction and compare (remember about init code for players's unit).

VoiceComm Demo

Share this post


Link to post
Share on other sites

Take a good rest brother, you seem to be in need. Many thanks for all your effort!

Share this post


Link to post
Share on other sites

I will rest. Soon. :)

Keep track of the words/sentences you will need, maybe later on I find some time to look at configs in search for good equivalent phrases.

Thanks again. Specific words my vary, but I need mosty short description of given mission type. For example "Move to destination point (and attack enemy)", "Make a reconnaissance in the designated area." "Provide support in the designated area", "Defend position", "Hold designated position", "patrol designated area","Take and deliver group to target area", "Look for hostiles". It is all, I think. Maybe also "near target position" or "nearby designated point"... something like that.

Share this post


Link to post
Share on other sites

Sec Ops module chatter has quite a bit of phrases you seek.

Share this post


Link to post
Share on other sites

@Taro8 very much by the looks, at worse one needs to edit/cut the individual words from those phrases, at best the phrases in their entirety are fit for HAC's purposes.

here's a list:

 HQ[] = {"EN\secops\callsigns\hq"};
 Frostbite[] = {"EN\secops\callsigns\frostbite"};
 Base[] = {"EN\secops\callsigns\base"};
 Command[] = {"EN\secops\callsigns\command"};
 Battlemage[] = {"EN\secops\callsigns\battlemage"};
 Manhattan[] = {"EN\secops\callsigns\manhattan"};
 Firefly[] = {"EN\secops\callsigns\firefly"};
 Team[] = {"EN\secops\callsigns\team"};
 Squad[] = {"EN\secops\callsigns\squad"};
 Razor[] = {"EN\secops\callsigns\razor"};
 Swordsman[] = {"EN\secops\callsigns\swordsman"};
 Sabre[] = {"EN\secops\callsigns\sabre"};
 StarForce[] = {"EN\secops\callsigns\star_force"};
 Super[] = {"EN\secops\callsigns\super"};
 Hammer[] = {"EN\secops\callsigns\hammer"};
 Reaper[] = {"EN\secops\callsigns\reaper"};
 Fatman[] = {"EN\secops\callsigns\fatman"};
 Fortune[] = {"EN\secops\callsigns\fortune"};
 Anvil[] = {"EN\secops\callsigns\anvil"};
 SecOpNew1[] = {"EN\secops\generic\secopnew1"};
 SecOpNew2[] = {"EN\secops\generic\secopnew2"};
 SecOpNew3[] = {"EN\secops\generic\secopnew3"};
 Over[] = {};
 Out[] = {};
 Confirmed[] = {"EN\secops\generic\confirmed"};
 Affirmative[] = {"EN\secops\generic\affirmative"};
 Good[] = {"EN\secops\generic\good"};
 To[] = {"EN\secops\generic\to"};
 Message[] = {"EN\secops\generic\message"};
 ComeIn[] = {"EN\secops\generic\comein"};
 DoYouCopyQ[] = {"EN\secops\generic\doyoucopyq"};
 GoAhead[] = {"EN\secops\generic\goahead"};
 Yes[] = {"EN\secops\generic\yes"};
 WeCopyYouLoudAndClear[] = {"EN\secops\generic\wecopyyouloudandclear"};
 SendIt[] = {"EN\secops\generic\sendit"};
 No[] = {"EN\secops\generic\no"};
 CanDo[] = {"EN\secops\generic\cando"};
 WeAre[] = {"EN\secops\generic\weare"};
 Job[] = {"EN\secops\generic\job"};
 WellDone[] = {"EN\secops\generic\welldone"};
 SecOpComplete[] = {"EN\secops\generic\secopcomplete"};
 TheSecOpWasAFailure[] = {"EN\secops\generic\thesecopwasafailure"};
 MissionFailure[] = {"EN\secops\generic\missionfailure"};
 TheOpWasAFailure[] = {"EN\secops\generic\theopwasafailure"};
 ObjectiveFailed[] = {"EN\secops\generic\objectivefailed"};
 WereUnableToTakeOnAnotherObjective[] = {"EN\secops\generic\wereunabletotakeonanotherobjective"};
 AtThisTime[] = {"EN\secops\generic\atthistime"};
 WeCannotDivert[] = {"EN\secops\generic\wecannotdivert"};
 NoWayWeCanDivertNow[] = {"EN\secops\generic\nowaywecandivertnow"};
 WeHaveTooManyOtherTasksToComplete[] = {"EN\secops\generic\wehavetoomanyothertaskstocomplete"};
 TheresNoWayWeCanHelpWithThatRightNow[] = {"EN\secops\generic\theresnowaywecanhelpwiththatrightnow"};
 Were[] = {"EN\secops\generic\were"};
 On[] = {"EN\secops\generic\on"};
 OurWay[] = {"EN\secops\generic\ourway"};
 Route[] = {"EN\secops\generic\route"};
 It[] = {"EN\secops\generic\it"};
 UnableToCompleteTheObjective[] = {"EN\secops\generic\unabletocompletetheobjective"};
 WeCannotFinishTheOp[] = {"EN\secops\generic\wecannotfinishtheop"};
 WeHaveToAbort[] = {"EN\secops\generic\wehavetoabort"};
 WeCannotCompleteThisMission[] = {"EN\secops\generic\wecannotcompletethismission"};
 Aborting[] = {"EN\secops\generic\aborting"};
 ContinueYourPreviousMission[] = {"EN\secops\generic\continueyourpreviousmission"};
 AbortTheOp[] = {"EN\secops\generic\aborttheop"};
 ReturnToYourPrimary[] = {"EN\secops\generic\returntoyourprimary"};
 CarryOnWithYourPriorTasks[] = {"EN\secops\generic\carryonwithyourpriortasks"};
 SecOp_Attack_Loc_Briefing1[] = {"EN\secops\attack_location\secop_attack_loc_briefing1"};
 SecOp_Attack_Loc_Briefing2[] = {"EN\secops\attack_location\secop_attack_loc_briefing2"};
 SecOp_Attack_Loc_Briefing_Timeout[] = {"EN\secops\attack_location\secop_attack_loc_briefing_timeout"};
 SecOp_Attack_Loc_Debriefing_End1[] = {"EN\secops\attack_location\secop_attack_loc_debriefing_end1"};
 SecOp_Attack_Loc_Briefing_Reinf_1[] = {"EN\secops\attack_location\secop_attack_loc_briefing_reinf1"};
 SecOp_Attack_Loc_Briefing_Reinf_2[] = {"EN\secops\attack_location\secop_attack_loc_briefing_reinf2"};
 SecOp_Ambush_Briefing_1[] = {"EN\secops\ambush\secop_ambush_briefing_1"};
 SecOp_Ambush_Briefing_2[] = {"EN\secops\ambush\secop_ambush_briefing_2"};
 SecOp_Ambush_Briefing_Timeout[] = {"EN\secops\ambush\secop_ambush_briefing_timeout"};
 SecOp_Ambush_Debriefing_End_1[] = {"EN\secops\ambush\secop_ambush_debriefing_end_1"};
 SecOp_Ambush_Debriefing_End_2[] = {"EN\secops\ambush\secop_ambush_debriefing_end_2"};
 SecOp_Ambush_Debriefing_End_3[] = {"EN\secops\ambush\secop_ambush_debriefing_end_3"};
 SecOp_Rescue_Briefing_1[] = {"EN\secops\rescue\secop_rescue_briefing_1"};
 SecOp_Rescue_Briefing_2[] = {"EN\secops\rescue\secop_rescue_briefing_2"};
 SecOp_Rescue_Briefing_Not_Accepted[] = {"EN\secops\rescue\secop_rescue_briefing_not_accepted"};
 SecOp_Rescue_Briefing_Timeout[] = {"EN\secops\rescue\secop_rescue_briefing_timeout"};
 SecOp_Rescue_Radio_1[] = {"EN\secops\rescue\secop_rescue_radio_1"};
 SecOp_Rescue_Debriefing_End_1[] = {"EN\secops\rescue\secop_rescue_debriefing_end_1"};
 SecOp_Rescue_Debriefing_End_2[] = {"EN\secops\rescue\secop_rescue_debriefing_end_2"};
 SecOp_TRAP_Briefing_1[] = {"EN\secops\trap\secop_trap_briefing_1"};
 SecOp_TRAP_Briefing_2[] = {"EN\secops\trap\secop_trap_briefing_2"};
 SecOp_TRAP_Briefing_Timeout[] = {"EN\secops\trap\secop_trap_briefing_timeout"};
 SecOP_TRAP_Debriefing_End_1[] = {"EN\secops\trap\secop_trap_debriefing_end_1"};
 SecOp_TRAP_Debriefing_End_2[] = {"EN\secops\trap\secop_trap_debriefing_end_2"};
 SecOp_TRAP_Debriefing_End_3[] = {"EN\secops\trap\secop_trap_debriefing_end_3"};
 SecOp_TRAP_Radio_1[] = {"EN\secops\trap\secop_trap_radio_1"};
 SecOp_TRAP_Radio_2[] = {"EN\secops\trap\secop_trap_radio_2"};
 SecOp_Escort_Briefing_1[] = {"EN\secops\escort\secop_escort_briefing_1"};
 SecOp_Escort_Briefing_2[] = {"EN\secops\escort\secop_escort_briefing_2"};
 SecOp_Escort_Briefing_Timeout[] = {"EN\secops\escort\secop_escort_briefing_timeout"};
 SecOp_Escort_Radio_1[] = {"EN\secops\escort\secop_escort_radio_1"};
 SecOp_Escort_Radio_2[] = {"EN\secops\escort\secop_escort_radio_2"};
 SecOp_Escort_Radio_3[] = {"EN\secops\escort\secop_escort_radio_3"};
 SecOp_Escort_Radio_4[] = {"EN\secops\escort\secop_escort_radio_4"};
 SecOp_Escort_Debriefing_End_1[] = {"EN\secops\escort\secop_escort_debriefing_end_1"};
 SecOp_Escort_Debriefing_End_2[] = {"EN\secops\escort\secop_escort_debriefing_end_2"};
 SecOp_Escort_Debriefing_End_3[] = {"EN\secops\escort\secop_escort_debriefing_end_3"};
 SecOp_Patrol_Briefing_1[] = {"EN\secops\patrol\secop_patrol_briefing_1"};
 SecOp_Patrol_Briefing_2[] = {"EN\secops\patrol\secop_patrol_briefing_2"};
 SecOp_Patrol_Briefing_Timeout[] = {"EN\secops\patrol\secop_patrol_briefing_timeout"};
 SecOp_Patrol_Radio_1[] = {"EN\secops\patrol\secop_patrol_radio_1"};
 SecOp_Patrol_Radio_2[] = {"EN\secops\patrol\secop_patrol_radio_2"};
 SecOp_Patrol_Debriefing_End_1[] = {"EN\secops\patrol\secop_patrol_debriefing_end_1"};
 SecOp_Transportation_Briefing_1[] = {"EN\secops\transportation\secop_transportation_briefing_1"};
 SecOp_Transportation_Briefing_2[] = {"EN\secops\transportation\secop_transportation_briefing_2"};
 SecOp_Transportation_Briefing_Timeout[] = {"EN\secops\transportation\secop_transportation_briefing_timeout"};
 SecOp_Transportation_Radio_1[] = {"EN\secops\transportation\secop_transportation_radio_1"};
 SecOp_Transportation_Radio_2[] = {"EN\secops\transportation\secop_transportation_radio_2"};
 SecOp_Transportation_Radio_3[] = {"EN\secops\transportation\secop_transportation_radio_3"};
 SecOp_Transportation_Debriefing_End_1[] = {"EN\secops\transportation\secop_transportation_debriefing_end_1"};
 SecOp_Transportation_Debriefing_End_2[] = {"EN\secops\transportation\secop_transportation_debriefing_end_2"};
 SecOp_Transportation_Debriefing_End_3[] = {"EN\secops\transportation\secop_transportation_debriefing_end_3"};
 SecOp_Transportation_Debriefing_End_4[] = {"EN\secops\transportation\secop_transportation_debriefing_end_4"};
 SecOp_Defend_Loc_Briefing_1[] = {"EN\secops\defend_location\secop_defend_loc_briefing_1"};
 SecOp_Defend_Loc_Briefing_2[] = {"EN\secops\defend_location\secop_defend_loc_briefing_2"};
 SecOp_Defend_Loc_Briefing_Timeout[] = {"EN\secops\defend_location\secop_defend_loc_briefing_timeout"};
 SecOp_Defend_Loc_Abort_1[] = {"EN\secops\defend_location\secop_defend_loc_abort_1"};
 SecOp_Defend_Loc_Radio_1A[] = {"EN\secops\defend_location\secop_defend_loc_radio_1a"};
 SecOp_Defend_Loc_Radio_1B[] = {"EN\secops\defend_location\secop_defend_loc_radio_1b"};
 SecOp_Defend_Loc_Debriefing_End_1[] = {"EN\secops\defend_location\secop_defend_loc_debriefing_end_1"};
 SecOp_Defend_Loc_Debriefing_End_2[] = {"EN\secops\defend_location\secop_defend_loc_debriefing_end_2"};
 SecOp_Destroy_Briefing_1[] = {"EN\secops\destroy\secop_destroy_briefing_1"};
 SecOp_Destroy_Briefing_2[] = {"EN\secops\destroy\secop_destroy_briefing_2"};
 SecOp_Destroy_Briefing_Timeout[] = {"EN\secops\destroy\secop_destroy_briefing_timeout"};
 SecOp_Destroy_Debriefing_End_1[] = {"EN\secops\destroy\secop_destroy_debriefing_end_1"};
 SecOp_Search_Briefing_1[] = {"EN\secops\search\secop_search_briefing_1"};
 SecOp_Search_Briefing_2[] = {"EN\secops\search\secop_search_briefing_2"};
 SecOp_Search_Briefing_Timeout[] = {"EN\secops\search\secop_search_briefing_timeout"};
 SecOp_Search_Radio_1[] = {"EN\secops\search\secop_search_radio_1"};
 SecOp_Search_Debriefing_End_1[] = {"EN\secops\search\secop_search_debriefing_end_1"};
 SecOp_Search_Debriefing_End_2[] = {"EN\secops\search\secop_search_debriefing_end_2"};
 SecOp_Search_Debriefing_End_3[] = {"EN\secops\search\secop_search_debriefing_end_3"};
 SecOp_Reinforce_Briefing_1[] = {"EN\secops\reinforce\str_som_reinforce_briefing_1"};
 SecOp_Reinforce_Briefing_2[] = {"EN\secops\reinforce\str_som_reinforce_briefing_2"};
 SecOp_Reinforce_Briefing_Timeout[] = {"EN\secops\reinforce\str_som_reinforce_briefing_timeout"};
 SecOp_Reinforce_Debriefing_1[] = {"EN\secops\reinforce\str_som_reinforce_debriefing_end1"};
 SecOp_Reinforce_Debriefing_2[] = {"EN\secops\reinforce\str_som_reinforce_debriefing_end2"};
 SecOp_Reinforce_Debriefing_3[] = {"EN\secops\reinforce\str_som_reinforce_debriefing_end3"};
 SecOp_Tactical_Strike_Briefing_1[] = {"EN\secops\airstrike\secop_airstrike_01"};
 SecOp_Tactical_Strike_Briefing_2[] = {"EN\secops\airstrike\secop_airstrike_02"};
 SecOp_Tactical_Strike_Briefing_Accepted[] = {"EN\secops\airstrike\secop_airstrike_04"};
 SecOp_Tactical_Strike_Radio_1[] = {"EN\secops\airstrike\secop_airstrike_03"};
 SecOp_Aerial_Recon_Briefing_1[] = {"EN\secops\uav\secop_uav_01"};
 SecOp_Aerial_Recon_Briefing_2[] = {"EN\secops\uav\secop_uav_02"};
 SecOp_Aerial_Recon_Briefing_Accepted[] = {"EN\secops\uav\secop_uav_03"};
 SecOp_Aerial_Recon_Radio_1[] = {"EN\secops\uav\secop_uav_04"};
 SecOp_Aerial_Recon_Radio_2[] = {"EN\secops\uav\secop_uav_05"};
 SecOp_Aerial_Recon_Radio_3[] = {"EN\secops\uav\secop_uav_06"};
 SecOp_Artillery_Barrage_Available_1[] = {"EN\secops\artillery\secop_artillery_01"};
 SecOp_Artillery_Barrage_Available_2[] = {"EN\secops\artillery\secop_artillery_02"};
 SecOp_Artillery_Barrage_Available_3[] = {"EN\secops\artillery\secop_artillery_03"};
 SecOp_Artillery_Barrage_Request_1[] = {"EN\secops\artillery\secop_artillery_04"};
 SecOp_Artillery_Barrage_Request_2[] = {"EN\secops\artillery\secop_artillery_05"};
 SecOp_Artillery_Barrage_Request_3[] = {"EN\secops\artillery\secop_artillery_06"};
 SecOp_Artillery_Barrage_Request_4[] = {"EN\secops\artillery\secop_artillery_07"};
 SecOp_Artillery_Barrage_Request_5[] = {"EN\secops\artillery\secop_artillery_08"};
 SecOp_Artillery_Barrage_Request_6[] = {"EN\secops\artillery\secop_artillery_09"};
 SecOp_Artillery_Barrage_Request_7[] = {"EN\secops\artillery\secop_artillery_10"};
 SecOp_Artillery_Barrage_Request_8[] = {"EN\secops\artillery\secop_artillery_11"};
 SecOp_Artillery_Barrage_Request_9[] = {"EN\secops\artillery\secop_artillery_12"};
 SecOp_Artillery_Barrage_Response_1[] = {"EN\secops\artillery\secop_artillery_13"};
 SecOp_Artillery_Barrage_Response_2[] = {"EN\secops\artillery\secop_artillery_14"};
 SecOp_Artillery_Barrage_Response_3[] = {"EN\secops\artillery\secop_artillery_15"};
 SecOp_Artillery_Barrage_Response_4[] = {"EN\secops\artillery\secop_artillery_16"};
 SecOp_Artillery_Barrage_Response_5[] = {"EN\secops\artillery\secop_artillery_17"};
 SecOp_Artillery_Barrage_Response_6[] = {"EN\secops\artillery\secop_artillery_18"};
 SecOp_Artillery_Barrage_Response_7[] = {"EN\secops\artillery\secop_artillery_19"};
 SecOp_Artillery_Barrage_Response_8[] = {"EN\secops\artillery\secop_artillery_20"};
 SecOp_Artillery_Barrage_Response_9[] = {"EN\secops\artillery\secop_artillery_21"};
 SecOp_Artillery_Barrage_Unavailable_1[] = {"EN\secops\artillery\secop_artillery_22"};
 SecOp_Artillery_Barrage_Unavailable_2[] = {"EN\secops\artillery\secop_artillery_23"};
 SecOp_Artillery_Barrage_Unavailable_3[] = {"EN\secops\artillery\secop_artillery_24"};
 SecOp_Artillery_Barrage_OutOfRange_1[] = {"EN\secops\artillery\secop_artillery_25"};
 SecOp_Artillery_Barrage_OutOfRange_2[] = {"EN\secops\artillery\secop_artillery_26"};
 SecOp_Artillery_Barrage_OutOfRange_3[] = {"EN\secops\artillery\secop_artillery_27"};
 SecOp_Artillery_Barrage_OutOfRange_4[] = {"EN\secops\artillery\secop_artillery_28"};
 SecOp_Artillery_Barrage_Splash[] = {"EN\secops\artillery\secop_artillery_29"};
 SecOp_Artillery_Barrage_Shot[] = {"EN\secops\artillery\secop_artillery_30"};
 SecOp_Artillery_Barrage_RoundsComplete[] = {"EN\secops\artillery\secop_artillery_31"};
 SecOp_Artillery_Barrage_CheckFire1[] = {"EN\secops\artillery\secop_artillery_32"};
 SecOp_Artillery_Barrage_CheckFire2[] = {"EN\secops\artillery\secop_artillery_33"};
 SecOp_Artillery_Barrage_CheckFireResponse1[] = {"EN\secops\artillery\secop_artillery_34"};
 SecOp_Artillery_Barrage_CheckFireResponse2[] = {"EN\secops\artillery\secop_artillery_35"};
 SecOp_Artillery_Barrage_Interrupted1[] = {"EN\secops\artillery\secop_artillery_36"};
 SecOp_Artillery_Barrage_InterruptedResponse1[] = {"EN\secops\artillery\secop_artillery_37"};

Despite some of these being sentences they are defined as "class Words" entries, one needs to just refer to them as such.

Share this post


Link to post
Share on other sites

I can cut the files without problem, just send them to me and tell me what you need. I did stuff like that before.

Share this post


Link to post
Share on other sites

Great. This SecOp briefings looks promising. Maybe even there will be no need for cutting. Must test them first. Today I want to end voicecomms implementation into code, so at worst it will be a simplified version for now (easy to complete later), so as not to create unnecessary delays. Still waiting for me the last couple of implementations, and the last, big thing, the bigboss level. Also will try do something about code efficiency, it may prove neccessary for eight commanders, and still I have on mind this mentioned by CaptainBravo problem with cargo (vanilla demo mission with this problem may help a lot, CB). Well. To work then. :)

---------- Post added at 11:12 ---------- Previous post was at 10:46 ----------

Strange thing: it looks, like callsigns from SecOps works, and other SecOp phrases do not.

For example this:

    class Sentences
   { 

       class First
       {
           text = "STAND BY FOR NEW ORDERS.";
           speech[] = {"Frostbite"};
           class Arguments {};

       };

};

gives sound...

...and this not, only "beep":

    class Sentences
   { 

       class First
       {
           text = "STAND BY FOR NEW ORDERS.";
           speech[] = {"SecOp_Escort_Briefing_1"};
           class Arguments {};

       };

};

(tried also with SOM module on map and synchronized, same effect)

Oh, well, will do voices simplier for now, like I said, and will return to this later. Of course I'm all the time open for any ideas/help in this matter.

EDIT: for now it will be like this:

(text&beep): STAND BY FOR NEW ORDERS.

(text&sound): THIS IS HQ. MESSAGE. (over)

(text&sound): I'M ON IT!. (out) - or other randomized confirmation

(journal entry appears)

Edited by Rydygier

Share this post


Link to post
Share on other sites

Sounds very impressive! Although last version is a bit laggy, it is still impressive!

I noticed after a couple of missions, that as a squad leader, I only got orders from commander only once early in mission. My squad was set to first to respond. SO not sure what the orders are based on? Location? nearby squads/enemy units?

Out of curiousty what is the bigboss level?

Share this post


Link to post
Share on other sites
SO not sure what the orders are based on?

Time and kind of order depends on many factors, generaly on situation on battlefield. Is considered kind of your unit, its position relative to target, other groups available... And there will be no new order until first is complete or until you will stay without move long enough (code checks cyclically speed of unit, if is equal 0 numerous times, waypoint is called off it is some back up for "stuck" situations). So I'm for now not sure, if mentioned situation is proper, or there is some bug. Still in my tests human controlled team leader received many orders one after the other.

About big boss: this is some very promising concept linked with up to four leaderHQs per side option and limited control (each of them controls only part of units of given side). Bigboss is strategist and commands leaderHQs only (not their forces directly). He will be able to move objective markers and leaderHQ positions, will decide, when and where given leaderHQ should push forward, and when only defend position. Also will make one of leaderHQ's force a strategic reserve if needed, and so on. There are some difficulties with this (most of them with setting up sectors for given leaderHQs, so they should pay attention only what is going on in given to them sector, and not on rest of the map), but if I manage to implement this, will be great. BB level gives for example opportunity to implement requested differences in strategy between west and east factions (reserve management).

Edited by Rydygier

Share this post


Link to post
Share on other sites
Time and kind of order depends on many factors, generaly on situation on battlefield. Is considered kind of your unit, its position relative to target, other groups available... And there will be no new order until first is complete or until you will stay without move long enough (code checks cyclically speed of unit, if is equal 0 numerous times, waypoint is called off it is some back up for "stuck" situations). So I'm for now not sure, if mentioned situation is proper, or there is some bug. Still in my tests human controlled team leader received many orders one after the other.

About big boss: this is some very promising concept linked with up to four leaderHQs per side option and limited control (each of them controls only part of units of given side). Bigboss is strategist and commands leaderHQs only (not their forces directly). He will be able to move objective markers and leaderHQ positions, will decide, when and where given leaderHQ should push forward, and when only defend position. Also will make one of leaderHQ's force a strategic reserve if needed, and so on. There are some difficulties with this (most of them with setting up sectors for given leaderHQs, so they should pay attention only what is going on in given to them sector, and not on rest of the map), but if I manage to implement this, will be great. BB level gives for example opportunity to implement requested differences in strategy between west and east factions (reserve management).

For the orders, I have to say, I got on both ocassions HOLD orders and I moved to location waited 5 minutes or so them moved on before other orders were recieved. Maybe this was the issue, should have waited some more?

The big boss isea sounds very impressive!! But having 8 commanders, would that tax cpu resources more? less? Great concept though

Share this post


Link to post
Share on other sites
For the orders, I have to say, I got on both ocassions HOLD orders and I moved to location waited 5 minutes or so them moved on before other orders were recieved. Maybe this was the issue, should have waited some more?

Possible. Maybe just HAC do not needed you as long... :) HOLD is "idle" order, you can simply ingore this kind of orders if you wish and next will (should) appear regardless of moving/not moving. Idle orders may be simply interrupted any time by "serious action" order. For example in my test HAC issued me patrol order at secondary objective, but before I reach area, redirected me on recon. There was no enemy on map, so after recon completing (just reached point and waited for back up mission ending because of lack of movement), I was directed to objective capture mission and so on.

But having 8 commanders, would that tax cpu resources more?

It is possible and I afraid that (some efficiency tweak is planned for this reason), but maybe it will be not so bad, because total number of units on map is main factor here and this will not change.

Share this post


Link to post
Share on other sites

Will support units be implmented (or maybe already is?) for example medic assigned to platoon going out to heal injured units in different squads. Repeair truch going out to repeair other vheciles on battle field and ammo truck giving ammo support.

Transport is the only thing I can not get to work. Any example of large battle where enemy contact is not till later (5-10 minutes later) , and infantry using transport?

Share this post


Link to post
Share on other sites

What do you think about a lite version and a advance version.

-lite v:reduced script version, only Commander

-advance v: Medical & logistic, text&sound, Surrender , etc.....

Share this post


Link to post
Share on other sites
Will support units be implmented (or maybe already is?) for example medic assigned to platoon going out to heal injured units in different squads. Repeair truch going out to repeair other vheciles on battle field and ammo truck giving ammo support.

Support is implemented and cooperate with generic support system (support vehicle drive in area, where is needed, then units, that need support goes to vehicle, also support vehicles are grouped behind front when some allied units are between that point and enemy). HAC handles only support vehicles, not individual medics. Will try to set some ambulances/reammo or refuel and some wounded or damaged/without ammo vehicles in cargo demo. You have also teleport ability and you are indestructible. Also added HC module for additional HC markers (ctrl+space). Personality is randomized. Cargo and support is behind you, infantry in front. Enemy in sight, so attack missions starts immediately. About 3-4 cycle + 60 seconds should support markers appear. Tested few times, cargo trucks are all used. By the way found some quite new bug (idle orders are not issued for A side) but this will not affect demo clue.

Cargo Demo

---------- Post added at 14:12 ---------- Previous post was at 14:11 ----------

What do you think about a lite version and a advance version.

-lite v:reduced script version, only Commander

-advance v: Medical & logistic, text&sound, Surrender , etc.....

Cargo, support, bigboss, additional commander, surrendering,voice comms - it is/will be all optional and easy to turn on/off.

Share this post


Link to post
Share on other sites
Cargo, support, bigboss, additional commander, surrendering,voice comms - it is/will be all optional and easy to turn on/off.
good to hear :)

Share this post


Link to post
Share on other sites

About multiple commanders: maybe there should be an option to tie commander to area marker, so that commander will only issue orders inside the marker, somewhat like UPS. This way it will be possible to create fronts.

Share this post


Link to post
Share on other sites

Strange thing: it looks, like callsigns from SecOps works, and other SecOp phrases do not.

...

This, I suspect, is because the SecOp sentences such as this one "SecOp_Escort_Briefing_1" only has audio with the EN(glish) "male03" + "male05" voice. leaderHQ unit must be configured to accommodate this.

I assume this is where that description.ext probably comes handy afterall:

    class CfgIdentities
   {
       class leaderHQ
       {
           name = "leaderHQ";
           face = "Default";
           glasses = "BlackSun";
           speaker = "Male03EN"; // or "Male05EN"
           pitch = 1.0;
       };
   };

on the config side of things, maybe you will have to configure a unit specifically to pose as leaderHQ, this is the only way I see from here, in making sure in advance, to control which voice leaderHQ will be using.

This is grey area... I need to investigate further.

For reference

dubbing.pbo > config.bin (there is an issue here with character escaping - some slashes are not visible)

class CfgVoice
{
...
class Male03EN: EN
{
 // The following "protocol" and "identityTypes" are inherited from the base "EN" class
 protocol = "RadioProtocolEN";
 identityTypes[] = {"default","Head_USMC","Head_USMC_CO","Head_USMC_Camo","Head_USMC_CO_Camo","Head_Default","Head_Special"};
 // The "directories" is what allows to check which place the audio files are and if they exist for a specific sentence
 directories[] = {"\ca\dubbing\GLOBAL\RADIO\Male03\","\ca\dubbing\GLOBAL\RADIO\Male03\\"};
};
class Male05EN: EN
{
 directories[] = {"\ca\dubbing\GLOBAL\RADIO\Male05\","\ca\dubbing\GLOBAL\RADIO\Male05\"};
};
...
};

Edited by gammadust

Share this post


Link to post
Share on other sites

×