[CF-Devel] Dragon claws & attack types

crossfire-devel at archives.real-time.com crossfire-devel at archives.real-time.com
Tue Dec 23 22:44:08 CST 2003


Nicolas Weeger wrote:
>
     
      I checked on cf.mf.net why my dragon didn't have any special 
     
     >
     
      cold/fire/poison attack with clawing.
     
     >
     
     
     >
     
      Apparently, something is broken in attack type & such.
     
     >
     
      I have 'clawing' skill, type 43 subtype 31.
     
     >
     
      Then i have archetypes 'fire_clawing', 'poison_clawing', and so on.
     
     >
     
     
     >
     
      In player.c, dragon_ability_gain() checks treasure list's items for type 
     
     >
     
      '43' (skill). Except archetypes fire_clawing/... have the type 74 
     
     >
     
      (skilltool).
     
     >
     
      So my player has (global) attack type 1 (physical) only, and all 
     
     >
     
      archetypes for fire/electric/... attacks....
     
     
  Looking at the code, it appears the code should be changed.

  That is because other code looks for objects of type skill, with skill name 
'clawing' when we need to insert that skill object into the players inventory to 
hold experience.

  That is to say, if you change the archetype, then first time someone goes to 
use clawing, it may add the 'fire_clawing' archetype as the holder of skill exp.

  I'm not 100% satisfied that the method I coded, but this gets messy with the 
clawing code - I think right now that is the only skill where there are 
different skill type objects that give the exp into one skill.  For example, 
there is only one 'two_handed_weapon' skill, and it basically gives the exp to 
itself.

  In any case, I'll update the code to check for the appropriate type.

>
     
     
     >
     
      Now I don't know if the archetypes are not updated, or it the code 
     
     >
     
      checks the wrong thing.
     
     >
     
      Also, should the attacktype be set for the player itself, or on a skill 
     
     >
     
      base? (ie set in the 'clawing' skill item, or on the player's attacktype?).
     
     
  the clawing skill.  If it gets set in the player attacktype, that gets reset 
the next time fix_player() is called (that goes and examines everything the 
player has equipped, and sets attacktype appropriate).

  In the case of using skills, when you go and use a combat skill (like 
clawing), it is marked as applied, so the fix_player sees that, and then sets 
the player attacktype appropriate.

  (interestingly enough, you could do something like have 'fire kung fu', which 
attacks with fire, simply by making the attacktype in that skill new skill fire).

  Now the one thing I do see that seems odd is that the attacktype of the new 
clawing ability is or'd with the existing attacktype.

  That would seem to mean that a dragon character could attack with fire, ice, 
poisoning, and electricity all with the claw attack.  That seems wrong to me, so 
I'll fix that up.

>
     
     
     >
     
      Side note: i have in inventory multiple 'one handed weapons' (even 
     
     >
     
      though i'm a dragon)
     
     
  It's odd you have more than one.  I could see that you would have exactly 1 
(there isn't anything preventing you from learning the skill, even though you'd 
never be able to use it).  But in that case, you should only have one.




_______________________________________________
crossfire-devel mailing list
     
     crossfire-devel at lists.real-time.com
     
     
     https://mailman.real-time.com/mailman/listinfo/crossfire-devel
     
     
    


More information about the crossfire mailing list