Crossfire Mailing List Archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: cheating & LOS



>>>>[From Carl Edman]
    
    The client/server protocol does not have "rounds".

Yes it does. See below

    Yes, the server has  
    to keep LOS maps, both for computational efficiency and for the sake of  
    the protocol.  Whenever an item moves or changes, the server goes  
    through the list of the LOS maps for all players and immediately sends  
    ITEM commands to all the players for whom the item is in the LOS.


Absolutely positively not.

The protocol itself does not have an explicit notion of rounds, but
that's because it's underlying purpose is to best handle rounds.
The whole model for crossfire REQUIRES syncroynous rounds, across
player/monster movement.

At each round, the server goes through each player's 11x11 map, and sends
everything relevant.
A player move takes (usually) one or more number of rounds. But so does
standing still for some amount of time.
The only reason the protocol has support for partial uploading of a 11x11
map to a client, is simply because it's more efficient that way, not
because we want asynchronous updates.



    When a player moves (or an item with effect on LOS is destroyed or
    created inside the players LOS) a new LOS map is created for the
    player. Then the server compares the old and the new LOS maps and
    sends a single MAP command for all the squares in the new LOS and not
    in the old and a single UNMAP for all the squares in the old LOS but
    not in the new.  Then the old LOS map is discarded.

True enough.

      That is the entire display code in a nutshell.  There are no
    "updates".  There are no "rounds".  Everything happens instantly.

Not true.