|
Post by accerak on Sept 15, 2009 6:45:58 GMT -5
I was reading the forums over at Bioware and Badwater noted you were having issues with the CRP secret items not appearing/hiding correctly.
I used to work on the CRP team as a scripter so I'm fairly familiar with the scripts. I'd work on this problem myself, but I don't have a module large enough to actually have the problem manifest, but I would like to make a suggestion...
I think the problem may be similar to what 420 posted in the bioware forum. I do think the module is simply loading faster than what the engine can scan through all of the objects in it. As a result, maybe breaking down the scanning into smaller chunks is the answer. By that I mean maybe doing something like this:
1. Create a hidden "initiator" placeable in each area. 2. attach a script to each initiator that scans only the area it is in for secret objects. This script would essentially be the one that is used in the module's onload, except it would be limited in scope to the immediate area. This script could be attached to the initiator's onspawn event and set to fire with a short delay (a couple seconds maybe), so that all the other objects in the area are sure to be spawned. 3. Remove the current part of the onload script that scans for secret items.
This will involve some scripting, but shouldn't be too bad. I'd be happy to work on it, but like I said, I don't have a mod big enough that the problem actually shows up. Let me know what you think though. I believe I could mock up the scripts and related objects if you have a means to test. You can get in touch with me by email at accerak@accerak.com if you're interested.
|
|
|
Post by Badwater on Sept 15, 2009 10:25:12 GMT -5
I'll take any help I can get.
It shouldn't require a large module to create the scripting and see if it works. To be sure, CRP does not need to go through everything in every area to be hiding stuff.
That's only part of the problem, though. Even with successful hiding of placeables - pits and items - they vanish immediately when succesfully found. So perhaps it's a connected issue and perhaps not, but I'm thinking not.
What 420 said doesn't seem to be the issue as I see it if only because secret doors and tracks ALWAYS hide and they work when found. I'm not seeing a pattern of failure that I would expect if it was simply a matter of CRP not hiding fast enough for the module load. I would expect if that was the case then all hidden placeables would be affected, somehow. Instead, it's only certain ones, which tells me the problem likely lies elsewhere.
But where? Is the destroy script jumping the gun on the hidden sacks and hidden compartment initiator? That seems like a possibility to me.
I think there are two separate bugs going on. 1) Somehow the scripting for the sacks and compartments is bugging and destroying them in large modules. Breaking things down on the module load, as you and 420 suggest, might address this and I'm willing to try although my hunch is that it won't work. 2) Hidden pits and items are vanishing immediately when successfully found. I have no idea why. I've made a cursory look at the related scripting and I have no idea why that's happening...but maybe, even though it's not intended, a long reset variable is needed for them so that the placeables are forced to stay? They weren't setup that way that I know of but maybe we need to tweak the scripting on those placeable and force the issue...?
|
|
|
Post by accerak on Sept 17, 2009 6:43:13 GMT -5
I'll spend some time on it this weekend and see what I can come up with. I'll let you know as soon as I have something working 100% in a smaller mod.
|
|
|
Post by Badwater on Sept 17, 2009 8:56:50 GMT -5
Thanks very much for your willingness to help out on this!
|
|
|
Post by accerak on Sept 17, 2009 22:04:08 GMT -5
I found one thing on the pit trap triggers right off the bat. They should have their "detectable" box unchecked. The players should have to use the PAW and search the area in order to find the trap. When I used the trigger as is from CEP, I was able to recreate the pit itself disappearing right away. The scripts were designed so that players would have to search the area with the PAW to discover the pit. Then they can disarm it normally (by right clicking and selecting disarm, flag, etc...).
I should also note, that the way to set the detection DC on the pits is a bit different than other CRP related things. Basically, before you uncheck the "detectable" checkbox on the trigger, set the DC to in the Detection DC box of the trigger itself. When you uncheck detectable, the Detection DC you just set is what will be used for detecting the pit when the pc's search the area. The documentation is very unclear on all of that unfortunately.
Just some things you may want to check on your pits.
|
|
|
Post by Badwater on Sept 17, 2009 23:55:24 GMT -5
I found one thing on the pit trap triggers right off the bat. They should have their "detectable" box unchecked. The players should have to use the PAW and search the area in order to find the trap. When I used the trigger as is from CEP, I was able to recreate the pit itself disappearing right away. The scripts were designed so that players would have to search the area with the PAW to discover the pit. Then they can disarm it normally (by right clicking and selecting disarm, flag, etc...). I should also note, that the way to set the detection DC on the pits is a bit different than other CRP related things. Basically, before you uncheck the "detectable" checkbox on the trigger, set the DC to in the Detection DC box of the trigger itself. When you uncheck detectable, the Detection DC you just set is what will be used for detecting the pit when the pc's search the area. The documentation is very unclear on all of that unfortunately. Just some things you may want to check on your pits. This works as advertised. I did read somewhere (probably the pdf) about needing to set the trap DC high enough so it would not be detectable by normal NWN search. The trigger will do its thing based on the variable DC. If a character stumbles upon the trap without detecting it and falls in then everything works perfectly (the character screams and falls in, and takes damage, and the placeable stays). If a character uses the PAW and detects the pit trap successfully then the placeable disappears in an instant and goes away forever. This is what also happens with hidden items - a successful search with the PAW will have the character do the emote (the character finds the placeable) but the placeable immediately disappears. This also happened with secret doors before I gave them an active RESET number; the doors did not stay permanent if there was a RESET of 0. Instead, they immediately vanished! I have since just used secret doors with a RESET integer. If you like to see what happens in the module for yourself then let me know a date/timeframe and I'll port you to the places where I have these hidden placeables that are not working, and you can see for yourself what is going on.
|
|
|
Post by accerak on Sept 18, 2009 6:18:19 GMT -5
Thanks Badwater. I'll take you up on that. I'm in the Central time zone, would like 8 or 9 pm tonight my time work for you? It'll be a big help to see the problems first hand because I'm having a hard time recreating them in a small mod. Things all seem to work just fine unless I purposely start trying to break things.
|
|
|
Post by Badwater on Sept 18, 2009 13:48:58 GMT -5
Thanks Badwater. I'll take you up on that. I'm in the Central time zone, would like 8 or 9 pm tonight my time work for you? It'll be a big help to see the problems first hand because I'm having a hard time recreating them in a small mod. Things all seem to work just fine unless I purposely start trying to break things. I will look for you around that time and port you to the places where we have the secret placeable problems.
|
|
|
Post by accerak on Sept 18, 2009 23:18:56 GMT -5
Badwater, I've attached an erf that should allow you to switch from scanning every object in the mod to scanning only particular areas for hidden objects. The erf contains: 1 placeable - called "Area Initiator" that is in the custom secret objects section of the placeables palette. It has 1 script attached to it called "crp_init_ude". You need to put this placeable in any area that contains secret/hidden objects, pits, etc... A modified "zep_on_mod_load" script. I don't know what you're using in your on module load event, but you should be able to look at this one and make the appropriate changes in your script. Basically I just comment out all of the original CRP code and add a new block at the very top of the script that does a couple of things... 1. It sets the CRP Hidden Objects waypoint as a local object on the module. 2. It creates a custom User defined event 3. It scans through all of the area initiators in the module and tells them to fire that custom UDE. The custom UDE scans through and hides secret objects in the areas that contain initiators only. After seeing what was happening in your mod, I'm not entirely convinced that this will fix the problems, but it's a place to start and should help with performance on module load regardless. Give it a try and let me know what happens. Attachments:
|
|
|
Post by Badwater on Sept 19, 2009 10:45:06 GMT -5
I encountered errors trying to download the erf from the forums. Please send the erf to carl_blackwell@yahoo.com
Thanks!
|
|
|
Post by Badwater on Sept 20, 2009 2:35:48 GMT -5
I brought up a module with the Module Load script modified, and the Area Initiator placed in 2 areas - one area with the hidden compartment and sack that is known to not work, and an area with hidden tracks that are known to work.
The Area Initiator works as it is supposed to - secret placeables are not hidden if the Area Initiator is not placed in the area, but if it's placed then everything works properly with the placeables that worked properly before. I placed the Area Initiator in an area with hidden tracks. The tracks were hidden properly and a successful PAW search revealed the tracks properly.
The area with the hidden compartment and hidden sack came up as it did before - with Remains, just as you saw when you were on Talus.
So your script hides what could be hidden before, and the results are still the same in terms of what is happening with the hidden placeables.
|
|
|
Post by accerak on Sept 20, 2009 6:54:44 GMT -5
Well that definitely narrows down the hunt then. I suspected, after seeing the problem first hand, that it was something about the way the mod is recreating the hidden objects. This confirms it. I'll keep at it and keep you posted.
|
|
masterstrife
Acolyte
Losing sanity one braincell at a time...
Posts: 80
|
Post by masterstrife on Jan 28, 2010 19:56:32 GMT -5
This ever end up getting resolved or did it just get put to the backburner?
|
|
|
Post by Badwater on Jan 29, 2010 1:35:50 GMT -5
It has still not been resolved. I will take another look at it after Fandar is updated.
|
|