From GdaWiki

Lineage: ModifierUnSkill

Les skills

a) généralité

article connexe : Skill et base de données

Les skills regroupent en fait les sorts des joueurs mais aussi quelques capacités, les actions des potions et les définitions d'armes et de set.

Ils sont regroupés dans le répertoire data/stats sur notre serveur et vous pouvez les consulter à votre aise :

/data/stats

Les fichiers de skills sont des fichiers xml. Inutile d'avoir peur de ce mot barbare, il s'agit en fait d'une facon de représenter des informations.

Dans ces fichiers, vous trouvez la définition de tous les skills. Chacun a un numéro, son id qui le rendent unique. Prenons par exemple le skill servitor cure.

<skill id="1300" levels="3" name="Servitor Cure">
<table name="#mpConsume"> 35 44 55 </table>
<table name="#power"> 3 7 9 </table>

  <set name="mpConsume" val="#mpConsume"/>
  <set name="power" val="#power"/>
  <set name="target" val="TARGET_PET"/>
  <set name="skillTime" val="4000"/>
  <set name="reuseDelay" val="120000"/>
  <set name="skillType" val="NEGATE"/>
  <set name="isMagic" val="true"/>
  <set name="operateType" val="OP_ACTIVE"/>
  <set name="castRange" val="600"/>
  <set name="negateStats" val="POISON BLEED"/>
  <for>
  </for>
</skill>

Voici quelques notions de xml que nous allons constater sur ce sort :

Ca, c'était les notions de bases, inutile d'en voir plus. Voyons maintenant comment est organisé ce skill. Ce skill a donc une première balise skill qui donne son nom, son id et le nombre de niveau différent : levels="3". Ce qui veut dire que ce skill a 3 niveau de puissance. En dessous, on définit deux tableaux mpconsume et power qui ont 3 cases chacune. Ces tableaux seront utilisés pour donner 3 valeurs pour chacun des niveaux du skill. En effet, au niveau 3 ce skill consommera plus de MP qu'au niveau 1 par exemple.

Ensuite on assigne des valeurs (en anglais, on set). Chaque "set" a un nom. Tous les noms sont regroupés dans le tableau stats plus bas. Ils correspondent a une caractéristique du skill.

Il n'est pas obligatoire d'avoir toutes les valeurs définis pour un skill. Chaque skill ne définit que quelques valeurs.

Ici par exemple :

Donc si on résume, ce skill magique permet de soigner son pet (ou summon) des sorts de POISON et de BLEED. Il peut être utilisé toutes les 2 minutes, coute des mp en fonction du niveau.

Nous allons avoir maintenant un sort de BUFF.

<skill id="1308" levels="3" name="Chant of Predator">
<table name="#mpConsume">
	172 220 252
</table>
<table name="#power">
	1.0 2.0 3.0
</table>
<table name="#Tab-rCrit">
	1.15 1.30 1.45
</table>
  <set name="mpConsume" val="#mpConsume"/>
  <set name="power" val="0.0"/>
  <set name="target" val="TARGET_PARTY"/>
  <set name="skillRadius" val="900"/>
  <set name="hitTime" val="2000"/>
  <set name="reuseDelay" val="20000"/>
  <set name="skillTime" val="2000"/>
  <set name="skillType" val="BUFF"/>
  <set name="isMagic" val="true"/>
  <set name="operateType" val="OP_ACTIVE"/>
  <set name="buffDuration" val="1200000"/>
  <set name="castRange" val="-1"/>
<for>
	<effect count="1" name="Buff" time="1200" val="0" stackOrder="#Tab-rCrit" stackType="rCrit">
		<mul order="0x50" stat="rCrit" val="#Tab-rCrit"/>
	</effect>
</for>

