From 9f4ef6d974826a6fff8e12ebf1e73bedd103f958 Mon Sep 17 00:00:00 2001 From: skotlex Date: Fri, 8 Sep 2006 13:34:38 +0000 Subject: - Fixed alliance/opposition making not cancelling out map-server-side when the guild already had max number of alliances/oppositions (thanks to k3dt) - Cleaned a bit the code for SG_*_ANGER - Fixed a warning in clif.c git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@8673 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/battle.c | 11 ++++++++--- src/map/clif.c | 2 +- src/map/guild.c | 14 ++++++++++---- 3 files changed, 19 insertions(+), 8 deletions(-) (limited to 'src/map') diff --git a/src/map/battle.c b/src/map/battle.c index a2f71a32c..ec5cbad57 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -1765,16 +1765,21 @@ static struct Damage battle_calc_weapon_attack( if (flag.lh) wd.damage2 = battle_addmastery(sd,target,wd.damage2,1); - if((skill=pc_checkskill(sd,SG_STAR_ANGER)) >0 && (t_class == sd->hate_mob[2] || (sc && sc->data[SC_MIRACLE].timer!=-1))) + if((skill=pc_checkskill(sd,SG_STAR_ANGER)) >0 && (t_class == sd->hate_mob[2] || + (sc && sc->data[SC_MIRACLE].timer!=-1))) { - skillratio = (sd->status.base_level + sstatus->str + sstatus->dex + sstatus->luk)/(skill<4?12-3*skill:1); + skillratio = sd->status.base_level + sstatus->str + sstatus->dex + sstatus->luk; + if (skill<4) + skillratio /= 12-3*skill; ATK_ADDRATE(skillratio); } else if( ((skill=pc_checkskill(sd,SG_SUN_ANGER)) >0 && t_class == sd->hate_mob[0]) || ((skill=pc_checkskill(sd,SG_MOON_ANGER)) >0 && t_class == sd->hate_mob[1]) ) { - skillratio = (sd->status.base_level + sstatus->dex+ sstatus->luk)/(skill<4?12-3*skill:1); + skillratio = sd->status.base_level + sstatus->dex+ sstatus->luk; + if (skill<4) + skillratio /= 12-3*skill; ATK_ADDRATE(skillratio); } // Added Tobidougu bonus on throwing weapon ninja skills if not wearing a Fuuma shuriken (bonus already added in battle_addmastery) diff --git a/src/map/clif.c b/src/map/clif.c index 318aa3a99..3b2395812 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -11093,7 +11093,7 @@ void clif_parse_NoviceDoriDori(int fd, struct map_session_data *sd) { case MAPID_TAEKWON: if (!sd->state.rest) break; - if (level = pc_checkskill(sd,TK_SPTIME)) + if ((level = pc_checkskill(sd,TK_SPTIME))) sc_start(&sd->bl,SkillStatusChangeTable(TK_SPTIME), 100,level,skill_get_time(TK_SPTIME, level)); case MAPID_SUPER_NOVICE: diff --git a/src/map/guild.c b/src/map/guild.c index de23c4254..21d88f67b 100644 --- a/src/map/guild.c +++ b/src/map/guild.c @@ -1285,12 +1285,16 @@ int guild_reqalliance(struct map_session_data *sd,struct map_session_data *tsd) if(sd->status.guild_id == tsd->status.guild_id) return 0; - if( guild_get_alliance_count(g[0],0)>=3 ) // 同盟数確認 + if( guild_get_alliance_count(g[0],0)>=3 ) { clif_guild_allianceack(sd,4); - if( guild_get_alliance_count(g[1],0)>=3 ) + return 0; + } + if( guild_get_alliance_count(g[1],0)>=3 ) { clif_guild_allianceack(sd,3); + return 0; + } - if( tsd->guild_alliance>0 ){ // 相手が同盟要請状態かどうか確認 + if( tsd->guild_alliance>0 ){ clif_guild_allianceack(sd,1); return 0; } @@ -1393,8 +1397,10 @@ int guild_opposition(struct map_session_data *sd,struct map_session_data *tsd) if(sd->status.guild_id == tsd->status.guild_id) return 0; - if( guild_get_alliance_count(g,1)>=3 ) // 敵対数確認 + if( guild_get_alliance_count(g,1)>=3 ) { clif_guild_oppositionack(sd,1); + return 0; + } if(agit_flag) { clif_displaymessage(sd->fd,"You cannot make oppositions during Guild Wars!"); -- cgit v1.2.3-70-g09d2