Skip to content

Nobless Npc

Featured Replies

Hello Everyone!!!

An npc like this was requested by a user(i am lying no one requests from me  :alone: )  :LOL: so i am sharing it here!!!

 

Core Side

Index: E:/l2jdev/l2rebellion/workspace/L2jHellasC/config/Mods/L2JHellas.ini
===================================================================
--- E:/l2jdev/l2rebellion/workspace/L2jHellasC/config/Mods/L2JHellas.ini	(revision 104)
+++ E:/l2jdev/l2rebellion/workspace/L2jHellasC/config/Mods/L2JHellas.ini	(working copy)
@@ -6,6 +6,14 @@
# example: "Announce: Hi All [inspector]"  
AnnounceGmName = False

+#Nobless Npc.This Npc makes you nobless for an item count of your choise
+#Enable Nob npc?
+Allownobnpc = True
+#Item id for nobless
+NobItem = 3470
+#How many items should be removed for nobless status?
+NobCount = 1
+
# GM over enchant protection  
# if GM give more than X enchanted stuff to a player both get banned  
GMOverEnchant = 0
Index: E:/l2jdev/l2rebellion/workspace/L2jHellasC/java/com/l2jhellas/Config.java
===================================================================
--- E:/l2jdev/l2rebellion/workspace/L2jHellasC/java/com/l2jhellas/Config.java	(revision 104)
+++ E:/l2jdev/l2rebellion/workspace/L2jHellasC/java/com/l2jhellas/Config.java	(working copy)
@@ -637,6 +637,9 @@
	/** Check for bad ID ? */

	// l2jhellas_CONFIG_FILE
+	public static boolean ALLOW_NOB_NPC;
+	public static int NOBLESS_COUNT;
+	public static int NOBLESS_ITEM;
	public static boolean SHOW_NPC_CREST;
	public static String EMAIL_USER;
	public static String EMAIL_PASS;
@@ -2069,6 +2072,9 @@
				CHAMPION_SPCL_ITEM = Integer.parseInt(L2JHellasSettings.getProperty("ChampionSpecialItemID", "6393"));
				CHAMPION_SPCL_QTY = Integer.parseInt(L2JHellasSettings.getProperty("ChampionSpecialItemAmount", "1"));
				CHAMPION_SPCL_LVL_DIFF = Integer.parseInt(L2JHellasSettings.getProperty("ChampionSpecialItemLevelDiff", "0"));
+				ALLOW_NOB_NPC = Boolean.parseBoolean(L2JHellasSettings.getProperty("Allownobnpc", "True"));
+				NOBLESS_ITEM = Integer.parseInt(L2JHellasSettings.getProperty("NobItem", "3470"));
+				NOBLESS_COUNT = Integer.parseInt(L2JHellasSettings.getProperty("NobCount", "1"));
				SHOW_NPC_CREST = Boolean.parseBoolean(L2JHellasSettings.getProperty("ShowNpcCrest", "False"));
				ALLOW_CLASS_MASTER = Boolean.valueOf(L2JHellasSettings.getProperty("AllowClassMaster", "False"));
				ALLOW_REMOTE_CLASS_MASTER = Boolean.valueOf(L2JHellasSettings.getProperty("AllowRemoteClassMaster", "False"));
