Henna improving system.
Thanks to Index.
This commit is contained in:
parent
46d411eeca
commit
56d3de98d4
479
L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/data/CombinationDye.xml
vendored
Normal file
479
L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/data/CombinationDye.xml
vendored
Normal file
@ -0,0 +1,479 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xsd/CombinationDye.xsd">
|
||||
<henna dyeId="338" itemTwo="96623" commission="300000" chance="25"> <!-- Potential of STR <STR+1> -->
|
||||
<reward dyeId="339" type="ON_SUCCESS" />
|
||||
<reward dyeId="338" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="339" itemTwo="96623" commission="300000" chance="25"> <!-- Potential of STR <STR+2> -->
|
||||
<reward dyeId="340" type="ON_SUCCESS" />
|
||||
<reward dyeId="339" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="340" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+4> (P. Atk. +25) -->
|
||||
<reward dyeId="341" type="ON_SUCCESS" />
|
||||
<reward dyeId="340" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="341" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+4> (P. Atk. +50) -->
|
||||
<reward dyeId="342" type="ON_SUCCESS" />
|
||||
<reward dyeId="341" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="342" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+4> (P. Atk. +75) -->
|
||||
<reward dyeId="343" type="ON_SUCCESS" />
|
||||
<reward dyeId="342" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="343" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+4> (P. Atk. +100) -->
|
||||
<reward dyeId="344" type="ON_SUCCESS" />
|
||||
<reward dyeId="343" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="344" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+4> (P. Atk. +125) -->
|
||||
<reward dyeId="345" type="ON_SUCCESS" />
|
||||
<reward dyeId="344" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="345" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+4> (P. Atk. +150) -->
|
||||
<reward dyeId="346" type="ON_SUCCESS" />
|
||||
<reward dyeId="345" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="346" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+4> (P. Atk. +175) -->
|
||||
<reward dyeId="347" type="ON_SUCCESS" />
|
||||
<reward dyeId="346" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="347" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+4> (P. Atk. +200) -->
|
||||
<reward dyeId="348" type="ON_SUCCESS" />
|
||||
<reward dyeId="347" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="348" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+5> (P. Atk. +225) -->
|
||||
<reward dyeId="349" type="ON_SUCCESS" />
|
||||
<reward dyeId="348" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="349" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+5> (P. Atk. +250) -->
|
||||
<reward dyeId="350" type="ON_SUCCESS" />
|
||||
<reward dyeId="349" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="350" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+5> (P. Atk. +275) -->
|
||||
<reward dyeId="351" type="ON_SUCCESS" />
|
||||
<reward dyeId="350" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="351" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+5> (P. Atk. +300) -->
|
||||
<reward dyeId="352" type="ON_SUCCESS" />
|
||||
<reward dyeId="351" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="352" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+5> (P. Atk. +325) -->
|
||||
<reward dyeId="353" type="ON_SUCCESS" />
|
||||
<reward dyeId="352" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="353" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+5> (P. Atk. +350 P. Skill Critical Rate +0.5%) -->
|
||||
<reward dyeId="354" type="ON_SUCCESS" />
|
||||
<reward dyeId="353" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="354" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+5> (P. Atk. +375 P. Skill Critical Rate +1%) -->
|
||||
<reward dyeId="355" type="ON_SUCCESS" />
|
||||
<reward dyeId="354" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="355" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+5> (P. Atk. +400 P. Skill Critical Rate +1.5%) -->
|
||||
<reward dyeId="356" type="ON_SUCCESS" />
|
||||
<reward dyeId="355" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="356" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+5> (P. Atk. +425 P. Skill Critical Rate +2%) -->
|
||||
<reward dyeId="357" type="ON_SUCCESS" />
|
||||
<reward dyeId="356" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="358" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+1> -->
|
||||
<reward dyeId="359" type="ON_SUCCESS" />
|
||||
<reward dyeId="358" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="359" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+2> -->
|
||||
<reward dyeId="360" type="ON_SUCCESS" />
|
||||
<reward dyeId="359" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="360" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+3> -->
|
||||
<reward dyeId="361" type="ON_SUCCESS" />
|
||||
<reward dyeId="360" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="361" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+4> (P. Def. +32) -->
|
||||
<reward dyeId="362" type="ON_SUCCESS" />
|
||||
<reward dyeId="361" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="362" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+4> (P. Def. +65) -->
|
||||
<reward dyeId="363" type="ON_SUCCESS" />
|
||||
<reward dyeId="362" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="363" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+4> (P. Def. +97) -->
|
||||
<reward dyeId="364" type="ON_SUCCESS" />
|
||||
<reward dyeId="363" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="364" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+4> (P. Def. +130) -->
|
||||
<reward dyeId="365" type="ON_SUCCESS" />
|
||||
<reward dyeId="364" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="365" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+4> (P. Def. +162) -->
|
||||
<reward dyeId="366" type="ON_SUCCESS" />
|
||||
<reward dyeId="365" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="366" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+4> (P. Def. +195) -->
|
||||
<reward dyeId="367" type="ON_SUCCESS" />
|
||||
<reward dyeId="366" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="367" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+4> (P. Def. +227) -->
|
||||
<reward dyeId="368" type="ON_SUCCESS" />
|
||||
<reward dyeId="367" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="368" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+4> (P. Def. +260) -->
|
||||
<reward dyeId="369" type="ON_SUCCESS" />
|
||||
<reward dyeId="368" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="369" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+5> (P. Def. +292) -->
|
||||
<reward dyeId="370" type="ON_SUCCESS" />
|
||||
<reward dyeId="369" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="370" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+5> (P. Def. +325) -->
|
||||
<reward dyeId="371" type="ON_SUCCESS" />
|
||||
<reward dyeId="370" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="371" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+5> (P. Def. +357) -->
|
||||
<reward dyeId="372" type="ON_SUCCESS" />
|
||||
<reward dyeId="371" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="372" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+5> (P. Def. +390) -->
|
||||
<reward dyeId="373" type="ON_SUCCESS" />
|
||||
<reward dyeId="372" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="373" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+5> (P. Def. +422) -->
|
||||
<reward dyeId="374" type="ON_SUCCESS" />
|
||||
<reward dyeId="373" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="374" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+5> (P. Def. +455 P. Skill Damage Received -1%) -->
|
||||
<reward dyeId="375" type="ON_SUCCESS" />
|
||||
<reward dyeId="374" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="375" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+5> (P. Def. +487 P. Skill Damage Received -1.5%) -->
|
||||
<reward dyeId="376" type="ON_SUCCESS" />
|
||||
<reward dyeId="375" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="376" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+5> (P. Def. +520 P. Skill Damage Received -2%) -->
|
||||
<reward dyeId="377" type="ON_SUCCESS" />
|
||||
<reward dyeId="376" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="377" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+5> (P. Def. +552 P. Skill Damage Received -3%) -->
|
||||
<reward dyeId="378" type="ON_SUCCESS" />
|
||||
<reward dyeId="377" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="379" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+1> -->
|
||||
<reward dyeId="380" type="ON_SUCCESS" />
|
||||
<reward dyeId="379" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="380" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+2> -->
|
||||
<reward dyeId="381" type="ON_SUCCESS" />
|
||||
<reward dyeId="380" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="381" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+3> -->
|
||||
<reward dyeId="382" type="ON_SUCCESS" />
|
||||
<reward dyeId="381" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="382" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+4> (P. Skill Critical Rate Received -0.4%) -->
|
||||
<reward dyeId="383" type="ON_SUCCESS" />
|
||||
<reward dyeId="382" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="383" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+4> (P. Skill Critical Rate Received -0.8%) -->
|
||||
<reward dyeId="384" type="ON_SUCCESS" />
|
||||
<reward dyeId="383" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="384" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+4> (P. Skill Critical Rate Received -1.2%) -->
|
||||
<reward dyeId="385" type="ON_SUCCESS" />
|
||||
<reward dyeId="384" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="385" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+4> (P. Skill Critical Rate Received -1.6%) -->
|
||||
<reward dyeId="386" type="ON_SUCCESS" />
|
||||
<reward dyeId="385" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="386" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+4> (P. Skill Critical Rate Received -2.0%) -->
|
||||
<reward dyeId="387" type="ON_SUCCESS" />
|
||||
<reward dyeId="386" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="387" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+4> (P. Skill Critical Rate Received -2.4%) -->
|
||||
<reward dyeId="388" type="ON_SUCCESS" />
|
||||
<reward dyeId="387" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="388" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+4> (P. Skill Critical Rate Received -2.8%) -->
|
||||
<reward dyeId="389" type="ON_SUCCESS" />
|
||||
<reward dyeId="388" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="389" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+4> (P. Skill Critical Rate Received -3.2%) -->
|
||||
<reward dyeId="390" type="ON_SUCCESS" />
|
||||
<reward dyeId="389" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="390" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+5> (P. Skill Critical Rate Received -3.6%) -->
|
||||
<reward dyeId="391" type="ON_SUCCESS" />
|
||||
<reward dyeId="390" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="391" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+5> (P. Skill Critical Rate Received -4.0%) -->
|
||||
<reward dyeId="392" type="ON_SUCCESS" />
|
||||
<reward dyeId="391" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="392" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+5> (P. Skill Critical Rate Received -4.4%) -->
|
||||
<reward dyeId="393" type="ON_SUCCESS" />
|
||||
<reward dyeId="392" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="393" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+5> (P. Skill Critical Rate Received -4.8%) -->
|
||||
<reward dyeId="394" type="ON_SUCCESS" />
|
||||
<reward dyeId="393" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="394" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+5> (P. Skill Critical Rate Received -5.2%) -->
|
||||
<reward dyeId="395" type="ON_SUCCESS" />
|
||||
<reward dyeId="394" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="395" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+5> (P. Skill Critical Rate Received -5.6% Soulshot Damage +1%) -->
|
||||
<reward dyeId="396" type="ON_SUCCESS" />
|
||||
<reward dyeId="395" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="396" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+5> (P. Skill Critical Rate Received -6.0% Soulshot Damage +1.5%) -->
|
||||
<reward dyeId="397" type="ON_SUCCESS" />
|
||||
<reward dyeId="396" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="397" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+5> (P. Skill Critical Rate Received -6.4% Soulshot Damage +2%) -->
|
||||
<reward dyeId="398" type="ON_SUCCESS" />
|
||||
<reward dyeId="397" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="398" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+5> (P. Skill Critical Rate Received -6.8% Soulshot Damage +3%) -->
|
||||
<reward dyeId="399" type="ON_SUCCESS" />
|
||||
<reward dyeId="398" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="400" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+1> -->
|
||||
<reward dyeId="401" type="ON_SUCCESS" />
|
||||
<reward dyeId="400" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="401" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+2> -->
|
||||
<reward dyeId="402" type="ON_SUCCESS" />
|
||||
<reward dyeId="401" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="402" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+3> -->
|
||||
<reward dyeId="403" type="ON_SUCCESS" />
|
||||
<reward dyeId="402" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="403" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+4> (M. Atk. +25) -->
|
||||
<reward dyeId="404" type="ON_SUCCESS" />
|
||||
<reward dyeId="403" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="404" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+4> (M. Atk. +50) -->
|
||||
<reward dyeId="405" type="ON_SUCCESS" />
|
||||
<reward dyeId="404" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="405" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+4> (M. Atk. +75) -->
|
||||
<reward dyeId="406" type="ON_SUCCESS" />
|
||||
<reward dyeId="405" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="406" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+4> (M. Atk. +100) -->
|
||||
<reward dyeId="407" type="ON_SUCCESS" />
|
||||
<reward dyeId="406" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="407" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+4> (M. Atk. +125) -->
|
||||
<reward dyeId="408" type="ON_SUCCESS" />
|
||||
<reward dyeId="407" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="408" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+4> (M. Atk. +150) -->
|
||||
<reward dyeId="409" type="ON_SUCCESS" />
|
||||
<reward dyeId="408" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="409" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+4> (M. Atk. +175) -->
|
||||
<reward dyeId="410" type="ON_SUCCESS" />
|
||||
<reward dyeId="409" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="410" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+4> (M. Atk. +200) -->
|
||||
<reward dyeId="411" type="ON_SUCCESS" />
|
||||
<reward dyeId="410" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="411" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+5> (M. Atk. +225) -->
|
||||
<reward dyeId="412" type="ON_SUCCESS" />
|
||||
<reward dyeId="411" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="412" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+5> (M. Atk. +250) -->
|
||||
<reward dyeId="413" type="ON_SUCCESS" />
|
||||
<reward dyeId="412" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="413" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+5> (M. Atk. +275) -->
|
||||
<reward dyeId="414" type="ON_SUCCESS" />
|
||||
<reward dyeId="413" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="414" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+5> (M. Atk. +300) -->
|
||||
<reward dyeId="415" type="ON_SUCCESS" />
|
||||
<reward dyeId="414" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="415" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+5> (M. Atk. +325) -->
|
||||
<reward dyeId="416" type="ON_SUCCESS" />
|
||||
<reward dyeId="415" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="416" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+5> (M. Atk. +350 M. Skill Critical Rate +0.5%) -->
|
||||
<reward dyeId="417" type="ON_SUCCESS" />
|
||||
<reward dyeId="416" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="417" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+5> (M. Atk. +375 M. Skill Critical Rate +1%) -->
|
||||
<reward dyeId="418" type="ON_SUCCESS" />
|
||||
<reward dyeId="417" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="418" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+5> (M. Atk. +400 M. Skill Critical Rate +1.5%) -->
|
||||
<reward dyeId="419" type="ON_SUCCESS" />
|
||||
<reward dyeId="418" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="419" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+5> (M. Atk. +425 M. Skill Critical Rate +2%) -->
|
||||
<reward dyeId="420" type="ON_SUCCESS" />
|
||||
<reward dyeId="419" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="421" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+1> -->
|
||||
<reward dyeId="422" type="ON_SUCCESS" />
|
||||
<reward dyeId="421" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="422" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+2> -->
|
||||
<reward dyeId="423" type="ON_SUCCESS" />
|
||||
<reward dyeId="422" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="423" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+3> -->
|
||||
<reward dyeId="424" type="ON_SUCCESS" />
|
||||
<reward dyeId="423" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="424" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+4> (M. Def. +37) -->
|
||||
<reward dyeId="425" type="ON_SUCCESS" />
|
||||
<reward dyeId="424" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="425" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+4> (M. Def. +75) -->
|
||||
<reward dyeId="426" type="ON_SUCCESS" />
|
||||
<reward dyeId="425" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="426" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+4> (M. Def. +112) -->
|
||||
<reward dyeId="427" type="ON_SUCCESS" />
|
||||
<reward dyeId="426" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="427" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+4> (M. Def. +150) -->
|
||||
<reward dyeId="428" type="ON_SUCCESS" />
|
||||
<reward dyeId="427" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="428" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+4> (M. Def. +187) -->
|
||||
<reward dyeId="429" type="ON_SUCCESS" />
|
||||
<reward dyeId="428" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="429" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+4> (M. Def. +225) -->
|
||||
<reward dyeId="430" type="ON_SUCCESS" />
|
||||
<reward dyeId="429" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="430" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+4> (M. Def. +262) -->
|
||||
<reward dyeId="431" type="ON_SUCCESS" />
|
||||
<reward dyeId="430" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="431" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+4> (M. Def. +300) -->
|
||||
<reward dyeId="432" type="ON_SUCCESS" />
|
||||
<reward dyeId="431" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="432" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+5> (M. Def. +337) -->
|
||||
<reward dyeId="433" type="ON_SUCCESS" />
|
||||
<reward dyeId="432" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="433" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+5> (M. Def. +375) -->
|
||||
<reward dyeId="434" type="ON_SUCCESS" />
|
||||
<reward dyeId="433" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="434" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+5> (M. Def. +412) -->
|
||||
<reward dyeId="435" type="ON_SUCCESS" />
|
||||
<reward dyeId="434" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="435" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+5> (M. Def. +450) -->
|
||||
<reward dyeId="436" type="ON_SUCCESS" />
|
||||
<reward dyeId="435" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="436" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+5> (M. Def. +487) -->
|
||||
<reward dyeId="437" type="ON_SUCCESS" />
|
||||
<reward dyeId="436" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="437" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+5> (M. Def. +525 M. Skill Damage Received -1%) -->
|
||||
<reward dyeId="438" type="ON_SUCCESS" />
|
||||
<reward dyeId="437" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="438" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+5> (M. Def. +562 M. Skill Damage Received -1.5%) -->
|
||||
<reward dyeId="439" type="ON_SUCCESS" />
|
||||
<reward dyeId="438" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="439" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+5> (M. Def. +600 M. Skill Damage Received -2%) -->
|
||||
<reward dyeId="440" type="ON_SUCCESS" />
|
||||
<reward dyeId="439" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="440" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+5> (M. Def. +637 M. Skill Damage Received -3%) -->
|
||||
<reward dyeId="441" type="ON_SUCCESS" />
|
||||
<reward dyeId="440" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="442" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+1> -->
|
||||
<reward dyeId="443" type="ON_SUCCESS" />
|
||||
<reward dyeId="442" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="443" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+2> -->
|
||||
<reward dyeId="444" type="ON_SUCCESS" />
|
||||
<reward dyeId="443" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="444" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+3> -->
|
||||
<reward dyeId="445" type="ON_SUCCESS" />
|
||||
<reward dyeId="444" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="445" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+4> (M. Critical Rate Received -0.4%) -->
|
||||
<reward dyeId="446" type="ON_SUCCESS" />
|
||||
<reward dyeId="445" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="446" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+4> (M. Critical Rate Received -0.8%) -->
|
||||
<reward dyeId="447" type="ON_SUCCESS" />
|
||||
<reward dyeId="446" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="447" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+4> (M. Critical Rate Received -1.2%) -->
|
||||
<reward dyeId="448" type="ON_SUCCESS" />
|
||||
<reward dyeId="447" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="448" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+4> (M. Critical Rate Received -1.6%) -->
|
||||
<reward dyeId="449" type="ON_SUCCESS" />
|
||||
<reward dyeId="448" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="449" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+4> (M. Critical Rate Received -2.0%) -->
|
||||
<reward dyeId="450" type="ON_SUCCESS" />
|
||||
<reward dyeId="449" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="450" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+4> (M. Critical Rate Received -2.4%) -->
|
||||
<reward dyeId="451" type="ON_SUCCESS" />
|
||||
<reward dyeId="450" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="451" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+4> (M. Critical Rate Received -2.8%) -->
|
||||
<reward dyeId="452" type="ON_SUCCESS" />
|
||||
<reward dyeId="451" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="452" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+4> (M. Critical Rate Received -3.2%) -->
|
||||
<reward dyeId="453" type="ON_SUCCESS" />
|
||||
<reward dyeId="452" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="453" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+5> (M. Critical Rate Received -3.6%) -->
|
||||
<reward dyeId="454" type="ON_SUCCESS" />
|
||||
<reward dyeId="453" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="454" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+5> (M. Critical Rate Received -4.0%) -->
|
||||
<reward dyeId="455" type="ON_SUCCESS" />
|
||||
<reward dyeId="454" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="455" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+5> (M. Critical Rate Received -4.4%) -->
|
||||
<reward dyeId="456" type="ON_SUCCESS" />
|
||||
<reward dyeId="455" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="456" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+5> (M. Critical Rate Received -4.8%) -->
|
||||
<reward dyeId="457" type="ON_SUCCESS" />
|
||||
<reward dyeId="456" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="457" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+5> (M. Critical Rate Received -5.2%) -->
|
||||
<reward dyeId="458" type="ON_SUCCESS" />
|
||||
<reward dyeId="457" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="458" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+5> (M. Critical Rate Received -5.6% Spiritshot Damage +1%) -->
|
||||
<reward dyeId="459" type="ON_SUCCESS" />
|
||||
<reward dyeId="458" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="459" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+5> (M. Critical Rate Received -6.0% Spiritshot Damage +1.5%) -->
|
||||
<reward dyeId="460" type="ON_SUCCESS" />
|
||||
<reward dyeId="459" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="460" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+5> (M. Critical Rate Received -6.4% Spiritshot Damage +2%) -->
|
||||
<reward dyeId="461" type="ON_SUCCESS" />
|
||||
<reward dyeId="460" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="461" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+5> (M. Critical Rate Received -6.8% Spiritshot Damage +3%) -->
|
||||
<reward dyeId="462" type="ON_SUCCESS" />
|
||||
<reward dyeId="461" type="ON_FAILURE" />
|
||||
</henna>
|
||||
</list>
|
33
L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/data/xsd/CombinationDye.xsd
vendored
Normal file
33
L2J_Mobius_Essence_6.1_BattleChronicle/dist/game/data/xsd/CombinationDye.xsd
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:element name="list">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="henna" maxOccurs="unbounded" minOccurs="0">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="reward" maxOccurs="unbounded" minOccurs="0">
|
||||
<xs:complexType>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:string">
|
||||
<xs:attribute type="xs:int" name="dyeId" use="required"/>
|
||||
<xs:attribute type="xs:int" name="id" use="optional" />
|
||||
<xs:attribute type="xs:short" name="count" use="optional" />
|
||||
<xs:attribute type="xs:string" name="type" use="required" />
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
<xs:attribute type="xs:short" name="dyeId" use="required" />
|
||||
<xs:attribute type="xs:int" name="itemOne" use="optional" />
|
||||
<xs:attribute type="xs:long" name="countOne" use="optional" />
|
||||
<xs:attribute type="xs:int" name="itemTwo" use="required" />
|
||||
<xs:attribute type="xs:long" name="countTwo" use="optional" />
|
||||
<xs:attribute type="xs:long" name="commission" use="optional" />
|
||||
<xs:attribute type="xs:float" name="chance" use="optional" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
@ -57,6 +57,7 @@ import org.l2jmobius.gameserver.data.xml.ClanHallData;
|
||||
import org.l2jmobius.gameserver.data.xml.ClanRewardData;
|
||||
import org.l2jmobius.gameserver.data.xml.ClassListData;
|
||||
import org.l2jmobius.gameserver.data.xml.CollectionData;
|
||||
import org.l2jmobius.gameserver.data.xml.CombinationDyeData;
|
||||
import org.l2jmobius.gameserver.data.xml.CombinationItemsData;
|
||||
import org.l2jmobius.gameserver.data.xml.CubicData;
|
||||
import org.l2jmobius.gameserver.data.xml.DailyMissionData;
|
||||
@ -260,7 +261,6 @@ public class GameServer
|
||||
ActionData.getInstance();
|
||||
CategoryData.getInstance();
|
||||
SecondaryAuthData.getInstance();
|
||||
CombinationItemsData.getInstance();
|
||||
SayuneData.getInstance();
|
||||
ClanRewardData.getInstance();
|
||||
DailyMissionHandler.getInstance().executeScript();
|
||||
@ -293,6 +293,8 @@ public class GameServer
|
||||
EnchantItemHPBonusData.getInstance();
|
||||
BuyListData.getInstance();
|
||||
MultisellData.getInstance();
|
||||
CombinationItemsData.getInstance();
|
||||
CombinationDyeData.getInstance();
|
||||
EquipmentUpgradeData.getInstance();
|
||||
AgathionData.getInstance();
|
||||
RaidTeleportListData.getInstance();
|
||||
|
@ -0,0 +1,110 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package org.l2jmobius.gameserver.data.xml;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.w3c.dom.Document;
|
||||
|
||||
import org.l2jmobius.commons.util.IXmlReader;
|
||||
import org.l2jmobius.gameserver.data.ItemTable;
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.item.combination.CombinationItemType;
|
||||
import org.l2jmobius.gameserver.model.item.henna.CombinationHennaReward;
|
||||
import org.l2jmobius.gameserver.model.item.henna.CombinationHenna;
|
||||
|
||||
/**
|
||||
* @author Index
|
||||
*/
|
||||
public class CombinationDyeData implements IXmlReader
|
||||
{
|
||||
private static final Logger LOGGER = Logger.getLogger(CombinationDyeData.class.getName());
|
||||
|
||||
private final List<CombinationHenna> _henna = new ArrayList<>();
|
||||
|
||||
protected CombinationDyeData()
|
||||
{
|
||||
load();
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized void load()
|
||||
{
|
||||
_henna.clear();
|
||||
parseDatapackFile("data/CombinationDye.xml");
|
||||
LOGGER.info(getClass().getSimpleName() + ": Loaded " + _henna.size() + " henna combinations.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void parseDocument(Document doc, File f)
|
||||
{
|
||||
forEach(doc, "list", listNode ->
|
||||
{
|
||||
forEach(listNode, "henna", hennaNode ->
|
||||
{
|
||||
final CombinationHenna henna = new CombinationHenna(new StatSet(parseAttributes(hennaNode)));
|
||||
forEach(hennaNode, "reward", rewardNode ->
|
||||
{
|
||||
final int hennaId = parseInteger(rewardNode.getAttributes(), "dyeId");
|
||||
final int id = parseInteger(rewardNode.getAttributes(), "id", -1);
|
||||
final int count = parseInteger(rewardNode.getAttributes(), "count", 0);
|
||||
final CombinationItemType type = parseEnum(rewardNode.getAttributes(), CombinationItemType.class, "type");
|
||||
henna.addReward(new CombinationHennaReward(hennaId, id, count, type));
|
||||
if ((id != -1) && (ItemTable.getInstance().getTemplate(id) == null))
|
||||
{
|
||||
LOGGER.info(getClass().getSimpleName() + ": Could not find item with id " + id);
|
||||
}
|
||||
if ((hennaId != 0) && (HennaData.getInstance().getHenna(hennaId) == null))
|
||||
{
|
||||
LOGGER.info(getClass().getSimpleName() + ": Could not find henna with id " + id);
|
||||
}
|
||||
});
|
||||
_henna.add(henna);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
public List<CombinationHenna> getHenna()
|
||||
{
|
||||
return _henna;
|
||||
}
|
||||
|
||||
public CombinationHenna getByHenna(int hennaId)
|
||||
{
|
||||
for (CombinationHenna henna : _henna)
|
||||
{
|
||||
if (henna.getHenna() == hennaId)
|
||||
{
|
||||
return henna;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static final CombinationDyeData getInstance()
|
||||
{
|
||||
return SingletonHolder.INSTANCE;
|
||||
}
|
||||
|
||||
private static class SingletonHolder
|
||||
{
|
||||
protected static final CombinationDyeData INSTANCE = new CombinationDyeData();
|
||||
}
|
||||
}
|
@ -8041,6 +8041,17 @@ public class Player extends Playable
|
||||
* @return
|
||||
*/
|
||||
public boolean removeHenna(int slot)
|
||||
{
|
||||
return removeHenna(slot, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove a Henna of the Player, save update in the character_hennas table of the database and send Server->Client HennaInfo/UserInfo packet to this Player.
|
||||
* @param slot
|
||||
* @param restoreDye
|
||||
* @return
|
||||
*/
|
||||
public boolean removeHenna(int slot, boolean restoreDye)
|
||||
{
|
||||
if ((slot < 1) || (slot > _hennaPoten.length))
|
||||
{
|
||||
@ -8082,7 +8093,7 @@ public class Player extends Playable
|
||||
{
|
||||
reduceAdena("Henna", henna.getCancelFee(), this, false);
|
||||
}
|
||||
if (henna.getCancelCount() > 0)
|
||||
if ((henna.getCancelCount() > 0) && restoreDye)
|
||||
{
|
||||
_inventory.addItem("Henna", henna.getDyeItemId(), henna.getCancelCount(), this, null);
|
||||
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_OBTAINED_S1_X_S2);
|
||||
|
@ -0,0 +1,94 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package org.l2jmobius.gameserver.model.item.henna;
|
||||
|
||||
import java.util.EnumMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.item.combination.CombinationItemType;
|
||||
|
||||
/**
|
||||
* @author Index
|
||||
*/
|
||||
public class CombinationHenna
|
||||
{
|
||||
private final int _henna;
|
||||
private final int _itemOne;
|
||||
private final long _countOne;
|
||||
private final int _itemTwo;
|
||||
private final long _countTwo;
|
||||
private final long _commission;
|
||||
private final float _chance;
|
||||
private final Map<CombinationItemType, CombinationHennaReward> _rewards = new EnumMap<>(CombinationItemType.class);
|
||||
|
||||
public CombinationHenna(StatSet set)
|
||||
{
|
||||
_henna = set.getInt("dyeId");
|
||||
_itemOne = set.getInt("itemOne", -1);
|
||||
_countOne = set.getLong("countOne", 1);
|
||||
_itemTwo = set.getInt("itemTwo", -1);
|
||||
_countTwo = set.getLong("countTwo", 1);
|
||||
_commission = set.getLong("commission", 0);
|
||||
_chance = set.getFloat("chance", 33);
|
||||
}
|
||||
|
||||
public int getHenna()
|
||||
{
|
||||
return _henna;
|
||||
}
|
||||
|
||||
public int getItemOne()
|
||||
{
|
||||
return _itemOne;
|
||||
}
|
||||
|
||||
public long getCountOne()
|
||||
{
|
||||
return _countOne;
|
||||
}
|
||||
|
||||
public int getItemTwo()
|
||||
{
|
||||
return _itemTwo;
|
||||
}
|
||||
|
||||
public long getCountTwo()
|
||||
{
|
||||
return _countTwo;
|
||||
}
|
||||
|
||||
public long getCommission()
|
||||
{
|
||||
return _commission;
|
||||
}
|
||||
|
||||
public float getChance()
|
||||
{
|
||||
return _chance;
|
||||
}
|
||||
|
||||
public void addReward(CombinationHennaReward item)
|
||||
{
|
||||
_rewards.put(item.getType(), item);
|
||||
}
|
||||
|
||||
public CombinationHennaReward getReward(CombinationItemType type)
|
||||
{
|
||||
return _rewards.get(type);
|
||||
}
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package org.l2jmobius.gameserver.model.item.henna;
|
||||
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.item.combination.CombinationItemType;
|
||||
|
||||
/**
|
||||
* @author Index
|
||||
*/
|
||||
public class CombinationHennaReward extends ItemHolder
|
||||
{
|
||||
private final int _hennaId;
|
||||
private final CombinationItemType _type;
|
||||
|
||||
public CombinationHennaReward(int id, int count, CombinationItemType type)
|
||||
{
|
||||
super(id, count);
|
||||
_hennaId = 0;
|
||||
_type = type;
|
||||
}
|
||||
|
||||
public CombinationHennaReward(int hennaId, int id, int count, CombinationItemType type)
|
||||
{
|
||||
super(id, count);
|
||||
_hennaId = hennaId;
|
||||
_type = type;
|
||||
}
|
||||
|
||||
public int getHennaId()
|
||||
{
|
||||
return _hennaId;
|
||||
}
|
||||
|
||||
public CombinationItemType getType()
|
||||
{
|
||||
return _type;
|
||||
}
|
||||
}
|
@ -17,9 +17,20 @@
|
||||
package org.l2jmobius.gameserver.network.clientpackets.newhenna;
|
||||
|
||||
import org.l2jmobius.commons.network.PacketReader;
|
||||
import org.l2jmobius.commons.util.Rnd;
|
||||
import org.l2jmobius.gameserver.data.xml.CombinationDyeData;
|
||||
import org.l2jmobius.gameserver.data.xml.HennaData;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.item.combination.CombinationItemType;
|
||||
import org.l2jmobius.gameserver.model.item.henna.CombinationHenna;
|
||||
import org.l2jmobius.gameserver.model.item.henna.CombinationHennaReward;
|
||||
import org.l2jmobius.gameserver.model.item.henna.Henna;
|
||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.PacketLogger;
|
||||
import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.newhenna.NewHennaPotenCompose;
|
||||
|
||||
/**
|
||||
@ -27,7 +38,6 @@ import org.l2jmobius.gameserver.network.serverpackets.newhenna.NewHennaPotenComp
|
||||
*/
|
||||
public class RequestNewHennaCompose implements IClientIncomingPacket
|
||||
{
|
||||
@SuppressWarnings("unused")
|
||||
private int _slotOneIndex;
|
||||
private int _slotOneItemId;
|
||||
private int _slotTwoItemId;
|
||||
@ -35,9 +45,9 @@ public class RequestNewHennaCompose implements IClientIncomingPacket
|
||||
@Override
|
||||
public boolean read(GameClient client, PacketReader packet)
|
||||
{
|
||||
_slotOneIndex = packet.readC();
|
||||
_slotOneItemId = packet.readC();
|
||||
_slotTwoItemId = packet.readC();
|
||||
_slotOneIndex = packet.readD();
|
||||
_slotOneItemId = packet.readD();
|
||||
_slotTwoItemId = packet.readD();
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -49,6 +59,76 @@ public class RequestNewHennaCompose implements IClientIncomingPacket
|
||||
{
|
||||
return;
|
||||
}
|
||||
player.sendPacket(new NewHennaPotenCompose(_slotTwoItemId, _slotOneItemId, true));
|
||||
|
||||
final Inventory inventory = player.getInventory();
|
||||
if ((player.getHenna(_slotOneIndex) == null) || ((_slotOneItemId != -1) && (inventory.getItemByObjectId(_slotOneItemId) == null)) || ((_slotTwoItemId != -1) && (inventory.getItemByObjectId(_slotTwoItemId) == null)))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Henna henna = player.getHenna(_slotOneIndex);
|
||||
final CombinationHenna combinationHennas = CombinationDyeData.getInstance().getByHenna(henna.getDyeId());
|
||||
if (combinationHennas == null)
|
||||
{
|
||||
player.sendPacket(new NewHennaPotenCompose(henna.getDyeId(), -1, false));
|
||||
return;
|
||||
}
|
||||
|
||||
if (((_slotOneItemId != -1) && (combinationHennas.getItemOne() != inventory.getItemByObjectId(_slotOneItemId).getId())) || ((_slotTwoItemId != -1) && (combinationHennas.getItemTwo() != inventory.getItemByObjectId(_slotTwoItemId).getId())))
|
||||
{
|
||||
PacketLogger.info(getClass().getSimpleName() + ": player " + player.getName() + " - " + player.getObjectId() + " have modified client or combination data is outdated!");
|
||||
}
|
||||
|
||||
final long commission = combinationHennas.getCommission();
|
||||
if (commission > player.getAdena())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemHolder one = new ItemHolder(combinationHennas.getItemOne(), combinationHennas.getCountOne());
|
||||
final ItemHolder two = new ItemHolder(combinationHennas.getItemTwo(), combinationHennas.getCountTwo());
|
||||
if (((_slotOneItemId != -1) && (inventory.getItemByItemId(one.getId()) == null) && (inventory.getItemByItemId(one.getId()).getCount() < one.getCount())) || ((_slotTwoItemId != -1) && (inventory.getItemByItemId(two.getId()) == null) && (inventory.getItemByItemId(two.getId()).getCount() < two.getCount())))
|
||||
{
|
||||
player.sendPacket(new NewHennaPotenCompose(henna.getDyeId(), -1, false));
|
||||
return;
|
||||
}
|
||||
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
if (_slotOneItemId != -1)
|
||||
{
|
||||
iu.addModifiedItem(inventory.getItemByItemId(one.getId()));
|
||||
}
|
||||
if (_slotTwoItemId != -1)
|
||||
{
|
||||
iu.addModifiedItem(inventory.getItemByItemId(two.getId()));
|
||||
}
|
||||
iu.addModifiedItem(inventory.getItemByItemId(Inventory.ADENA_ID));
|
||||
|
||||
if (((_slotOneItemId != -1) && (inventory.destroyItemByItemId("Henna Improving", one.getId(), one.getCount(), player, null) == null)) || ((_slotTwoItemId != -1) && (inventory.destroyItemByItemId("Henna Improving", two.getId(), two.getCount(), player, null) == null)) || (inventory.destroyItemByItemId("Henna Improving", Inventory.ADENA_ID, commission, player, null) == null))
|
||||
{
|
||||
player.sendPacket(new NewHennaPotenCompose(henna.getDyeId(), -1, false));
|
||||
return;
|
||||
}
|
||||
|
||||
if (Rnd.get(0, 100) <= combinationHennas.getChance())
|
||||
{
|
||||
final CombinationHennaReward reward = combinationHennas.getReward(CombinationItemType.ON_SUCCESS);
|
||||
player.removeHenna(_slotOneIndex, false);
|
||||
player.addHenna(_slotOneIndex, HennaData.getInstance().getHenna(reward.getHennaId()));
|
||||
player.addItem("Henna Improving", reward.getId(), reward.getCount(), null, false);
|
||||
player.sendPacket(new NewHennaPotenCompose(reward.getHennaId(), reward.getId() == 0 ? -1 : reward.getId(), true));
|
||||
}
|
||||
else
|
||||
{
|
||||
final CombinationHennaReward reward = combinationHennas.getReward(CombinationItemType.ON_FAILURE);
|
||||
if (henna.getDyeId() != reward.getHennaId())
|
||||
{
|
||||
player.removeHenna(_slotOneIndex, false);
|
||||
player.addHenna(_slotOneIndex, HennaData.getInstance().getHenna(reward.getHennaId()));
|
||||
}
|
||||
player.addItem("Henna Improving", reward.getId(), reward.getCount(), null, false);
|
||||
player.sendPacket(new NewHennaPotenCompose(reward.getHennaId(), reward.getId() == 0 ? -1 : reward.getId(), false));
|
||||
}
|
||||
player.sendPacket(iu);
|
||||
}
|
||||
}
|
||||
|
479
L2J_Mobius_Essence_6.2_Vanguard/dist/game/data/CombinationDye.xml
vendored
Normal file
479
L2J_Mobius_Essence_6.2_Vanguard/dist/game/data/CombinationDye.xml
vendored
Normal file
@ -0,0 +1,479 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<list xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xsd/CombinationDye.xsd">
|
||||
<henna dyeId="338" itemTwo="96623" commission="300000" chance="25"> <!-- Potential of STR <STR+1> -->
|
||||
<reward dyeId="339" type="ON_SUCCESS" />
|
||||
<reward dyeId="338" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="339" itemTwo="96623" commission="300000" chance="25"> <!-- Potential of STR <STR+2> -->
|
||||
<reward dyeId="340" type="ON_SUCCESS" />
|
||||
<reward dyeId="339" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="340" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+4> (P. Atk. +25) -->
|
||||
<reward dyeId="341" type="ON_SUCCESS" />
|
||||
<reward dyeId="340" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="341" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+4> (P. Atk. +50) -->
|
||||
<reward dyeId="342" type="ON_SUCCESS" />
|
||||
<reward dyeId="341" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="342" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+4> (P. Atk. +75) -->
|
||||
<reward dyeId="343" type="ON_SUCCESS" />
|
||||
<reward dyeId="342" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="343" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+4> (P. Atk. +100) -->
|
||||
<reward dyeId="344" type="ON_SUCCESS" />
|
||||
<reward dyeId="343" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="344" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+4> (P. Atk. +125) -->
|
||||
<reward dyeId="345" type="ON_SUCCESS" />
|
||||
<reward dyeId="344" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="345" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+4> (P. Atk. +150) -->
|
||||
<reward dyeId="346" type="ON_SUCCESS" />
|
||||
<reward dyeId="345" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="346" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+4> (P. Atk. +175) -->
|
||||
<reward dyeId="347" type="ON_SUCCESS" />
|
||||
<reward dyeId="346" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="347" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+4> (P. Atk. +200) -->
|
||||
<reward dyeId="348" type="ON_SUCCESS" />
|
||||
<reward dyeId="347" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="348" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+5> (P. Atk. +225) -->
|
||||
<reward dyeId="349" type="ON_SUCCESS" />
|
||||
<reward dyeId="348" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="349" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+5> (P. Atk. +250) -->
|
||||
<reward dyeId="350" type="ON_SUCCESS" />
|
||||
<reward dyeId="349" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="350" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+5> (P. Atk. +275) -->
|
||||
<reward dyeId="351" type="ON_SUCCESS" />
|
||||
<reward dyeId="350" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="351" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+5> (P. Atk. +300) -->
|
||||
<reward dyeId="352" type="ON_SUCCESS" />
|
||||
<reward dyeId="351" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="352" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+5> (P. Atk. +325) -->
|
||||
<reward dyeId="353" type="ON_SUCCESS" />
|
||||
<reward dyeId="352" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="353" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+5> (P. Atk. +350 P. Skill Critical Rate +0.5%) -->
|
||||
<reward dyeId="354" type="ON_SUCCESS" />
|
||||
<reward dyeId="353" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="354" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+5> (P. Atk. +375 P. Skill Critical Rate +1%) -->
|
||||
<reward dyeId="355" type="ON_SUCCESS" />
|
||||
<reward dyeId="354" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="355" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+5> (P. Atk. +400 P. Skill Critical Rate +1.5%) -->
|
||||
<reward dyeId="356" type="ON_SUCCESS" />
|
||||
<reward dyeId="355" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="356" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of STR <STR+5> (P. Atk. +425 P. Skill Critical Rate +2%) -->
|
||||
<reward dyeId="357" type="ON_SUCCESS" />
|
||||
<reward dyeId="356" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="358" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+1> -->
|
||||
<reward dyeId="359" type="ON_SUCCESS" />
|
||||
<reward dyeId="358" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="359" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+2> -->
|
||||
<reward dyeId="360" type="ON_SUCCESS" />
|
||||
<reward dyeId="359" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="360" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+3> -->
|
||||
<reward dyeId="361" type="ON_SUCCESS" />
|
||||
<reward dyeId="360" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="361" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+4> (P. Def. +32) -->
|
||||
<reward dyeId="362" type="ON_SUCCESS" />
|
||||
<reward dyeId="361" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="362" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+4> (P. Def. +65) -->
|
||||
<reward dyeId="363" type="ON_SUCCESS" />
|
||||
<reward dyeId="362" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="363" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+4> (P. Def. +97) -->
|
||||
<reward dyeId="364" type="ON_SUCCESS" />
|
||||
<reward dyeId="363" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="364" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+4> (P. Def. +130) -->
|
||||
<reward dyeId="365" type="ON_SUCCESS" />
|
||||
<reward dyeId="364" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="365" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+4> (P. Def. +162) -->
|
||||
<reward dyeId="366" type="ON_SUCCESS" />
|
||||
<reward dyeId="365" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="366" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+4> (P. Def. +195) -->
|
||||
<reward dyeId="367" type="ON_SUCCESS" />
|
||||
<reward dyeId="366" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="367" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+4> (P. Def. +227) -->
|
||||
<reward dyeId="368" type="ON_SUCCESS" />
|
||||
<reward dyeId="367" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="368" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+4> (P. Def. +260) -->
|
||||
<reward dyeId="369" type="ON_SUCCESS" />
|
||||
<reward dyeId="368" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="369" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+5> (P. Def. +292) -->
|
||||
<reward dyeId="370" type="ON_SUCCESS" />
|
||||
<reward dyeId="369" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="370" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+5> (P. Def. +325) -->
|
||||
<reward dyeId="371" type="ON_SUCCESS" />
|
||||
<reward dyeId="370" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="371" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+5> (P. Def. +357) -->
|
||||
<reward dyeId="372" type="ON_SUCCESS" />
|
||||
<reward dyeId="371" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="372" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+5> (P. Def. +390) -->
|
||||
<reward dyeId="373" type="ON_SUCCESS" />
|
||||
<reward dyeId="372" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="373" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+5> (P. Def. +422) -->
|
||||
<reward dyeId="374" type="ON_SUCCESS" />
|
||||
<reward dyeId="373" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="374" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+5> (P. Def. +455 P. Skill Damage Received -1%) -->
|
||||
<reward dyeId="375" type="ON_SUCCESS" />
|
||||
<reward dyeId="374" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="375" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+5> (P. Def. +487 P. Skill Damage Received -1.5%) -->
|
||||
<reward dyeId="376" type="ON_SUCCESS" />
|
||||
<reward dyeId="375" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="376" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+5> (P. Def. +520 P. Skill Damage Received -2%) -->
|
||||
<reward dyeId="377" type="ON_SUCCESS" />
|
||||
<reward dyeId="376" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="377" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of CON <CON+5> (P. Def. +552 P. Skill Damage Received -3%) -->
|
||||
<reward dyeId="378" type="ON_SUCCESS" />
|
||||
<reward dyeId="377" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="379" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+1> -->
|
||||
<reward dyeId="380" type="ON_SUCCESS" />
|
||||
<reward dyeId="379" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="380" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+2> -->
|
||||
<reward dyeId="381" type="ON_SUCCESS" />
|
||||
<reward dyeId="380" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="381" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+3> -->
|
||||
<reward dyeId="382" type="ON_SUCCESS" />
|
||||
<reward dyeId="381" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="382" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+4> (P. Skill Critical Rate Received -0.4%) -->
|
||||
<reward dyeId="383" type="ON_SUCCESS" />
|
||||
<reward dyeId="382" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="383" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+4> (P. Skill Critical Rate Received -0.8%) -->
|
||||
<reward dyeId="384" type="ON_SUCCESS" />
|
||||
<reward dyeId="383" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="384" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+4> (P. Skill Critical Rate Received -1.2%) -->
|
||||
<reward dyeId="385" type="ON_SUCCESS" />
|
||||
<reward dyeId="384" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="385" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+4> (P. Skill Critical Rate Received -1.6%) -->
|
||||
<reward dyeId="386" type="ON_SUCCESS" />
|
||||
<reward dyeId="385" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="386" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+4> (P. Skill Critical Rate Received -2.0%) -->
|
||||
<reward dyeId="387" type="ON_SUCCESS" />
|
||||
<reward dyeId="386" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="387" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+4> (P. Skill Critical Rate Received -2.4%) -->
|
||||
<reward dyeId="388" type="ON_SUCCESS" />
|
||||
<reward dyeId="387" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="388" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+4> (P. Skill Critical Rate Received -2.8%) -->
|
||||
<reward dyeId="389" type="ON_SUCCESS" />
|
||||
<reward dyeId="388" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="389" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+4> (P. Skill Critical Rate Received -3.2%) -->
|
||||
<reward dyeId="390" type="ON_SUCCESS" />
|
||||
<reward dyeId="389" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="390" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+5> (P. Skill Critical Rate Received -3.6%) -->
|
||||
<reward dyeId="391" type="ON_SUCCESS" />
|
||||
<reward dyeId="390" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="391" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+5> (P. Skill Critical Rate Received -4.0%) -->
|
||||
<reward dyeId="392" type="ON_SUCCESS" />
|
||||
<reward dyeId="391" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="392" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+5> (P. Skill Critical Rate Received -4.4%) -->
|
||||
<reward dyeId="393" type="ON_SUCCESS" />
|
||||
<reward dyeId="392" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="393" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+5> (P. Skill Critical Rate Received -4.8%) -->
|
||||
<reward dyeId="394" type="ON_SUCCESS" />
|
||||
<reward dyeId="393" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="394" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+5> (P. Skill Critical Rate Received -5.2%) -->
|
||||
<reward dyeId="395" type="ON_SUCCESS" />
|
||||
<reward dyeId="394" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="395" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+5> (P. Skill Critical Rate Received -5.6% Soulshot Damage +1%) -->
|
||||
<reward dyeId="396" type="ON_SUCCESS" />
|
||||
<reward dyeId="395" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="396" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+5> (P. Skill Critical Rate Received -6.0% Soulshot Damage +1.5%) -->
|
||||
<reward dyeId="397" type="ON_SUCCESS" />
|
||||
<reward dyeId="396" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="397" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+5> (P. Skill Critical Rate Received -6.4% Soulshot Damage +2%) -->
|
||||
<reward dyeId="398" type="ON_SUCCESS" />
|
||||
<reward dyeId="397" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="398" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of DEX <DEX+5> (P. Skill Critical Rate Received -6.8% Soulshot Damage +3%) -->
|
||||
<reward dyeId="399" type="ON_SUCCESS" />
|
||||
<reward dyeId="398" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="400" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+1> -->
|
||||
<reward dyeId="401" type="ON_SUCCESS" />
|
||||
<reward dyeId="400" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="401" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+2> -->
|
||||
<reward dyeId="402" type="ON_SUCCESS" />
|
||||
<reward dyeId="401" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="402" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+3> -->
|
||||
<reward dyeId="403" type="ON_SUCCESS" />
|
||||
<reward dyeId="402" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="403" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+4> (M. Atk. +25) -->
|
||||
<reward dyeId="404" type="ON_SUCCESS" />
|
||||
<reward dyeId="403" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="404" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+4> (M. Atk. +50) -->
|
||||
<reward dyeId="405" type="ON_SUCCESS" />
|
||||
<reward dyeId="404" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="405" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+4> (M. Atk. +75) -->
|
||||
<reward dyeId="406" type="ON_SUCCESS" />
|
||||
<reward dyeId="405" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="406" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+4> (M. Atk. +100) -->
|
||||
<reward dyeId="407" type="ON_SUCCESS" />
|
||||
<reward dyeId="406" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="407" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+4> (M. Atk. +125) -->
|
||||
<reward dyeId="408" type="ON_SUCCESS" />
|
||||
<reward dyeId="407" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="408" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+4> (M. Atk. +150) -->
|
||||
<reward dyeId="409" type="ON_SUCCESS" />
|
||||
<reward dyeId="408" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="409" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+4> (M. Atk. +175) -->
|
||||
<reward dyeId="410" type="ON_SUCCESS" />
|
||||
<reward dyeId="409" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="410" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+4> (M. Atk. +200) -->
|
||||
<reward dyeId="411" type="ON_SUCCESS" />
|
||||
<reward dyeId="410" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="411" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+5> (M. Atk. +225) -->
|
||||
<reward dyeId="412" type="ON_SUCCESS" />
|
||||
<reward dyeId="411" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="412" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+5> (M. Atk. +250) -->
|
||||
<reward dyeId="413" type="ON_SUCCESS" />
|
||||
<reward dyeId="412" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="413" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+5> (M. Atk. +275) -->
|
||||
<reward dyeId="414" type="ON_SUCCESS" />
|
||||
<reward dyeId="413" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="414" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+5> (M. Atk. +300) -->
|
||||
<reward dyeId="415" type="ON_SUCCESS" />
|
||||
<reward dyeId="414" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="415" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+5> (M. Atk. +325) -->
|
||||
<reward dyeId="416" type="ON_SUCCESS" />
|
||||
<reward dyeId="415" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="416" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+5> (M. Atk. +350 M. Skill Critical Rate +0.5%) -->
|
||||
<reward dyeId="417" type="ON_SUCCESS" />
|
||||
<reward dyeId="416" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="417" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+5> (M. Atk. +375 M. Skill Critical Rate +1%) -->
|
||||
<reward dyeId="418" type="ON_SUCCESS" />
|
||||
<reward dyeId="417" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="418" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+5> (M. Atk. +400 M. Skill Critical Rate +1.5%) -->
|
||||
<reward dyeId="419" type="ON_SUCCESS" />
|
||||
<reward dyeId="418" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="419" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of INT <INT+5> (M. Atk. +425 M. Skill Critical Rate +2%) -->
|
||||
<reward dyeId="420" type="ON_SUCCESS" />
|
||||
<reward dyeId="419" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="421" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+1> -->
|
||||
<reward dyeId="422" type="ON_SUCCESS" />
|
||||
<reward dyeId="421" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="422" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+2> -->
|
||||
<reward dyeId="423" type="ON_SUCCESS" />
|
||||
<reward dyeId="422" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="423" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+3> -->
|
||||
<reward dyeId="424" type="ON_SUCCESS" />
|
||||
<reward dyeId="423" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="424" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+4> (M. Def. +37) -->
|
||||
<reward dyeId="425" type="ON_SUCCESS" />
|
||||
<reward dyeId="424" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="425" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+4> (M. Def. +75) -->
|
||||
<reward dyeId="426" type="ON_SUCCESS" />
|
||||
<reward dyeId="425" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="426" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+4> (M. Def. +112) -->
|
||||
<reward dyeId="427" type="ON_SUCCESS" />
|
||||
<reward dyeId="426" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="427" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+4> (M. Def. +150) -->
|
||||
<reward dyeId="428" type="ON_SUCCESS" />
|
||||
<reward dyeId="427" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="428" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+4> (M. Def. +187) -->
|
||||
<reward dyeId="429" type="ON_SUCCESS" />
|
||||
<reward dyeId="428" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="429" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+4> (M. Def. +225) -->
|
||||
<reward dyeId="430" type="ON_SUCCESS" />
|
||||
<reward dyeId="429" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="430" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+4> (M. Def. +262) -->
|
||||
<reward dyeId="431" type="ON_SUCCESS" />
|
||||
<reward dyeId="430" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="431" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+4> (M. Def. +300) -->
|
||||
<reward dyeId="432" type="ON_SUCCESS" />
|
||||
<reward dyeId="431" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="432" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+5> (M. Def. +337) -->
|
||||
<reward dyeId="433" type="ON_SUCCESS" />
|
||||
<reward dyeId="432" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="433" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+5> (M. Def. +375) -->
|
||||
<reward dyeId="434" type="ON_SUCCESS" />
|
||||
<reward dyeId="433" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="434" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+5> (M. Def. +412) -->
|
||||
<reward dyeId="435" type="ON_SUCCESS" />
|
||||
<reward dyeId="434" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="435" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+5> (M. Def. +450) -->
|
||||
<reward dyeId="436" type="ON_SUCCESS" />
|
||||
<reward dyeId="435" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="436" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+5> (M. Def. +487) -->
|
||||
<reward dyeId="437" type="ON_SUCCESS" />
|
||||
<reward dyeId="436" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="437" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+5> (M. Def. +525 M. Skill Damage Received -1%) -->
|
||||
<reward dyeId="438" type="ON_SUCCESS" />
|
||||
<reward dyeId="437" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="438" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+5> (M. Def. +562 M. Skill Damage Received -1.5%) -->
|
||||
<reward dyeId="439" type="ON_SUCCESS" />
|
||||
<reward dyeId="438" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="439" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+5> (M. Def. +600 M. Skill Damage Received -2%) -->
|
||||
<reward dyeId="440" type="ON_SUCCESS" />
|
||||
<reward dyeId="439" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="440" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of MEN <MEN+5> (M. Def. +637 M. Skill Damage Received -3%) -->
|
||||
<reward dyeId="441" type="ON_SUCCESS" />
|
||||
<reward dyeId="440" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="442" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+1> -->
|
||||
<reward dyeId="443" type="ON_SUCCESS" />
|
||||
<reward dyeId="442" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="443" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+2> -->
|
||||
<reward dyeId="444" type="ON_SUCCESS" />
|
||||
<reward dyeId="443" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="444" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+3> -->
|
||||
<reward dyeId="445" type="ON_SUCCESS" />
|
||||
<reward dyeId="444" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="445" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+4> (M. Critical Rate Received -0.4%) -->
|
||||
<reward dyeId="446" type="ON_SUCCESS" />
|
||||
<reward dyeId="445" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="446" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+4> (M. Critical Rate Received -0.8%) -->
|
||||
<reward dyeId="447" type="ON_SUCCESS" />
|
||||
<reward dyeId="446" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="447" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+4> (M. Critical Rate Received -1.2%) -->
|
||||
<reward dyeId="448" type="ON_SUCCESS" />
|
||||
<reward dyeId="447" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="448" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+4> (M. Critical Rate Received -1.6%) -->
|
||||
<reward dyeId="449" type="ON_SUCCESS" />
|
||||
<reward dyeId="448" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="449" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+4> (M. Critical Rate Received -2.0%) -->
|
||||
<reward dyeId="450" type="ON_SUCCESS" />
|
||||
<reward dyeId="449" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="450" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+4> (M. Critical Rate Received -2.4%) -->
|
||||
<reward dyeId="451" type="ON_SUCCESS" />
|
||||
<reward dyeId="450" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="451" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+4> (M. Critical Rate Received -2.8%) -->
|
||||
<reward dyeId="452" type="ON_SUCCESS" />
|
||||
<reward dyeId="451" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="452" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+4> (M. Critical Rate Received -3.2%) -->
|
||||
<reward dyeId="453" type="ON_SUCCESS" />
|
||||
<reward dyeId="452" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="453" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+5> (M. Critical Rate Received -3.6%) -->
|
||||
<reward dyeId="454" type="ON_SUCCESS" />
|
||||
<reward dyeId="453" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="454" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+5> (M. Critical Rate Received -4.0%) -->
|
||||
<reward dyeId="455" type="ON_SUCCESS" />
|
||||
<reward dyeId="454" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="455" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+5> (M. Critical Rate Received -4.4%) -->
|
||||
<reward dyeId="456" type="ON_SUCCESS" />
|
||||
<reward dyeId="455" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="456" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+5> (M. Critical Rate Received -4.8%) -->
|
||||
<reward dyeId="457" type="ON_SUCCESS" />
|
||||
<reward dyeId="456" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="457" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+5> (M. Critical Rate Received -5.2%) -->
|
||||
<reward dyeId="458" type="ON_SUCCESS" />
|
||||
<reward dyeId="457" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="458" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+5> (M. Critical Rate Received -5.6% Spiritshot Damage +1%) -->
|
||||
<reward dyeId="459" type="ON_SUCCESS" />
|
||||
<reward dyeId="458" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="459" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+5> (M. Critical Rate Received -6.0% Spiritshot Damage +1.5%) -->
|
||||
<reward dyeId="460" type="ON_SUCCESS" />
|
||||
<reward dyeId="459" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="460" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+5> (M. Critical Rate Received -6.4% Spiritshot Damage +2%) -->
|
||||
<reward dyeId="461" type="ON_SUCCESS" />
|
||||
<reward dyeId="460" type="ON_FAILURE" />
|
||||
</henna>
|
||||
<henna dyeId="461" itemTwo="96623" commission="300000" chance="25"> <!-- Tattoo of WIT <WIT+5> (M. Critical Rate Received -6.8% Spiritshot Damage +3%) -->
|
||||
<reward dyeId="462" type="ON_SUCCESS" />
|
||||
<reward dyeId="461" type="ON_FAILURE" />
|
||||
</henna>
|
||||
</list>
|
33
L2J_Mobius_Essence_6.2_Vanguard/dist/game/data/xsd/CombinationDye.xsd
vendored
Normal file
33
L2J_Mobius_Essence_6.2_Vanguard/dist/game/data/xsd/CombinationDye.xsd
vendored
Normal file
@ -0,0 +1,33 @@
|
||||
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
|
||||
<xs:element name="list">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="henna" maxOccurs="unbounded" minOccurs="0">
|
||||
<xs:complexType>
|
||||
<xs:sequence>
|
||||
<xs:element name="reward" maxOccurs="unbounded" minOccurs="0">
|
||||
<xs:complexType>
|
||||
<xs:simpleContent>
|
||||
<xs:extension base="xs:string">
|
||||
<xs:attribute type="xs:int" name="dyeId" use="required"/>
|
||||
<xs:attribute type="xs:int" name="id" use="optional" />
|
||||
<xs:attribute type="xs:short" name="count" use="optional" />
|
||||
<xs:attribute type="xs:string" name="type" use="required" />
|
||||
</xs:extension>
|
||||
</xs:simpleContent>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
<xs:attribute type="xs:short" name="dyeId" use="required" />
|
||||
<xs:attribute type="xs:int" name="itemOne" use="optional" />
|
||||
<xs:attribute type="xs:long" name="countOne" use="optional" />
|
||||
<xs:attribute type="xs:int" name="itemTwo" use="required" />
|
||||
<xs:attribute type="xs:long" name="countTwo" use="optional" />
|
||||
<xs:attribute type="xs:long" name="commission" use="optional" />
|
||||
<xs:attribute type="xs:float" name="chance" use="optional" />
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:sequence>
|
||||
</xs:complexType>
|
||||
</xs:element>
|
||||
</xs:schema>
|
@ -57,6 +57,7 @@ import org.l2jmobius.gameserver.data.xml.ClanHallData;
|
||||
import org.l2jmobius.gameserver.data.xml.ClanRewardData;
|
||||
import org.l2jmobius.gameserver.data.xml.ClassListData;
|
||||
import org.l2jmobius.gameserver.data.xml.CollectionData;
|
||||
import org.l2jmobius.gameserver.data.xml.CombinationDyeData;
|
||||
import org.l2jmobius.gameserver.data.xml.CombinationItemsData;
|
||||
import org.l2jmobius.gameserver.data.xml.CubicData;
|
||||
import org.l2jmobius.gameserver.data.xml.DailyMissionData;
|
||||
@ -260,7 +261,6 @@ public class GameServer
|
||||
ActionData.getInstance();
|
||||
CategoryData.getInstance();
|
||||
SecondaryAuthData.getInstance();
|
||||
CombinationItemsData.getInstance();
|
||||
SayuneData.getInstance();
|
||||
ClanRewardData.getInstance();
|
||||
DailyMissionHandler.getInstance().executeScript();
|
||||
@ -293,6 +293,8 @@ public class GameServer
|
||||
EnchantItemHPBonusData.getInstance();
|
||||
BuyListData.getInstance();
|
||||
MultisellData.getInstance();
|
||||
CombinationItemsData.getInstance();
|
||||
CombinationDyeData.getInstance();
|
||||
EquipmentUpgradeData.getInstance();
|
||||
AgathionData.getInstance();
|
||||
RaidTeleportListData.getInstance();
|
||||
|
@ -0,0 +1,110 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package org.l2jmobius.gameserver.data.xml;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
import org.w3c.dom.Document;
|
||||
|
||||
import org.l2jmobius.commons.util.IXmlReader;
|
||||
import org.l2jmobius.gameserver.data.ItemTable;
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.item.combination.CombinationItemType;
|
||||
import org.l2jmobius.gameserver.model.item.henna.CombinationHennaReward;
|
||||
import org.l2jmobius.gameserver.model.item.henna.CombinationHenna;
|
||||
|
||||
/**
|
||||
* @author Index
|
||||
*/
|
||||
public class CombinationDyeData implements IXmlReader
|
||||
{
|
||||
private static final Logger LOGGER = Logger.getLogger(CombinationDyeData.class.getName());
|
||||
|
||||
private final List<CombinationHenna> _henna = new ArrayList<>();
|
||||
|
||||
protected CombinationDyeData()
|
||||
{
|
||||
load();
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized void load()
|
||||
{
|
||||
_henna.clear();
|
||||
parseDatapackFile("data/CombinationDye.xml");
|
||||
LOGGER.info(getClass().getSimpleName() + ": Loaded " + _henna.size() + " henna combinations.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void parseDocument(Document doc, File f)
|
||||
{
|
||||
forEach(doc, "list", listNode ->
|
||||
{
|
||||
forEach(listNode, "henna", hennaNode ->
|
||||
{
|
||||
final CombinationHenna henna = new CombinationHenna(new StatSet(parseAttributes(hennaNode)));
|
||||
forEach(hennaNode, "reward", rewardNode ->
|
||||
{
|
||||
final int hennaId = parseInteger(rewardNode.getAttributes(), "dyeId");
|
||||
final int id = parseInteger(rewardNode.getAttributes(), "id", -1);
|
||||
final int count = parseInteger(rewardNode.getAttributes(), "count", 0);
|
||||
final CombinationItemType type = parseEnum(rewardNode.getAttributes(), CombinationItemType.class, "type");
|
||||
henna.addReward(new CombinationHennaReward(hennaId, id, count, type));
|
||||
if ((id != -1) && (ItemTable.getInstance().getTemplate(id) == null))
|
||||
{
|
||||
LOGGER.info(getClass().getSimpleName() + ": Could not find item with id " + id);
|
||||
}
|
||||
if ((hennaId != 0) && (HennaData.getInstance().getHenna(hennaId) == null))
|
||||
{
|
||||
LOGGER.info(getClass().getSimpleName() + ": Could not find henna with id " + id);
|
||||
}
|
||||
});
|
||||
_henna.add(henna);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
public List<CombinationHenna> getHenna()
|
||||
{
|
||||
return _henna;
|
||||
}
|
||||
|
||||
public CombinationHenna getByHenna(int hennaId)
|
||||
{
|
||||
for (CombinationHenna henna : _henna)
|
||||
{
|
||||
if (henna.getHenna() == hennaId)
|
||||
{
|
||||
return henna;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public static final CombinationDyeData getInstance()
|
||||
{
|
||||
return SingletonHolder.INSTANCE;
|
||||
}
|
||||
|
||||
private static class SingletonHolder
|
||||
{
|
||||
protected static final CombinationDyeData INSTANCE = new CombinationDyeData();
|
||||
}
|
||||
}
|
@ -8050,6 +8050,17 @@ public class Player extends Playable
|
||||
* @return
|
||||
*/
|
||||
public boolean removeHenna(int slot)
|
||||
{
|
||||
return removeHenna(slot, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove a Henna of the Player, save update in the character_hennas table of the database and send Server->Client HennaInfo/UserInfo packet to this Player.
|
||||
* @param slot
|
||||
* @param restoreDye
|
||||
* @return
|
||||
*/
|
||||
public boolean removeHenna(int slot, boolean restoreDye)
|
||||
{
|
||||
if ((slot < 1) || (slot > _hennaPoten.length))
|
||||
{
|
||||
@ -8091,7 +8102,7 @@ public class Player extends Playable
|
||||
{
|
||||
reduceAdena("Henna", henna.getCancelFee(), this, false);
|
||||
}
|
||||
if (henna.getCancelCount() > 0)
|
||||
if ((henna.getCancelCount() > 0) && restoreDye)
|
||||
{
|
||||
_inventory.addItem("Henna", henna.getDyeItemId(), henna.getCancelCount(), this, null);
|
||||
final SystemMessage sm = new SystemMessage(SystemMessageId.YOU_HAVE_OBTAINED_S1_X_S2);
|
||||
|
@ -0,0 +1,94 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package org.l2jmobius.gameserver.model.item.henna;
|
||||
|
||||
import java.util.EnumMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.l2jmobius.gameserver.model.StatSet;
|
||||
import org.l2jmobius.gameserver.model.item.combination.CombinationItemType;
|
||||
|
||||
/**
|
||||
* @author Index
|
||||
*/
|
||||
public class CombinationHenna
|
||||
{
|
||||
private final int _henna;
|
||||
private final int _itemOne;
|
||||
private final long _countOne;
|
||||
private final int _itemTwo;
|
||||
private final long _countTwo;
|
||||
private final long _commission;
|
||||
private final float _chance;
|
||||
private final Map<CombinationItemType, CombinationHennaReward> _rewards = new EnumMap<>(CombinationItemType.class);
|
||||
|
||||
public CombinationHenna(StatSet set)
|
||||
{
|
||||
_henna = set.getInt("dyeId");
|
||||
_itemOne = set.getInt("itemOne", -1);
|
||||
_countOne = set.getLong("countOne", 1);
|
||||
_itemTwo = set.getInt("itemTwo", -1);
|
||||
_countTwo = set.getLong("countTwo", 1);
|
||||
_commission = set.getLong("commission", 0);
|
||||
_chance = set.getFloat("chance", 33);
|
||||
}
|
||||
|
||||
public int getHenna()
|
||||
{
|
||||
return _henna;
|
||||
}
|
||||
|
||||
public int getItemOne()
|
||||
{
|
||||
return _itemOne;
|
||||
}
|
||||
|
||||
public long getCountOne()
|
||||
{
|
||||
return _countOne;
|
||||
}
|
||||
|
||||
public int getItemTwo()
|
||||
{
|
||||
return _itemTwo;
|
||||
}
|
||||
|
||||
public long getCountTwo()
|
||||
{
|
||||
return _countTwo;
|
||||
}
|
||||
|
||||
public long getCommission()
|
||||
{
|
||||
return _commission;
|
||||
}
|
||||
|
||||
public float getChance()
|
||||
{
|
||||
return _chance;
|
||||
}
|
||||
|
||||
public void addReward(CombinationHennaReward item)
|
||||
{
|
||||
_rewards.put(item.getType(), item);
|
||||
}
|
||||
|
||||
public CombinationHennaReward getReward(CombinationItemType type)
|
||||
{
|
||||
return _rewards.get(type);
|
||||
}
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
/*
|
||||
* This file is part of the L2J Mobius project.
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package org.l2jmobius.gameserver.model.item.henna;
|
||||
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.item.combination.CombinationItemType;
|
||||
|
||||
/**
|
||||
* @author Index
|
||||
*/
|
||||
public class CombinationHennaReward extends ItemHolder
|
||||
{
|
||||
private final int _hennaId;
|
||||
private final CombinationItemType _type;
|
||||
|
||||
public CombinationHennaReward(int id, int count, CombinationItemType type)
|
||||
{
|
||||
super(id, count);
|
||||
_hennaId = 0;
|
||||
_type = type;
|
||||
}
|
||||
|
||||
public CombinationHennaReward(int hennaId, int id, int count, CombinationItemType type)
|
||||
{
|
||||
super(id, count);
|
||||
_hennaId = hennaId;
|
||||
_type = type;
|
||||
}
|
||||
|
||||
public int getHennaId()
|
||||
{
|
||||
return _hennaId;
|
||||
}
|
||||
|
||||
public CombinationItemType getType()
|
||||
{
|
||||
return _type;
|
||||
}
|
||||
}
|
@ -17,9 +17,20 @@
|
||||
package org.l2jmobius.gameserver.network.clientpackets.newhenna;
|
||||
|
||||
import org.l2jmobius.commons.network.PacketReader;
|
||||
import org.l2jmobius.commons.util.Rnd;
|
||||
import org.l2jmobius.gameserver.data.xml.CombinationDyeData;
|
||||
import org.l2jmobius.gameserver.data.xml.HennaData;
|
||||
import org.l2jmobius.gameserver.model.actor.Player;
|
||||
import org.l2jmobius.gameserver.model.holders.ItemHolder;
|
||||
import org.l2jmobius.gameserver.model.item.combination.CombinationItemType;
|
||||
import org.l2jmobius.gameserver.model.item.henna.CombinationHenna;
|
||||
import org.l2jmobius.gameserver.model.item.henna.CombinationHennaReward;
|
||||
import org.l2jmobius.gameserver.model.item.henna.Henna;
|
||||
import org.l2jmobius.gameserver.model.itemcontainer.Inventory;
|
||||
import org.l2jmobius.gameserver.network.GameClient;
|
||||
import org.l2jmobius.gameserver.network.PacketLogger;
|
||||
import org.l2jmobius.gameserver.network.clientpackets.IClientIncomingPacket;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.InventoryUpdate;
|
||||
import org.l2jmobius.gameserver.network.serverpackets.newhenna.NewHennaPotenCompose;
|
||||
|
||||
/**
|
||||
@ -27,7 +38,6 @@ import org.l2jmobius.gameserver.network.serverpackets.newhenna.NewHennaPotenComp
|
||||
*/
|
||||
public class RequestNewHennaCompose implements IClientIncomingPacket
|
||||
{
|
||||
@SuppressWarnings("unused")
|
||||
private int _slotOneIndex;
|
||||
private int _slotOneItemId;
|
||||
private int _slotTwoItemId;
|
||||
@ -35,9 +45,9 @@ public class RequestNewHennaCompose implements IClientIncomingPacket
|
||||
@Override
|
||||
public boolean read(GameClient client, PacketReader packet)
|
||||
{
|
||||
_slotOneIndex = packet.readC();
|
||||
_slotOneItemId = packet.readC();
|
||||
_slotTwoItemId = packet.readC();
|
||||
_slotOneIndex = packet.readD();
|
||||
_slotOneItemId = packet.readD();
|
||||
_slotTwoItemId = packet.readD();
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -49,6 +59,76 @@ public class RequestNewHennaCompose implements IClientIncomingPacket
|
||||
{
|
||||
return;
|
||||
}
|
||||
player.sendPacket(new NewHennaPotenCompose(_slotTwoItemId, _slotOneItemId, true));
|
||||
|
||||
final Inventory inventory = player.getInventory();
|
||||
if ((player.getHenna(_slotOneIndex) == null) || ((_slotOneItemId != -1) && (inventory.getItemByObjectId(_slotOneItemId) == null)) || ((_slotTwoItemId != -1) && (inventory.getItemByObjectId(_slotTwoItemId) == null)))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final Henna henna = player.getHenna(_slotOneIndex);
|
||||
final CombinationHenna combinationHennas = CombinationDyeData.getInstance().getByHenna(henna.getDyeId());
|
||||
if (combinationHennas == null)
|
||||
{
|
||||
player.sendPacket(new NewHennaPotenCompose(henna.getDyeId(), -1, false));
|
||||
return;
|
||||
}
|
||||
|
||||
if (((_slotOneItemId != -1) && (combinationHennas.getItemOne() != inventory.getItemByObjectId(_slotOneItemId).getId())) || ((_slotTwoItemId != -1) && (combinationHennas.getItemTwo() != inventory.getItemByObjectId(_slotTwoItemId).getId())))
|
||||
{
|
||||
PacketLogger.info(getClass().getSimpleName() + ": player " + player.getName() + " - " + player.getObjectId() + " have modified client or combination data is outdated!");
|
||||
}
|
||||
|
||||
final long commission = combinationHennas.getCommission();
|
||||
if (commission > player.getAdena())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
final ItemHolder one = new ItemHolder(combinationHennas.getItemOne(), combinationHennas.getCountOne());
|
||||
final ItemHolder two = new ItemHolder(combinationHennas.getItemTwo(), combinationHennas.getCountTwo());
|
||||
if (((_slotOneItemId != -1) && (inventory.getItemByItemId(one.getId()) == null) && (inventory.getItemByItemId(one.getId()).getCount() < one.getCount())) || ((_slotTwoItemId != -1) && (inventory.getItemByItemId(two.getId()) == null) && (inventory.getItemByItemId(two.getId()).getCount() < two.getCount())))
|
||||
{
|
||||
player.sendPacket(new NewHennaPotenCompose(henna.getDyeId(), -1, false));
|
||||
return;
|
||||
}
|
||||
|
||||
final InventoryUpdate iu = new InventoryUpdate();
|
||||
if (_slotOneItemId != -1)
|
||||
{
|
||||
iu.addModifiedItem(inventory.getItemByItemId(one.getId()));
|
||||
}
|
||||
if (_slotTwoItemId != -1)
|
||||
{
|
||||
iu.addModifiedItem(inventory.getItemByItemId(two.getId()));
|
||||
}
|
||||
iu.addModifiedItem(inventory.getItemByItemId(Inventory.ADENA_ID));
|
||||
|
||||
if (((_slotOneItemId != -1) && (inventory.destroyItemByItemId("Henna Improving", one.getId(), one.getCount(), player, null) == null)) || ((_slotTwoItemId != -1) && (inventory.destroyItemByItemId("Henna Improving", two.getId(), two.getCount(), player, null) == null)) || (inventory.destroyItemByItemId("Henna Improving", Inventory.ADENA_ID, commission, player, null) == null))
|
||||
{
|
||||
player.sendPacket(new NewHennaPotenCompose(henna.getDyeId(), -1, false));
|
||||
return;
|
||||
}
|
||||
|
||||
if (Rnd.get(0, 100) <= combinationHennas.getChance())
|
||||
{
|
||||
final CombinationHennaReward reward = combinationHennas.getReward(CombinationItemType.ON_SUCCESS);
|
||||
player.removeHenna(_slotOneIndex, false);
|
||||
player.addHenna(_slotOneIndex, HennaData.getInstance().getHenna(reward.getHennaId()));
|
||||
player.addItem("Henna Improving", reward.getId(), reward.getCount(), null, false);
|
||||
player.sendPacket(new NewHennaPotenCompose(reward.getHennaId(), reward.getId() == 0 ? -1 : reward.getId(), true));
|
||||
}
|
||||
else
|
||||
{
|
||||
final CombinationHennaReward reward = combinationHennas.getReward(CombinationItemType.ON_FAILURE);
|
||||
if (henna.getDyeId() != reward.getHennaId())
|
||||
{
|
||||
player.removeHenna(_slotOneIndex, false);
|
||||
player.addHenna(_slotOneIndex, HennaData.getInstance().getHenna(reward.getHennaId()));
|
||||
}
|
||||
player.addItem("Henna Improving", reward.getId(), reward.getCount(), null, false);
|
||||
player.sendPacket(new NewHennaPotenCompose(reward.getHennaId(), reward.getId() == 0 ? -1 : reward.getId(), false));
|
||||
}
|
||||
player.sendPacket(iu);
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user