Jump to content
  • 0

Help Unsummon a NPC


Question

Recommended Posts

  • 0
Posted

as i told check the exist one.... from the dwarf (maestro) "Summon Merchant Golem"

 

<skill id="831" levels="1" name="Summon Merchant Golem">
	<set name="itemConsumeId" val="1458" />
	<set name="itemConsumeCount" val="5" />
	<set name="mpConsume" val="122" />
	<set name="target" val="TARGET_SELF" />
	<set name="hitTime" val="15000" />
	<set name="reuseDelay" val="75000" />
	<set name="skillType" val="SUMMON" />
	<set name="operateType" val="OP_ACTIVE" />
	<!-- Summon-specific -->
	<set name="summonTotalLifeTime" val="180000" />
	<set name="summonTimeLostIdle" val="1000" />
	<set name="summonTimeLostActive" val="1000" />
	<set name="npcId" val="13128" />
</skill>

 

NPC: \gameserver\data\html\merchant\13128

 

 

u can also use this npc/skill for all classes just add them to all auto learn and edit the html as u want...

 

or u check this codes and learn how its working and do your own one... HF

  • 0
Posted

as i told check the exist one.... from the dwarf (maestro) "Summon Merchant Golem"

 

<skill id="831" levels="1" name="Summon Merchant Golem">
	<set name="itemConsumeId" val="1458" />
	<set name="itemConsumeCount" val="5" />
	<set name="mpConsume" val="122" />
	<set name="target" val="TARGET_SELF" />
	<set name="hitTime" val="15000" />
	<set name="reuseDelay" val="75000" />
	<set name="skillType" val="SUMMON" />
	<set name="operateType" val="OP_ACTIVE" />
	<!-- Summon-specific -->
	<set name="summonTotalLifeTime" val="180000" />
	<set name="summonTimeLostIdle" val="1000" />
	<set name="summonTimeLostActive" val="1000" />
	<set name="npcId" val="13128" />
</skill>

 

NPC: \gameserver\data\html\merchant\13128

 

 

u can also use this npc/skill for all classes just add them to all auto learn and edit the html as u want...

 

or u check this codes and learn how its working and do your own one... HF

 

thank you i think that what i need

 

I will test it soon

 

Best Regards

  • 0
Posted

Skynet all thank to your help  I test this way but I cant show any htm which i need when summon NPC (when press on it show me a pet menu)

How i change it to show Htm file and how make it in Constant location without follow a player 

  • 0
Posted

well i just try to give u some hints i never tested anything with it so i dunno...

but since its and "npc/summoner" its should have anywhere stats about run spd etc...

 

maybe u should try to contact B1ggBoss so he can explain you his way which he gave u here...

  • 0
Posted

then you may schedule it in the SummonItems class (itemhandlers)

 

Thank you so much

I make as you said and add it inside case like bellow code

 

case 5: // Static Temp Summons   (like christmas tree)
		final L2Spawn TempSpwan = new L2Spawn(npcTemplate);

		TempSpwan.setId(IdFactory.getInstance().getNextId());
		TempSpwan.setLocx(activeChar.getX());
		TempSpwan.setLocy(activeChar.getY());
		TempSpwan.setLocz(activeChar.getZ());
		L2World.getInstance().storeObject(TempSpwan.spawnOne(true));
		activeChar.destroyItem("Summon", item.getObjectId(), 1, null, false);
		activeChar.sendMessage("Created " + npcTemplate.getName() + " at x: " + TempSpwan.getLocx() + " y: " + TempSpwan.getLocy() + " z: " + TempSpwan.getLocz());

		ThreadPoolManager.getInstance().scheduleGeneral(new UnSpawn(yourNpc), 90000);
		break;

The above code is same as Static Summons (like christmas tree) But with your cade Make me add custom Temp summon that Unspawn after 90 seconds

 

When I add

ThreadPoolManager.getInstance().scheduleGeneral(new UnSpawn(yourNpc), 90000);

yourNpc is deference than other type of summon = L2Spawn that make class Unspwan you give me deference Can you give me new class make my above code work perfect

 

Best regards

 

  • 0
Posted

I relay use this method on the unspwan class

 

package com.l2jfree.gameserver.handler.itemhandlers;

import com.l2jfree.gameserver.datatables.SpawnTable;
import com.l2jfree.gameserver.model.actor.L2Npc;

public class UnSpawn implements Runnable {

private final L2Npc npc;

public UnSpawn(final L2Npc npc)
{
	this.npc = npc;
}

@Override
public void run()
{
	if(npc != null)
	{
		SpawnTable.getInstance().deleteSpawn(npc.getSpawn(), false);
		npc.deleteMe();
	}
}

}


But the problem On l2jfree  The method getLastSpawn() is undefined for the type L2Npc

and there are efferent between he constructor UnSpawn(L2Spawn) and constructor UnSpawn(L2NPC) each of them in efferent way any other solution to use it PLz

 

  • 0
