Trying to add a new standing stone.

Post » Wed Jun 20, 2012 5:22 am

I have been trying to add a new paladin stone into the game. I thought i was successful in doing so but some stones are being problematic. The new paladin stone will remove all other stones effects and add its own, however a couple stones will not remove the paladin ability while others will. To get where I was I edited the powerShineScript to include the new properties.
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 bPaladin 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 pDoomPaladinAbility 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 pDoomPaladinMSG AUTOMESSAGE PROPERTY pDoomRitualMSG AUTOMESSAGE PROPERTY pDoomSerpentMSG AUTOMESSAGE PROPERTY pDoomShadowMSG AUTOMESSAGE PROPERTY pDoomSteedMSG AUTOMESSAGE PROPERTY pDoomThiefMSG AUTOMESSAGE PROPERTY pDoomTowerMSG AUTOMESSAGE PROPERTY pDoomWarriorMSG AUTOMESSAGE PROPERTY pDoomApprenticeRemovedMSG AUTOMESSAGE PROPERTY pDoomAtronachRemovedMSG AUTOMESSAGE PROPERTY pDoomLadyRemovedMSG AUTOMESSAGE PROPERTY pDoomLordRemovedMSG AUTOMESSAGE PROPERTY pDoomLoverRemovedMSG AUTOMESSAGE PROPERTY pDoomMageRemovedMSG AUTOMESSAGE PROPERTY pDoomPaladinRemovedMSG AUTOMESSAGE PROPERTY pDoomRitualRemovedMSG AUTOMESSAGE PROPERTY pDoomSerpentRemovedMSG AUTOMESSAGE PROPERTY pDoomShadowRemovedMSG AUTOMESSAGE PROPERTY pDoomSteedRemovedMSG AUTOMESSAGE PROPERTY pDoomThiefRemovedMSG AUTOMESSAGE PROPERTY pDoomTowerRemovedMSG AUTOMESSAGE PROPERTY pDoomWarriorRemovedMSG 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;************************************BOOL DOONCE=TRUEAuto State baseEVENT 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(bAtronach && game.getPlayer().hasSpell(pDoomAtronachAbility))    pDoomAlreadyHaveMSG.show()    utility.wait(2)    doOnce = TRUE   ELSEIF(bLady && game.getPlayer().hasSpell(pDoomLadyAbility))    pDoomAlreadyHaveMSG.show()    utility.wait(2)    doOnce = TRUE   ELSEIF(bLord && game.getPlayer().hasSpell(pDoomLordAbility))    pDoomAlreadyHaveMSG.show()    utility.wait(2)     doOnce = TRUE   ELSEIF(bLover && game.getPlayer().hasSpell(pDoomLoverAbility))    pDoomAlreadyHaveMSG.show()    utility.wait(2)     doOnce = TRUE   ELSEIF(bMage && game.getPlayer().hasSpell(pDoomMageAbility))    pDoomAlreadyHaveMSG.show()    utility.wait(2)     doOnce = TRUE   ELSEIF(bPaladin && game.getPlayer().hasSpell(pDoomPaladinAbility))    pDoomAlreadyHaveMSG.show()    utility.wait(2)     doOnce = TRUE   ELSEIF(bRitual && game.getPlayer().hasSpell(pDoomRitualAbility))    pDoomAlreadyHaveMSG.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(bSteed && game.getPlayer().hasSpell(pDoomSteedAbility))    pDoomAlreadyHaveMSG.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(bWarrior && game.getPlayer().hasSpell(pDoomWarriorAbility))    pDoomAlreadyHaveMSG.show()    utility.wait(2)     doOnce = TRUE   ELSE       ; // present them with the choice    IF(showSign() == 0)	 removeSign()	 addSign()   	 SELF.playAnimation("playanim01")   	 utility.wait(15)   	 doOnce = TRUE    ELSE	 utility.wait(2)	 doOnce = TRUE    ENDIF    ENDIF   ENDIFendEVENTendStateint FUNCTION showSign()int signHolderIF(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(bPaladin)  signHolder = pDoomPaladinMSG.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()ENDIFRETURN signHolderendFUNCTION; //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(bPaladin)  game.getPlayer().addSpell(pDoomPaladinAbility)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)ENDIFendFUNCTION; //FUNCTION: removeSign; //; // Removes all of the signs currently on the playerFUNCTION removeSign()IF(game.getPlayer().hasSpell(pDoomApprenticeAbility))  game.getPlayer().removeSpell(pDoomApprenticeAbility)  game.getPlayer().removeSpell(pdoomApprenticeNegativeAbility)  pDoomApprenticeRemovedMSG.show()ELSEIF(game.getPlayer().hasSpell(pDoomAtronachAbility))  game.getPlayer().removeSpell(pDoomAtronachAbility)  pDoomAtronachRemovedMSG.show()ELSEIF(game.getPlayer().hasSpell(pDoomLadyAbility))  game.getPlayer().removeSpell(pDoomLadyAbility)  pDoomLadyRemovedMSG.show()ELSEIF(game.getPlayer().hasSpell(pDoomLordAbility))  game.getPlayer().removeSpell(pDoomLordAbility)  pDoomLordRemovedMSG.show()ELSEIF(game.getPlayer().hasSpell(pDoomLoverAbility))  game.getPlayer().removeSpell(pDoomLoverAbility)  pDoomLoverRemovedMSG.show()ELSEIF(game.getPlayer().hasSpell(pDoomMageAbility))  game.getPlayer().removeSpell(pDoomMageAbility)  pDoomMageRemovedMSG.show()  ELSEIF(game.getPlayer().hasSpell(pDoomPaladinAbility))  game.getPlayer().removeSpell(pDoomPaladinAbility)  pDoomPaladinRemovedMSG.show()ELSEIF(game.getPlayer().hasSpell(pDoomRitualAbility))  game.getPlayer().removeSpell(pDoomRitualAbility)  pDoomRitualRemovedMSG.show()ELSEIF(game.getPlayer().hasSpell(pDoomSerpentAbility))  game.getPlayer().removeSpell(pDoomSerpentAbility)  pDoomSerpentRemovedMSG.show()ELSEIF(game.getPlayer().hasSpell(pDoomShadowAbility))  game.getPlayer().removeSpell(pDoomShadowAbility)  pDoomShadowRemovedMSG.show()ELSEIF(game.getPlayer().hasSpell(pDoomSteedAbility))  game.getPlayer().removeSpell(pDoomSteedAbility)  pDoomSteedRemovedMSG.show()ELSEIF(game.getPlayer().hasSpell(pDoomThiefAbility))  game.getPlayer().removeSpell(pDoomThiefAbility)  pDoomThiefRemovedMSG.show()ELSEIF(game.getPlayer().hasSpell(pDoomTowerAbility))  game.getPlayer().removeSpell(pDoomTowerAbility)  pDoomTowerRemovedMSG.show()ELSEIF(game.getPlayer().hasSpell(pDoomWarriorAbility))  game.getPlayer().removeSpell(pDoomWarriorAbility)  pDoomWarriorRemovedMSG.show()ENDIFendFUNCTION;************************************State waiting;do nothingendState;************************************

I made sure to enable all the new properties on all the other stones as well. If anyone can help me figure out why some stones won't remove the effect it would be much appreciated.
User avatar
Princess Johnson
 
Posts: 3435
Joined: Wed Feb 07, 2007 5:44 pm

Post » Wed Jun 20, 2012 8:25 am

This is the error parse i seem to be getting.
[03/10/2012 - 03:58:57PM] error: No Spell or Shout passed to HasSpellstack:    [ (00000014)].Actor.HasSpell() - "" Line ?    [ (000E0F22)].powerShrineScript.removeSign() - "powerShrineScript.psc" Line 288    [ (000E0F22)].powerShrineScript.OnActivate() - "powerShrineScript.psc" Line 157
User avatar
Irmacuba
 
Posts: 3531
Joined: Sat Mar 31, 2007 2:54 am


Return to V - Skyrim