Lua in Command tutorial 1

Post new mods and scenarios here.

Moderator: MOD_Command

Tomcat84
Posts: 1952
Joined: Wed Jul 10, 2013 5:13 pm

Lua in Command tutorial 1

Post by Tomcat84 »

edit: the attached scenario uses an old DB that does not work on current versions. See this post #27 further in this thread to download a file with an updated DB that works in CMO

Hey all,

I've made a tutorial in closed beta showcasing some of the basic new Lua functionality that the next patch will bring to Command. Although the patch is not out yet (and as such you cannot do anything yet with the attached scenarios in your public build), I asked the Devs and they thought it might be nice to already publish it so you guys can get a sneak preview of some of the upcoming functionality and start thinking of ideas on its usage.

The functionality mostly applies to scenario designers as it gives more tools to build an interesting AI opponent. So if you only play scenarios and dont build any you might find it less interesting, but still, you could get an idea of what you can face in future scenarios [:)]

Note that there are two bugs in this video that are already fixed, one being that in a certain script the Inherit function only worked if typed in all caps INHERIT. That is since fixed.

The other is that AddSubmarine actually added a surface ship! Also already fixed.

You can find the video tutorial HERE


The scripts used in this tutorial are:

ScenEdit_AddShip('Blue', 'USS Kidd', 960, 'DEG', 'N38.50.15', 'E6.50.00')
Adds a Ship with Database 960 (a version of the Kidd class) to the Blue side as USS Kidd at the included location

ScenEdit_SetEMCON('Side', 'Blue', 'Radar=Active')
Changes the Blue Side's radar setting to Active side wide

ScenEdit_SetEMCON('Unit', 'USS Ticonderoga', 'Radar=Passive;Sonar=Active')
Changes the unit named USS Ticonderoga Emcon to radar Passive, sonar Active

ScenEdit_AssignUnitToMission('USS Kidd', 'Transit')
Assigns the unit named USS Kidd to the mission named Transit

ScenEdit_SetEMCON('Mission', 'Transit', 'Inherit;Radar=Active')
First clears the mission Transit Emcon setting to current side settings to get a fresh start, then modifies radar to Active

ScenEdit_SetSidePosture('Blue', 'Red', 'H')
Sets the Blue side posture towards Red as hostile i.e. Blue now considers Red hostile and will engage Red units. Red still thinks everything is just fine (i.e. sees blue as neutral)

ScenEdit_SetSidePosture('Friends', 'Blue', 'N')
Sets the Friends' posture towards Blue to neutral. So No change to what Blue thinks but Friends now think Blue are just neutral and not friends anymore. Blue loses information that it previously got from Friends.

ScenEdit_SetWeather(10, 5, 0.3, 2)
Changes the weather to average temperature 10 degrees C, rainfall rate 5 (out of 50), clouds 0.3 (out of 1.0) and sea state 2 (out of 9)

ScenEdit_AddFacility('Blue', 'Base', 1592, 69, 'DEG', 'N39.18.25', 'E8.40.45')
Adds a certain single unit airfield with orientation 069 degrees

ScenEdit_AddSubmarine('Blue', 'USS Dallas', 533, 'DEG', 'N38.45.54', 'E6.43.22')
Adds a submarine at location

ScenEdit_AddAircraft('Blue', 'Viper #1', 3833, 19355, 'DEG', 'N38.20.30', 'E5.31.00')
Adds an F-16 at location with specific loadout

ScenEdit_AssignUnitToMission('USS Kidd', 'none')
Unassigns the USS Kidd from any mission



You can also find some info on how the scripts work on Baloogan's site: http://wiki.baloogancampaign.com/index.php/CommandLua

I hope you enjoy this tutorial and find it useful, and appreciate the sneak peek. Meanwhile I am working on a part 2 that will not just show the functions, but show how to implement them in a fully functioning scenario and give you an idea of what you can usefully do with it to make a more interesting AI.

Other than that let it also be noted that more Lua improvements are in the works, either for the next patch or the one that will come after. When they do show up I plan to provide additional tutorials to cover it.

Lastly let me note again for now that the attached scenarios are NOT COMPATIBLE with your current public build. You'll have to wait :)

But once you have it, you'll find there is one base scenario that the tutorial starts with, and one completed one that has everything setup and which you can reference in case something doesn't work, or to hit play and see in three minutes what happens.

The video features time links to the parts that cover specific scripts in the description (hit show more) in case my excessive talking bores you [:'(].

Let me know what you think! [:)]



Attachments
LuainCom..torial1.zip
(24.69 KiB) Downloaded 209 times
My Scenarios and Tutorials for Command

(Scenarios focus on air-warfare :) )
Meroka37
Posts: 268
Joined: Fri Jul 31, 2009 6:12 am

RE: Lua in Command tutorial 1

