/* finger of death */ #define NAME "@@query_name:$this_player()$@@" /* gives greater flexibilty */ status fod(mixed targ, mixed alt_type) { int i; string file; if(!alt_type) alt_type = "charm"; file = file_name(this_object()); sscanf(file,"%s#%d",file,i); this_player()->load_spell(({ "target", targ, "name", "Finger of Death", "sphere", alt_type, "cost", 20, "damage", 2, /* save flag */ "immune", "death", "level", 20, /* instant kill spell */ "cast time", 2, "casting msg", "You feel a surge of power as you point your finger.\n", "casting msg room", NAME +" starts to point their finger.\n", "spell object", file, /* other spell options... "area", "passive", "component", 0, */ })); return 1; } /****************************************************************/ /* when cloned to target */ status cast_spell(object caster,object target,object prev,int dmg) { #ifndef PLAYERKILL if(!(caster->query_npc() || target->query_npc())) { tell_room(environment(target),"Nothing Happens...\n"); destruct(this_object()); return 1; } #endif if(dmg == 2) { /* did not save */ tell_object(target,"Your heart stops!\n"); tell_object(caster,"You smell the scent of fear from "+ target->query_name() +".\n"); say("You smell the scent of fear from "+ target->query_name() +".\n", target); target->death(); } else { tell_room(environment(target),"Nothing Happens...\n"); } destruct(this_object()); return 1; } /* Native Mode Move */ #include <move.h>