Page 1 of 4
Updating the wiki mission scripting tutorial
Posted: Fri Oct 01, 2021 8:52 pm
by zonkmachine
Hi!
I've had a go at refurbishing the
mission scripting tutorial in the wiki pages a bit. I'm only getting started coding in lua myself but I'd reckon it's all within reach if I give it a month or so. First part updated is:
Interacting with the game: Event-based programming, where I've just tweaked it to be correct, no big changes.
I'm now looking into:
Interacting with the player: BBS forms, which is a long chapter and a bit heavy on information. I think it could be improved by splitting it into two parts. First part is on strings and internationalization and would consist of paragraphs 1 and 6,
Internationalization and
Mission flavours. I'll also add a part on string variables, {name}, {price}, etc. First draft almost ready.
Re: Updating the wiki mission scripting tutorial
Posted: Sat Oct 02, 2021 5:51 pm
by zonkmachine
Q - What am I missing here? I'm trying to make a simple hello program work. It works something like four times out of five.
data/modules/hello.lua
Code: Select all
local Event = require 'Event'
local Comms = require 'Comms'
local onGameStart = function ()
Comms.Message ('Welcome to Pioneer!')
end
Event.Register("onGameStart", onGameStart)
Re: Updating the wiki mission scripting tutorial
Posted: Sun Oct 03, 2021 4:37 am
by sturnclaw
zonkmachine: there is no fixed order in which event callbacks are executed, meaning that the onGameStart callback that clears the comms log cache as part of a new game can run after the callback in which you've logged the start message. I'd recommend creating a Timer with a half-second delay that is responsible for actually logging the message.
Re: Updating the wiki mission scripting tutorial
Posted: Sun Oct 03, 2021 10:03 am
by impaktor
@zonkmachine Huge thumbs up for updating the lua scripting on the wiki. It's been on the back of my mind to do for years. I think it was outdated already when I joined in 2013. I think your plan for the wiki sounds good, feel free to take "ownership" of that section of the wiki.
My only recent contribution was a
page for a simple "hello world" script for making imgui-windows, based on code from sturnclaw, which you also can feel free to clarify/edit, (it could also be adopted to putting "hello world" tab to the debug window, or other screens in the game).
By the way, due to my many-year-old-plan to update the lua scripting page, I took some notes on bugs I had when I started with lua (my background then was C++), so feel free to incorporate the below to the wiki, in some form, if you find it valuable:
Code: Select all
if false == 0 then
-- this will never be evaluated, since a bool is never a number
print("1. never be here")
elseif true == 1 then
-- this will never be evaluated
print("2. never be here")
elseif 0 then
-- all numbers are true, including 0!
print("always here")
else
error("we will never come here")
end
-- Only "nil" and "false" are evaluated as false.
Re: Updating the wiki mission scripting tutorial
Posted: Sun Oct 03, 2021 5:35 pm
by zonkmachine
Thanks for the feedback!
@sturnclaw Thanks! I also got the tip on irc to use
onShipDocked by @joonicks. I'll try and use both methods.
@impaktor Yep. Some of the concepts of Lua takes some getting used to. That code brings up the ones that got me the first time I looked into Lua. I'll try and fit it in somewhere. :)
I've created separate a new page,
Strings and translation, and removed the corresponding part from
Interacting with the player: BBS forms. It still needs some tweaks but in large I'm happy with it. All code snippets has been tested to work.
Re: Updating the wiki mission scripting tutorial
Posted: Fri Oct 08, 2021 1:00 pm
by sturnclaw
Thanks for the new wiki page zonkmachine! I've made a few minor edits and pointed the documentation to the Lua 5.2 manual (as that's the Lua version that Pioneer uses), but overall it's a very useful resource!
One point of clarification though - I've (sometime in the last year or so) fixed the issue where the game would crash if it can't find a language-specific translation file (and it also shouldn't crash if the requested translation resource doesn't exist at all); I'd appreciate it if you could confirm if that part of the wiki page is still valid, and if you still get a crash for whatever reason please report that on github.
Re: Updating the wiki mission scripting tutorial
Posted: Sun Oct 10, 2021 7:04 pm
by zonkmachine
@sturnclaw Thanks for the improvements! I couldn't replicate the issue with Pioneer crashing on missing translations. I didn't write that note though. @impaktor did.
Re: Updating the wiki mission scripting tutorial
Posted: Mon Oct 11, 2021 6:06 am
by sturnclaw
Probably an old left-over note from before the improvement was merged; I'm also unable to reproduce the crashes so feel free to remove that section :D
Re: Updating the wiki mission scripting tutorial
Posted: Mon Oct 11, 2021 4:37 pm
by impaktor
Yeah, I wrote that a few days ago, before the PR went up. I should remove the part about crashing.
Re: Updating the wiki mission scripting tutorial
Posted: Tue Oct 12, 2021 4:38 pm
by zonkmachine
impaktor wrote: ↑Mon Oct 11, 2021 4:37 pm
Yeah, I wrote that a few days ago, before the PR went up. I should remove the part about crashing.
I reverted that change.
Q - When in the upstart process does the 'game clock' start ticking?