I suspect I'm way down the rabbit hole on this, but I'm hoping there's a simple solution.
I am using someone's basic script implementation that uses Bass instead of direct sound. This is because I use a screen reader, and I'm trying to play a lot of sounds at once. (It appears you can only play 10 with direct sound.) To this point, things have been working well, but as I create more triggers and aliases, I'm finding the control+shift+8 and control+shift+9 dialogs load a *lot* slower.
My thought, then, was to start exporting many of the sound triggers over to plugins, but that's where the breakdown is occurring.
At the outset of the script, the original author loads a class called "Interface" that contains lots of information about the player. It also has some callbacks and other functions I have built into it that enable me to play and manipulate sounds. At the moment, if I want to play a combat sound, I can do something like
Interface:CombatSound("windupstart")
to play the sound associated with the start of a windup.
If I do this from within a plugin, however, the Interface object isn't visible to the plugin.
Run-time error
Plugin: Detect_and_disrupt_windups (called from world: Starmourn)
Immediate execution
[string "Trigger: GetWinder"]:5: attempt to index field 'Interface' (a nil value)
stack traceback:
[string "Trigger: GetWinder"]:5: in main chunk
Is there a way for the plugin to be able to see (and call methods on) the global object? Failing that, is there a way for me to set up hundreds of triggers in such a way that loading the list doesn't completely freeze my computer?
Thanks for any help you can provide.
I am using someone's basic script implementation that uses Bass instead of direct sound. This is because I use a screen reader, and I'm trying to play a lot of sounds at once. (It appears you can only play 10 with direct sound.) To this point, things have been working well, but as I create more triggers and aliases, I'm finding the control+shift+8 and control+shift+9 dialogs load a *lot* slower.
My thought, then, was to start exporting many of the sound triggers over to plugins, but that's where the breakdown is occurring.
At the outset of the script, the original author loads a class called "Interface" that contains lots of information about the player. It also has some callbacks and other functions I have built into it that enable me to play and manipulate sounds. At the moment, if I want to play a combat sound, I can do something like
Interface:CombatSound("windupstart")
to play the sound associated with the start of a windup.
If I do this from within a plugin, however, the Interface object isn't visible to the plugin.
Run-time error
Plugin: Detect_and_disrupt_windups (called from world: Starmourn)
Immediate execution
[string "Trigger: GetWinder"]:5: attempt to index field 'Interface' (a nil value)
stack traceback:
[string "Trigger: GetWinder"]:5: in main chunk
Is there a way for the plugin to be able to see (and call methods on) the global object? Failing that, is there a way for me to set up hundreds of triggers in such a way that loading the list doesn't completely freeze my computer?
Thanks for any help you can provide.