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.