As I was creating some scripts I wanted to make an object that would make a
sound in the surrounding rooms. I noticed there was no command for it, so
I made one using masound as an example. It has worked perfectly so far.
Here's the command if anyone wants it, please give the original dg coders
credit.
*** ./stk/dg_ogbcmd.cpp Fri Mar 13 14:43:54 1998
--- ./src/dg_ogbcmd.cpp Mon Jun 15 10:22:18 1998
*************** sh_int find_obj_target_room(obj_data *ob
*** 127,132 ****
--- 127,156 ----
/* Object commands */
+ OCMD(do_oasound)
+ {
+ sh_int was_in_room;
+ int door;
+
+ exter void act_to_room(char *str, room_data *room);
+
+ if (!*argument) {
+ obj_log(obj, "wasound called with no argument");
+ return;
+ }
+
+ skip_spaces(&argument);
+
+ was_in_room = obj_room(obj);
+
+ for (door = 0; door < NUM_OF_DIRS; door++) {
+ struct room_direction_data *exit;
+
+ if (((exit = world[was_in_room].dir_option[door]) != NULL) &&
+ (exit->to_room != NOWHERE) && (exit->to_room != was_in_room))
+ act_to_room(argument, &world[exit->to_room]);
+ }
+ }
OCMD(do_oecho)
{
*************** OCMD(do_odamage) {
*** 464,469 ****
--- 488,494 ----
const struct obj_command_info obj_cmd_info[] = {
{ "RESERVED", 0, 0 },/* this must be first -- for specprocs */
+ { "oasound" , do_oasound , 0 },
{ "oecho" , do_oecho , 0 },
{ "oechoaround", do_osend , SCMD_OECHOAROUND },
**** END SNIPPET ****
I was also trying to make a room that would ask a specific char in the
room a question, and the player can answer it. Now, I already have the
script working, but it only works when triggered by a player, ie: enter,
and speech triggers. I would like it to be a random trigger, so the player
doesnt have to do anything to activate it.
Is there a way to make a RANDOM trigger have a target, or choose a player
in the room if one is present? If not, I was thinking of making a mob/room
command that would choose a player in the room and assign him/her to a
variable. There are a couple of ways I have thought of doing this.
1: Mimic the random variable, I believe it would be used like this:
eval player %target%
where %target% would choose a playere in the room and assign it to player
2: use a new command as follows:
mtarget player
where the command would fill player with a target...
I have not looked into it to deeply yet. I would still have to figure out
the variable code for DG, but are there any ideas/suggestioins?
Thanks
*>Jon<*
+------------------------------------------------------------+
| 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