Jump to content
  • 0

[Help] Summons With Custom Skills/Weapons


Question

Posted

I am unable to give my summons custom skills. Let's say I want to add Dash (4) lvl 1 to Nightshade. I inserted the lvl 1 Nightshade (same with the summon skill lvl) in Npc_skill table. I restarted server and checked in game but it does not add the skill. I found SOME ID's in Eclipse (RequestActionUse) but they are only the skill ID without the NPC ID.

I am also unable to give my summon a weapon. I wanted to give my summon weapon ID 232 (dark elven dagger), but in game it does not show up even when it is set in the SQL. I have tried other weapons and other summoned NPC's.

Could this be a client problem?

Using Interlude L2JFrozen...

 

### Eclipse Workspace Patch 1.0
#P L2jFrozen_GameServer
Index: head-src/com/l2jfrozen/gameserver/model/actor/instance/L2PetInstance.java
===================================================================
--- head-src/com/l2jfrozen/gameserver/model/actor/instance/L2PetInstance.java	(revision 906)
+++ head-src/com/l2jfrozen/gameserver/model/actor/instance/L2PetInstance.java	(working copy)
@@ -26,6 +26,7 @@

import com.l2jfrozen.Config;
import com.l2jfrozen.gameserver.ai.CtrlIntention;
+import com.l2jfrozen.gameserver.datatables.sql.ItemTable;
import com.l2jfrozen.gameserver.datatables.sql.L2PetDataTable;
import com.l2jfrozen.gameserver.idfactory.IdFactory;
import com.l2jfrozen.gameserver.managers.CursedWeaponsManager;
@@ -90,6 +91,8 @@
		if(_data == null)
		{
			_data = L2PetDataTable.getInstance().getPetData(getTemplate().npcId, getStat().getLevel());
+			_currentLHandId = getTemplate().lhand;
+			_currentRHandId = getTemplate().rhand;
		}

		return _data;
@@ -314,17 +317,40 @@
	{
		_pkKills = pkKills;
	}
+	
+	private int _currentLHandId; // normally this shouldn't change from the template, but there exist exceptions
+	private int _currentRHandId; // normally this shouldn't change from the template, but there exist exceptions
+	public void setLHandId(int newWeaponId)
+	{
+		_currentLHandId = newWeaponId;
+	}
+
+	public void setRHandId(int newWeaponId)
+	{
+		_currentRHandId = newWeaponId;
+	}
+	public int getLeftHandItem()
+	{
+		return _currentLHandId;
+	}
+
+	/**
+	 * Return the Identifier of the item in the right hand of this L2NpcInstance contained in the L2NpcTemplate.<BR>
+	 * <BR>
+	 */
+	public int getRightHandItem()
+	{
+		return _currentRHandId;
+	}

	/**
+	/**
	 * Returns the pet's currently equipped weapon instance (if any).
	 */
	@Override
	public L2ItemInstance getActiveWeaponInstance()
	{
-		for(L2ItemInstance item : getInventory().getItems())
-			if(item.getLocation() == L2ItemInstance.ItemLocation.PET_EQUIP && item.getItem().getBodyPart() == L2Item.SLOT_R_HAND)
-				return item;
-
+		// regular NPCs dont have weapons instancies
		return null;
	}

@@ -334,28 +360,52 @@
	@Override
	public L2Weapon getActiveWeaponItem()
	{
-		L2ItemInstance weapon = getActiveWeaponInstance();
+		int weaponId = getTemplate().rhand;
+
+		if(weaponId < 1)
+			return null;
+
+		L2Item item = ItemTable.getInstance().getTemplate(getTemplate().rhand);

-		if(weapon == null)
+		if(!(item instanceof L2Weapon))
			return null;

-		return (L2Weapon) weapon.getItem();
+		return (L2Weapon) item;
	}

+	/**
+	 * Return null (regular NPCs don't have weapons instancies).<BR>
+	 * <BR>
+	 */
+	
	@Override
	public L2ItemInstance getSecondaryWeaponInstance()
	{
-		// temporary? unavailable
+		// regular NPCs dont have weapons instancies
		return null;
	}

+	/**
+	 * Return the weapon item equiped in the left hand of the L2NpcInstance or null.<BR>
+	 * <BR>
+	 */
	@Override
	public L2Weapon getSecondaryWeaponItem()
	{
-		// temporary? unavailable
-		return null;
-	}
+		// Get the weapon identifier equiped in the right hand of the L2NpcInstance
+		int weaponId = getTemplate().lhand;
+
+		if(weaponId < 1)
+			return null;
+
+		// Get the weapon item equiped in the right hand of the L2NpcInstance
+		L2Item item = ItemTable.getInstance().getTemplate(getTemplate().lhand);
+
+		if(!(item instanceof L2Weapon))
+			return null;

