Code:
void do_mob_backstab(struct char_data *ch, struct char_data *vict)
{
int hit_roll = 0, to_hit = 0;
hit_roll = number (1,100) + GET_STR(ch);
to_hit = (100 - (int) (100*GET_LEVEL(ch)/250));
if (GET_LEVEL(vict) >= LVL_IMMORT)
hit_roll = 0;
if (FIGHTING(ch)){
act("$N just tried to backstab you during combat!", FALSE, vict, 0, ch, TO_CHAR);
act("$e notices you. You cannot backstab in combat!", FALSE, vict, 0, ch, TO_VICT);
act("$N attempts to backstab $n during combat!", FALSE, vict, 0, ch, TO_NOTVICT);
}
if (MOB_FLAGGED(vict, MOB_AWARE) && AWAKE(vict)) {
act("You notice $N lunging at you!", FALSE, vict, 0, ch, TO_CHAR);
act("$e notices you lunging at $m!", FALSE, vict, 0, ch, TO_VICT);
act("$n notices $N lunging at $m!", FALSE, vict, 0, ch, TO_NOTVICT);
hit(vict, ch, TYPE_UNDEFINED);
return;
}
if (hit_roll < to_hit) {
damage(ch, vict, 0, SKILL_BACKSTAB);
} else {
hit(ch, vict, SKILL_BACKSTAB);
WAIT_STATE(vict, PULSE_VIOLENCE * 2);
WAIT_STATE(ch, PULSE_VIOLENCE * 3);
}
}
SPECIAL(thief_class)
{
struct char_data *cons;
if (cmd)
return (FALSE);
if (GET_POS(ch) != POS_STANDING)
return (FALSE);
for (cons = world[ch->in_room].people; cons; cons = cons->next_in_room)
if (!IS_NPC(cons) && (GET_LEVEL(cons) < LVL_IMMORT) && (!number(0, 4))) {
if(number(1,50) > 25){
do_mob_backstab(ch, cons);
}
else{
npc_steal(ch, cons);
}
return (TRUE);
}
return (FALSE);
}
Would this work with tba ? Or what would need to be changed.