Jump to content

MOOSE - Mission Object Oriented Scripting Framework


Recommended Posts

Seems to work fine! Just changed the Moose.lua and ran my latest project with RAT and A2A.Dispatcher and looks like it works fine. Only thing is the F10 Map no longer showing spawned planes, but need to check if they are not hidden etc.

So if you don't see any plane symbols while testing in F10, switch through F2 views and verify the planes spawn.

Thanks. Good news!

 

Sent from my SM-G975U1 using Tapatalk

Link to comment
Share on other sites

2.5.6 hotfix holding firm.

I'm adding the 7 new airfields to Normandy as they are absent and this would affect RAT, ATC, any AIRBASE type lookup on the missing airbase and a bunch of possible things. Just waiting for the pushes to go through. Additionally there's been some ATIS fixes from Entropy and Frank to tune ATIS a bit better.

 

Because of the high state of change of MOOSE the 2.5pre release is pending ED's rapid development on OB and we should wait until things settle for the merge to stable. But its stil due whenever we can.

___________________________________________________________________________

SIMPLE SCENERY SAVING * SIMPLE GROUP SAVING * SIMPLE STATIC SAVING *

Link to comment
Share on other sites

Update: Sierra99 (sorry no finders fee for bugs :P) discovered NTTR is pretty messed up for Airbase ID's

 

Tonopah Airport == Pahute Mesa

TTR == Tonopah Airport

Pahute mesa Airstrip == North Las Vegas

so far, probably more but didnt want to wreck my weekend again with fixing things that might get hotfixed back so Just beware if you use RAT or A2A_Dispatcher and things that use the Airbases by name, things will spawn in unexpected places.

that was just for starters. Not sure if ED will fix this

___________________________________________________________________________

SIMPLE SCENERY SAVING * SIMPLE GROUP SAVING * SIMPLE STATIC SAVING *

Link to comment
Share on other sites

Just tested Moose fix for spawning and it doesn't work. No planes was spawned hot ramp start in mission when I replaced Moose.lua

 

Mission in question https://www.digitalcombatsimulator.com/en/files/3307155/?sphrase_id=22069912

 

Ignore missing loadouts, warehouses needs to be redone.

You mean on NTTR? Haven't tested but on Caucasus new Moose works flawlessly.
Link to comment
Share on other sites

It's this that absolutely infuriates me. If it's f$ckin broke, fix it.

 

Thanks for all of your work on this.

 

Sent from my SM-G975U1 using Tapatalk

 

 

It's changed rather than broken, and likely no one at ED anticipates the importance to some people of a seemingly minor ID. (That's actually a trend with the under the hood stuff). They also shuffled the event ID's. The thing is, I have no idea why, on some of these changes, it's not like an Airbase or an event works better if its called an apple or an orange.

 

 

Crazy stuff.

 

I'd like to have fixed it last night but I just dont have the knowledge of some of the folks, i'm just a guy that started using this stuff a few years ago and began to pick things up. BUt it's important to me and my hobby so I'll keep at it.

___________________________________________________________________________

SIMPLE SCENERY SAVING * SIMPLE GROUP SAVING * SIMPLE STATIC SAVING *

Link to comment
Share on other sites

OK about the current MOOSE scripting issues affecting airbase spawning for A2A_Dispatcher, RAT and SpawnAtAirbase().

 

DESCRIPTION OF THE ISSUE

In 2.5.6 ED changed what was returned by Airbase.getID so that code using that ID would either spawn planes to explode, or at a completely different airbase.

 

Airbase.ID is a small integer that maps to an airbase instead of a friendly name, and is required in a group template when creating a spawn template for a plane starting from the ground. Moose Modules using that are the Disaptchers which can choose airbases dynamically, RAT, which does the same and the core function of SpawnAtAirbase(). The principal difference between Mist and MOOSE with Spawning is that Mist expects you to write out the template table for the spawn by hand, and MOOSE just copies a late activated group you put down in the mission and alters it. Mist users would need to identify the ID manually anyway and would quickly realise that their plane ended up somewhere unexpected or plain blew up. MOOSE, because of that automation, suffers, because it operates things where spawning happens automagically by prebuilding those templates, thus has a reliance on the getID at a deeper level.

 

