[CF List] Gnarg

Andreas Vogl andi.vogl at gmx.net
Mon Oct 22 16:44:56 CDT 2001


Kimmo Hoikka wrote:
>
     
      [...]
     
     >
     
      Big size monsters have some weaknesses with spells currently, the
     
     >
     
      best example beeing the notorious lorkas the fallen who kills himself
     
     >
     
      all the time with his powerfull spells, perhaps thats not the intent,
     
     >
     
      rather makes the map a bit too easy sometimes...
     
     
You didn't mention the best point: Lorkas is killing himself
with attacktypes that he's completely immune to.

Assuming he's not attacking himself with melee,
His spells only do fire, cold, poison, magic - to all of which
Lorkas is 100% resistant.

This bug has been known for a good while, but nobody could come
up with a fix yet. I suspect it might be related to this old
stats-glich in the monster code: When a monster applies any piece
of equipment, it's stats get replaced by those from the default arch
or sth. (See below)

The fact that Lorkas has suicide-tendecies doesn't pose a
direct leak to balance, as his guardians (Rancid, Vultoor)
are mean enough. However, I do agree the bug is annoying.

Andreas V.

Here is an old excerpt from the cf-devel archives:
Andreas V. (me) wrote:
>
     
      > When a monster with special resistances
     
     >
     
      > (special = not identical with archetype) has the "can_use_armour 1"
     
     >
     
      > and can_apply/will_apply set, this screws the monster's resistances.
     
     >
     
      > When applying an armour, the monster seems to revert to archetype's
     
     >
     
      > resistances (or maybe even none).
     
     
Mark W. replied:
>
     
      This applies for more than just resistances - basically all attributes
     
     >
     
      (str, dex, ...)  The problem is difficult to fix.  Basically, to fix this
     
     >
     
      would require a second store of values as stored in the map file.  This
     
     >
     
      could perhaps be done via a dynamic archetype - if we notice some values
     
     >
     
      being changed, we allocate another archetype, update the objects arch
     
     pointer
>
     
      to that, and set a flag so we know we have already done this (and to free
     
     >
     
      that archetype when we free the object).
     
     >
     
     
     >
     
      The reason this happens is that when a creature applies something (note
     
     >
     
      the both monsters and players use the same function), we go back to the
     
     >
     
      archetype values to use for base and just add/subtract onto stuff.  This
     
     >
     
      is much more accurate, and in some ways the only way to go (since
     
     >
     
      resistances are not strictly additive, I am not sure if you could
     
     >
     
      accurately remove resistances without recalculating them all).
     
     
    


More information about the crossfire mailing list