all about skills and effects guide

Deazer

Разработчик
Staff member
#1
Skill guide:
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

All tags must open and close.
Tags that can fit in one line can be closed inside themselves.

Example:
<add .....> ..... </add>
<add ...../>

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
format of xml-files:

<?xml version='1.0' encoding='utf-8'?>
<list>
<skill id="1312" levels="1" name="Fishing">
<set name="weaponsAllowed" val="8192"/>
<set name="mpConsume" val="1"/>
<set name="reuseDelay" val="1000"/>
<set name="target" val="TARGET_SELF"/>
<set name="skillType" val="FISHING"/>
<set name="operateType" val="OP_ACTIVE"/>
<for>
</for>
</skill>
<skill id="1313" levels="27" name="Pumping">
<table name="#power"> 19 28 38 50 55 60 65 70 86 92 97 103 109 115 136 143 149 156 187 195 202 245 253 262 271 312 321 </table>
<set name="weaponsAllowed" val="8192"/>
<set name="mpConsume" val="2"/>
<set name="power" val="#power"/>
<set name="reuseDelay" val="2000"/>
<set name="target" val="TARGET_SELF"/>
<set name="skillType" val="PUMPING"/>
<set name="operateType" val="OP_ACTIVE"/>
<for>
</for>
</skill>
</list>
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

1. <?xml version='1.0' encoding='utf-8'?>
Start of file header
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

2. <list>
The beginning of the list of skills, at the end of the file you need to close it with a tag </list>

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
3. <skill id="1312" levels="1" name="Fishing">
The beginning of the skill description. After all tags must end </skill>
skill id - unique id for all skills (both for mobs and characters)
levels - the maximum number of levels for this skill
name - his name

Description of skills:
A) <table name="#power"> 19 28 38 50 </table>
Table. When referencing a parameter #power, the value corresponding to the current skill level will be taken.
There can be several tables. Values can be whole or fractional and must be separated by spaces.
The values should be as many as the levels of this skill.

B) <set name="COMMAND" val="VALUE"/>

Mandatory parameters for each skill:
mpConsume - how much mana does it take
reuseDelay - recharge time
target - who could be the target
skillType - skill type
operateType - active, passive, switchable (toggle)

Список параметров:
COMMAND: canLearn - (value = "" - This skill cannot be learned. default - do not prescribe)
castRange - Cast radius
activateRate - VALUE
absorbAbs - VALUE
absorbPart - VALUE
advancedFlag - true/false
advancedMultiplier - VALUE
behind - true/false
cancelable - true/false
cancelTarget - true/false
charge_skill_id - skill_id для charge
corpse - true/false
critical - true/false
crush - true/false
deathlink - true/false
displayId - VALUE
element - VALUE
expPenalty - пенальти на эксп ("0.9")
hitTime - VALUE
hpConsume - VALUE
isCubic - true/false
isDwarven - true/false
isMagic - true/false
itemConsumeCount - VALUE
itemConsumeCountInTime - VALUE
itemConsumeDelay - VALUE
itemConsumeId - item_id item to be used "1458"
itemConsumeIdInTime - item_id, which will be used regularly "1458"
itemConsumePeriods - the period for which the item will be regularly consumed
lethal - true/false
levelModifier - VALUE
magicLevel - VALUE
minPledgeClass - VALUE
mpConsume - VALUE
negateDebuffs - true/false
negateEffects - "SLEEP"
negateEffects - "STUN SLEEP MUTE POISON BLEED BUFF DEBUFF PARALYZE"
negatePower - VALUE
negateStats - "mAtk mAtkSpd"
npcId - VALUE
num_charges - VALUE
onCrit - true/false
operateType - OP_ACTIVE/OP_PASSIVE/OP_TOGGLE
overHit - true/false
power - VALUE
reuseDelay - VALUE
save - VALUE
seed_any - true/false
seed1 - VALUE
seed2 - VALUE
seedCount - VALUE
seedcount1 - VALUE
skillInterrupt - true/false
skillRadius - VALUE
skillTime - VALUE
skillType - AGGRESSION/AIEFFECTS/BALANCE/BLEED/BUFF/CANCEL/CHARGE/CHARGEDAM/COMBATPOINTHEAL/
CONFUSION/CONT/CRAFT/DANCE/DEBUFF/DOT/DRAIN/DRAIN_SOUL/ENCHANT_ARMOR/ENCHANT_WEAPON/FATALBLOW/FEED_PET/FISHING/HEAL
HEAL_PERCENT/HOT/INTERRUPT_DISARM/LETHAL_SHOT/LUCK/MANADAM/MANAHEAL/MDAM/MDAM_ELEMENTAL/MDOT/MUTE
NEGATE_EFFECTS/NEGATE_STATS/NOTDONE/PARALYZE/PASSIVE/PDAM/PDAM/POISON/PUMPING/RECALL/REELING/RESURRECT
ROOT/SEED/SIEGEFLAG/SLEEP/SONG/SOULSHOT/SPIRITSHOT/SPOIL/STUN/SUMMON/SUMMON/SUMMON_ITEM/SWEEP/TAKECASTLE
TELEPORT_NPC/TURNER/UNLOCK
SummonItemId - VALUE
SummonMinCount - VALUE
target - TARGET_ALLY/TARGET_AREA/TARGET_AREA_AIM_CORPSE/TARGET_AURA/TARGET_CORPSE/
TARGET_CORPSE_PLAYER/TARGET_HOLY/TARGET_ITEM/TARGET_MULTIFACE/TARGET_NONE/TARGET_ONE/TARGET_PARTY/
TARGET_PET/TARGET_SELF/TARGET_UNLOCKABLE
unaggroing - true/false
undeadOnly - true/false
weaponsAllowed - VALUE

