Jump to content

Recommended Posts

Posted

Well, actually i got the idea from Stefoulis share for nobless custom item, with these configs, so i made for hero item, with the same configs +1 more. I have made it and tested it on Gracia Epilogue, Latest rev of dp and core of l2jserver, 100% clean, just checked out with eclipse.

 

 

 

 

 

DP:

Index: data/scripts/handlers/MasterHandler.java
===================================================================
--- data/scripts/handlers/MasterHandler.java	(revision 7524)
+++ data/scripts/handlers/MasterHandler.java	(working copy)
@@ -227,6 +227,8 @@
		ItemHandler.getInstance().registerItemHandler(new Disguise());
		ItemHandler.getInstance().registerItemHandler(new ManaPotion());
		ItemHandler.getInstance().registerItemHandler(new EnergyStarStone());
+		if (Config.ALLOW_HERO_CUSTOM_ITEM)
+		ItemHandler.getInstance().registerItemHandler(new HeroCustomItem());
		_log.config("Loaded " + ItemHandler.getInstance().size() + " ItemHandlers");
	}

 

Core:

Index: java/config/l2jmods.properties
===================================================================
--- java/config/l2jmods.properties	(revision 4307)
+++ java/config/l2jmods.properties	(working copy)
@@ -379,3 +379,23 @@
# Basic protection against L2Walker.
# Default: False
L2WalkerProtection = False
+
+# Allow hero custom item?
+# When players double click on your selected item, they will become hero untill server restart.
+AllowHeroCustomItem = False
+
+# Hero Custom Item ID?
+# Default: Festival Adena (6673)
+HeroCustomItemId = 6673
+
+# Hero Custom Item Level Restriction?
+# A player with lower than 76 lvl, won't be able to use item.
+HeroCustomItemLevelRestriction = False
+
+# Hero Custom Item Needs Nobless?
+# A player that isn't Nobless, won't be able to use it.
+HeroCustomItemNoblessNeeded = False
+
+# Hero Custom Item SubClass Restriction?
+# A player that isn't in a subclass, won't be able to use it.
+HeroCustomItemSubclassRestriction = False
Index: java/com/l2jserver/Config.java
===================================================================
--- java/com/l2jserver/Config.java	(revision 4307)
+++ java/com/l2jserver/Config.java	(working copy)
@@ -681,6 +681,11 @@
	public static String L2JMOD_MULTILANG_DEFAULT;
	public static boolean L2JMOD_MULTILANG_VOICED_ALLOW;
	public static boolean L2WALKER_PROTECTION;
+	public static boolean ALLOW_HERO_CUSTOM_ITEM;
+	public static int HERO_CUSTOM_ITEM_ID;
+	public static boolean HERO_CUSTOM_ITEM_LEVEL_RESTRICTION;
+	public static boolean HERO_CUSTOM_ITEM_NOBLESS_NEEDED;
+	public static boolean HERO_CUSTOM_ITEM_SUBCLASS_RESTRICTION;

	//--------------------------------------------------
	// NPC Settings
@@ -2004,6 +2009,11 @@
					is = new FileInputStream(new File(L2JMOD_CONFIG_FILE));
					L2JModSettings.load(is);

+					ALLOW_HERO_CUSTOM_ITEM = Boolean.parseBoolean(L2JModSettings.getProperty("AllowHeroCustomItem", "false"));
+					HERO_CUSTOM_ITEM_LEVEL_RESTRICTION = Boolean.parseBoolean(L2JModSettings.getProperty("HeroCustomItemLevelRestriction", "false"));
+					HERO_CUSTOM_ITEM_SUBCLASS_RESTRICTION = Boolean.parseBoolean(L2JModSettings.getProperty("HeroCustomItemSubclassRestriction", "false"));
+					HERO_CUSTOM_ITEM_NOBLESS_NEEDED = Boolean.parseBoolean(L2JModSettings.getProperty("HeroCustomItemNoblessNeeded", "false"));
+					HERO_CUSTOM_ITEM_ID = Integer.parseInt(L2JModSettings.getProperty("HeroCustomItemId", "6673"));
					L2JMOD_CHAMPION_ENABLE = Boolean.parseBoolean(L2JModSettings.getProperty("ChampionEnable", "false"));
					L2JMOD_CHAMPION_PASSIVE = Boolean.parseBoolean(L2JModSettings.getProperty("ChampionPassive", "false"));
					L2JMOD_CHAMPION_FREQUENCY = Integer.parseInt(L2JModSettings.getProperty("ChampionFrequency", "0"));

 