Since 2.5.6, Airbase:getID() stopped giving us the airbases ID and decided it would give us the airdrome ID (?name) which looks like 500001 and up. There is no correlation between the airbase ID and the airdrome id. In the table 'world.getAirbases', the table returned gives you an Index and the airdrome ID. Like {[1] = 500009}. The mission editor however will still happily go and fill the correct airbase.ID in the mission file (which is why you dont see this issue more prevalently), but the getID() scripting function gives us magic beans instead.

 

Having said that, at first glance the index of the table did mostly resolve to the airbase.ID. Mostly. And this kept us excited for a couple of days as we hoped there was an easy workaround. But then the exceptions came in. Exceptions were, Caucasus, where you can add 11 to that index to get the id, NTTR which is AFU (airposts crossed over like Pahute Mesa, N Las Vegas, Tonopah are crossed). Whilst Jean just didnt want to talk. And then, possibly some others which no one reported, we stopped looking for them.

 

WHAT WE DISCUSSED

We could (but wont just yet) do some kind of static mapping and enumerator table for all the new airbase ID's, so SpawnAtAirbase() can look them up. It would involve a decent amount of rewriting and effort, because not only that, you would have to write it into MOOSE as "Yet Another Branch", confuse people and maintain two codebases whilst invalidating anyone who was sensibly working on DCS v2.5.5 and under. They clearly don't deserve to be infected with OB woes. And then... it can/will be subject to ED changing some or all of it without notice. It's just not backwards compatible with the way Spawn is written.

 

DECISION

Given that making another dev branch of MOOSE was confusing enough for the last few years to newcomers, that we owe it to the people not testing Beta and that we should honour that stability as a fundamental point, it would be ethically and intellectually wrong to make a huge effort to workaround this problem for this 2.5.6 branch, at least whilst it was in the process of so much change, and not backwards compatible in design (at least, simply)

 

So, I'm sorry to the folks on NTTR that can't get RAT or A2A_Dispatcher to perform as it has been before on 2.5.5, but for now and until we know what ED might do, there will be no MOOSE branch of code that will create a workaround for this. Most Airbases work though and Frank did a good job of patching the alternative that gambles on the index number and happily gets it wrong if its wrong.

 

MITIGATION & UNKNOWNS

In mitigation, MOOSE is open source. If you want to pull your own branch with a temporary fix, you will need to manually map every single airbase ID (you will have to create a plane at every airport in the game, read the airbase ID for it and create a lookup table), then you will need to create a custom function in the SpawnAtAirbase method to getREALairbaseID() using the table you made, swap out the parts that use ED's getID method and all shoud be good until it changes again. Possibly next week, but who knows. I should remind everyone that we don't know how ED view this problem, if at all. Scripting issues don't get prioritised highly unless something they need depends on it. If 2.5.6 reaches a position of a stable branch, without any movement regarding the getID issues then we go back to workaround territory and redesign.

 

That's as much as I know and I don't really have any deeper understanding of this, or why it was changed or better ideas for fixing it and not breaking anything before next week. NTTR will remain possessed by Alien technology that can portal your planes for a while to come.

___________________________________________________________________________

SIMPLE SCENERY SAVING * SIMPLE GROUP SAVING * SIMPLE STATIC SAVING *

Link to comment
Share on other sites

do you guys have any recommendations to simulate airport runway damage and disable AI_A2A_Dispatcher Squadrons assigned to that airport. i've searched around but could only find some vague ideas. do i need to catch an event or do runways have a health value that i can check against in a script? how do i stop a squadron on an airbase? is it an option to disable the squadron by assigning an amount of 0 planes after runway bombing? would appreciate any tips, thanks!

Link to comment
Share on other sites

Gone through this thread and learned lots. Set up some missions adding Airboss, got it all working except the "Boss" wont recognize my pass through the initial. I've bumped up altitude a bit to 1500 and tried everything from 500 to 1500.

Used the smoke markers, tried speeds from 250 to 400, hook up, hook down...even started catching a few good 3 wires...but each pass is "Invalid" "Your next step should of been initial...."

 

I get no further comms past the commence until after I land so something must be failing at that point...any tips?

Link to comment
Share on other sites

do you guys have any recommendations to simulate airport runway damage and disable AI_A2A_Dispatcher Squadrons assigned to that airport. i've searched around but could only find some vague ideas. do i need to catch an event or do runways have a health value that i can check against in a script? how do i stop a squadron on an airbase? is it an option to disable the squadron by assigning an amount of 0 planes after runway bombing? would appreciate any tips, thanks!

 

