From 805f11d9f0e5a1285ed26b5f6a28231e5d325625 Mon Sep 17 00:00:00 2001 From: aleos89 Date: Thu, 3 Nov 2016 21:54:04 -0400 Subject: [PATCH] Added unit flag UF_CRAZYWEED_IMMUNE * Follow up to 6e97762. * Used to make unit skills immune to Crazy Vine's removal effect. --- db/pre-re/skill_unit_db.txt | 2 +- db/re/skill_unit_db.txt | 2 +- src/map/skill.c | 4 +++- src/map/skill.h | 2 +- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/db/pre-re/skill_unit_db.txt b/db/pre-re/skill_unit_db.txt index 9b62846587..a4a6f26fa0 100644 --- a/db/pre-re/skill_unit_db.txt +++ b/db/pre-re/skill_unit_db.txt @@ -20,7 +20,7 @@ // 0x00800(UF_DUALMODE) Spell has effects both at an interval and when you step in/out // 0x01000(UF_NOKNOCKBACK) Cannot be knocked back (only unit that can be damaged) // 0x02000(UF_RANGEDSINGLEUNIT) Layout hack, use layout range propriety but only display center. -// 0x04000(UF_NONE) Free +// 0x04000(UF_CRAZYWEED_IMMUNE) Immune to GN_CRAZYWEED removal // 0x08000(UF_REM_FIRERAIN) Removed if be overlapped by RL_FIRE_RAIN // 0x10000(UF_KNOCKBACK_GROUP) Knock back a whole skill group (by default, skill unit is knocked back each unit) // 0x20000(UF_HIDDEN_TRAP) Hidden trap, see 'traps_setting' skill config to enable this flag diff --git a/db/re/skill_unit_db.txt b/db/re/skill_unit_db.txt index e9319c3f85..b83eaca77e 100644 --- a/db/re/skill_unit_db.txt +++ b/db/re/skill_unit_db.txt @@ -20,7 +20,7 @@ // 0x00800(UF_DUALMODE) Spell has effects both at an interval and when you step in/out // 0x01000(UF_NOKNOCKBACK) Cannot be knocked back (only unit that can be damaged) // 0x02000(UF_RANGEDSINGLEUNIT) Layout hack, use layout range propriety but only display center. -// 0x04000(UF_NONE) Free +// 0x04000(UF_CRAZYWEED_IMMUNE) Immune to GN_CRAZYWEED removal // 0x08000(UF_REM_FIRERAIN) Removed if be overlapped by RL_FIRE_RAIN // 0x10000(UF_KNOCKBACK_GROUP) Knock back a whole skill group (by default, skill unit is knocked back each unit) // 0x20000(UF_HIDDEN_TRAP) Hidden trap, see 'traps_setting' skill config to enable this flag diff --git a/src/map/skill.c b/src/map/skill.c index d5f307f968..9a3481988d 100755 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -17127,9 +17127,11 @@ static int skill_cell_overlap(struct block_list *bl, va_list ap) return 1; } break; + case GN_CRAZYWEED_ATK: + if (skill_get_unit_flag(unit->group->skill_id)&UF_CRAZYWEED_IMMUNE) + break; case HW_GANBANTEIN: case LG_EARTHDRIVE: - case GN_CRAZYWEED_ATK: // Officially songs/dances are removed skill_delunit(unit); return 1; diff --git a/src/map/skill.h b/src/map/skill.h index 872e28b6d9..a5df73bb7d 100644 --- a/src/map/skill.h +++ b/src/map/skill.h @@ -322,7 +322,7 @@ enum e_skill_unit_flag { UF_DUALMODE = 0x00800, // Spells should trigger both ontimer and onplace/onout/onleft effects. UF_NOKNOCKBACK = 0x01000, // Skill unit cannot be knocked back UF_RANGEDSINGLEUNIT = 0x02000, // hack for ranged layout, only display center - UF_FREE = 0x04000, // Free + UF_CRAZYWEED_IMMUNE = 0x04000, // Immune to Crazy Weed removal UF_REM_FIRERAIN = 0x08000, // removed by Fire Rain UF_KNOCKBACK_GROUP = 0x10000, // knockback skill unit with its group instead of single unit UF_HIDDEN_TRAP = 0x20000, // Hidden trap [Cydh]