summaryrefslogtreecommitdiff
path: root/src/map/battle.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/battle.c')
-rw-r--r--src/map/battle.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/map/battle.c b/src/map/battle.c
index f334f3455..a83df2ba8 100644
--- a/src/map/battle.c
+++ b/src/map/battle.c
@@ -2398,7 +2398,7 @@ static struct Damage battle_calc_mob_weapon_attack(
if(sc_data[SC_TRUESIGHT].timer!=-1) // トゥルーサイト
damage += damage*(2*sc_data[SC_TRUESIGHT].val1)/100;
if(sc_data[SC_BERSERK].timer!=-1) // バーサーク
- damage += damage*50/100;
+ damage += damage*2;
}
if(skill_num>0){
@@ -2970,7 +2970,7 @@ static struct Damage battle_calc_pc_weapon_attack(
cri <<= 1;
}
- if(skill_num == SN_SHARPSHOOTING)
+ if(skill_num == SN_SHARPSHOOTING && rand()%100 < 50)
cri += 200;
}
@@ -3091,8 +3091,8 @@ static struct Damage battle_calc_pc_weapon_attack(
damage2 += damage2*(2*sc_data[SC_TRUESIGHT].val1)/100;
}
if(sc_data[SC_BERSERK].timer!=-1){ // バーサーク
- damage += damage*50/100;
- damage2 += damage2*50/100;
+ damage += damage*2;
+ damage2 += damage2*2;
}
}
@@ -4657,7 +4657,7 @@ int battle_weapon_attack( struct block_list *src,struct block_list *target,
}
}
if(t_sc_data && t_sc_data[SC_BLADESTOP_WAIT].timer != -1){
- if (!(src->type = BL_MOB && mob_db[((struct mob_data *)src)->class].mode&0x32)) {
+ if (!(src->type == BL_MOB && mob_db[((struct mob_data *)src)->class].mode&0x20)) {
int lv = t_sc_data[SC_BLADESTOP_WAIT].val1;
skill_status_change_end(target,SC_BLADESTOP_WAIT,-1);
skill_status_change_start(src,SC_BLADESTOP,lv,1,(int)src,(int)target,skill_get_time2(MO_BLADESTOP,lv),0);
@@ -4702,6 +4702,8 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f
{
int s_p,s_g,t_p,t_g;
struct block_list *ss=src;
+ struct status_change *sc_data;
+ struct status_change *tsc_data;
nullpo_retr(0, src);
nullpo_retr(0, target);
@@ -4726,6 +4728,13 @@ int battle_check_target( struct block_list *src, struct block_list *target,int f
if(target->type == BL_PC && ((struct map_session_data *)target)->invincible_timer != -1)
return -1;
+ // Celest
+ sc_data = battle_get_sc_data(src);
+ tsc_data = battle_get_sc_data(target);
+ if ((sc_data && sc_data[SC_BASILICA].timer != -1) ||
+ (tsc_data && tsc_data[SC_BASILICA].timer != -1))
+ return -1;
+
if(target->type == BL_SKILL) {
switch(((struct skill_unit *)target)->group->unit_id){
case 0x8d: