But for some reason, on a really low level my script just doesn't seem to work at all.
Here is how my perk is set up:
1. Main perk the player selects. This perk grants a Constant Effect on Self ability to the player, that essentually is a cloak with 20 magnitude (range).
2. This cloak simply casts a spell effect that does nothing but cast a Script effect archetype onto all actors within the above magnitude of the cloak. This is delivered via Concentration -> Aimed, which is required by cloak spells as the delivery method.
3. The script does all the nessicary thinking/work to calculate when NPC's die, when it should cast the fear ability on the player, etc. But it never even gets to that point...
Here's the script that gets casted onto NPC's within cloak range:
Scriptname CPO_ChampionsOnslaughtCasterScript extends activemagiceffectactor PlayerRefactor EnemyRefPerk Property CPO_ChampionsOnslaughtFear AutoKeyword Property WeapTypeBattleaxe AutoGlobalVariable Property CPO_PlayerIsChampOnslaughting AutoGlobalVariable Property CPO_ChampOnslaughtDeathCounter AutoGlobalVariable Property CPO_PlayerHasCOFearCloak AutoQuest Property CPO_ChampOnslaughtAbilityQuest AutoEvent OnEffectStart(Actor akTarget, Actor akCaster) EnemyRef = akTargetendEventEvent OnDying(Actor akKiller)PlayerRef = Game.GetPlayer()if akKiller == PlayerRef && PlayerRef.WornHasKeyword(WeapTypeBattleaxe) CPO_ChampOnslaughtDeathCounter.SetValue((CPO_ChampOnslaughtDeathCounter.GetValue() as int) + 1) if CPO_PlayerIsChampOnslaughting.GetValue() == 0 (CPO_ChampOnslaughtAbilityQuest as CPO_ChampOnslaughtQuest).RegisterForSingleUpdate(6) CPO_PlayerIsChampOnslaughting.SetValue(1) endif if CPO_ChampOnslaughtDeathCounter.GetValue() >= 3 && CPO_PlayerHasCOFearCloak.GetValue() == 0 PlayerRef.AddPerk(CPO_ChampionsOnslaughtFear) CPO_PlayerHasCOFearCloak.SetValue(1) Utility.Wait(30) PlayerRef.RemovePerk(CPO_ChampionsOnslaughtFear) CPO_PlayerHasCOFearCloak.SetValue(0) endifendifEndEvent
I can't see any glaring issues. When I test in game, and kill 3 actors with a battleaxe within 6 seconds (much shorter, actually), I check in-game if CPO_PlayerIsChampOnslaughting outputs to "1" like it should as soon as an actor dies, an indicator that the script is engaged, nothing happens and the variable still outputs to "0".
This is indicating that it never even fired despite killing NPC's within range of my cloak. This also indicates my script isn't even firing at the most basic level. I'm sure its a really simple soltuion but I simply cant figure out why this isn't working.
Any help?
