On Wed, 15 Jan 1997 BuckFloyd@aol.com wrote: > if (cmd || GET_POS(ch) != POS_FIGHTING) > return FALSE; The above makes it so that the code will only work when the mobile is fighting... > if (number(0,100) > number(0, 100)) > { > if ((number(0, 100) < 50) && (number(0, 100) > 85)) > { This is kind of weird, IMHO. You're doing three checks to see if it will work. The first time we see if our first number 0-100 is above another random number 0-100. Then we see if another random number 0-100 is below 50, and again we check if yet another random number is 85. The chances of all three of these conditions being met is very slim. > mob_num = real_mobile(14040); > mob = read_mobile(mob_num, REAL); > cast_spell(ch, mob, NULL, SPELL_SUMMON); Just put the mob in the room. That's your intention, right? Replace with: char_to_room(mob, ch->in_room); act("$n summons $N to $m!", FALSE, ch, 0, mob, TO_NOTVICT); Something like that. BTW, in your case statements you don't need to repeat the: mob = read_mobile(mob_num, REAL); char_to_room(mob, ch->in_room); act("$n summons $N to $m!", FALSE, ch, 0, mob, TO_NOTVICT); You can just set mob_num in the case statements and have that code, because it's general, just before the 'return TRUE;'. Also, make sure you've given your mobile the spec proc and the spec_proc flag. -- Daniel Koepke dkoepke@california.com Forgive me father, for I am sin. +-----------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://cspo.queensu.ca/~fletcher/Circle/list_faq.html | +-----------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/18/00 PST