I think he was refering not to a real lag.
Normally, when we cast a spell, we cannot type anything for the next few
seconds because of `wait' in effect.
It will look like the mud is not responding at all and looks like a lag.
He wants to make it so even when we can not legally do more actions during
the wait time, the mud will respond with ``You still need to wait xxx
seconds.''
I think that was what he meant.

Htam

----- Original Message ----- 
From: "Chris "Winston" Litchfield" <[EMAIL PROTECTED]>
To: <[email protected]>
Sent: 2003.11.02 07:17
Subject: Re: ROM and WAIT_STATEs


> Exactly what lag are you refering to here?  by preventing input for a
round?
> A round is mighty fast and not really noticable.
>
> Lesse.. most I had on simultanously was 65 and no lag due to wait.  Now..
> lag I have I trace per command..  COMMANDS have way more lag than the
battle
> system.
>
> Chris "Winston" Litchfield
> ----- Original Message ----- 
> From: "George Whiteside" <[EMAIL PROTECTED]>
> To: <[email protected]>
> Sent: Saturday, November 01, 2003 1:26 PM
> Subject: ROM and WAIT_STATEs
>
>
> > As much as I like the ROM codebase, there are naturally goods and bads
> > associated with it. One of those bad things, to me, is the
implementation
> of
> > the ch->wait feature. It basically causes a game client's input to lag
by
> X
> > amount of game pulses. On my MUD, everything is very round-orientated.
The
> > old combat system is long dead, (good riddance), and most complex
actions
> > incur a round time, usually a few seconds, depending. The point is, it's
> > irritating to just use WAIT_STATE and have a player lagging until the
> round
> > time passes, wondering whether the problem is his connection or not.
> There's
> > a very simple fix. You can move the ch->wait check to after the command
> > interpreter, and in the actual interpreter, add a few lines telling the
> > character something to the effect of "Wait X more seconds." Like so:
> >
> > In comm.c - void game_loop_unix:
> >
> > + if (d->character != NULL && d->character->daze > 0)
> > + --d->character->daze;
> > +
> > - if ( d->character != NULL && d->character->wait > 0 )
> > - {
> > - --d->character->wait;
> > - continue;
> > - }
> > +
> > + read_from_buffer( d );
> > + if ( d->incomm[0] != '\0' )
> > + {
> > + d->fcommand = TRUE;
> > + stop_idling( d->character );
> >
> > Cut out the character->wait if statement, and paste it approximately 20
> > lines down:
> >
> > +     d->incomm[0] = '\0';
> > +     }
> > +
> > & if ( d->character != NULL && d->character->wait > 0 )
> > & {
> > & --d->character->wait;
> > & continue;
> > & }
> > + } // Make sure it's BEFORE this bracket.
> > +
> > + /*
> > +  * Autonomous game motion.
> > +  */
> > + update_handler( );
> >
> > Now the command interpreter gets a pass before waiting.
> >
> > Okay, in interp.c - void interpret:
> >
> > Put a 'char buf[MAX_STRING_LENGTH];' in the variables at the top right
> away
> > if you're going to use sprintf.
> >
> > Add the following near the bottom of the function:
> >
> > + return;
> > + }
> > +
> > & if( ch->wait > 0 )
> > & {
> > &     if( ch->wait > PULSE_PER_SECOND )
> > &     {
> > &         sprintf( buf, "Wait %d more seconds.\n\r", (ch->wait /
> > PULSE_PER_SECOND)+1 );
> > &         send_to_char( buf, ch );
> > &     }
> > &     else
> > &     {
> > &         send_to_char( "Wait 1 more second.\n\r", ch );
> > &     }
> > &     return;
> > & }
> > +
> > + /*
> > +  * Dispatch the command.
> > +  */
> > + (*cmd_table[cmd].do_fun) ( ch, argument );
> >
> > That should just about do it, I hope. I've never tested my MUD large
> scale,
> > (read: more than 3 simultaneous players) and I'm not sure I havn't
> forgotten
> > more of the code, so your mileage may vary. I think those were the only
> > pertinent changes, however. Enjoy!
> >
> > decaheximal ([EMAIL PROTECTED])
> >
> > ---
> > [This E-mail scanned for viruses by Declude Virus]
> >
> >
> > -- 
> > ROM mailing list
> > [email protected]
> > http://www.rom.org/cgi-bin/mailman/listinfo/rom
> >
> >
>
>
>
> -- 
> ROM mailing list
> [email protected]
> http://www.rom.org/cgi-bin/mailman/listinfo/rom


Reply via email to