Browse Source

BETA: Fixing little NPE since [9154] seems like we missed to set summoner in some places.
* Reported by: valdaron

Rumen Nikiforov 12 years ago
parent
commit
d5c9889b68

+ 3 - 2
L2J_DataPack_BETA/dist/game/data/scripts/ai/npc/NpcBuffers/ChristmasTree.java

@@ -79,13 +79,14 @@ public class ChristmasTree extends AbstractNpcAI
 			{
 				L2Skill skill = _holder.getSkill();
 				
-				final L2PcInstance player = _npc.getSummoner().getActingPlayer();
-				if (player == null)
+				if (_npc.getSummoner() == null || !_npc.getSummoner().isPlayer())
 				{
 					ThreadPoolManager.getInstance().scheduleGeneral(this, 1000);
 					return;
 				}
 				
+				final L2PcInstance player = _npc.getSummoner().getActingPlayer();
+				
 				if (!player.isInParty())
 				{
 					if (player.isInsideRadius(_npc, skill.getSkillRadius(), true, true))

+ 3 - 1
L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/ChristmasTree.java

@@ -18,6 +18,7 @@ import com.l2jserver.gameserver.datatables.NpcTable;
 import com.l2jserver.gameserver.handler.IItemHandler;
 import com.l2jserver.gameserver.model.L2Object;
 import com.l2jserver.gameserver.model.L2Spawn;
+import com.l2jserver.gameserver.model.actor.L2Npc;
 import com.l2jserver.gameserver.model.actor.L2Playable;
 import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
 import com.l2jserver.gameserver.model.actor.templates.L2NpcTemplate;
@@ -62,7 +63,8 @@ public class ChristmasTree implements IItemHandler
 			spawn.setLocy(target.getY());
 			spawn.setLocz(target.getZ());
 			spawn.setInstanceId(activeChar.getInstanceId());
-			spawn.spawnOne(false);
+			L2Npc npc = spawn.spawnOne(false);
+			npc.setSummoner(activeChar);
 			
 			activeChar.destroyItem("Consume", item.getObjectId(), 1, null, false);
 			

+ 1 - 0
L2J_DataPack_BETA/dist/game/data/scripts/handlers/itemhandlers/SummonItems.java

@@ -122,6 +122,7 @@ public class SummonItems implements IItemHandler
 						spawn.setInstanceId(activeChar.getInstanceId());
 						spawn.stopRespawn();
 						final L2Npc npc = spawn.spawnOne(true);
+						npc.setSummoner(activeChar);
 						npc.setTitle(activeChar.getName());
 						npc.setIsRunning(false); // broadcast info
 						if (sitem.getDespawnDelay() > 0)