Преглед изворни кода

Blade Stop status no longer prevents item use and equip changing.
Blade Stop skill will now only activate if the attacker is at most 2 cells away (1 if barehanded).

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@13557 54d463be-8e91-2dee-dedb-b68131a5f0ec

ultramage пре 16 година
родитељ
комит
1d82043903
3 измењених фајлова са 8 додато и 6 уклоњено
  1. 4 2
      Changelog-Trunk.txt
  2. 1 1
      src/map/battle.c
  3. 3 3
      src/map/pc.c

+ 4 - 2
Changelog-Trunk.txt

@@ -3,13 +3,15 @@ Date	Added
 AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
-2008/10/13
+2009/03/02
+	* Blade Stop status no longer prevents item use and equip changing.
+	* Blade Stop skill will now only activate if the attacker is at most 2 cells away (1 if barehanded).
+2009/03/01
 	* Fixes from 2008/10/13 bugreport:2077 (Only commiting because nobody did until now and those bugs would get lost)
 	* Fixed monster's Spiral Pierce, now it is always blocked by Pneuma.
  	* Fixed Monk Absorb Spirits mana recovery per spirit absorbed, 7, not 10.
  	* Fixed Monk spirit balls not being removed on death (like happens with gunslingers).
  	* Fixed Swordman Auto-Berserk sp cost, 1, not 5. Should be 0, but eA wont allow the skill to work.
-
 2009/03/01
 	* Ankle Snare cannot be knocked back anymore (bugreport:2804) [ultramage]
 2009/02/25

+ 1 - 1
src/map/battle.c

@@ -2980,7 +2980,7 @@ enum damage_lv battle_weapon_attack(struct block_list* src, struct block_list* t
 		}
 	}
 
-	if( tsc && tsc->data[SC_BLADESTOP_WAIT] && !is_boss(src) )
+	if( tsc && tsc->data[SC_BLADESTOP_WAIT] && !is_boss(src) && distance_bl(src, target) <= (tsd->status.weapon == W_FIST ? 1 : 2) )
 	{
 		int skilllv = tsc->data[SC_BLADESTOP_WAIT]->val1;
 		int duration = skill_get_time2(MO_BLADESTOP,skilllv);

+ 3 - 3
src/map/pc.c

@@ -3390,7 +3390,6 @@ int pc_useitem(struct map_session_data *sd,int n)
 		sd->sc.data[SC_MARIONETTE] ||
 		(sd->sc.data[SC_GRAVITATION] && sd->sc.data[SC_GRAVITATION]->val3 == BCT_SELF) ||
 		sd->sc.data[SC_TRICKDEAD] ||
-		sd->sc.data[SC_BLADESTOP] ||
 		sd->sc.data[SC_HIDING] ||
 		(sd->sc.data[SC_NOCHAT] && sd->sc.data[SC_NOCHAT]->val1&MANNER_NOITEM)
 	))
@@ -6622,7 +6621,7 @@ int pc_equipitem(struct map_session_data *sd,int n,int req_pos)
 		return 0;
 	}
 
-	if(sd->sc.data[SC_BERSERK] || sd->sc.data[SC_BLADESTOP])
+	if( sd->sc.data[SC_BERSERK] )
 	{
 		clif_equipitemack(sd,n,0,0);	// fail
 		return 0;
@@ -6768,7 +6767,8 @@ int pc_unequipitem(struct map_session_data *sd,int n,int flag)
 	}
 
 	// if player is berserk then cannot unequip
-	if(!(flag&2) && sd->sc.count && (sd->sc.data[SC_BLADESTOP] || sd->sc.data[SC_BERSERK])){
+	if( !(flag&2) && sd->sc.count && sd->sc.data[SC_BERSERK] )
+	{
 		clif_unequipitemack(sd,n,0,0);
 		return 0;
 	}