Skip to content

Delete NPC when a MOB dies

Featured Replies

 @Override
    public String onKill(L2Npc npc, L2PcInstance player, boolean isPet)
    {
        switch (npc.getNpcId())
        {
            case Pai:
                if (npc.getNpcId() == Filho)
                {
                    npc.deleteMe();
                }                
                break;                    
        }
        return super.onKill(npc, player, isPet);
    }

 

It should work like this... the "MOB Pai" dies and the "NPC Filho" is deleted.

Why cant i make the "NPC Filho" be deleted? how the npc.deleteMe(); works?
Any other function that i use for the "MOB Pai" works well. but looks like anything cant access "NPC Filho".

Remember "MOB Pai" is a monster.
"NPC Filho" is a Teleporter.

Another thing. the "NPC Filho" only spawns when the "MOB Pai" have its own spawn. that i did make works by my self. my problem is this npc.deleteMe(); 

 

Okey, lets see it again with examples:

 

@Override
public String onKill(L2Npc npc, L2PcInstance player, boolean isPet)
{
	int Pai = 50;
	int Filho = 100;
	
	switch (npc.getNpcId()) // Get the id of the dead monster
	{
		case Pai: // We found it and the dead monster ID is 50
			if (npc.getNpcId() == Filho) // We comparing if the dead monster's ID is 100. IT is not ... It is 50...
			{
				npc.deleteMe(); // This should never run..
			}                
			break;                    
	}
	return super.onKill(npc, player, isPet);
}

 

its like:

 

int value = 50;

switch (value)
{
	case 50:
	if (value == 100)
		System.out.println("hi");
		break;
}

We wont get any print at our console...

  • Author
22 hours ago, melron said:

Okey, lets see it again with examples:

 


@Override
public String onKill(L2Npc npc, L2PcInstance player, boolean isPet)
{
	int Pai = 50;
	int Filho = 100;
	
	switch (npc.getNpcId()) // Get the id of the dead monster
	{
		case Pai: // We found it and the dead monster ID is 50
			if (npc.getNpcId() == Filho) // We comparing if the dead monster's ID is 100. IT is not ... It is 50...
			{
				npc.deleteMe(); // This should never run..
			}                
			break;                    
	}
	return super.onKill(npc, player, isPet);
}

 

its like:

 


int value = 50;

switch (value)
{
	case 50:
	if (value == 100)
		System.out.println("hi");
		break;
}

We wont get any print at our console...

 

Thx u very much 

But i cant find a way to make this works.. how can i make "MOB Pai" dies and something happens with "NPC Filho" ?? i tryed a lot of things and cant make it work
Help please!

7 minutes ago, Tamira said:

 

Thx u very much 

But i cant find a way to make this works.. how can i make "MOB Pai" dies and something happens with "NPC Filho" ?? i tryed a lot of things and cant make it work
Help please!

You should save somewhere the npc Filho when it will be spawned and when the mob Pai dies, you have to get the instance of the other npc...

 

like:

switch (npc.getNpcId()) 
{
	case Pai:
		YourData.getFilho().deleteMe();
		break;
}

 

Edited by melron

Are there no similar quests where you can look it up? I think there was a quest where you have to bring one SOE to a specific NPC. After you did that he disappeared. And respawned later on. Quest was somewhere between Dwarf start area and schuttgart

The idiotic question. Why you tries to delete killed NPC? You have a problems with decaying killed NPCs?

You have to store the Npc reference on the Quest instance level, with a static Npc _npc when it spawns.

 

addSpawn normally return the created Npc, simply store the instance on the famous _npc variable for further usage. _npc has to be cleaned in same time you delete the instance, otherwise it's possible to refer to a non-existing instance.

 

There are few exemples in quests with such variables, I'm sure some quests in aCis got some "_pilgrim" Npc references saved for further usage. Q024/Q025 FoD quest serie also got a chamberlain ghost which walk to a point and is deleted once he did his track.

 

PS : you also have to check if such _npc reference is already filled to avoid to duplicate Npc AND to lose references (meaning a _npc.deleteMe() wouldn't work anymore). A null check is enough.

 

If the solution of a unique static instance isn't ok for you, you have to track all references for every single Player ; you also have to delete the reference once Player logout otherwise it fills the Map for nothing.

Edited by Tryskell

56 minutes ago, Rootware said:

The idiotic question. Why you tries to delete killed NPC? You have a problems with decaying killed NPCs?

 

He wants to kill one Minster and another NPC should disappear. Like the Deletion of Raid Fighters. If Raidboss dies, Spawns go *pooof*.

  • Author

i tried all.. cant make it work................................

 

A Lot of theories but no one really helped 

Edited by Tamira
Rage

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.