A variant on Scarface's Hide in Plain Sight Restriction.
Adding these scripts to your module will force a character with the HiPS feat to stay out of stealth mode for at least one round if combat is entered. The basic algorithm is by Scarface, but I've reworked the implementation to be more efficient, and added a few features.
What hasn't changed: This uses no loops, and only fires for players who have the HiPS feat via a pseudo-heartbeat function (which, in theory, should be pretty efficient, unless your server is full of Shadowdancers and Shifters).
What has changed: The basic implementation is more efficient, players are told how long they have to wait if they try to re-enter stealth too soon, and the delay before re-entering stealth is uniform (a flat 6 seconds, instead of between 1 and 10 seconds). Furthermore, players are only restricted from re-entering stealth if they were involved in combat. (This adds a little complexity to the script, but can be easily removed if efficiency is at a premium.)
In addition, I've provided a hook that will enforce these restrictions on Shifters in Kobold Commando form.
To use: Save this file in your erf directory, then import it into your module. You'll need to update your OnClientEnter, OnPlayerLevelUp, and OnPlayerEquipItem events. Directions are included in the script comments.
If the delay is not to your liking, you can change it by adjusting the constant in tk_hips_inc and re-compiling your scripts.
I didn't know about the hacker proof .2da's (or had forgotten the details). Sounds cool. More options.
By the way, when you moved HiPS to shadowdancer level 31, did you remember to also remove it as a bonus feat from both Kobold Commando Swords (used by shifters)?
Yes....the Flag would work well for the PvE. Nice idea there. That Perceive Event is called enough by NWN that it could work very well.
As for PvP the ONLY solution is dropping the 2DA in the Server Override.....Remember something about 2DAs and the Server.....Bioware made a fix...v1.67?...that classed many 2DAs as Hacker Proof.....in this case the Class Based 2DAs can be dropped in the Server WITHOUT having them on the Client computers! This means no Hak needed for the Online SD Fix. Nice indeed.
To be honest....I have not found many 2DAs that are not Hacker Proof.... soundset.2da is one that Client Computers need to let them 'Unlock' additional voice sets for their character.
Soooo....if you want HiPS to be playable....you could do what I do is script in a Bonus to Stealth is they have the SD Class. It is covered in the Module OnEnter Event and lasts until the module reloads.
Stealth is STILL in the perceive tables as Hidden and can use Spot and Listen Checks.....so giving a bonus of say 20 Hide Skill gives the High Hide Skill but does not break the game engine. This is now a feature (configurable) in the soon ORSv5 since this was asked about a TON by players and something I coded in my PWs.....worked great.
Yes, there are shortcomings with this method. It doesn't fully resolve abuse, but at least it makes it more difficult (and is an option when completely disabling HiPS is not).
I'm going to be looking at this again soon to see if it can be improved. Would it be good to have this script set a flag on PCs when they are restricted from entering stealth? Let's say it sets a local integer named "HIPS_RESTRICTED" when a PC is not allowed to enter stealth. I'm thinking that when a PC disappears from an NPC's perception, the AI could check the flag and the PC's stealth status. If the PC is stealthed and the flag is set, the NPC would ignore the disappearance and continue to attack (or whatever) since the PC will soon be tossed out of stealth.
This wouldn't do anything to help PvP, but it might help PvE. (Actually, I'd be surprised if HiPS could be made to work in PvP given the engine limitations.) I'm not sure how well this would work in practice -- it's just an idea that occurred to me. And it's easy enough to add, so I'll throw it in when I do the revisions (after 1.69 comes out).
Sorry...does not resolve the abuse of HiPS by players in PvE or PvP.
This is NOT a flame....just an explain what it does since there is no documentation or Demo Module with this download.
The script uses a 1 Second DelayCommand to loop on a Player while they are online. It does cancel the HiPS but it does every 1 Second unless the Round Counter Expires.
The issue with this type of HiPS (I know....I tried the same thing and gave up for the 2da fix) is that 'Quick-Fingers' can press and release very quickly...0.2 Seconds (any faster and the computer has trouble processing the key strokes)....NWN Script is plenty fine with 0.2 Seconds as it is running much faster. So pressing the Stealth Action then pressing again WILL TAKE NPCs AND PLAYERS OUT OF COMBAT MODE. I do this in the OAI with Stealthy NPCs....I had to build in timers so that Players (including me) would not get pissed off by exiting combat all the time.
So...use this script if you are in a DM Controlled Environment or where you have very low server overhead resources where adding this type of script load will not bother other DelayCommand Stacks.
Remember....even with HiPS on a restricted basis it is a game engine exploit as the Aurora Engine cannot handle stealth very well.....particularly something that does not exist in the perceive tables. Greater Sanctuary does the same thing....as well as a few others.
The best fix....edit the SD 2da to HiPS at Level 31 and drop it in the server/local override folder or add it to your Hak.
SD is STILL an awesome class to have even without HiPS.
Cheers
Olander
Posted by Sethivict at 2007-09-20 00:59:26 Voted 9.00 on 09/20/07
It works as a charm and its easy to install. Dont understand noone voted, but here is mine
An empty file might be a Vault error. (I checked, and my download worked ok.) Maybe you just need to clear your browser's cache and try downloading again. Is the file you downloaded 16,380 bytes? Did you get any strange messages when you imported?