Trouble with perk using abilities and a quest

Post » Sun Aug 08, 2010 12:41 pm

I'm trying to polish a perk I've been working on for a while with help from the kind folks here (thanks again otm and RickerHK!), but I've run into trouble yet again. I figure it's time to lay out exactly what I'm trying to do, so I'll do that first: I'm trying to create a perk that will, once taken, lower the player's CHA and PER permanently, but boost them back to normal levels and give additional boosts to DR and Unarmed Damage when the player is within range (basically on top of) any of the thousands of paper clutter textures strewn about the Wasteland. For this purpose, I've utilized
1. A perk to keep everything in, obviously. The perk triggers two things:
2. An actor effect to lower CHA and PER
3. A quest to attach a script to. It runs every tenth of a second - the slowest I could get it without the perk not really working - and does most of the work, triggering:
4. Another actor effect, this time handling the DR and Unarmed stuff, and boosting the CHA and PER. I know I could do the actor effect stuff in the script, but it seems like unnecessary extra work when I'm struggling to get the thing running at all. Also I am terrible at scripting, so it's pretty much guaranteed to cause me more headaches.

Now, here are my problems
A. If I set the actor effects to DISEASES, the script will work perfectly - but it will work perfectly even if the player does not have the perk. The unscripted disease - the one that simply lowers CHA and PER - doesn't activate when the perk is not chosen. That's good, I figure it means the problem is related to the script trigger.
B. If I set the effects to ABILITIES, they don't do anything under any circumstances.

I have tried everything I can think of and several things I can't to fix this, but it's not helping. Hours searching these forums and the G.E.C.K. "help" wiki (those are sarcastic quotation marks, in case you can't tell by their smirks) have left me possibly knowing less about my problem than I did before. Any help would be intensely appreciated - I'm talking worship-level appreciation here.

PS: Sorry for posting another thread so soon after the last one - I wouldn't have, only I can't edit the title of the previous one and it no longer applies in any way (due to my hero RickerHK).

PPS: Here's that script in case it's needed. It really does work beautifully when it's running; if I could just get it to run only when I want it to I'd be very happy. Warning: FOSE ahead:
scn NPTrashHumperSCRIPT; Big thanks to otm from the gamesas forums for putting me on the right track and huge thanks to RickerHK from same for fixing what I broke.; Between them they probably wrote most of this.ref yourPaper ; yourPaper is gonna be ShackPaperDebris01-05short iPaperCountBegin GameMode    set iPaperCount to 0    set yourPaper to GetFirstRef 32 1 0     ; Find static world object in current cell    Label 10    if yourPaper != 0        if yourPaper.GetIsID ShackPaperDebris01 || yourPaper.GetIsID ShackPaperDebris02 || yourPaper.GetIsID ShackPaperDebris03 || yourPaper.GetIsID ShackPaperDebris04 || yourPaper.GetIsID ShackPaperDebris05            if yourPaper.GetDistance player < 100             ; If the player is close to yourPaper                set iPaperCount to iPaperCount + 1                 ; Count paper            endif        elseif yourPaper.GetIsID StreetLitter01 || yourPaper.GetIsID StreetLitterDark01 || yourPaper.GetIsID StreetLitterEdgeShaded01            if yourPaper.GetDistance player < 220                set iPaperCount to iPaperCount + 1            endif        elseif yourPaper.GetIsID StreetLitter02 || yourPaper.GetIsID StreetLitterDark02            if yourPaper.GetDistance player < 190                set iPaperCount to iPaperCount + 1            endif        endif        set yourPaper to Pencil01         ; Prevent apple bug        set yourPaper to GetNextRef         ; Find the next static world object        Goto 10    endif    if (iPaperCount)        player.AddSpellNS NPTrashHumperSPELL        ; Add perk ability with no message    else        Player.RemoveSpell NPTrashHumperSPELL    endifEnd


PPPetc: Please excuse me if I'm not around for the next 24 hours or so - I seem to have stayed up until 9:48 AM messing with this.
User avatar
carly mcdonough
 
Posts: 3402
Joined: Fri Jul 28, 2006 3:23 am

Return to Fallout 3