Visible WAIT_STATE code by Ranka the Implementor of Arion [telnet://irc.nohik.ee 4242] (rainer_roomet@hotmail.com). - credits - You may use this code when you give me about $1000, my name have to marked in each help file and also I need full access into your MUD! It was joke :) You may use this code however you wish. Build more into it, give it to friend or to your dog, or I don't know. I don't need any credits or help files. Only thing what I want - when you found bug, typo or something like that. Just mail to me at: rainer_roomet@hotmail.com or come to telnet://irc.nohik.ee on port 4242 and contact with Ranka. - notes - This code hasn't well tested. And it may include some bugs, if you found any bug, please send mail to me at: rainer_roomet@hotmail.com or come to telnet://irc.nohik.ee 4242 and contact with Ranka. P.S. BEFORE INSTALLING ALWAYS MAKE A BACKUP!!!!!!!!!!!!!!!!!!!! - explanation - using this code, you can see your delays as 'points', for example: > cast 'armor' > You begin to utter some strange incantations... >You are already armored. >...... <----- this is delay >The High Priest says '.. about 'the Elendil Sword' then talk to me.' >..... <--- this is delay And always you can turn these 'points' off and to get usual ROM delay mood. - installing - Open the file: -- merc.h -- ------------ Find following lines: #define PLR_AUTOSAC (F) #define PLR_AUTOGOLD (G) #define PLR_AUTOSPLIT (H) And add following: #define PLR_WAIT (I) if it is done. Savd and close the MERC.H ======================================== Now open the file act_info.c! ---------------- -- act_info.c -- ---------------- At the end of the file add following: /* * command for showing delays */ void do_delay( CHAR_DATA *ch, char *argument) { char arg[MAX_INPUT_LENGTH]; one_argument( argument, arg ); if (IS_NPC(ch)) return; if (arg[0] == '\0') { if (IS_SET(ch->act, PLR_WAIT)) { send_to_char("Delay display is now OFF.\n\r", ch); REMOVE_BIT(ch->act, PLR_WAIT); } else { send_to_char("Delay display is now ON.\n\r", ch); SET_BIT(ch->act, PLR_WAIT); } } if ( !str_cmp( arg, "on" )) { send_to_char("Delay display is now ON.\n\r", ch); SET_BIT(ch->act, PLR_WAIT); return; } else if ( !str_cmp( arg, "off" )) { send_to_char("Delay display is now OFF.\n\r", ch); REMOVE_BIT(ch->act, PLR_WAIT); return; } else if ( !str_cmp( arg, "status" )) { send_to_char("Your delay status is currently", ch); if (IS_SET(ch->act, PLR_WAIT)) send_to_char(" ON.\n\r", ch); else send_to_char(" OFF.\n\r", ch); return; } } Close the act_info.c and open comm.c =========================== Open file: ------------ -- comm.c -- ------------ in function, "void game_loop_unix( int control )", there find following lines: if (d->character != NULL && d->character->wait > 0) { --d->character->wait; continue; } REPLACE previous lines with following: if ( d->character != NULL && d->character->wait > 0 ) { if (d->character->position != POS_FIGHTING && IS_SET(d->character->act, PLR_WAIT)) { if (d->character->wait == 1) send_to_char("\n\r\n\r", d->character); --d->character->wait; send_to_char(".", d->character); continue; } else { --d->character->wait; continue; } } Now find function, "bool process_output( DESCRIPTOR_DATA *d, bool fPrompt )". There find following lines: if (!IS_SET (ch->comm, COMM_COMPACT)) write_to_buffer (d, "\n\r", 2); REPLACE these lines with following: if (!IS_SET(ch->comm, COMM_COMPACT) ) { if (ch->wait <= 0 || ch->fighting != NULL || !IS_SET(ch->act, PLR_WAIT)) write_to_buffer( d, "\n\r", 2 ); } Now find function, "void bust_a_prompt( CHAR_DATA *ch )" and find following lines: point = buf; str = ch->prompt; After these lines add following: if (ch->wait > 0 && ch->fighting == NULL && IS_SET(ch->act, PLR_WAIT)) return; Now find function, "void write_to_buffer( DESCRIPTOR_DATA *d, const char *txt, int length )", there find: /* * Initial \n\r if needed. */ if (d->outtop == 0 && !d->fcommand) { d->outbuf[0] = '\n'; d->outbuf[1] = '\r'; d->outtop = 2; } And REPLACE it with: /* * Initial \n\r if needed. */ if ( d->outtop == 0 && !d->fcommand ) { if (d->character != NULL && (d->character->wait <= 0 || d->character->fighting != NULL)) { d->outbuf[0] = '\n'; d->outbuf[1] = '\r'; d->outtop = 2; } } ================================================ ----------------------- -- comm.c or nanny.c -- ----------------------- /* If you have file 'nanny.c' open it, if not then open comm.c */ Now find: sprintf (buf, "the %s", title_table[ch->class][ch->level] [ch->sex == SEX_FEMALE ? 1 : 0]); set_title (ch, buf); And add before or after it following lines: SET_BIT(ch->act, PLR_WAIT); /* it sets WAIT displaying ON, when new character enters the game, You may turn it off, 'SET_BIT(ch->act, PLR_WAIT)' or remove it. */ ==================================================================== -------------- -- interp.c -- -------------- Add new command, 'do_delay' at the end of the command list. { "delay", do_delay, POS_DEAD, 0, LOG_NORMAL, 1 }, ===================================================================== -------------- -- interp.h -- -------------- Add new command, 'do_delay' somewhere in interp.h, DECLARE_DO_FUN( do_delay ); /***********************************************************************/ /* Now 'make clean' and recompile. It should be work, but if You have */ /* some problems, found typos, bugs, ideas or if you hate me, then */ /* feel free to mail me at: rainer_roomet@hotmail.com */ /* */ /* Thanks for using my Snippet. */ /* Rainer Roomet. */ /* The Lost Lands of Arion */ /* telnet://irc.nohik.ee 4242 */ /* rainer_roomet@hotmail.com */ /* */ /* 30.05.2004. */ /*************************************************************************