From 7330d282726f62cdb63dcca5b49c4607cbbdc199 Mon Sep 17 00:00:00 2001 From: gumi Date: Thu, 13 Apr 2017 13:02:59 -0400 Subject: Hurnscald mega-commit --- npc/placeholder/soul-menhir.txt | 58 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 npc/placeholder/soul-menhir.txt (limited to 'npc/placeholder/soul-menhir.txt') diff --git a/npc/placeholder/soul-menhir.txt b/npc/placeholder/soul-menhir.txt new file mode 100644 index 00000000..0b2d177d --- /dev/null +++ b/npc/placeholder/soul-menhir.txt @@ -0,0 +1,58 @@ +// Evol scripts. +// Author: +// gumi +// Description: +// place of power, mana refills faster when sitting nearby + +008-1,253,112,0 script Soul Menhir#hurnscald NPC_HUMAN_M_ARTIS,{ + + end; + +OnRefill: + @menhir_lock = false; + getmapxy(.@map$, .@x, .@y, UNITTYPE_PC); + + if (.@map$ != .map$ || distance(.x, .y, .@x, .@y) > .refill_distance || + !(issit())) + end; + + heal(0, .refill_rate); + end; + + +OnTimer500: + .@count = getunits(BL_PC, .@units[0], false, .map$, (.x - .refill_distance), + (.y - .refill_distance), (.x + .refill_distance), (.y + .refill_distance)); + + for (.@i = 0; .@i < .@count; ++.@i) + { + if (.@units[.@i] < 0) continue; // pre-check, just in case + deltimer(.name$ + "::OnRefill", .@units[.@i]); + if (gettimer(TIMER_COUNT, .@units[.@i], .name$ + "::OnRefill") > 0 || + getvariableofpc(@menhir_lock, .@units[.@i])) { + continue; + } + set(getvariableofpc(@menhir_lock, .@units[.@i]), true); + addtimer(rand(.refill_timer), .name$ + "::OnRefill", .@units[.@i]); + } + + initnpctimer(); + end; + +OnInit: + + .refill_rate = 1; // number of SP to give every refill + .refill_distance = 7; // max distance + .refill_timer = 200; // wait rand(X) ms before refill + initnpctimer(); + +////////// UNFINISHED ////////// +//////////////////////////////// +// REMOVE THIS CODE WHEN THIS // +// NPC IS NO LONGER A WIP ////// +//////////////////////////////// +if (!debug) disablenpc(.name$); +///////// UNFINISHED /////////// + + end; +} -- cgit v1.2.3-60-g2f50