Jump to content
  • 0

[Help]Problem with Java code


manos2864

Question

Hey guys....

I try to put this java code in my server : http://www.maxcheaters.com/forum/index.php?topic=148257.0 and i put it :)

But when i wear S grade armor/weapon and i take out after i cant wear again any armor/weapon/jewel and in gameserver window say:

 

Client: [Character: Lougkraaaaaa[268479809] - Account: manos2864 - IP: 127.0.0.1

] - Failed running: [C] 14 UseItem - L2J Server Version: ${l2j.revision} - DP Re

vision: ${l2jdp.revision} ; null

java.lang.NullPointerException

       at com.l2jserver.gameserver.network.clientpackets.UseItem.runImpl(UseIte

m.java:103)

       at com.l2jserver.gameserver.network.clientpackets.L2GameClientPacket.run

(L2GameClientPacket.java:93)

       at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source

)

       at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

       at java.lang.Thread.run(Unknown Source)

 

 

Some guys in greek section told me maybe i make something wrong.... and they try to help me with teamviewer but nothing happen!! Code had problem... Can someone fix this code pls!!! Or give me another code (i want olympiad only with A grade armor/weapons/jewels)

I use l2jserver Epilogue (Compile)

 

Link to comment
Share on other sites

Recommended Posts

  • 0

It's already defined

 

 

protected void runImpl()

{

 

L2PcInstance activeChar = getClient().getActiveChar();

 

if (activeChar == null)

           return;

 

if (activeChar.getPrivateStoreType() != 0)

{

activeChar.sendPacket(new SystemMessage(SystemMessageId.CANNOT_TRADE_DISCARD_DROP_ITEM_WHILE_IN_SHOPMODE));

activeChar.sendPacket(new ActionFailed());

return;

}

 

L2ItemInstance item = activeChar.getInventory().getItemByObjectId(_objectId);

 

When i put this code .....  in line 106 say duplicate local variable item -->

L2ItemInstance item=activeChar.getInventory().getItemByObjectId(_objectId);

 

Edit

Here my useitem.java (Original) --> http://pastebin.com/5WY4ZVKs

     

Link to comment
Share on other sites

  • 0

When i put this code .....  in line 106 say duplicate local variable item -->

L2ItemInstance item=activeChar.getInventory().getItemByObjectId(_objectId);

 

Edit

Here my useitem.java (Original) --> http://pastebin.com/5WY4ZVKs

     

Maaan,this variable is few lines below,it alrdy exists,dont add it again!

Just add the code below that line. >_>

         if (activeChar.getActiveTradeList() != null)
		activeChar.cancelActiveTrade();

	// NOTE: disabled due to deadlocks
	// synchronized (activeChar.getInventory())
	// 	{
		L2ItemInstance item = activeChar.getInventory().getItemByObjectId(_objectId);

		if (item == null)
                               return;

+                      int lolz0r = item.getItem().getCrystalType();
+                      if (activeChar.isInOlympiadMode() && lolz0r == L2Item.CRYSTAL_S)
+                      {
+        	               activeChar.sendMessage("You cannot use S grade equipment at the Grand Olympiad games.");
+                              return;
+                      }

		if (item.isWear())
		{
			// No unequipping wear-items
			return;
		}

Link to comment
Share on other sites

  • 0

Maaan,this variable is few lines below,it alrdy exists,dont add it again!

Just add the code below that line. >_>

         if (activeChar.getActiveTradeList() != null)
		activeChar.cancelActiveTrade();

	// NOTE: disabled due to deadlocks
	// synchronized (activeChar.getInventory())
	// 	{
		L2ItemInstance item = activeChar.getInventory().getItemByObjectId(_objectId);

		if (item == null)
                               return;

+                      int lolz0r = item.getItem().getCrystalType();
+                      if (activeChar.isInOlympiadMode() && lolz0r == L2Item.CRYSTAL_S)
+                      {
+        	               activeChar.sendMessage("You cannot use S grade equipment at the Grand Olympiad games.");
+                              return;
+                      }

		if (item.isWear())
		{
			// No unequipping wear-items
			return;
		}

and for s80 and s84 what i must add?

i must add these lines?

+                      int lolz0r = item.getItem().getCrystalType();

+                      if (activeChar.isInOlympiadMode() && lolz0r == L2Item.CRYSTAL_S)

+                      if (activeChar.isInOlympiadMode() && lolz0r == L2Item.CRYSTAL_S80)

+                      if (activeChar.isInOlympiadMode() && lolz0r == L2Item.CRYSTAL_S84)

+                      {

+                       activeChar.sendMessage("You cannot use S/S80/S84 grade equipment at the Grand Olympiad games.");

+                              return;

+                      }

 

 

**EDIT**

Ok first... code dont work... i participate in olympiad with s grade equipment and nothing stop me

second i add ---> in useitem.java this code :

+                      int lolz0r = item.getItem().getCrystalType();

+                      if (activeChar.isInOlympiadMode() && lolz0r == L2Item.CRYSTAL_S)

+                      {

+                       activeChar.sendMessage("You cannot use S grade equipment at the Grand Olympiad games.");

+                              return;

+                      }

 

and in Olympiad.java this code --->

+import com.l2jserver.gameserver.templates.item.L2Item;

import com.l2jserver.util.L2FastList;

 

import javolution.util.FastMap;

@@ -482,6 +483,14 @@

* return false; }

*/

 

+ int weaponGrade = noble.getActiveWeaponItem().getCrystalType();