Post by Meroka37 »

Thanks for the work.
'Better honor without ships, than ships without honor"
User avatar
Randomizer
Posts: 1497
Joined: Sat Jun 28, 2008 8:31 pm

RE: Lua in Command tutorial 1

Post by Randomizer »

I'll bite; what's a Lua?

-C
User avatar
warshipbuilder
Posts: 2660
Joined: Sat Feb 23, 2013 8:52 pm
Location: C-eh-n-eh-d-eh

RE: Lua in Command tutorial 1

Post by warshipbuilder »

I think it is some kind of programming language.
warshipbuilder

Any ship can be a minesweeper, once.
ED/BTR Ressurection Project
https://www.bombercommandmuseumarchives.ca/
User avatar
Randomizer
Posts: 1497
Joined: Sat Jun 28, 2008 8:31 pm

RE: Lua in Command tutorial 1

Post by Randomizer »

Ah, seen. Cannot say that I'm a huge fan of posting feature tutorials in advance of the update containing those features but thanks anyway.

-C
Vici Supreme
Posts: 559
Joined: Wed Dec 04, 2013 6:06 pm
Location: Southern Germany

RE: Lua in Command tutorial 1

Post by Vici Supreme »

Doesn't looks too complicated. Major thanks to you and the devs! (Especially for including the E-3G I spotted there [:D])

Supreme
Image
nogravity
Posts: 51
Joined: Fri Jun 15, 2012 12:02 am

RE: Lua in Command tutorial 1

Post by nogravity »

I see a great potential to improve the AI. Units can now have different behavior based on the status of the game. For example, the AI side can starts off the game with 30% of aircraft in reserve. If their side is losing (number of air units loss reaches certain level), more reserve units can be re-assigned to defensive mission. Or if their side is winning, the reserve aircraft can be assigned to offensive missions.

That can create a very flexible and dynamic AI actions.

Thanks
User avatar
Mgellis
Posts: 2162
Joined: Sat Aug 18, 2007 2:45 pm
Contact:

RE: Lua in Command tutorial 1

Post by Mgellis »

This looks very cool. I am very eager to try out these new options. Any estimates on when the new patch/public beta will be released? A week? Two weeks?

DeSade
Posts: 155
Joined: Mon Mar 01, 2004 5:08 pm
Contact:

RE: Lua in Command tutorial 1

Post by DeSade »

thank you, looks great :) I have few questions:

1. What is difference between ScenEdit_AddAircraft (ship, sub) and ScenEdit_AddUnit? Later looks more generalized with more options (heading, altitude)
2. I understand that scope of variables is local to action, so you cannot assign value in one event and use it in another, am I correct? But it could be done by ScenEdit_SetKeyValue/ScenEdit_GetKeyValue?
3. is it possible to access data regarding existing units/ref points, for example:
unit = ScenEdit_SetUnit({side="United States", name="USS Test"})
print(unit.lat,unit.lon)

anyway, i'm very impatient to try it myself :)
Tomcat84
Posts: 1952
Joined: Wed Jul 10, 2013 5:13 pm

RE: Lua in Command tutorial 1

Post by Tomcat84 »

The options on baloogan's site not covered in my video were actually just added yesterday so I still have to figure those out myself haha. But yeah it looks like addunit will be a more general option that encompasses all types.
My Scenarios and Tutorials for Command

(Scenarios focus on air-warfare :) )
User avatar
ClaudeJ
Posts: 752
Joined: Wed Mar 08, 2006 5:38 pm
Location: Bastogne

RE: Lua in Command tutorial 1

Post by ClaudeJ »

Along many other use, that will make template creation mucho easier, thanks a lot!
Intel(R) Core(TM) i7-3770 CPU @ 3.40GHz, NVIDIA GeForce GTX 1650 4 Go, Windows 10 64bits, 32 GB RAM, Regional settings = French, Belgium
(Previously known as JanMasters0n)
mikmykWS
Posts: 7185
Joined: Tue Mar 22, 2005 4:34 pm

RE: Lua in Command tutorial 1

Post by mikmykWS »

ORIGINAL: Mgellis

This looks very cool. I am very eager to try out these new options. Any estimates on when the new patch/public beta will be released? A week? Two weeks?


Early December most likely Mark. We dropped this on our publisher's poor production folks right in the middle of their busy season so need some time.
Thanks!

MIke
User avatar
Mgellis
Posts: 2162
Joined: Sat Aug 18, 2007 2:45 pm
Contact:

RE: Lua in Command tutorial 1

Post by Mgellis »

ORIGINAL: mikmyk


Early December most likely Mark. We dropped this on our publisher's poor production folks right in the middle of their busy season so need some time.
Thanks!

MIke

Thanks, Mike. Just wanted to get a general idea of the timeline. I'm already brainstorming how to take advantage of the new scripting options.

