Jump to content
  • 0

Unlimited SS/BSS/Arrows


Question

3 answers to this question

Recommended Posts

  • 0
Posted

It's "request dev help" section, not "supermarket".

 

The correct formulation would be "I tried to make that, but after X mins/hours/days of hard work, I finally ended to that, which is still buggy : here is my code, and bless all your faces with nutella".

  • 0
Posted

Well, I'm so kind (right now) so, try this, it's supposed to work -- small c/p ;D

 

--- gameserver/config/players.properties
+++ gameserver/config/players.properties
@@ -341,3 +341,9 @@
PKRewardEnabled = True
PKRewardItemId = 6392
PKRewardAm-beep-t = 1
+
+# On / off infinite nipples (SS/BSS)
+DontDestroySS = True
+
+#On / Off  don`t destroy arrows
+DontDestroyArrows = True
\ No newline at end of file

--- gameserver/java/net/sf/l2j/Config.java
+++ gameserver/java/net/sf/l2j/Config.java
@@ -416,6 +416,8 @@
	public static int PK_REWARD_ID;
	public static int PK_REWARD_A-beep-T;

+	public static boolean DONT_DESTROY_SS;
+	public static boolean DONT_DESTROY_ARROWS;

	/** Augmentations */
	public static int AUGMENTATION_NG_SKILL_CHANCE;
@@ -1186,6 +1188,12 @@
				PK_REWARD_ID = Integer.parseInt(players.getProperty("PKRewardItemId", "6392"));
				PK_REWARD_A-beep-T = Integer.parseInt(players.getProperty("PKRewardAm-beep-t", "1"));

+				/** other settings **/
+				// Destroy ss
+				DONT_DESTROY_SS = Boolean.parseBoolean(players.getProperty("DontDestroySS", "false"));
+				// Destroy arrows
+				DONT_DESTROY_ARROWS = Boolean.parseBoolean(players.getProperty("DontDestroyArrows", "false"));
+				
				AUGMENTATION_NG_SKILL_CHANCE = Integer.parseInt(players.getProperty("AugmentationNGSkillChance", "15"));
				AUGMENTATION_NG_GLOW_CHANCE = Integer.parseInt(players.getProperty("AugmentationNGGlowChance", "0"));
				AUGMENTATION_MID_SKILL_CHANCE = Integer.parseInt(players.getProperty("AugmentationMidSkillChance", "30"));

--- gameserver/java/net/sf/l2j/gameserver/handler/itemhandlers/BeastSoulShot.java
+++ gameserver/java/net/sf/l2j/gameserver/handler/itemhandlers/BeastSoulShot.java
@@ -14,6 +14,7 @@
  */
package net.sf.l2j.gameserver.handler.itemhandlers;

+import net.sf.l2j.Config;
import net.sf.l2j.gameserver.handler.IItemHandler;
import net.sf.l2j.gameserver.model.L2ItemInstance;
import net.sf.l2j.gameserver.model.actor.L2Playable;
@@ -93,13 +94,15 @@
		}

		// If the player doesn't have enough beast soulshot remaining, remove any auto soulshot task.
+		if(!Config.DONT_DESTROY_SS)
+		{
		if (!activeOwner.destroyItemWithoutTrace("Consume", item.getObjectId(), shotConsumption, null, false))
		{
			if (!activeOwner.disableAutoShot(itemId))
				activeOwner.sendPacket(SystemMessageId.NOT_ENOUGH_SOULSHOTS_FOR_PET);
			return;
		}
-		
+		}
		activeOwner.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.PET_USES_S1).addItemName(itemId));
		Broadcast.toSelfAndKnownPlayersInRadiusSq(activeOwner, new MagicSkillUse(activePet, activePet, 2033, 1, 0, 0), 360000);
	}

--- gameserver/java/net/sf/l2j/gameserver/handler/itemhandlers/BeastSpiritShot.java
+++ gameserver/java/net/sf/l2j/gameserver/handler/itemhandlers/BeastSpiritShot.java
@@ -14,6 +14,7 @@
  */
package net.sf.l2j.gameserver.handler.itemhandlers;

+import net.sf.l2j.Config;
import net.sf.l2j.gameserver.handler.IItemHandler;
import net.sf.l2j.gameserver.model.L2ItemInstance;
import net.sf.l2j.gameserver.model.actor.L2Playable;
@@ -97,14 +98,15 @@
			else
				weaponInst.setChargedSpiritshot(L2ItemInstance.CHARGED_SPIRITSHOT);
		}
