Bläddra i källkod

Added unit flag UF_CRAZYWEED_IMMUNE
* Follow up to 6e97762.
* Used to make unit skills immune to Crazy Vine's removal effect.

aleos89 8 år sedan
förälder
incheckning
805f11d9f0
4 ändrade filer med 6 tillägg och 4 borttagningar
  1. 1 1
      db/pre-re/skill_unit_db.txt
  2. 1 1
      db/re/skill_unit_db.txt
  3. 3 1
      src/map/skill.c
  4. 1 1
      src/map/skill.h

+ 1 - 1
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

+ 1 - 1
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

+ 3 - 1
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;

+ 1 - 1
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]