I'm guessing that, since you can set up events with a percent probability, all of these scripted actions can be set up to only happen some of the time. For example, I could add a weather action where you get a really vicious storm, and it is triggered at a certain point of time, but there is only a 20% chance of it actually happening.

Looks like you can...

* Change the weather
* Change a side's posture
* Add a unit
* Assign a unit to a mission (which I guess will automatically delete it from any other mission)
* Change EMCON for a unit, mission, side, etc.

Any others? For example, can you modify other aspects of ROEs too or is that something coming in the future?

Thanks again to the developers for all your work on this. This game just keeps getting better and better.

Meroka37
Posts: 268
Joined: Fri Jul 31, 2009 6:12 am

RE: Lua in Command tutorial 1

Post by Meroka37 »

erased
'Better honor without ships, than ships without honor"
User avatar
Mgellis
Posts: 2162
Joined: Sat Aug 18, 2007 2:45 pm
Contact:

RE: Lua in Command tutorial 1

Post by Mgellis »

ORIGINAL: Mgellis

Looks like you can...

* Change the weather
* Change a side's posture
* Add a unit
* Assign a unit to a mission (which I guess will automatically delete it from any other mission)
* Change EMCON for a unit, mission, side, etc.

Among other things, this lets you model seizures a lot more easily...

* Trigger <-- remain within one mile of a smuggler, using reference points made relative to the smuggler's ship to define the area, for more than 30 minutes (this lets you model a boarding action)

* Action <-- change posture of side:smuggler1 to friendly (because your boarding party is now running things)

* Action <-- assign unit:smuggler1 to new mission (perhaps a support mission with one or two reference points that represent a holding area at a friendly port)

* Action <-- award points to side:USCG

Smuggler1, having been boarded, will now change its posture, so you know where it is at all times, and will be on its way to a friendly port where it will eventually be put up for auction

In the same way, one can design missions where one can chase off people violating territorial waters...if you get close enough for long enough, they drop whatever mission they were on (e.g., patrol:sea control) and are assigned to a new mission that takes them out of the area. You can even set up the scenario where you will get more points for finding a non-violent way to solve a problem than you get for just sinking people.
SpacePope
Posts: 4
Joined: Tue Nov 04, 2014 10:30 am

RE: Lua in Command tutorial 1

Post by SpacePope »

ORIGINAL: Randomizer

I'll bite; what's a Lua?

-C
Lua's a scripting language that's embedded in a ton of applications. Obviously for CMANO, it would come with functions like the ones shown in the OP that let you create units with defined values, dictate the weather, etc.
User avatar
ojms
Posts: 213
Joined: Tue Sep 16, 2014 9:05 am

RE: Lua in Command tutorial 1

Post by ojms »

Is it possible to use this to modify a platform, such as add sensors to an aircraft/ship? Especially as an modifications to aircraft don't stay once they land and launch again.

Thanks.
Tomcat84
Posts: 1952
Joined: Wed Jul 10, 2013 5:13 pm

RE: Lua in Command tutorial 1

Post by Tomcat84 »

ORIGINAL: Supreme 2.0
(Especially for including the E-3G I spotted there )

Good eye [8D]
My Scenarios and Tutorials for Command

(Scenarios focus on air-warfare :) )
User avatar
cf_dallas
Posts: 303
Joined: Thu Apr 13, 2006 3:35 pm
Location: Grapevine, TX

RE: Lua in Command tutorial 1

Post by cf_dallas »

ORIGINAL: Mgellis

Among other things, this lets you model seizures a lot more easily...

* Trigger <-- remain within one mile of a smuggler, using reference points made relative to the smuggler's ship to define the area, for more than 30 minutes (this lets you model a boarding action)

* Action <-- change posture of side:smuggler1 to friendly (because your boarding party is now running things)

* Action <-- assign unit:smuggler1 to new mission (perhaps a support mission with one or two reference points that represent a holding area at a friendly port)

* Action <-- award points to side:USCG

Smuggler1, having been boarded, will now change its posture, so you know where it is at all times, and will be on its way to a friendly port where it will eventually be put up for auction

In the same way, one can design missions where one can chase off people violating territorial waters...if you get close enough for long enough, they drop whatever mission they were on (e.g., patrol:sea control) and are assigned to a new mission that takes them out of the area. You can even set up the scenario where you will get more points for finding a non-violent way to solve a problem than you get for just sinking people.

I love the scenarios you cook up, and the creative ways you always use the tools the devs are giving us. Keep up the awesome work.
Formerly cwemyss
User avatar
Maromak
Posts: 1070
Joined: Wed Dec 26, 2007 1:40 pm
Location: Australia

RE: Lua in Command tutorial 1

Post by Maromak »

Thanks TC. Very helpful.
Certa Cito
Post Reply

Return to “Mods and Scenarios”