Forráskód Böngészése

- 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://svn.code.sf.net/p/rathena/svn/trunk@8673 54d463be-8e91-2dee-dedb-b68131a5f0ec

skotlex 18 éve
szülő
commit
56127c4b8d
4 módosított fájl, 23 hozzáadás és 8 törlés
  1. 4 0
      Changelog-Trunk.txt
  2. 8 3
      src/map/battle.c
  3. 1 1
      src/map/clif.c
  4. 10 4
      src/map/guild.c

+ 4 - 0
Changelog-Trunk.txt

@@ -3,6 +3,10 @@ Date	Added
 AS OF SVN REV. 5091, WE ARE NOW USING TRUNK.  ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK.
 IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
 
+2006/09/08
+	* Fixed alliance/opposition making not cancelling out map-server-side when
+	  the guild already had max number of alliances/oppositions (thanks to k3dt)
+	  [Skotlex]
 2006/09/07
 	* Fixed SC_BERSERK setting Hp to 100 when dispelled by unnatural means (eg:
 	  wand of hermod) [Skotlex]

+ 8 - 3
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)

+ 1 - 1
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:

+ 10 - 4
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!");