[crossfire] client: pickup count

Mark Wedel mwedel at sonic.net
Tue Jan 18 01:55:04 CST 2005


>
     
     
     >
     
      I think the old one was build on 9 May 2004.  It didn't always clear out
     
     >
     
      the pickup count, but it worked pretty well.  With the current CVS
     
     >
     
      version, when the pickup count is zero, and you start to enter
     
     >
     
      something, instead of starting with what you enter, it suddenly reverts
     
     >
     
      back to the old number and what you add is appended on to that.
     
     
  I just tried this out, and it worked normal, as far as I'm concerned.

  In my testing, I dropped a huge pile of platinum, and disabled auto pickup mode.

  hitting '14' ',' picked up 14 platinum, and so on for other quantities.

  One thing to look at is the 'count' spin at the top of the inventory pane.

  I also run with no popup mode and non split (one big window).

  One oddity, which as I recall has no good solution, is that if I take a step 
or do other command between entering the number and executing the pickup, that 
it doesn't use the account.

  Eg, typing '4', 'who', ',' will result picking up the entire pile, not just 4 
coins.

  There is also some odd remembering of those results, as if I then click to 
drop the coins again, it only drops 4 coins, not the entire pile.

  The problem, if memory serves, is that there are more commands than just 
pickup/drop that the count can be useful on.  So the client basically has to 
send it for every command to the server, and then reset the count, since the 
client can't easily know if count will be useful for the command sent (and 
example here is dimension door, where count is used to specific a specific 
number of spaces to move, and that is done with the 'fire' command).

  There may be some others I'm also forgetting about beyond just the drop and 
pickup and that case for fire.

  However, I think where the 'caching' of the unused one comes in above is that 
the server remembers the count value the client sent it.  so I think there is 
some strange result of the server remembering the count it didn't use, or for 
some reason, the client not clearing it.

  In any case, it basically works.  This could certainly be improved by the 
server sending the count value it is expecting to use to the client (because 
those special cases I mention above do clear the server side count).  Thus, the 
client would know if its count value was used or not (but as I think about it, 
I'm not sure if the client should care).

  One possibility for what it doesn't work is if there is some intervening 
command from entering the number to typing the comma (maybe comma is bound to 
something more than just pickup?)



    
    


More information about the crossfire mailing list