From 33372b8b1ac54f592f79effdbecde3104f67f56c Mon Sep 17 00:00:00 2001 From: Eddoursul Date: Wed, 6 Dec 2023 15:34:43 +0100 Subject: [PATCH] Removed obsolete apparition alias from _FS_Phasmalist_ControlQuest --- Remove old apparition alias.esp | Bin 0 -> 6262 bytes scripts/_00e_phasmalist_apparationalias.pex | Bin 13562 -> 0 bytes .../_00e_phasmalist_apparitionshadersc.pex | Bin 625 -> 0 bytes scripts/_fs_phasmalist_controlquest.pex | Bin 12266 -> 11340 bytes .../qf__fs_phasmalist_controlque_0101ec71.pex | Bin 836 -> 747 bytes .../_00e_phasmalist_apparationalias.psc | 358 ------------------ .../_00e_phasmalist_apparitionshadersc.psc | 3 - .../scripts/_fs_phasmalist_controlquest.psc | 34 +- .../qf__fs_phasmalist_controlque_0101ec71.psc | 5 - 9 files changed, 5 insertions(+), 395 deletions(-) create mode 100644 Remove old apparition alias.esp delete mode 100644 scripts/_00e_phasmalist_apparationalias.pex delete mode 100644 scripts/_00e_phasmalist_apparitionshadersc.pex delete mode 100644 source/scripts/_00e_phasmalist_apparationalias.psc delete mode 100644 source/scripts/_00e_phasmalist_apparitionshadersc.psc diff --git a/Remove old apparition alias.esp b/Remove old apparition alias.esp new file mode 100644 index 0000000000000000000000000000000000000000..d30f2b43d663e794a96efdfbd2bd2aa0f5a66727 GIT binary patch literal 6262 zcmbVQ%a7Yc7@tj3wWvjEX%U5jw6vf;L}B})m3YbPIBjT>&91!<4#>>flZ}b(NypwU zK|(?*;txPVyiZWLfy9MEF9?Y{F9`uBZai94H~|8dZ##u$HSPs5@KZ%f9RVrIiK`ScrWdl_d-PnfoW}7+Q{Uq>E zK{1rAT^#XvzGdT(40$|>G~Xr+yOT#Ii?=Qjc{B{271UDRUU$jE0a3?a0x>;-Bz{9Q+gr-XUkWqJbl>{ML zs3?WKH*ZEcv+duO_<_3IN(1oMc&+>z*CN!6?%b0pqPUiRP59nbTt%! zYY>OsC}Kpg&gF9Z2K|kt zY2J6K)$F9{xof%H76e6Eot-)@06zb9B6lyEEt*4X6>Oe5s;Q@rLa81^Q8vx~?CB$= zemHecAyq5fCLt5(Bx9PDhir+W;>~1&H6Is~zX&AF!gk%Qdz5}gB zjZ~#UsA9i{+v3>@#QPvxhVJ1J>}pm>TTsFtHrg!`%rI!K#GY>JAvBtmup#!;0B>ik zA2|LBhZPSi@Nic@8Q9e2YXIL}D4?tE8RCs1nFX9wA$I~Qf^&BwIEh3+2=~a)D7MX| z78DuvM4J;v8$gDTXgdNo(jYNgy=L!|HQa5z&<1gU_90oupg^NRm;)_`(N=?>4Fv94U6!Y*y4a2Cx+JTanrz1 zw4o{bOix7S)N!%@3D|#d=>F5DVroIa%U*A}jx^JQJ+fB}hCoEP z3T91lgsiVW1ezb!ai-0R6YyqT?{*vl#L4V;&qNKneyi1K6wUued3F*!(;L{sz7u#| zg5?{Hrp(3??B9*blm?`@>bld^hC0G4D;=M2`Dq7ARrn31Q1;=)SX813zzh@yeSs9= zoMR>5g3~nUMCE0=Y3!&=iL3zr%|arI>nbpJMB~N!`lm2hjmlvB%#c`51J)g=WcSn` z6-}KoFLunobt#ALN>sV#hlDNisX%+CCDeNw;G}wEHP#z1dRt1BnS$7J@mg2CsYMpo zolI*TXcDJ)kHv)c>$);1_y^Q6DHXm?b}}k9;3rP}LHub-o08)x;J968gf+Q@VFs={ zWEs-k^>hBz4g}*XKS!Wfbz~4zMn%M98#JBa9blkNWI(JajS+Sioh7bELQ`QL zWdixN_Gqoe^%0vX5|J=VK`$8ngYSXs6S;@GPIg9aQ-{OG!mdl0IY&G`?D{qw1QAN4 zv*<`r8!*HRQ$K_t+=@DVtEzupezarlDfAncv$M4D}qJrTAv8&;ffi`d%vBI{=m#8=?!&hH#4#Zdb}xMs9v7 zT2fT==-W3ofh{%oREBtnPuDMR8Dc396L)(Lisjs3j^89!} z(-Lbk1q-Uwg5kxCE&vkq#RyZK$)hhKOI0P$)AqblR?8x$={)L~JjW6|UuNQgbVjk+ z$e-g0p06_TXk+r6Nbr1}iKjRw&&dSOH<@_OjN+NbzU{!|$}fTmp0_jcoE?)Vse^Yi z@s!5oN$TKICZ5N~6!;eTKb4jlgj7sM#K literal 0 HcmV?d00001 diff --git a/scripts/_00e_phasmalist_apparationalias.pex b/scripts/_00e_phasmalist_apparationalias.pex deleted file mode 100644 index 204d7ab7df546361eb52020988a146575434ddcf..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13562 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 E4|VgVZvX%Q diff --git a/scripts/_fs_phasmalist_controlquest.pex b/scripts/_fs_phasmalist_controlquest.pex index f6cd0c4480f399874d491a6a5410c84524b273dd..5ebf00cd66c593a74e3683c5b5612bbba7e1036e 100644 GIT binary patch literal 11340 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 literal 12266 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 KQ0E0%-Twlv*yc9? diff --git a/scripts/qf__fs_phasmalist_controlque_0101ec71.pex b/scripts/qf__fs_phasmalist_controlque_0101ec71.pex index d23541804fbc0024f601382fd1b23fd58760a392..599f249103ef34fff26942068fb5562462ba0361 100644 GIT binary patch delta 213 zcmX@Y_L^1TSNMT@%uEc73_y@t(7bn|fQ~GeYf4IfX;E=$jsgQ;DvYgHo|&h>AU4tG z>|_^4Ek>=0tF$KXW8BID)U{`FIg_%%bOtuCIgCJ(iGiJg17s!x11F5Z#J~k)f^A|4 zigHhWz$6mD!@vts#>l|Ozz>uaVBle37H4D-WMmKm@|Z!gyo?OOKzX332$Cq!5`G3z Mh;9(cC;LP0oJO(y5S4ThpAO?wvk!P7Tt*j;o zGK%m!78E2FC6;97=Q-wNCKgXtWYlL=#wz2__>cu?;`GTTOv?3Z8Q8#fFak+t26hGx zkbMjcoG=C#jKR#n4P=6y!w!_@L2$Sjco7_Spb|y~CZJh-4EzwY7#Rc@1c8D=Kp|#v nMh0O<1`!~S86>OC%g7)KQ~(qfLlOoWAjlvN(GDURrGUx+HC`pN diff --git a/source/scripts/_00e_phasmalist_apparationalias.psc b/source/scripts/_00e_phasmalist_apparationalias.psc deleted file mode 100644 index fffe7829..00000000 --- a/source/scripts/_00e_phasmalist_apparationalias.psc +++ /dev/null @@ -1,358 +0,0 @@ -Scriptname _00E_Phasmalist_ApparationAlias extends ReferenceAlias -{ OBSOLETE. Left for backward save compatibility. See _00E_Phasmalist_NewApparitionAlias. } - -; on Abilities/_00E_A3_PhasmalistApparation -; script that controls the apparation stats calculation and initialization. Additionally, it is responsible for the control of the apparation communication while it is summoned - -; we prefer to place new actors instead of using only one actor -; due to the problem of keeping track of all apparations, -; which might create memory leaks because of persistence; -; Additionally, temporary or accidental changes do not cumulate -; and lead to problems - -; balancing data -float Property apparationManaRate = 1 AutoReadOnly Hidden - -float Property playerStatsMultiplier = 0.20 AutoReadOnly Hidden -float Property playerConjSkillMultiplier = 0.10 AutoReadOnly Hidden -float Property playerEnchSkillMultiplier = 0.15 AutoReadOnly Hidden - -float Property fArcaneFeverLevel01 = 7.00 AutoReadOnly Hidden -float Property fArcaneFeverLevel02 = 6.00 AutoReadOnly Hidden -float Property fArcaneFeverLevel03 = 5.00 AutoReadOnly Hidden - -int Property fArcaneFeverModWarrior = -1 AutoReadOnly Hidden -int Property fArcaneFeverModRanger = 0 AutoReadOnly Hidden -int Property fArcaneFeverModHybrid = 0 AutoReadOnly Hidden -int Property fArcaneFeverModMage = 1 AutoReadOnly Hidden - -int Property ghostlyMageBoostDestructionPowerMod1 = 7 AutoReadOnly Hidden -int Property ghostlyMageBoostDestructionPowerMod2 = 15 AutoReadOnly Hidden -int Property ghostlyMageBoostDestructionPowerMod3 = 25 AutoReadOnly Hidden - -int Property ghostlyMageBoostMagicka1 = 15 AutoReadOnly Hidden -int Property ghostlyMageBoostMagicka2 = 40 AutoReadOnly Hidden -int Property ghostlyMageBoostMagicka3 = 75 AutoReadOnly Hidden - -int Property ghostlyRangerBoostArchery1 = 7 AutoReadOnly Hidden -int Property ghostlyRangerBoostArchery2 = 17 AutoReadOnly Hidden -int Property ghostlyRangerBoostArchery3 = 30 AutoReadOnly Hidden - -int Property ghostlyRangerBoostCritChance1 = 7 AutoReadOnly Hidden -int Property ghostlyRangerBoostCritChance2 = 15 AutoReadOnly Hidden -int Property ghostlyRangerBoostCritChance3 = 25 AutoReadOnly Hidden - -int Property ghostlyWarriorBoostMelee1 = 7 AutoReadOnly Hidden -int Property ghostlyWarriorBoostMelee2 = 17 AutoReadOnly Hidden -int Property ghostlyWarriorBoostMelee3 = 30 AutoReadOnly Hidden - -int Property ghostlyWarriorBoostArmorSkill1 = 7 AutoReadOnly Hidden -int Property ghostlyWarriorBoostArmorSkill2 = 17 AutoReadOnly Hidden -int Property ghostlyWarriorBoostArmorSkill3 = 30 AutoReadOnly Hidden - -int Property iCallApparitionKeyCode = 34 Auto Hidden - -Explosion Property enterWorldExplosion auto - -Perk Property _00E_Class_Phasmalist_P04_Talent_SummonApparation auto -Perk Property _00E_Class_Phasmalist_P04_Talent_SummonApparation2 auto -Perk Property _00E_Class_Phasmalist_P04_Talent_SummonApparation3 auto - -Static Property XMarker Auto - -Perk Property _00E_Class_Phasmalist_P08a auto - -Perk[] Property _00E_Class_Phasmalist_P05a_ABC auto ; ghostly mage -{ghostly mage perks, this array should have 3 elements for all 3 perks} -Perk[] Property _00E_Class_Phasmalist_P05b_ABC auto ; ghostly ranger -{ghostly ranger perks, this array should have 3 elements for all 3 perks} -Perk[] Property _00E_Class_Phasmalist_P05c_ABC auto ; ghostly warrior -{ghostly warrior perks, this array should have 3 elements for all 3 perks} - -Location Property _00E_Dreamworld_Location auto -Keyword Property _00E_Phasmalist_NoSummonLocation auto -Message Property _00E_Phasmalist_NoSummoningMessage auto -Keyword Property _00E_Phasmalist_NoSummonLocationTown auto -Message Property _00E_Phasmalist_CurrentlyEquipped auto -Message Property _00E_Phasmalist_NoSummoningMessageTown auto - -Sound Property MAGAlterationInvisibilityIn Auto -Sound Property MAGAlterationInvisibilityOut Auto - -Perk Property _00E_Class_Phasmalist_P08b auto ; apparations can exist in towns - -EffectShader Property _00E_Phasmalist_ApparitionShaderFXS Auto - -ImageSpaceModifier Property _00E_ArkanistenfieberIMOD Auto -ImageSpaceModifier Property _00E_Phasmalist_ApparitionEnterWorldIMOD Auto - -Sound Property _00E_FS_IncreaseArcaneFeverM Auto -;Sound Property _00E_FS_Phasmalist_EnterWorld_Male Auto -;Sound Property _00E_FS_Phasmalist_EnterWorld_Female Auto - -Message Property _00E_BlitzheilungArkanistenfieber_sFeverIncreased Auto -GlobalVariable Property _00E_Phasmalist_IsApparationSummoned Auto - -Keyword Property _00E_FS_Magic_Summon auto ; the apparation should not be able to learn certain spells -Keyword Property _00E_FS_Magic_Mystical auto - -int currentBoostMagicka ; this is set in adjustBoost() to have the attribute set correctly in the stats calculation - -_00E_Phasmalist_TrinketSC equippedTrinket - -Actor Property PlayerREF Auto - -Formlist Property _00E_AllAmmos Auto - -; for a description, look to the function failsaveRefillOnLoad() of this script -Actor failsave_content - -; functions that are called from the trinkets to keep track of the currently equipped trinket -------------------------------------------------------------------------------------------- - -function onTrinketEquipped(_00E_Phasmalist_TrinketSC trinket) - equippedTrinket = trinket -Endfunction - -function onTrinketUnequipped(_00E_Phasmalist_TrinketSC trinket) - unsummonIfExists() - If trinket == equippedTrinket - equippedTrinket = None - EndIf -Endfunction - -_00E_Phasmalist_TrinketSC function getEquippedTrinket() - return equippedTrinket -Endfunction - -; summon and unsummon ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ - -function unsummon(bool silent = false) -{Unsummons the phasmalist apparation content of this alias; should be used instead of delete()} - Actor SelfREF = self.GetActorReference() - If (!silent) - SelfREF.placeAtMe(enterWorldExplosion) - addArcaneFever() - EndIf - - ; empty function? - ;(SelfREF.getActorBase() as _00E_Phasmalist_ApparationSC).onUnsummon(SelfREF) - SelfREF.removeAllItems((SelfREF.GetActorBase() as _00E_Phasmalist_ApparationSC).inventoryContainer, false, true) - SelfREF.disable() - _00E_Phasmalist_IsApparationSummoned.setValue(0) - _RemoveApparationHealthBar() - SelfREF.delete() - self.clear() - failsave_content = None - SendModEvent("Phasmalist_ApparationUnSummon") -Endfunction - -function unsummonIfExists() - If getRef() - unsummon() - EndIf -Endfunction - -; utility functions ---------------------------------------------------------------------------------------------------------------------------------------------------------- - -Function _RemoveApparationHealthBar() - HealthBarManager.Hide(self.getActorReference()) -EndFunction - -Function _AddApparationHealthBar() - HealthBarManager.Show(self.getActorReference()) -EndFunction - -; local helper functions --------------------------------------------------------------------------------------------------------------------------------------------------------------- - -function addArcaneFever() - float healthLostPercentage = 0 - If self.getActorReference().isDead() - healthLostPercentage = 1 - Else - healthLostPercentage = 1 - self.getActorReference().GetActorValuePercentage("health") - EndIf - int TalentLevel = _00E_TalentLibrary.GetPlayerTalentLevel(_00E_Class_Phasmalist_P04_Talent_SummonApparation, _00E_Class_Phasmalist_P04_Talent_SummonApparation2, _00E_Class_Phasmalist_P04_Talent_SummonApparation3) - float maxArcaneFeverAdd = 0 - - If (TalentLevel == 1) - maxArcaneFeverAdd = fArcaneFeverLevel01 - ElseIf (TalentLevel == 2) - maxArcaneFeverAdd = fArcaneFeverLevel02 - Else - maxArcaneFeverAdd = fArcaneFeverLevel03 - EndIf - - If getEquippedTrinket().type == 0 - maxArcaneFeverAdd = maxArcaneFeverAdd + fArcaneFeverModWarrior - ElseIf getEquippedTrinket().type == 1 - maxArcaneFeverAdd = maxArcaneFeverAdd + fArcaneFeverModRanger - ElseIf getEquippedTrinket().type == 2 - maxArcaneFeverAdd = maxArcaneFeverAdd + fArcaneFeverModMage - Else - maxArcaneFeverAdd = maxArcaneFeverAdd + fArcaneFeverModHybrid - EndIf - - float arcaneFeverAdd = (maxArcaneFeverAdd * healthLostPercentage) as float - - If arcaneFeverAdd > 0 - - PlayerREF.ModAV("LastFlattered", -arcaneFeverAdd) - _00E_ArkanistenfieberIMOD.ApplyCrossFade() - _00E_FS_IncreaseArcaneFeverM.Play(PlayerREF) - _00E_BlitzheilungArkanistenfieber_sFeverIncreased.Show(arcaneFeverAdd, -1*PlayerREF.GetAV("LastFlattered")) - - EndIf - -Endfunction - -function adjustBoosts() - adjustBoostPerk(_00E_Class_Phasmalist_P05a_ABC, "mage") - adjustBoostPerk(_00E_Class_Phasmalist_P05b_ABC, "ranger") - adjustBoostPerk(_00E_Class_Phasmalist_P05c_ABC, "warrior") -Endfunction - -function addClassBoost(int level, string boostClass) - Actor referenceActor = self.getActorReference() - If boostClass == "mage" - int boostDestructionPowerMod = 0 - If level == 2 - boostDestructionPowerMod = ghostlyMageBoostDestructionPowerMod2 - currentBoostMagicka = ghostlyMageBoostMagicka2; since magicka is boosted later again, we have to save this boost and apply it later to prevent overwriting old boosts - ElseIf level == 3 - boostDestructionPowerMod = ghostlyMageBoostDestructionPowerMod3 - currentBoostMagicka = ghostlyMageBoostMagicka3 - Else - boostDestructionPowerMod = ghostlyMageBoostDestructionPowerMod1 - currentBoostMagicka = ghostlyMageBoostMagicka1 - EndIf - ;referenceActor.ForceAV("DestructionPowerMod", referenceActor.GetAV("DestructionPowerMod") + boostDestructionPowerMod) - referenceActor.ModAV("DestructionPowerMod", boostDestructionPowerMod) - ElseIf boostClass == "ranger" - int boostArchery = 0 - int boostCritChance = 0 - If level == 2 - boostArchery = ghostlyRangerBoostArchery2 - boostCritChance = ghostlyRangerBoostCritChance2 - ElseIf level == 3 - boostArchery = ghostlyRangerBoostArchery3 - boostCritChance = ghostlyRangerBoostCritChance3 - Else - boostArchery = ghostlyRangerBoostArchery1 - boostCritChance = ghostlyRangerBoostCritChance1 - EndIf - - ;referenceActor.ForceAV("Marksman", referenceActor.GetAV("Marksman") + boostArchery) - referenceActor.ModAV("Marksman", boostArchery) - ;referenceActor.ForceAV("CritChance", referenceActor.GetAV("CritChance") + boostCritChance) - referenceActor.ModAV("CritChance", boostCritChance) - ElseIf boostClass == "warrior" - int boostMelee = 0 - int boostArmorSkill = 0 - If level == 2 - boostMelee = ghostlyWarriorBoostMelee2 - boostArmorSkill = ghostlyWarriorBoostArmorSkill2 - ElseIf level == 3 - boostMelee = ghostlyWarriorBoostMelee3 - boostArmorSkill = ghostlyWarriorBoostArmorSkill3 - Else - boostMelee = ghostlyWarriorBoostMelee1 - boostArmorSkill = ghostlyWarriorBoostArmorSkill1 - EndIf - - ;referenceActor.ForceAV("HeavyArmor", referenceActor.GetAV("HeavyArmor") + boostArmorSkill) - referenceActor.ModAV("HeavyArmor", boostArmorSkill) - ;referenceActor.ForceAV("LightArmor", referenceActor.GetAV("LightArmor") + boostArmorSkill) - referenceActor.ModAV("LightArmor", boostArmorSkill) - ;referenceActor.ForceAV("MeleeDamage", referenceActor.GetAV("MeleeDamage") + boostMelee) - referenceActor.ModAV("MeleeDamage", boostMelee) - EndIf -Endfunction - -function adjustBoostPerk(Perk[] perks, string boostClass) - int i = perks.length - While i > 0 - i = i - 1 - If PlayerREF.HasPerk(perks[i]) - addClassBoost(i + 1, boostClass) - return - EndIf - EndWhile -Endfunction - -function init() - initBehaviour() - initNotPersistentStats() - - Actor referenceActor = self.getActorReference() - ;Actor player = Game.getPlayer() - - float attributeRaisePercentage = playerConjSkillMultiplier * PlayerREF.getActorValue("Conjuration") + playerEnchSkillMultiplier * PlayerREF.getActorValue("Enchanting") - attributeRaisePercentage = attributeRaisePercentage / 100 + 1 - - adjustBoosts() - - If (PlayerREF.hasPerk(_00E_Class_Phasmalist_P08a)) - float maxAttributeValue = PlayerREF.getBaseActorValue("Health") - If PlayerREF.getBaseActorValue("Magicka") > maxAttributeValue - maxAttributeValue = PlayerREF.getBaseActorValue("Magicka") - EndIf - If PlayerREF.getBaseActorValue("Stamina") > maxAttributeValue - maxAttributeValue = PlayerREF.getBaseActorValue("Stamina") - EndIf - referenceActor.ForceAV("Health", ((referenceActor.getBaseActorValue("Health") + maxAttributeValue * playerStatsMultiplier) * attributeRaisePercentage) as int) - referenceActor.ForceAV("Magicka", ((referenceActor.getBaseActorValue("Magicka") + maxAttributeValue * playerStatsMultiplier) * attributeRaisePercentage) as int + currentBoostMagicka) - referenceActor.ForceAV("Stamina", ((referenceActor.getBaseActorValue("Stamina") + maxAttributeValue * playerStatsMultiplier) * attributeRaisePercentage) as int) - - Else - referenceActor.ForceAV("Health", ((referenceActor.getBaseActorValue("Health") + PlayerREF.getBaseActorValue("Health") * playerStatsMultiplier) * attributeRaisePercentage) as int) - referenceActor.ForceAV("Magicka", ((referenceActor.getBaseActorValue("Magicka") + PlayerREF.getBaseActorValue("Magicka") * playerStatsMultiplier) * attributeRaisePercentage) as int + currentBoostMagicka) - referenceActor.ForceAV("Stamina", ((referenceActor.getBaseActorValue("Stamina") + PlayerREF.getBaseActorValue("Stamina") * playerStatsMultiplier) * attributeRaisePercentage) as int) - EndIf - -Endfunction - -function initBehaviour() - Actor akSelf = self.getActorReference() - If akSelf.GetRelationshipRank(PlayerREF) < 3 && akSelf.GetRelationshipRank(PlayerREF) >= 0 - akSelf.SetRelationshipRank(PlayerREF, 3) - EndIf - - akSelf.SetPlayerTeammate() - akSelf.SetActorValue("Confidence", 4) ; the apparation should never flee - akSelf.SetActorValue("Aggression", 0) ; the apparation should not initiate combat (-> stealth playstyle) - akSelf.SetActorValue("Sneak", 100) - akSelf.SetActorValue("Invisibility", 1) ; make the apparation undetectable when sneaking (-> stealth playstyle) - akSelf.IgnoreFriendlyHits() ; make the apparation ignore friendly fire from the PC -Endfunction - -function initNotPersistentStats() - - Actor akSelf = self.getActorReference() - If akSelf - akSelf.getActorBase().setCombatStyle(getEquippedTrinket().getUsedCombatStyle()) - - akSelf.setAV("HealRate", 50) - akSelf.setAV("MagickaRate", apparationManaRate) - - ;failsafe since setav doesn't work sometimes - akSelf.forceAV("HealRate", 50) - akSelf.forceAV("MagickaRate", apparationManaRate) - - _AddApparationHealthBar() - EndIf -Endfunction - -; events ----------------------------------------------------------------------------------------------------------------------------------------------------------- - -function addSpells() - int index = self.getActorReference().getNumItems() - 1 - While index >= 0 - Form item = self.getActorReference().getNthForm(index) - If item as book && !item.hasKeyword(_00E_FS_Magic_Summon) && !item.hasKeyword(_00E_FS_Magic_Mystical) - If (item as book).getSpell() - self.getActorReference().addSpell((item as book).getSpell()) - EndIf - EndIf - index = index - 1 - EndWhile -Endfunction diff --git a/source/scripts/_00e_phasmalist_apparitionshadersc.psc b/source/scripts/_00e_phasmalist_apparitionshadersc.psc deleted file mode 100644 index 458937cb..00000000 --- a/source/scripts/_00e_phasmalist_apparitionshadersc.psc +++ /dev/null @@ -1,3 +0,0 @@ -Scriptname _00E_Phasmalist_ApparitionShaderSC extends ReferenceAlias -{ OBSOLETE. Left for backward save compatibility. -The functions of the script have been moved to the apparition ability. } diff --git a/source/scripts/_fs_phasmalist_controlquest.psc b/source/scripts/_fs_phasmalist_controlquest.psc index 01067a5c..c19eb819 100644 --- a/source/scripts/_fs_phasmalist_controlquest.psc +++ b/source/scripts/_fs_phasmalist_controlquest.psc @@ -1,7 +1,6 @@ Scriptname _FS_Phasmalist_ControlQuest extends Quest ; the main phasmalist quest that aggregates references to the aliases who do the main work and provides a global interface for some utility functions -_00E_Phasmalist_ApparationAlias Property apparationAlias Auto ; Old version of the apparition alias _00E_Phasmalist_NewApparitionAlias Property NewApparitionAlias Auto _00E_Phasmalist_DespectralizeCont Property despectralizeContainerAlias Auto _00E_Phasmalist_ApparationInventory Property spectralizeContainer Auto @@ -29,7 +28,7 @@ Actor Property PlayerREF Auto Bool bCreatedFirstTrinket = false Int iScriptVersion = 0 -Int Property CURRENT_SCRIPT_VERSION = 2 AutoReadOnly +Int Property CURRENT_SCRIPT_VERSION = 3 AutoReadOnly ;===================================================================================== @@ -60,41 +59,18 @@ EndEvent ; called on loadgame by _00E_Phasmalist_LoadGameFailsave, attached to an alias of quest abilities Function LoadGameFailsave() - Bool bDoApparitionOnLoadGame = True - ; Version update If iScriptVersion < CURRENT_SCRIPT_VERSION - If iScriptVersion < 1 - apparationAlias.UnregisterForAllKeys() - EquippedTrinket = apparationAlias.getEquippedTrinket() - iTeleportApparitionKeyCode = apparationAlias.iCallApparitionKeyCode - PlayerAlias.ForceRefTo(PlayerREF) - If apparationAlias.GetRef() != None - apparationAlias.unsummon(True) - If IsBadApparitionLocation(PlayerREF.GetCurrentLocation()) == False - SummonApparition(PlayerREF, False, True) - EndIf - EndIf - apparationAlias.onTrinketEquipped(None) - _00E_Phasmalist_TankMode.SetValue(0) - RegisterTeleportKey() - ((self as Quest) as _FS_Phasmalist_AffinityControlQuest).OnGameLoad() ; Obsolete, not needed anymore, so shut it down - bDoApparitionOnLoadGame = False - Else - If iScriptVersion < 2 && PlayerREF.HasPerk(_00E_Class_Phasmalist_P05_C_Violence_01) && IsApparitionSpawned() - SummonApparition(PlayerREF, False, True) - bDoApparitionOnLoadGame = False - EndIf + If iScriptVersion < 3 + ; Update placeholder EndIf iScriptVersion = CURRENT_SCRIPT_VERSION EndIf - If bDoApparitionOnLoadGame - NewApparitionAlias.OnLoadGame() - EndIf + NewApparitionAlias.OnLoadGame() - If FS_NQ08.getStage() == 7 + If FS_NQ08.GetCurrentStageId() == 7 RegisterForModEvent("Phasmalist_Learn_Soulsmith1", "OnUnlockSoulsmithNovice") EndIf EndFunction diff --git a/source/scripts/qf__fs_phasmalist_controlque_0101ec71.psc b/source/scripts/qf__fs_phasmalist_controlque_0101ec71.psc index e71bf04a..b1cab446 100644 --- a/source/scripts/qf__fs_phasmalist_controlque_0101ec71.psc +++ b/source/scripts/qf__fs_phasmalist_controlque_0101ec71.psc @@ -7,11 +7,6 @@ Scriptname QF__FS_Phasmalist_ControlQue_0101EC71 Extends Quest Hidden ReferenceAlias Property Alias_A3_Phasmalist_SpectralizeContainer Auto ;END ALIAS PROPERTY -;BEGIN ALIAS PROPERTY A3_Phasmalist_ApparationAlias -;ALIAS PROPERTY TYPE ReferenceAlias -ReferenceAlias Property Alias_A3_Phasmalist_ApparationAlias Auto -;END ALIAS PROPERTY - ;BEGIN ALIAS PROPERTY A3_Phasmalist_DespectralizeContainer ;ALIAS PROPERTY TYPE ReferenceAlias ReferenceAlias Property Alias_A3_Phasmalist_DespectralizeContainer Auto