Jump to content

Question

11 answers to this question

Recommended Posts

  • 0
Posted

Hello there.

 

If i remember correctly you have to modify the calculateRewards(L2Character) in L2Attackable.java. Just add a line killer.giveItem(...) with the proper arguments including the id of the item you want to give.

  • 0
Posted

Need to add seal stones to all monsters because seven signs have some problems.... I tried and did this to add to monsters between 70-75 levels

 

 

Index: java/net/sf/l2j/gameserver/model/actor/L2Attackable.java
===================================================================
--- a/java/net/sf/l2j/gameserver/model/actor/L2Attackable.java
+++ b/java/net/sf/l2j/gameserver/model/actor/L2Attackable.java
@@ -302,4 +302,5 @@
                        }
                }
+
               
                // Manage Base, Quests and Sweep drops of the L2Attackable.
@@ -1129,5 +1130,11 @@
                                else
                                        item = calculateCategorizedRewardItem(player, cat, levelModifier);
-                               
+                                if(getLevel() >= 70 && getLevel() <= 75)
+                                {
+                                        int min_seal_red = Rnd.get(700,1400);
+                                        int min_seal_green = Rnd.get(34350,69000);
+                                        player.addItem("BlueSealStone", 6362, min_seal_red, null, true);
+                                        player.addItem("GreenSealStone", 6361, min_seal_green, null, true);
+                                }
                                if (item != null)
                                {

 

But when i kill for example hot springs monsters it gives me 2 times red and 2 times green stones.

  • 0
Posted

Need to add seal stones to all monsters because seven signs have some problems.... I tried and did this to add to monsters between 70-75 levels

Index: java/net/sf/l2j/gameserver/model/actor/L2Attackable.java
===================================================================
--- a/java/net/sf/l2j/gameserver/model/actor/L2Attackable.java
+++ b/java/net/sf/l2j/gameserver/model/actor/L2Attackable.java
@@ -302,4 +302,5 @@
                        }
                }
+
               
                // Manage Base, Quests and Sweep drops of the L2Attackable.
@@ -1129,5 +1130,11 @@
                                else
                                        item = calculateCategorizedRewardItem(player, cat, levelModifier);
-                               
+                                if(getLevel() >= 70 && getLevel() <= 75)
+                                {
+                                        int min_seal_red = Rnd.get(700,1400);
+                                        int min_seal_green = Rnd.get(34350,69000);
+                                        player.addItem("BlueSealStone", 6362, min_seal_red, null, true);
+                                        player.addItem("GreenSealStone", 6361, min_seal_green, null, true);
+                                }
                                if (item != null)
                                {

But when i kill for example hot springs monsters it gives me 2 times red and 2 times green stones.

 

I already answered you, we use a spawnlist which doesn't use sealstone.

 

Which means there are mobs which got those stones.

 

Which means, edit the godamn spawns to pick directly mobs with stones. You can help yourself with any L2J IL spawnlist.

  • 0
Posted

Need to add seal stones to all monsters because seven signs have some problems.... I tried and did this to add to monsters between 70-75 levels

Index: java/net/sf/l2j/gameserver/model/actor/L2Attackable.java
===================================================================
--- a/java/net/sf/l2j/gameserver/model/actor/L2Attackable.java
+++ b/java/net/sf/l2j/gameserver/model/actor/L2Attackable.java
@@ -302,4 +302,5 @@
                        }
                }
+
               
                // Manage Base, Quests and Sweep drops of the L2Attackable.
@@ -1129,5 +1130,11 @@
                                else
                                        item = calculateCategorizedRewardItem(player, cat, levelModifier);
-                               
+                                if(getLevel() >= 70 && getLevel() <= 75)
+                                {
+                                        int min_seal_red = Rnd.get(700,1400);
+                                        int min_seal_green = Rnd.get(34350,69000);
+                                        player.addItem("BlueSealStone", 6362, min_seal_red, null, true);
+                                        player.addItem("GreenSealStone", 6361, min_seal_green, null, true);
+                                }
                                if (item != null)
                                {

But when i kill for example hot springs monsters it gives me 2 times red and 2 times green stones.

You have added your code inside this loop.  for (DropCategory cat : npcTemplate.getDropData()) {}

 

That's why it is being executed more than once.

  • 0
Posted

I already answered you, we use a spawnlist which doesn't use sealstone.

 

Which means there are mobs which got those stones.

 

Which means, edit the godamn spawns to pick directly mobs with stones. You can help yourself with any L2J IL spawnlist.

i don't understand what you mean... spawnlist don't include drop....

 

I just want to add seal stones to all monsters based on their level.

 

 

You have added your code inside this loop.  for (DropCategory cat : npcTemplate.getDropData()) {}

 

That's why it is being executed more than once.

So where should I add this code?

  • 0
Posted

Stop listening to idiots, the correct way to do it is to add a static reference of your L2DropItem object into the monster's droplist while loading it.

  • 0
Posted (edited)

try this 

net/sf/l2j/gameserver/model/actor/L2Attackable.java
-----------------------------------------------------

    private L2Character _overhitAttacker;
    + private L2PcInstance _PlayerDrop;

	@Override
	public boolean doDie(L2Character killer)
	{
		// Kill the L2Npc (the corpse disappeared after 7 seconds)
		if (!super.doDie(killer))
			return false;
		
	+	if(this instanceof L2MonsterInstance)
	+	{
	+		if (getLevel() >= 70 && getLevel() <= 75)
	+		{
	+			int min_seal_red = Rnd.get(700, 1400);
	+			int min_seal_green = Rnd.get(34350, 69000);
	+			_PlayerDrop.addItem("BlueSealStone", 6362, min_seal_red, null, true);
	+			_PlayerDrop.addItem("GreenSealStone", 6361, min_seal_green, null, true);
	+		}
	+	}
Edited by tazerman2
  • 0
Posted (edited)

Better work on NpcTable.java , as you can see it loads all npcs and adds drops with this method template.addDropData(dropDat, category) where dropDat is is a  DropData instance. Simply use this method again with your own DropData instance (with whatever items  and item counts you want).

Edited by LAGLAG

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