Показать сообщение отдельно
Непрочитано 17.01.2011, 08:52   #2
Аватар для Wolfas
Пользователь

По умолчанию Re: Баг при осадах креп и артефактов

Код:
Index: main/java/com/aionemu/gameserver/controllers/MonsterController.java
===================================================================
--- main/java/com/aionemu/gameserver/controllers/MonsterController.java	(revision 267)
+++ main/java/com/aionemu/gameserver/controllers/MonsterController.java	(working copy)
@@ -16,19 +16,8 @@
  */
 package com.aionemu.gameserver.controllers;
 
-import com.aionemu.gameserver.model.alliance.PlayerAlliance;
-import com.aionemu.gameserver.model.gameobjects.AionObject;
 import com.aionemu.gameserver.model.gameobjects.Monster;
-import com.aionemu.gameserver.model.gameobjects.player.Player;
-import com.aionemu.gameserver.model.group.PlayerGroup;
-import com.aionemu.gameserver.questEngine.QuestEngine;
-import com.aionemu.gameserver.questEngine.model.QuestEnv;
-import com.aionemu.gameserver.services.AllianceService;
 import com.aionemu.gameserver.services.DropService;
-import com.aionemu.gameserver.services.GroupService;
-import com.aionemu.gameserver.utils.stats.StatFunctions;
-import com.aionemu.gameserver.world.World;
-import com.aionemu.gameserver.world.WorldType;
 
 /**
  * @author ATracer, Sarynth
@@ -36,58 +25,6 @@
 public class MonsterController extends NpcController
 {
 	@Override
-	public void doReward()
-	{
-		AionObject winner = getOwner().getAggroList().getMostDamage(); 
-		
-		if(winner == null)
-			return;
-		
-		// TODO: Split the EXP based on overall damage.
-		
-		if (winner instanceof PlayerAlliance)
-		{
-			AllianceService.getInstance().doReward((PlayerAlliance)winner, getOwner());
-		}
-		else if (winner instanceof PlayerGroup)
-		{
-			GroupService.getInstance().doReward((PlayerGroup)winner, getOwner());
-		}
-		else if (((Player)winner).isInGroup())
-		{
-			GroupService.getInstance().doReward(((Player)winner).getPlayerGroup(), getOwner());
-		}
-		else
-		{
-			super.doReward();
-			
-			Player player = (Player)winner;
-			
-			// Exp reward
-			long expReward = StatFunctions.calculateSoloExperienceReward(player, getOwner());
-			player.getCommonData().addExp(expReward);
-
-			// DP reward
-			int currentDp = player.getCommonData().getDp();
-			int dpReward = StatFunctions.calculateSoloDPReward(player, getOwner());
-			player.getCommonData().setDp(dpReward + currentDp);
-			
-			// AP reward
-			WorldType worldType = World.getInstance().getWorldMap(player.getWorldId()).getWorldType();
-			if(worldType == WorldType.ABYSS)
-			{
-				int apReward = StatFunctions.calculateSoloAPReward(player, getOwner());
-				player.getCommonData().addAp(apReward);
-			}
-			
-			QuestEngine.getInstance().onKill(new QuestEnv(getOwner(), player, 0 , 0));
-			
-			// Give Drop
-			DropService.getInstance().registerDrop(getOwner() , player, player.getLevel());			
-		}
-	}
-	
-	@Override
 	public void onRespawn()
 	{
 		super.onRespawn();
Index: main/java/com/aionemu/gameserver/controllers/NpcController.java
===================================================================
--- main/java/com/aionemu/gameserver/controllers/NpcController.java	(revision 267)
+++ main/java/com/aionemu/gameserver/controllers/NpcController.java	(working copy)
@@ -30,6 +30,8 @@
 import com.aionemu.gameserver.model.ChatType;
 import com.aionemu.gameserver.model.EmotionType;
 import com.aionemu.gameserver.model.TaskId;
+import com.aionemu.gameserver.model.alliance.PlayerAlliance;
+import com.aionemu.gameserver.model.gameobjects.AionObject;
 import com.aionemu.gameserver.model.gameobjects.Creature;
 import com.aionemu.gameserver.model.gameobjects.Npc;
 import com.aionemu.gameserver.model.gameobjects.Summon;
@@ -38,6 +40,7 @@
 import com.aionemu.gameserver.model.gameobjects.player.RequestResponseHandler;
 import com.aionemu.gameserver.model.gameobjects.state.CreatureState;
 import com.aionemu.gameserver.model.gameobjects.stats.NpcGameStats;
+import com.aionemu.gameserver.model.group.PlayerGroup;
 import com.aionemu.gameserver.model.templates.TradeListTemplate;
 import com.aionemu.gameserver.network.aion.serverpackets.SM_ATTACK;
 import com.aionemu.gameserver.network.aion.serverpackets.SM_ATTACK_STATUS;
@@ -53,8 +56,11 @@
 import com.aionemu.gameserver.questEngine.QuestEngine;
 import com.aionemu.gameserver.questEngine.model.QuestEnv;
 import com.aionemu.gameserver.restrictions.RestrictionsManager;
+import com.aionemu.gameserver.services.AllianceService;
 import com.aionemu.gameserver.services.CraftSkillUpdateService;
 import com.aionemu.gameserver.services.CubeExpandService;
+import com.aionemu.gameserver.services.DropService;
+import com.aionemu.gameserver.services.GroupService;
 import com.aionemu.gameserver.services.ItemService;
 import com.aionemu.gameserver.services.LegionService;
 import com.aionemu.gameserver.services.RespawnService;
@@ -63,7 +69,9 @@
 import com.aionemu.gameserver.services.WarehouseService;
 import com.aionemu.gameserver.utils.MathUtil;
 import com.aionemu.gameserver.utils.PacketSendUtility;
+import com.aionemu.gameserver.utils.stats.StatFunctions;
 import com.aionemu.gameserver.world.World;
+import com.aionemu.gameserver.world.WorldType;
 
 /**
  * This class is for controlling Npc's
@@ -103,6 +111,58 @@
 	}
 
 	@Override
+	public void doReward()
+	{
+		AionObject winner = getOwner().getAggroList().getMostDamage();
+
+		if(winner == null)
+			return;
+
+		// TODO: Split the EXP based on overall damage.
+
+		if (winner instanceof PlayerAlliance)
+		{
+			AllianceService.getInstance().doReward((PlayerAlliance)winner, getOwner());
+		}
+		else if (winner instanceof PlayerGroup)
+		{
+			GroupService.getInstance().doReward((PlayerGroup)winner, getOwner());
+		}
+		else if (((Player)winner).isInGroup())
+		{
+			GroupService.getInstance().doReward(((Player)winner).getPlayerGroup(), getOwner());
+		}
+		else
+		{
+			super.doReward();
+
+			Player player = (Player)winner;
+
+			// Exp reward
+			long expReward = StatFunctions.calculateSoloExperienceReward(player, getOwner());
+			player.getCommonData().addExp(expReward);
+
+			// DP reward
+			int currentDp = player.getCommonData().getDp();
+			int dpReward = StatFunctions.calculateSoloDPReward(player, getOwner());
+			player.getCommonData().setDp(dpReward + currentDp);
+
+			// AP reward
+			WorldType worldType = World.getInstance().getWorldMap(player.getWorldId()).getWorldType();
+			if(worldType == WorldType.ABYSS)
+			{
+				int apReward = StatFunctions.calculateSoloAPReward(player, getOwner());
+				player.getCommonData().addAp(apReward);
+			}
+
+			QuestEngine.getInstance().onKill(new QuestEnv(getOwner(), player, 0 , 0));
+
+			// Give Drop
+			DropService.getInstance().registerDrop(getOwner() , player, player.getLevel());
+		}
+	}
+
+	@Override
 	public void onRespawn()
 	{
 		super.onRespawn();
Index: main/java/com/aionemu/gameserver/services/AllianceService.java
===================================================================
--- main/java/com/aionemu/gameserver/services/AllianceService.java	(revision 267)
+++ main/java/com/aionemu/gameserver/services/AllianceService.java	(working copy)
@@ -29,7 +29,7 @@
 import com.aionemu.gameserver.model.alliance.PlayerAllianceEvent;
 import com.aionemu.gameserver.model.alliance.PlayerAllianceMember;
 import com.aionemu.gameserver.model.gameobjects.Creature;
-import com.aionemu.gameserver.model.gameobjects.Monster;
+import com.aionemu.gameserver.model.gameobjects.Npc;
 import com.aionemu.gameserver.model.gameobjects.player.Player;
 import com.aionemu.gameserver.model.gameobjects.player.RequestResponseHandler;
 import com.aionemu.gameserver.model.group.PlayerGroup;
@@ -580,7 +580,7 @@
 	 * @param winner
 	 * @param owner
 	 */
