diff options
author | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2007-09-24 17:06:58 +0000 |
---|---|---|
committer | skotlex <skotlex@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2007-09-24 17:06:58 +0000 |
commit | 40fc1ff930002e0ca7301e0f2d575a40f784fb10 (patch) | |
tree | 4c4eb599f9e55d57548db8d496bf27e5ea538f6b /src/map/status.c | |
parent | a4b7e6cc4657bb705f187f536d68ef876cc5a441 (diff) | |
download | hercules-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.c | 68 |
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; |