[crossfire] Command learn_spell does not work for some spells

Andreas Kirschbaum kirschbaum at myrealbox.com
Tue Dec 13 01:38:44 CST 2005


Mark Wedel wrote:
> I'd think that the abil_ball_lightning could perhaps change names. The
> monsters don't care what it is called :).

Seems to work: I did rename abil_xxx to "xxx ability". The actual spell
cast by the monster was still "xxx".


> I'm just not sure if that is used for dragon players to give them the
> spell or something.

The treasure lists dragon_ability_yyy (yyy=fire,cold,etc.) contain
spell_xxx but not abil_xxx.

Renaming these spells (perhaps to "ball lightning ability"?) also would
allow DMs to learn the abilities.


> Not even sure what spelldirect_ball_lightning is used for - the
> archetype exists, but isn't used in the treasure for any monster nor
> is it used by any other arch (quick grep spelldirect_ball_lightning */*)
> - I _think_ this is here for compatiblity because some maps gave
> the monster this object (old spell code) so needed an object to use
> for that instead of getting a null object. IF this is the case, the
> maps should perhaps be examined to see if anything is still using
> this, and ideally, just fix up those references and remove this arch.

No map (in maps-bigworld, both current and some old versions) references
this archetype.

Some more digging revealed: the ChangeLog file contains two references
to spelldirect_xxx. And checking out old versions from cvs did show that
dragon_ability_xxx did include spelldirect_xxx a while ago. At some time
spelldirect_xxx was replaced by spell_xxx.

Leaf did check the player files on metalforge: ten players include
spelldirect_xxx objects. Therefore we probably should not delete these
archetypes.


> All that said, looking for objects that have spell_ as the archetype
> name would probably be a safe workaround.

With the above findings, I think we should use a slightly different
approach: allow all objects with type 101 (SPELL) with the exception of
arch names spelldirect_xxx. This, combined with the renamed abilities,
and also an improved learn_spell command to prefer full matches over
prefix matches should enable a DM to learn all existing spells other
than the obsolete spelldirect ones.


> It'd perhaps also be good to somehow get that multiple matches were
> found and print a warning in that case, but not sure how easy that is
> to do.

Should not be too hard -- I'll implement that. And also improve the
commands learn_spell and forget_spell to give more accurate failure
messages, and to allow a direct match even if a longer one exists ("xxx"
vs. "xxx ability", or "vitriol" vs. "vitriol splash").



More information about the crossfire mailing list