Ancyker - Oct 13, 2014 20:30
Maps which are not always a certain mode, such as War of Emperium castles, have the mode "Normal" -- which is fine. The problem happens when an additional mode is applied, such as GvG. In this case the GvG zone appears to be applied first, then the settings overridden with the Normal zone. So, any items disabled in a Normal zone and allowed in a WoE zone, even if explicitly allowed, will not work.
This effectively breaks all siege gears, which are only supposed to work in PvP/GvG/WoE maps. Normally they are disabled outside of those areas:
[code=:0]
{
/* Normal zone is applied to all maps that are not pkable (where players cant fight each other) */
/* However, it wont be applied to maps with its own zones (specified thru mapflag) */
name: "Normal" /* changing this name requires MAP_ZONE_NORMAL_NAME to also be changed in src/map/map.h file */
disabled_skills: {
WM_LULLABY_DEEPSLEEP: "PLAYER"
WM_SIRCLEOFNATURE: "PLAYER"
WM_SATURDAY_NIGHT_FEVER: "PLAYER"
SO_ARRULLO: "PLAYER"
CG_HERMODE: "PLAYER"
}
disabled_items: {
Velum_Jamadhar: true
Velum_Scare: true
Velum_Buster: true
Velum_Guillotine: true
Velum_Spear: true
Velum_Glaive: true
Velum_Bible: true
Velum_Encyclopedia: true
Velum_Claw: true
Velum_Arc_Wand: true
Velum_Damascus: true
Velum_Stunner: true
Velum_Flail: true
Velum_Arbalest: true
Velum_CrossBow: true
Velum_Claymore: true
Velum_Katzbalger: true
Siege_Arrow_A: true
Siege_Arrow_S: true
Siege_Greave: true
Siege_Boots: true
Siege_Shoes: true
Siege_Manteau: true
Siege_Muffler: true
Siege_White_Potion: true
Siege_Blue_Potion: true
Woe_Violet_Potion: true
Woe_White_Potion: true
Woe_Blue_Potion: true
Siege_Plate: true
Siege_Suits: true
Siege_Robe: true
}
mapflags: (
)
},
[/code]
I tried explicitly enabling them inside of GvG, but it didn't work:[code=:0]
{
/* GvG zone is applied to all maps with a gvg mapflag */
name: "GvG" /* changing this name requires MAP_ZONE_GVG_NAME to also be changed in src/map/map.h file */
disabled_skills: {
AL_TELEPORT: "PLAYER"
AL_WARP: "PLAYER"
WZ_ICEWALL: "PLAYER"
TF_BACKSLIDING: "PLAYER"
RG_INTIMIDATE: "PLAYER"
WE_CALLPARTNER: "PLAYER"
HP_ASSUMPTIO: "PLAYER"
HP_BASILICA: "PLAYER"
CG_MOONLIT: "PLAYER"
WE_CALLPARENT: "PLAYER"
WE_CALLBABY: "PLAYER"
CR_CULTIVATION: "PLAYER"
NJ_KIRIKAGE: "PLAYER"
CASH_ASSUMPTIO: "PLAYER"
BS_GREED: "PLAYER"
SC_FATALMENACE: "PLAYER"
SC_DIMENSIONDOOR: "PLAYER"
}
disabled_items: {
Assumptio_5_Scroll: true
Greed_Scroll: true
Pty_Assumptio_Scroll: true
Velum_Jamadhar: false
Velum_Scare: false
Velum_Buster: false
Velum_Guillotine: false
Velum_Spear: false
Velum_Glaive: false
Velum_Bible: false
Velum_Encyclopedia: false
Velum_Claw: false
Velum_Arc_Wand: false
Velum_Damascus: false
Velum_Stunner: false
Velum_Flail: false
Velum_Arbalest: false
Velum_CrossBow: false
Velum_Claymore: false
Velum_Katzbalger: false
Siege_Arrow_A: false
Siege_Arrow_S: false
Siege_Greave: false
Siege_Boots: false
Siege_Shoes: false
Siege_Manteau: false
Siege_Muffler: false
Siege_White_Potion: false
Siege_Blue_Potion: false
Woe_Violet_Potion: false
Woe_White_Potion: false
Woe_Blue_Potion: false
Siege_Plate: false
Siege_Suits: false
Siege_Robe: false
}
/* 5 second duration increase on GvG */
/* knockback disabled */
/* GvG Mode Damage Reductions */
/* - weapon_damage_rate -40% */
/* - magic_damage_rate -40% */
/* - misc_damage_rate -40% */
/* - long_damage_rate -20% */
/* - short_damage_rate -20% */
mapflags: (
"invincible_time_inc 5000",
"noknockback",
"weapon_damage_rate 60",
"magic_damage_rate 60",
"misc_damage_rate 60",
"long_damage_rate 80",
"short_damage_rate 80",
"nocashshop",
"gvg_noparty",
)
},
[/code]
So the way zones stack needs changed. I understand why you'd apply @gvgon/@pvpon first, then apply the actual ("main") zone. For instance, for a PVP event which allows only certain items, I'd want my custom zone first, but for WoE, I'd want GvG to override the Normal zone.
[b]Suggestion Solution[/b]
GvG and PvP zones override the zone when the zone is "Normal", and should be secondary when the zone is of any other type. In short, Normal should always be overridden by any other zone (PvP/GvG).
Normal < PvP/GvG < All other zones
Example:
WoE has the zone "Normal" when WoE is not on. When WoE is started, GvG is added. The order should be Normal+GvG (Normal applied, then overridden with GvG)
A custom PVP area has the zone "Event". When PvP is enabled, PvP is added. The order should be PvP+Event (PvP applied first, then overridden with Event)
Ind - Oct 13, 2014 21:13
I can see why, however this is related to a main data flaw in the zone parser, for a Immediate fix I recommend you preset the castles to gvg (in mapflag/zones.txt), that way they'll never be "Normal" (and I believe it won't affect the battle-ability (or "pvp" state) as it requires another flag not related to the zone)