summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-11-24 17:18:56 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-11-24 17:18:56 +0000
commita52fadeed054305bf477534143b303c48f40f681 (patch)
tree85c8689de9d550b92baf6c72eb1bb88eedf4b762
parent01476c09aec449f89f52761b98da61e6c541e563 (diff)
downloadhercules-a52fadeed054305bf477534143b303c48f40f681.tar.gz
hercules-a52fadeed054305bf477534143b303c48f40f681.tar.bz2
hercules-a52fadeed054305bf477534143b303c48f40f681.tar.xz
hercules-a52fadeed054305bf477534143b303c48f40f681.zip
- 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://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9315 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r--Changelog-Trunk.txt1
-rw-r--r--src/map/status.c49
-rw-r--r--src/map/status.h15
3 files changed, 28 insertions, 37 deletions
diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt
index c4cf9c0cb..70691b73b 100644
--- a/Changelog-Trunk.txt
+++ b/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
diff --git a/src/map/status.c b/src/map/status.c
index 4d68e9527..61a86f697 100644
--- a/src/map/status.c
+++ b/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:
diff --git a/src/map/status.h b/src/map/status.h
index 5723a5cde..5227edc68 100644
--- a/src/map/status.h
+++ b/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