Spoiler
scriptName powerShrineScript extends ObjectReferenceimport gameimport utilityString property graphVariable auto; //which stone are weBOOL PROPERTY bApprentice AUTOBOOL PROPERTY bAtronach AUTOBOOL PROPERTY bLady AUTOBOOL PROPERTY bLord AUTOBOOL PROPERTY bLover AUTOBOOL PROPERTY bMage AUTOBOOL PROPERTY bRitual AUTOBOOL PROPERTY bSerpent AUTOBOOL PROPERTY bShadow AUTOBOOL PROPERTY bSteed AUTOBOOL PROPERTY bThief AUTOBOOL PROPERTY bTower AUTOBOOL PROPERTY bWarrior AUTO; //list of the effectsSPELL PROPERTY pDoomApprenticeAbility AUTOSPELL PROPERTY pdoomApprenticeNegativeAbility AUTOSPELL PROPERTY pDoomAtronachAbility AUTOSPELL PROPERTY pDoomLadyAbility AUTOSPELL PROPERTY pDoomLordAbility AUTOSPELL PROPERTY pDoomLoverAbility AUTOSPELL PROPERTY pDoomMageAbility AUTOSPELL PROPERTY pDoomRitualAbility AUTOSPELL PROPERTY pDoomSerpentAbility AUTOSPELL PROPERTY pDoomShadowAbility AUTOSPELL PROPERTY pDoomSteedAbility AUTOSPELL PROPERTY pDoomThiefAbility AUTOSPELL PROPERTY pDoomTowerAbility AUTOSPELL PROPERTY pDoomWarriorAbility AUTO; //list of the messagesMESSAGE PROPERTY pDoomApprenticeMSG AUTOMESSAGE PROPERTY pDoomAtronachMSG AUTOMESSAGE PROPERTY pDoomLadyMSG AUTOMESSAGE PROPERTY pDoomLordMSG AUTOMESSAGE PROPERTY pDoomLoverMSG AUTOMESSAGE PROPERTY pDoomMageMSG AUTOMESSAGE PROPERTY pDoomRitualMSG AUTOMESSAGE PROPERTY pDoomSerpentMSG AUTOMESSAGE PROPERTY pDoomShadowMSG AUTOMESSAGE PROPERTY pDoomSteedMSG AUTOMESSAGE PROPERTY pDoomThiefMSG AUTOMESSAGE PROPERTY pDoomTowerMSG AUTOMESSAGE PROPERTY pDoomWarriorMSG AUTO; //list of Rested spells -- need to remove just for the LoverSpell Property pRested AutoSpell Property pWellRested AutoSpell Property pMarriageRested Auto; //the perk for RitualPERK PROPERTY pDoomRitualPerk AUTO; //the already have messageMESSAGE PROPERTY pDoomAlreadyHaveMSG AUTO; //the message to display if the player cannot take the stone he activatedMESSAGE PROPERTY pDoomCannotTakeMageMSG AUTOMESSAGE PROPERTY pDoomCannotTakeThiefMSG AUTOMESSAGE PROPERTY pDoomCannotTakeWarriorMSG AUTOMESSAGE PROPERTY pDoomTKCannotTakeGuardianMSG AUTO;************************************BOOL DOONCE=TRUEAuto State base EVENT onACTIVATE(OBJECTREFERENCE obj) ; //check to see if the player is the activator and we havent already activated IF(doOnce && obj AS ACTOR == game.getPlayer()) doOnce = FALSE ; //if we already have the power and this is the stone then kick the player out IF(bApprentice && game.getPlayer().hasSpell(pDoomApprenticeAbility)) pDoomAlreadyHaveMSG.show() utility.wait(2) doOnce = TRUE ELSEIF(bApprentice && game.getPlayer().hasSpell(pDoomMageAbility) == False) pDoomCannotTakeMageMSG.show() utility.wait(2) doOnce = TRUE ELSEIF(bAtronach && game.getPlayer().hasSpell(pDoomAtronachAbility)) pDoomAlreadyHaveMSG.show() utility.wait(2) doOnce = TRUE ELSEIF(bAtronach && game.getPlayer().hasSpell(pDoomMageAbility) == False) pDoomCannotTakeMageMSG.show() utility.wait(2) doOnce = TRUE ELSEIF(bLady && game.getPlayer().hasSpell(pDoomLadyAbility)) pDoomAlreadyHaveMSG.show() utility.wait(2) doOnce = TRUE ELSEIF(bLady && game.getPlayer().hasSpell(pDoomWarriorAbility) == False) pDoomCannotTakeWarriorMSG.show() utility.wait(2) doOnce = TRUE ELSEIF(bLord && game.getPlayer().hasSpell(pDoomLordAbility)) pDoomAlreadyHaveMSG.show() utility.wait(2) doOnce = TRUE ELSEIF(bLord && game.getPlayer().hasSpell(pDoomWarriorAbility) == False) pDoomCannotTakeWarriorMSG.show() utility.wait(2) doOnce = TRUE ELSEIF(bLover && game.getPlayer().hasSpell(pDoomLoverAbility)) pDoomAlreadyHaveMSG.show() utility.wait(2) doOnce = TRUE ELSEIF(bLover && game.getPlayer().hasSpell(pDoomThiefAbility) == False) pDoomCannotTakeThiefMSG.show() utility.wait(2) doOnce = TRUE ELSEIF(bMage && game.getPlayer().hasSpell(pDoomMageAbility)) pDoomAlreadyHaveMSG.show() utility.wait(2) doOnce = TRUE ELSEIF(bRitual && game.getPlayer().hasSpell(pDoomRitualAbility)) pDoomAlreadyHaveMSG.show() utility.wait(2) doOnce = TRUE ELSEIF(bRitual && game.getPlayer().hasSpell(pDoomMageAbility) == False) pDoomCannotTakeMageMSG.show() utility.wait(2) doOnce = TRUE ELSEIF(bSerpent && game.getPlayer().hasSpell(pDoomSerpentAbility)) pDoomAlreadyHaveMSG.show() utility.wait(2) doOnce = TRUE ELSEIF(bShadow && game.getPlayer().hasSpell(pDoomShadowAbility)) pDoomAlreadyHaveMSG.show() utility.wait(2) doOnce = TRUE ELSEIF(bShadow && game.getPlayer().hasSpell(pDoomThiefAbility) == False) pDoomCannotTakeThiefMSG.show() utility.wait(2) doOnce = TRUE ELSEIF(bSteed && game.getPlayer().hasSpell(pDoomSteedAbility)) pDoomAlreadyHaveMSG.show() utility.wait(2) doOnce = TRUE ELSEIF(bSteed && game.getPlayer().hasSpell(pDoomWarriorAbility) == False) pDoomCannotTakeWarriorMSG.show() utility.wait(2) doOnce = TRUE ELSEIF(bThief && game.getPlayer().hasSpell(pDoomThiefAbility)) pDoomAlreadyHaveMSG.show() utility.wait(2) doOnce = TRUE ELSEIF(bTower && game.getPlayer().hasSpell(pDoomTowerAbility)) pDoomAlreadyHaveMSG.show() utility.wait(2) doOnce = TRUE ELSEIF(bTower && game.getPlayer().hasSpell(pDoomThiefAbility) == False) pDoomCannotTakeThiefMSG.show() utility.wait(2) doOnce = TRUE ELSEIF(bWarrior && game.getPlayer().hasSpell(pDoomWarriorAbility)) pDoomAlreadyHaveMSG.show() utility.wait(2) doOnce = TRUE ELSEIF(bMage && (game.getPlayer().hasSpell(pDoomThiefAbility) || game.getPlayer().hasSpell(pDoomWarriorAbility))) pDoomTKCannotTakeGuardianMSG.show() utility.wait(2) doOnce = TRUE ELSEIF(bThief && (game.getPlayer().hasSpell(pDoomMageAbility) || game.getPlayer().hasSpell(pDoomWarriorAbility))) pDoomTKCannotTakeGuardianMSG.show() utility.wait(2) doOnce = TRUE ELSEIF(bWarrior && (game.getPlayer().hasSpell(pDoomMageAbility) || game.getPlayer().hasSpell(pDoomThiefAbility))) pDoomTKCannotTakeGuardianMSG.show() utility.wait(2) doOnce = TRUE ELSE ; // present them with the choice IF(showSign() == 0) addSign() SELF.playAnimation("playanim01") utility.wait(15) doOnce = TRUE ELSE utility.wait(2) doOnce = TRUE ENDIF ENDIF ENDIF endEVENT endStateint FUNCTION showSign() int signHolder IF(bApprentice) signHolder = pDoomApprenticeMSG.show() ELSEIF(bAtronach) signHolder = pDoomAtronachMSG.show() ELSEIF(bLady) signHolder = pDoomLadyMSG.show() ELSEIF(bLord) signHolder = pDoomLordMSG.show() ELSeIF(bLover) signHolder = pDoomLoverMSG.show() ELSEIF(bMage) signHolder = pDoomMageMSG.show() ELSEIF(bRitual) signHolder = pDoomRitualMSG.show() ELSEIF(bSerpent) signHolder = pDoomSerpentMSG.show() ELSEIF(bShadow) signHolder = pDoomShadowMSG.show() ELSEIF(bSteed) signHolder = pDoomSteedMSG.show() ELSEIF(bThief) signHolder = pDoomThiefMSG.show() ELSEIF(bTower) signHolder = pDoomTowerMSG.show() ELSEIF(bWarrior) signHolder = pDoomWarriorMSG.show() ENDIF RETURN signHolder endFUNCTION; //FUNCTION: addSign; //; // adds the sign of the stone to the playerFUNCTION addSign() game.AddAchievement(29) IF(bApprentice) game.getPlayer().addSpell(pDoomApprenticeAbility) game.getPlayer().addSpell(pdoomApprenticeNegativeAbility) ELSEIF(bAtronach) game.getPlayer().addSpell(pDoomAtronachAbility) ELSEIF(bLady) game.getPlayer().addSpell(pDoomLadyAbility) ELSEIF(bLord) game.getPlayer().addSpell(pDoomLordAbility) ELSeIF(bLover) game.getPlayer().removeSpell(pRested) game.getPlayer().removeSpell(pWellRested) game.getPlayer().removeSpell(pMarriageRested) game.getPlayer().addSpell(pDoomLoverAbility) ELSEIF(bMage) game.getPlayer().addSpell(pDoomMageAbility) ELSEIF(bRitual) game.getPlayer().addSpell(pDoomRitualAbility) game.getPlayer().addPerk(pdoomRitualPerk) ELSEIF(bSerpent) game.getPlayer().addSpell(pDoomSerpentAbility) ELSEIF(bShadow) game.getPlayer().addSpell(pDoomShadowAbility) ELSEIF(bSteed) game.getPlayer().addSpell(pDoomSteedAbility) ELSEIF(bThief) game.getPlayer().addSpell(pDoomThiefAbility) ELSEIF(bTower) game.getPlayer().addSpell(pDoomTowerAbility) ELSEIF(bWarrior) game.getPlayer().addSpell(pDoomWarriorAbility) ENDIF endFUNCTION;************************************State waiting ;do nothingendState;************************************My problem: the pDoomCannotTakeMSG is being displayed just fine, but for some reason, the pDoomCannotTakeGuardianMSG is not being displayed at all. And I can find absolutely no reason for it to not be displayed, it is assigned correctly in the properties and the Debug messages I inserted to check if the segments are actually running ARE being displayed.
So if I may ask, what gives?
If it helps, here' is the relevant warning from the Log:
Spoiler
[03/14/2012 - 01:49:48AM] error: Cannot call Show() on a None object, aborting function call
stack:
[ (000E7BD6)].powerShrineScript.OnActivate() - "powerShrineScript.psc" Line 175
[03/14/2012 - 01:49:48AM] warning: Assigning None to a non-object variable named "::temp5"
stack:
[ (000E7BD6)].powerShrineScript.OnActivate() - "powerShrineScript.psc" Line 175
[03/14/2012 - 01:49:53AM] error: Cannot call Show() on a None object, aborting function call
stack:
[ (000E7BD6)].powerShrineScript.OnActivate() - "powerShrineScript.psc" Line 175
[03/14/2012 - 01:49:53AM] warning: Assigning None to a non-object variable named "::temp5"
stack:
stack:
[ (000E7BD6)].powerShrineScript.OnActivate() - "powerShrineScript.psc" Line 175
[03/14/2012 - 01:49:48AM] warning: Assigning None to a non-object variable named "::temp5"
stack:
[ (000E7BD6)].powerShrineScript.OnActivate() - "powerShrineScript.psc" Line 175
[03/14/2012 - 01:49:53AM] error: Cannot call Show() on a None object, aborting function call
stack:
[ (000E7BD6)].powerShrineScript.OnActivate() - "powerShrineScript.psc" Line 175
[03/14/2012 - 01:49:53AM] warning: Assigning None to a non-object variable named "::temp5"
stack:
So, why is Papyrus going behind my back reassigning the property I assigned for that message with None, for no reason at all?
