This is essentially an in-game interpreter that allows scenes to be written in a much easier-to-understand stageplay script format, and played out. It provides for a shared interruptable and continuable action queue for the actors in the scene. It allows the writer of the scene to embed entire scenes inside objects, or fetched from a database. Also it allows the novice non-scripter playwright to be able to easily craft scenes. (version 1.01.2) There is a help forum at: http://nwn.bioware.com/guilds_registry/viewguild.html?gid=5740
Version 1.01 is available now. It is just a quick fix. Fixes and changes: 1. Fix for the bug with external plugin commands not working with parameters. (Thanks for Karol) 2. Demo module now includes a useful example of an external plugin command - a generic visual effects plugin! Though I'm hoping someone will make a better version of a generic visual effects plugin. 3. NEAREST_PC can now be assigned to a role. (thanks again to Karol for the idea). Example: Victim = NEAREST_PC This would assign the nearest PC to the last actor or (the initiator if no actor has had any lines yet).
Posted by Red at 2003-09-1822:47:00
I'll put out a new fix release with the external plugin fix as well as include the template for external plugins. It should be up tomorrow or the day after. That should help. Chass: If that fix to stageply_inc on line 669 and line 673 changing 'behaviorCommand' to 'command', doesn't work, then try making "invisible" just a plugin script that uses no parameters and seeing if it works.
Posted by LazerPotatoe at 2003-09-1815:59:00
Very cool scripts. I love them! I see in your docs that you say you can't add a line-break in the Name section of the triggers/etc. You actually can, you just need to use CTRL-ENTER. Hope this helps. Some suggestions for a future version: - modify the walk action to allow cardinal directions and distance. (ie. ACTOR walk NW 3.0) This would remove necessity for large number of waypoints in complicated scenes. - something like [scene change ]? This could jump the PC to the new area, and continue the scene. I thought this might be cool, since it fits with the screenplay idea. - music/lighting/weather changes? Anyways, thanks for this -- it's great, LP.
Posted by Red at 2003-09-1811:28:00
Phervers found a good bug that will be fixed in the next release. If you call an external plugin command that has less than 16 characters for it's length it won't work. So in the meantime, the workaround is to just make your script names 16 characters in length. This is a bug in the stageply_inc on line 669 and line 673 as Phervers discovered. Just change 'behaviorCommand' to 'command', and it will work fine.
Posted by Red at 2003-09-1718:01:00
I've posted a template script for the plugin commands for the Stageplay interpreter. It should be up by tomorrow.
Posted by Red at 2003-09-1701:12:00
Just one minor little modification you'll need to make. You'll need to make someone else the active actor before issuing the exit command otherwise the action queue to parse the next command disappears with the one who is exiting. This should do the trick: ---------- // * * * CONDITIONS * * * run only for pc continuable run only once // * * * THE CAST * * * MW = MysteryWoman Thug1 = Thug1 // * * * THE SCENE * * * delay = 2.0 [enter Thug1 WP_ThugPost1 thug1] [enter MW WP_MW1 mw] MW: [run WP_MW2] // make Thug1 the active actor before // having MW exit Thug1: // just blank, but transfers active actor [exit MW] Thug1: She's gone! END
Posted by Hank.McCoy at 2003-09-1700:08:00
I have a quick questions regarding this script. I seem to be having difficulty with the [exit ] command. I have created two custom NPCs who both spawn in correctly, and the second runs to the correct way point, however when the second one is told to exit, the script seems to hang up. I have read the documentation many times on the exit and enter commands but nothing seems to help. The Demo works fine and the three witches disappear as they should. Can you tell me what I'm doing wrong? // * * * CONDITIONS * * * run only for pc continuable run only once // * * * THE CAST * * * MW = MysteryWoman Thug1 = Thug1 // * * * THE SCENE * * * delay = 2.0 [enter Thug1 WP_ThugPost1 thug1] [enter MW WP_MW1 mw] MW: [run WP_MW2] [exit MW] Thug1: She's gone! END Thanks in advance!
Posted by Red at 2003-09-1618:30:00
CHASS: Yes you can refer to the PC to make the PC do stuff by using the role "NEAREST_PC" for the nearest PC to the last actor, or "INITIATOR" for the PC that is the initiator (usually the one that triggered the scene). But be careful though, you'll want to set the PC so they can't mess with the action queue since this is all based on action queues for parsing the next line in the scene. This means that if you want to do lots of stuff with the PC using the system, then you'll need to make the PC cutscene dominated mode or in cutscene mode. However don't use something like SetCommandable(FALSE, oPC) since that will disable the PC from getting new actions. PHERVERS: Yeah I'll consider it for the next version. The only problem is how would you propose the scene's writer refer to the visual effect in the scene? To specify what one wants for the visual effect would be about the same as writing the custom script for it. They would need to specify the duration type, the visual effect id/constant name, the target, and the duration. Most of of it is simple except for the constant/id name. They could just use a number to refer to the VFX_ constant's value but that is unintuitive, and something they would have to look up. Or they could type in the VFX_ constant name, but that would be cumbersome to implement something that translates hundreds of strings to numbers. You have any ideas? Since the stageplay system allows you to call external scripts with multiple parameters, one could write a new generic stageplay visual effects plugin script that does what you want without modifying the existing code at all. This script would then be able to be used by any writer using the stageplay system. I think this is the easiest way for now, since you need to know the VFX_ constant or id anyways and can have always have more control over the visual effect, or use other effect functions. What I'm hoping is that users will build up a library of external stageplay plugin scripts that tie into the Stageplay system. I only built into the system functionality that is more commonly used. Other functionality can easily be done using external plugin scripts. Look at the end of section 9 in the manual (the HTML doc), for how to access the parameters from an external plugin scripts and how to call external plugin scripts. It would actually be pretty simple to write a stageplay plugin command that takes in 4 arguments (duration_type, visual_effect_id, target_role, and duration) and make it do the visual effect. But to make it easy and intuitive to use for those who don't want to look up the duration type id number or visual effect id number is much more difficult. If you do end up making some plugin commands that you think would be useful to others, please post. Enjoy, - Red Golem
Posted by Chass at 2003-09-1616:11:00
One thing I think it's missing is being able to control PC's .. this script is designed for like npc's mostly.. what if I want the PC to say soemthing? or move him somewhere? Maybe i don't know how to do it yet.. think it can be implemented? to allow control over the pc?