The most obvious answer is to create an instance of A2A Dispatcher for each base and use AI_A2A_DISPATCHER:Stop() to stop it when the base is damaged.

 

I have no clue how well that would run if you are doing a bunch of bases

 

 

 

 

EDsignaturefleet.jpg

Link to comment
Share on other sites

do you guys have any recommendations to simulate airport runway damage and disable AI_A2A_Dispatcher Squadrons assigned to that airport. i've searched around but could only find some vague ideas. do i need to catch an event or do runways have a health value that i can check against in a script? how do i stop a squadron on an airbase? is it an option to disable the squadron by assigning an amount of 0 planes after runway bombing? would appreciate any tips, thanks!

No need to simulate it. If the runway is destroyed, it wrecks DCS AI, they wont taxi. What you have to do in fact is stop the spawning disaster after that. The way is through an event Handler set to look for the death of the runway. When that fires, recall the Squadron line with Zero as the number of planes and they will stop.

___________________________________________________________________________

SIMPLE SCENERY SAVING * SIMPLE GROUP SAVING * SIMPLE STATIC SAVING *

Link to comment
Share on other sites

Gone through this thread and learned lots. Set up some missions adding Airboss, got it all working except the "Boss" wont recognize my pass through the initial. I've bumped up altitude a bit to 1500 and tried everything from 500 to 1500.

Used the smoke markers, tried speeds from 250 to 400, hook up, hook down...even started catching a few good 3 wires...but each pass is "Invalid" "Your next step should of been initial...."

 

I get no further comms past the commence until after I land so something must be failing at that point...any tips?

 

 

When you are told you _can_ commence you actually have to use the menu to say you _are_ commencing. Nothing triggers without indicating. You drop out of marshall as per the diagrams and run in on initials from 3nm astern on the starboard side. As you run in, Marshall will give a call on checking hook down. if you dont get that call at least a couple of nm away then you have somehow lined up wrong or not informed you are commencing.

___________________________________________________________________________

SIMPLE SCENERY SAVING * SIMPLE GROUP SAVING * SIMPLE STATIC SAVING *

Link to comment
Share on other sites

Thanks, Just want to say thanks for all this Moose work you've done. Top shelf stuff!

 

I traced the error to my recovery windows I was using (borrowed from another airboss file..)

 

Now trying to get RescueHelo and trap sheets enabled. Neither working. The helo just doesn't appear (anywhere..) I have the helo in the ME, named properly and late activated.

For Trap sheet logging I dont see any .csv files generated. I get the LSO grades during the mission. If i try try turning trapsheet on in the airboss game menu I get "trap sheet data recorder broken on this carrier". I assume there is a setting I'm missing to turn the data recorder on?

 

Desanitized missionscripting as per recommendation

 

Here is my attempt:

 

RescueheloStennis=RESCUEHELO:New(UNIT:FindByName("USS Stennis"),"LIFEGUARD")

RescueheloStennis:SetTakeoffHot()

RescueheloStennis:Start()

 

 

local AirbossStennis = AIRBOSS:New( "USS Stennis" ) -- UNIT name of CVN

AirbossStennis:SetSoundfilesFolder("Airboss Soundfiles/")

AirbossStennis:SetMenuSingleCarrier()

AirbossStennis:SetUserSoundRadio()

AirbossStennis:Save()

AirbossStennis:SetTrapSheet()

AirbossStennis:SetAutoSave()

 

AirbossStennis:SetMenuRecovery(30, 20, false)

local window1 = AirbossStennis:AddRecoveryWindow( "6:00", "22:00", 1 ) -- 1 == Case 1

 

-- AirbossStennis:SetAirbossNiceGuy( true ) -- Optional use

 

AirbossStennis:Start()


Edited by Reccelow
added desanitazation comment
Link to comment
Share on other sites

It works for me:

 

_SETTINGS:SetPlayerMenuOff()  

local AirbossStennis=AIRBOSS:New("USS Stennis", "Forrestal")
local window1=AirbossStennis:AddRecoveryWindow("8:00", "12:30", 1, nil)
local window2=AirbossStennis:AddRecoveryWindow("12:31", "19:00", 1, nil)
local window3=AirbossStennis:AddRecoveryWindow("19:00", "22:30", 3, nil)
AirbossStennis:SetSoundfilesFolder("Airboss Soundfiles/")
AirbossStennis:SetMenuSingleCarrier()
AirbossStennis:SetMenuRecovery(30, 20, false)
AirbossStennis:SetDespawnOnEngineShutdown()
AirbossStennis:Load()
AirbossStennis:SetAutoSave()
AirbossStennis:SetTrapSheet()
AirbossStennis:SetMaxSectionSize(4)
AirbossStennis:Start()

