Jump to content
  • entries
    74
  • comments
    426
  • views
    1434128

About this blog

Questions, Answers and a Little Bit More

Entries in this blog

Couple new GUI script functions for 1.06

1.06 will have a number of new script functions that will give improved control over custom GUIs.   Two of the new script functions are:   SetGUIProgressBarPosition();   This script function will let you set the position of a progress bar (Between 0.0 for empty and 1.0 for full).   The other new function is:   SetGUITexture();   This script function will let you set the texture for a UIIcon, a UIFrame's fill texture, or a Button's Base Frame's fill texture.   Both script fun

Rob McGinnis

Rob McGinnis

UIScene

The UIScene tag at the top of the XML files defines certain global parameters about the entire GUI window being defined in the file.   A scene doesn't have anything to render by default, but rather contains items that will get rendered. So a file that defines a UIScene and nothing else will not appear as anything in the game.   Some of the attributes for UIScene overlap with those of UIObject, even though UIScene does not inherit from UIObject, so this attributes will be repeated here.  

Rob McGinnis

Rob McGinnis

NWN2 News May 2, 2007

Neverwinter Nights 2 Community Update   Well, it's that time of week again, where I need to dig into the production list and scour the community for those things that may interest you.   Mod-Making Contest Complete Monday was the last day for submissions to the mod-making contest. The theme for this contest was Grimm's Fairy Tales. We have quite a few submissions and, after playing a couple mods yesterday, I think the competition is going to be pretty fierce. The exteriors I have se

Rob McGinnis

Rob McGinnis

Is Flight Possible?

Question: Could flying ever be a possibility?   Answer: The NWN1 and NWN2 engines really don't have a concept of up or down when it comes to how the engine sees the world of the game. Adding that understanding would probably require a lot of work and the re-writing of large sections of the engine.

Rob McGinnis

Rob McGinnis

NWN2 News June 13, 2007

Neverwinter Nights 2 Community Update June 13th, 2007   NWN2 Game Update Version 1.06 Released! That's right, the 1.06 game patch has been released. French-language users may have a little trouble downloading the patch. You can download the patch from the NWVault Official Patches page while we work on a fix. As always, we want to hear about any issues caused by the patch. You can let us know here, in the announcement thread on the Bioware forums.   We Have a Winner! Congratulatio

Rob McGinnis

Rob McGinnis

UIText

UIText is the GUI object used for containing and rendering text. It is one of the more complicated UI Objects to work with.   UIText takes the following attributes:   fontfamily This defines which font should be used via a string argument. The fonts are defined in fontfamily.xml. The 'name' attribute for the different UIFontFamily elements in fontfamily.xml is how they are identified here. If this attribute is not set, then the text field will use the 'Default' font family defined in fon

Rob McGinnis

Rob McGinnis

UIObject_Input_ActionTargetScript

This callback will be one of the most powerful new tools when it comes to creating custom actions in the game.   UIObject_Input_ActionTargetScript(), new in 1.06, will let you make 'GUI actions' similar to the 'actions' that are created when you click on a spell or feat button to cast it, or on a button in the DM Choser that then has you select a target to do the action to.   Once the user clicks on a valid target, a bunch of data will be sent to the server along with a request to execute

Rob McGinnis

Rob McGinnis

UIObject

UIObject is the 'base' GUI object. You can't actually define it in XML, but it contains attributes that are common to many different UI Objects, so I'm starting here.   The following are the attributes that will be loaded for every UI Object in the XML file except for the attributes.   Some attributes will be ignored or overridden depending on the situation. Note that attributes are case sensitive.   name String value for the name of the UI Object. This is used internally and will be

Rob McGinnis

Rob McGinnis

Walkmesh and Textures and Music. Oh my!

Q: In walkmeshes, each face has a 32-bit flag. We have seen the values 0x0, 0x9, 0x11, 0x21, 0x41 and 0x101. The bottom bit seems to indicate whether the face is walkable or not, but what do the other bits mean?   A: The bit assignments for the walkmesh face flags are: bit 0: walk bit ( 1 = walk, 0 = no walk ) bit 1 - 2: reserved bit 3 - 13: material ( used for footstep sounds, etc... I dont know what will happen if more than one of these are set at the same time. I dont recommend it. )... bi

Rob McGinnis

Rob McGinnis

IntToObject

By: Rich Taylor   This is just a quick note to mention that I've added: object IntToObject( int nInt );   and   int ObjectToInt( object oObj );   scripting functions for 1.06.

Rob McGinnis

Rob McGinnis

1.06 Progress

By: Rich Taylor, Lead Programmer   The 1.05 beta was posted today. One tweak that I intend to have made before 1.05 final is to remove the 'tabs = 5 spaces' change in the script editor. While some people do want some option like that, I think it needs to be implemented as something that can be turned on/off/adjusted, so for now, it's best to leave it out and re-implement it correctly in 1.06.   As far as 1.06 goes, I've spent a lot of time this week integrating a lot of the NWN1 1.67 chang

Rob McGinnis

Rob McGinnis

Special Screens

