Procházet zdrojové kódy

* Fixed itemskill not bypassing Silence, SteelBody, Berserk and the like. (bugreport:3232)
* Fury and Asura no longer disable SP regen on any other classes than Monk/Champion.(bugreport:3200)


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

Inkfish před 16 roky
rodič
revize
14cf988591
3 změnil soubory, kde provedl 10 přidání a 5 odebrání
  1. 3 0
      Changelog-Trunk.txt
  2. 2 1
      src/map/pc.c
  3. 5 4
      src/map/status.c

+ 3 - 0
Changelog-Trunk.txt

@@ -3,6 +3,9 @@ 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.
 
+09/06/12
+	* Fixed itemskill not bypassing Silence, SteelBody, Berserk and the like. (bugreport:3232) [Inkfish]
+	* Fury and Asura no longer disable SP regen on any other classes than Monk/Champion.(bugreport:3200) [Inkfish]
 09/06/11
 	* Fixed TaTaMiGaEShi(Improvised Defense) not working. [Inkfish]
 	* Implemented new cooking success formula. Now cooking experience starts at 0.(bugreport:2439) [Inkfish]

+ 2 - 1
src/map/pc.c

@@ -3479,7 +3479,8 @@ int pc_useitem(struct map_session_data *sd,int n)
 	//Since most delay-consume items involve using a "skill-type" target cursor,
 	//perform a skill-use check before going through. [Skotlex]
 	//resurrection was picked as testing skill, as a non-offensive, generic skill, it will do.
-	if( sd->inventory_data[n]->flag.delay_consume && ( sd->ud.skilltimer != -1 || !status_check_skilluse(&sd->bl, &sd->bl, ALL_RESURRECTION, 0) ) )
+	//FIXME: Is this really needed here? It'll be checked in unit.c after all and this prevents skill items using when silenced [Inkfish]
+	if( sd->inventory_data[n]->flag.delay_consume && ( sd->ud.skilltimer != -1 /*|| !status_check_skilluse(&sd->bl, &sd->bl, ALL_RESURRECTION, 0)*/ ) )
 		return 0;
 
 	sd->itemid = sd->status.inventory[n].nameid;

+ 5 - 4
src/map/status.c

@@ -2644,10 +2644,11 @@ void status_calc_regen_rate(struct block_list *bl, struct regen_data *regen, str
 		regen->flag = 0;
 
 	if (
-		sc->data[SC_EXTREMITYFIST]
-		|| sc->data[SC_DANCING]
-		|| (sc->data[SC_EXPLOSIONSPIRITS]
-			&& (!sc->data[SC_SPIRIT] || sc->data[SC_SPIRIT]->val2 != SL_MONK))
+		sc->data[SC_DANCING]
+		|| (
+			(((TBL_PC*)bl)->class_&MAPID_UPPERMASK) == MAPID_MONK &&
+			(sc->data[SC_EXTREMITYFIST] || (sc->data[SC_EXPLOSIONSPIRITS] && (!sc->data[SC_SPIRIT] || sc->data[SC_SPIRIT]->val2 != SL_MONK)))
+			)
 	)	//No natural SP regen
 		regen->flag &=~RGN_SP;