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