function tanker:OnAfterStart(From,Event,To)
 AirbossStennis:SetRecoveryTanker(tanker)  
 AirbossStennis:SetRadioRelayLSO(self:GetUnitName())
end

function awacs:OnAfterStart(From,Event,To)
 AirbossStennis:SetRecoveryTanker(tanker)  
end

function rescuehelo:OnAfterStart(From,Event,To)
 AirbossStennis:SetRadioRelayMarshal(self:GetUnitName())
end

function AirbossStennis:OnAfterLSOGrade(From, Event, To, playerData, grade)
 local PlayerData=playerData --Ops.Airboss#AIRBOSS.PlayerData
 local Grade=grade --Ops.Airboss#AIRBOSS.LSOgrade
   
 local score=tonumber(Grade.points)
 local name=tostring(PlayerData.name)
 env.info(string.format("Player %s scored %.1f", name, score))
end

Specialization A-10C

https://vbw304.pl/

Link to comment
Share on other sites

Thanks, Just want to say thanks for all this Moose work you've done. Top shelf stuff!

 

I traced the error to my recovery windows I was using (borrowed from another airboss file..)

 

Now trying to get RescueHelo and trap sheets enabled. Neither working. The helo just doesn't appear (anywhere..) I have the helo in the ME, named properly and late activated.

For Trap sheet logging I dont see any .csv files generated. I get the LSO grades during the mission. If i try try turning trapsheet on in the airboss game menu I get "trap sheet data recorder broken on this carrier". I assume there is a setting I'm missing to turn the data recorder on?

 

Desanitized missionscripting as per recommendation

 

Here is my attempt:

 

RescueheloStennis=RESCUEHELO:New(UNIT:FindByName("USS Stennis"),"LIFEGUARD")

RescueheloStennis:SetTakeoffHot()

RescueheloStennis:Start()

 

 

local AirbossStennis = AIRBOSS:New( "USS Stennis" ) -- UNIT name of CVN

AirbossStennis:SetSoundfilesFolder("Airboss Soundfiles/")

AirbossStennis:SetMenuSingleCarrier()

AirbossStennis:SetUserSoundRadio()

AirbossStennis:Save()

AirbossStennis:SetTrapSheet()

AirbossStennis:SetAutoSave()

 

AirbossStennis:SetMenuRecovery(30, 20, false)

local window1 = AirbossStennis:AddRecoveryWindow( "6:00", "22:00", 1 ) -- 1 == Case 1

 

-- AirbossStennis:SetAirbossNiceGuy( true ) -- Optional use

 

AirbossStennis:Start()

 

Check the Unit name of the Carrier. Does the Carrier TACAN work? It uses the unit name. Make sure that unit name is what is in your script if the TACAN is working.

 

 

 

 

EDsignaturefleet.jpg

Link to comment
Share on other sites

I would certianly verify the names, especially with respect to UNIT and GROUP names and case sensitivity.

Rescue Helo is misbehaving since 2.5.6 released, best to avoid it, it can land and not take off and similar.

___________________________________________________________________________

SIMPLE SCENERY SAVING * SIMPLE GROUP SAVING * SIMPLE STATIC SAVING *

Link to comment
Share on other sites

I would certianly verify the names, especially with respect to UNIT and GROUP names and case sensitivity.

Rescue Helo is misbehaving since 2.5.6 released, best to avoid it, it can land and not take off and similar.

 

I haven't had any problems with rescue helo, recovery tankers or carrier AWACS in 2.5.6

 

 

 

 

EDsignaturefleet.jpg

Link to comment
Share on other sites

I haven't had any problems with rescue helo, recovery tankers or carrier AWACS in 2.5.6

 

 

Be very happy then! 2 folks reported RH coming to a standstill on the deck and fouling it by staying down. I've also seen a recovery tanker decide to try to take off from an Oil rig. The code hasnt been changed, DCS can do some weird things.

___________________________________________________________________________

SIMPLE SCENERY SAVING * SIMPLE GROUP SAVING * SIMPLE STATIC SAVING *

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...