Jump to content

PK Cleaner NPC


Recommended Posts

  • 1 month later...

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.

 

i got error in game if i talk to npc to delete my pks!!!

Link to comment
Share on other sites

It doesn't actually delete your pks,but your karma.

 

what's your error anyway.

 

http://imageshack.us/photo/my-images/228/pkerror.png/

and my pack is the acis!!!

i dont remember if i have nay error when i past this code

Link to comment
Share on other sites

http://imageshack.us/photo/my-images/228/pkerror.png/

and my pack is the acis!!!

i dont remember if i have nay error when i past this code

Its NPE(NullPointerException).
Link to comment
Share on other sites

  • 4 months later...
  • 5 months later...

thx

 

dont spam like that.

 

This npc should be only on datapack side as a custom script but other than that its fine(tho the topic title should be changed to karma cleaner instead of pk count)

Link to comment
Share on other sites

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
Reply to this topic...

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



  • Posts

    • Both "MMO genre" AND "forums" are greatly deprecated those days. MMO genre, except very few games (TESO, WOW, BDO, FF14), is mostly "eaten" by fast paced games (aka games with 15-30min game parties, they are numerous). See Twitch best games, I doubt the top 10 are MMOs. Adding more MMOs categories, while MMOs themselves got less population, isn't a bright idea. Also, in the past, there was multiple games categories - none actually worked out, so far. Forums type were replaced by Discord, mostly. You communicate faster, you got voice, you can group up and it's already thematized (by server, by guild, by game,...)... Unfortunately, there is nothing you can do about. You already did it multiple times without success (3 or 4 times at least ?). It's not due to staff. MMO forum is just "niche" nowadays, while 20 years ago it was "dope" and the thing to do. Your main problem is MxC is a community based on "nothing". It was first cheater dedicated, then mostly L2 development dedicated,... With a mix of random things here and there. The formula is lightly-themed as "community" (that's actually why you still have some ppl posting), and in same time community never was expanded to retain ppl (notably through MxC servers - no matter the game : L2, GTA, Conan Exiles, Lost Ark, whatever else). In the end, you end with "nothing", since people comes and goes (and mostly goes, since MMO isn't a thing anymore), but both MMO genre is greatly endangered by other types of games AND forums isn't the proper way to communicate in 2024. Actually, the only use of a forums compared to Discord is to search through archives, and the main point is it's a better "showcase" than Discord (a static website would end with the same output). The proposed formula will never work, or at best will attract greedy ppl.
    • Welcome to my store :https://ultrasstore11.mysellix.io/fr/ 2015-2022 Aged Discord Account 2015 Discord Account : 50.99 $ 2016 Discord Account : 10.50 $ 2017 Discord Account :4.99 $ 2018 Discord Account : 3.99 $ 2019 Discord Account : 2.99 $ 2020 Discord Account :1.99$ 2021 Discord Account :1.50$ 2022 Discord Account :0.99$ Warranty :Lifetime Payment Methods : Crypto/ PayPal Contact Me On Discord Or Telegram Discord :@ultrasstore11 Telegram : https://t.me/ultrastore11  
    • Hello everyone,    As you can see lately, the L2 community is decreasing, especially on private servers, its been 21 years since Lineage2 release date (1st October 2003). MaxCheaters.com was created in 2005 (with different names) and till today we are basically focused on Lineage 2. We made several attempts to add other games, but everyone still knew us as an L2 based forum. MaxCheaters has a long history and is one of the few forums that have survived to this day,It would be a shame to let the site die.   So I came up with a few ideas to improve it and follow the trends.   1. Create a utility token, (evm or solana), that will be used for several things such as: Staffers/moderators payment. Content creators reward system. (influencers/advertising/topic creators) Paid forum support. Exchanges and marketplaces . Lineage 2 utility token for private servers. Other MMO utility token for buying/selling accounts/gold etc. Maxcheaters fixed expenses/improvements/development/expansion/design/topsite   2. Reduce l2 sections, (we done this before) , and add more games on main page Less l2 sections More MMO games Focus on marketplaces    3. Rebuild staffers team/more events. Add one staffer per MMO game. More active staffers on our team.   4. Social media activity / streaming Twtter / TikTok content for gaming.  Streaming platforms (create official channel) Moderators/content creators for this content specifically.
  • Topics

×
×
  • Create New...