diff options
Diffstat (limited to 'src/map/status.c')
-rw-r--r-- | src/map/status.c | 49 |
1 files changed, 27 insertions, 22 deletions
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:
|