Voici le skill Chant of predator. Ici nous constatons que ce skill permet de buffer (skilltype=BUFF). Il buffe en party (target=TARGET_PARTY). C'est un buff qui dure 20 min. Jusqu'ici, rien de différent avec le précédent. Mais pour les sorts de buff, on a des balises effet dans la balise for. Les attributs intéressants sont surtout : stackOrder et stackType. Ils permettent d'empêcher un sort de se cumuler avec un autre. En effet, tous les sorts qui auront stackType="rCrit" ne pourront pas se cumuler avec celui-ci. stackType c'est le nom de la pile. stackOrder c'est son ordre dans la pile. On garde toujours celui qui a le plus grand numéro dans l'ordre. C'est pour cela qu'on utilise en général le tableau des effets puisqu'a chaque niveau, le sort devient plus puissant, donc son ordre augmente. Voici quelques exemples (j'ai mis (...) pour enlever ce qui ne nous intéresse pas ) :

b) Quelques balises importantes

Pour les skills, quelques balises sont très importantes.

[stackorder/stacktype]

[add/div/mul/sub]

[itemConsumeId/itemConsumeCount]

[weaponsAllowed]

[npcId/isCubic]

[displayId]

[num_charges/charge_skill_id]

c) les armes

Pour les armes, tout est globalement identique mais en beaucoup plus simple. Il n'existe que des set, pas d'effet. La seule chose importante ce sont les bonus de set, les SA et autres caractéristiques qui dépendent d'une condition.

Exemple

<item id='23' name="Wooden Breastplate">
 <for>
   <add stat='pDef' order='0x10'  val='47'/>
   <add stat='maxHp' order='0x40' val='41'>
     <and>
     <using slotitem="43;6"/>
     <using slotitem="2386;11"/>
     </and>
    </add>
   <mul stat='pDef' order='0x40' val='1.02'>
     <and>
      <using slotitem="43;6"/>
     <using slotitem="2386;11"/>
     </and>
   </mul>
 </for>
</item>

Le wooden breastplate appartient a un set. Par défaut il donne 47 de pdef. Mais s'il est associé a Wooden Helmet (id 43) et Wooden Gaiters (id 2386), il donne 41 hp supplémentaires et 2% de pdef en plus. Pour cela, on ajoute dans la balise add une condition using. L'attribut slotitem dit : si en position 6 (tête) de l'équipement tu as un objet 43 (Wooden Helmet ) et en position 11 (jambes) tu as un objet 2386, alors tu rajoutes le bonus.

Exemple :

<using slotitem="43;6;4"/>

d) valeurs possibles

stats

parametrevaleurdescription
maxHpMAX_HPHP maximum
maxCpMAX_CPCP maximum
maxMpMAX_MPMP maximum
regHpREGENERATE_HP_RATEpourcentage de régénération des HP
regCpREGENERATE_CP_RATEpourcentage de régénération des CP
regMpREGENERATE_MP_RATEpourcentage de régénération des MP
gainMpRECHARGE_MP_RATE
gainHpHEAL_EFFECTIVNESS
pDefPOWER_DEFENCEDéfense physique
mDefMAGIC_DEFENCEDéfense magique
pAtkPOWER_ATTACKAttaque physique
mAtkMAGIC_ATTACKAttaque magique
pAtkSpdPOWER_ATTACK_SPEEDVitesse d'attaque physique
mAtkSpdMAGIC_ATTACK_SPEEDVitesse d'attaque magique
mReuseMAGIC_REUSE_RATERatio pour le temps de réutilisation d'un skill
sDefSHIELD_DEFENCEDéfense au bouclier
cAtkCRITICAL_DAMAGEDommage pendant un coup critique
rCritCRITICAL_RATECapacité a faire un coup critique
rEvasEVASION_RATETaux d'évasion
rShldSHIELD_RATE
shldAngleSHIELD_ANGLE
rExpEXPSP_RATEPourcentage d'expérience et de SP
cancelATTACK_CANCELCapacité à annuler les attaques
accCombatACCURACY_COMBATPrécision
pAtkRangePOWER_ATTACK_RANGEDistance pour les attaques physiques
mAtkRangeMAGIC_ATTACK_RANGEDistance pour les attaques magiques
poleAnglePOLE_ATTACK_ANGLE
runSpdRUN_SPEEDVitesse de déplacement
breathBREATHCapacité à respirer
 
