Browse Source

Updated Ranger Traps behavior
* Fixes #1611.
* Magenta, Cobalt, Maize, and Verdure Traps should permanently change the element of the target.

aleos89 8 years ago
parent
commit
031adff925
4 changed files with 14 additions and 14 deletions
  1. 4 4
      db/pre-re/skill_cast_db.txt
  2. 4 4
      db/re/skill_cast_db.txt
  3. 6 2
      src/map/skill.c
  4. 0 4
      src/map/status.c

+ 4 - 4
db/pre-re/skill_cast_db.txt

@@ -1248,13 +1248,13 @@
 //-- RA_CAMOUFLAGE
 //-- RA_CAMOUFLAGE
 2247,0,0,0,10000,0,0
 2247,0,0,0,10000,0,0
 //-- RA_MAGENTATRAP
 //-- RA_MAGENTATRAP
-2249,0,2000,0,15000,10000,0
+2249,0,2000,0,15000,0,0
 //-- RA_COBALTTRAP
 //-- RA_COBALTTRAP
-2250,0,2000,0,15000,10000,0
+2250,0,2000,0,15000,0,0
 //-- RA_MAIZETRAP
 //-- RA_MAIZETRAP
-2251,0,2000,0,15000,10000,0
+2251,0,2000,0,15000,0,0
 //-- RA_VERDURETRAP
 //-- RA_VERDURETRAP
-2252,0,2000,0,15000,10000,0
+2252,0,2000,0,15000,0,0
 //-- RA_FIRINGTRAP
 //-- RA_FIRINGTRAP
 2253,0,0,0,15000,15000,0
 2253,0,0,0,15000,15000,0
 //-- RA_ICEBOUNDTRAP
 //-- RA_ICEBOUNDTRAP

+ 4 - 4
db/re/skill_cast_db.txt

@@ -1264,13 +1264,13 @@
 //-- RA_CAMOUFLAGE
 //-- RA_CAMOUFLAGE
 2247,0,0,0,10000,0,0,-1
 2247,0,0,0,10000,0,0,-1
 //-- RA_MAGENTATRAP
 //-- RA_MAGENTATRAP
-2249,0,2000,0,15000,10000,0,-1
+2249,0,2000,0,15000,0,0,-1
 //-- RA_COBALTTRAP
 //-- RA_COBALTTRAP
-2250,0,2000,0,15000,10000,0,-1
+2250,0,2000,0,15000,0,0,-1
 //-- RA_MAIZETRAP
 //-- RA_MAIZETRAP
-2251,0,2000,0,15000,10000,0,-1
+2251,0,2000,0,15000,0,0,-1
 //-- RA_VERDURETRAP
 //-- RA_VERDURETRAP
-2252,0,2000,0,15000,10000,0,-1
+2252,0,2000,0,15000,0,0,-1
 //-- RA_FIRINGTRAP
 //-- RA_FIRINGTRAP
 2253,0,0,0,15000,15000,0,-1
 2253,0,0,0,15000,15000,0,-1
 //-- RA_ICEBOUNDTRAP
 //-- RA_ICEBOUNDTRAP

+ 6 - 2
src/map/skill.c

@@ -17279,8 +17279,12 @@ static int skill_trap_splash(struct block_list *bl, va_list ap)
 		case UNT_COBALTTRAP:
 		case UNT_COBALTTRAP:
 		case UNT_MAIZETRAP:
 		case UNT_MAIZETRAP:
 		case UNT_VERDURETRAP:
 		case UNT_VERDURETRAP:
-			if( bl->type != BL_PC && status_get_class_(bl) != CLASS_BOSS )
-				sc_start2(ss,bl,SC_ELEMENTALCHANGE,100,sg->skill_lv,skill_get_ele(sg->skill_id,sg->skill_lv),skill_get_time2(sg->skill_id,sg->skill_lv));
+			if( bl->type == BL_MOB && status_get_class_(bl) != CLASS_BOSS ) {
+				struct status_data *status = status_get_status_data(bl);
+
+				status->def_ele = skill_get_ele(sg->skill_id, sg->skill_lv);
+				status->ele_lv = (unsigned char)sg->skill_lv;
+			}
 			break;
 			break;
 		case UNT_REVERBERATION: // For proper skill delay animation when used with Dominion Impulse
 		case UNT_REVERBERATION: // For proper skill delay animation when used with Dominion Impulse
 			skill_addtimerskill(ss, tick + status_get_amotion(ss), bl->id, 0, 0, WM_REVERBERATION_MELEE, sg->skill_lv, BF_WEAPON, 0);
 			skill_addtimerskill(ss, tick + status_get_amotion(ss), bl->id, 0, 0, WM_REVERBERATION_MELEE, sg->skill_lv, BF_WEAPON, 0);

+ 0 - 4
src/map/status.c

@@ -667,10 +667,6 @@ void initChangeTables(void)
 	set_sc( RA_WUGDASH			, SC_WUGDASH		, SI_WUGDASH		, SCB_SPEED|SCB_DSPD );
 	set_sc( RA_WUGDASH			, SC_WUGDASH		, SI_WUGDASH		, SCB_SPEED|SCB_DSPD );
 	set_sc( RA_WUGBITE          , SC_BITE           , SI_WUGBITE        , SCB_NONE );
 	set_sc( RA_WUGBITE          , SC_BITE           , SI_WUGBITE        , SCB_NONE );
 	set_sc( RA_CAMOUFLAGE		, SC_CAMOUFLAGE		, SI_CAMOUFLAGE		, SCB_SPEED|SCB_DEF|SCB_DEF2 );
 	set_sc( RA_CAMOUFLAGE		, SC_CAMOUFLAGE		, SI_CAMOUFLAGE		, SCB_SPEED|SCB_DEF|SCB_DEF2 );
-	add_sc( RA_MAGENTATRAP		, SC_ELEMENTALCHANGE	);
-	add_sc( RA_COBALTTRAP		, SC_ELEMENTALCHANGE	);
-	add_sc( RA_MAIZETRAP		, SC_ELEMENTALCHANGE	);
-	add_sc( RA_VERDURETRAP		, SC_ELEMENTALCHANGE	);
 	set_sc( RA_FIRINGTRAP       , SC_BURNING        , SI_BURNT          , SCB_MDEF );
 	set_sc( RA_FIRINGTRAP       , SC_BURNING        , SI_BURNT          , SCB_MDEF );
 	set_sc_with_vfx( RA_ICEBOUNDTRAP, SC_FREEZING		, SI_FROSTMISTY		, SCB_SPEED|SCB_ASPD|SCB_DEF|SCB_DEF2 );
 	set_sc_with_vfx( RA_ICEBOUNDTRAP, SC_FREEZING		, SI_FROSTMISTY		, SCB_SPEED|SCB_ASPD|SCB_DEF|SCB_DEF2 );
 	set_sc( RA_UNLIMIT		, SC_UNLIMIT		, SI_UNLIMIT		, SCB_DEF|SCB_DEF2|SCB_MDEF|SCB_MDEF2 );
 	set_sc( RA_UNLIMIT		, SC_UNLIMIT		, SI_UNLIMIT		, SCB_DEF|SCB_DEF2|SCB_MDEF|SCB_MDEF2 );