- script smpinkie NPC32767,{ end; OnCast: if(call("magic_checks")) end; if (Sp < 35) end; if (getskilllv(SKILL_MAGIC) < .level) end; if (getskilllv(.school) < .level) end; if (countitem("PinkAntenna") < 1 || countitem("Root") < 1) end; delitem "PinkAntenna", 1; delitem "Root", 1; set @_M_BLOCK, 1; // block casting, until the timer clears it addtimer 20000, "Magic Timer::OnClear"; // set the new debuff callfunc "adjust_spellpower"; Sp = Sp - 35; misceffect FX_MAGIC_BLUE, strcharinfo(0); misceffect FX_PENTAGRAM_BUILDUP, strcharinfo(0); callfunc "magic_exp"; .@puppet$ = "#"+strnpcinfo(0)+"#"+BL_ID; .@puppet = puppet(getmapname(), POS_X, POS_Y, .@puppet$, 127); if (.@puppet < 1) end; .count = (@spellpower/120)+1, .@puppet; .master = BL_ID, .@puppet; .lifetime = @spellpower*150, .@puppet; addnpctimer 5000-(@spellpower*9), .@puppet$+"::OnSummon"; addnpctimer 6000, .@puppet$+"::OnDestroy"; end; OnSummon: if(get(Hp, .master) < 1) destroy; // destroy if master is missing if(getmap(.master) != strnpcinfo(3)) destroy; // destroy if master left the map specialeffect FX_PENTAGRAM_BURST; .@i = 0; .@x = getnpcx(); .@y = getnpcy(); .@map$ = strnpcinfo(3); callsub S_SummonAll; end; OnDestroy: destroy; S_SummonAll: summon .@map$, rand(.@x-2,.@x+2), rand(.@y-2,.@y+2), .master, 1018, 2, .lifetime; .@i = .@i + 1; if (.@i < .count) goto S_SummonAll; destroy; OnInit: .school = SKILL_MAGIC_ASTRAL; set .invocation$, chr(MAGIC_SYMBOL) + "kalgina"; // used in npcs that refer to this spell void call("magic_register", "OnCast"); .level = 2; .exp_gain = 2; end; }