scn AdonnaysBladeweaverEffect
short Damage
short HitChance
ref IsSelf
short PlayerSkill
short CriticalHit
short TargetHealth
short IsEvil
short SilenceRemoved
short iSilence
begin ScriptEffectStart
set IsSelf to GetSelf
if (IsSelf == player)
return;
endif
set IsEvil to IsActorEvil
set TargetHealth to GetAV Health
set Damage to (0 - (((player.getAV Agility * 5) + (player.getAV Strength * 2) + GetRandomPercent) / 16))
set CriticalHit to Damage * 3
set HitChance to GetRandomPercent
set PlayerSkill to (player.getAV Luck + player.getAV Agility) / 2
; Determin extra damage or critical hit
if (HitChance <= PlayerSkill) && (HitChance > (PlayerSkill / 10))
PlayMagicShaderVisuals effectShockDamage 1
if (TargetHealth <= Damage)
Kill player
message "Der Feind wurde vom Extraschaden erschlagen!", 2
else
ModAV Health Damage
;message "Dealt %.0f Extra Damage!", Damage, 2
endif
elseif (HitChance <= (PlayerSkill / 10))
PlayMagicShaderVisuals effectShockDamage 3
if (TargetHealth <= CriticalHit) || (IsEvil)
Kill player
if (IsEvil)
message "Ihr vernichtetet das Böse!", 2
else
message "Dieser kritische Treffer hat euren Feind vernichtet!", 2
endif
else
ModAV Health CriticalHit
message "Critical Hit!", 2
endif
endif
; Determin if target gets silenced
set HitChance to GetRandomPercent
if (HitChance <= PlayerSkill / 5)
; if target has not been silenced by me before or it wore off again then silence +1
if (GlobalTimer <= 0)
modAV Silence 1
message "Ziel zum Schweigen gebracht!", 1
else
message "Ziel wurde bereits zum Schweigen gebracht!", 1
endif
; set the countdown for the silence to 5 in any case
set GlobalTimer to 5
PlayMagicShaderVisuals effectDamage 5
endif
end
begin ScriptEffectUpdate
if GlobalTimer > 0
set GlobalTimer to GlobalTimer - GetSecondsPassed
elseif (getAV Silence >= 1 && SilenceRemoved == 0)
modAV Silence -1

ebug Message to check if the timer works correctly
;set iSilence to getAV Silence
;messagebox "Silence wore off by timer! Timer = %.2f, Target Silence = %.0f", GlobalTimer, iSilence

oOnce variable to prevent decreasing silence every frame
set SilenceRemoved to 1
endif
end
...