So when I hit my macro to walk from area A to area B, it won't work? Sounds like it'll cause a lot of problems. :P
--- Sarix <[EMAIL PROTECTED]> wrote: > Ok so question, do display this. You'll have to put something > where the wait > state is skiping past you yes? Now the only problem with > this, is you'll > need to clear the incoming buffer on the person. Or if they > type one thing 4 > times every second (standard stock rom pulse) they will get a > message saying > that. > > Now if you clear there message they have to retype what ever > it was they > typed. Sounds like a good idea, but to me that would personaly > drive me > nutz. > ----- Original Message ----- > From: "Jed Yang" <[EMAIL PROTECTED]> > To: <[email protected]> > Sent: Sunday, November 02, 2003 8:55 AM > Subject: Re: ROM and WAIT_STATEs > > > > 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 > === message truncated === ===== -Matt Foltz [Neoterra MUD] telnet://neoterra.is-a-geek.com:4000 [Car Audio Resources homepage] http://www.car-audio.net __________________________________ Do you Yahoo!? Exclusive Video Premiere - Britney Spears http://launch.yahoo.com/promos/britneyspears/

