Jump to content

Recommended Posts

Posted

New code  :D

Index: /trunk/L2J-Game/config/main/custom.properties
===================================================================
--- /trunk/L2J-Game/config/main/custom.properties (revision 1639)
+++ /trunk/L2J-Game/config/main/custom.properties (revision 1680)
@@ -266,2 +266,9 @@
PvpRewardItemName = Adena
PvpRewardAmmount = 100
+
+# Allow custom starter items?
+AllowCustomStarterItems = false
+
+# You must allow custom starter items!
+# Usage: id,count;id,count;
+CustomStarterItems = 57,1000;
Index: /trunk/L2J-Game/src/main/java/net/l2jserver/gameserver/network/clientpackets/CharacterCreate.java
===================================================================
--- /trunk/L2J-Game/src/main/java/net/l2jserver/gameserver/network/clientpackets/CharacterCreate.java (revision 1634)
+++ /trunk/L2J-Game/src/main/java/net/l2jserver/gameserver/network/clientpackets/CharacterCreate.java (revision 1680)
@@ -19,4 +19,5 @@
import net.sf.l2j.gameserver.datatables.CharNameTable;
import net.sf.l2j.gameserver.datatables.CharTemplateTable;
+import net.sf.l2j.gameserver.datatables.ItemTable;
import net.sf.l2j.gameserver.datatables.SkillTable;
import net.sf.l2j.gameserver.datatables.SkillTreeTable;
@@ -29,4 +30,5 @@
import net.sf.l2j.gameserver.model.L2World;
import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;
+import net.sf.l2j.gameserver.model.itemcontainer.PcInventory;
import net.sf.l2j.gameserver.model.quest.Quest;
import net.sf.l2j.gameserver.model.quest.QuestState;
@@ -154,4 +156,27 @@
		if (Config.STARTING_AA > 0)
			newChar.addAncientAdena("Init", Config.STARTING_AA, null, false);
+		
+		// L2EMU_CUSTOM - START
+		for (int[] startingItems : Config.CUSTOM_STARTER_ITEMS)
+		{
+			if (newChar == null)
+			{
+				continue;
+			}
+			PcInventory inv = newChar.getInventory();
+			if (ItemTable.getInstance().createDummyItem(startingItems[0]).isStackable())
+			{
+				inv.addItem("Starter Items", startingItems[0], startingItems[1], newChar, null);
+			} 
+			else
+			{
+				for (int i = 0; i < startingItems[1]; i++)
+				{
+					inv.addItem("Starter Items", startingItems[0], 1, newChar, null);
+				}
+			}
+		}
+		// L2EMU_CUSTOM - END
+		
		//L2EMU_ADD
		newChar.getPosition().setXYZInvisible(template.getSpawnX(), template.getSpawnY(), template.getSpawnZ());
Index: /trunk/L2J-Game/src/main/java/net/l2jserver/Config.java
===================================================================
--- /trunk/L2J-Game/src/main/java/net/l2jserver/Config.java (revision 1664)
+++ /trunk/L2J-Game/src/main/java/net/l2jserver/Config.java (revision 1680)
@@ -25,4 +25,5 @@
import java.math.BigInteger;
import java.util.ArrayList;
+import java.util.List;
import java.util.Map;
import java.util.Properties;
@@ -867,4 +868,7 @@
	public static String        PVP_REWARD_ITEM_NAME;
	public static int           PVP_REWARD_ITEM_AMMOUNT;
+	
+	public static boolean		ALLOW_CUSTOM_STARTER_ITEMS;
+	public static List<int[]> 	CUSTOM_STARTER_ITEMS = new FastList<int[]>();

	//*********************************************************
@@ -940,4 +944,36 @@
		 	PVP_REWARD_ITEM_NAME = customSettings.getProperty("PvpRewardItemName", "Adena");
		 	PVP_REWARD_ITEM_AMMOUNT = Integer.parseInt(customSettings.getProperty("PvpRewardAmmount", "100"));
+		 	ALLOW_CUSTOM_STARTER_ITEMS = Boolean.parseBoolean(customSettings.getProperty("AllowCustomStarterItems", "false"));
+		
+		 	
+			if (ALLOW_CUSTOM_STARTER_ITEMS)
+			{
+			    String[] propertySplit = customSettings.getProperty("CustomStarterItems", "0,0").split(";");
+			    for (String starteritems : propertySplit)
+			    {
+			    	String[] starteritemsSplit = starteritems.split(",");
+			    	if (starteritemsSplit.length != 2)
+			    	{
+			    		ALLOW_CUSTOM_STARTER_ITEMS = false;
+			    		System.out.println("StarterItems[Config.load()]: invalid config property -> starter items \""+ starteritems + "\"");
+			    	} 
+			    	else
+			    	{
+			    	try
+				    {
+						CUSTOM_STARTER_ITEMS.add(new int[] { Integer.valueOf(starteritemsSplit[0]), Integer.valueOf(starteritemsSplit[1]) });
+				    } 
+				    	catch (NumberFormatException nfe)
+				    	{
+				    		if (!starteritems.equals(""))
+				    		{
+				    			ALLOW_CUSTOM_STARTER_ITEMS = false;
+				    			System.out.println("StarterItems[Config.load()]: invalid config property -> starter items \"" + starteritems + "\"");
+				    		}
+				    	}
+			    	}
+			    }
+			}
+		 	
		}
		catch (Exception e)

Posted

when I create acc i have your custom ytemes:

#Default is 0

StartingAdena = 0

 

+ #Custom item for newChar

+ #(seperated by ",")

+ StartingCustomItems = 3470,1147,425,1146  yes?

 

Posted

Good Work but I think that there are these options in some custom serverpacks.

 

Nope, I found on the forum like this but edit from navicat

 

Credits to me !

Posted

Nice work xAddytzu,thx.

You can tell me how to make a option for fighter and mage plzzz ???

 

Example:

StartingCustomItemsFighters = 3470,1147,425,1146      (Itens only for fighters characters)

StartingCustomItemsMages = 3470,1147,425,1146    (Itens only for mages characters)

I'm searching for this option a long time, but not found =/.

Thx in advanced friend :) !

Posted

Nice work xAddytzu,thx.

You can tell me how to make a option for fighter and mage plzzz ???

 

Example:I'm searching for this option a long time, but not found =/.

Thx in advanced friend :) !

 

hmmm I can make your option

 

after coming from school..today I have test

 

Have a nice day`

Posted

Hey xAddytzu,thx so much friend,i'm very happy :D !

Well , let's go.

 

1 - This patch works nice with Gracia CT2 ?

If yes,look this error:

compile:
   [javac] Compiling 1250 source files to C:\eclipse\L2JSERVER_PT2\L2J_Gameserv
er_PT2\build\classes
   [javac] C:\eclipse\L2JSERVER_PT2\L2J_Gameserver_PT2\java\net\sf\l2j\gameserv
er\network\clientpackets\CharacterCreate.java:190: cannot find symbol
   [javac] symbol  : method addItem(java.lang.String,java.util.List<java.lang.I
nteger>,int,net.sf.l2j.gameserver.model.actor.instance.L2PcInstance,<nulltype>)
   [javac] location: class net.sf.l2j.gameserver.model.itemcontainer.PcInventor
y
   [javac]             newChar.getInventory().addItem("Init", Config.LIST_START
ING_CUSTOMITEMSF, 1, newChar, null);
   [javac]                                   ^
   [javac] C:\eclipse\L2JSERVER_PT2\L2J_Gameserver_PT2\java\net\sf\l2j\gameserv
er\network\clientpackets\CharacterCreate.java:194: cannot find symbol
   [javac] symbol  : method addItem(java.lang.String,java.util.List<java.lang.I
nteger>,int,net.sf.l2j.gameserver.model.actor.instance.L2PcInstance,<nulltype>)
   [javac] location: class net.sf.l2j.gameserver.model.itemcontainer.PcInventor
y
   [javac]             newChar.getInventory().addItem("Init", Config.LIST_START
ING_CUSTOMITEMSM, 1, newChar, null);
   [javac]                                   ^
   [javac] 2 errors

BUILD FAILED
C:\eclipse\L2JSERVER_PT2\L2J_Gameserver_PT2\build.xml:74: Compile failed; see th
e compiler error output for details.

 

2 - Checkout the patch in the download . May be useful for you :) .

http://www.4shared.com/file/106960328/36aa71e8/Custom_Starter_Itens.html

 

3 - I forgot to talk about the amount of item.

Example:

# Usage: id,count;id,count; etc... (1835 = Soulshot: No Grade) (3947 = Blessed Spiritshot: No Grade )

 

StartingCustomItemsFighter = 1835,1000;

StartingCustomItemsMage = 3947,1000;

 

Well,it's all.

Sorry for a lot of questions friend,and thx so much for attention.

Posted

newChar.getInventory().addItem("Init", Config.LIST_STARTING_CUSTOMITEMSF, 1, newChar, null);

 

as i see on the error message heres the problem also i dont understand why newChar.getInventory().addItem since you can use only newChar.addItem...this code needs to look like

 

newChar.addItem("Init", Config.LIST_STARTING_CUSTOMITEMSF, 1, null, false);

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



  • Posts

    • TG Support: https://t.me/buyingproxysup | Channel: https://t.me/buyingproxycom Discord support: #buyingproxy | Server: Join the BuyingProxy Discord Server!  Create your free account here
    • I think you should check the video more carefully you missing something very important 😛      
    • Im responding to an anonymous account with 3 posts, almost no background, and practically zero useful information added to the discussion. On top of that, the topic title is misleading  calling it "Lucera Source Code" gives a completely different impression from what is actually being presented.   I didn’t say anything different. Therefore, I have no clue how his process produces the same desirable result.   And here you are creating drama. Your topic title clearly says "Lucera Source Code," which is not actually the case, or at least that’s how it looked when I first clicked on it, so I don’t think I was completely off. There’s also no significant information about your process like  what difficulties you faced, what tools you used, or anything else meaningful. Yet you still expect others to provide value based on what? I’m not talking about your project itself which, by the way, good job. I’m talking about the topic itself as a source of value for this forum, because right now it doesn’t really offer much in that regard. So regarding the semantics, yes, wording does matter.  
    • You are funny guy! 😄 😄 😄    I was working with Lucera long before “AI apps” became fashionable. This was not something I generated in one day with a prompt. It took me years of work, testing, debugging and fixing broken decompiled code.   Of course a decompiled source is not the original private repository with the original comments, history and developer structure. Nobody said it is the same Git repository. But saying it is only “guesses” is also wrong.   When you decompile, rebuild, fix thousands of compile/runtime issues, restore broken logic, reconnect scripts, fix bad casts, repair database calls, compile it again and run it in-game, at that point it is no longer just a guess.   It becomes a working reconstructed source base!   The important part is not whether it is byte-for-byte identical to the original private source. The important part is that I can now work directly inside the code, change core logic, rebuild scripts, fix bugs and continue development without being locked behind closed binaries.   Does it compile? Yes. Does it run in-game? Yes. Can I modify core systems directly? Yes. Can I continue development independently? Yes.   So call it reconstructed, decompiled, cleaned, restored or whatever name you prefer. The result is still the same: I have a working source environment that gives me control over the lucera2 project.   And that was exactly the goal!   🙂 
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..