aggressionAGGRESSIONAgressivité
bleedBLEEDSaignement
poisonPOISONPoison
stunSTUNEtourdissement
rootROOTEnracinement
movementMOVEMENTMouvement
confusionCONFUSIONconfusion
sleepSLEEPSommeil
fireFIREFeu
windWINDVend
waterWATEREau
earthEARTHTerre
holyHOLYSacré
darkDARKSombre
unholyUNHOLYNon sacré
 
sacredSACREDSacre
aggressionResAGGRESSION_RESRésistance à agression
bleedResBLEED_RESRésistance à saignement
poisonResPOISON_RESRésistance à poison
stunResSTUN_RESRésistance à étourdissement
paralyzeResPARALYZE_RESRésistance à paralysie
rootResROOT_RESRésistance à enracinement
sleepResSLEEP_RESRésistance à Sommeil
confusionResCONFUSION_RESRésistance à Confusion
muteResMUTE_RESRésistance à mutisme
movementResMOVEMENT_RESRésistance à blocage
fireResFIRE_RESRésitance au feu
windResWIND_RESRésistance au vent
waterResWATER_RESRésistance a l'eau
earthResEARTH_RESRésistance à la terre
holyResHOLY_RESRésistance au sacré
darkResDARK_RESRésistance aux ténèbres
unholyResUNHOLY_RESRésistance au non sacré
sacredResSACRED_RES
noneWpnResNONE_WPN_RESRésistance à sans armes
swordWpnResSWORD_WPN_RESRésistance à l'épée
bluntWpnResBLUNT_WPN_RESRésistance aux masses
daggerWpnResDAGGER_WPN_RESRésistance aux dagues
bowWpnResBOW_WPN_RESRésistance aux arcs
poleWpnResPOLE_WPN_RESRésistance aux lances
etcWpnResETC_WPN_RESRésistance aux armes diverses
fistWpnResFIST_WPN_RESRésistance aux poings
dualWpnResDUAL_WPN_RESRésistance aux épées doubles
dualFistWpnResDUALFIST_WPN_RESRésistance aux poings doubles
 
STRSTAT_STRForce
CONSTAT_CONConstitution
DEXSTAT_DEXDextérité
INTSTAT_INTIntelligence
WITSTAT_WITSavoir
MENSTAT_MENMental
 
reflectDamREFLECT_DAMAGE_PERCENTRenvoie des dommages
absorbDamABSORB_DAMAGE_PERCENTAbsorption des dommages
transDamTRANSFER_DAMAGE_PERCENTTransfert des dommages
mCritRateMCRITICAL_RATETaux de coups critiques pour les sorts
maxLoadMAX_LOADPoids maximum
pAtk-undeadPATK_UNDEADAttaque contre les morts vivants
pDef-undeadPDEF_UNDEADDéfense contre les morts vivants
pAtk-plantsPATK_PLANTSAttaque contre les plantes
pAtk-insectsPATK_INSECTSAttaque contre les insectes
pAtk-animalsPATK_ANIMALSAttaque contre les animaux
pAtk-monstersPATK_MONSTERSAttaque contre les monstres
pAtk-dragonsPATK_DRAGONSAttaque contre les dragons
atkReuseATK_REUSEVitesse de réutilisation d'attaque
inventoryLimitINV_LIMLimite d'inventaire
whLimitWH_LIM
FreightLimit?FREIGHT_LIMLimite de cargaison
PrivateSellLimit?P_SELL_LIMLimite de vente
PrivateBuyLimit?P_BUY_LIMLimite d'achat
DwarfRecipeLimit?REC_D_LIMLimite du livre des recettes de nains
CommonRecipeLimit?REC_C_LIMLimite du livre des recettes communes
MpConsumeRate?MP_CONSUME_RATEConsommation de MP
HpConsumeRate?HP_CONSUME_RATEConsommation de HP

=== cible ===