C) <cond>...</cond>
conditions for activating the skill. Not used in passives. If the skill is already activated, and the condition does not match, it does NOT turn off. conditions are checked for activation only.

Examples of using:
<cond msg="Too much hit points."><player percentHP="25"/></cond> (a message will be displayed)

without message:
<cond><player percentHP="25"/></cond> (25% hp)
or
<cond><player minHP="25"/></cond> (>25 hp)


D) <for>...</for>
a list of effects that are applied with an active skill or passive.
Example:
<!-- add value 2 to parameter MEN. -->
<for>
<add order="0x10" stat="MEN" val="2"/>
</for>

<!-- multiply the maxHP value by the value taken from the Tab-maxHP table and highlight the buff icon -->
<for>
<effect count="1" name="Buff" time="1200" val="0" stackOrder="#stack" stackType="hp_up">
<mul order="0x50" stat="maxHp" val="#Tab-maxHp"/>
</effect>
</for>

effects are added with words:
<add - adding
<mul - multiplying
<set - set
<sub - minus
<div - divide

order means the order of calculation. (order 0x08, 0x10, 0x30, 0x40, 0x50, 0x60)
0x08 used for basic parameter setting
0x10 used for basic parameter modification
0x30 for parameter multipliers
0x40 to add static bonuses to the parameter
0x50 used for multipliers of base bonuses to the parameter
0x60 to add static bonuses AFTER multipliers

List of changeable parameters:

Stats: CON
DEX
INT
MEN
STR
WIT
Params: accCombat
cAtk
cAtkStatic
hpEff
mAtk
mAtkSpd
maxCp
maxHp
maxLoad
maxMp
mDef
mpConsum
mpConsumePhysical
mpEff
mReuse
pAtk
pAtkRange
pAtkSpd
pDef
pReuse
rCrit
rCritPercent
regCp
regHp
regMp
sDef
Other: absorbDam
breath
concentration
element
ExpSpMultiplier
poleAngle
rEvas
rShld
runSpd
shldAngle
transferDam
bighead
Reflection skills:
reflectDam
reflectMagicSkill
reflectPhysicSkill
other: CommonRecipeLimit
DwarvenRecipeLimit
inventoryLimit
storageLimit
tradeLimit
rates: activateRate
blowRate
mCritRate
resists: bleedRcpt
bluntWpnRcpt
bowWpnRcpt
cancelRcpt
daggerWpnRcpt
debuffRcpt
earthRcpt
fearRcpt
fireRcpt
paralyzeRcpt
poisonRcpt
poleWpnRcpt
rootRcpt
sacredRcpt
sleepRcpt
stunRcpt
swordWpnRcpt
unholyRcpt
waterRcpt
windRcpt

E) terms:
<COMMAND VARIABLE="VALUE">
can be wrapped in tags <and> <or> <not>

example:
<sub order="0x10" stat="STR" val="1">
<game night="true"/>
</sub>

<and>
<player riding="strider"/>
<target castledoor="true"/>
</and>

command list (COMMAND):
<player VARIABLE="PARAM">
VARIABLE: race (Undead/MagicCreatures/Beasts/Animals/Plants/Humanoids/Spirits/Angels/Demons/Dragons/Giants/Bugs/Fairies/Humans/Elves/DarkElves/Orcs/Dwarves/Others/NonLivingBeings/SiegeWeapons/DefendingArmy/Mercenaries/UnknownCreature)
level
resting (true/false)
moving (true/false)
running (true/false)
riding (strider/wyvern/none)
hp

