Added a new flag SCF_NOFORCEDEND (#6679)

The old hardcoded lists were not in sync and this was a specific list of status changes that could not even be forcibly ended with sc_end. Therefore a new flag is needed. Additionally improved error reporting.

Fixes #6666

Thanks to @eppc0330
This commit is contained in:
Lemongrass3110 2022-03-14 20:52:31 +01:00 committed by GitHub
parent 0663e7b43d
commit 11f3d4b100
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 90 additions and 2 deletions

View File

@ -583,6 +583,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Weight90 - Status: Weight90
Icon: EFST_WEIGHTOVER90 Icon: EFST_WEIGHTOVER90
Flags: Flags:
@ -593,6 +594,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Aspdpotion0 - Status: Aspdpotion0
Icon: EFST_ATTHASTE_POTION1 Icon: EFST_ATTHASTE_POTION1
CalcFlags: CalcFlags:
@ -1003,6 +1005,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
OverlapFail: true OverlapFail: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Protectexp - Status: Protectexp
Icon: EFST_PROTECTEXP Icon: EFST_PROTECTEXP
DurationLookup: WE_BABY DurationLookup: WE_BABY
@ -2815,6 +2818,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Giantgrowth - Status: Giantgrowth
Icon: EFST_GIANTGROWTH Icon: EFST_GIANTGROWTH
DurationLookup: RK_GIANTGROWTH DurationLookup: RK_GIANTGROWTH
@ -4952,6 +4956,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapIgnoreLevel: true OverlapIgnoreLevel: true
NoForcedEnd: true
- Status: Spellbook1 - Status: Spellbook1
Icon: EFST_SPELLBOOK1 Icon: EFST_SPELLBOOK1
Flags: Flags:
@ -5080,6 +5085,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Tinder_Breaker - Status: Tinder_Breaker
Icon: EFST_TINDER_BREAKER_POSTDELAY Icon: EFST_TINDER_BREAKER_POSTDELAY
DurationLookup: MH_TINDER_BREAKER DurationLookup: MH_TINDER_BREAKER
@ -5355,6 +5361,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Angel_Protect - Status: Angel_Protect
Icon: EFST_ANGEL_PROTECT Icon: EFST_ANGEL_PROTECT
Flags: Flags:
@ -5484,6 +5491,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Mtf_Rangeatk - Status: Mtf_Rangeatk
Icon: EFST_MTF_RANGEATK Icon: EFST_MTF_RANGEATK
CalcFlags: CalcFlags:
@ -5495,6 +5503,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Mtf_Matk - Status: Mtf_Matk
Icon: EFST_MTF_MATK Icon: EFST_MTF_MATK
CalcFlags: CalcFlags:
@ -5505,6 +5514,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Mtf_Mleatked - Status: Mtf_Mleatked
Icon: EFST_MTF_MLEATKED Icon: EFST_MTF_MLEATKED
CalcFlags: CalcFlags:
@ -5515,6 +5525,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Mtf_Cridamage - Status: Mtf_Cridamage
Icon: EFST_MTF_CRIDAMAGE Icon: EFST_MTF_CRIDAMAGE
CalcFlags: CalcFlags:
@ -5525,6 +5536,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Oktoberfest - Status: Oktoberfest
States: States:
NoAttack: true NoAttack: true
@ -5605,6 +5617,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
End: End:
All_Riding: true All_Riding: true
EndReturn: true EndReturn: true
@ -5647,6 +5660,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Mtf_Rangeatk2 - Status: Mtf_Rangeatk2
Icon: EFST_MTF_RANGEATK2 Icon: EFST_MTF_RANGEATK2
CalcFlags: CalcFlags:
@ -5657,6 +5671,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Mtf_Matk2 - Status: Mtf_Matk2
Icon: EFST_MTF_MATK2 Icon: EFST_MTF_MATK2
CalcFlags: CalcFlags:
@ -5667,6 +5682,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: 2011rwc_Scroll - Status: 2011rwc_Scroll
Icon: EFST_2011RWC_SCROLL Icon: EFST_2011RWC_SCROLL
CalcFlags: CalcFlags:
@ -5709,6 +5725,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Mtf_Msp - Status: Mtf_Msp
Icon: EFST_MTF_MSP Icon: EFST_MTF_MSP
CalcFlags: CalcFlags:
@ -5719,6 +5736,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Mtf_Pumpkin - Status: Mtf_Pumpkin
Icon: EFST_MTF_PUMPKIN Icon: EFST_MTF_PUMPKIN
Flags: Flags:
@ -5727,6 +5745,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Mtf_Hitflee - Status: Mtf_Hitflee
Icon: EFST_MTF_HITFLEE Icon: EFST_MTF_HITFLEE
CalcFlags: CalcFlags:
@ -5739,6 +5758,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Vacuum_Extreme_Postdelay - Status: Vacuum_Extreme_Postdelay
DurationLookup: SO_VACUUM_EXTREME DurationLookup: SO_VACUUM_EXTREME
Flags: Flags:
@ -5766,6 +5786,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapIgnoreLevel: true OverlapIgnoreLevel: true
NoForcedEnd: true
- Status: Reuse_Limit_A - Status: Reuse_Limit_A
Icon: EFST_REUSE_LIMIT_A Icon: EFST_REUSE_LIMIT_A
Flags: Flags:
@ -5775,6 +5796,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_B - Status: Reuse_Limit_B
Icon: EFST_REUSE_LIMIT_B Icon: EFST_REUSE_LIMIT_B
Flags: Flags:
@ -5784,6 +5806,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_C - Status: Reuse_Limit_C
Icon: EFST_REUSE_LIMIT_C Icon: EFST_REUSE_LIMIT_C
Flags: Flags:
@ -5793,6 +5816,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_D - Status: Reuse_Limit_D
Icon: EFST_REUSE_LIMIT_D Icon: EFST_REUSE_LIMIT_D
Flags: Flags:
@ -5802,6 +5826,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_E - Status: Reuse_Limit_E
Icon: EFST_REUSE_LIMIT_E Icon: EFST_REUSE_LIMIT_E
Flags: Flags:
@ -5811,6 +5836,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_F - Status: Reuse_Limit_F
Icon: EFST_REUSE_LIMIT_F Icon: EFST_REUSE_LIMIT_F
Flags: Flags:
@ -5820,6 +5846,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_G - Status: Reuse_Limit_G
Icon: EFST_REUSE_LIMIT_G Icon: EFST_REUSE_LIMIT_G
Flags: Flags:
@ -5829,6 +5856,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_H - Status: Reuse_Limit_H
Icon: EFST_REUSE_LIMIT_H Icon: EFST_REUSE_LIMIT_H
Flags: Flags:
@ -5838,6 +5866,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_Mtf - Status: Reuse_Limit_Mtf
Icon: EFST_REUSE_LIMIT_MTF Icon: EFST_REUSE_LIMIT_MTF
Flags: Flags:
@ -5847,6 +5876,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_Aspd_Potion - Status: Reuse_Limit_Aspd_Potion
Icon: EFST_REUSE_LIMIT_ASPD_POTION Icon: EFST_REUSE_LIMIT_ASPD_POTION
Flags: Flags:
@ -5856,6 +5886,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Millenniumshield - Status: Reuse_Millenniumshield
Icon: EFST_REUSE_MILLENNIUMSHIELD Icon: EFST_REUSE_MILLENNIUMSHIELD
Flags: Flags:
@ -5865,6 +5896,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Crushstrike - Status: Reuse_Crushstrike
Icon: EFST_REUSE_CRUSHSTRIKE Icon: EFST_REUSE_CRUSHSTRIKE
Flags: Flags:
@ -5874,6 +5906,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Stormblast - Status: Reuse_Stormblast
Icon: EFST_REUSE_STORMBLAST Icon: EFST_REUSE_STORMBLAST
Flags: Flags:
@ -5883,6 +5916,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: All_Riding_Reuse_Limit - Status: All_Riding_Reuse_Limit
Icon: EFST_ALL_RIDING_REUSE_LIMIT Icon: EFST_ALL_RIDING_REUSE_LIMIT
Flags: Flags:
@ -5892,6 +5926,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_Ecl - Status: Reuse_Limit_Ecl
Icon: EFST_REUSE_LIMIT_ECL Icon: EFST_REUSE_LIMIT_ECL
Flags: Flags:
@ -5901,6 +5936,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_Recall - Status: Reuse_Limit_Recall
Icon: EFST_REUSE_LIMIT_RECALL Icon: EFST_REUSE_LIMIT_RECALL
Flags: Flags:
@ -5910,6 +5946,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Promote_Health_Reserch - Status: Promote_Health_Reserch
Icon: EFST_PROMOTE_HEALTH_RESERCH Icon: EFST_PROMOTE_HEALTH_RESERCH
CalcFlags: CalcFlags:
@ -6004,6 +6041,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Ljosalfar - Status: Ljosalfar
Icon: EFST_LJOSALFAR Icon: EFST_LJOSALFAR
Flags: Flags:

View File

@ -596,6 +596,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Weight90 - Status: Weight90
Icon: EFST_WEIGHTOVER90 Icon: EFST_WEIGHTOVER90
Flags: Flags:
@ -606,6 +607,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Aspdpotion0 - Status: Aspdpotion0
Icon: EFST_ATTHASTE_POTION1 Icon: EFST_ATTHASTE_POTION1
CalcFlags: CalcFlags:
@ -1017,6 +1019,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
OverlapFail: true OverlapFail: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Protectexp - Status: Protectexp
Icon: EFST_PROTECTEXP Icon: EFST_PROTECTEXP
DurationLookup: WE_BABY DurationLookup: WE_BABY
@ -2923,6 +2926,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Giantgrowth - Status: Giantgrowth
Icon: EFST_GIANTGROWTH Icon: EFST_GIANTGROWTH
DurationLookup: RK_GIANTGROWTH DurationLookup: RK_GIANTGROWTH
@ -5190,6 +5194,7 @@ Body:
NoClearance: true NoClearance: true
SendVal1: true SendVal1: true
OverlapIgnoreLevel: true OverlapIgnoreLevel: true
NoForcedEnd: true
- Status: Spellbook1 - Status: Spellbook1
Icon: EFST_SPELLBOOK1 Icon: EFST_SPELLBOOK1
Flags: Flags:
@ -5318,6 +5323,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Tinder_Breaker - Status: Tinder_Breaker
Icon: EFST_TINDER_BREAKER_POSTDELAY Icon: EFST_TINDER_BREAKER_POSTDELAY
DurationLookup: MH_TINDER_BREAKER DurationLookup: MH_TINDER_BREAKER
@ -5584,6 +5590,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
SendVal1: true SendVal1: true
NoForcedEnd: true
- Status: Angel_Protect - Status: Angel_Protect
Icon: EFST_ANGEL_PROTECT Icon: EFST_ANGEL_PROTECT
Flags: Flags:
@ -5716,6 +5723,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Mtf_Rangeatk - Status: Mtf_Rangeatk
Icon: EFST_MTF_RANGEATK Icon: EFST_MTF_RANGEATK
CalcFlags: CalcFlags:
@ -5727,6 +5735,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Mtf_Matk - Status: Mtf_Matk
Icon: EFST_MTF_MATK Icon: EFST_MTF_MATK
CalcFlags: CalcFlags:
@ -5737,6 +5746,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Mtf_Mleatked - Status: Mtf_Mleatked
Icon: EFST_MTF_MLEATKED Icon: EFST_MTF_MLEATKED
CalcFlags: CalcFlags:
@ -5747,6 +5757,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Mtf_Cridamage - Status: Mtf_Cridamage
Icon: EFST_MTF_CRIDAMAGE Icon: EFST_MTF_CRIDAMAGE
CalcFlags: CalcFlags:
@ -5757,6 +5768,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Oktoberfest - Status: Oktoberfest
States: States:
NoAttack: true NoAttack: true
@ -5837,6 +5849,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
End: End:
All_Riding: true All_Riding: true
EndReturn: true EndReturn: true
@ -5887,6 +5900,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Mtf_Rangeatk2 - Status: Mtf_Rangeatk2
Icon: EFST_MTF_RANGEATK2 Icon: EFST_MTF_RANGEATK2
CalcFlags: CalcFlags:
@ -5897,6 +5911,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Mtf_Matk2 - Status: Mtf_Matk2
Icon: EFST_MTF_MATK2 Icon: EFST_MTF_MATK2
CalcFlags: CalcFlags:
@ -5907,6 +5922,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: 2011rwc_Scroll - Status: 2011rwc_Scroll
Icon: EFST_2011RWC_SCROLL Icon: EFST_2011RWC_SCROLL
CalcFlags: CalcFlags:
@ -5950,6 +5966,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Mtf_Msp - Status: Mtf_Msp
Icon: EFST_MTF_MSP Icon: EFST_MTF_MSP
CalcFlags: CalcFlags:
@ -5960,6 +5977,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Mtf_Pumpkin - Status: Mtf_Pumpkin
Icon: EFST_MTF_PUMPKIN Icon: EFST_MTF_PUMPKIN
Flags: Flags:
@ -5968,6 +5986,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Mtf_Hitflee - Status: Mtf_Hitflee
Icon: EFST_MTF_HITFLEE Icon: EFST_MTF_HITFLEE
CalcFlags: CalcFlags:
@ -5980,6 +5999,7 @@ Body:
NoDispell: true NoDispell: true
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
NoForcedEnd: true
- Status: Vacuum_Extreme_Postdelay - Status: Vacuum_Extreme_Postdelay
DurationLookup: SO_VACUUM_EXTREME DurationLookup: SO_VACUUM_EXTREME
Flags: Flags:
@ -6007,6 +6027,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapIgnoreLevel: true OverlapIgnoreLevel: true
NoForcedEnd: true
- Status: Reuse_Limit_A - Status: Reuse_Limit_A
Icon: EFST_REUSE_LIMIT_A Icon: EFST_REUSE_LIMIT_A
Flags: Flags:
@ -6016,6 +6037,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_B - Status: Reuse_Limit_B
Icon: EFST_REUSE_LIMIT_B Icon: EFST_REUSE_LIMIT_B
Flags: Flags:
@ -6025,6 +6047,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_C - Status: Reuse_Limit_C
Icon: EFST_REUSE_LIMIT_C Icon: EFST_REUSE_LIMIT_C
Flags: Flags:
@ -6034,6 +6057,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_D - Status: Reuse_Limit_D
Icon: EFST_REUSE_LIMIT_D Icon: EFST_REUSE_LIMIT_D
Flags: Flags:
@ -6043,6 +6067,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_E - Status: Reuse_Limit_E
Icon: EFST_REUSE_LIMIT_E Icon: EFST_REUSE_LIMIT_E
Flags: Flags:
@ -6052,6 +6077,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_F - Status: Reuse_Limit_F
Icon: EFST_REUSE_LIMIT_F Icon: EFST_REUSE_LIMIT_F
Flags: Flags:
@ -6061,6 +6087,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_G - Status: Reuse_Limit_G
Icon: EFST_REUSE_LIMIT_G Icon: EFST_REUSE_LIMIT_G
Flags: Flags:
@ -6070,6 +6097,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_H - Status: Reuse_Limit_H
Icon: EFST_REUSE_LIMIT_H Icon: EFST_REUSE_LIMIT_H
Flags: Flags:
@ -6079,6 +6107,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_Mtf - Status: Reuse_Limit_Mtf
Icon: EFST_REUSE_LIMIT_MTF Icon: EFST_REUSE_LIMIT_MTF
Flags: Flags:
@ -6088,6 +6117,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_Aspd_Potion - Status: Reuse_Limit_Aspd_Potion
Icon: EFST_REUSE_LIMIT_ASPD_POTION Icon: EFST_REUSE_LIMIT_ASPD_POTION
Flags: Flags:
@ -6097,6 +6127,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Millenniumshield - Status: Reuse_Millenniumshield
Icon: EFST_REUSE_MILLENNIUMSHIELD Icon: EFST_REUSE_MILLENNIUMSHIELD
Flags: Flags:
@ -6106,6 +6137,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Crushstrike - Status: Reuse_Crushstrike
Icon: EFST_REUSE_CRUSHSTRIKE Icon: EFST_REUSE_CRUSHSTRIKE
Flags: Flags:
@ -6115,6 +6147,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Stormblast - Status: Reuse_Stormblast
Icon: EFST_REUSE_STORMBLAST Icon: EFST_REUSE_STORMBLAST
Flags: Flags:
@ -6124,6 +6157,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: All_Riding_Reuse_Limit - Status: All_Riding_Reuse_Limit
Icon: EFST_ALL_RIDING_REUSE_LIMIT Icon: EFST_ALL_RIDING_REUSE_LIMIT
Flags: Flags:
@ -6133,6 +6167,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_Ecl - Status: Reuse_Limit_Ecl
Icon: EFST_REUSE_LIMIT_ECL Icon: EFST_REUSE_LIMIT_ECL
Flags: Flags:
@ -6142,6 +6177,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Reuse_Limit_Recall - Status: Reuse_Limit_Recall
Icon: EFST_REUSE_LIMIT_RECALL Icon: EFST_REUSE_LIMIT_RECALL
Flags: Flags:
@ -6151,6 +6187,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
OverlapFail: true OverlapFail: true
NoForcedEnd: true
- Status: Promote_Health_Reserch - Status: Promote_Health_Reserch
Icon: EFST_PROMOTE_HEALTH_RESERCH Icon: EFST_PROMOTE_HEALTH_RESERCH
CalcFlags: CalcFlags:
@ -6248,6 +6285,7 @@ Body:
NoBanishingBuster: true NoBanishingBuster: true
NoClearance: true NoClearance: true
SendVal1: true SendVal1: true
NoForcedEnd: true
# deprecated # deprecated
#- Status: Cloud_Kill #- Status: Cloud_Kill
- Status: Ljosalfar - Status: Ljosalfar

View File

@ -213,6 +213,7 @@ Flags: Various status flags for specific status change events.
SendVal3 - Notifies the client of a status change (val3). SendVal3 - Notifies the client of a status change (val3).
NoClearbuff - Cannot be removed by 'status_change_clear_buffs()', 'sc_end SC_ALL', 'status_change_clear(3)', etc. NoClearbuff - Cannot be removed by 'status_change_clear_buffs()', 'sc_end SC_ALL', 'status_change_clear(3)', etc.
NoForcedEnd - Cannot be removed by sc_end.
NoRemoveOnDead - Cannot be removed when a player dies. NoRemoveOnDead - Cannot be removed when a player dies.
NoDispell - Cannot be removed by SA_DISPELL. NoDispell - Cannot be removed by SA_DISPELL.
NoClearance - Cannot be removed by AB_CLEARANCE. NoClearance - Cannot be removed by AB_CLEARANCE.

View File

@ -12009,8 +12009,17 @@ BUILDIN_FUNC(sc_end)
if (sce == nullptr) if (sce == nullptr)
return SCRIPT_CMD_SUCCESS; return SCRIPT_CMD_SUCCESS;
if (status_db.hasSCF(sc, SCF_NOCLEARBUFF)) std::shared_ptr<s_status_change_db> sc_db = status_db.find( type );
return SCRIPT_CMD_SUCCESS;
if( sc_db == nullptr ){
ShowError( "buildin_sc_end: Unknown status change %d.\n", type );
return SCRIPT_CMD_FAILURE;
}
if( sc_db->flag[SCF_NOCLEARBUFF] && sc_db->flag[SCF_NOFORCEDEND] ){
ShowError( "buildin_sc_end: Status %d cannot be cleared.\n", type );
return SCRIPT_CMD_FAILURE;
}
//This should help status_change_end force disabling the SC in case it has no limit. //This should help status_change_end force disabling the SC in case it has no limit.
sce->val1 = sce->val2 = sce->val3 = sce->val4 = 0; sce->val1 = sce->val2 = sce->val3 = sce->val4 = 0;

View File

@ -8895,6 +8895,7 @@
export_constant(SCF_SENDVAL1); export_constant(SCF_SENDVAL1);
export_constant(SCF_SENDVAL2); export_constant(SCF_SENDVAL2);
export_constant(SCF_SENDVAL3); export_constant(SCF_SENDVAL3);
export_constant(SCF_NOFORCEDEND);
#undef export_constant #undef export_constant
#undef export_constant2 #undef export_constant2

View File

@ -2852,6 +2852,7 @@ enum e_status_change_flag : uint16 {
SCF_SENDVAL1, SCF_SENDVAL1,
SCF_SENDVAL2, SCF_SENDVAL2,
SCF_SENDVAL3, SCF_SENDVAL3,
SCF_NOFORCEDEND,
SCF_MAX SCF_MAX
}; };