Przeglądaj źródła

- Cleaned the opt3 values to use hex instead of decimals in status.c, removed theconstants in status.h since each opt3 value can mean many different things.
- Homunc's min matk is now always equal to max matk


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

skotlex 18 lat temu
rodzic
commit
d5de96b257
3 zmienionych plików z 28 dodań i 37 usunięć
  1. 1 0
      Changelog-Trunk.txt
  2. 27 22
      src/map/status.c
  3. 0 15
      src/map/status.h

+ 1 - 0
Changelog-Trunk.txt

@@ -4,6 +4,7 @@ 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/11/24
+	* Homunc's min matk is now always equal to max matk [Skotlex]
 	* Fixed EDP's damage being 100% more than it should (should be 5x, not 6x
 	  on normal attacks) [Skotlex]
 	* Self Destruction will only hit everyone and not just enemies when used by

+ 27 - 22
src/map/status.c

@@ -2842,6 +2842,9 @@ void status_calc_bl_sub_hom(struct homun_data *hd, unsigned long flag)	//[orn]
 	if(flag|SCB_WATK && status->rhw.atk2 < status->rhw.atk)
 		status->rhw.atk2 = status->rhw.atk;
 
+	if(flag&SCB_MATK) //Hom Min Matk is always the same as Max Matk
+		status->matk_min = status->matk_max;
+	
 	if(flag&(SCB_ASPD|SCB_AGI|SCB_DEX)) {
 		flag|=SCB_ASPD;
 
@@ -5740,18 +5743,18 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
 		case SC_TWOHANDQUICKEN:
 		case SC_SPEARQUICKEN:
 		case SC_CONCENTRATION:
-			sc->opt3 |= 1;
+			sc->opt3 |= 0x1;
 			opt_flag = 0;
 			break;
 		case SC_MAXOVERTHRUST:
 		case SC_OVERTHRUST:
 		case SC_SWOO:	//Why does it shares the same opt as Overthrust? Perhaps we'll never know...
-			sc->opt3 |= 2;
+			sc->opt3 |= 0x2;
 			opt_flag = 0;
 			break;
 		case SC_ENERGYCOAT:
 		case SC_SKE:
-			sc->opt3 |= 4;
+			sc->opt3 |= 0x4;
 			opt_flag = 0;
 			break;
 		case SC_INCATKRATE:
@@ -5761,37 +5764,39 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
 				break;
 			}
 		case SC_EXPLOSIONSPIRITS:
-			sc->opt3 |= 8;
+			sc->opt3 |= 0x8;
 			opt_flag = 0;
 			break;
 		case SC_STEELBODY:
 		case SC_SKA:
-			sc->opt3 |= 16;
+			sc->opt3 |= 0x10;
 			opt_flag = 0;
 			break;
 		case SC_BLADESTOP:
-			sc->opt3 |= 32;
+			sc->opt3 |= 0x20;
 			opt_flag = 0;
 			break;
+		//0x40 missing?
 		case SC_BERSERK:
-			sc->opt3 |= 128;
+			sc->opt3 |= 0x80;
 			opt_flag = 0;
 			break;
+		//0x100, 0x200 missing?
 		case SC_MARIONETTE:
 		case SC_MARIONETTE2:
-			sc->opt3 |= 1024;
+			sc->opt3 |= 0x400;
 			opt_flag = 0;
 			break;
 		case SC_ASSUMPTIO:
-			sc->opt3 |= 2048;
+			sc->opt3 |= 0x800;
 			opt_flag = 0;
 			break;
 		case SC_WARM: //SG skills [Komurka]
-			sc->opt3 |= 4096;
+			sc->opt3 |= 0x1000;
 			opt_flag = 0;
 			break;
 		case SC_KAITE:
-			sc->opt3 |= 8192;
+			sc->opt3 |= 0x2000;
 			opt_flag = 0;
 			break;
 		//OPTION
@@ -6282,55 +6287,55 @@ int status_change_end( struct block_list* bl , int type,int tid )
 	case SC_ONEHAND:
 	case SC_SPEARQUICKEN:
 	case SC_CONCENTRATION:
-		sc->opt3 &= ~1;
+		sc->opt3 &= ~0x1;
 		opt_flag = 0;
 		break;
 	case SC_OVERTHRUST:
 	case SC_MAXOVERTHRUST:
 	case SC_SWOO:
-		sc->opt3 &= ~2;
+		sc->opt3 &= ~0x2;
 		opt_flag = 0;
 		break;
 	case SC_ENERGYCOAT:
 	case SC_SKE:
-		sc->opt3 &= ~4;
+		sc->opt3 &= ~0x4;
 		opt_flag = 0;
 		break;
 	case SC_INCATKRATE: //Simulated Explosion spirits effect.
 		if (bl->type != BL_MOB)
 			break;
 	case SC_EXPLOSIONSPIRITS:
-		sc->opt3 &= ~8;
+		sc->opt3 &= ~0x8;
 		opt_flag = 0;
 		break;
 	case SC_STEELBODY:
 	case SC_SKA:
-		sc->opt3 &= ~16;
+		sc->opt3 &= ~0x10;
 		opt_flag = 0;
 		break;
 	case SC_BLADESTOP:
-		sc->opt3 &= ~32;
+		sc->opt3 &= ~0x20;
 		opt_flag = 0;
 		break;
 	case SC_BERSERK:
-		sc->opt3 &= ~128;
+		sc->opt3 &= ~0x80;
 		opt_flag = 0;
 		break;
 	case SC_MARIONETTE:
 	case SC_MARIONETTE2:
-		sc->opt3 &= ~1024;
+		sc->opt3 &= ~0x400;
 		opt_flag = 0;
 		break;
 	case SC_ASSUMPTIO:
-		sc->opt3 &= ~2048;
+		sc->opt3 &= ~0x800;
 		opt_flag = 0;
 		break;
 	case SC_WARM: //SG skills [Komurka]
-		sc->opt3 &= ~4096;
+		sc->opt3 &= ~0x1000;
 		opt_flag = 0;
 		break;
 	case SC_KAITE:
-		sc->opt3 &= ~8192;
+		sc->opt3 &= ~0x2000;
 		opt_flag = 0;
 		break;
 	default:

+ 0 - 15
src/map/status.h

@@ -446,21 +446,6 @@ enum {
 #define OPT2_DPOISON 0x080
 //0x100 
 
-//Opt3: Skill state changes, stackable.
-#define OPT3_SPEEDUP 0x001 //Quicken skills
-#define OPT3_POWERUP 0x002 //Power Thrust
-#define OPT3_SHIELD 0x004 //Energy Coat
-#define OPT3_FURY 0x008 //Explosion spirits
-#define OPT3_ELECTRIC 0x010 //Steel Body
-#define OPT3_STOP 0x020 //Blade Stop
-//64 Unknown
-#define OPT3_BERSERK 0x080 //Berserk
-//256 Unknown
-//512 Unknown
-#define OPT3_PINKAURA 0x400 //Marionette
-#define OPT3_AURASHIELD 0x800 //Assumptio
-#define OPT3_HEAT 0x1000 //Warmth Skills
-
 #define OPTION_SIGHT 0x00000001
 #define OPTION_HIDE 0x00000002
 #define OPTION_CLOAK 0x00000004