Go to (DP) data/scripts/handlers/itemhandlers and make 1 new HeroCustomItem.java file, and paste in:

/*
* 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 handlers.itemhandlers;

import com.l2jserver.Config;
import com.l2jserver.gameserver.handler.IItemHandler;
import com.l2jserver.gameserver.model.L2ItemInstance;
import com.l2jserver.gameserver.model.actor.instance.L2PcInstance;
import com.l2jserver.gameserver.model.actor.instance.L2PlayableInstance;
import com.l2jserver.gameserver.serverpackets.MagicSkillUser;
import com.l2jserver.gameserver.serverpackets.SocialAction;

public class NoblesseItem implements IItemHandler
{
   private static final int ITEM_IDS[] = 
   {
       Config.HERO_CUSTOM_ITEM_ID
   };
   
   public void useItem(L2PlayableInstance playable, L2ItemInstance item)
   {
           if(!(playable instanceof L2PcInstance))
               return;
           L2PcInstance activeChar = (L2PcInstance)playable;
           if(activeChar.isHero())
           {
               activeChar.sendMessage("You Are Already A Server Hero!");
               return;
           } 
           if (activeChar.getLevel() < 76 && Config.HERO_CUSTOM_ITEM_LEVEL_RESTRICTION)
           {
           	activeChar.sendMessage("You need to be lvl 76 to use this item.");
           	return;
           }
           if (!activeChar.isSubClassActive() && Config.HERO_CUSTOM_ITEM_SUBCLASS_RESTRICTION)
           {
           	activeChar.sendMessage("You must be in a subclass to use this item.");
           	return;
           }
           if (!activeChar.isNoble() && Config.HERO_CUSTOM_ITEM_NOBLESS_NEEDED)
           {
           	activeChar.sendMessage("You must be nobless to use this item.");
           	return;
           }
           else
           {
               activeChar.broadcastPacket(new SocialAction(activeChar.getObjectId(), 16));
               activeChar.setHero(true);
               activeChar.sendMessage("You Are Now a Server Hero,You Are Granted With Hero Status , And Hero Skills.");
               activeChar.broadcastUserInfo();
               playable.destroyItem("Consume", item.getObjectId(), 1, null, false);
           }
       }

   public int[] getItemIds()
   {
       return ITEM_IDS;
   }
}

 

Compile it and you are done.

Posted

Actualy its the same code... with little change:

 

(...)

well yes you are right, but not only with this. 1 new config(:P) and some messeges change too :P

Posted

Ye, but its still the same code, isn't it?

 

Its just a template + config + method.

 

Thats all, but what ever.

 

My advice is: share something new, because we can create 1k new item/voiced handlers.. but with different method.

 

But whats the point?

 

- friendly.

Posted

Ye, but its still the same code, isn't it?

 

Its just a template + config + method.

 

Thats all, but what ever.

 

My advice is: share something new, because we can create 1k new item/voiced handlers.. but with different method.

 

But whats the point?

 

- friendly.

Heh, everything i can think to make is already posted :P in this forum exist over 1k shares of java things(new not same) :P

Posted

alt + F.

Search for: Noble

Replace with: Hero

 

and also, let's add setHero(true);

TADAAAAAAAAAAAAAAAAAAAAAAA

 

NEW CODE! OMG OMG, LMAOROFL!

 


 

Didn't I tell you to start making your own codes? >_>

Posted

alt + F.

Search for: Noble

Replace with: Hero

 

and also, let's add setHero(true);

TADAAAAAAAAAAAAAAAAAAAAAAA

 

NEW CODE! OMG OMG, LMAOROFL!

 


 

Didn't I tell you to start making your own codes? >_>

(i added 1 more config, i won't say about that). i like to make this type of codes. do you have a problem with that? if yes, then i don't know what to do, just don't see my posts in l2jdevelope section... lol.

Posted

(i added 1 more config, i won't say about that). i like to make this type of codes. do you have a problem with that? if yes, then i don't know what to do, just don't see my posts in l2jdevelope section... lol.

 

You don't "make" this type of codes, you "copy/paste" this type of codes.

It's different.

Posted

alt + F.

Search for: Noble

Replace with: Hero

 

and also, let's add setHero(true);

TADAAAAAAAAAAAAAAAAAAAAAAA

 

NEW CODE! OMG OMG, LMAOROFL!

 


 

Didn't I tell you to start making your own codes? >_>

You're Wrong!its Ctrl+H

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.



×
×
  • Create New...