+		return (L2Weapon) item;
+	}
	@Override
	public PetInventory getInventory()
	{

The stuff I changed is in that patch, I took pieces from L2NpcInstance which had something about weapons, but didn't work qq

 

SQL

CREATE TABLE `npc` (
  `id` decimal(11,0) NOT NULL DEFAULT '0',
  `idTemplate` int(11) NOT NULL DEFAULT '0',
  `name` varchar(200) DEFAULT NULL,
  `serverSideName` int(1) DEFAULT '0',
  `title` varchar(45) DEFAULT '',
  `serverSideTitle` int(1) DEFAULT '0',
  `class` varchar(200) DEFAULT NULL,
  `collision_radius` decimal(5,2) DEFAULT NULL,
  `collision_height` decimal(5,2) DEFAULT NULL,
  `level` decimal(2,0) DEFAULT NULL,
  `sex` varchar(6) DEFAULT NULL,
  `type` varchar(20) DEFAULT NULL,
  `attackrange` int(11) DEFAULT NULL,
  `hp` decimal(8,0) DEFAULT NULL,
  `mp` decimal(5,0) DEFAULT NULL,
  `hpreg` decimal(8,2) DEFAULT NULL,
  `mpreg` decimal(5,2) DEFAULT NULL,
  `str` decimal(7,0) DEFAULT NULL,
  `con` decimal(7,0) DEFAULT NULL,
  `dex` decimal(7,0) DEFAULT NULL,
  `int` decimal(7,0) DEFAULT NULL,
  `wit` decimal(7,0) DEFAULT NULL,
  `men` decimal(7,0) DEFAULT NULL,
  `exp` decimal(9,0) DEFAULT NULL,
  `sp` decimal(8,0) DEFAULT NULL,
  `patk` decimal(5,0) DEFAULT NULL,
  `pdef` decimal(5,0) DEFAULT NULL,
  `matk` decimal(5,0) DEFAULT NULL,
  `mdef` decimal(5,0) DEFAULT NULL,
  `atkspd` decimal(3,0) DEFAULT NULL,
  `aggro` decimal(6,0) DEFAULT NULL,
  `matkspd` decimal(4,0) DEFAULT NULL,
  `rhand` decimal(4,0) DEFAULT NULL,
  `lhand` decimal(4,0) DEFAULT NULL,
  `enchant` tinyint(1) NOT NULL DEFAULT '0',
  `armor` decimal(1,0) DEFAULT NULL,
  `walkspd` decimal(3,0) DEFAULT NULL,
  `runspd` decimal(3,0) DEFAULT NULL,
  `faction_id` varchar(40) DEFAULT NULL,
  `faction_range` decimal(4,0) DEFAULT NULL,
  `isUndead` int(11) DEFAULT '0',
  `absorb_level` decimal(2,0) DEFAULT '0',
  `absorb_type` enum('FULL_PARTY','LAST_HIT','PARTY_ONE_RANDOM') NOT NULL DEFAULT 'LAST_HIT',
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
INSERT INTO `npc` VALUES ('14110', '14110', 'Spectral Butcher', '0', '', '0', 'Monster.doll_master', '11.00', '36.00', '85', 'male', 'L2Pet', '80', '32000', '2057', '96.12', '3.09', '45', '43', '35', '21', '20', '25', '0', '0', '14000', '6500', '32000', '4200', '400', '0', '777', '232', '232', '0', '0', '80', '270', 'NULL', '0', '0', '0', 'LAST_HIT');
INSERT INTO `npc` VALUES ('14002', '14002', 'Reanimated Man', '0', '', '0', 'Monster.skeleton', '11.00', '25.00', '54', 'male', 'L2Pet', '40', '3843', '1102', '10.27', '2.45', '40', '43', '30', '21', '20', '25', '0', '0', '763', '313', '339', '293', '278', '0', '333', '232', '0', '0', '0', '66', '154', 'NULL', '0', '1', '0', 'LAST_HIT');

 

Thanks

2 answers to this question

Recommended Posts

  • 0
Posted

As you can't make server with eclipse just download the compiled revision

 

Are you fuucking kidding me? Not only are you unable to read the issue, you give a completely retarded answer that has nothing to do with the problem itself. Wow. Did you ask yourself or even read the topic yet? Does this problem relate to me not being able to compile? NO. Read before you post.

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
Answer this question...

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