diff options
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/skill.c | 5 | ||||
-rw-r--r-- | src/map/status.c | 10 |
2 files changed, 9 insertions, 6 deletions
diff --git a/src/map/skill.c b/src/map/skill.c index 2b4ab9394..789eb1f62 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -5225,8 +5225,9 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in pc_breakshield(dstsd);
break;
- case NPC_POWERUP: //NPC”š—ô”g“®
- status_change_start(bl,SC_EXPLOSIONSPIRITS,skilllv,0,0,0,skilllv * 60000,0);
+ case NPC_POWERUP:
+ // +25% attack per skill level? It's a guess... [Skotlex]
+ status_change_start(bl,SC_INCATKRATE,25*skilllv,0,0,0,skilllv * 60000,0);
// another random guess xP
clif_skill_nodamage(src,bl,skillid,skilllv,1);
status_change_start(bl,SC_INCALLSTATUS,skilllv * 5,0,0,0,skilllv * 60000,0);
diff --git a/src/map/status.c b/src/map/status.c index 1a7dbb3d6..4ae4b81f7 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -2140,8 +2140,6 @@ int status_calc_watk(struct block_list *bl, int watk) watk += watk * 3;
if(sc->data[SC_NIBELUNGEN].timer!=-1 && bl->type != BL_PC && (status_get_element(bl)/10)>=8)
watk += sc->data[SC_NIBELUNGEN].val2;
- if(sc->data[SC_EXPLOSIONSPIRITS].timer!=-1 && bl->type != BL_PC)
- watk += (1000*sc->data[SC_EXPLOSIONSPIRITS].val1);
if(sc->data[SC_CURSE].timer!=-1)
watk -= watk * 25/100;
if(sc->data[SC_STRIPWEAPON].timer!=-1 && bl->type != BL_PC)
@@ -4536,7 +4534,9 @@ int status_change_start(struct block_list *bl,int type,int val1,int val2,int val val4 = gettick(); //Store time at which you started running.
calc_flag = 1;
break;
-
+ case SC_INCATKRATE: /* ATK%㸠*/
+ if (bl->type == BL_MOB)
+ sc->opt3 |= 8; //Simulate Explosion Spirits effect for NPC_POWERUP [Skotlex]
case SC_CONCENTRATE: /* W’†—ÍŒüã */
case SC_BLESSING: /* ƒuƒŒƒbƒVƒ“ƒO */
case SC_ANGELUS: /* ƒAƒ“ƒ[ƒ‹ƒX */
@@ -4558,7 +4558,6 @@ int status_change_start(struct block_list *bl,int type,int val1,int val2,int val case SC_INCFLEERATE: /* FLEE%㸠*/
case SC_INCMHPRATE: /* MHP%㸠*/
case SC_INCMSPRATE: /* MSP%㸠*/
- case SC_INCATKRATE: /* ATK%㸠*/
case SC_INCMATKRATE:
case SC_INCDEFRATE:
case SC_INCSTR:
@@ -5196,6 +5195,9 @@ int status_change_end( struct block_list* bl , int type,int tid ) case SC_ENERGYCOAT: /* ƒGƒiƒW?ƒR?ƒg */
sc->opt3 &= ~4;
break;
+ case SC_INCATKRATE: //Simulated Explosion spirits effect.
+ if (bl->type != BL_MOB)
+ break;
case SC_EXPLOSIONSPIRITS: // ”š—ô”g“®
sc->opt3 &= ~8;
break;
|