summaryrefslogtreecommitdiff
path: root/src/map/status.c
diff options
context:
space:
mode:
authorskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2007-09-24 17:06:58 +0000
committerskotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec>2007-09-24 17:06:58 +0000
commit40fc1ff930002e0ca7301e0f2d575a40f784fb10 (patch)
tree4c4eb599f9e55d57548db8d496bf27e5ea538f6b /src/map/status.c
parenta4b7e6cc4657bb705f187f536d68ef876cc5a441 (diff)
downloadhercules-40fc1ff930002e0ca7301e0f2d575a40f784fb10.tar.gz
hercules-40fc1ff930002e0ca7301e0f2d575a40f784fb10.tar.bz2
hercules-40fc1ff930002e0ca7301e0f2d575a40f784fb10.tar.xz
hercules-40fc1ff930002e0ca7301e0f2d575a40f784fb10.zip
- Changed Greed Scroll's type to 11 (all itemskill items should use this)
- Ignore %MDef bonuses now only reduce target's base MDEF, not MDEF2. - Updated the 'skills that cause no damage are blocked now if the skill element is blocked by the target' to only apply if the skill has a status change associated (fixes Resurrection/Heal being blocked). - Reverted the opt_flag2 change in status_change_start (clif_changeoption2) since it never served its purpose. - Added a warning to prevent loading mobs with IDs that belong to the clone range. - Changed MAX_MOB_DB to 3000, updated the definitions of the clone range defines so they are updated automatically with the change of MAX_MOB_DB. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@11287 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/status.c')
-rw-r--r--src/map/status.c68
1 files changed, 30 insertions, 38 deletions
diff --git a/src/map/status.c b/src/map/status.c
index b5f0dbfe8..af3deca33 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -5900,18 +5900,18 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
case SC_SPEARQUICKEN:
case SC_CONCENTRATION:
sc->opt3 |= 0x1;
- opt_flag = 2;
+ 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 |= 0x2;
- opt_flag = 2;
+ opt_flag = 0;
break;
case SC_ENERGYCOAT:
case SC_SKE:
sc->opt3 |= 0x4;
- opt_flag = 2;
+ opt_flag = 0;
break;
case SC_INCATKRATE:
//Simulate Explosion Spirits effect for NPC_POWERUP [Skotlex]
@@ -5921,39 +5921,39 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
}
case SC_EXPLOSIONSPIRITS:
sc->opt3 |= 0x8;
- opt_flag = 2;
+ opt_flag = 0;
break;
case SC_STEELBODY:
case SC_SKA:
sc->opt3 |= 0x10;
- opt_flag = 2;
+ opt_flag = 0;
break;
case SC_BLADESTOP:
sc->opt3 |= 0x20;
- opt_flag = 2;
+ opt_flag = 0;
break;
//0x40 missing?
case SC_BERSERK:
sc->opt3 |= 0x80;
- opt_flag = 2;
+ opt_flag = 0;
break;
//0x100, 0x200 missing?
case SC_MARIONETTE:
case SC_MARIONETTE2:
sc->opt3 |= 0x400;
- opt_flag = 2;
+ opt_flag = 0;
break;
case SC_ASSUMPTIO:
sc->opt3 |= 0x800;
- opt_flag = 2;
+ opt_flag = 0;
break;
case SC_WARM: //SG skills [Komurka]
sc->opt3 |= 0x1000;
- opt_flag = 2;
+ opt_flag = 0;
break;
case SC_KAITE:
sc->opt3 |= 0x2000;
- opt_flag = 2;
+ opt_flag = 0;
break;
//OPTION
case SC_HIDING:
@@ -5989,12 +5989,8 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val
//On Aegis, when turning on a status change, first goes the option packet,
// then the sc packet.
- if(opt_flag) {
- if (opt_flag == 2)
- clif_changeoption2(bl);
- else
- clif_changeoption(bl);
- }
+ if(opt_flag)
+ clif_changeoption(bl);
if (calc_flag&SCB_DYE)
{ //Reset DYE color
@@ -6412,15 +6408,15 @@ int status_change_end( struct block_list* bl , int type,int tid )
case SC_HIDING:
sc->option &= ~OPTION_HIDE;
- opt_flag|= 8|4; //Check for warp trigger + AoE trigger
+ opt_flag|= 2|4; //Check for warp trigger + AoE trigger
break;
case SC_CLOAKING:
sc->option &= ~OPTION_CLOAK;
- opt_flag|= 8;
+ opt_flag|= 2;
break;
case SC_CHASEWALK:
sc->option &= ~(OPTION_CHASEWALK|OPTION_CLOAK);
- opt_flag|= 8;
+ opt_flag|= 2;
break;
case SC_SIGHT:
sc->option &= ~OPTION_SIGHT;
@@ -6446,55 +6442,55 @@ int status_change_end( struct block_list* bl , int type,int tid )
case SC_SPEARQUICKEN:
case SC_CONCENTRATION:
sc->opt3 &= ~0x1;
- opt_flag = 2;
+ opt_flag = 0;
break;
case SC_OVERTHRUST:
case SC_MAXOVERTHRUST:
case SC_SWOO:
sc->opt3 &= ~0x2;
- opt_flag = 2;
+ opt_flag = 0;
break;
case SC_ENERGYCOAT:
case SC_SKE:
sc->opt3 &= ~0x4;
- opt_flag = 2;
+ opt_flag = 0;
break;
case SC_INCATKRATE: //Simulated Explosion spirits effect.
if (bl->type != BL_MOB)
break;
case SC_EXPLOSIONSPIRITS:
sc->opt3 &= ~0x8;
- opt_flag = 2;
+ opt_flag = 0;
break;
case SC_STEELBODY:
case SC_SKA:
sc->opt3 &= ~0x10;
- opt_flag = 2;
+ opt_flag = 0;
break;
case SC_BLADESTOP:
sc->opt3 &= ~0x20;
- opt_flag = 2;
+ opt_flag = 0;
break;
case SC_BERSERK:
sc->opt3 &= ~0x80;
- opt_flag = 2;
+ opt_flag = 0;
break;
case SC_MARIONETTE:
case SC_MARIONETTE2:
sc->opt3 &= ~0x400;
- opt_flag = 2;
+ opt_flag = 0;
break;
case SC_ASSUMPTIO:
sc->opt3 &= ~0x800;
- opt_flag = 2;
+ opt_flag = 0;
break;
case SC_WARM: //SG skills [Komurka]
sc->opt3 &= ~0x1000;
- opt_flag = 2;
+ opt_flag = 0;
break;
case SC_KAITE:
sc->opt3 &= ~0x2000;
- opt_flag = 2;
+ opt_flag = 0;
break;
default:
opt_flag = 0;
@@ -6513,12 +6509,8 @@ int status_change_end( struct block_list* bl , int type,int tid )
else if (sd)
clif_status_load(bl,StatusIconChangeTable[type],0);
- if(opt_flag) {
- if (opt_flag & 2)
- clif_changeoption2(bl);
- else
- clif_changeoption(bl);
- }
+ if(opt_flag)
+ clif_changeoption(bl);
if (calc_flag)
status_calc_bl(bl,calc_flag);
@@ -6526,7 +6518,7 @@ int status_change_end( struct block_list* bl , int type,int tid )
if(opt_flag&4) //Out of hiding, invoke on place.
skill_unit_move(bl,gettick(),1);
- if(opt_flag&8 && sd && map_getcell(bl->m,bl->x,bl->y,CELL_CHKNPC))
+ if(opt_flag&2 && sd && map_getcell(bl->m,bl->x,bl->y,CELL_CHKNPC))
npc_touch_areanpc(sd,bl->m,bl->x,bl->y); //Trigger on-touch event.
return 1;