diff --git a/scripts/_00e_a2_eldritchbloodplayermarksc.pex b/scripts/_00e_a2_eldritchbloodplayermarksc.pex index d09c09a7..80831fe2 100644 Binary files a/scripts/_00e_a2_eldritchbloodplayermarksc.pex and b/scripts/_00e_a2_eldritchbloodplayermarksc.pex differ diff --git a/scripts/_00e_a2_eldritchbloodplayersc.pex b/scripts/_00e_a2_eldritchbloodplayersc.pex index 61c35280..2a0ee320 100644 Binary files a/scripts/_00e_a2_eldritchbloodplayersc.pex and b/scripts/_00e_a2_eldritchbloodplayersc.pex differ diff --git a/scripts/_00e_a2_eldritchbloodsc.pex b/scripts/_00e_a2_eldritchbloodsc.pex index 4377b236..755d167f 100644 Binary files a/scripts/_00e_a2_eldritchbloodsc.pex and b/scripts/_00e_a2_eldritchbloodsc.pex differ diff --git a/source/scripts/_00e_a2_eldritchbloodplayermarksc.psc b/source/scripts/_00e_a2_eldritchbloodplayermarksc.psc index fcb50ad8..baf8a9f7 100644 --- a/source/scripts/_00e_a2_eldritchbloodplayermarksc.psc +++ b/source/scripts/_00e_a2_eldritchbloodplayermarksc.psc @@ -10,73 +10,75 @@ Import Utility Auto State Marking -Event OnCrosshairRefChange(ObjectReference ref) - - if lastTarget != None - lastTarget.blockActivation(false) - EndIf - lastTarget = ref - - if ref - ref.blockActivation(true) - endif - - If _00E_A2_EldritchBloodGlobal.GetValueInt() == 1 - If ref as Actor && ref != Game.GetForm(0x14) - EldritchBloodEffectScript.SelectEnemy(ref as Actor) + Event OnControlUp(string control, float HoldTime) + + Actor rTarget = Game.GetCurrentCrosshairRef() as Actor + + if ! rTarget || rTarget == Game.GetForm(0x14) + return + endif + + If _00E_A2_EldritchBloodGlobal.GetValueInt() == 1 + EldritchBloodEffectScript.SelectEnemy(rTarget) EndIf - Else - UnregisterForCrosshairRef() - EndIf - -EndEvent + + EndEvent -Event OnAnimationEvent(ObjectReference akSource, string asEventName) + Event OnCrosshairRefChange(ObjectReference ref) - if(akSource == akSelfRef && asEventName == "weaponSwing") - if iAttackCounter == 0 - iAttackCounter = 1 - Else + if lastTarget != None + lastTarget.blockActivation(false) + EndIf + lastTarget = ref + + if ref + ref.blockActivation(true) + endif + + EndEvent + + Event OnAnimationEvent(ObjectReference akSource, string asEventName) + + if(akSource == akSelfRef && asEventName == "weaponSwing") + if iAttackCounter == 0 + iAttackCounter = 1 + Else + ; Debug.Notification(sMarkingModeInterrupted) + _00E_MarkingTalents_sMarkingModeInterrupted.Show() + EldritchBloodEffectScript.abort() + UnregisterForAnimationEvent(akSelfRef, "weaponSwing") + EndIf + EndIf + + EndEvent + + Event OnObjectEquipped(Form equippedObject, ObjectReference reference) + + if ! equippedObject as Shout ; Debug.Notification(sMarkingModeInterrupted) - _00E_MarkingTalents_sMarkingModeInterrupted.Show() + _00E_MarkingTalents_sMarkingModeInterrupted.Show() EldritchBloodEffectScript.abort() - UnregisterForAnimationEvent(akSelfRef, "weaponSwing") EndIf - EndIf -EndEvent + EndEvent + + Event OnSpellCast(Form akSpell) + + if akSpell != _00E_A2_EldritchBloodSP + ; Debug.Notification(sMarkingModeInterrupted) + _00E_MarkingTalents_sMarkingModeInterrupted.Show() + EldritchBloodEffectScript.abort() + EndIf + + EndEvent + + Event OnPlayerBowShot(Weapon akWeapon, Ammo akAmmo, float afPower, bool abSunGazing) -Event OnObjectEquipped(Form equippedObject, ObjectReference reference) - - Shout equippedShout = equippedObject as Shout - - if(!equippedShout) ; Debug.Notification(sMarkingModeInterrupted) - _00E_MarkingTalents_sMarkingModeInterrupted.Show() + _00E_MarkingTalents_sMarkingModeInterrupted.Show() EldritchBloodEffectScript.abort() - EndIf -EndEvent - -Event OnSpellCast(Form akSpell) - - Shout equippedShout = akSpell as Shout - - if akSpell != _00E_A2_EldritchBloodSP - ; Debug.Notification(sMarkingModeInterrupted) - _00E_MarkingTalents_sMarkingModeInterrupted.Show() - EldritchBloodEffectScript.abort() - EndIf - -EndEvent - -Event OnPlayerBowShot(Weapon akWeapon, Ammo akAmmo, float afPower, bool abSunGazing) - - ; Debug.Notification(sMarkingModeInterrupted) - _00E_MarkingTalents_sMarkingModeInterrupted.Show() - EldritchBloodEffectScript.abort() - -EndEvent + EndEvent EndState @@ -93,21 +95,28 @@ Function EnterMarkingMode(Float iReach, _00E_A2_EldritchBloodPlayerSC _00E_A2_El SetINIFloat("fActivatePickLength:Interface", iReach) EldritchBloodEffectScript = _00E_A2_EldritchBloodMEScript RegisterForCrosshairRef() + RegisterForControl("Activate") EndFunction Function ExitMarkingMode() + iAttackCounter = 0 + UnregisterForAllControls() + UnregisterForCrosshairRef() + UnregisterForAnimationEvent(akSelfRef, "weaponSwing") + + ; Restore activation reach + if fActivatePickLengthBefore <= 0 + fActivatePickLengthBefore = 150.0 + endif + SetINIFloat("fActivatePickLength:Interface", fActivatePickLengthBefore) + if lastTarget != None lastTarget.blockActivation(false) EndIf lastTarget = None - iAttackCounter = 0 - UnregisterForAnimationEvent(akSelfRef, "weaponSwing") - UnregisterForCrosshairRef() - SetINIFloat("fActivatePickLength:Interface", 150) - EndFunction ;===================================================================================== diff --git a/source/scripts/_00e_a2_eldritchbloodplayersc.psc b/source/scripts/_00e_a2_eldritchbloodplayersc.psc index 100948fa..4fcf4803 100644 --- a/source/scripts/_00e_a2_eldritchbloodplayersc.psc +++ b/source/scripts/_00e_a2_eldritchbloodplayersc.psc @@ -51,79 +51,79 @@ EndFunction State MarkTargets -Event OnBeginState() + Event OnBeginState() - If _00E_SelectionTutorialShown.GetValueInt() == 0 && _00E_DisableSkillTutorials.GetValueInt() == 0 - _00E_Tutorial_SelectionMode.Show() - _00E_SelectionTutorialShown.SetValueInt(1) - EndIf - - If _00E_A2_EldritchBloodInDepthTutorial.GetValueInt() == 0 && _00E_DisableSkillTutorials.GetValueInt() == 0 - _00E_A2_Tutorial_EldritchBloodDetailed.Show() - _00E_A2_EldritchBloodInDepthTutorial.SetValueInt(1) - EndIf - - If _00E_DisableSkillTutorials.GetValueInt() == 0 - _00E_A2_Tutorial_EldritchBlood.ShowAsHelpMessage("EldritchBlood", 8, 8, 1) - EndIf - - _00E_A2_EldritchBloodGlobal.SetValueInt(1) - (PlayerREF as _00E_Game_TalentControlSC).SetTalentRecoveryTime(_00E_A2_EldritchBlood, 0) - A2_EldritchBlood_Player.ForceRefTo(PlayerREF) - A2_EldritchBlood_PlayerForScript = A2_EldritchBlood_Player as _00E_A2_EldritchBloodPlayerMarkSC - PlayerREF.AddSpell(_00E_A2_EldritchBloodAbSelectionSP, False) - _00E_A2_EldritchBloodSelectionIntroIMOD.Apply() - MarkingLP = _00E_A2_GhostwalkMarkingLPM.Play(playerREF) - MAGConjurePortal.Play(PlayerREF) - A2_EldritchBlood_PlayerForScript.EnterMarkingMode(1800, Self as _00E_A2_EldritchBloodPlayerSC) - Wait(0.5) - _00E_A2_EldritchBloodSelectionHoldIMOD.ApplyCrossFade(1.5) + If _00E_SelectionTutorialShown.GetValueInt() == 0 && _00E_DisableSkillTutorials.GetValueInt() == 0 + _00E_Tutorial_SelectionMode.Show() + _00E_SelectionTutorialShown.SetValueInt(1) + EndIf + + If _00E_A2_EldritchBloodInDepthTutorial.GetValueInt() == 0 && _00E_DisableSkillTutorials.GetValueInt() == 0 + _00E_A2_Tutorial_EldritchBloodDetailed.Show() + _00E_A2_EldritchBloodInDepthTutorial.SetValueInt(1) + EndIf + + If _00E_DisableSkillTutorials.GetValueInt() == 0 + _00E_A2_Tutorial_EldritchBlood.ShowAsHelpMessage("EldritchBlood", 8, 8, 1) + EndIf + + _00E_A2_EldritchBloodGlobal.SetValueInt(1) + (PlayerREF as _00E_Game_TalentControlSC).SetTalentRecoveryTime(_00E_A2_EldritchBlood, 0) + A2_EldritchBlood_Player.ForceRefTo(PlayerREF) + A2_EldritchBlood_PlayerForScript = A2_EldritchBlood_Player as _00E_A2_EldritchBloodPlayerMarkSC + PlayerREF.AddSpell(_00E_A2_EldritchBloodAbSelectionSP, False) + _00E_A2_EldritchBloodSelectionIntroIMOD.Apply() + MarkingLP = _00E_A2_GhostwalkMarkingLPM.Play(playerREF) + MAGConjurePortal.Play(PlayerREF) + A2_EldritchBlood_PlayerForScript.EnterMarkingMode(1800, Self as _00E_A2_EldritchBloodPlayerSC) + Wait(0.5) + _00E_A2_EldritchBloodSelectionHoldIMOD.ApplyCrossFade(1.5) -EndEvent + EndEvent EndState State AddEffect -Event OnBeginState() + Event OnBeginState() - A2_EldritchBlood_Victim.GetActorReference().RemoveSpell(_00E_A2_EldritchBloodAbMarkedVictimSP) - - if A2_EldritchBlood_VictimTarget.GetActorReference() - A2_EldritchBlood_VictimTarget.GetActorReference().RemoveSpell(_00E_A2_EldritchBloodAbMarkedVictimTargetSP) - endif - - PlayerREF.RemoveSpell(_00E_A2_EldritchBloodAbSelectionSP) - A2_EldritchBlood_PlayerForScript.ExitMarkingMode() - _00E_A2_EldritchBloodSelectionHoldIMOD.Remove() - QSTDA16SoulGemOffM.Play(PlayerREF) - A2_EldritchBlood_Player.Clear() - - if A2_EldritchBlood_Rune.GetReference() - A2_EldritchBlood_Rune.GetReference().Delete() - endif - - if A2_EldritchBlood_VictimRune.GetReference() - A2_EldritchBlood_VictimRune.GetReference().Delete() - endif - - A2_EldritchBlood_Rune.Clear() - A2_EldritchBlood_VictimRune.Clear() - - If MarkingRuneREF - MarkingRuneREF.Delete() - EndIf - - If MarkingVictimRuneREF - MarkingVictimRuneREF.Delete() - EndIf - - AddFrenzySpell() - - _00E_A2_EldritchBloodGlobal.SetValueInt(0) - Sound.StopInstance(MarkingLP) - -EndEvent + A2_EldritchBlood_Victim.GetActorReference().RemoveSpell(_00E_A2_EldritchBloodAbMarkedVictimSP) + + if A2_EldritchBlood_VictimTarget.GetActorReference() + A2_EldritchBlood_VictimTarget.GetActorReference().RemoveSpell(_00E_A2_EldritchBloodAbMarkedVictimTargetSP) + endif + + PlayerREF.RemoveSpell(_00E_A2_EldritchBloodAbSelectionSP) + A2_EldritchBlood_PlayerForScript.ExitMarkingMode() + _00E_A2_EldritchBloodSelectionHoldIMOD.Remove() + QSTDA16SoulGemOffM.Play(PlayerREF) + A2_EldritchBlood_Player.Clear() + + if A2_EldritchBlood_Rune.GetReference() + A2_EldritchBlood_Rune.GetReference().Delete() + endif + + if A2_EldritchBlood_VictimRune.GetReference() + A2_EldritchBlood_VictimRune.GetReference().Delete() + endif + + A2_EldritchBlood_Rune.Clear() + A2_EldritchBlood_VictimRune.Clear() + + If MarkingRuneREF + MarkingRuneREF.Delete() + EndIf + + If MarkingVictimRuneREF + MarkingVictimRuneREF.Delete() + EndIf + + AddFrenzySpell() + + _00E_A2_EldritchBloodGlobal.SetValueInt(0) + Sound.StopInstance(MarkingLP) + + EndEvent EndState @@ -267,12 +267,6 @@ Function UnmarkEnemy(Actor iVictim) _00E_A2_GhostwalkDeselectM.Play(PlayerREF) MarkingRuneREF.Delete() MarkingRuneREF = None - - ; Unmark attack target too - if A2_EldritchBlood_VictimTarget.GetActorReference() - UnmarkEnemy(A2_EldritchBlood_VictimTarget.GetActorReference()) - endif - Elseif iVictim.HasSpell(_00E_A2_EldritchBloodAbMarkedVictimTargetSP) A2_EldritchBlood_VictimRune.Clear() A2_EldritchBlood_VictimTarget.Clear() diff --git a/strings/skyrim_english.dlstrings b/strings/skyrim_english.dlstrings index fe4b8471..7c43c944 100644 Binary files a/strings/skyrim_english.dlstrings and b/strings/skyrim_english.dlstrings differ