summaryrefslogtreecommitdiff
path: root/src/map/skill.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/skill.c')
-rw-r--r--src/map/skill.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/src/map/skill.c b/src/map/skill.c
index 0b734d41a..9840d76dc 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -4407,7 +4407,7 @@ int skill_castend_nodamage_id( struct block_list *src, struct block_list *bl,int
}
}
break;
- case GD_REGENERATION:
+ case GD_REGENERATION:
{
struct guild *g = NULL;
if (sd && sd->status.guild_id > 0 && (g = guild_search(sd->status.guild_id)) &&
@@ -4430,7 +4430,7 @@ int skill_castend_nodamage_id( struct block_list *src, struct block_list *bl,int
for(i = 0; i < g->max_member; i++) {
if ((dstsd = g->member[i].sd) != NULL && sd->bl.m == dstsd->bl.m) {
hp = dstsd->status.max_hp*0.9;
- sp = dstsd->status.sp + hp < dstsd->status.max_sp ? hp : dstsd->status.max_sp - dstsd->status.sp;
+ sp = dstsd->status.sp + hp <= dstsd->status.max_sp ? hp : dstsd->status.max_sp - dstsd->status.sp;
clif_skill_nodamage(src,bl,AL_HEAL,hp,1);
battle_heal(NULL,bl,hp,sp,0);
}
@@ -9798,19 +9798,15 @@ int skill_check_cloaking(struct block_list *bl)
skill_status_change_end(bl, SC_CLOAKING, -1);
*battle_get_option(bl)&=~4; /* 念のための?理 */
}
- else if (bl->type == BL_PC) {
+ else if (bl->type == BL_PC && sd->sc_data[SC_CLOAKING].val3 != 130) {
sd->sc_data[SC_CLOAKING].val3 = 130;
- //sd->speed = sd->speed * sd->sc_data[SC_CLOAKING].val3 /100;
- //clif_updatestatus(sd,SP_SPEED);
- pc_calcstatus (sd,0); // better way than calling this everytime?
+ pc_calcspeed (sd);
}
}
else {
- if (bl->type == BL_PC) {
+ if (bl->type == BL_PC && sd->sc_data[SC_CLOAKING].val3 != 103) {
sd->sc_data[SC_CLOAKING].val3 = 103;
- //sd->speed = sd->speed * sd->sc_data[SC_CLOAKING].val3 /100;
- //clif_updatestatus(sd,SP_SPEED);
- pc_calcstatus (sd,0);
+ pc_calcspeed (sd);
}
}
return end;