From 68d4c9bbd80ed2e6528244569c79676b87295bd1 Mon Sep 17 00:00:00 2001 From: hybrid Date: Thu, 11 Jun 2026 19:54:45 +0300 Subject: init --- Client/kb/hq.bikb | 190 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ Client/kb/hq.fsm | 110 +++++++++++++++++++++++++++++++ Client/kb/hq.sqf | 1 + 3 files changed, 301 insertions(+) create mode 100644 Client/kb/hq.bikb create mode 100644 Client/kb/hq.fsm create mode 100644 Client/kb/hq.sqf (limited to 'Client/kb') diff --git a/Client/kb/hq.bikb b/Client/kb/hq.bikb new file mode 100644 index 0000000..221bba8 --- /dev/null +++ b/Client/kb/hq.bikb @@ -0,0 +1,190 @@ +#define SENTENCE(NAME) \ + class NAME \ + { \ + text = $STR##NAME##; \ + speech[] = {%1,##NAME##,%2}; \ + class Arguments {class 1 {type = "simple";};class 2 {type = "simple";};}; \ + }; + +#define SENTENCE1(NAME) \ +class NAME \ +{ \ + text = $STR##NAME##; \ + speech[] = {##NAME##,%1,%2}; \ + class Arguments {class 1 {type = "simple";};class 2 {type = "simple";};}; \ +}; + + +#define SENTENCE_KEY(NAME,KEY) \ + class NAME \ + { \ + text = $##KEY##; \ + speech[] = {%1, ##NAME##, %2}; \ + class Arguments {class 1 {type = "simple";};class 2 {type = "simple";};}; \ + }; + + +class Sentences +{ + + class Test {text = "Test"; speech[] = {lopotev_present_in_hideout_1_R_1}; class Arguments {};}; + + + + class HQ {text = $STR_DN_WARFARE_HQ_BASE_UNFOLDED; speech[] = {HQ}; class Arguments {};}; + /* + + class 20MinutesLeft {text = "$20MinutesLeft"; speech[] = {20MinutesLeft}; class Arguments {};}; + class 5MinutesLeft {text = "$5MinutesLeft"; speech[] = {5MinutesLeft}; class Arguments {};}; + + + class Captured + { + text = $STRwftowncaptured; + speech[] = {%1, Captured}; + class Arguments {class 1 {type = "simple";};}; + }; + + */ + class CapturedNear + { + text = "%1 captured near %2"; + speech[] = {%1, CapturedNear, %2}; + class Arguments + { + class 1 {type = "simple";}; + class 2 {type = "simple";}; + }; + }; + class LostAt + { + text = "%1 lost at %2"; + speech[] = {%1, LostAt, %2}; + class Arguments {class 1 {type = "simple";};class 2 {type = "simple";};}; + }; + class OrderSent + { + text = "%1 %2, %3"; + speech[] = {%1 ,%2 ,%3}; + class Arguments { + class 1 {type = "simple";}; + class 2 {type = "simple";}; + class 3 {type = "simple";}; + class 4 {type = "simple";}; + }; + }; + class OrderSentAll + { + text = "%1, %2, %3"; + speech[] = {%1 ,%2 ,%3}; + class Arguments { + class 1 {type = "simple";}; + class 2 {type = "simple";}; + class 3 {type = "simple";}; + }; + }; + class OrderDone + { + text = "%1, %2 %3 %4"; + speech[] = {%1 ,%2 ,%3 ,%4}; + class Arguments { + class 1 {type = "simple";}; + class 2 {type = "simple";}; + class 3 {type = "simple";}; + }; + }; + class simple + { + text = "%1"; + speech[] = {%1}; + class Arguments { + class 1 {type = "simple";}; + }; + }; + class ExtractionTeam + { + text = "This is HQ, %1 is on the way, out."; + speech[] = {ThisIs, HQ, %1, Is, OnTheWay, Out}; + class Arguments { + class 1 {type = "simple";}; + }; + }; + class ExtractionTeamCancel + { + text = "This is HQ, Abort the op, %1 is in danger, out."; + speech[] = {ThisIs, HQ, aborttheop, %1, Is, In, DangerE, Out}; + class Arguments { + class 1 {type = "simple";}; + }; + }; + class MMissionFailed + { + text = "This is HQ, Mission Failure, carry on with your prior tasks, over."; + speech[] = {ThisIs, HQ, MissionFailure, CarryOnWithYourPriorTasksOver}; + class Arguments {}; + }; + class MMissionComplete + { + text = "This is HQ, %1"; + speech[] = {ThisIs, HQ, %1}; + class Arguments { + class 1 {type = "simple";}; + }; + }; + + SENTENCE(10MinutesLeft) + SENTENCE(20MinutesLeft) + SENTENCE(5MinutesLeft) + SENTENCE(Accomplished) + + SENTENCE_KEY(BaseUnderAtack,STRwfbaseunderattack) + SENTENCE(Cancelled) + SENTENCE(CanDoWereOnIt) + SENTENCE(Captured) + SENTENCE_KEY(HC_OrderReceived,"Order Received") + SENTENCE1(CiviliansUnderEnemyFireIn) + SENTENCE_KEY(Constructed,STRwfstructureconstructed) + SENTENCE(Deployed) + SENTENCE_KEY(Destroyed,STRwfbasestructuredestroyed) + SENTENCE(EnemyBaseLocated) + SENTENCE(EnemyForcesDetected) + SENTENCE(Failed) + SENTENCE1(HostilesDetectedNear) + SENTENCE1(Insufficient) + SENTENCE_KEY(IsUnderAttack,STRwftownunderattack) + + SENTENCE(Lost) + + SENTENCE(Mobilized) + SENTENCE(NegativeWeCannotDivert) + SENTENCE(NewIntelAvailable) + SENTENCE(NewMissionAvailable) + SENTENCE(NewSupportAvailable) + + SENTENCE_KEY(UnderAttack,STRisunderattack) + SENTENCE_KEY(VotingForNewCommander,STRwfvoteforcommanderinprogress) + + + //((( TESTING SENTENCES ONLY (normally used ONLY as parameters to other sentences) + SENTENCE(AntiAirRadar) + SENTENCE(ArtilleryBattery) + SENTENCE(ArtilleryRadar) + SENTENCE_KEY(Barracks,STRwfbarracks) + SENTENCE(Funds) + SENTENCE(Headquarters) + SENTENCE(HeavyVehicleSupply) + SENTENCE(Helipad) + SENTENCE(LightVehicleSupply) + SENTENCE(Mission) + SENTENCE(Resources) + SENTENCE(ServicePoint) + SENTENCE(Strongpoint) + //SENTENCE(Strongpoint_alt) + SENTENCE(Supplies) + SENTENCE(UAVTerminal) + //))) END of testing sentences +}; +class Arguments{}; +class Special{}; +startWithVocal[] = {hour}; +startWithConsonant[] = {europe, university}; \ No newline at end of file diff --git a/Client/kb/hq.fsm b/Client/kb/hq.fsm new file mode 100644 index 0000000..6e3c116 --- /dev/null +++ b/Client/kb/hq.fsm @@ -0,0 +1,110 @@ +/*%FSM*/ +/*%FSM*/ +/* +item0[] = {"React",0,250,-675.000000,-1800.000000,-575.000000,-1750.000000,0.000000,"React"}; +item1[] = {"",7,210,-625.645081,-1628.257446,-617.645203,-1620.257446,0.000000,""}; +item2[] = {"__",8,218,-775.000000,-1650.000000,-675.000000,-1600.000000,0.000000,"-"}; +item3[] = {"END",1,250,-775.000000,-1575.000000,-675.000000,-1525.000000,0.000000,"END"}; +item4[] = {"Come_on__come",4,218,-525.000000,-1525.000000,-225.000000,-1475.000000,1.000000,"Come on, come"}; +item5[] = {"___Nervous_anim",1,250,-175.000000,-1500.000000,125.000000,-1450.000000,0.000000,"< Nervous anim >" \n "No more!"}; +item6[] = {"___Interrupted_",4,218,-525.000000,-1650.000000,-225.000000,-1600.000000,1.000000,"< Interrupted >"}; +item7[] = {"Come_on__come",1,250,-175.000000,-1625.000000,125.000000,-1575.000000,0.000000,"Come on, come"}; +link0[] = {0,1}; +link1[] = {1,2}; +link2[] = {1,4}; +link3[] = {1,6}; +link4[] = {2,3}; +link5[] = {4,5}; +link6[] = {6,7}; +globals[] = {25.000000,1,0,1,16777215,640,480,2,361,6316128,1,-785.646118,299.399323,-517.653870,-1918.175049,681,879,1}; +window[] = {2,-1,-1,-1,-1,790,54,1076,54,3,701}; +*//*%FSM*/ +class FSM +{ + fsmName = "WF_HQ"; + class States + { + /*%FSM*/ + class React + { + name = "React"; + init = /*%FSM*/"if (isNil ""BIS_DEBUG_DIALOG"") then {} else" \n "{" \n " debugLog format[""DIALOG- FSM of %1 initiated by %2 sentenceId %3 sentence %4"",_this,_from, _sentenceId, localize (""STR_""+""_sentenceId"")];" \n "};"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class Come_on__come + { + priority = 1.000000; + to="___Nervous_anim"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(_sentenceId in [""Cooper_ComeOnWithMe""]);"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class ___Interrupted_ + { + priority = 1.000000; + to="Come_on__come"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"(_sentenceId in [""Interrupted""]);"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class __ + { + priority = 0.000000; + to="END"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"true"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class END + { + name = "END"; + init = /*%FSM*/""/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + }; + }; + /*%FSM*/ + /*%FSM*/ + class ___Nervous_anim + { + name = "___Nervous_anim"; + init = /*%FSM*/"_this doWatch _from;" \n "DEBUGLOG ""CooperGalkinaScene.fsm: START-----------------------------------"";" \n "" \n "DEBUGLOG ""Galkina is NERVOUS and ESCAPING"";" \n "_t = time;" \n "[] spawn" \n "{" \n " _nic = [objNull, BIS_civWoman, rPLAYMOVENOW, ""Cwmn_GalkinaLiesNervousThenRun""] call RE;" \n " DEBUGLOG ""sceneGalkina.sqf: Animation: Cwmn_GalkinaLiesNervousThenRun"";" \n " _BIS_civWomanDone = BIS_civWoman addEventHandler [""AnimDone"", " \n " { " \n " //DEBUGLOG format[""%1 animdone: %2"", _this select 0, _this select 1];" \n " " \n " //BIS_civWoman enableAI ""ANIM"";" \n " //BIS_civWoman setSpeedMode ""FULL"";" \n " " \n " _nic = [objNull, BIS_civWoman, rPLAYMOVENOW, ""AmovPercMrunSnonWnonDf""] call RE;" \n " _womanDir = (getDir BIS_civWoman) - 180;" \n " BIS_civWoman setdir _womanDir;" \n " _GalkinaEscapePoints = [""BIS_civWomanPositionEnd2a"", ""BIS_civWomanPositionEnd2b"", ""BIS_civWomanPositionEnd2c""];" \n " _GalkinaSelectedPoint = _GalkinaEscapePoints select floor(random (count _GalkinaEscapePoints)); " \n " DEBUGLOG format[""grpCIVWoman.fsm: Galkina ESCAPING on random point: %1"",_GalkinaSelectedPoint];" \n " " \n " //CREATE END TRIGGER " \n " _trgGalkinaEnd2=createTrigger[""EmptyDetector"",getMarkerPos _GalkinaSelectedPoint];" \n " _trgGalkinaEnd2 setTriggerArea[5,5,0,false];" \n " _trgGalkinaEnd2 setTriggerActivation[""MEMBER"",""PRESENT"",true];" \n " _trgGalkinaEnd2 triggerAttachVehicle [BIS_civWoman];" \n " _trgGalkinaEnd2 setTriggerStatements" \n " [" \n " ""this"", " \n " ""DEBUGLOG """"grpCIVWoman.fsm: Galkina reached her end position"""";BIS_civWoman setUnitPos """"DOWN""""; ""," \n " """"" \n " ]; " \n " " \n " BIS_civWoman doMove getMarkerPos _GalkinaSelectedPoint;" \n " BIS_civWoman forceSpeed 15;" \n " BIS_civWoman removeEventHandler [""animDone"", 0];" \n " }" \n " ];" \n " sleep 7;" \n " _nic = [objNull, BIS_civWoman , rKBTELL, BIS_cooper, ""CooperGalkinaScene"", ""Galkina_NoNoMore""] call RE;" \n "};"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + }; + }; + /*%FSM*/ + /*%FSM*/ + class Come_on__come + { + name = "Come_on__come"; + init = /*%FSM*/"_nic = [objNull, _from , rKBTELL, _this, _topic, ""Cooper_ComeOnWithMe""] call RE;" \n "" \n "_this doWatch _from;" \n "DEBUGLOG ""CooperGalkinaScene.fsm: START-----------------------------------"";"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + }; + }; + /*%FSM*/ + }; + initState="React"; + finalStates[] = + { + "END", + "___Nervous_anim", + "Come_on__come" + }; +}; +/*%FSM*/ \ No newline at end of file diff --git a/Client/kb/hq.sqf b/Client/kb/hq.sqf new file mode 100644 index 0000000..d3f5a12 --- /dev/null +++ b/Client/kb/hq.sqf @@ -0,0 +1 @@ + -- cgit v1.3.1