summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/map/battle.c19
-rw-r--r--src/map/skill.c15
-rw-r--r--src/map/status.c2
3 files changed, 20 insertions, 16 deletions
diff --git a/src/map/battle.c b/src/map/battle.c
index ffc39c595..819e4be65 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -2635,16 +2635,10 @@ struct Damage battle_calc_misc_attack(
md.damage = skill_get_zeny(skill_num ,skill_lv);
if (!md.damage) md.damage = 2;
md.damage = md.damage + rand()%md.damage;
-
- if (sd)
- {
- if ( md.damage > sd->status.zeny )
- md.damage=sd->status.zeny;
- pc_payzeny(sd, md.damage);
- }
-
- if(is_boss(target) || tsd || map_flag_gvg2(target->m))
+ if (is_boss(target))
md.damage=md.damage/3;
+ else if (tsd)
+ md.damage=md.damage/2;
break;
case GS_FLING:
md.damage = sd?sd->status.job_level:status_get_lv(src);
@@ -2737,6 +2731,13 @@ struct Damage battle_calc_misc_attack(
if (map_flag_gvg2(target->m))
md.damage=battle_calc_gvg_damage(src,target,md.damage,md.div_,skill_num,skill_lv,md.flag);
+ if (skill_num == NJ_ZENYNAGE && sd)
+ { //Time to Pay Up.
+ if ( md.damage > sd->status.zeny )
+ md.damage=sd->status.zeny;
+ pc_payzeny(sd, md.damage);
+ }
+
return md;
}
/*==========================================
diff --git a/src/map/skill.c b/src/map/skill.c
index aa79bf71d..4b077fb1a 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -3141,14 +3141,15 @@ int skill_castend_damage_id (struct block_list* src, struct block_list *bl, int
sc_start(src,SC_HIDING,100,skilllv,skill_get_time(skillid,skilllv));
break;
case NJ_KIRIKAGE:
- {
+ if (!map_flag_gvg(src->m))
+ { //You don't move on GVG grounds.
short x, y;
map_search_freecell(bl, 0, &x, &y, 1, 1, 0);
- status_change_end(src, SC_HIDING, -1);
if (unit_movepos(src, x, y, 0, 0))
clif_slide(src,src->x,src->y);
- skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag);
}
+ status_change_end(src, SC_HIDING, -1);
+ skill_attack(BF_WEAPON,src,src,bl,skillid,skilllv,tick,flag);
break;
case 0:
if(sd) {
@@ -6077,9 +6078,11 @@ int skill_castend_pos2 (struct block_list *src, int x, int y, int skillid, int s
break;
case NJ_SHADOWJUMP:
{
- unit_movepos(src, x, y, 1, 0);
- clif_slide(src,x,y);
-
+ if (!map_flag_gvg(src->m))
+ { //You don't move on GVG grounds.
+ unit_movepos(src, x, y, 1, 0);
+ clif_slide(src,x,y);
+ }
if (sc && sc->data[SC_HIDING].timer != -1)
status_change_end(src, SC_HIDING, -1);
}
diff --git a/src/map/status.c b/src/map/status.c
index f339e3479..ef3e73021 100644
--- a/src/map/status.c
+++ b/src/map/status.c
@@ -4001,7 +4001,7 @@ struct regen_data *status_get_regen_data(struct block_list *bl)
struct status_data *status_get_status_data(struct block_list *bl)
{
- nullpo_retr(NULL, bl);
+ nullpo_retr(&dummy_status, bl);
switch (bl->type) {
case BL_PC: