On Tue, 18 Nov 1997, Hellwolf wrote: ->I want to create a mob that will look into other rooms, and if it sees a ->character in that room, will fire a projectile into it. This code has ->been done, I think something like Archer on the snippets page. The ->difference is that if the MOB hits, it will grab the character and pull ->him/her into the room with it and begin attacking. It shouldn't be too difficult to acheive. Actually, I probably shouldn't give you any code for it, simply because it's fairly simple stuff. But, hey, I'll do it anyway: int i = 0, rnum = 0; struct char_data *targ; ACMD(do_say); /* pick the character */ for (i=0;i<NUM_OF_DIRS;i++) { /* no exit, or exit is blocked */ if (!EXIT(ch, i) || EXIT(ch, i)->to_room == NOWHERE || IS_SET(EXIT(ch, i)->exit_info, EX_CLOSED)) continue; /* now find a character in that room */ for (targ=world[EXIT(ch, i)->to_room]; targ; targ=targ->next_in_list) if (!IS_NPC(targ) && !number(0, 4)) /* 20% chance */ break; if (targ) break; } /* * here would go the code to hit the person with the projectile * I leave this code up to you to write */ /* now transfer them to the mobile's room */ act("$N drags $n out of the room by a rope attached to the spear" "point imbedded in $n's throat.", FALSE, targ, 0, ch, TO_ROOM); act("$N drags you out of the room!", FALSE, targ, 0, ch, TO_CHAR); char_from_room(targ); act("$n drags $N into the room by a rope!", ch, 0, targ, TO_ROOM); char_to_room(targ, ch->in_room); switch (number(0, 1)) { case 0: do_say(ch, "Get over here!", 0, 0); break; case 1: do_say(ch, "Come here!", 0, 0); break; } return TRUE; The code to strike the person with the projectile was ommitted, as I have no such code, and I don't think I want to write everything for you. It's obvious (at least, from my standpoint) that my spec-proc is modeled off of the _Mortal_Kombat_ character, Scorpion, complete with the "cliche" sayings after he drags his opponent over with the spear-point-like thing attached to a rope...or whatever it is(?)... daniel koepke / dkoepke@california.com +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/08/00 PST