Neither player.consoleMessage or player.commsMessage are displayed on the HUD if called under a this.playerStartedJumpCountdown = function(type) handler - i.e. whilst the Hyperspace Jump Countdown messages are being displayed. If player.commsMessage is used it is logged in the communications log.
My OXP needs to display a warning about unpredictable jump results.
Edit: OK I can work around this by using a Timer to repeat the warning - it looks like the core code overrides the display time of scripted messages to prevent HUD untidiness??
Blimey - I've just realised I've subconsciously used JS syntax && in the subject line....must.stop.looking.at.code....
- it looks like the core code overrides the display time of scripted messages to prevent HUD untidiness??
Yes, I think it is clearing all older messages before writing a new time. I had the same with the MisjumpAnalyser.oxp. That also writes a message during countdown. But I added a sound, so you know it triggered and you also see the message in the comms-log like you say.
The other specific problem with the witchjump countdown message is that it's not one, but 15 messages. Each second a new, second-long message is written. Therefore you have to wait for the full time until you can get in another message. There's no sneaking in.
If you want to give the player a chance to read something, you could probably use a commsMessage instead. This brings up the comms log window as well, so he could catch it there. On the other hand, there is no guarantee that he'll notice. I know from myself that I tend to keep my eyes focused on the countdown, so I'd probably miss the comms log window in my peripheral view.
I've got it to reliably intersperse the warning with the countdown using a Timer set at 1 second intervals and to start 1 second after this.playerStartedJumpCountdown.