[crossfire] channels

Mark Wedel mwedel at sonic.net
Wed Apr 27 00:50:56 CDT 2005


Brendan Lally wrote:
>
     
     
     >
     
      er, I'd only really need to 
     
     >
     
      1) change the arguments of new_draw_info (I've changed the function itself 
     
     >
     
      already, so literally just 
     
     >
     
      1a) backup and make a seperate copy of c_chat.c
     
     >
     
      2) for i in $(ls server/*); do cat server/$i | sed s/NDI_UNIQUE \|/ / >$i.new; 
     
     >
     
      cat server/$i | sed s/NDI_[:alpha:]\,/ / > $i 
     
     >
     
      (I'll need to check the syntax on that)
     
     >
     
      3) compile and manually change some corner cases (and c_chat.c).
     
     >
     
      4) set the colour value in the channels as described earlier.
     
     >
     
     
     >
     
      removing infomation is much easier than adding it....
     
     
  But the problem I see is that you don't add enough new channels that all the 
NDI_... is now redundant.

  I estimated that there'd be around 20-30 different NDI_<message type> fields.

  And the problem then leads into a huge combination of NDI values * channel 
values, making handling on the client a much more complicated mess.

  I was thinking about this some more, and we may be addressing it from the 
wrong side of things - the server side.  What really counts is the interface to 
the player - if the interface isn't good, all of this is basically meaningless 
because no one will ever use it.

  My personal thought is that I probably want a max of 5 different message tabs 
in my client - anything more than that seems excessive for the number of 
messages I typically see while playing on metalforge.

  My vision on how to handle this is to have a selection window that lists all 
the different message types/channels, and lets you select the font, color, and 
tab it goes into.  For purposes of this discussion, we'll let the type/channel 
info be non specific - could be NDI code or channel value.

  This, I might set something up that lets all attack related messages go into 
one tab.  As an additional ability, any kill messages show up in that tab in red.

  In another tab, set it for all readable type messages.

  In third tab, set it for all chat/shout/tell type messages.

  In fourth tab, set it for whatever is left over (level gain messages, people 
joining/leaving/etc).

  Maybe set a fifth tab to cover everything else.

  I certainly _don't_ want 1 tab per channel - I don't want to have 30 tabs in 
my client.  I also don't want something like 'if you don't have that specific 
tab, everything gets dumped into a default tab'.

  That is one problem I have with both having channels and colors - from a user 
perspective, how do I control preferences then?  For example, suppose the 
preference I describe is based on channels.  How do you handle messages that 
come in on that channel in a different color?  You can't really have a selection 
for all those posibilities, so the client has to assume some behaviour.  does it 
just use the defaults the user selects (tab, font, color)?  Does it use the 
color it comes in as, but otherwise use same tab and font?  etc.  That is why 
having only 1 attribute for all draw_info calls makes things much easier to 
handle - if there is only 30 message types, easy to present all those in a 
window to the user to choose their defaults.

  Note that these preferences are also stored client side.  So this makes 
dynamic channels harder to handle - channel 25 may change its meaning run to 
run, or perhaps even server to server.  I don't have a good solution for that one.

  What is also the expected plan for people actually chatting on these channels? 
  I'm presuming there will need to be some command to do so, but I don't see 
that in your patch right now, so not sure how that will be handled.  Keep in 
mind you need to provide some way for players with older clients to both see and 
chat on these new channels.

    
    


More information about the crossfire mailing list