[CF-Devel] new run and fire mode

Mark Wedel mwedel at scruz.net
Tue Dec 5 00:19:43 CST 2000


Michael Toennies wrote:

 Pretty much all you describe is client issues.  notes follow:

>
     
      For all who don't know: There is no way at the moment to
     
     >
     
      do a single arrow shoot. All times the server do someting like
     
     >
     
      this:
     
     >
     
     
     >
     
      client do:
     
     >
     
      fire <direction>       / turns the auto fire mode of the server on
     
     >
     
                                      -> server sends the FIREON flags in the STATS cmd
     
     >
     
      fire_stop                       // server sends this to avoid multiple fire
     
     >
     
                                      -> server sends cleared flags in STATS back
     
     >
     
      ... and so on
     
     
 Simple.  HAve your client just send a fire <direction> followed immediately by
a fire_stop command.  That should get you one arrow.

>
     
     
     >
     
      If you have some lags, this kills the bow skill. Also, you want shoot a row
     
     >
     
      of
     
     >
     
      assassination arrows. You run in, give out 2-3 fast shots and run away (good
     
     >
     
      tactic
     
     >
     
      in front of some dragons.)
     
     
 But it goes both ways.  IF the client just sends 'fire direction' for each
arrow fired, lag in sending those commands to the server results in arrows not
being fired at their full potential.

 Its tough to determine what the right behaviour is.  You can have fine control
but perhaps not do things to the full potential, or you could have a case where
you loose the fine control, but blat as much as possible in that time frame. 

>
     
     
     >
     
      The same for the clients: run cmd turn automatically on the autorun mode.
     
     >
     
      Also, the clients
     
     >
     
      try to track down the server stats. The windows client has none ALT/CTRL use
     
     >
     
      and the x client
     
     >
     
      for example use a mix of client stats and server stats to track down the
     
     >
     
      mode stat.
     
     
 I don't completely parse what you are talking about.

 Note that run mode is no different than normal movement, except for the 'keep
moving in direction x until I get a new direction or a run_stop'.  Once again,
this was a performance issue.

 I've been working on the client a long time, and can tell you some of the old
behaviour.  Before a run mode, the behaviour was to just send the appropriate
direction commands as long as the run & key is pressed.

 The problem is syncrhonization issue.  If the player speed is 0.5, you end up
sending a fair number of commands a head of the client, so after you stop
pressing that key, the client may have sent 10 movement to the server that have
yet to be processed.

 OTOH, if you use a slower rate but the player speed is 1.2 for example, then
the player does not move to the full potential, as the client may only send
them  effectively at speed 0.7.

 This gets trickier as information reported for player speed is highly
variable.  Moving accross rough terrain, you effectively have a slower speed,
but that is all taken care of in the server and movement code.

 Note the addition of the run and fire status in the stats command was simply to
better let the player know what is going on in terms of server state.  Client is
free to keep its own state and show that to the player.  Client is not required
to report all data that may be sent to it.

>
     
     
     >
     
      I want use the ALT key in a way, you can toggle the standard run mode for
     
     >
     
      the client. If you in "go mode"
     
     >
     
      , ALT toggle the run. If pressed you run, if you drop it, you hold on.
     
     >
     
      If you press 'r', you are in autorun mode. ALT then should stop the run, and
     
     >
     
      if you release, you should
     
     >
     
      run again in the same direction (or new if you press a different direction).
     
     >
     
      Same should work with fire mode. Run in, press CTRL, fire 2 times in
     
     >
     
      direction, release CTRL and run away.
     
     >
     
      Problem is, that it don't work, if you run. So you cant run in, press CTRL
     
     >
     
      then, fire 2 times and run away
     
     >
     
      releasing CTRL.
     
     
 Sounds all like a client issue to me.  Client should keep state of its
different keys and send the appropriate run and fire commands.

 Note that the server tracking of run and fire states on the server was not
originally done - the original theory was that the server should track a minimal
state of the client, but for performance reasons, it was added.

>
     
      Skip the run mode / fire mode on the server. Lets it all on client side!
     
     >
     
      With this, we can handle
     
     >
     
      the problem!
     
     >
     
     
     >
     
      - We don't need the run mode trigger on the server! In fact, you can skip it
     
     >
     
      with the client
     
     >
     
         today too. Just send all times you have a pressed ALT key or a set
     
     >
     
      'run_on' a run <direction>
     
     >
     
         cmd and let the client run in the direction! run_stop will called in
     
     >
     
      normal way, but will end the
     
     >
     
      current run in the current direction (= stop). Also, a simple 'move
     
     >
     
      <direction> will end it too!
     
     >
     
      This will avoid cmds, will avoid side effects and all is like before.
     
     
 I still don't see any reason this can't be done without any changes to the
server.  But see notes above.



>
     
      There is no real need for the fire mode, where you stand and fire fast as
     
     >
     
      possible, except praying.
     
     
 See notes above.

>
     
     
     >
     
      Bow skill should do more damage, this nail the character on a place and fire
     
     >
     
      like a maschine gun
     
     >
     
      in all directions is a bad style to play. The game is growing above this.
     
     >
     
     
     >
     
      If we change it in the way i describe, we can make the moving/firing thing
     
     >
     
      much more exact and
     
     >
     
      better to handle, also we can speed up things a little bit. If you has a
     
     >
     
      lag, the single fire
     
     >
     
      mode is a real pain in all asses.
     
     
 See notes above.

    
    


More information about the crossfire mailing list