Post
by morbideth » Fri, 22. Feb 19, 15:36
Update Day 12: Added menus for message settings. Added a bunch of text for messages to the language files, and started working on the aiscripts side.
X4 has 4 ways to deliver messages to the player, the logbook, the ticker, subtitles, and coms. Unfortunately, everything but the coms is hidden by the map menu; something that is frequently kept open. Coms forces the map menu to close, but it also breaks seta and is rather intrusive. There isn't really a good way to deliver important info to the player and make sure they see it without being annoying. X3 has a little mail icon that would flash when you had an unread message. This makes it easy to send messages to the player in such a way they could read them at their leisure. The logbook should fulfill that function, but right now, it is set up quite poorly.
The logbook, in general, is a spammy mess that swallows any important messages. Also, it is not convenient to access. If you have more than a handful of ships the logbook quickly fills with minutia. What it needs is some way to filter things, the categories don't do the job. Something like filtering by the sender, group messages by commander, and most importantly a way to TURN MESSAGES OFF. Do I really need to know every single time a ship gets scanned by the police? Maybe if they had something illegal, but not every single time. That quickly fills the logbook with all kinds of meaningless spam. And then there is the spam from miners. Why would I want to know every time a miner delivered cargo to my factory? I only have half a dozen miners in my test save and it is still way too annoying.
But, I'm not planning on rewriting the logbook, I'm just venting. As for how I have set up messages, I've divided things into 3 categories: Notifications (i.e. pilot promoted), Trade messages, and Critical message (things that stop the script from running, i.e. no money). Each setting has options for the four ways to message the player, as appropriate for the category, i.e. only critical messages have an option to com the player, as well as an option to play a sound on receiving the message, in the hopes that, that will allow people to find the messages they want to look at.
One of the difficulties I've encountered is trying to figure out the subtitles, which use the <speak> command. For spoken text, you cannot use the normal way of inserting information into a string, no 'Blah blah %s blah blah'.[$varible]. The <speak> command only accepts the line and pageID as separate arguments, not a string that can be formatted. There is the option to add <name> and <description>, but the information about those two says, "Requires that a name has been defined in the correct format." without any hint of what the 'correct format' is. This is making it a bit difficult to display the messages as I want. I don't even want it to try to speak the text, just display it. I wish there was a dedicated subtitle command, but there doesn't seem to be.