Eric Pilcher <rasta@CSOS.ORST.EDU> writes: > > SPECIAL(thief) > { > struct char_data *cons; > > if (cmd) > return FALSE; > > if (GET_POS(ch) != POSITION_STANDING) > return FALSE; > > for (cons = world[ch->in_room].people; cons; cons = cons->next_in_room ) > if ((!IS_NPC(cons)) && (GET_LEVEL(cons) < 21) && (number(1, 5) == 1)) > npc_steal(ch, cons); > > return TRUE; > } I posted this bugfix before, the solution is to modify the last few lines of this function to look like this: for (cons = world[ch->in_room].people; cons; cons = cons->next_in_room ) if ((!IS_NPC(cons)) && (GET_LEVEL(cons) < LEVEL_IMMORT) && (number(1, 5) == 1)) { npc_steal(ch, cons); return TRUE; } return FALSE; > > Question 1: Instead of a raw integer value in there, would it be better > to have something such as: (GET_LEVEL(cons) < LEVEL_GOD) Correct... but you probably want LEVEL_IMMORT in case some immortals get some powerful weapons you don't want on PCs. > Question 2: In other places I see LEVEL_IMM or something to that effect. > LEVEL_IMM seems to be the same as LEVEL_GOD... (okay, that's not really > a question, just an observation). The default LEVEL_GOD is 32, LEVEL_IMMORT is 31. > Question 3: Mobiles with the thief proc do not wander. Does anyone have a > fix for this? I believe there needs to be an else in there somewhere > so that the thief knows to relax if not stealing. *shrug* The fix I posted above solves this. The problem was that the steal function always returned TRUE. -Jeff
This archive was generated by hypermail 2b30 : 12/07/00 PST