Jump to content

Recommended Posts

Posted

Hello. First of all forgive me if this share is already shared. I'm beginner and my shares is not amazing so please don't judge me.

This npc allows players to clear their karma if they pay with item you want.

 

GS

Index: config/ByLeki.properties
===================================================================
--- config/ByLeki.properties	(revision 5)
+++ config/ByLeki.properties	(working copy)
@@ -17,4 +17,13 @@

#Should GMs have Skill Super Haste(4) on startup?
#Default: True
-StartupGMHaste = True
\ No newline at end of file
+StartupGMHaste = True
+
+########################################
+#PK Cleaner NPC
+########################################
+#Item ID for Cleaning PK
+PKCleanItemID = 4037
+
+#PK Cleaning price
+PKCleanPrice = 1
\ No newline at end of file
Index: java/net/sf/l2j/Config.java
===================================================================
--- java/net/sf/l2j/Config.java	(revision 5)
+++ java/net/sf/l2j/Config.java	(working copy)
@@ -504,6 +504,8 @@
	public static boolean ALLOW_GM_DROP;	
	public static boolean SEVEN_SIGNS_MSG;		
	public static boolean GM_STARTUP_HASTE;		
+	public static int PK_CLEAN_ID;	
+	public static int PK_CLEAN_PRICE;		
	// --------------------------------------------------------
	// Rates
	// --------------------------------------------------------
@@ -1301,7 +1303,9 @@
				ALLOW_GM_TRADE = Boolean.parseBoolean(byleki.getProperty("AllowGMTrade", "True"));
				ALLOW_GM_DROP = Boolean.parseBoolean(byleki.getProperty("AllowGMDrop", "True"));
				SEVEN_SIGNS_MSG = Boolean.parseBoolean(byleki.getProperty("Allow7SignsMsg", "True"));
-				GM_STARTUP_HASTE = Boolean.parseBoolean(byleki.getProperty("StartupGMHaste", "True"));					
+				GM_STARTUP_HASTE = Boolean.parseBoolean(byleki.getProperty("StartupGMHaste", "True"));	
+				PK_CLEAN_ID = Integer.parseInt(byleki.getProperty("PKCleanItemID", "4037"));
+				PK_CLEAN_PRICE = Integer.parseInt(byleki.getProperty("PKCleanPrice", "1"));						
			}
			catch (Exception e)
			{
ndex: L2PKCleanerInstance.java
===================================================================
--- java/net/sf/l2j/gameserver/model/actor/instance/L2PKCleanerInstance.java	(revision 0)
+++ java/net/sf/l2j/gameserver/model/actor/instance/L2PKCleanerInstance.java	(revision 0)
@@ -0,0 +1,65 @@
+/*
+ * This program is free software: you can redistribute it and/or modify it under
+ * the terms of the GNU General Public License as published by the Free Software
+ * Foundation, either version 3 of the License, or (at your option) any later
+ * version.
+ * 
+ * This program is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
+ * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
+ * details.
+ * 
+ * You should have received a copy of the GNU General Public License along with
+ * this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+package net.sf.l2j.gameserver.model.actor.instance;
+
+import java.util.StringTokenizer;
+
+import net.sf.l2j.Config;
+import net.sf.l2j.gameserver.network.serverpackets.ActionFailed;
+import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage;
+import net.sf.l2j.gameserver.templates.chars.L2NpcTemplate;
+
+/**
+ * Author: Leki
+ */
+public class L2PKCleanerInstance extends L2NpcInstance
+{
+	public L2PKCleanerInstance(int objectID, L2NpcTemplate template)
+	{
+		super(objectID, template);
+	}
+	
+	@Override
+	public void onBypassFeedback(L2PcInstance player, String command)
+	{
+		if (command.startsWith("CleanPK"))
+		{
+		if(player.getInventory().getItemByItemId(Config.PK_CLEAN_ID).getCount() < Config.PK_CLEAN_PRICE)
+				player.sendMessage("You don't have enough required items!");
+		else if(player.getKarma() == 0)
+				player.sendMessage("You don't have any karma, i cannot change it any lower!");
+		else
+				player.setKarma(0);
+				player.destroyItemByItemId("CleanKarma", Config.PK_CLEAN_ID, Config.PK_CLEAN_PRICE, this, true);
+				player.sendMessage("Your karma cleaned, continue to play!");		
+		}
+		
+		super.onBypassFeedback(player, command);
+	}
+	
+	@Override
+	public void showChatWindow(L2PcInstance player)
+	{
+		player.sendPacket(ActionFailed.STATIC_PACKET);
+		
+		NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
+		
+		html.setFile("data/html/PKCleaner/" + getTemplate().getNpcId() + ".htm");		
+		html.replace("%objectId%", String.valueOf(getObjectId()));
+		html.replace("%name%", player.getName());				
+		player.sendPacket(html);
+	}
+
+}
\ No newline at end of file

 

DP

Index: html/PKCleaner/9999.htm
===================================================================
--- html/PKCleaner/9999.htm	(revision 0)
+++ html/PKCleaner/9999.htm	(revision 0)
@@ -0,0 +1,18 @@
+<html><title>PK Cleaner</title>
+<html>
+<body>
+<center>
+<img src="L2UI_CH3.herotower_deco" width=256 height=32>
+</center>
+<center>
+<br>
+<font color="FF0000">PK Cleaner</font><br>
+<font color="00FF00">Hello, %name%<br>
+I'm the PK Cleaner, I'll Change your karma to 0, it costs 1 Coin of Luck.<br>
+</font><br>
+</center>
+<center>
+<button value="Clean" action="bypass -h npc_%objectId%_CleanPK" width=75 height=21 back="L2UI_ch3.Btn1_normalOn" fore="L2UI_ch3.Btn1_normal">
+<img src="L2UI_CH3.herotower_deco" width=256 height=32><br>
+</center>
+</body></html>
\ No newline at end of file

After that add npc in sql with L2PKCleaner instance

for L2jFrozen

insert into custom_npc values 
(9999, 30298, 'PK Cleaner', 1, 'L2Frozen', 1, 'NPC.a_smith_MDwarf', 7.00, 16.50, 70, 'male', 'L2PKCleaner', 40, 3862, 1493, 11.85, 2.78, 40, 43, 30, 21, 20, 10, 0, 0, 1314, 470, 780, 382, 278, 0, 333, 89, 0, 0, 55, 132, '', 0, 1, 0, 'LAST_HIT');

 

If i did something wrong in codes please feedback.

 

Posted

Awesome Java coding bro! Keep sharing these kind of java Contents and you'll be the best.!

 

thank you meng i have time to make much java codes ( ; just i need a idea to make it :D

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock