Jump to content

Improved NPC customization and management: 35.16 Hexxat dies when joining


Guest John

Recommended Posts

Guest John

Improved NPC customization and management: 35.16

When Hexxat joins in the Copper Coronet she is becomes vapor when she goes to level 0. She doesn't resurrect herself or regenerate. Clicking on her shows this character has died. 

You can get past it if you hit character screen button right after the dialog closes as she joins and then level her up before leaving the character screen. Once leveled up to 1 she is fine. 

Link to comment

The component is supposed to skip Hexxat, for multiple reasons. Not only does her vampire scripting break when she's set to level 0 with 1 HP, she doesn't get enough skill points if you customize her into any sort of thief. (Her racial bonuses of 15 Pick Pockets, 10 Open Locks, 5 Find Traps, 10 Move Silently, and 5 Hide in Shadows are implemented as already invested skill points in her CRE files, as vampires don't have an entry in the relevant table.)

So, the real question: why is she being set to level 0, when there's explicit code in there to exclude her? And that bit hasn't changed any time recently.

Link to comment
Posted (edited)
On 5/18/2024 at 12:27 PM, jmerry said:

So, the real question: why is she being set to level 0, when there's explicit code in there to exclude her? And that bit hasn't changed any time recently.

The file "level_zero_exclude.2da" lists NPCs that will get level 0 treatment. The file only lists two characters "BDCAELAR" and "HEXXAT". The first one is Caelar Argent in SoD and the next one is Hexxat. I think they refer to their CRE file names. However, Hexxat's CRE name is OHHEX, not HEXXAT. Maybe this is the problem that she doesn't get excluded. This happens in my beta 11 install.

Edited by Xiaolong
Link to comment

I thought of that. No, it's a script name comparison - which it pretty much has to be, to catch all versions of the character. And while Hexxat's CRE files are "OHHEX##", her script name is "hexxat". Or "HEXXAT", depending on which CRE file is used.

I'm pretty sure that everything that checks script names in-game is case-insensitive, so that variation doesn't actually matter. Here ... when reading in the file and building the array, force lowercase. So that's "hexxat" in the array we'll check against. Then read the script name from the creature file we're looking at, convert it to lowercase, and compare with the array. Effectively case-insensitive, and it should match. Though the setup might break on long script names; it's an eight-byte read on a 32-byte field. Not a problem for Hexxat, though.

Link to comment

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...