Quickie scan function for circle 2.2 code:
(implemented as a skill)
It includes the possibility of giving wrong answers.
ACMD(do_scan)
{
int door;
int found = 0, listflag = 0;
int scan_room, misinform = 0;
byte percent,prob;
struct char_data *vict;
char mesg[80];
if(GET_SKILL(ch,SKILL_SCAN) == 0) {
send_to_char("You have not learned this skill\n\r",ch);
return;
}
act("$n scans the area.",1,ch,0,0,TO_ROOM);
percent = MAX(1,number(1, 101) - GET_LEVEL(ch));
prob = GET_SKILL(ch, SKILL_SCAN);
if(percent > prob)
misinform = 1;
for (door = 0; door < NUM_OF_DIRS; door++) {
listflag = 0;
if (CAN_GO(ch, door)) {
scan_room = world[ch->in_room].dir_option[door]->to_room;
if(world[scan_room].people &&
(!misinform || (number(0,50) < 20))) {
for(vict = world[scan_room].people; vict; vict = vict->next_in_room) {
if(CAN_SEE(ch,vict)) {
found = 1;
if(!listflag) {
send_to_char(dirs[door],ch);
send_to_char("\n\r",ch);
listflag = 1;
}
act("\t$N",1,ch,0,vict,TO_CHAR);
}
}
}
}
}
if(!found)
send_to_char("You sense that the adjacent rooms are empty\n\r",ch);
}
This archive was generated by hypermail 2b30 : 12/07/00 PST