<target VARIABLE="PARAM">
VARIABLE: aggro (true/false)
undead (true/false)
pvp (true/false)
mob (true/false)
race (Undead/MagicCreatures/Beasts/Animals/Plants/Humanoids/Spirits/Angels/Demons/Dragons/Giants/Bugs/Fairies/Humans/Elves/DarkElves/Orcs/Dwarves/Others/NonLivingBeings/SiegeWeapons/DefendingArmy/Mercenaries/UnknownCreature)
castledoor (true/false)
direction (behind/front/side)

<using VARIABLE="PARAM">
VARIABLE: kind (Shield/Sword/Blunt/Dagger/Bow/Pole/Etc/Fist/Dual Sword/Dual Fist/Big Sword/Pet/Rod)
armor (None/Light/Heavy/Magic/Pet)
skill (skill_id)
slotitem

<game VARIABLE="PARAM">
VARIABLE: night (true/false)

=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
F) Effects:

<effect count="1" name="Buff" time="1200" val="0" stackOrder="#stack" stackType="hp_up">

count = number of ticks that the effect lasts
time = tick length in seconds for this effect (In the example, we have one tick with a length of 1200sec = 20min)
name = what is this effect. Effects can have start, stop and duration effects.
val = value for "name"
stackOrder = used to replace one effect with another effect that has a higher stackOrder. an effect with a lower stackORder cannot replace an effect with a higherstackOrder
stackType = "Effect type "so that similar buffs are not applied

example: attack speed is added by 25%, but mana is taken away every 2 ticks 35 HP
<for>
<effect count="0x7fffffff" name="HealOverTime" time="2" val="-35">
<mul order="0x50" stat="pAtkSpd" val="1.25"/>
</effect>
</for>
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
 

Deazer

Разработчик
Staff member
#3
Which would be the variable to use in order to decrease cancel success rate?

thanks!
1. Config
# Modifier formula CANCEL_SKILLS prelim_chance = (2 * dml + cancel_chance_adder + buff_duration / 120) * cancel_res_multiplier
# Lowering the minimum and maximum threshold withdrawal. As a rule it is necessary to adapt the server.
DispelMaxChance = 75
DispelMinChance = 10
2.
and at skill cancel
<skill id="1056" levels="12" name="Cancellation">
<table name="#effectPoint">455 493 530 547 564 580 595 609 622 633 644 653</table>
<table name="#mpConsume2">35 38 41 43 44 46 48 49 51 52 53 55</table>
<table name="#mpConsume1">9 10 11 11 11 12 12 13 13 13 14 14</table>
<table name="#magicLevel">48 52 56 58 60 62 64 66 68 70 72 74</table>
<set name="magicType" val="MAGIC"/>
<set name="icon" val="icon.skill1056"/>
<set name="reuseDelay" val="120000"/>
<set name="magicLevel" val="#magicLevel"/>
<set name="castRange" val="600"/>
<set name="hitTime" val="6000"/>
<set name="hitCancelTime" val="500"/>
<set name="mpConsume1" val="#mpConsume1"/>
<set name="mpConsume2" val="#mpConsume2"/>
<set name="effectPoint" val="#effectPoint"/>
<set name="target" val="TARGET_ONE"/>
<set name="skillType" val="DEBUFF"/>
<set name="operateType" val="OP_ACTIVE"/>
<set name="reflectable" val="false"/>
<for>
<effect count="1" name="DispelEffects" time="0" val="0">
<def name="dispelType" val="cancellation"/>
<def name="cancelRate" val="25"/>
<def name="negateCount" val="5"/>
<def name="reApplyDelay" val="0"/> <!-- Can return buff after N seconds Cancellation. garbage mechanic from l2j -->
</effect>
</for>
</skill>

Also you can add activateRate for example 50% success rate
<skill id="1056" levels="12" name="Cancellation">
<table name="#effectPoint">455 493 530 547 564 580 595 609 622 633 644 653</table>
<table name="#mpConsume2">35 38 41 43 44 46 48 49 51 52 53 55</table>
<table name="#mpConsume1">9 10 11 11 11 12 12 13 13 13 14 14</table>
<table name="#magicLevel">48 52 56 58 60 62 64 66 68 70 72 74</table>
<set name="magicType" val="MAGIC"/>
<set name="icon" val="icon.skill1056"/>
<set name="reuseDelay" val="120000"/>
<set name="magicLevel" val="#magicLevel"/>
<set name="castRange" val="600"/>
<set name="activateRate" val="50"/>
...........................
 

BerserkdGG

