From c18d4eaa0335d8c873a87debb8cbd0a60bfcb436 Mon Sep 17 00:00:00 2001 From: shadow Date: Sun, 1 Mar 2009 22:46:03 +0000 Subject: Fixes from 2008/10/13 bugreport:2077 (Only commiting because nobody did until now and those bugs would get lost) * Fixed monster's Spiral Pierce, now it is always blocked by Pneuma. * Fixed Monk Absorb Spirits mana recovery per spirit absorbed, 7, not 10. * Fixed Monk spirit balls not being removed on death (like happens with gunslingers). * Fixed Swordman Auto-Berserk sp cost, 1, not 5. Should be 0, but eA wont allow the skill to work. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13555 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/battle.c | 3 +++ src/map/pc.c | 2 +- src/map/skill.c | 2 +- 3 files changed, 5 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/map/battle.c b/src/map/battle.c index b1bc7287d..b0ad2f075 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -329,6 +329,9 @@ int battle_calc_damage(struct block_list *src,struct block_list *bl,int damage,i if( sc->data[SC_PNEUMA] && (flag&(BF_MAGIC|BF_LONG)) == BF_LONG ) return 0; + + if( sc->data[SC_PNEUMA] && src->type == BL_MOB && skill_num == LK_SPIRALPIERCE) + return 0; //Mob's Spiral Pierce is always blocked by pneuma [Brain] if( (sce=sc->data[SC_AUTOGUARD]) && flag&BF_WEAPON && !(skill_get_nk(skill_num)&NK_NO_CARDFIX_ATK) && rand()%100 < sce->val2 ) { diff --git a/src/map/pc.c b/src/map/pc.c index 00827a055..ee9dc1878 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -5266,7 +5266,7 @@ int pc_dead(struct map_session_data *sd,struct block_list *src) npc_script_event(sd,NPCE_DIE); - if ( sd && sd->spiritball && (sd->class_&MAPID_BASEMASK)==MAPID_GUNSLINGER ) // maybe also monks' spiritballs ? + if ( sd && sd->spiritball ) // maybe also monks' spiritballs ? pc_delspiritball(sd,sd->spiritball,0); if (src) diff --git a/src/map/skill.c b/src/map/skill.c index f5fb90674..159f445ea 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -3662,7 +3662,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in i = 0; if (dstsd && dstsd->spiritball && (sd == dstsd || map_flag_vs(src->m)) && (dstsd->class_&MAPID_BASEMASK)!=MAPID_GUNSLINGER) { // split the if for readability, and included gunslingers in the check so that their coins cannot be removed [Reddozen] - i = dstsd->spiritball * 10; + i = dstsd->spiritball * 7; pc_delspiritball(dstsd,dstsd->spiritball,0); } else if (dstmd && !(tstatus->mode&MD_BOSS) && rand() % 100 < 20) { // check if target is a monster and not a Boss, for the 20% chance to absorb 2 SP per monster's level [Reddozen] -- cgit v1.2.3-60-g2f50