michaelm75au
Posts: 13500
Joined: 5/5/2001 From: Melbourne, Australia Status: offline
|
I have put together a list of items to be aware of when using Lua with Command scenarios. I hope it is helpful. Release 1.11.SR7 Note: Due to how errors are now handle from SR7, if a command fails in the console window, it will show an error. If the command runs outside the console (as in an event script), it will not fail with a visible error but return a nil or "" or some other value. One issue with commands running in an event is that sometimes they fail with an in-game message that actually stops the rest of the script from running. Now, these event scripts will run without any in-game message showing, and the designer should check the result of the command and handle any error condition, and let the remaining script run as needed. My intent is have all command errors behave in the same fashion in the console window; and the command errors outside a console behave without stopping the script. Which requires the designer to cater for the specific error conditions. Benefit of showing the error regardless, is that sometimes a real error is hidden by just assuming the command works. A good example is this: assume you have a unit 'My Unit' in game. Running the command 'ScenEdit_GetUnit({name='My Unit '})' would return a nil in the earlier releases. Obviously this is wrong; there is no unit 'My Unit '. Now when you try this in the console, it will show as an error. To emulate the expected outcome from an event, put 'Tool_EmulateNoConsole(true)' at the start of the script to be tested; it is not required in the event code as the script is already not running in a console. Note also, that the Lua history log should also record the event script errors. Hope this makes sense.
Attachment (1)
< Message edited by michaelm -- 2/18/2017 2:33:02 AM >
_____________________________
Michael
|