Map Zone Debuff

kyeme

High Council
Messages
500
Points
0
Github
kyeme
Emulator
Suggestion regarding map zone debuff flag.
This is to remove the EFFECT inside of a map that have Zone Flag.
Example: When you enter the map, the Energy Coat Buff (like SC_END SC_ENERGYCOAT) will be removed, and the GD_LEADERSHIP will not work even if you are beside the Guild Master.
 
removed_status: { MG_ENERGYCOAT: true HP_ASSUMPTIO: true GD_GLORYGUILD: true GD_LEADERSHIP: true GD_GLORYWOUNDS: true GD_SOULCOLD: true GD_HAWKEYES: true }
Thanks
default_biggrin.png


 
...and the GD_LEADERSHIP will not work even if you are beside the Guild Master.
I believe this would belongs to disabled_skills:
SC_END SC_ENERGYCOAT can be done in npc scripting too

to add inside map_zone_db ... hmm... nice idea actually

then there is no need to add so many OnPCLoadMapEvent with sc_end sc_*** on so many maps (zones = many maps in group)

 
Last edited by a moderator:
interesting...I wonder, would it be the same result if instead of a removed_status column we instead checked what status are inflicted by a skill and then cancel these on warp? e.g. MG_ENERGYCOAT is blocked in prontera, so if you warp in prontera with SC_ENERGYCOAT it cancels it -- item-inflicted status would still the proposed column however since there is current way to tell what status a disabled_item inflicts

 
Ind, using your method will probably need to write the code in a very messy way

I counter-suggest change into

disable_status: { SC_ENERGYCOAT: true }if SC_ENERGYCOAT is being calculated in these zones, the bonus stats/effect is not calculated (but icon is still there)
implement in this way should be fast and clean

EDIT: or maybe I'm going off-topic ... hahaha

 
Last edited by a moderator:
Ind, using your method will probably need to write the code in a very messy way
To use the disabled_skills info, it'd be like (just drafted)int i, type; for(i = 0; i < map->list[sd->bl.m].zone->disabled_skills_count; i++) { if( (type = status->skill2sc(map->list[sd->bl.m].zone->disabled_skills->nameid) ) && sd->sc.data[type] ) { status_change_end(&sd->bl, type, INVALID_TIMER); } }I think what I'm proposing would be more like a bugfix than related to this suggestion, since without it if you have assumptio blocked in prontera you can get inside with the effect by casting it before warping...
if SC_ENERGYCOAT is being calculated in these zones, the bonus stats/effect is not calculated (but icon is still there)

implement in this way should be fast and clean
wouldn't it be confusing to users to maintain the icon? (I'd say it'd be interesting however since it'd mean once you leave the map/zone the effect would resume)
 
Last edited by a moderator:
(...once you leave the map/zone the effect would resume)
ok my previous idea was sux...
change it into sc_end SC_ENERGYCOAT when the player step in the map

then inside status->change_start function, inside these zones will return 0, and the icon wouldn't be there

... sounds easy though

 
Last edited by a moderator:
...and the GD_LEADERSHIP will not work even if you are beside the Guild Master.
I believe this would belongs to disabled_skills:
The Passive Skills like GD_LEADERSHIP is not working in "disabled_skills"

interesting...I wonder, would it be the same result if instead of a removed_status column we instead checked what status are inflicted by a skill and then cancel these on warp? e.g. MG_ENERGYCOAT is blocked in prontera, so if you warp in prontera with SC_ENERGYCOAT it cancels it -- item-inflicted status would still the proposed column however since there is current way to tell what status a disabled_item inflicts
In my opinion, Its not applicable to set the disabled_skill as removed_status, because it will affect the Official behaviour like the skill Assumptio.
Official: Its not possible to use or cast HP_ASSUMPTIO in the castle but the SC_ASSUMPTIO is possible while you're still in the castle.
 
Last edited by a moderator:
The Passive Skills like GD_LEADERSHIP is not working in "disabled_skills"
then make a bug report for it
from my understanding, currently disabled_skills only disable active skill from casting

to fix this bug, status_calc_pc should have an additional check when calculating bonuses from passive skills

.

.

EDIT:

yeah tested, I have disabled_skills: AC_OWL: "PLAYER"

doesn't work, as I still have +10 dex

.

.

hmm ...

Code:
	set_sc( GD_LEADERSHIP        , SC_LEADERSHIP      , SI_BLANK           , SCB_STR );	set_sc( GD_GLORYWOUNDS       , SC_GLORYWOUNDS     , SI_BLANK           , SCB_VIT );	set_sc( GD_SOULCOLD          , SC_SOULCOLD        , SI_BLANK           , SCB_AGI );	set_sc( GD_HAWKEYES          , SC_HAWKEYES        , SI_BLANK           , SCB_DEX );
actually they have their own SC_ ....
 
Last edited by a moderator:
(I'd say it'd be interesting however since it'd mean once you leave the map/zone the effect would resume)

i like this way >_< +100

 
Back
Top