/** monster summon 1, 2, 3 **/ #define NAME "@@query_name:$this_player()$@@" /* gives greater flexibilty */ #define TARG "@@query_name:$this_object()$@@" status monster(string targ, mixed alt_type) { int type, level, spell_level; if(!targ || sscanf(targ,"summon %d", type) != 1) { notify_fail("monster summon 1, monster summon 2, monster summon 3?\n"); return 0; } if(!alt_type) alt_type = "conjuration"; level = (objectp(alt_type)) ? (int)alt_type->query_cast_level() /* wands */ : (int)call_other(this_player(),"query_"+alt_type); switch(type) { case 1: spell_level = 11; break; case 2: spell_level = 16; break; case 3: spell_level = 22; break; default: notify_fail("monster summon 1, monster summon 2, monster summon 3?\n"); return 0; break; } this_player()->load_spell(({ "target", environment(this_player()), "name", "Monster Summon "+ type, "sphere", alt_type, "cost", spell_level, "damage", level, "level", spell_level, "cast time", 2, "casting msg", "You send out a silent call...\n", "spell object", "skills/obj/mon_sum"+ type, "passive", })); return 1; } /* Native Mode Move */ #include <move.h>