By: Rich Taylor   Taking a break from writing about the UI Elements for a moment, though there are still some of those that I will cover in future posts.   Most XML files are loaded as default UI Scene, which implies no special behaviors. There are, however, several XML files that will get special handling in code and most conform to specific rules in order to even be loaded. All of these scenes are distinguished by their identifying name in the INI file (Or the screen tag given to them wh

Rob McGinnis

Rob McGinnis

UIObject - hideoverride

By: Rich Taylor   In 1.05 there is a new attribute that all UI Objects handle called hideoverride. If true, this attribute sets a UI Object hidden and keeps it that way until a script says otherwise via the SetGuiObjectHidden() script function.   This can be used to keep an item hidden that the GUI may try to make visible regardless what a script tries to do, such as a row in a list box.   As a result, objects that are set hidden via SetGuiObjectHidden() will STAY hidden no matter what,

Rob McGinnis

Rob McGinnis

NWN2 News April 18th, 2007

Neverwinter Nights 2 Community Update   Here we are with the second installment of the Community News. It's been a busy week, to say the least.   Update to the 1.05 Game Update Update I think it's fair to say that the 1.05 patch has been my least favorite patch so far. Not because of content - the content of it is great - but because it has been a thorn in our side like no other. When we released the patch to everyone, a seemingly small issue was found that caused the toolset error ou

Rob McGinnis

Rob McGinnis

2DA Caching for Script Lookups

(Rich Taylor gives us a peek into 2da caching)   Our lead scripter, Charles Mead, informed me that we did not cache 2DAs that were being queried by script. This resulted in ridiculous seek time for looping over large 2DAs.   He indicated that Bioware had fixed that in the 1.64 code, so I referenced the 1.67 code drop that we had and saw that they had implemented a system whereby the most recent 2 2DAs that were queried were cached.   I took that a bit further and made it so that the # o

Rob McGinnis

Rob McGinnis

UIObject_Tooltip_DisplayTooltipString

UIObject_Tooltip_DisplayTooltipString takes up to 9 parameters, but only the first four parameters are required.   Parameter list:   Message = The literal string to display in the tooltip   XLoc = The X origin for where the tooltip should appear. This can be a pixel location, or you can use the following two strings to make it relative: MOUSE_X will place the X origin of the tooltip near where the mouse is. OBJECT_X will place the tooltip next to the UIObject that is being moused over,

Rob McGinnis

Rob McGinnis

Welcome!

Welcome to the Neverwinter Nights 2 Blog!   Here you will find answers to questions asked on the official Neverwinter Nights 2 Forums and some additional information put out by some of the developers at Obsidian.   With these Blogs we hope to give you some insight into the workings of the game and answer some of the more difficult questions

Rob McGinnis

Rob McGinnis

UIObject_Misc_StoreObjectData

The only valid parameter to this callback is a local or global GUI variable index. localguivars are expressed as local:#, where # is the index for the variable.   globalguivars are expressed as global:#, where # is the index for the variable.   This callback takes the engine-level data in a UIObject and stores it in a global or local gui variable. The engine-level data will vary from UIObject to UIObject. It is also impossible to specify which data item you want to set the GUI variable t

Rob McGinnis

Rob McGinnis

Upcoming 1.05 Patch

Rich Taylor gives us a peek into what will be in the 1.05 patch:   While the 1.04 patch is about to come out for NWN2, the 1.05 patch isn't too far off either. Rather than make 1.05 a big patch like 1.04 is, we want to release a small, quick patch to try and quickly resolve some issues the custom content community for NWN2 is running into.   I recently revamped the auto-updater to allow for incremental patches. This means that if someone had 1.02, the patcher would patch them up to 1.03, t

Rob McGinnis

Rob McGinnis

Restricting Diety Selection and Addign Skills

Q: Is there a way that you can filter the domains available when taking the first level of cleric, based on the deity the player chooses? Torm, for example, might only offer the Good, Sun, War and Healing domains. Is this possible?   A: It is not currently possible to restrict domains based on deity selection.   The Domain GUI code has no knowledge of your deity selection, nor is there any data loaded up on a deity-by-deity basis on what domains are in that deity's portfolio. Also, default

Rob McGinnis

Rob McGinnis

Eye Alignment

Question: Is there any reasonably simple way to change the eye alignment on head models? The eyes on most of the gnome and elf heads are very oddly placed, giving the impression that they are always squinting or looking up. Very distracting in cutscenes- the impression I get from most of the Elves is that of whiny teenagers looking sullenly up at parents while getting yelled at. I get the impression that many of the head models were built in one race and modified to fit one or more others. I am

Rob McGinnis

Rob McGinnis

Ranges.2da and Seeing Stars

Q: Ranges.2da has 2 columns labeled 'PrimaryRange' and 'SecondaryRange' which are apparently only used for perception ranges... Which of these columns affects the seeing range and which hearing (I assume 'Primary' is hearing based on my tests, but I'm not sure)? What values does the PercepRngDefault use? It uses the usual **** entries for default values, but where is that value defined?   A: Primary Range is the Spot range (Visual range) Secondary Range is the Listen range (Hearing range)

Rob McGinnis

Rob McGinnis

8-bit Alpha and Translucent Surfaces

Q: With 8-bit alpha, is it possible with the current NWN2 engine to use the alpha to make a surface translucent (as in 50% opacity with an alpha pixel value of 50%)?   A: There are two ways to make a surface translucent.   One way would be to make a special effect that edits the alpha. In the VFX editor this would be called a "game model effect". Then you'd have to assign the effect to the object via the toolset, or script.   The second way would be to export the model that you want the

Rob McGinnis

Rob McGinnis

MDB File Bitflags

Q: Some of the blocks in a MDB file have a 32-bit field in front of the vertex count field, which we assume is a flag bit vector. In most cases it has a value of 0, but occasionally some bits are set. What do they indicate?   A: The bitflags are as follows for skin and rigid packets:   const DWORD NWN2_ALPHA_TEST = 1 << 0; const DWORD NWN2_ALPHA_BLEND = 1 << 1; // #### SHOULD NOT BE USED const DWORD NWN2_ADDITIVE_BLEND = 1 << 2; // #### SHOULD NOT BE USED const DWOR

Rob McGinnis

Rob McGinnis

×
×
  • Create New...