-	public void doReward(PlayerAlliance alliance, Monster owner)
+	public void doReward(PlayerAlliance alliance, Npc owner)
 	{
 		// TODO: Merge with group type do-reward. (Near identical to GroupService doReward code.)
 		// Plus complete rewrite of drop system and exp system.
Index: main/java/com/aionemu/gameserver/services/GroupService.java
===================================================================
--- main/java/com/aionemu/gameserver/services/GroupService.java	(revision 267)
+++ main/java/com/aionemu/gameserver/services/GroupService.java	(working copy)
@@ -259,7 +259,7 @@
 	 * 
 	 * @param player
 	 */
-	public void doReward(PlayerGroup group, Monster owner)
+	public void doReward(PlayerGroup group, Npc owner)
 	{
 		// Find Group Members and Determine Highest Level
 		List<Player> players = new ArrayList<Player>();
Index: main/java/com/aionemu/gameserver/world/WorldMapType.java
===================================================================
--- main/java/com/aionemu/gameserver/world/WorldMapType.java	(revision 267)
+++ main/java/com/aionemu/gameserver/world/WorldMapType.java	(working copy)
@@ -20,6 +20,7 @@
 {
 	// Asmodea
 	PANDAEMONIUM(120010000),
+	MARCHUTAN(120020000),
 	ISHALGEN(220010000),
 	MORHEIM(220020000),
 	ALTGARD(220030000),
@@ -28,14 +29,21 @@
 
 	// Elysia
 	SANCTUM(110010000),
+	KAISINEL(110020000),
 	POETA(210010000),
 	VERTERON(210030000),
 	ELTNEN(210020000),
 	HEIRON(210040000),
 	THEOMOBOS(210060000),
+	
+	// Balaurea
+	INGGISON(210050000),
+	GELKMAROS(220070000),	
+	SILENTERA_CANYON(600010000),
 
 	// Prison
 	PRISON(510010000),
+	DF_PRISON(520010000),
 
 	RESHANTA(400010000),
 
@@ -60,7 +68,27 @@
 	DRAUPNIR_CAVE(320080000),
 	FIRE_TEMPLE(320100000),
 	ALQUIMIA(320110000),
-	ADMA_STRONGHOLD(320130000);
+	ADMA_STRONGHOLD(320130000),
+	TEMPLE_UP(300150000),
+	TEMPLE_LOW (300160000),
+	CATACOMBS(300170000),
+	ELIM (300190000),
+	NOVICE(300200000),
+	DREDGION_02(300210000),
+	DEBRIS_OF_ABYSS(300220000),
+	CROMEDE(300230000),
+	ABPROD3(320140000),
+	DF1B(320060000),
+	SPACE(320070000),
+	DC1_ARENA(320090000),
+	DC1_ARENA_3F(320120000),
+	
+	//Test Map
+	TEST_BASIC(900020000),
+	TEST_SERVER(900030000),
+	TEST_GIANTMONSTER(900100000),
+	HOUSING_BARRACK(900110000);
+	
 
 	private final int worldId;
 
Index: main/java/com/aionemu/gameserver/world/WorldType.java
===================================================================
--- main/java/com/aionemu/gameserver/world/WorldType.java	(revision 267)
+++ main/java/com/aionemu/gameserver/world/WorldType.java	(working copy)
@@ -24,6 +24,7 @@
 {
 	ASMODAE,
 	ELYSEA,
+	BALAUREA,
 	ABYSS,
 	PRISON,
 	NONE
Вот капайте, объясню взять и применить нельзя, патч не для этой сборки..

Но разобрать можно
__________________
Консоль GameServer не советует:"Вы настраивайте сервер уже 1 час. Советуем вам немного отдохнуть".
Wolfas вне форума Ответить с цитированием