TARGET_NONE
TARGET_SELF
TARGET_ONE
TARGET_PARTY
TARGET_CLAN
TARGET_PET
TARGET_AREA
TARGET_AURA
TARGET_CORPSE
TARGET_UNDEAD
TARGET_MULTIFACE
TARGET_AURA_CLOSE
TARGET_CORPSE_CLAN
TARGET_CORPSE_PLAYER
TARGET_ITEM
TARGET_AREA_CORPSE_MOB
TARGET_CORPSE_MOB
TARGET_UNLOCKABLE
TARGET_HOLY

=== emplacements ===

public static final int PAPERDOLL_UNDER = 0;
public static final int PAPERDOLL_LEAR = 1;
public static final int PAPERDOLL_REAR = 2;
public static final int PAPERDOLL_NECK = 3;
public static final int PAPERDOLL_LFINGER = 4;
public static final int PAPERDOLL_RFINGER = 5;
public static final int PAPERDOLL_HEAD = 6;
public static final int PAPERDOLL_RHAND = 7;
public static final int PAPERDOLL_LHAND = 8;
public static final int PAPERDOLL_GLOVES = 9;
public static final int PAPERDOLL_CHEST = 10;
public static final int PAPERDOLL_LEGS = 11;
public static final int PAPERDOLL_FEET = 12;
public static final int PAPERDOLL_BACK = 13;
public static final int PAPERDOLL_LRHAND = 14;

=== ordre ===

0x08 - to set
0x10 - to add/substract
0x20 - to multiply/divide
0x30 - for level bonus, etc.
0x40 - for masteries/buffs that ADD/SUBSTRACT
0x50 - for masteries/buffs that MULTIPLY/DIVIDE
0x60 - for sets, that apply after buffs

=== armes autorisées ===

bitdecweapon
11?
22Shield
34Sword
48Blunt
516Dagger
632Bow
764Pole
8128Etc
9256Fist
10512Dual Sword
111024Dual Fist
122048Big Sword (Two Handed)

== cubic ==

CubicID
STORM_CUBIC1
VAMPIRIC_CUBIC2
LIFE_CUBIC3
VIPER_CUBIC4
POLTERGEIST_CUBIC5
BINDING_CUBIC6
AQUA_CUBIC7
SPARK_CUBIC8

== Type de skill ==

TypeDescription
PDAMinflige domme physique
MDAMinflige dommage magique
DOT 
BLEEDprovoque BLEED
POISONempoisonne
HEALsoigne
HOT 
COMBATPOINTHEAL 
CPHOT 
MANAHEAL 
MANARECHARGE 
MPHOT 
AGGDAMAGE 
BUFF 
DEBUFF 
STUN 
ROOT 
RESURRECT 
PASSIVE 
CONT 
CONFUSION 
UNLOCK 
CHARGE 
FEAR 
MHOT 
DRAIN 
NEGATE 
CANCEL 
SLEEP 
AGGREDUCE 
AGGREMOVE 
AGGREDUCE_CHAR 
CHARGEDAM 
CONFUSE_MOB_ONLY 
DEATHLINK 
DETECT_WEAKNESS 
ENCHANT_ARMOR 
ENCHANT_WEAPON 
FEED_PET 
HEAL_PERCENT 
LUCK 
MANADAM 
MDOT 
MUTE 
RECALL 
REFLECT 
SOULSHOT 
SPIRITSHOT 
SPOIL 
SWEEP 
SUMMON 
WEAKNESS 
DEATHLINK_PET 
MANA_BY_LEVEL 
FAKE_DEATH 
UNBLEED 
UNPOISON 
SIEGEFLAG 
TAKECASTLE 
UNDEAD_DEFENSE 
SEED 
PARALYZE 
DRAIN_SOUL 
COMMON_CRAFT 
DWARVEN_CRAFT 
WEAPON_SA 
FISHING 
PUMPING 
REELING 
Récupéré sur http://caro208.free.fr/pmwiki/index.php?n=Lineage.ModifierUnSkill
Page mise à jour le 29 octobre 2006 à 21h36