1
Fork 0

Compare commits

...

3 Commits

  1. BIN
      Enderal - Forgotten Stories.esm
  2. BIN
      Skyrim.esm
  3. BIN
      scripts/_00e_fs_dreameatersc.pex
  4. BIN
      scripts/_00e_mq06_consecrationfailsavesc.pex
  5. 72
      source/Enderal DLL/src/Patches/HeroMenuPatch.cpp
  6. 34
      source/scripts/_00e_fs_dreameatersc.psc
  7. 13
      source/scripts/_00e_mq06_consecrationfailsavesc.psc

Binary file not shown.

Binary file not shown.

Binary file not shown.

@ -122,24 +122,24 @@ void HeroMenuPatch::FillMenuValues()
args2[10].SetNumber(Lernpunkte->value);
args2[11].SetNumber(Handwerkspunkte->value);
args2[12].SetNumber(TalentPoints->value);
args2[13].SetNumber(playerAV->GetBaseActorValue(RE::ActorValue::kIllusion));
args2[14].SetNumber(playerAV->GetBaseActorValue(RE::ActorValue::kDestruction));
args2[15].SetNumber(playerAV->GetBaseActorValue(RE::ActorValue::kAlteration));
args2[16].SetNumber(playerAV->GetBaseActorValue(RE::ActorValue::kOneHanded));
args2[17].SetNumber(playerAV->GetBaseActorValue(RE::ActorValue::kBlock));
args2[18].SetNumber(playerAV->GetBaseActorValue(RE::ActorValue::kArchery));
args2[19].SetNumber(playerAV->GetBaseActorValue(RE::ActorValue::kConjuration));
args2[20].SetNumber(playerAV->GetBaseActorValue(RE::ActorValue::kRestoration));
args2[21].SetNumber(playerAV->GetBaseActorValue(RE::ActorValue::kTwoHanded));
args2[22].SetNumber(playerAV->GetBaseActorValue(RE::ActorValue::kLightArmor));
args2[23].SetNumber(playerAV->GetBaseActorValue(RE::ActorValue::kHeavyArmor));
args2[24].SetNumber(playerAV->GetBaseActorValue(RE::ActorValue::kSneak));
args2[25].SetNumber(playerAV->GetBaseActorValue(RE::ActorValue::kAlchemy));
args2[26].SetNumber(playerAV->GetBaseActorValue(RE::ActorValue::kPickpocket));
args2[27].SetNumber(playerAV->GetBaseActorValue(RE::ActorValue::kLockpicking));
args2[28].SetNumber(playerAV->GetBaseActorValue(RE::ActorValue::kEnchanting));
args2[29].SetNumber(playerAV->GetBaseActorValue(RE::ActorValue::kSmithing));
args2[30].SetNumber(playerAV->GetBaseActorValue(RE::ActorValue::kSpeech));
args2[13].SetNumber(playerAV->GetPermanentActorValue(RE::ActorValue::kIllusion));
args2[14].SetNumber(playerAV->GetPermanentActorValue(RE::ActorValue::kDestruction));
args2[15].SetNumber(playerAV->GetPermanentActorValue(RE::ActorValue::kAlteration));
args2[16].SetNumber(playerAV->GetPermanentActorValue(RE::ActorValue::kOneHanded));
args2[17].SetNumber(playerAV->GetPermanentActorValue(RE::ActorValue::kBlock));
args2[18].SetNumber(playerAV->GetPermanentActorValue(RE::ActorValue::kArchery));
args2[19].SetNumber(playerAV->GetPermanentActorValue(RE::ActorValue::kConjuration));
args2[20].SetNumber(playerAV->GetPermanentActorValue(RE::ActorValue::kRestoration));
args2[21].SetNumber(playerAV->GetPermanentActorValue(RE::ActorValue::kTwoHanded));
args2[22].SetNumber(playerAV->GetPermanentActorValue(RE::ActorValue::kLightArmor));
args2[23].SetNumber(playerAV->GetPermanentActorValue(RE::ActorValue::kHeavyArmor));
args2[24].SetNumber(playerAV->GetPermanentActorValue(RE::ActorValue::kSneak));
args2[25].SetNumber(playerAV->GetPermanentActorValue(RE::ActorValue::kAlchemy));
args2[26].SetNumber(playerAV->GetPermanentActorValue(RE::ActorValue::kPickpocket));
args2[27].SetNumber(playerAV->GetPermanentActorValue(RE::ActorValue::kLockpicking));
args2[28].SetNumber(playerAV->GetPermanentActorValue(RE::ActorValue::kEnchanting));
args2[29].SetNumber(playerAV->GetPermanentActorValue(RE::ActorValue::kSmithing));
args2[30].SetNumber(playerAV->GetPermanentActorValue(RE::ActorValue::kSpeech));
args2[31].SetNumber(playerExp->value - fEXPNeededForCurrentLevel);
args2[32].SetNumber(fEXPNeededForNextLevel - fEXPNeededForCurrentLevel);
@ -149,23 +149,23 @@ void HeroMenuPatch::FillMenuValues()
args3[0].SetNumber(0);
args3[1].SetNumber(0);
args3[2].SetNumber(0);
args3[3].SetNumber(playerAV->GetActorValue(RE::ActorValue::kIllusion) - playerAV->GetBaseActorValue(RE::ActorValue::kIllusion));
args3[4].SetNumber(playerAV->GetActorValue(RE::ActorValue::kDestruction) - playerAV->GetBaseActorValue(RE::ActorValue::kDestruction));
args3[5].SetNumber(playerAV->GetActorValue(RE::ActorValue::kAlteration) - playerAV->GetBaseActorValue(RE::ActorValue::kAlteration));
args3[6].SetNumber(playerAV->GetActorValue(RE::ActorValue::kOneHanded) - playerAV->GetBaseActorValue(RE::ActorValue::kOneHanded));
args3[7].SetNumber(playerAV->GetActorValue(RE::ActorValue::kBlock) - playerAV->GetBaseActorValue(RE::ActorValue::kBlock));
args3[8].SetNumber(playerAV->GetActorValue(RE::ActorValue::kArchery) - playerAV->GetBaseActorValue(RE::ActorValue::kArchery));
args3[9].SetNumber(playerAV->GetActorValue(RE::ActorValue::kConjuration) - playerAV->GetBaseActorValue(RE::ActorValue::kConjuration));
args3[10].SetNumber(playerAV->GetActorValue(RE::ActorValue::kRestoration) - playerAV->GetBaseActorValue(RE::ActorValue::kRestoration));
args3[11].SetNumber(playerAV->GetActorValue(RE::ActorValue::kTwoHanded) - playerAV->GetBaseActorValue(RE::ActorValue::kTwoHanded));
args3[12].SetNumber(playerAV->GetActorValue(RE::ActorValue::kLightArmor) - playerAV->GetBaseActorValue(RE::ActorValue::kLightArmor));
args3[13].SetNumber(playerAV->GetActorValue(RE::ActorValue::kHeavyArmor) - playerAV->GetBaseActorValue(RE::ActorValue::kHeavyArmor));
args3[14].SetNumber(playerAV->GetActorValue(RE::ActorValue::kSneak) - playerAV->GetBaseActorValue(RE::ActorValue::kSneak));
args3[15].SetNumber(playerAV->GetActorValue(RE::ActorValue::kAlchemy) - playerAV->GetBaseActorValue(RE::ActorValue::kAlchemy));
args3[16].SetNumber(playerAV->GetActorValue(RE::ActorValue::kPickpocket) - playerAV->GetBaseActorValue(RE::ActorValue::kPickpocket));
args3[17].SetNumber(playerAV->GetActorValue(RE::ActorValue::kLockpicking) - playerAV->GetBaseActorValue(RE::ActorValue::kLockpicking));
args3[18].SetNumber(playerAV->GetActorValue(RE::ActorValue::kEnchanting) - playerAV->GetBaseActorValue(RE::ActorValue::kEnchanting));
args3[19].SetNumber(playerAV->GetActorValue(RE::ActorValue::kSmithing) - playerAV->GetBaseActorValue(RE::ActorValue::kSmithing));
args3[20].SetNumber(playerAV->GetActorValue(RE::ActorValue::kSpeech) - playerAV->GetBaseActorValue(RE::ActorValue::kSpeech));
args3[3].SetNumber(playerAV->GetActorValue(RE::ActorValue::kIllusion) - playerAV->GetPermanentActorValue(RE::ActorValue::kIllusion));
args3[4].SetNumber(playerAV->GetActorValue(RE::ActorValue::kDestruction) - playerAV->GetPermanentActorValue(RE::ActorValue::kDestruction));
args3[5].SetNumber(playerAV->GetActorValue(RE::ActorValue::kAlteration) - playerAV->GetPermanentActorValue(RE::ActorValue::kAlteration));
args3[6].SetNumber(playerAV->GetActorValue(RE::ActorValue::kOneHanded) - playerAV->GetPermanentActorValue(RE::ActorValue::kOneHanded));
args3[7].SetNumber(playerAV->GetActorValue(RE::ActorValue::kBlock) - playerAV->GetPermanentActorValue(RE::ActorValue::kBlock));
args3[8].SetNumber(playerAV->GetActorValue(RE::ActorValue::kArchery) - playerAV->GetPermanentActorValue(RE::ActorValue::kArchery));
args3[9].SetNumber(playerAV->GetActorValue(RE::ActorValue::kConjuration) - playerAV->GetPermanentActorValue(RE::ActorValue::kConjuration));
args3[10].SetNumber(playerAV->GetActorValue(RE::ActorValue::kRestoration) - playerAV->GetPermanentActorValue(RE::ActorValue::kRestoration));
args3[11].SetNumber(playerAV->GetActorValue(RE::ActorValue::kTwoHanded) - playerAV->GetPermanentActorValue(RE::ActorValue::kTwoHanded));
args3[12].SetNumber(playerAV->GetActorValue(RE::ActorValue::kLightArmor) - playerAV->GetPermanentActorValue(RE::ActorValue::kLightArmor));
args3[13].SetNumber(playerAV->GetActorValue(RE::ActorValue::kHeavyArmor) - playerAV->GetPermanentActorValue(RE::ActorValue::kHeavyArmor));
args3[14].SetNumber(playerAV->GetActorValue(RE::ActorValue::kSneak) - playerAV->GetPermanentActorValue(RE::ActorValue::kSneak));
args3[15].SetNumber(playerAV->GetActorValue(RE::ActorValue::kAlchemy) - playerAV->GetPermanentActorValue(RE::ActorValue::kAlchemy));
args3[16].SetNumber(playerAV->GetActorValue(RE::ActorValue::kPickpocket) - playerAV->GetPermanentActorValue(RE::ActorValue::kPickpocket));
args3[17].SetNumber(playerAV->GetActorValue(RE::ActorValue::kLockpicking) - playerAV->GetPermanentActorValue(RE::ActorValue::kLockpicking));
args3[18].SetNumber(playerAV->GetActorValue(RE::ActorValue::kEnchanting) - playerAV->GetPermanentActorValue(RE::ActorValue::kEnchanting));
args3[19].SetNumber(playerAV->GetActorValue(RE::ActorValue::kSmithing) - playerAV->GetPermanentActorValue(RE::ActorValue::kSmithing));
args3[20].SetNumber(playerAV->GetActorValue(RE::ActorValue::kSpeech) - playerAV->GetPermanentActorValue(RE::ActorValue::kSpeech));
uiMovie->Invoke("heromenu_mc.SetModifier", nullptr, args3, 21);
}

