[crossfire] Server map redo: movement types

Nicolas Weeger nicolas.weeger at laposte.net
Tue Aug 30 02:35:57 CDT 2005


>
     
      All fields below use a bitmask to represent value, similar
     
     to how the attacktype 
>
     
      works.  These would be defined like:
     
     >
     
     
     >
     
      MOVE_WALK	0x1
     
     >
     
      MOVE_FLY	0x2
     
     >
     
      MOVE_SWIM	0x4
     
     >
     
      etc
     
     
Sounds like a great proposal.
I'd tweak it slightly, having MOVE_FLY_LOW and MOVE_FLY_HIGH:
first is your regular levitation, flying over jungle and water
maybe, second is flying over high mountains.
Let's not forget also MOVE_CROUCH :)

>
     
        Question: Do we want to print messages and/or add support
     
     of messages that 
>
     
      give some clue as to possiblity to move but player lacks
     
     ability.  Eg, player 
>
     
      trys to walk into water and gets message 'you lack the
     
     abilility to swim' or 
>
     
      something, and a player tht does have swimming but tries to
     
     swim into deep water 
>
     
      maybe gets a message like 'you can't swim in the deep water
     
     - it is too rough' 
>
     
      or something?
     
     
I'd say yes, we should warn player, directly or not (ie "you
hate water, don't want to drown" => hint hint: learn to swim!).
It could be nice to also either have the player automatically
fly over an obstacle (for instance), or get a message
(something like "the wall is too high to walk on" => hint
hint: try flying! :p). This way players won't need to always
fly or have to try all solutions to get over walls.

>
     
        I'm mixed what to do for multiple move types.  If a player
     
     has both fly and 
>
     
      walk movement types, what should happen when he walks on a
     
     trap door?  Nothing 
>
     
      at all?  Or activated?  What about when he walks on a
     
     teleporter/shop map - same 
>
     
      question?
     
     
I'd say handle as it is now. Player is assumed to walk, unless
using levitation spell/skill/item.
This then means dragons should be able to levitate (skill) and
cast spells, of course (not sure it's possible).

>
     
        I'm thinking the logic should be like the block code above
     
     - players generally 
>
     
      avoid the hazards.  In the case of shop mats/teleporters,
     
     players could manually 
>
     
      apply them.  Perhaps keep the enforcement of 'can't be
     
     flying to pick stuff up', 
>
     
      so players could always put those nifty items on top of
     
     traps to try and lure 
>
     
      the players.
     
     
Agreed on the can't be flying requirement. Maybe add a new
skill 'pick with a fishing pole' to grab items while flying? :)

>
     
      move_slow: Like move_block, bitmask that represents slower
     
     movement of that 
>
     
      type.  Walking though jungle should be pretty slow, and
     
     flying over it shouldn't 
>
     
      slow one down much.  right now, the actual penalty is same
     
     for all movement 
>
     
      types, so not sure if there is a need desire to be able to
     
     specify different 
>
     
      move penalties (10% if flying, 60% of walking, etc).
     
     
It could be interesting to do, but maybe too complex.
But it could be fun, imagine a big jungle and a small path you
can follow to go faster - alas, monsters lurk around!

>
     
      However, for loading, I'm thinking of allowing more general
     
     naming, so instead 
>
     
      of having to do:
     
     >
     
      move_on 7
     
     >
     
     
     >
     
      You could do
     
     >
     
      walk_on 1
     
     >
     
      fly_on 1
     
     >
     
      swim_on 1
     
     >
     
     
     >
     
        And the loader takes care of setting up the bitmask.  I
     
     mostly see this as a 
>
     
      convenience for archetype writers - using fill names is much
     
     easier than having 
>
     
      to look up bitmask, convert, etc (ok, with just a few
     
     values, not hard, but 
>
     
      still).  I'm not concerned about saves, as the editor should
     
     be able to nicify 
>
     
      this is necessary.
     
     
I'm thinking of tweaking the collect.pl script to accept names
instead of values for flags. So instead of having "attacktype
5940423" you'd have "attacktype fire cold poison". The
collect.pl changes that to correct numerical value.
This way the loader doesn't have to handle those gory details,
no performance hit :)

Ryo

Accédez au courrier électronique de La Poste : www.laposte.net ; 
3615 LAPOSTENET (0,34€/mn) ; tél : 08 92 68 13 50 (0,34€/mn)




    
    


More information about the crossfire mailing list