-		
+		if(!Config.DONT_DESTROY_SS)
+		{
		if (!activeOwner.destroyItemWithoutTrace("Consume", item.getObjectId(), shotConsumption, null, false))
		{
			if (!activeOwner.disableAutoShot(itemId))
				activeOwner.sendPacket(SystemMessageId.NOT_ENOUGH_SPIRITSHOTS_FOR_PET);
			return;
		}
-		
+		}
		activeOwner.sendPacket(SystemMessage.getSystemMessage(SystemMessageId.PET_USES_S1).addItemName(itemId));
		Broadcast.toSelfAndKnownPlayersInRadiusSq(activeOwner, new MagicSkillUse(activePet, activePet, ((itemId == 6646) ? 2008 : 2009), 1, 0, 0), 360000);
	}

--- gameserver/java/net/sf/l2j/gameserver/handler/itemhandlers/BlessedSpiritShot.java
+++ gameserver/java/net/sf/l2j/gameserver/handler/itemhandlers/BlessedSpiritShot.java
@@ -14,6 +14,7 @@
  */
package net.sf.l2j.gameserver.handler.itemhandlers;

+import net.sf.l2j.Config;
import net.sf.l2j.gameserver.handler.IItemHandler;
import net.sf.l2j.gameserver.model.L2ItemInstance;
import net.sf.l2j.gameserver.model.actor.L2Playable;
@@ -90,6 +91,8 @@
		}

		// Consume bss if player has enough of them
+		if(!Config.DONT_DESTROY_SS)
+		{
		if (!activeChar.destroyItemWithoutTrace("Consume", item.getObjectId(), weaponItem.getSpiritShotCount(), null, false))
		{
			if (!activeChar.disableAutoShot(itemId))
@@ -97,7 +100,7 @@

			return;
		}
-		
+		}
		// Charge bss
		weaponInst.setChargedSpiritshot(L2ItemInstance.CHARGED_BLESSED_SPIRITSHOT);

--- gameserver/java/net/sf/l2j/gameserver/handler/itemhandlers/SoulShots.java
+++ gameserver/java/net/sf/l2j/gameserver/handler/itemhandlers/SoulShots.java
@@ -14,6 +14,7 @@
  */
package net.sf.l2j.gameserver.handler.itemhandlers;

+import net.sf.l2j.Config;
import net.sf.l2j.gameserver.handler.IItemHandler;
import net.sf.l2j.gameserver.model.L2ItemInstance;
import net.sf.l2j.gameserver.model.actor.L2Playable;
@@ -94,6 +95,8 @@
				return;

			// Consume Soul shots if player has enough of them
+			if(!Config.DONT_DESTROY_SS)
+			{
			int saSSCount = (int) activeChar.getStat().calcStat(Stats.SOULSHOT_COUNT, 0, null, null);
			int SSCount = saSSCount == 0 ? weaponItem.getSoulShotCount() : saSSCount;

@@ -104,7 +107,7 @@

				return;
			}
-			
+			}
			// Charge soulshot
			weaponInst.setChargedSoulshot(L2ItemInstance.CHARGED_SOULSHOT);
		}

--- gameserver/java/net/sf/l2j/gameserver/handler/itemhandlers/SpiritShot.java
+++ gameserver/java/net/sf/l2j/gameserver/handler/itemhandlers/SpiritShot.java
@@ -14,6 +14,7 @@
  */
package net.sf.l2j.gameserver.handler.itemhandlers;

+import net.sf.l2j.Config;
import net.sf.l2j.gameserver.handler.IItemHandler;
import net.sf.l2j.gameserver.model.L2ItemInstance;
import net.sf.l2j.gameserver.model.actor.L2Playable;
@@ -89,6 +90,8 @@
		}

		// Consume sps if player has enough of them
+		if(!Config.DONT_DESTROY_SS)
+		{
		if (!activeChar.destroyItemWithoutTrace("Consume", item.getObjectId(), weaponItem.getSpiritShotCount(), null, false))
		{
			if (!activeChar.disableAutoShot(itemId))
@@ -96,7 +99,7 @@

			return;
		}
-		
+		}
		// Charge sps
		weaponInst.setChargedSpiritshot(L2ItemInstance.CHARGED_SPIRITSHOT);

--- gameserver/java/net/sf/l2j/gameserver/model/actor/L2Character.java
+++ gameserver/java/net/sf/l2j/gameserver/model/actor/L2Character.java
@@ -859,10 +859,12 @@
		boolean miss1 = Formulas.calcHitMiss(this, target);

		// Consume arrows
+		if(!Config.DONT_DESTROY_ARROWS)
+		{
		reduceArrowCount();

		_move = null;
-		
+		}
		// Check if hit isn't missed
		if (!miss1)
		{

 

Bubu, bad mama Tryskell ;D

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