Sunday, July 29, 2012

Progress Update: July



To do list from June of non quest/conversation stuff:
Finish sound and make sure it works ingame.
Get guards to react properly to a door that's open when it shouldn't be.
Set store hours and get that working.
Get conversational spell use working.
Add ambiance npc's in city exteriors and stores.
Get random results from pickpocketing working.

July:
Sounds all placed in game. Working in toolset, mostly not working  in game. Going to have to do some re-encoding.
Store hours: Ingame.
Exterior doors to stores and other building with hours close and lock at their closing time, unlock at open.
Guards reacting to doors: In, tested in test area. Demo video. Guards also are aware of store hours, so an open door when the store is open doesn't cause any notice, but an open door when the store is closed does.
Conversational spell use: Ingame.
Ambiance npc's : Commoner AI completed and released (http://neverwinter.nexusmods.com/mods/195/)
Random results from pickpocket: Sadly, looks to be hardcoded.

It looks like I was incredibly super productive. I have been quite productive, but all those things are things I've been working on for some time and I just percolated to completion this month.

Sounds I'd been working on for a couple months, researching and encoding, creating blueprints etc. Guards and doors was a week tweaking existing code I had made for guards and lights. Commoner ai work started last year, and had a demo release a few months ago. I spent a week this month ironing out bugs in buggy activities, improving performance, and integrating vfx for holdable items like books (since there are no equippable books). Conversational spell use it turned out I had working already, it simply wound up needing polishing of the code for animations.

Pictures:
First pic: I took a break from coding and put in some more verticality. A common request from people for Crimmor is roof top cat burgling. So this work will help support that, assuming I can get the walkmeshes working. The work also gives a more jumbled, people actually live here, look to the city, as opposed to a clean video game look.

Second pic: Commoner ai, these npc's were assigned to sit and read a book. The book is a vfx created by DannJ. With my commoner ai, you can animate an entire area of npcs, no matter how many, including different activities at different times of the day, and including making them go home and sleep, in thirty minutes. Yes, really.

Third pic: poor half orc, he doesn't get the concept of shoveling. The half orc model does not wield the quarterstaff shovel properly during the shoveling animation. Maybe half orcs just beat elves with the shovel until the elves do the shoveling. For those concerned about the small races and the quarterstaff shovel, I take care of that via temporarily granting the monkeygrip feat, allowing the small races to equip.

Saturday, July 14, 2012

Working around hardcoding

Obsidian unfortunately left some things hardcoded that I'd like to access. Namely, pickpocket and the set/remove trap skills. These skills can be accessed via the context menu. Looking into the context menu, the options for the buttons include the ExecuteServerScript function. Does that mean it should be possible to run our own scripts there by replacing the standard call to UIRadialNode_OnInit_UseSkill(int,int) with UIObject_Misc_ExecuteServerScript("gui_mystuff")?

The UIRadialNode_OnInit_UseSkill ultimately activates a call to the UseSkill function, which is hardcoded and unavailable.If UseSkill could be recreated, we could simply route calls to it to our own version. Unfortunately, there's no where to get this. Even nwnx doesn't seem to have it. It would not be necessary to recode the entire function, even specific functions for the individual skills we'd call would be sufficient.