Adds EndOnEnd node to status database (#7313)
* Any status defined under EndOnEnd will be removed when the status becomes inactive. * Renames End to EndOnStart. * Removes some hard coded statuses. * Includes YamlUpgrade Tool update to rename End -> EndOnStart. Thanks to @Lemongrass3110!
This commit is contained in:
parent
bc2afbdfc2
commit
8073d4e084
@ -35,10 +35,11 @@
|
|||||||
# MinRate Minimum rate after status change reduction (10000 = 100%). (Default: 0)
|
# MinRate Minimum rate after status change reduction (10000 = 100%). (Default: 0)
|
||||||
# MinDuration Minimum duration in milliseconds after status change reduction. (Default: 1)
|
# MinDuration Minimum duration in milliseconds after status change reduction. (Default: 1)
|
||||||
# Fail: List of Status Changes that causes the status to fail to activate. (Optional)
|
# Fail: List of Status Changes that causes the status to fail to activate. (Optional)
|
||||||
# End: List of Status Changes that will end when the status activates. (Optional)
|
# EndOnStart: List of Status Changes that will end when the status activates. (Optional)
|
||||||
# EndReturn: List of Status Changes that will end when the status activates and won't give its effect. (Optional)
|
# EndReturn: List of Status Changes that will end when the status activates and won't give its effect. (Optional)
|
||||||
|
# EndOnEnd: List of Status Changes that will end when the status becomes inactive. (Optional)
|
||||||
###########################################################################
|
###########################################################################
|
||||||
|
|
||||||
Header:
|
Header:
|
||||||
Type: STATUS_DB
|
Type: STATUS_DB
|
||||||
Version: 2
|
Version: 3
|
||||||
|
@ -35,13 +35,14 @@
|
|||||||
# MinRate Minimum rate after status change reduction (10000 = 100%). (Default: 0)
|
# MinRate Minimum rate after status change reduction (10000 = 100%). (Default: 0)
|
||||||
# MinDuration Minimum duration in milliseconds after status change reduction. (Default: 1)
|
# MinDuration Minimum duration in milliseconds after status change reduction. (Default: 1)
|
||||||
# Fail: List of Status Changes that causes the status to fail to activate. (Optional)
|
# Fail: List of Status Changes that causes the status to fail to activate. (Optional)
|
||||||
# End: List of Status Changes that will end when the status activates. (Optional)
|
# EndOnStart: List of Status Changes that will end when the status activates. (Optional)
|
||||||
# EndReturn: List of Status Changes that will end when the status activates and won't give its effect. (Optional)
|
# EndReturn: List of Status Changes that will end when the status activates and won't give its effect. (Optional)
|
||||||
|
# EndOnEnd: List of Status Changes that will end when the status becomes inactive. (Optional)
|
||||||
###########################################################################
|
###########################################################################
|
||||||
|
|
||||||
Header:
|
Header:
|
||||||
Type: STATUS_DB
|
Type: STATUS_DB
|
||||||
Version: 2
|
Version: 3
|
||||||
|
|
||||||
Body:
|
Body:
|
||||||
- Status: Stone
|
- Status: Stone
|
||||||
@ -70,7 +71,7 @@ Body:
|
|||||||
Stun: true
|
Stun: true
|
||||||
Sleep: true
|
Sleep: true
|
||||||
Burning: true
|
Burning: true
|
||||||
End:
|
EndOnStart:
|
||||||
Aeterna: true
|
Aeterna: true
|
||||||
EndReturn:
|
EndReturn:
|
||||||
StoneWait: true
|
StoneWait: true
|
||||||
@ -121,7 +122,7 @@ Body:
|
|||||||
Stun: true
|
Stun: true
|
||||||
Sleep: true
|
Sleep: true
|
||||||
Burning: true
|
Burning: true
|
||||||
End:
|
EndOnStart:
|
||||||
Aeterna: true
|
Aeterna: true
|
||||||
- Status: Stun
|
- Status: Stun
|
||||||
DurationLookup: NPC_STUNATTACK
|
DurationLookup: NPC_STUNATTACK
|
||||||
@ -272,7 +273,7 @@ Body:
|
|||||||
BossResist: true
|
BossResist: true
|
||||||
Debuff: true
|
Debuff: true
|
||||||
NoSaveInfinite: true
|
NoSaveInfinite: true
|
||||||
End:
|
EndOnStart:
|
||||||
Freeze: true
|
Freeze: true
|
||||||
Stone: true
|
Stone: true
|
||||||
Sleep: true
|
Sleep: true
|
||||||
@ -327,7 +328,7 @@ Body:
|
|||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Closeconfine: true
|
Closeconfine: true
|
||||||
Closeconfine2: true
|
Closeconfine2: true
|
||||||
- Status: Cloaking
|
- Status: Cloaking
|
||||||
@ -355,7 +356,7 @@ Body:
|
|||||||
Atk_Ele: true
|
Atk_Ele: true
|
||||||
Flags:
|
Flags:
|
||||||
RemoveOnUnequipWeapon: true
|
RemoveOnUnequipWeapon: true
|
||||||
End:
|
EndOnStart:
|
||||||
Aspersio: true
|
Aspersio: true
|
||||||
Fireweapon: true
|
Fireweapon: true
|
||||||
Waterweapon: true
|
Waterweapon: true
|
||||||
@ -381,7 +382,7 @@ Body:
|
|||||||
Debuff: true
|
Debuff: true
|
||||||
Fail:
|
Fail:
|
||||||
Speedup1: true
|
Speedup1: true
|
||||||
End:
|
EndOnStart:
|
||||||
Loud: true
|
Loud: true
|
||||||
Concentrate: true
|
Concentrate: true
|
||||||
Truesight: true
|
Truesight: true
|
||||||
@ -437,7 +438,7 @@ Body:
|
|||||||
TaekwonAngel: true
|
TaekwonAngel: true
|
||||||
Fail:
|
Fail:
|
||||||
Quagmire: true
|
Quagmire: true
|
||||||
End:
|
EndOnStart:
|
||||||
Decreaseagi: true
|
Decreaseagi: true
|
||||||
Adoramus: true
|
Adoramus: true
|
||||||
- Status: Decreaseagi
|
- Status: Decreaseagi
|
||||||
@ -452,7 +453,7 @@ Body:
|
|||||||
Debuff: true
|
Debuff: true
|
||||||
Fail:
|
Fail:
|
||||||
Speedup1: true
|
Speedup1: true
|
||||||
End:
|
EndOnStart:
|
||||||
Cartboost: true
|
Cartboost: true
|
||||||
Gn_Cartboost: true
|
Gn_Cartboost: true
|
||||||
Increaseagi: true
|
Increaseagi: true
|
||||||
@ -475,7 +476,7 @@ Body:
|
|||||||
Watk: true
|
Watk: true
|
||||||
Flags:
|
Flags:
|
||||||
SuperNoviceAngel: true
|
SuperNoviceAngel: true
|
||||||
End:
|
EndOnStart:
|
||||||
Impositio: true
|
Impositio: true
|
||||||
- Status: Suffragium
|
- Status: Suffragium
|
||||||
Icon: EFST_SUFFRAGIUM
|
Icon: EFST_SUFFRAGIUM
|
||||||
@ -489,7 +490,7 @@ Body:
|
|||||||
Atk_Ele: true
|
Atk_Ele: true
|
||||||
Flags:
|
Flags:
|
||||||
RemoveOnUnequipWeapon: true
|
RemoveOnUnequipWeapon: true
|
||||||
End:
|
EndOnStart:
|
||||||
Encpoison: true
|
Encpoison: true
|
||||||
Fireweapon: true
|
Fireweapon: true
|
||||||
Waterweapon: true
|
Waterweapon: true
|
||||||
@ -512,7 +513,7 @@ Body:
|
|||||||
DurationLookup: PR_KYRIE
|
DurationLookup: PR_KYRIE
|
||||||
Flags:
|
Flags:
|
||||||
SuperNoviceAngel: true
|
SuperNoviceAngel: true
|
||||||
End:
|
EndOnStart:
|
||||||
Assumptio: true
|
Assumptio: true
|
||||||
- Status: Magnificat
|
- Status: Magnificat
|
||||||
Icon: EFST_MAGNIFICAT
|
Icon: EFST_MAGNIFICAT
|
||||||
@ -589,7 +590,7 @@ Body:
|
|||||||
NoSave: true
|
NoSave: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
RemoveOnChangeMap: true
|
RemoveOnChangeMap: true
|
||||||
End:
|
EndOnStart:
|
||||||
Dancing: true
|
Dancing: true
|
||||||
- Status: Loud
|
- Status: Loud
|
||||||
Icon: EFST_SHOUT
|
Icon: EFST_SHOUT
|
||||||
@ -838,7 +839,7 @@ Body:
|
|||||||
Flags:
|
Flags:
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
RequireShield: true
|
RequireShield: true
|
||||||
End:
|
EndOnStart:
|
||||||
Reflectdamage: true
|
Reflectdamage: true
|
||||||
- Status: Splasher
|
- Status: Splasher
|
||||||
Icon: EFST_SPLASHER
|
Icon: EFST_SPLASHER
|
||||||
@ -987,7 +988,7 @@ Body:
|
|||||||
Atk_Ele: true
|
Atk_Ele: true
|
||||||
Flags:
|
Flags:
|
||||||
RemoveOnUnequipWeapon: true
|
RemoveOnUnequipWeapon: true
|
||||||
End:
|
EndOnStart:
|
||||||
Encpoison: true
|
Encpoison: true
|
||||||
Aspersio: true
|
Aspersio: true
|
||||||
Waterweapon: true
|
Waterweapon: true
|
||||||
@ -1002,7 +1003,7 @@ Body:
|
|||||||
Atk_Ele: true
|
Atk_Ele: true
|
||||||
Flags:
|
Flags:
|
||||||
RemoveOnUnequipWeapon: true
|
RemoveOnUnequipWeapon: true
|
||||||
End:
|
EndOnStart:
|
||||||
Encpoison: true
|
Encpoison: true
|
||||||
Aspersio: true
|
Aspersio: true
|
||||||
Fireweapon: true
|
Fireweapon: true
|
||||||
@ -1017,7 +1018,7 @@ Body:
|
|||||||
Atk_Ele: true
|
Atk_Ele: true
|
||||||
Flags:
|
Flags:
|
||||||
RemoveOnUnequipWeapon: true
|
RemoveOnUnequipWeapon: true
|
||||||
End:
|
EndOnStart:
|
||||||
Encpoison: true
|
Encpoison: true
|
||||||
Aspersio: true
|
Aspersio: true
|
||||||
Fireweapon: true
|
Fireweapon: true
|
||||||
@ -1032,7 +1033,7 @@ Body:
|
|||||||
Atk_Ele: true
|
Atk_Ele: true
|
||||||
Flags:
|
Flags:
|
||||||
RemoveOnUnequipWeapon: true
|
RemoveOnUnequipWeapon: true
|
||||||
End:
|
EndOnStart:
|
||||||
Encpoison: true
|
Encpoison: true
|
||||||
Aspersio: true
|
Aspersio: true
|
||||||
Fireweapon: true
|
Fireweapon: true
|
||||||
@ -1180,7 +1181,7 @@ Body:
|
|||||||
DurationLookup: HP_ASSUMPTIO
|
DurationLookup: HP_ASSUMPTIO
|
||||||
Opt3:
|
Opt3:
|
||||||
Assumptio: true
|
Assumptio: true
|
||||||
End:
|
EndOnStart:
|
||||||
Kyrie: true
|
Kyrie: true
|
||||||
Kaite: true
|
Kaite: true
|
||||||
- Status: Basilica
|
- Status: Basilica
|
||||||
@ -1205,7 +1206,7 @@ Body:
|
|||||||
Matk: true
|
Matk: true
|
||||||
Flags:
|
Flags:
|
||||||
NoSave: true
|
NoSave: true
|
||||||
End:
|
EndOnStart:
|
||||||
Magicpower: true
|
Magicpower: true
|
||||||
- Status: Edp
|
- Status: Edp
|
||||||
Icon: EFST_EDP
|
Icon: EFST_EDP
|
||||||
@ -1334,7 +1335,7 @@ Body:
|
|||||||
Debuff: true
|
Debuff: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
NoSave: true
|
NoSave: true
|
||||||
End:
|
EndOnStart:
|
||||||
Blessing: true
|
Blessing: true
|
||||||
Increaseagi: true
|
Increaseagi: true
|
||||||
- Status: Jointbeat
|
- Status: Jointbeat
|
||||||
@ -1358,7 +1359,7 @@ Body:
|
|||||||
Flags:
|
Flags:
|
||||||
NoSave: true
|
NoSave: true
|
||||||
Debuff: true
|
Debuff: true
|
||||||
End:
|
EndOnStart:
|
||||||
Freeze: true
|
Freeze: true
|
||||||
Stone: true
|
Stone: true
|
||||||
Sleep: true
|
Sleep: true
|
||||||
@ -1396,6 +1397,11 @@ Body:
|
|||||||
NoSave: true
|
NoSave: true
|
||||||
RemoveOnChangeMap: true
|
RemoveOnChangeMap: true
|
||||||
OverlapIgnoreLevel: true
|
OverlapIgnoreLevel: true
|
||||||
|
EndOnEnd:
|
||||||
|
Autoguard: true
|
||||||
|
Defender: true
|
||||||
|
ReflectShield: true
|
||||||
|
Endure: true
|
||||||
- Status: Sacrifice
|
- Status: Sacrifice
|
||||||
DurationLookup: PA_SACRIFICE
|
DurationLookup: PA_SACRIFICE
|
||||||
- Status: Steelbody
|
- Status: Steelbody
|
||||||
@ -1482,7 +1488,7 @@ Body:
|
|||||||
Flags:
|
Flags:
|
||||||
NoSave: true
|
NoSave: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Encpoison: true
|
Encpoison: true
|
||||||
Aspersio: true
|
Aspersio: true
|
||||||
Fireweapon: true
|
Fireweapon: true
|
||||||
@ -1510,7 +1516,7 @@ Body:
|
|||||||
Flags:
|
Flags:
|
||||||
NoSave: true
|
NoSave: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Encpoison: true
|
Encpoison: true
|
||||||
Aspersio: true
|
Aspersio: true
|
||||||
Fireweapon: true
|
Fireweapon: true
|
||||||
@ -1527,7 +1533,7 @@ Body:
|
|||||||
Flags:
|
Flags:
|
||||||
NoSave: true
|
NoSave: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Kaahi: true
|
Kaahi: true
|
||||||
- Status: Kaupe
|
- Status: Kaupe
|
||||||
Icon: EFST_KAUPE
|
Icon: EFST_KAUPE
|
||||||
@ -1548,7 +1554,7 @@ Body:
|
|||||||
RequireWeapon: true
|
RequireWeapon: true
|
||||||
Fail:
|
Fail:
|
||||||
Decreaseagi: true
|
Decreaseagi: true
|
||||||
End:
|
EndOnStart:
|
||||||
Aspdpotion0: true
|
Aspdpotion0: true
|
||||||
Aspdpotion1: true
|
Aspdpotion1: true
|
||||||
Aspdpotion2: true
|
Aspdpotion2: true
|
||||||
@ -1603,7 +1609,7 @@ Body:
|
|||||||
Flags:
|
Flags:
|
||||||
MadoCancel: true
|
MadoCancel: true
|
||||||
NoSave: true
|
NoSave: true
|
||||||
End:
|
EndOnStart:
|
||||||
Overthrust: true
|
Overthrust: true
|
||||||
- Status: Longing
|
- Status: Longing
|
||||||
Icon: EFST_LONGING
|
Icon: EFST_LONGING
|
||||||
@ -1684,6 +1690,8 @@ Body:
|
|||||||
RemoveOnChangeMap: true
|
RemoveOnChangeMap: true
|
||||||
RequireWeapon: true
|
RequireWeapon: true
|
||||||
OverlapIgnoreLevel: true
|
OverlapIgnoreLevel: true
|
||||||
|
EndOnEnd:
|
||||||
|
Longing: true
|
||||||
- Status: Elementalchange
|
- Status: Elementalchange
|
||||||
Icon: EFST_ARMOR_PROPERTY
|
Icon: EFST_ARMOR_PROPERTY
|
||||||
DurationLookup: NPC_ATTRICHANGE
|
DurationLookup: NPC_ATTRICHANGE
|
||||||
@ -1811,7 +1819,7 @@ Body:
|
|||||||
NoClearance: true
|
NoClearance: true
|
||||||
Fail:
|
Fail:
|
||||||
Speedup1: true
|
Speedup1: true
|
||||||
End:
|
EndOnStart:
|
||||||
Increaseagi: true
|
Increaseagi: true
|
||||||
Adrenaline: true
|
Adrenaline: true
|
||||||
Adrenaline2: true
|
Adrenaline2: true
|
||||||
@ -2040,7 +2048,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Food_Str_Cash: true
|
Food_Str_Cash: true
|
||||||
- Status: Agifood
|
- Status: Agifood
|
||||||
Icon: EFST_FOOD_AGI
|
Icon: EFST_FOOD_AGI
|
||||||
@ -2051,7 +2059,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Food_Agi_Cash: true
|
Food_Agi_Cash: true
|
||||||
- Status: Vitfood
|
- Status: Vitfood
|
||||||
Icon: EFST_FOOD_VIT
|
Icon: EFST_FOOD_VIT
|
||||||
@ -2062,7 +2070,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Food_Vit_Cash: true
|
Food_Vit_Cash: true
|
||||||
- Status: Intfood
|
- Status: Intfood
|
||||||
Icon: EFST_FOOD_INT
|
Icon: EFST_FOOD_INT
|
||||||
@ -2073,7 +2081,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Food_Int_Cash: true
|
Food_Int_Cash: true
|
||||||
- Status: Dexfood
|
- Status: Dexfood
|
||||||
Icon: EFST_FOOD_DEX
|
Icon: EFST_FOOD_DEX
|
||||||
@ -2084,7 +2092,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Food_Dex_Cash: true
|
Food_Dex_Cash: true
|
||||||
- Status: Lukfood
|
- Status: Lukfood
|
||||||
Icon: EFST_FOOD_LUK
|
Icon: EFST_FOOD_LUK
|
||||||
@ -2095,7 +2103,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Food_Luk_Cash: true
|
Food_Luk_Cash: true
|
||||||
- Status: Hitfood
|
- Status: Hitfood
|
||||||
Icon: EFST_FOOD_BASICHIT
|
Icon: EFST_FOOD_BASICHIT
|
||||||
@ -2194,7 +2202,7 @@ Body:
|
|||||||
Flags:
|
Flags:
|
||||||
SendOption: true
|
SendOption: true
|
||||||
NoRemoveOnDead: true
|
NoRemoveOnDead: true
|
||||||
End:
|
EndOnStart:
|
||||||
Spirit: true
|
Spirit: true
|
||||||
- Status: Skillrate_Up
|
- Status: Skillrate_Up
|
||||||
DurationLookup: SG_FRIEND
|
DurationLookup: SG_FRIEND
|
||||||
@ -2215,7 +2223,7 @@ Body:
|
|||||||
Flags:
|
Flags:
|
||||||
NoSave: true
|
NoSave: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Assumptio: true
|
Assumptio: true
|
||||||
- Status: Swoo
|
- Status: Swoo
|
||||||
Icon: EFST_SWOO
|
Icon: EFST_SWOO
|
||||||
@ -2268,7 +2276,7 @@ Body:
|
|||||||
Fail:
|
Fail:
|
||||||
P_Alter: true
|
P_Alter: true
|
||||||
Heat_Barrel: true
|
Heat_Barrel: true
|
||||||
End:
|
EndOnStart:
|
||||||
Adjustment: true
|
Adjustment: true
|
||||||
- Status: Adjustment
|
- Status: Adjustment
|
||||||
Icon: EFST_GS_ADJUSTMENT
|
Icon: EFST_GS_ADJUSTMENT
|
||||||
@ -2279,8 +2287,8 @@ Body:
|
|||||||
Flags:
|
Flags:
|
||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
End:
|
EndOnStart:
|
||||||
Madnesscancel: true
|
MadnessCancel: true
|
||||||
- Status: Increasing
|
- Status: Increasing
|
||||||
Icon: EFST_GS_ACCURACY
|
Icon: EFST_GS_ACCURACY
|
||||||
DurationLookup: GS_INCREASING
|
DurationLookup: GS_INCREASING
|
||||||
@ -2438,7 +2446,7 @@ Body:
|
|||||||
SendVal1: true
|
SendVal1: true
|
||||||
OverlapIgnoreLevel: true
|
OverlapIgnoreLevel: true
|
||||||
RemoveOnUnequipWeapon: true
|
RemoveOnUnequipWeapon: true
|
||||||
End:
|
EndOnStart:
|
||||||
Enchantarms: true
|
Enchantarms: true
|
||||||
Aspersio: true
|
Aspersio: true
|
||||||
- Status: Magicalattack
|
- Status: Magicalattack
|
||||||
@ -2718,7 +2726,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Invincibleoff: true
|
Invincibleoff: true
|
||||||
- Status: Invincibleoff
|
- Status: Invincibleoff
|
||||||
DurationLookup: NPC_INVINCIBLEOFF
|
DurationLookup: NPC_INVINCIBLEOFF
|
||||||
@ -2728,7 +2736,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Invincible: true
|
Invincible: true
|
||||||
- Status: Manu_Atk
|
- Status: Manu_Atk
|
||||||
Icon: EFST_MANU_ATK
|
Icon: EFST_MANU_ATK
|
||||||
@ -2782,7 +2790,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Strfood: true
|
Strfood: true
|
||||||
- Status: Food_Agi_Cash
|
- Status: Food_Agi_Cash
|
||||||
Icon: EFST_FOOD_AGI_CASH
|
Icon: EFST_FOOD_AGI_CASH
|
||||||
@ -2794,7 +2802,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Agifood: true
|
Agifood: true
|
||||||
- Status: Food_Vit_Cash
|
- Status: Food_Vit_Cash
|
||||||
Icon: EFST_FOOD_VIT_CASH
|
Icon: EFST_FOOD_VIT_CASH
|
||||||
@ -2806,7 +2814,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Vitfood: true
|
Vitfood: true
|
||||||
- Status: Food_Dex_Cash
|
- Status: Food_Dex_Cash
|
||||||
Icon: EFST_FOOD_DEX_CASH
|
Icon: EFST_FOOD_DEX_CASH
|
||||||
@ -2818,7 +2826,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Intfood: true
|
Intfood: true
|
||||||
- Status: Food_Int_Cash
|
- Status: Food_Int_Cash
|
||||||
Icon: EFST_FOOD_INT_CASH
|
Icon: EFST_FOOD_INT_CASH
|
||||||
@ -2830,7 +2838,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Dexfood: true
|
Dexfood: true
|
||||||
- Status: Food_Luk_Cash
|
- Status: Food_Luk_Cash
|
||||||
Icon: EFST_FOOD_LUK_CASH
|
Icon: EFST_FOOD_LUK_CASH
|
||||||
@ -2842,7 +2850,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Lukfood: true
|
Lukfood: true
|
||||||
- Status: Fear
|
- Status: Fear
|
||||||
DurationLookup: RK_WINDCUTTER
|
DurationLookup: RK_WINDCUTTER
|
||||||
@ -2858,7 +2866,7 @@ Body:
|
|||||||
Debuff: true
|
Debuff: true
|
||||||
Fail:
|
Fail:
|
||||||
Inspiration: true
|
Inspiration: true
|
||||||
End:
|
EndOnStart:
|
||||||
Blind: true
|
Blind: true
|
||||||
- Status: Burning
|
- Status: Burning
|
||||||
Icon: EFST_BURNT
|
Icon: EFST_BURNT
|
||||||
@ -2897,7 +2905,7 @@ Body:
|
|||||||
Refresh: true
|
Refresh: true
|
||||||
Inspiration: true
|
Inspiration: true
|
||||||
Warmer: true
|
Warmer: true
|
||||||
End:
|
EndOnStart:
|
||||||
Burning: true
|
Burning: true
|
||||||
- Status: Enchantblade
|
- Status: Enchantblade
|
||||||
Icon: EFST_ENCHANTBLADE
|
Icon: EFST_ENCHANTBLADE
|
||||||
@ -2992,7 +3000,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Fightingspirit: true
|
Fightingspirit: true
|
||||||
- Status: Abundance
|
- Status: Abundance
|
||||||
Icon: EFST_ABUNDANCE
|
Icon: EFST_ABUNDANCE
|
||||||
@ -3011,7 +3019,7 @@ Body:
|
|||||||
Flags:
|
Flags:
|
||||||
BossResist: true
|
BossResist: true
|
||||||
Debuff: true
|
Debuff: true
|
||||||
End:
|
EndOnStart:
|
||||||
Decreaseagi: true
|
Decreaseagi: true
|
||||||
- Status: Epiclesis
|
- Status: Epiclesis
|
||||||
Icon: EFST_EPICLESIS
|
Icon: EFST_EPICLESIS
|
||||||
@ -3086,7 +3094,7 @@ Body:
|
|||||||
SetStand: true
|
SetStand: true
|
||||||
StopWalking: true
|
StopWalking: true
|
||||||
StopAttacking: true
|
StopAttacking: true
|
||||||
End:
|
EndOnStart:
|
||||||
Freezing: true
|
Freezing: true
|
||||||
- Status: Marshofabyss
|
- Status: Marshofabyss
|
||||||
Icon: EFST_MARSHOFABYSS
|
Icon: EFST_MARSHOFABYSS
|
||||||
@ -3105,7 +3113,7 @@ Body:
|
|||||||
MinDuration: 5000
|
MinDuration: 5000
|
||||||
Fail:
|
Fail:
|
||||||
Refresh: true
|
Refresh: true
|
||||||
End:
|
EndOnStart:
|
||||||
Increaseagi: true
|
Increaseagi: true
|
||||||
Windwalk: true
|
Windwalk: true
|
||||||
Aspdpotion0: true
|
Aspdpotion0: true
|
||||||
@ -3452,7 +3460,7 @@ Body:
|
|||||||
Deathhurt: true
|
Deathhurt: true
|
||||||
Pyrexia: true
|
Pyrexia: true
|
||||||
Oblivioncurse: true
|
Oblivioncurse: true
|
||||||
Leechesend: true
|
LeechesEnd: true
|
||||||
- Status: Venombleed
|
- Status: Venombleed
|
||||||
Icon: EFST_VENOMBLEED
|
Icon: EFST_VENOMBLEED
|
||||||
CalcFlags:
|
CalcFlags:
|
||||||
@ -3474,7 +3482,7 @@ Body:
|
|||||||
Deathhurt: true
|
Deathhurt: true
|
||||||
Pyrexia: true
|
Pyrexia: true
|
||||||
Oblivioncurse: true
|
Oblivioncurse: true
|
||||||
Leechesend: true
|
LeechesEnd: true
|
||||||
- Status: Magicmushroom
|
- Status: Magicmushroom
|
||||||
Icon: EFST_MAGICMUSHROOM
|
Icon: EFST_MAGICMUSHROOM
|
||||||
CalcFlags:
|
CalcFlags:
|
||||||
@ -3496,7 +3504,7 @@ Body:
|
|||||||
Deathhurt: true
|
Deathhurt: true
|
||||||
Pyrexia: true
|
Pyrexia: true
|
||||||
Oblivioncurse: true
|
Oblivioncurse: true
|
||||||
Leechesend: true
|
LeechesEnd: true
|
||||||
- Status: Deathhurt
|
- Status: Deathhurt
|
||||||
Icon: EFST_DEATHHURT
|
Icon: EFST_DEATHHURT
|
||||||
CalcFlags:
|
CalcFlags:
|
||||||
@ -3518,7 +3526,7 @@ Body:
|
|||||||
Deathhurt: true
|
Deathhurt: true
|
||||||
Pyrexia: true
|
Pyrexia: true
|
||||||
Oblivioncurse: true
|
Oblivioncurse: true
|
||||||
Leechesend: true
|
LeechesEnd: true
|
||||||
- Status: Pyrexia
|
- Status: Pyrexia
|
||||||
Icon: EFST_PYREXIA
|
Icon: EFST_PYREXIA
|
||||||
CalcFlags:
|
CalcFlags:
|
||||||
@ -3540,7 +3548,7 @@ Body:
|
|||||||
Deathhurt: true
|
Deathhurt: true
|
||||||
Pyrexia: true
|
Pyrexia: true
|
||||||
Oblivioncurse: true
|
Oblivioncurse: true
|
||||||
Leechesend: true
|
LeechesEnd: true
|
||||||
- Status: Oblivioncurse
|
- Status: Oblivioncurse
|
||||||
Icon: EFST_OBLIVIONCURSE
|
Icon: EFST_OBLIVIONCURSE
|
||||||
States:
|
States:
|
||||||
@ -3565,7 +3573,7 @@ Body:
|
|||||||
Deathhurt: true
|
Deathhurt: true
|
||||||
Pyrexia: true
|
Pyrexia: true
|
||||||
Oblivioncurse: true
|
Oblivioncurse: true
|
||||||
Leechesend: true
|
LeechesEnd: true
|
||||||
- Status: Leechesend
|
- Status: Leechesend
|
||||||
Icon: EFST_LEECHESEND
|
Icon: EFST_LEECHESEND
|
||||||
Flags:
|
Flags:
|
||||||
@ -3585,7 +3593,7 @@ Body:
|
|||||||
Deathhurt: true
|
Deathhurt: true
|
||||||
Pyrexia: true
|
Pyrexia: true
|
||||||
Oblivioncurse: true
|
Oblivioncurse: true
|
||||||
Leechesend: true
|
LeechesEnd: true
|
||||||
- Status: Reflectdamage
|
- Status: Reflectdamage
|
||||||
Icon: EFST_LG_REFLECTDAMAGE
|
Icon: EFST_LG_REFLECTDAMAGE
|
||||||
DurationLookup: LG_REFLECTDAMAGE
|
DurationLookup: LG_REFLECTDAMAGE
|
||||||
@ -3593,7 +3601,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
RequireShield: true
|
RequireShield: true
|
||||||
End:
|
EndOnStart:
|
||||||
Reflectshield: true
|
Reflectshield: true
|
||||||
- Status: Forceofvanguard
|
- Status: Forceofvanguard
|
||||||
Icon: EFST_FORCEOFVANGUARD
|
Icon: EFST_FORCEOFVANGUARD
|
||||||
@ -3607,13 +3615,13 @@ Body:
|
|||||||
- Status: Shieldspell_Hp
|
- Status: Shieldspell_Hp
|
||||||
Icon: EFST_SHIELDSPELL_DEF
|
Icon: EFST_SHIELDSPELL_DEF
|
||||||
DurationLookup: LG_SHIELDSPELL
|
DurationLookup: LG_SHIELDSPELL
|
||||||
End:
|
EndOnStart:
|
||||||
Shieldspell_Sp: true
|
Shieldspell_Sp: true
|
||||||
Shieldspell_Atk: true
|
Shieldspell_Atk: true
|
||||||
- Status: Shieldspell_Sp
|
- Status: Shieldspell_Sp
|
||||||
Icon: EFST_SHIELDSPELL_MDEF
|
Icon: EFST_SHIELDSPELL_MDEF
|
||||||
DurationLookup: LG_SHIELDSPELL
|
DurationLookup: LG_SHIELDSPELL
|
||||||
End:
|
EndOnStart:
|
||||||
Shieldspell_Hp: true
|
Shieldspell_Hp: true
|
||||||
Shieldspell_Atk: true
|
Shieldspell_Atk: true
|
||||||
- Status: Shieldspell_Atk
|
- Status: Shieldspell_Atk
|
||||||
@ -3622,7 +3630,7 @@ Body:
|
|||||||
CalcFlags:
|
CalcFlags:
|
||||||
Watk: true
|
Watk: true
|
||||||
Matk: true
|
Matk: true
|
||||||
End:
|
EndOnStart:
|
||||||
Shieldspell_Hp: true
|
Shieldspell_Hp: true
|
||||||
Shieldspell_Sp: true
|
Shieldspell_Sp: true
|
||||||
- Status: Exeedbreak
|
- Status: Exeedbreak
|
||||||
@ -3649,7 +3657,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Prestige: true
|
Prestige: true
|
||||||
- Status: Banding_Defence
|
- Status: Banding_Defence
|
||||||
Icon: EFST_BANDING_DEFENCE
|
Icon: EFST_BANDING_DEFENCE
|
||||||
@ -3723,7 +3731,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Crystalize: true
|
Crystalize: true
|
||||||
Freezing: true
|
Freezing: true
|
||||||
Freeze: true
|
Freeze: true
|
||||||
@ -3760,7 +3768,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Symphonyoflover: true
|
Symphonyoflover: true
|
||||||
Moonlitserenade: true
|
Moonlitserenade: true
|
||||||
Rushwindmill: true
|
Rushwindmill: true
|
||||||
@ -3775,7 +3783,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Swingdance: true
|
Swingdance: true
|
||||||
Moonlitserenade: true
|
Moonlitserenade: true
|
||||||
Rushwindmill: true
|
Rushwindmill: true
|
||||||
@ -3790,7 +3798,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Swingdance: true
|
Swingdance: true
|
||||||
Symphonyoflover: true
|
Symphonyoflover: true
|
||||||
Rushwindmill: true
|
Rushwindmill: true
|
||||||
@ -3806,7 +3814,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Swingdance: true
|
Swingdance: true
|
||||||
Symphonyoflover: true
|
Symphonyoflover: true
|
||||||
Moonlitserenade: true
|
Moonlitserenade: true
|
||||||
@ -3821,7 +3829,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Swingdance: true
|
Swingdance: true
|
||||||
Symphonyoflover: true
|
Symphonyoflover: true
|
||||||
Moonlitserenade: true
|
Moonlitserenade: true
|
||||||
@ -3837,7 +3845,7 @@ Body:
|
|||||||
Int: true
|
Int: true
|
||||||
Dex: true
|
Dex: true
|
||||||
Luk: true
|
Luk: true
|
||||||
End:
|
EndOnStart:
|
||||||
Swingdance: true
|
Swingdance: true
|
||||||
Symphonyoflover: true
|
Symphonyoflover: true
|
||||||
Moonlitserenade: true
|
Moonlitserenade: true
|
||||||
@ -3851,7 +3859,7 @@ Body:
|
|||||||
DisplayPc: true
|
DisplayPc: true
|
||||||
StopAttacking: true
|
StopAttacking: true
|
||||||
MinDuration: 10000
|
MinDuration: 10000
|
||||||
End:
|
EndOnStart:
|
||||||
Deepsleep: true
|
Deepsleep: true
|
||||||
Gloomyday: true
|
Gloomyday: true
|
||||||
Gloomyday_Sk: true
|
Gloomyday_Sk: true
|
||||||
@ -3889,7 +3897,7 @@ Body:
|
|||||||
Fail:
|
Fail:
|
||||||
Refresh: true
|
Refresh: true
|
||||||
Inspiration: true
|
Inspiration: true
|
||||||
End:
|
EndOnStart:
|
||||||
Dancing: true
|
Dancing: true
|
||||||
Voiceofsiren: true
|
Voiceofsiren: true
|
||||||
Gloomyday: true
|
Gloomyday: true
|
||||||
@ -3905,7 +3913,7 @@ Body:
|
|||||||
- Status: Sircleofnature
|
- Status: Sircleofnature
|
||||||
Icon: EFST_SIRCLEOFNATURE
|
Icon: EFST_SIRCLEOFNATURE
|
||||||
DurationLookup: WM_SIRCLEOFNATURE
|
DurationLookup: WM_SIRCLEOFNATURE
|
||||||
End:
|
EndOnStart:
|
||||||
Deepsleep: true
|
Deepsleep: true
|
||||||
Gloomyday: true
|
Gloomyday: true
|
||||||
Gloomyday_Sk: true
|
Gloomyday_Sk: true
|
||||||
@ -3926,7 +3934,7 @@ Body:
|
|||||||
Flee: true
|
Flee: true
|
||||||
Speed: true
|
Speed: true
|
||||||
Aspd: true
|
Aspd: true
|
||||||
End:
|
EndOnStart:
|
||||||
Voiceofsiren: true
|
Voiceofsiren: true
|
||||||
Deepsleep: true
|
Deepsleep: true
|
||||||
Songofmana: true
|
Songofmana: true
|
||||||
@ -3941,7 +3949,7 @@ Body:
|
|||||||
- Status: Songofmana
|
- Status: Songofmana
|
||||||
Icon: EFST_SONG_OF_MANA
|
Icon: EFST_SONG_OF_MANA
|
||||||
DurationLookup: WM_SONG_OF_MANA
|
DurationLookup: WM_SONG_OF_MANA
|
||||||
End:
|
EndOnStart:
|
||||||
Voiceofsiren: true
|
Voiceofsiren: true
|
||||||
Deepsleep: true
|
Deepsleep: true
|
||||||
Gloomyday: true
|
Gloomyday: true
|
||||||
@ -3960,7 +3968,7 @@ Body:
|
|||||||
DurationLookup: WM_DANCE_WITH_WUG
|
DurationLookup: WM_DANCE_WITH_WUG
|
||||||
CalcFlags:
|
CalcFlags:
|
||||||
Aspd: true
|
Aspd: true
|
||||||
End:
|
EndOnStart:
|
||||||
Voiceofsiren: true
|
Voiceofsiren: true
|
||||||
Deepsleep: true
|
Deepsleep: true
|
||||||
Gloomyday: true
|
Gloomyday: true
|
||||||
@ -3990,7 +3998,7 @@ Body:
|
|||||||
Fail:
|
Fail:
|
||||||
Berserk: true
|
Berserk: true
|
||||||
Inspiration: true
|
Inspiration: true
|
||||||
End:
|
EndOnStart:
|
||||||
Voiceofsiren: true
|
Voiceofsiren: true
|
||||||
Deepsleep: true
|
Deepsleep: true
|
||||||
Gloomyday: true
|
Gloomyday: true
|
||||||
@ -4011,7 +4019,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Voiceofsiren: true
|
Voiceofsiren: true
|
||||||
Deepsleep: true
|
Deepsleep: true
|
||||||
Gloomyday: true
|
Gloomyday: true
|
||||||
@ -4033,7 +4041,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Voiceofsiren: true
|
Voiceofsiren: true
|
||||||
Deepsleep: true
|
Deepsleep: true
|
||||||
Gloomyday: true
|
Gloomyday: true
|
||||||
@ -4055,7 +4063,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Voiceofsiren: true
|
Voiceofsiren: true
|
||||||
Deepsleep: true
|
Deepsleep: true
|
||||||
Gloomyday: true
|
Gloomyday: true
|
||||||
@ -4074,7 +4082,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Voiceofsiren: true
|
Voiceofsiren: true
|
||||||
Deepsleep: true
|
Deepsleep: true
|
||||||
Gloomyday: true
|
Gloomyday: true
|
||||||
@ -4178,7 +4186,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Gt_Revitalize: true
|
Gt_Revitalize: true
|
||||||
- Status: Gt_Revitalize
|
- Status: Gt_Revitalize
|
||||||
Icon: EFST_GENTLETOUCH_REVITALIZE
|
Icon: EFST_GENTLETOUCH_REVITALIZE
|
||||||
@ -4190,7 +4198,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Gt_Change: true
|
Gt_Change: true
|
||||||
- Status: Gn_Cartboost
|
- Status: Gn_Cartboost
|
||||||
Icon: EFST_GN_CARTBOOST
|
Icon: EFST_GN_CARTBOOST
|
||||||
@ -5221,7 +5229,7 @@ Body:
|
|||||||
MaxHp: true
|
MaxHp: true
|
||||||
Flags:
|
Flags:
|
||||||
NoSave: true
|
NoSave: true
|
||||||
End:
|
EndOnStart:
|
||||||
Tinder_Breaker2: true
|
Tinder_Breaker2: true
|
||||||
- Status: Goldene_Ferse
|
- Status: Goldene_Ferse
|
||||||
Icon: EFST_GOLDENE_FERSE
|
Icon: EFST_GOLDENE_FERSE
|
||||||
@ -5260,7 +5268,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Overed_Boost: true
|
Overed_Boost: true
|
||||||
- Status: Light_Of_Regene
|
- Status: Light_Of_Regene
|
||||||
Icon: EFST_LIGHT_OF_REGENE
|
Icon: EFST_LIGHT_OF_REGENE
|
||||||
@ -5388,7 +5396,7 @@ Body:
|
|||||||
NoConsumeItem: true
|
NoConsumeItem: true
|
||||||
Flags:
|
Flags:
|
||||||
StopAttacking: true
|
StopAttacking: true
|
||||||
End:
|
EndOnStart:
|
||||||
Poison: true
|
Poison: true
|
||||||
Blind: true
|
Blind: true
|
||||||
Freeze: true
|
Freeze: true
|
||||||
@ -5423,7 +5431,7 @@ Body:
|
|||||||
DisplayPc: true
|
DisplayPc: true
|
||||||
Fail:
|
Fail:
|
||||||
Magnificat: true
|
Magnificat: true
|
||||||
End:
|
EndOnStart:
|
||||||
Magnificat: true
|
Magnificat: true
|
||||||
Blind: true
|
Blind: true
|
||||||
Curse: true
|
Curse: true
|
||||||
@ -5437,7 +5445,7 @@ Body:
|
|||||||
Paralyse: true
|
Paralyse: true
|
||||||
Pyrexia: true
|
Pyrexia: true
|
||||||
Deathhurt: true
|
Deathhurt: true
|
||||||
Leechesend: true
|
LeechesEnd: true
|
||||||
Venombleed: true
|
Venombleed: true
|
||||||
Toxin: true
|
Toxin: true
|
||||||
Magicmushroom: true
|
Magicmushroom: true
|
||||||
@ -5510,7 +5518,7 @@ Body:
|
|||||||
NoClearance: true
|
NoClearance: true
|
||||||
Fail:
|
Fail:
|
||||||
P_Alter: true
|
P_Alter: true
|
||||||
Madnesscancel: true
|
MadnessCancel: true
|
||||||
- Status: P_Alter
|
- Status: P_Alter
|
||||||
Icon: EFST_P_ALTER
|
Icon: EFST_P_ALTER
|
||||||
DurationLookup: RL_P_ALTER
|
DurationLookup: RL_P_ALTER
|
||||||
@ -5521,7 +5529,7 @@ Body:
|
|||||||
NoClearance: true
|
NoClearance: true
|
||||||
Fail:
|
Fail:
|
||||||
Heat_Barrel: true
|
Heat_Barrel: true
|
||||||
Madnesscancel: true
|
MadnessCancel: true
|
||||||
- Status: E_Chain
|
- Status: E_Chain
|
||||||
Icon: EFST_E_CHAIN
|
Icon: EFST_E_CHAIN
|
||||||
DurationLookup: RL_E_CHAIN
|
DurationLookup: RL_E_CHAIN
|
||||||
@ -5793,7 +5801,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Food_Str_Cash: true
|
Food_Str_Cash: true
|
||||||
Food_Agi_Cash: true
|
Food_Agi_Cash: true
|
||||||
Food_Vit_Cash: true
|
Food_Vit_Cash: true
|
||||||
@ -6223,31 +6231,31 @@ Body:
|
|||||||
Icon: EFST_GVG_GOLEM
|
Icon: EFST_GVG_GOLEM
|
||||||
- Status: Gvg_Stun
|
- Status: Gvg_Stun
|
||||||
Icon: EFST_GVG_STUN
|
Icon: EFST_GVG_STUN
|
||||||
End:
|
EndOnStart:
|
||||||
Gvg_Stun: true
|
Gvg_Stun: true
|
||||||
- Status: Gvg_Stone
|
- Status: Gvg_Stone
|
||||||
Icon: EFST_GVG_STONE
|
Icon: EFST_GVG_STONE
|
||||||
End:
|
EndOnStart:
|
||||||
Stone: true
|
Stone: true
|
||||||
- Status: Gvg_Freez
|
- Status: Gvg_Freez
|
||||||
Icon: EFST_GVG_FREEZ
|
Icon: EFST_GVG_FREEZ
|
||||||
End:
|
EndOnStart:
|
||||||
Freeze: true
|
Freeze: true
|
||||||
- Status: Gvg_Sleep
|
- Status: Gvg_Sleep
|
||||||
Icon: EFST_GVG_SLEEP
|
Icon: EFST_GVG_SLEEP
|
||||||
End:
|
EndOnStart:
|
||||||
Sleep: true
|
Sleep: true
|
||||||
- Status: Gvg_Curse
|
- Status: Gvg_Curse
|
||||||
Icon: EFST_GVG_CURSE
|
Icon: EFST_GVG_CURSE
|
||||||
End:
|
EndOnStart:
|
||||||
Curse: true
|
Curse: true
|
||||||
- Status: Gvg_Silence
|
- Status: Gvg_Silence
|
||||||
Icon: EFST_GVG_SILENCE
|
Icon: EFST_GVG_SILENCE
|
||||||
End:
|
EndOnStart:
|
||||||
Silence: true
|
Silence: true
|
||||||
- Status: Gvg_Blind
|
- Status: Gvg_Blind
|
||||||
Icon: EFST_GVG_BLIND
|
Icon: EFST_GVG_BLIND
|
||||||
End:
|
EndOnStart:
|
||||||
Blind: true
|
Blind: true
|
||||||
- Status: Clan_Info
|
- Status: Clan_Info
|
||||||
Icon: EFST_CLAN_INFO
|
Icon: EFST_CLAN_INFO
|
||||||
@ -6272,6 +6280,8 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
|
EndOnEnd:
|
||||||
|
Clan_Info: true
|
||||||
- Status: Arcwandclan
|
- Status: Arcwandclan
|
||||||
Icon: EFST_ARCWANDCLAN
|
Icon: EFST_ARCWANDCLAN
|
||||||
CalcFlags:
|
CalcFlags:
|
||||||
@ -6285,6 +6295,8 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
|
EndOnEnd:
|
||||||
|
Clan_Info: true
|
||||||
- Status: Goldenmaceclan
|
- Status: Goldenmaceclan
|
||||||
Icon: EFST_GOLDENMACECLAN
|
Icon: EFST_GOLDENMACECLAN
|
||||||
CalcFlags:
|
CalcFlags:
|
||||||
@ -6298,6 +6310,8 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
|
EndOnEnd:
|
||||||
|
Clan_Info: true
|
||||||
- Status: Crossbowclan
|
- Status: Crossbowclan
|
||||||
Icon: EFST_CROSSBOWCLAN
|
Icon: EFST_CROSSBOWCLAN
|
||||||
CalcFlags:
|
CalcFlags:
|
||||||
@ -6311,6 +6325,8 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
|
EndOnEnd:
|
||||||
|
Clan_Info: true
|
||||||
- Status: Jumpingclan
|
- Status: Jumpingclan
|
||||||
Icon: EFST_JUMPINGCLAN
|
Icon: EFST_JUMPINGCLAN
|
||||||
CalcFlags:
|
CalcFlags:
|
||||||
@ -6326,6 +6342,8 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
|
EndOnEnd:
|
||||||
|
Clan_Info: true
|
||||||
- Status: Tarotcard
|
- Status: Tarotcard
|
||||||
Icon: EFST_TAROTCARD
|
Icon: EFST_TAROTCARD
|
||||||
DurationLookup: CG_TAROTCARD
|
DurationLookup: CG_TAROTCARD
|
||||||
@ -6426,7 +6444,7 @@ Body:
|
|||||||
Flee: true
|
Flee: true
|
||||||
Flags:
|
Flags:
|
||||||
NoRemoveOnDead: true
|
NoRemoveOnDead: true
|
||||||
End:
|
EndOnStart:
|
||||||
Stun: true
|
Stun: true
|
||||||
Freeze: true
|
Freeze: true
|
||||||
Stone: true
|
Stone: true
|
||||||
@ -6620,19 +6638,19 @@ Body:
|
|||||||
- Status: Lightofmoon
|
- Status: Lightofmoon
|
||||||
Icon: EFST_LIGHTOFMOON
|
Icon: EFST_LIGHTOFMOON
|
||||||
DurationLookup: SJ_LIGHTOFMOON
|
DurationLookup: SJ_LIGHTOFMOON
|
||||||
End:
|
EndOnStart:
|
||||||
Lunarstance: true
|
Lunarstance: true
|
||||||
Universestance: true
|
Universestance: true
|
||||||
- Status: Lightofsun
|
- Status: Lightofsun
|
||||||
Icon: EFST_LIGHTOFSUN
|
Icon: EFST_LIGHTOFSUN
|
||||||
DurationLookup: SJ_LIGHTOFSUN
|
DurationLookup: SJ_LIGHTOFSUN
|
||||||
End:
|
EndOnStart:
|
||||||
Lightofsun: true
|
Lightofsun: true
|
||||||
Universestance: true
|
Universestance: true
|
||||||
- Status: Lightofstar
|
- Status: Lightofstar
|
||||||
Icon: EFST_LIGHTOFSTAR
|
Icon: EFST_LIGHTOFSTAR
|
||||||
DurationLookup: SJ_LIGHTOFSTAR
|
DurationLookup: SJ_LIGHTOFSTAR
|
||||||
End:
|
EndOnStart:
|
||||||
Starstance: true
|
Starstance: true
|
||||||
Universestance: true
|
Universestance: true
|
||||||
- Status: Lunarstance
|
- Status: Lunarstance
|
||||||
@ -6640,7 +6658,7 @@ Body:
|
|||||||
DurationLookup: SJ_LUNARSTANCE
|
DurationLookup: SJ_LUNARSTANCE
|
||||||
CalcFlags:
|
CalcFlags:
|
||||||
MaxHp: true
|
MaxHp: true
|
||||||
End:
|
EndOnStart:
|
||||||
Sunstance: true
|
Sunstance: true
|
||||||
Starstance: true
|
Starstance: true
|
||||||
Universestance: true
|
Universestance: true
|
||||||
@ -6654,7 +6672,7 @@ Body:
|
|||||||
Int: true
|
Int: true
|
||||||
Dex: true
|
Dex: true
|
||||||
Luk: true
|
Luk: true
|
||||||
End:
|
EndOnStart:
|
||||||
Sunstance: true
|
Sunstance: true
|
||||||
Lunarstance: true
|
Lunarstance: true
|
||||||
Starstance: true
|
Starstance: true
|
||||||
@ -6664,7 +6682,7 @@ Body:
|
|||||||
CalcFlags:
|
CalcFlags:
|
||||||
Batk: true
|
Batk: true
|
||||||
Watk: true
|
Watk: true
|
||||||
End:
|
EndOnStart:
|
||||||
Lunarstance: true
|
Lunarstance: true
|
||||||
Starstance: true
|
Starstance: true
|
||||||
Universestance: true
|
Universestance: true
|
||||||
@ -6697,7 +6715,7 @@ Body:
|
|||||||
DurationLookup: SJ_STARSTANCE
|
DurationLookup: SJ_STARSTANCE
|
||||||
CalcFlags:
|
CalcFlags:
|
||||||
Aspd: true
|
Aspd: true
|
||||||
End:
|
EndOnStart:
|
||||||
Sunstance: true
|
Sunstance: true
|
||||||
Lunarstance: true
|
Lunarstance: true
|
||||||
Universestance: true
|
Universestance: true
|
||||||
@ -6766,7 +6784,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Spirit: true
|
Spirit: true
|
||||||
Soulgolem: true
|
Soulgolem: true
|
||||||
Soulfalcon: true
|
Soulfalcon: true
|
||||||
@ -6781,7 +6799,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Spirit: true
|
Spirit: true
|
||||||
Soulgolem: true
|
Soulgolem: true
|
||||||
Soulshadow: true
|
Soulshadow: true
|
||||||
@ -6797,7 +6815,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Spirit: true
|
Spirit: true
|
||||||
Soulgolem: true
|
Soulgolem: true
|
||||||
Soulshadow: true
|
Soulshadow: true
|
||||||
@ -6813,7 +6831,7 @@ Body:
|
|||||||
NoDispell: true
|
NoDispell: true
|
||||||
NoBanishingBuster: true
|
NoBanishingBuster: true
|
||||||
NoClearance: true
|
NoClearance: true
|
||||||
End:
|
EndOnStart:
|
||||||
Spirit: true
|
Spirit: true
|
||||||
Soulshadow: true
|
Soulshadow: true
|
||||||
Soulfalcon: true
|
Soulfalcon: true
|
||||||
|
317
db/re/status.yml
317
db/re/status.yml
File diff suppressed because it is too large
Load Diff
@ -35,13 +35,14 @@
|
|||||||
# MinRate Minimum rate after status change reduction (10000 = 100%). (Default: 0)
|
# MinRate Minimum rate after status change reduction (10000 = 100%). (Default: 0)
|
||||||
# MinDuration Minimum duration in milliseconds after status change reduction. (Default: 1)
|
# MinDuration Minimum duration in milliseconds after status change reduction. (Default: 1)
|
||||||
# Fail: List of Status Changes that causes the status to fail to activate. (Optional)
|
# Fail: List of Status Changes that causes the status to fail to activate. (Optional)
|
||||||
# End: List of Status Changes that will end when the status activates. (Optional)
|
# EndOnStart: List of Status Changes that will end when the status activates. (Optional)
|
||||||
# EndReturn: List of Status Changes that will end when the status activates and won't give its effect. (Optional)
|
# EndReturn: List of Status Changes that will end when the status activates and won't give its effect. (Optional)
|
||||||
|
# EndOnEnd: List of Status Changes that will end when the status becomes inactive. (Optional)
|
||||||
###########################################################################
|
###########################################################################
|
||||||
|
|
||||||
Header:
|
Header:
|
||||||
Type: STATUS_DB
|
Type: STATUS_DB
|
||||||
Version: 2
|
Version: 3
|
||||||
|
|
||||||
Footer:
|
Footer:
|
||||||
Imports:
|
Imports:
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
//===== By: ==================================================
|
//===== By: ==================================================
|
||||||
//= rAthena Dev Team
|
//= rAthena Dev Team
|
||||||
//===== Last Updated: ========================================
|
//===== Last Updated: ========================================
|
||||||
//= 20220421
|
//= 20221013
|
||||||
//===== Description: =========================================
|
//===== Description: =========================================
|
||||||
//= Explanation of the status.yml file and structure.
|
//= Explanation of the status.yml file and structure.
|
||||||
//============================================================
|
//============================================================
|
||||||
@ -266,7 +266,7 @@ Fail: List of status that causes the status to fail to activate.
|
|||||||
|
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
End: List of status that will end if the status activates.
|
EndOnStart: List of status that will end if the status activates.
|
||||||
|
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
@ -276,6 +276,10 @@ EndReturn: List of status that will end if the status activates and it won't giv
|
|||||||
|
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
|
EndOnEnd: List of status that will end when the status becomes inactive.
|
||||||
|
|
||||||
|
---------------------------------------
|
||||||
|
|
||||||
Notes:
|
Notes:
|
||||||
|
|
||||||
By default, statuses are 'Buff' (those that aren't explicitely given the 'Debuff' flag) which are removable by 'map_quit' in combination with 'battle_config.debuff_on_logout'.
|
By default, statuses are 'Buff' (those that aren't explicitely given the 'Debuff' flag) which are removable by 'map_quit' in combination with 'battle_config.debuff_on_logout'.
|
||||||
|
@ -988,14 +988,14 @@ std::bitset<SCB_MAX> StatusDatabase::getCalcFlag(sc_type type) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get SC's END list
|
* Get SC's EndOnStart list
|
||||||
* @param sc: SC type
|
* @param sc: SC type
|
||||||
* @return End list
|
* @return End list
|
||||||
**/
|
**/
|
||||||
std::vector<sc_type> StatusDatabase::getEnd(sc_type type) {
|
std::vector<sc_type> StatusDatabase::getEndOnStart(sc_type type) {
|
||||||
std::shared_ptr<s_status_change_db> status = status_db.find(type);
|
std::shared_ptr<s_status_change_db> status = status_db.find(type);
|
||||||
|
|
||||||
return status ? status->end : std::vector<sc_type> {};
|
return status ? status->endonstart : std::vector<sc_type> {};
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -10240,9 +10240,9 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
|||||||
std::vector<sc_type> endlist;
|
std::vector<sc_type> endlist;
|
||||||
|
|
||||||
if (type == SC_BERSERK && val3 == SC__BLOODYLUST) //There is some reasons that using SC_BERSERK first before SC__BLOODYLUST itself on Akinari's fix
|
if (type == SC_BERSERK && val3 == SC__BLOODYLUST) //There is some reasons that using SC_BERSERK first before SC__BLOODYLUST itself on Akinari's fix
|
||||||
endlist = status_db.getEnd(SC__BLOODYLUST);
|
endlist = status_db.getEndOnStart(SC__BLOODYLUST);
|
||||||
else
|
else
|
||||||
endlist = scdb->end;
|
endlist = scdb->endonstart;
|
||||||
|
|
||||||
// End the SCs from the list
|
// End the SCs from the list
|
||||||
if (!endlist.empty()) {
|
if (!endlist.empty()) {
|
||||||
@ -12513,7 +12513,7 @@ int status_change_start(struct block_list* src, struct block_list* bl,enum sc_ty
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
if (calc_flag.none() && scdb->skill_id == 0 && scdb->icon == EFST_BLANK && scdb->opt1 == OPT1_NONE && scdb->opt2 == OPT2_NONE && scdb->state.none() && scdb->flag.none() && scdb->end.empty() && scdb->endreturn.empty() && scdb->fail.empty()) {
|
if (calc_flag.none() && scdb->skill_id == 0 && scdb->icon == EFST_BLANK && scdb->opt1 == OPT1_NONE && scdb->opt2 == OPT2_NONE && scdb->state.none() && scdb->flag.none() && scdb->endonstart.empty() && scdb->endreturn.empty() && scdb->fail.empty() && scdb->endonend.empty()) {
|
||||||
// Status change with no calc, no icon, and no skill associated...?
|
// Status change with no calc, no icon, and no skill associated...?
|
||||||
ShowWarning("status_change_start: Status %s (%d) is bare. Add the NoWarning flag to suppress this message.\n", script_get_constant_str("SC_", type), type);
|
ShowWarning("status_change_start: Status %s (%d) is bare. Add the NoWarning flag to suppress this message.\n", script_get_constant_str("SC_", type), type);
|
||||||
return 0;
|
return 0;
|
||||||
@ -13072,11 +13072,6 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid)
|
|||||||
((TBL_MER*)d_bl)->devotion_flag = 0;
|
((TBL_MER*)d_bl)->devotion_flag = 0;
|
||||||
clif_devotion(d_bl, NULL);
|
clif_devotion(d_bl, NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
status_change_end(bl, SC_AUTOGUARD);
|
|
||||||
status_change_end(bl, SC_DEFENDER);
|
|
||||||
status_change_end(bl, SC_REFLECTSHIELD);
|
|
||||||
status_change_end(bl, SC_ENDURE);
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -13138,12 +13133,6 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid)
|
|||||||
|
|
||||||
if((sce->val1&0xFFFF) == CG_MOONLIT)
|
if((sce->val1&0xFFFF) == CG_MOONLIT)
|
||||||
clif_status_change(bl,EFST_MOON,0,0,0,0,0);
|
clif_status_change(bl,EFST_MOON,0,0,0,0,0);
|
||||||
|
|
||||||
#ifdef RENEWAL
|
|
||||||
status_change_end(bl, SC_ENSEMBLEFATIGUE);
|
|
||||||
#else
|
|
||||||
status_change_end(bl, SC_LONGING);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SC_NOCHAT:
|
case SC_NOCHAT:
|
||||||
@ -13371,9 +13360,6 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SC_TEARGAS:
|
|
||||||
status_change_end(bl,SC_TEARGAS_SOB);
|
|
||||||
break;
|
|
||||||
case SC_SITDOWN_FORCE:
|
case SC_SITDOWN_FORCE:
|
||||||
case SC_BANANA_BOMB_SITDOWN:
|
case SC_BANANA_BOMB_SITDOWN:
|
||||||
if( sd && pc_issit(sd) && pc_setstand(sd, false) )
|
if( sd && pc_issit(sd) && pc_setstand(sd, false) )
|
||||||
@ -13387,25 +13373,6 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid)
|
|||||||
calc_flag = status_db.getSCB_ALL(); // Required for overlapping
|
calc_flag = status_db.getSCB_ALL(); // Required for overlapping
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SC_SUNSTANCE:
|
|
||||||
status_change_end(bl, SC_LIGHTOFSUN);
|
|
||||||
break;
|
|
||||||
case SC_LUNARSTANCE:
|
|
||||||
status_change_end(bl, SC_NEWMOON);
|
|
||||||
status_change_end(bl, SC_LIGHTOFMOON);
|
|
||||||
break;
|
|
||||||
case SC_STARSTANCE:
|
|
||||||
status_change_end(bl, SC_FALLINGSTAR);
|
|
||||||
status_change_end(bl, SC_LIGHTOFSTAR);
|
|
||||||
break;
|
|
||||||
case SC_UNIVERSESTANCE:
|
|
||||||
status_change_end(bl, SC_LIGHTOFSUN);
|
|
||||||
status_change_end(bl, SC_NEWMOON);
|
|
||||||
status_change_end(bl, SC_LIGHTOFMOON);
|
|
||||||
status_change_end(bl, SC_FALLINGSTAR);
|
|
||||||
status_change_end(bl, SC_LIGHTOFSTAR);
|
|
||||||
status_change_end(bl, SC_DIMENSION);
|
|
||||||
break;
|
|
||||||
case SC_GRAVITYCONTROL:
|
case SC_GRAVITYCONTROL:
|
||||||
status_fix_damage(bl, bl, sce->val2, clif_damage(bl, bl, gettick(), 0, 0, sce->val2, 0, DMG_NORMAL, 0, false), 0);
|
status_fix_damage(bl, bl, sce->val2, clif_damage(bl, bl, gettick(), 0, 0, sce->val2, 0, DMG_NORMAL, 0, false), 0);
|
||||||
clif_specialeffect(bl, 223, AREA);
|
clif_specialeffect(bl, 223, AREA);
|
||||||
@ -13479,13 +13446,6 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid)
|
|||||||
///< !CHECKME: Seems on official, there's delay before same target can be vacuumed in same area again [Cydh]
|
///< !CHECKME: Seems on official, there's delay before same target can be vacuumed in same area again [Cydh]
|
||||||
sc_start2(bl, bl, SC_VACUUM_EXTREME_POSTDELAY, 100, sce->val1, sce->val2, skill_get_time2(SO_VACUUM_EXTREME,sce->val1));
|
sc_start2(bl, bl, SC_VACUUM_EXTREME_POSTDELAY, 100, sce->val1, sce->val2, skill_get_time2(SO_VACUUM_EXTREME,sce->val1));
|
||||||
break;
|
break;
|
||||||
case SC_SWORDCLAN:
|
|
||||||
case SC_ARCWANDCLAN:
|
|
||||||
case SC_GOLDENMACECLAN:
|
|
||||||
case SC_CROSSBOWCLAN:
|
|
||||||
case SC_JUMPINGCLAN:
|
|
||||||
status_change_end(bl,SC_CLAN_INFO);
|
|
||||||
break;
|
|
||||||
case SC_DIMENSION1:
|
case SC_DIMENSION1:
|
||||||
case SC_DIMENSION2:
|
case SC_DIMENSION2:
|
||||||
if (sd)
|
if (sd)
|
||||||
@ -13523,9 +13483,6 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid)
|
|||||||
pc_delservantball( *sd, sd->servantball );
|
pc_delservantball( *sd, sd->servantball );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case SC_CHARGINGPIERCE:
|
|
||||||
status_change_end(bl, SC_CHARGINGPIERCE_COUNT);
|
|
||||||
break;
|
|
||||||
case SC_ABYSSFORCEWEAPON:
|
case SC_ABYSSFORCEWEAPON:
|
||||||
if( sd ){
|
if( sd ){
|
||||||
pc_delabyssball( *sd, sd->abyssball );
|
pc_delabyssball( *sd, sd->abyssball );
|
||||||
@ -13533,6 +13490,13 @@ int status_change_end(struct block_list* bl, enum sc_type type, int tid)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// End statuses found in the EndOnEnd list.
|
||||||
|
if (!scdb->endonend.empty()) {
|
||||||
|
for (const auto &it : scdb->endonend) {
|
||||||
|
status_change_end(bl, it);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Reset the options as needed
|
// Reset the options as needed
|
||||||
std::bitset<SCF_MAX> opt_flag = scdb->flag;
|
std::bitset<SCF_MAX> opt_flag = scdb->flag;
|
||||||
bool disable_opt_flag = false;
|
bool disable_opt_flag = false;
|
||||||
@ -15651,8 +15615,8 @@ uint64 StatusDatabase::parseBodyNode(const ryml::NodeRef& node) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this->nodeExists(node, "End")) {
|
if (this->nodeExists(node, "EndOnStart")) {
|
||||||
const ryml::NodeRef& endNode = node["End"];
|
const ryml::NodeRef& endNode = node["EndOnStart"];
|
||||||
|
|
||||||
for (const auto &it : endNode) {
|
for (const auto &it : endNode) {
|
||||||
std::string end;
|
std::string end;
|
||||||
@ -15662,12 +15626,12 @@ uint64 StatusDatabase::parseBodyNode(const ryml::NodeRef& node) {
|
|||||||
int64 constant;
|
int64 constant;
|
||||||
|
|
||||||
if (!script_get_constant(end_constant.c_str(), &constant)) {
|
if (!script_get_constant(end_constant.c_str(), &constant)) {
|
||||||
this->invalidWarning(endNode, "End status %s is invalid.\n", end.c_str());
|
this->invalidWarning(endNode, "EndOnStart status %s is invalid.\n", end.c_str());
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this->validateStatus(static_cast<sc_type>(constant))) {
|
if (!this->validateStatus(static_cast<sc_type>(constant))) {
|
||||||
this->invalidWarning(endNode, "End status %s is out of bounds.\n", end.c_str());
|
this->invalidWarning(endNode, "EndOnStart status %s is out of bounds.\n", end.c_str());
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -15677,9 +15641,9 @@ uint64 StatusDatabase::parseBodyNode(const ryml::NodeRef& node) {
|
|||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
if (active)
|
if (active)
|
||||||
status->end.push_back(static_cast<sc_type>(constant));
|
status->endonstart.push_back(static_cast<sc_type>(constant));
|
||||||
else
|
else
|
||||||
util::vector_erase_if_exists(status->end, static_cast<sc_type>(constant));
|
util::vector_erase_if_exists(status->endonstart, static_cast<sc_type>(constant));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -15715,6 +15679,38 @@ uint64 StatusDatabase::parseBodyNode(const ryml::NodeRef& node) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this->nodeExists(node, "EndOnEnd")) {
|
||||||
|
const ryml::NodeRef &endNode = node["EndOnEnd"];
|
||||||
|
|
||||||
|
for (const auto &it : endNode) {
|
||||||
|
std::string end;
|
||||||
|
c4::from_chars(it.key(), &end);
|
||||||
|
|
||||||
|
std::string end_constant = "SC_" + end;
|
||||||
|
int64 constant;
|
||||||
|
|
||||||
|
if (!script_get_constant(end_constant.c_str(), &constant)) {
|
||||||
|
this->invalidWarning(endNode, "EndOnEnd status %s is invalid.\n", end.c_str());
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!this->validateStatus(static_cast<sc_type>(constant))) {
|
||||||
|
this->invalidWarning(endNode, "EndOnEnd status %s is out of bounds.\n", end.c_str());
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool active;
|
||||||
|
|
||||||
|
if (!this->asBool(endNode, end, active))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if (active)
|
||||||
|
status->endonend.push_back(static_cast<sc_type>(constant));
|
||||||
|
else
|
||||||
|
util::vector_erase_if_exists(status->endonend, static_cast<sc_type>(constant));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!exists) {
|
if (!exists) {
|
||||||
this->put(status_id, status);
|
this->put(status_id, status);
|
||||||
}
|
}
|
||||||
|
@ -2940,27 +2940,28 @@ enum e_status_change_flag : uint16 {
|
|||||||
|
|
||||||
/// Struct of SC configs [Cydh]
|
/// Struct of SC configs [Cydh]
|
||||||
struct s_status_change_db {
|
struct s_status_change_db {
|
||||||
sc_type type; ///< SC_
|
sc_type type; ///< SC_
|
||||||
efst_type icon; ///< EFST_
|
efst_type icon; ///< EFST_
|
||||||
std::bitset<SCS_MAX> state; ///< SCS_
|
std::bitset<SCS_MAX> state; ///< SCS_
|
||||||
std::bitset<SCB_MAX> calc_flag; ///< SCB_ flags
|
std::bitset<SCB_MAX> calc_flag; ///< SCB_ flags
|
||||||
uint16 opt1; ///< OPT1_
|
uint16 opt1; ///< OPT1_
|
||||||
uint16 opt2; ///< OPT2_
|
uint16 opt2; ///< OPT2_
|
||||||
uint32 opt3; ///< OPT3_
|
uint32 opt3; ///< OPT3_
|
||||||
uint32 look; ///< OPTION_ Changelook
|
uint32 look; ///< OPTION_ Changelook
|
||||||
std::bitset<SCF_MAX> flag; ///< SCF_ Flags, enum e_status_change_flag
|
std::bitset<SCF_MAX> flag; ///< SCF_ Flags, enum e_status_change_flag
|
||||||
bool display; ///< Display status effect/icon (for certain state)
|
bool display; ///< Display status effect/icon (for certain state)
|
||||||
uint16 skill_id; ///< Associated skill for (addeff) duration lookups
|
uint16 skill_id; ///< Associated skill for (addeff) duration lookups
|
||||||
std::vector<sc_type> end; ///< List of SC that will be ended when this SC is activated
|
std::vector<sc_type> endonstart; ///< List of SC that will be ended when this SC is activated
|
||||||
std::vector<sc_type> fail; ///< List of SC that causing this SC cannot be activated
|
std::vector<sc_type> fail; ///< List of SC that causing this SC cannot be activated
|
||||||
std::vector<sc_type> endreturn; ///< List of SC that will be ended when this SC is activated and then immediately return
|
std::vector<sc_type> endreturn; ///< List of SC that will be ended when this SC is activated and then immediately return
|
||||||
t_tick min_duration; ///< Minimum duration effect (after all status reduction)
|
std::vector<sc_type> endonend; ///< List of SC that will be ended when this SC ends
|
||||||
uint16 min_rate; ///< Minimum rate to be applied (after all status reduction)
|
t_tick min_duration; ///< Minimum duration effect (after all status reduction)
|
||||||
|
uint16 min_rate; ///< Minimum rate to be applied (after all status reduction)
|
||||||
};
|
};
|
||||||
|
|
||||||
class StatusDatabase : public TypesafeCachedYamlDatabase<uint16, s_status_change_db> {
|
class StatusDatabase : public TypesafeCachedYamlDatabase<uint16, s_status_change_db> {
|
||||||
public:
|
public:
|
||||||
StatusDatabase() : TypesafeCachedYamlDatabase("STATUS_DB", 2) {
|
StatusDatabase() : TypesafeCachedYamlDatabase("STATUS_DB", 3) {
|
||||||
// All except BASE and extra flags.
|
// All except BASE and extra flags.
|
||||||
SCB_BATTLE.set();
|
SCB_BATTLE.set();
|
||||||
SCB_BATTLE.reset(SCB_BASE);
|
SCB_BATTLE.reset(SCB_BASE);
|
||||||
@ -2980,7 +2981,7 @@ public:
|
|||||||
// Extras
|
// Extras
|
||||||
efst_type getIcon(sc_type type);
|
efst_type getIcon(sc_type type);
|
||||||
std::bitset<SCB_MAX> getCalcFlag(sc_type type);
|
std::bitset<SCB_MAX> getCalcFlag(sc_type type);
|
||||||
std::vector<sc_type> getEnd(sc_type type);
|
std::vector<sc_type> getEndOnStart(sc_type type);
|
||||||
uint16 getSkill(sc_type type);
|
uint16 getSkill(sc_type type);
|
||||||
bool hasSCF(status_change *sc, e_status_change_flag flag);
|
bool hasSCF(status_change *sc, e_status_change_flag flag);
|
||||||
void removeByStatusFlag(block_list *bl, std::vector<e_status_change_flag> flag);
|
void removeByStatusFlag(block_list *bl, std::vector<e_status_change_flag> flag);
|
||||||
|
@ -6,6 +6,7 @@
|
|||||||
static bool upgrade_achievement_db(std::string file, const uint32 source_version);
|
static bool upgrade_achievement_db(std::string file, const uint32 source_version);
|
||||||
static bool upgrade_item_db(std::string file, const uint32 source_version);
|
static bool upgrade_item_db(std::string file, const uint32 source_version);
|
||||||
static bool upgrade_job_stats(std::string file, const uint32 source_version);
|
static bool upgrade_job_stats(std::string file, const uint32 source_version);
|
||||||
|
static bool upgrade_status_db(std::string file, const uint32 source_version);
|
||||||
|
|
||||||
template<typename Func>
|
template<typename Func>
|
||||||
bool process(const std::string &type, uint32 version, const std::vector<std::string> &paths, const std::string &name, Func lambda) {
|
bool process(const std::string &type, uint32 version, const std::vector<std::string> &paths, const std::string &name, Func lambda) {
|
||||||
@ -121,6 +122,12 @@ int do_init(int argc, char** argv) {
|
|||||||
})) {
|
})) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!process("STATUS_DB", 3, root_paths, "status", [](const std::string& path, const std::string& name_ext, uint32 source_version) -> bool {
|
||||||
|
return upgrade_status_db(path + name_ext, source_version);
|
||||||
|
})) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -293,3 +300,25 @@ static bool upgrade_job_stats(std::string file, const uint32 source_version) {
|
|||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static bool upgrade_status_db(std::string file, const uint32 source_version) {
|
||||||
|
size_t entries = 0;
|
||||||
|
|
||||||
|
for (auto input : inNode["Body"]) {
|
||||||
|
// If under version 3
|
||||||
|
if (source_version < 3) {
|
||||||
|
// Rename End to EndOnStart
|
||||||
|
if (input["End"].IsDefined()) {
|
||||||
|
input["EndOnStart"] = input["End"];
|
||||||
|
input.remove("End");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
body << input;
|
||||||
|
entries++;
|
||||||
|
}
|
||||||
|
|
||||||
|
ShowStatus("Done converting/upgrading '" CL_WHITE "%zu" CL_RESET "' statuses in '" CL_WHITE "%s" CL_RESET "'.\n", entries, file.c_str());
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user