From: morning glory This is the code for circle, a command that lets you backstab when you are fighting. It's recommended that you put this at a fairly high level, and reduce the damage that it does compared to normal backstab, as if you don't it will put the players with the skill at too much of an advantage. If anyone finds out how to make it so when you circle, it doesn't look if you have second and third attack, and only circles once, mail me. If you want to add circle in as a skill for NPC's, just add an OFF_CIRCLE to merc.h, and add circle in as case 9 in fight.c, right under backstab. fight.c: * signifies a line already in the code, just search for it and add in the code without the *'s. *DECLARE_DO_FUN(do_backstab ); *DECLARE_DO_FUN(do_emote ); DECLARE_DO_FUN(do_circle ); * if (dt == gsn_backstab) * thac0 -= 10 * (100 - get_skill(ch,gsn_backstab)); if (dt == gsn_circle) thac0 -= 10 * (100 - get_skill(ch,gsn_circle)); * if ( dt == gsn_backstab && wield != NULL) * if ( wield->value[0] != 2 ) * dam *= 2 + (ch->level / 10); * else * dam *= 2 + (ch->level / 8); if ( dt == gsn_circle && wield != NULL) if ( wield->value[0] != 2 ) dam *= 2+ (ch->level / 10); else dam *=2 + (ch->level / 8); add this in under backstab: void do_circle( CHAR_DATA *ch, char *argument ) { char arg[MAX_INPUT_LENGTH]; CHAR_DATA *victim; OBJ_DATA *obj; one_argument( argument, arg ); if (arg[0] == '\0') { send_to_char("Circle whom?\n\r",ch); return; } else if ((victim = get_char_room(ch,arg)) == NULL) { send_to_char("They aren't here.\n\r",ch); return; } if ( is_safe( ch, victim ) ) return; if (IS_NPC(victim) && victim->fighting != NULL && !is_same_group(ch,victim->fighting)) { send_to_char("Kill stealing is not permitted.\n\r",ch); return; } if ( ( obj = get_eq_char( ch, WEAR_WIELD ) ) == NULL) { send_to_char( "You need to wield a weapon to circle.\n\r", ch ); return; } if ( ( victim = ch->fighting ) == NULL ) { send_to_char( "You must be fighting in order to circle.\n\r", ch ); return; } check_killer( ch, victim ); WAIT_STATE( ch, skill_table[gsn_circle].beats ); if ( number_percent( ) < get_skill(ch,gsn_circle) || ( get_skill(ch,gsn_circle) >= 2 && !IS_AWAKE(victim) ) ) { check_improve(ch,gsn_circle,TRUE,1); multi_hit( ch, victim, gsn_circle ); } else { check_improve(ch,gsn_circle,FALSE,1); damage( ch, victim, 0, gsn_circle,DAM_NONE,TRUE); } return; } As for the rest of the files, just search each for a gsn_backstab, and add the exact same thing for gsn_circle... Make sure to add the cirlce skill into const.c, but make it a higher level than backstab. In interp.c, add the command in. if you have any problems, mail me at mocat@hooked.net.