Pārlūkot izejas kodu

Made High Speed Cart Ram (WS_CARTTERMINATION) ignore Crusader's Guard and Shield Reflect.
And happy new year!

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

DracoRPG 18 gadi atpakaļ
vecāks
revīzija
b6aac83a77
2 mainītis faili ar 4 papildinājumiem un 1 dzēšanām
  1. 2 0
      Changelog-Trunk.txt
  2. 2 1
      src/map/battle.c

+ 2 - 0
Changelog-Trunk.txt

@@ -4,6 +4,8 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
 2006/12/31
+	* Made HSCR bypass both Guard and Shield Reflect using the dirty way [DracoRPG]
+	  > cleaner way would need to rethink the whole skill's implementation
 	* Added more info when npc_scriptcont tries to continue a different script.
 	* Refer to http://www.eathena.ws/board/index.php?showtopic=130285
 	- Renamed pc_checkweighticon to pc_updateweightstatus and cleaned it.

+ 2 - 1
src/map/battle.c

@@ -275,6 +275,7 @@ int battle_calc_damage(struct block_list *src,struct block_list *bl,int damage,i
 		}
 	
 		if(sc->data[SC_AUTOGUARD].timer != -1 && flag&BF_WEAPON &&
+			skill_num != WS_CARTTERMINATION && // FIXME(?): Quick and dirty check, but HSCR really bypasses Guard [DracoRPG]
 			rand()%100 < sc->data[SC_AUTOGUARD].val2) {
 			int delay;
 			clif_skill_nodamage(bl,bl,CR_AUTOGUARD,sc->data[SC_AUTOGUARD].val1,1);
@@ -2796,7 +2797,7 @@ int battle_calc_return_damage(struct block_list *bl, int skill, int *damage, int
 	BL_CAST(BL_PC, bl, sd);
 	sc = status_get_sc(bl);
 
-	if(flag&BF_WEAPON) {
+	if(flag&BF_WEAPON && skill != WS_CARTTERMINATION) { // FIXME(?): Quick and dirty check, but HSCR does bypass Shield Reflect... so I make it bypass the whole reflect thing [DracoRPG]
 		//Bounces back part of the damage.
 		if (flag & BF_SHORT) {
 			if (sd && sd->short_weapon_damage_return)