From 179a355d8b359ff361a82425fa5f6d022ee11dae Mon Sep 17 00:00:00 2001 From: mekolat Date: Sun, 1 May 2016 10:39:10 -0400 Subject: make spells count their charges themselves --- world/map/npc/magic/level2-shear.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'world/map/npc/magic/level2-shear.txt') diff --git a/world/map/npc/magic/level2-shear.txt b/world/map/npc/magic/level2-shear.txt index af825727..4c1df781 100644 --- a/world/map/npc/magic/level2-shear.txt +++ b/world/map/npc/magic/level2-shear.txt @@ -12,7 +12,7 @@ setarray @chipchipspell[0], @spellpower, (((200 - Agi) * 2000) / 200); //delay - overrideattack 1, @chipchipspell[1], 1, ATTACK_ICON_SHEARING, 30, strnpcinfo(0)+"::OnAttack"; + overrideattack @chipchipspell[1], 1, ATTACK_ICON_SHEARING, 30, strnpcinfo(0)+"::OnAttack"; callfunc "magic_exp"; end; @@ -47,7 +47,7 @@ L_FreeRecast: end; OnSetRecast: - overrideattack 1, @chipchipspell[1], 1, ATTACK_ICON_SHEARING, 30, strnpcinfo(0)+"::OnAttack"; + overrideattack @chipchipspell[1], 1, ATTACK_ICON_SHEARING, 30, strnpcinfo(0)+"::OnAttack"; end; OnInit: -- cgit v1.2.3-70-g09d2 From 59f26d0b42143ba632d9a1bbfe2cdd896ca933cd Mon Sep 17 00:00:00 2001 From: mekolat Date: Sun, 1 May 2016 11:05:13 -0400 Subject: add `discharge` spell --- world/map/npc/magic/_import.txt | 1 + world/map/npc/magic/level0-discharge.txt | 18 ++++++++++++++++++ world/map/npc/magic/level2-shear.txt | 5 +++-- 3 files changed, 22 insertions(+), 2 deletions(-) create mode 100644 world/map/npc/magic/level0-discharge.txt (limited to 'world/map/npc/magic/level2-shear.txt') diff --git a/world/map/npc/magic/_import.txt b/world/map/npc/magic/_import.txt index 2ef595af..e99d14dd 100644 --- a/world/map/npc/magic/_import.txt +++ b/world/map/npc/magic/_import.txt @@ -1,4 +1,5 @@ npc: npc/magic/_procedures.txt +npc: npc/magic/level0-discharge.txt npc: npc/magic/level0-wand.txt npc: npc/magic/level1-aggravate.txt npc: npc/magic/level1-experience.txt diff --git a/world/map/npc/magic/level0-discharge.txt b/world/map/npc/magic/level0-discharge.txt new file mode 100644 index 00000000..7b2cfa8c --- /dev/null +++ b/world/map/npc/magic/level0-discharge.txt @@ -0,0 +1,18 @@ +-|script|discharge spell|32767 +{ + if(call("magic_checks")) end; + callfunc "magic_exp"; + + // tell the spells they were discharged + // XXX: maybe we could make it do area damage when you discharge (release your energy all of a sudden) + addtimer 0, "::OnDischarge"; // seeks OnDischarge in ALL npcs + end; + +OnInit: + set .school, SKILL_MAGIC; + set .invocation$, chr(MAGIC_SYMBOL) + "discharge"; // used in npcs that refer to this spell + void call("magic_register"); + set .level, 0; + set .exp_gain, 0; + end; +} diff --git a/world/map/npc/magic/level2-shear.txt b/world/map/npc/magic/level2-shear.txt index 4c1df781..91bb4de0 100644 --- a/world/map/npc/magic/level2-shear.txt +++ b/world/map/npc/magic/level2-shear.txt @@ -12,9 +12,8 @@ setarray @chipchipspell[0], @spellpower, (((200 - Agi) * 2000) / 200); //delay - overrideattack @chipchipspell[1], 1, ATTACK_ICON_SHEARING, 30, strnpcinfo(0)+"::OnAttack"; callfunc "magic_exp"; - end; + goto L_FreeRecast; OnAttack: if (isloggedin(@target_id)) goto L_FreeRecast; // can not shear a player @@ -23,6 +22,7 @@ OnAttack: sc_start SC_SHEARED, 600000, 0, @target_id; set .@score, rand(1000 - rand(@chipchipspell[0])); set .@id, get(Class, @target_id); // get the mob ID + set @chipchipspell[2], 0; if (.@id == 1020 && .@score < 300) set .@item$, "WhiteFur"; // Fluffy elif (.@id == 1027 && .@score < 300) set .@item$, "WhiteFur"; // EasterFluffy @@ -43,6 +43,7 @@ OnAttack: end; L_FreeRecast: + set @chipchipspell[2], 1; addtimer 0, strnpcinfo(0) + "::OnSetRecast"; // we can't do it while already overridden, until it reaches a script terminator end; -- cgit v1.2.3-70-g09d2 From 5c2c4cc7399c76f42e35a8f5c074b2a1bfe86a81 Mon Sep 17 00:00:00 2001 From: mekolat Date: Sun, 1 May 2016 11:15:59 -0400 Subject: add discharge handler to chipchip --- world/map/npc/magic/level2-shear.txt | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'world/map/npc/magic/level2-shear.txt') diff --git a/world/map/npc/magic/level2-shear.txt b/world/map/npc/magic/level2-shear.txt index 91bb4de0..f65119c3 100644 --- a/world/map/npc/magic/level2-shear.txt +++ b/world/map/npc/magic/level2-shear.txt @@ -47,6 +47,13 @@ L_FreeRecast: addtimer 0, strnpcinfo(0) + "::OnSetRecast"; // we can't do it while already overridden, until it reaches a script terminator end; +OnDischarge: + if (@chipchipspell[2] < 1) end; + set @chipchipspell[2], 0; + misceffect FX_FIRE_BURST, strcharinfo(0); + overrideattack; + end; + OnSetRecast: overrideattack @chipchipspell[1], 1, ATTACK_ICON_SHEARING, 30, strnpcinfo(0)+"::OnAttack"; end; -- cgit v1.2.3-70-g09d2