+ int armorGrade = noble.getActiveChestArmorItem().getCrystalType();

+ if (weaponGrade == L2Item.CRYSTAL_S || armorGrade == L2Item.CRYSTAL_S)

+ {

+ noble.sendMessage("You cannot join the grand olympiad games using S grade equipment.");

+ return false;

+ }

+

 

Everything is ok  right?? but in olympiad allow s grade equipment !!! someone solve my problem ? please

Link to comment
Share on other sites

  • 0

Try this,

UseItem.java

import net.sf.l2j.Config;
+import net.sf.l2j.gameserver.Olympiad;
import net.sf.l2j.gameserver.handler.IItemHandler;

L2ItemInstance item = activeChar.getInventory().getItemByObjectId(_objectId);

		if (item == null)
                               return;

+                      int lolz0r = item.getItem().getCrystalType();
+                      if (activeChar.isInOlympiadMode() || Olympiad.getInstance().isRegisteredInComp(activeChar) || +activeChar.getOlympiadGameId() > 0)
+                      {
+                            if (lolz0r == L2Item.CRYSTAL_S || lolz0r == L2Item.CRYSTAL_S80 || lolz0r == L2Item.CRYSTAL_S84)
+                            {
+        	                  activeChar.sendMessage("You may only use items up to Grade A in the Grand Olympiad Games.");
+                                  return;
+                            }
+                      }

Olympiad.java

public class Olympiad
{
/**
 *
 * @author  ascharot
 * 
 */
+      private int _objectId;
private class OlympiadGameTask implements Runnable
{
	public L2OlympiadGame _game = null;

if (!_inCompPeriod)
       {
           sm = new SystemMessage(SystemMessageId.THE_OLYMPIAD_GAME_IS_NOT_CURRENTLY_IN_PROGRESS);
           noble.sendPacket(sm);
           return false;
       }

+      L2ItemInstance item = noble.getInventory().getItemByObjectId(_objectId);
+      int lolz0r = item.getItem().getCrystalType();
+      if (lolz0r == L2Item.CRYSTAL_S || lolz0r == L2Item.CRYSTAL_S80 || lolz0r == L2Item.CRYSTAL_S84)
+      {
+          noble.sendMessage("You cannot use S grade equipment at the Grand Olympiad games.");
+          return false;
+      }

Link to comment
Share on other sites

  • 0

Try this,

UseItem.java

+import net.sf.l2j.gameserver.Olympiad;

ama to balo etsi? import com.l2jserver.gameserver.model.olympiad.Olympiad; epeidi ego exo l2jserver... k etsi na to kano

dld import com.l2jserver.gameserver.olympiad; mou bgazei cannot resolve.... eno etsi opos to exo pano mou bgazei ena kitrinaki

Link to comment
Share on other sites

  • 0

### Eclipse Workspace Patch 1.0
#P L2J-GameServer
Index: java/com/l2jserver/gameserver/model/L2ItemInstance.java
===================================================================
--- java/com/l2jserver/gameserver/model/L2ItemInstance.java	(revision 241)
+++ java/com/l2jserver/gameserver/model/L2ItemInstance.java	(working copy)
@@ -713,6 +713,8 @@

     public boolean isOlyRestrictedItem()
     {
+    	if (getItem().getItemGrade() > 4)
+    		return true;
         return (Config.LIST_OLY_RESTRICTED_ITEMS.contains(_itemId));
     }

 

its pathetic how ppl cant use what they have...

Link to comment
Share on other sites

  • 0

### Eclipse Workspace Patch 1.0
#P L2J-GameServer
Index: java/com/l2jserver/gameserver/model/L2ItemInstance.java
===================================================================
--- java/com/l2jserver/gameserver/model/L2ItemInstance.java	(revision 241)
+++ java/com/l2jserver/gameserver/model/L2ItemInstance.java	(working copy)
@@ -713,6 +713,8 @@

     public boolean isOlyRestrictedItem()
     {
+    	if (getItem().getItemGrade() > 4)
+    		return true;
         return (Config.LIST_OLY_RESTRICTED_ITEMS.contains(_itemId));
     }

 

its pathetic how ppl cant use what they have...

 

i will add only this code??

Link to comment
Share on other sites

  • 0

i will add only this code??

 

since you asked this i assume you dont know how your pack works so little explanation

 

long ago l2j implemented a system when they unhardcoded item checks(condition value in xml files)

and here what they did is they added a general item check for items with Y condition

 

hence the isOlyRestrictedItem() method is a part of this...it indicates to a list of items that you CANT use on olympiad and its alredy working fine...and if you check how its called you can see if its return true the item is olympiad restricted if its return false than its allowed to use...imho a grade check with return truw value in this method block items stated in the if statement

Link to comment
Share on other sites

  • 0

since you asked this i assume you dont know how your pack works so little explanation

 

long ago l2j implemented a system when they unhardcoded item checks(condition value in xml files)

and here what they did is they added a general item check for items with Y condition

 

hence the isOlyRestrictedItem() method is a part of this...it indicates to a list of items that you CANT use on olympiad and its alredy working fine...and if you check how its called you can see if its return true the item is olympiad restricted if its return false than its allowed to use...imho a grade check with return truw value in this method block items stated in the if statement

man i just ask you only if i must add only your code or and others codes from parizakis... :/

Link to comment
Share on other sites

  • 0

man i just ask you only if i must add only your code or and others codes from parizakis... :/

 

guess why i gave you only this code-.-"

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.



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