Пользователь
#4
Hi Anatoliy!, I tried that config but I had no luck.
Players are complaining a LOT about Cancellation type skills.
I tried them myself and they are 100% chance, everytime I use cancel, it lands, no matter what. Same thing happens with Block Wind Walk and other cancellation type skills.
I tried loweing the cancelRate value and DispelMaxChance value.
Do I have to add activateRate also?.

I think that behaviour is super weird, maybe I'm missing a config, would you mind checking it?.

Thanks!
 

Deazer

Разработчик
Staff member
#5
For example:
# Modifier formula CANCEL_SKILLS prelim_chance = (2 * dml + cancel_chance_adder + buff_duration / 120) * cancel_res_multiplier
# Lowering the minimum and maximum threshold withdrawal. As a rule it is necessary to adapt the server.
DispelMaxChance = 10
DispelMinChance = 1
After
<for>
<effect count="1" name="DispelEffects" time="0" val="0">
<def name="dispelType" val="cancellation"/>
<def name="cancelRate" val="10"/>
<def name="negateCount" val="5"/>
<def name="reApplyDelay" val="0"/> <!-- Can return buff after N seconds Cancellation. garbage mechanic from l2j -->
</effect>
</for>
 

Deazer

Разработчик
Staff member
#7
Hi Anatoliy!, I tried that config but I had no luck.
Players are complaining a LOT about Cancellation type skills.
I tried them myself and they are 100% chance, everytime I use cancel, it lands, no matter what. Same thing happens with Block Wind Walk and other cancellation type skills.
I tried loweing the cancelRate value and DispelMaxChance value.
Do I have to add activateRate also?.

I think that behaviour is super weird, maybe I'm missing a config, would you mind checking it?.

Thanks!
Because that is 100% correct. If you wish add chance for skill success you need add activateRate
 

BerserkdGG

Пользователь
#8
Great.
I'm having a few questions about trigger skills.
Item skill chance might:
<trigger id="5154" level="#level" type="RECEIVE_DAMAGE" chance="1">
<player damage="1;0"/>
</trigger>

This means that I have 1% chance of getting might while I'm under attack?
 

Deazer

Разработчик
Staff member
#9
Great.
I'm having a few questions about trigger skills.
Item skill chance might:
<trigger id="5154" level="#level" type="RECEIVE_DAMAGE" chance="1">
<player damage="1;0"/>
</trigger>

This means that I have 1% chance of getting might while I'm under attack?
With a certain chance when receiving damage trigger launch skill 5154
 

BerserkdGG

Пользователь
#10
Oko. About level 80 bubbles, all of those who make damage aren't working for me.
For instance Gehenna, It doesn't do any damage when you cast it.
I'm not sure why, maybe there's something bad set (I didn't change anything).
 

Deazer

Разработчик
Staff member
#11
Oko. About level 80 bubbles, all of those who make damage aren't working for me.
For instance Gehenna, It doesn't do any damage when you cast it.
I'm not sure why, maybe there's something bad set (I didn't change anything).
enemy players need be flagged or at pvp zone or war. That all
 
Last edited:

BerserkdGG

Пользователь
#12
Yes, I realized that after a few test, thanks! I'm used to be able to get PK with Gehenna, but I think thats not offlike.
Same thing with cancel from hero pole, the enemy need to be flagged.
Thanks for answering, I'm getting used to offlike stuff ^^
 

BerserkdGG

Пользователь
#13
Hi! I'd like to understand a little bit more about Formulas so I can edit skills using the right criteria.
Let's take for example, Stunning Shot.
As far as I understand, there's a calculation between activateRate, magicLevel, saveVS stat, and there's also the resists according to type (stunResist in this case).
Could you clarify how it's this calculation done using this example?.
 

Deazer

Разработчик
Staff member
#14
Hi! I'd like to understand a little bit more about Formulas so I can edit skills using the right criteria.
Let's take for example, Stunning Shot.
As far as I understand, there's a calculation between activateRate, magicLevel, saveVS stat, and there's also the resists according to type (stunResist in this case).
Could you clarify how it's this calculation done using this example?.
http://www.l2p.l2wh.org/
 

BerserkdGG

Пользователь
#15
Also, I'm checking Vicious Stance and I have the same damage using it or not.
I'm pretty sure that It's related to LimitCriticalDamage = 2000 that comes by default.
I'd like to know where to check that number so I know how to adapt it
 

Deazer

Разработчик
Staff member
#17
Also, the best way to realize everything on your own is to download PTS server and independently check and modify your stats. Check all the variations, this is not an L2 dev school site. This is a product resource as a server
 
Top