1. SPS Accounts:
    Do you find yourself coming back time after time? Do you appreciate the ongoing hard work to keep this community focused and successful in its mission? Please consider supporting us by upgrading to an SPS Account. Besides the warm and fuzzy feeling that comes from supporting a good cause, you'll also get a significant number of ever-expanding perks and benefits on the site and the forums. Click here to find out more.
    Dismiss Notice
Dismiss Notice
You are currently viewing Boards o' Magick as a guest, but you can register an account here. Registration is fast, easy and free. Once registered you will have access to search the forums, create and respond to threads, PM other members, upload screenshots and access many other features unavailable to guests.

BoM cultivates a friendly and welcoming atmosphere. We have been aiming for quality over quantity with our forums from their inception, and believe that this distinction is truly tangible and valued by our members. We'd love to have you join us today!

(If you have any problems with the registration process or your account login, please contact us. If you've forgotten your username or password, click here.)

Neverwinter Nights Forum Update

Discussion in 'Game/SP News & Comments' started by NewsPro, Jul 12, 2002.

  1. NewsPro Gems: 30/31
    Latest gem: King's Tears


    Joined:
    May 19, 2015
    Messages:
    3,599
    Likes Received:
    0
    (Originally posted by Z-Layrex)

    David Gaider, Designer

    CreateObject: It gets more interesting than that. From what I've been able to tell, if a creature is actually PLACED in the module, it's blueprint resref is changed to match its tag... and therefore its tag is useable for CreateObject. This is what confused me when I was looking through the official campaign. The skeleton bones placeable has a script that calls on a skeleton warrior... but using its tag (and it works... but only because skeleton warriors have been otherwise placed in the module). Same with a placeable object in the Beggar district in chapter 1... it is a fire that is spawned in using a tag that exists in neither the Custom nor Standard list of placeables. It ONLY exists in the resref of another placeable that has been placed. I didn't mention any of this in the description of CreateObject in the FAQ because:

    a) it's inconsistent
    b) it's confusing

    Hopefully I can nail down a programmer to tell me exactly what's what with this at some point. Some of these results, however, could be completely unexpected even on their part (I suspect). Using the blueprint resref is what you'll want to do 99% of the time. It's relatively icky and it's something that the Live Team knows about and wants to work on streamlining after the bug situation calms.


    Destroyable Objects:

    Quote: I have the SetObjectDestroyable as (FALSE,TRUE,TRUE), and the body doesnt disappear. But I can't select him. When I move the mouse over the dead character, it changes into the attack icon. Clicking on him does not open up his inventory. Do I need to assign a second command that ends the combat, or some other manner of command?

    Selectable actually just means that the icon gets a response... the player will see the creature's name, basically. A dead body is NOT a container like a placeable object is... you can't click on it and 'open it up' to see what is in its inventory. Creatures only drop their inventory when their body disintegrates. If you set the body to not disintegrate, this won't happen. Only way, reasonably, that you can do this is to have a script enact in the OnDeath event that spawns in a placeable object bag (or some container) and transfer the creature's inventory items into that. Then you have a permanent body and a lootable object. Incidentally, the 'No Permanent Death' box is mis-labeled and is being re-labeled in the next patch. What it ACTUALLY does is prevent 'chunky death' when checked.


    Dialog Boxes: Yes, a dialogue box would be the way to use that currently. Something like you suggest would certainly be more user friendly. How about something like this:

    DisplayPopUpGUI (string sGUItag, string sOption1, string sOption2 = "", string Option3 = "", string Option4 = "", string Option5 = "");

    So you could cause a pop-up 'query' window appear that offered up to 5 options on it. When any option is selected, it sends a UserDefined event (using a POP_UP_OPTION* constant) to the module... where you could check for it like this:

    int nEvent = GetUserDefinedEventNumber();
    if (nEvent == POP_UP_OPTION1)
    {
    string sTag = GetLastGUIUsed();
    if (sTag == "MANHOLE_OPENED")
    {
    ...do rest of script

    would that be easier to use or harder to use? I suppose another option would be to enter the file resref name of a script to run beside each option... so when the button was pressed, a new script would be run (using the reference GetLastGUIUser). Just a thought on my part, but I'm thinking that kind of thing could have multiple uses.

    More:
    Ok... just to re-iterate, though, the ONLY way to replicate that currently is via dialogue. The stuff I'm suggesting in my post is just a possibility for the future.


    Conversation Ending: What you need to do is go to his dialogue file... in there, you'll see a tab called 'Other Files' and space for two scripts in OnConversation End and Abort. Put a script in those that simply called WalkWayPoints again (just like in your OnSpawn script) and he will go back to what he was doing. As for the sounds he's making, go into his creature file under the Advanced tab and I think there is a function there for changing or deleting his Voice Set. Those play automatically when clicked on... nothing to do with OnConversation or the like.

    Jonathan Epp, Quality Assurance


    Ending Conversations:

    Quote: Is there anyway to tell if a player hits the ESC key to get out other than keeping a state variable that you change at each node of the dialog?

    In the Conversation Editor, in the bottom-right, go to the "Current File" tab. There are two options for scripts - one will run when the conversation ends normally, the other will run when the conversation ends for any other reason (including when the player aborts the conversation with ESC).


    Don Moar, Tools Programmer


    Tileset Specific Doors: A tileset specific door will only show up using its 'proper' model when placed in the proper tile (feature or group). Take a look at the door created when painting the Wall1Gate feature in an area using the Rural tileset. That door is specific to the Rural tileset. If you delete that door and paint a generic door in its place it will show up using the same model as the tileset specific door you just deleted. Everything else about the generic door will be used, however (eg. hit points).

    Conversation Editor Icons: The buttons you're referring to highlight the nodes that meet the criteria indicated by the button.

    Highlight Actions - nodes that have an Action Taken script.
    Highlight Quests - nodes that update the player journal.
    etc...

    The highlight is a red boarder around the icon beside each appropriate node. As for the actual icons beside the nodes:

    ~ (squiggle) means the node has a start condition script
    v (checkmark) means that the node should always appear
    > (triangle) means that the node is the default node and will appear if no other nodes are valid.
     
    Last edited by a moderator: Jan 4, 2018
Sorcerer's Place is a project run entirely by fans and for fans. Maintaining Sorcerer's Place and a stable environment for all our hosted sites requires a substantial amount of our time and funds on a regular basis, so please consider supporting us to keep the site up & running smoothly. Thank you!

Sorcerers.net is a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for sites to earn advertising fees by advertising and linking to products on amazon.com, amazon.ca and amazon.co.uk. Amazon and the Amazon logo are trademarks of Amazon.com, Inc. or its affiliates.