Posted

i said to use the method getLastSpawn() for TempSpawn (L2Spawn).

L2Npc myNpc = TempSpawn.getLastSpawn();
ThreadPoolManager.getInstance().scheduleGeneral(new UnSpawn(myNpc), 600000);

  • 0
Posted

thank you so mach abit help from you to finish that :)

 

Ok we change type  of myNpc from L2Spawn to the L2Npc to use getLastSpawn() Method

that good no error in the SummonItems

 

But :(

 

in the Unspawn Class there are error in the

 



		SpawnTable.getInstance().deleteSpawn(npc, false);
		npc.deleteMe();

 

The method deleteSpawn(L2Spawn, boolean) in the type SpawnTable is not applicable for the arguments (L2Npc, boolean)

 

I apologize for the inconvenience  ;)

 

  • 0
Posted

Try this:

Index: src/main/java/com/l2jfree/gameserver/handler/itemhandlers/SummonItems.java
===================================================================
--- src/main/java/com/l2jfree/gameserver/handler/itemhandlers/SummonItems.java	(revision 8804)
+++ src/main/java/com/l2jfree/gameserver/handler/itemhandlers/SummonItems.java	(working copy)
@@ -18,6 +18,7 @@
import com.l2jfree.gameserver.ThreadPoolManager;
import com.l2jfree.gameserver.datatables.NpcTable;
import com.l2jfree.gameserver.datatables.SummonItemsData;
+import com.l2jfree.gameserver.datatables.SpawnTable;
import com.l2jfree.gameserver.handler.IItemHandler;
import com.l2jfree.gameserver.idfactory.IdFactory;
import com.l2jfree.gameserver.instancemanager.ClanHallManager;
@@ -134,6 +135,8 @@
			spawn.setLocx(activeChar.getX());
			spawn.setLocy(activeChar.getY());
			spawn.setLocz(activeChar.getZ());
+			UnSpawn unSpawn = new UnSpawn(spawn);
+			ThreadPoolManager.getInstance().scheduleGeneral(unSpawn, 600000);
			L2World.getInstance().storeObject(spawn.spawnOne(true));
			activeChar.destroyItem("Summon", item.getObjectId(), 1, null, false);
			activeChar.sendMessage("Created " + npcTemplate.getName() + " at x: " + spawn.getLocx() + " y: " + spawn.getLocy() + " z: " + spawn.getLocz());
@@ -285,6 +288,23 @@
			petSummon.broadcastStatusUpdate();
		}
	}
+	
+	private class UnSummon implements Runnable
+	{
+		private L2Spawn spawn;
+		
+		private UnSummon(L2Spawn spawn)
+		{
+			this.spawn = spawn;
+		}
+		
+		@Override
+		public void run()
+		{
+			SpawnTable.getInstance().deleteSpawn(spawn, false);
+			spawn.getLastSpawn().deleteMe();
+		}
+	}

	@Override
	public int[] getItemIds()

  • 0
Posted

Hello amazing code i change some of it

 

New patch is

 

#P l2jfree-core
Index: src/main/java/com/l2jfree/gameserver/handler/itemhandlers/SummonItems.java
===================================================================
--- src/main/java/com/l2jfree/gameserver/handler/itemhandlers/SummonItems.java	(revision 8802)
+++ src/main/java/com/l2jfree/gameserver/handler/itemhandlers/SummonItems.java	(working copy)
@@ -19,6 +19,7 @@
import com.l2jfree.gameserver.datatables.NpcTable;
import com.l2jfree.gameserver.datatables.SummonItemsData;
import com.l2jfree.gameserver.handler.IItemHandler;
+import com.l2jfree.gameserver.datatables.SpawnTable;
import com.l2jfree.gameserver.idfactory.IdFactory;
import com.l2jfree.gameserver.instancemanager.ClanHallManager;
import com.l2jfree.gameserver.model.L2ItemInstance;
@@ -153,6 +154,23 @@
		case 4: // Light Purple Maned Horse
			activeChar.mount(sitem.getNpcId(), item.getObjectId(), false);
			break;
+		case 5: // Static Temp Summons   (like christmas tree)
+			final L2Spawn TempSpwan = new L2Spawn(npcTemplate);
+			
+			TempSpwan.setId(IdFactory.getInstance().getNextId());
+			TempSpwan.setLocx(activeChar.getX());
+			TempSpwan.setLocy(activeChar.getY());
+			TempSpwan.setLocz(activeChar.getZ());
+			UnSummon unSpawn = new UnSummon(TempSpwan);
+			ThreadPoolManager.getInstance().scheduleGeneral(unSpawn, 900000);
+			L2World.getInstance().storeObject(TempSpwan.spawnOne(true));
+			activeChar.destroyItem("Summon", item.getObjectId(), 1, null, false);
+			activeChar.sendMessage("Created " + npcTemplate.getName() + " at x: " + TempSpwan.getLocx() + " y: " + TempSpwan.getLocy() + " z: " + TempSpwan.getLocz());
+			//L2Spawn yourNpc = TempSpwan;
+			//L2Npc myNpc = TempSpwan.getLastSpawn();
+			//ThreadPoolManager.getInstance().scheduleGeneral(new UnSpawn(TempSpwan), 90000);
+			//ThreadPoolManager.getInstance().scheduleGeneral(new UnSpawn(myNpc), 90000);
+			break;
		}
	}

