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.c23
1 files changed, 16 insertions, 7 deletions
diff --git a/src/map/skill.c b/src/map/skill.c
index 20e30c79f..63916b8f1 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -1352,7 +1352,8 @@ int skill_additional_effect (struct block_list* src, struct block_list *bl, int
rate = 3*skilllv;
if (sstatus->dex > tstatus->dex)
rate += (sstatus->dex - tstatus->dex)/5;
- skill_strip_equip(bl, EQP_WEAPON, rate, skilllv, skill_get_time(skillid,skilllv));
+ if (skill_strip_equip(bl, EQP_WEAPON, rate, skilllv, skill_get_time(skillid,skilllv)))
+ clif_skill_nodamage(src,bl,skillid,skilllv,1);
break;
}
@@ -1576,8 +1577,9 @@ int skill_counter_additional_effect (struct block_list* src, struct block_list *
skilllv = dstsd->autospell2[i].lv?dstsd->autospell2[i].lv:1;
if (skilllv < 0) skilllv = 1+rand()%(-skilllv);
- rate = ((sd && !sd->state.arrow_atk) || (status_get_range(src)<=2)) ?
- dstsd->autospell2[i].rate : dstsd->autospell2[i].rate / 2;
+ rate = dstsd->autospell2[i].rate;
+ if (attack_type&BF_LONG)
+ rate>>=1;
if (skillnotok(skillid, dstsd))
continue;
@@ -6069,10 +6071,17 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, int s
case AL_WARP:
if(sd) {
- clif_skill_warppoint(sd,skillid,skilllv,mapindex_id2name(sd->status.save_point.map),
- (skilllv>1 && sd->status.memo_point[0].map)?mapindex_id2name(sd->status.memo_point[0].map):"",
- (skilllv>2 && sd->status.memo_point[1].map)?mapindex_id2name(sd->status.memo_point[1].map):"",
- (skilllv>3 && sd->status.memo_point[2].map)?mapindex_id2name(sd->status.memo_point[2].map):"");
+ char memo[4][MAP_NAME_LENGTH] = {"", "", "", ""};
+ snprintf(memo[0], MAP_NAME_LENGTH, "%s.gat", mapindex_id2name(sd->status.save_point.map));
+ if (skilllv>1 && sd->status.memo_point[0].map)
+ snprintf(memo[1], MAP_NAME_LENGTH, "%s.gat", mapindex_id2name(sd->status.memo_point[0].map));
+ if (skilllv>2 && sd->status.memo_point[1].map)
+ snprintf(memo[2], MAP_NAME_LENGTH, "%s.gat", mapindex_id2name(sd->status.memo_point[1].map));
+ if (skilllv>3 && sd->status.memo_point[2].map)
+ snprintf(memo[3], MAP_NAME_LENGTH, "%s.gat", mapindex_id2name(sd->status.memo_point[2].map));
+
+ clif_skill_warppoint(sd,skillid,skilllv,
+ memo[0],memo[1],memo[2],memo[3]);
}
break;