Going to catch up with this thread quickly. First, if you are going to extend existing protocol commands, please just add a version number to the protocol command (eg, drawinfo1, query1, map3, etc) instead of adding 'ext' to an existing command. Adding a number makes it clearer that this is a revision to an existing command. It is also more forward thinking. Suppose that extmessage command needs to be expanded down the road. Do you call it extextmessage? A few specific notes: Using any map command to send text information is probably going to be trickier than you think, and not much a gain. Your probably just better off having the drawinfo2 command take a coordinate offset. Presuming you want to draw this on the map, you need special handling anyways (the information has to last longer than 1 tick on the map display, for example, so the client has to store this away and some how age it). This is apparantly how Gros has done it, so that is good there. Note that type should be well defined. A long time back, I put something into the TODO file that messsages should be sent by type of message, and not by color like it is done now. Ideally, this is a reasonable number of types based on what the player may want to see, but not so unique that it would be impossible for players to be able to control the different message characters. Eg, if there are 20 message types, not too unreasonable for a player to set up their client with different fonts and color for each message type. However, if there are 300 message types, that obviously isn't feasible. One big thing to be added would be handling for the client to know if it is something that should be displayed in a fixed width font (eg, like a shop menu or spell listing). Long back I mentioned that the entire character creation system should be redone. One can probably search back in the past for that, but IMO, the ideal thing would be to give player some number of points to distribute between stats, let them choose race, class, etc. When player has all done this, client then sends something like 'newplayer <name><password><stat1><stat2>...<class><race><any other info> This then allows the cient to have a nice interface for creating characters. And eliminates a whole mss of the ask/reply stuff. Animations for the map: This has been discussed before. Large stretches of ocean is worst case scenario. However, a few things to think about: 1) animation speed can be variable for the same object/face. Thus, two orcs on a map could be moving at different speeds, and thus be animated differently. This potentially means that for every image on the map that is animated, you are sending some number of bytes to contain the animation speed. 2) There are some images/archetypes that should be locked to the same animation sequence (water), and others that should vary (eg, monsters). You don't want the monsters to animate all at the same time - that looks a bit cheesy. 3) No one has done an analysis to really see how much map side animations would save in bandwidth. Even for things like burning hands, it is a very transient operation, so if the overhead to send information about animation for it is more than the cost of animations, you don't gain a whole bunch As for why there are different ST_ states: This is because the code has to know somehow who is expecting that input. If you just have a ST_INPUT state, you then need somehow to know 'does this go to a script? Go to the players login name? etc." The best thing to add to the client would be a dialogue box that always takes anything entered in it and returns it as 'say' command. Thus, communication is then just a matter of typing into that box and hitting return. I do agree that dialogues for some things could be better. However, I'd say this is more a feature on the client, eg, the client could have a special option of 'type stuff into this box, and I'll send it to the server as a 'cast marking rune of <whatever was entered>' _______________________________________________ crossfire-devel mailing list crossfire-devel at lists.real-time.com https://mailman.real-time.com/mailman/listinfo/crossfire-devel