@@ -282,7 +300,22 @@
			petSummon.broadcastStatusUpdate();
		}
	}
-
+private class UnSummon implements Runnable
+{
+		private L2Spawn spawn;
+		
+		private UnSummon(L2Spawn spawn)
+		{
+			this.spawn = spawn;
+		}
+		
+		@Override
+		public void run()
+		{
+			SpawnTable.getInstance().deleteSpawn(spawn, false);
+			spawn.getLastSpawn().deleteMe();
+		}
+	}
	public int[] getItemIds()
	{
		return SummonItemsData.getInstance().itemIDs();


 

I will test it after compile to see result soon

 

 

  • 0
Posted

[move] :D yes :D [/move]

 

It's work perfect thank you to help me

 

code is very good that give anyone add a custom summon in specific time

 

All thank to B1ggBoss   ;) and Skynet  ;)

 

Best regards to you my friends

 

 

 

 

Guest
This topic is now closed to further replies.



  • Posts

    • Please note:i will provide you with forum address for registration once buyer sends money(my commission) to forum guarantor's payment details. You can register on forum in any day and in any time,which are convenient for you,send code word in private message to forum guarantor(you will receive code word from buyer). If buyer does not purchase your product,you will need to wait private message(answer) from forum guarantor to compare code word. I will invite you in "forum deal". I will add your name,which you registered on forum,in "forum deal". Then you write in "forum deal": "buyer did not purchase product" and add code word(you will have this right according to clause in forum questionnaire). Forum guarantor will refund buyer((in full amount). If buyer purchases your product,buyer notifies forum guarantor and forum guarantor will send money to my payment details.   Sports exercise machines,jacuzzi,building materials,cosmetics,perfumes,shoes,clothing,furniture,bags,televisions,music centers,telephones,laptops,tablet computers,refrigerators,washing machines,microwaves,fans.  
    • Here is a L2JMobius Classic Interlude FULL server. The share includes full server source+datapack, patch, interface and the P110 client. The original build is L2JMobius. However it was bought from a user called "ClassicLude (https://classic-lude.org/)" which is also a huge scammer, selling free Mobius files for $500. I could not believe someone actually bought this, yet here we are.    Unfortunately the admin is a scammer and refused to pay his remaining balance of over $150 to me since he is too busy "working for Bill Gates" and opening the next big mega mall in ChatGPT city therefore not having enough money. The server itself garnered a massive 30 players so I can't really tell you if this is usable. Knowing its backstory and that it is Mobius based i can surmise that it is NOT suitable for serious users. This build is the result of typical AI slop and vibecode "admins" thinking they just "one shotted L2J" because they discovered how to prompt an agent.   I have made the following changes, some of which were regrettably butchered by the admin after he discovered how to download Cursor. Not much more was done due to the absolute displeasure and misery of having to work on a Mobius server.   - Updated files to JDK 22 - Added l2 reborn community board - Added preview system for skins including mounts/agathions - Added AIO npc (buffer/store/teleporter) - Added QuickVar system - Added Ranking system (pvp/pk/online/level and moar) - Added raid boss list on community board - Added drop search+shift click with itemtooltip on community board and npc - Added l2 reborn styled flash windows and window borders and L2UI_CT1 - Added custom donate coin icon in the store swf - Fixed some random bugs like Hot Springs monsters not giving the disease     Links Source+Datapack: https://drive.google.com/file/d/1uMaTzSxKtnLxXC-VoZyHYW_OXq7Oof5L/view?usp=sharing Interface+Compiler+Client tools: https://drive.google.com/file/d/14IJWyYSDOjMycHnJ749H9dRXuv2JeYK3/view?usp=sharing Full Client: https://drive.google.com/file/d/1P7Yd9wI0XcWlLMFDPSdfTZgWhW_9JEii/view?usp=sharing
    • I logged in with this system, maybe its the patch shared by greenhope i don't remember i just downloaded it because i love C3 but no l2j or l2off c3 is good everything is buggy and this one too, also it has no geodata and i don't know if it has geoengine because i didn't see the config for it in the config folder. If someone had the latest l2jvn maybe it could be more stable but i don't think so at least without the source, if someone has it to share it that would be good  https://www.mediafire.com/file/mzodnsyi9qn4ap7/patch+560+for+c3.rar/file
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..