Jump to content
  • 0

Spawn onKill mob [Java Code]


Question

Posted

Hi. I have the hope that someone can help me.

 

I need java code to do the following:

 

When I kill a mob, there is another in a particular location by coordinates.

 

Example:

 

I kill Elpy1 in Giran. And when it dies, it then appears to Elpy2 in Dion.

 

Anyone tell me how to do this?

 

Thanks in advance.

4 answers to this question

Recommended Posts

  • 0
Posted

this is a way without using extra memory

 

import com.l2jserver.gameserver.model.L2Spawn;
import com.l2jserver.gameserver.model.actor.L2Npc;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.quest.Quest;

/**
* @author BiggBoss
*/
public final class NextSpawn extends Quest
{	
public NextSpawn(int questId, String name, String descr)
{
	super(questId, name, descr);
	addKillId(ELPY_ID); 
}

@Override
public String onKill(L2Npc npc, L2PcInstance player, boolean isPet)
{
	int[] coords = getNextSpawn(npc.getSpawn().getLocx(), npc.getSpawn().getLocy());
	// This way in case you want to delete the died elpy
	if(coords != null)
	{
		L2Spawn mySpawn = npc.getSpawn();
		npc.deleteMe();
		mySpawn.setLocx(coords[0]);
		mySpawn.setLocy(coords[1]);
		mySpawn.setLocz(coords[2]);
		mySpawn.init();
	}

	// This way in case you want to keep the died elpy and let him respawn
	if(coords != null)
	{
		L2Spawn spawn = new L2Spawn(NpcTable.getInstance().getTemplate(ELPY_ID));
		spawn.setLocx(coords[0]);
		spawn.setLocy(coords[1]);
		spawn.setLocz(coords[2]);
		spawn.init();
		SpawnTable.getInstance().addNewSpawn(spawn, false);
	}
	return null;
}

private final int[] getNextSpawn(final int curX, final int curY)
{
	int[] coords = new int[3];
	if(curX == 0 && curY == 0)
	{
		coords[0] = 1; // X
		coords[1] = 1; // Y
		coords[2] = 1; // Z
	}
	else if(curX == 1 && curY == 1)
	{
		// Same thing
	}
	return coords;
}
}

Guest
This topic is now closed to further replies.


×
×
  • Create New...