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
Hey who's the joker who just voted a 1? Probably some scripter who was envious of this system, or some kid who is too dumb to figure the system out. They obviously didn't have the balls to put down who they were or why they voted a 1 while the other 5 people voted 10's. Daeorn: To teleport a PC, you just need to use the jump behavior on the PC like you would with any NPC actor, (use INITIATOR or NEAREST_PC for the role). And for getting a PC to go invis, simply write a plugin command for going invis and non-invis. The plugin command would not even need any parameters, and just uses the OBJECT_SELF for the actor. Or it might be simpler for you to make a new plugin command that both jumps someone to a new area and makes them invisible if that is what you want.
Posted by Daeorn at 2003-10-0910:35:00
Hey Red, I love your script! and Abysus is looking good. ;) I do have one request though for future versions. First, can you put in a command that will allow us to teleport the PC to another area to START the stageplay? Also can you make another command that lets us set the VFX that makes the PC invisable for a cutscene... I think your system is perfect for cutscenes the only problem is I cant get the PC to disapear or teleport to another area for the cutscene to work. Thank you Daeorn
Posted by Shade at 2003-10-0116:13:00
Red Golem. Congratulations on a spectacular addition. I think it may be a good idea to start an NWN Guild or some such so people can share some concepts, discoveries, questions, and improvements. Simply awesome.
Posted by Red at 2003-09-3020:28:00
DJR081871 (what's up with the hard-to-type name?): Here's a few things to check: 1. Make sure your trigger's on_enter event is pointing to the stageplay_enter script. This is a simple one that is often overlooked. 2. Do the bandits appear at all? If not, then recheck to make sure the waypoint tags are right, as well as the resrefs for the creatures. 3. Try separating the attack commands: BanditArcher: !(attack NEAREST_PC) Bandit: !(attack NEAREST_PC) BanditRogue: !(attack NEAREST_PC) 4. Add the line "continuable" right after the "run only once". Sometimes that helps. 5. If that doesn't work, turn on the debugging constant in stageplay_inc, and recompile the module. That should give you a wealth of information about what's going on. Also check your log file since it might put useful debug stuff in there as well. Though if it is just a tiny scene like this that just makes the bandits pop out at certain locations and attack the PC right away, without having them say or do anything else, you might as well just do a short normal script for it that is hooked up to an on_enter event of a floor trigger. Or even simpler, just place down three special encounter triggers and have each of their spawn points be where you want the bandit. If you are using the stageplay syste, it might be more interesting if you give the bandits some lines like the following before attacking: BanditRogue: ![clear Bandit] Bandit: ![voice laugh] Bandit: !*snickers menacingly* BanditRogue: ![clear BanditArcher] BanditArcher: !*notches arrow* As for the plugin template, remember, you only need it if you want to use parameters with the plugin command. Otherwise, it is just like a normal script, with the OBJECT_SELF as the actor who called it. The code in the plugin template is just for getting the parameters. That's all it is. If you don't need parameters, then you don't need to start with the plugin template.
Posted by DJR081871 at 2003-09-3000:39:00
Quick question! Why doesn't this work? //***CONDITIONS*** run only for pc run only once //***THE CAST*** //CAST WILL BE CREATED IN SCENE //***THE SCENE*** delay = 6 [enter BanditArcher BANDIT_WP001 nw_bandit002] [enter Bandit BANDIT_WP002 nw_bandit001] [enter BanditRogue BANDIT_WP003 nw_bandit003] BanditArcher, Bandit, BanditRogue:!(attack NEAREST_PC) END I have a floor trigger set up with this scene in its Name field. I have all the waypoints set up, such as the BANDIT_WP001, etc. I have my PC walk through the trigger, and hang around the area, but nothing happens at all. What am I doing wrong? Also, I looked at the plugin template and I have no clue what to do with it. Could you possibly make a novice scripter documentation for it? Maybe a little more user-friendly? I love your idea, and would like to implement it, but I don't seem to be having much luck. Thanks
Posted by Red at 2003-09-2916:30:00
There's no built-in command for those pop up conversation windows. You'd need to do an external script plug-in. If you are not using any parameters for the external script plug-in then it is basically just like any other script that you might call with an ExecuteScript command. So how would you regularly make an NPC initiate a conversation if you were not using the Stageplay Interpreter? (ActionStartConversation) Just place that inside a script and call it from within the scene's text. I'll write out a simple plugin command with parameters for initiating a pop-up conversation dialogue window, and send a link when it is up.
Posted by Master at 2003-09-2817:07:00
Thanks for the info Red Golem. It works fine now as long as the sound is put first. I have another question. Sorry for being a pain in the ass, but I've been away from this stuff for too long. How do you get an actor to initiate a conversation? I've already created the conversation file named pimp_convo, and I was trying to use the line: Pimp: [pimp_convo] which obviously didn't work. I did look at your plug-in template, but got a little dizzy trying to figure out exactly what to do. Thanks again
Posted by Red at 2003-09-2816:35:00
Mater Mymm: The animations play as actions (ActionPlayAnimation) rather than direct execute (PlayAnimation) which is why it waits for the action to finish before doing the next action if it is all the same actor playing it. It is done this way to make sure actions are played in the right order. However sounds are done with a non-action command (PlaySound) wrapped in an ActionDoCommand or two. Thus to get them simultaneous, you'll want the sound first and then the animation right after without any delay: Woman of ill repute: [sound as_pl_chokingf1] Woman of ill repute: !(animation bow 1.0) You might want to experiement with changing the "[" and "(" around to get the order right. Or you might want to just search script stageplay_inc and find instances of "ActionPlayAnimation" and change them to PlayAnimation and see how it goes. Best of luck, - Red Golem
Posted by Master at 2003-09-2812:15:00
By the way, whether or not you have little or no scripting experience, or even if you are an amazing scripter, this little compilation of excellence is the way to go. All it requires is at least half a brain, and reading through the manual in order to use it. I made a hard-copy of the manual to reference as I write, and I think it is one of the best tools to date. Once you use it for a while, it will start to become second nature, and you will be able to breath life into your modules like never before. My greatest of thanks to you Red Golem for creating this brilliant tool. I highly recommend it for everyone.
Posted by Master at 2003-09-2812:01:00
I am having a problem with an actor performing an animation and having a sound play simultaneously. Woman of ill repute: [walk NEAREST_PC] Woman of ill repute: I have a little surprise for you! Woman of ill repute: *snickers* Woman of ill repute: (animation bow 1.0) Woman of ill repute: ![sound as_pl_chokingf1] The sound is playing after the animation is completed, while I would like the animation and sound to play at the same time. From what I've read in the manual, unless I misunderstood (figures), this should work, right? wrong? no *blocked* idea?