Index: E:/l2jdev/l2rebellion/workspace/L2jHellasC/java/com/l2jhellas/gameserver/model/actor/instance/L2NoblessInstance.java
===================================================================
--- E:/l2jdev/l2rebellion/workspace/L2jHellasC/java/com/l2jhellas/gameserver/model/actor/instance/L2NoblessInstance.java	(revision 0)
+++ E:/l2jdev/l2rebellion/workspace/L2jHellasC/java/com/l2jhellas/gameserver/model/actor/instance/L2NoblessInstance.java	(revision 0)
@@ -0,0 +1,120 @@
+/*
+ * 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 com.l2jhellas.gameserver.model.actor.instance;
+
+import java.util.StringTokenizer;
+import java.util.logging.Logger;
+
+import com.l2jhellas.Config;
+import com.l2jhellas.gameserver.ai.CtrlIntention;
+import com.l2jhellas.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jhellas.gameserver.network.serverpackets.ActionFailed;
+import com.l2jhellas.gameserver.network.serverpackets.MyTargetSelected;
+import com.l2jhellas.gameserver.network.serverpackets.NpcHtmlMessage;
+import com.l2jhellas.gameserver.network.serverpackets.SocialAction;
+import com.l2jhellas.gameserver.network.serverpackets.ValidateLocation;
+import com.l2jhellas.gameserver.templates.L2NpcTemplate;
+import com.l2jhellas.util.Rnd;
+
+
+/** Nobless Manager */
+public class L2NoblessInstance extends L2FolkInstance
+{
+	
+	public int item = Config.NOBLESS_ITEM,count = Config.NOBLESS_COUNT;
+	public L2NoblessInstance(int objectId, L2NpcTemplate template)
+	{
+		super(objectId, template);
+    }
+
+	private final static Logger _log = Logger.getLogger(L2NoblessInstance.class.getName());
+
+    @Override
+    public void onBypassFeedback(L2PcInstance player, String command)
+    {
+    	player.sendPacket(new ActionFailed());
+	    StringTokenizer st = new StringTokenizer(command, " ");
+	    String actualCommand = st.nextToken();
+	    @SuppressWarnings("unused")
+		String val = "";
+	    if (st.countTokens() >= 1)
+	    {
+	        val = st.nextToken();
+	    }
+	    if (actualCommand.equalsIgnoreCase("setnobless"))
+	    {
+	    	if(!(player instanceof L2PcInstance))
+                return;
+            L2PcInstance activeChar = player;
+            if(activeChar.isNoble())
+            {
+                activeChar.sendMessage("You Are Already A Noblesse!.");
+            }
+            else if(!Config.ALLOW_NOB_NPC)
+            {
+            	activeChar.sendMessage("Admin has disabled this npc!");
+            }
+            else if(Config.ALLOW_NOB_NPC && (activeChar.getInventory().getInventoryItemCount(item, - count) >= 0))
+            {
+            	activeChar.destroyItemByItemId("Nobless", item, count, activeChar, true);
+            	activeChar.broadcastPacket(new SocialAction(activeChar.getObjectId(), 16));
+                activeChar.setNoble(true);
+                activeChar.sendMessage("You Are Now a Noble,You Are Granted With Noblesse Status , And Noblesse Skills.");
+                activeChar.broadcastUserInfo();
+                activeChar.getInventory().addItem("Tiara", 7694, 1, activeChar, null);
+            }
+            
+	    }
+	    else
+	    {
+	    	super.onBypassFeedback(player, command);
+	    }
+    }
+
+    @Override
+    public void onAction(L2PcInstance player)
+    {
+	    if (this != player.getTarget())
+	    {
+	        player.setTarget(this);
+	        player.sendPacket(new MyTargetSelected(getObjectId(), player.getLevel() - getLevel()));
+	        player.sendPacket(new ValidateLocation(this));
+	    }
+	    else if (isInsideRadius(player, INTERACTION_DISTANCE, false, false))
+	    {
+	        SocialAction sa = new SocialAction(getObjectId(), Rnd.get(8));
+	        broadcastPacket(sa);
+	        player.setLastFolkNPC(this);
+	        showMessageWindow(player);
+	        player.sendPacket(new ActionFailed());
+	    }
+	    else
+	    {
+	        player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this);
+	        player.sendPacket(new ActionFailed());
+	    }
+    }
+
+    private void showMessageWindow(L2PcInstance player)
+    {
+	    NpcHtmlMessage html = new NpcHtmlMessage(1);
+	    html.setFile("data/html/mods/Nobless.htm");
+	    html.replace("%objectId%", String.valueOf(getObjectId()));
+	    html.replace("%npcname%", getName());
+	    player.sendPacket(html);
+    }
+    
+    
+    }
\ No newline at end of file

 

Now go to data/html/mods like a  :good sir: (if mods folder doesn't exist just create one)

and put this html

<html><title>Nobless Manager</title>
<body>
<center>
<br>
<center><a action="bypass -h npc_%objectId%_setnobless">Give Me Noblesse Status</a><BR></center>
<BR>
<img src="L2UI_CH3.herotower_deco" align="center" width="256" height="32"><br>
</center>
</body>
</html>

 

 

Thanks for watching leave a comment if you like it pm me for private requests!  :gusta:

  • 1 month later...

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.