Hi, All! This snippet adds new ZONE file command: F (forces mob to perform action) Syntax: F <if_flag> action to be performed by mobile Useful in situations like: M 0 9501 1 9550 * Horse M 0 9502 1 9550 * Knight F 1 mount horse Or: M 0 9503 1 9550 * Evil beast F 1 emote appeared in the middle of room! The code part: 1. Open "db.h" and look for: struct reset_com { [ some text ] int arg1; /* */ int arg2; /* Arguments to the command */ int arg3; /* */ ----- Right after "int arg3", add this line: char *sarg; /* String argument */ 2. Open "db.c". Around line 1240 look for: if (ZCMD.command == 'S' || ZCMD.command == '$') { ZCMD.command = 'S'; break; } error = 0; ----- And add this piece of code right after it: if (ZCMD.command == 'F') /* force mobile command */ { skip_spaces(&ptr); if (*ptr) { tmp = *ptr; ptr++; skip_spaces(&ptr); ZCMD.sarg = str_dup(ptr); } else error = 1; } else ----- ----- Now look for: case '*': /* ignore command */ last_cmd = 0; break; ----- And add this piece of code below: case 'F': /* force mobile to do action */ if (!mob) { ZONE_ERROR("attempt to force-command a non-existant mob"); break; } command_interpreter(mob, ZCMD.sarg); break; ----- Done. You can now use the "F" command in your zone files. If this snippet was useful to you, please add: Andrey Fidrya // RMUD (rmud.techno.ru:4000 ; rus lang only) to your MUD's credits file. Thanks. Andrey (andrey@alex-ua.com) aka Zmey//RMUD +------------------------------------------------------------+ | Ensure that you have read the CircleMUD Mailing List FAQ: | | http://democracy.queensu.ca/~fletcher/Circle/list-faq.html | +------------------------------------------------------------+
This archive was generated by hypermail 2b30 : 12/15/00 PST