summaryrefslogtreecommitdiff
path: root/src/map/battle.c
diff options
context:
space:
mode:
authorcelest <celest@54d463be-8e91-2dee-dedb-b68131a5f0ec>2004-11-21 14:48:28 +0000
committercelest <celest@54d463be-8e91-2dee-dedb-b68131a5f0ec>2004-11-21 14:48:28 +0000
commitb6e172482b1a91869c8ffd630d8b0e97c98ad8d0 (patch)
tree1dc20e710d329b9aabada92e0ebc7fb78deeea18 /src/map/battle.c
parent81ff879313b29ee97375d214b00f78b1f75d3d4a (diff)
downloadhercules-b6e172482b1a91869c8ffd630d8b0e97c98ad8d0.tar.gz
hercules-b6e172482b1a91869c8ffd630d8b0e97c98ad8d0.tar.bz2
hercules-b6e172482b1a91869c8ffd630d8b0e97c98ad8d0.tar.xz
hercules-b6e172482b1a91869c8ffd630d8b0e97c98ad8d0.zip
- Updated Basilica, Sharp Shooting, Berserk, Meditatio
- Fixed a typo with Blade Stop that was causing crashes, sorry. ^^; - Reverted changes to Cloaking, ours is already more updated (than Freya!) ^_^ git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/athena@293 54d463be-8e91-2dee-dedb-b68131a5f0ec
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: