Jump to content

Recommended Posts

Posted
 @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(); 

 

Posted

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...

Posted
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!

Posted (edited)
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
Posted

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

Posted (edited)

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
Posted
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*.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...