@ -27,6 +27,19 @@ Event OnEffectFinish(Actor akTarget, Actor akCaster)
fBonusDamage = fMagnitude
EndIf
; Sneak bonus
If IsExtraDamageApplicable(akTarget, akCaster)
Float fStealthModifier = Game.GetGameSettingFloat("fCombatSneakBowMult")
If akCaster.HasPerk(_00E_Class_Infiltrator_P03_B_HeartShot)
fStealthModifier = fStealthModifier * _00E_Class_Infiltrator_P03_B_HeartShot.GetNthEntryValue(0, 0)
EndIf
If akCaster == PlayerREF
_00E_FS_FakeStealthMsg.Show(fStealthModifier)
UISneakAttackM.Play(akCaster)
EndIf
fBonusDamage = fBonusDamage * fStealthModifier
EndIf
; Target's magic resistance
Float fMagicResist = akTarget.GetActorValue("MagicResist")
If fMagicResist > 0
@ -41,6 +54,21 @@ Event OnEffectFinish(Actor akTarget, Actor akCaster)
EndIf
EndEvent
Bool Function IsExtraDamageApplicable(Actor akTarget, Actor akCaster)
If akTarget.HasMagicEffect(_00E_FS_PsychosisWeaknessVisualME)
Return True
EndIf
If akCaster.IsDetectedBy(akTarget) == False
akTarget.GetCombatState()
If akTarget.GetCombatState() != 1
Return True
EndIf
EndIf
Return False
EndFunction
;=====================================================================================
; PROPERTIES
;=====================================================================================
@ -54,3 +82,9 @@ MagicEffect Property _00E_FS_PsychosisWeaknessVisualME Auto
Spell Property _00E_FS_PsychosisWeaknessSP Auto
Spell Property _00E_FS_PsychosisWeaknessSP_NoSlow Auto
Perk Property _00E_Class_Infiltrator_P03_B_HeartShot Auto ; 2.5
Message Property _00E_FS_FakeStealthMsg Auto
Sound Property UISneakAttackM Auto

@ -2,11 +2,14 @@ Scriptname _00E_MQ06_ConsecrationFailsaveSC extends ObjectReference
Event OnTriggerEnter(ObjectReference akActionRef)
If akActionRef == Game.GetPlayer() && MQ06.GetCurrentStageID() >= 40 && MQ06.GetCurrentStageID() < 55 && MQ06_SC5_RitualScene.IsPlaying() == false
If akActionRef == Game.GetForm(0x14) && MQ06.GetCurrentStageID() >= 40 && MQ06_SC5_RitualScene.IsPlaying() == false
(MQ06 as _00E_MQ06_Functions).AddSilence()
(MQ06 as _00E_MQ06_Functions).StartCer()
if MQ06.GetCurrentStageID() < 55
(MQ06 as _00E_MQ06_Functions).AddSilence()
(MQ06 as _00E_MQ06_Functions).StartCer()
else
Disable()
endif
EndIf
@ -14,4 +17,4 @@ EndEvent
Quest Property MQ06 Auto
Scene Property MQ06_SC5_RitualScene Auto
Scene Property MQ06_SC5_RitualScene Auto

Loading…
Cancel
Save