Jump to content

Recommended Posts

Posted

Hello all,Here little addition to the multisell security. Each multisell template now have automatically generated during bypass parsing list of valid NPC IDs. Later in MultisellChoose packet current target checked and NPC ID searched in list. Also checking interaction distance. NPC list cleared on //reload multisell, so if you change html and remove multisell somewhere - do //reload multisell after //reload html.

No more "mammons everywhere and everytime", no more "by anything you want everywhere from GM Shop" (if exist on server).

 

DP Part:

Index: data/scripts/custom/5001_NewbieCoupons/__init__.py

===================================================================

--- data/scripts/custom/5001_NewbieCoupons/__init__.py (revision 6340)

+++ data/scripts/custom/5001_NewbieCoupons/__init__.py (working copy)

@@ -68,12 +68,12 @@

          return "30598-6.htm" #you're not eligible to get a coupon (level caps, pkkills or didnt change class yet)

    elif event == "newbie_show_weapon" :

       if 6 <= level <= 39 and not pkkills and occupation_level == 0 :

-          L2Multisell.getInstance().separateAndSend(WEAPON_MULTISELL, player, False, 0.0);

+          L2Multisell.getInstance().separateAndSend(WEAPON_MULTISELL, player, npc.getNpcId(), False, 0.0);

       else :

          return "30598-7.htm" #you're not eligible to use warehouse

    elif event == "newbie_show_armor" :

       if 6 <= level <= 39 and not pkkills and occupation_level > 0 :

-          L2Multisell.getInstance().separateAndSend(ACCESORIES_MULTISELL, player, False, 0.0);

+          L2Multisell.getInstance().separateAndSend(ACCESORIES_MULTISELL, player, npc.getNpcId(), False, 0.0);

       else :

          return "30598-8.htm" #you're not eligible to use warehouse

 

 

the code:

 

Index: java/net/sf/l2j/gameserver/network/clientpackets/MultiSellChoose.java

===================================================================

--- java/net/sf/l2j/gameserver/network/clientpackets/MultiSellChoose.java (revision 3236)

+++ java/net/sf/l2j/gameserver/network/clientpackets/MultiSellChoose.java (working copy)

@@ -23,6 +23,7 @@

import net.sf.l2j.gameserver.model.L2Augmentation;

import net.sf.l2j.gameserver.model.L2ItemInstance;

import net.sf.l2j.gameserver.model.L2Multisell;

+import net.sf.l2j.gameserver.model.L2Object;

import net.sf.l2j.gameserver.model.L2Multisell.MultiSellEntry;

import net.sf.l2j.gameserver.model.L2Multisell.MultiSellIngredient;

import net.sf.l2j.gameserver.model.L2Multisell.MultiSellListContainer;

@@ -39,6 +40,8 @@

import net.sf.l2j.gameserver.templates.item.L2Item;

import net.sf.l2j.gameserver.templates.item.L2Weapon;

 

+import static net.sf.l2j.gameserver.model.actor.L2Npc.INTERACTION_DISTANCE;

+

public class MultiSellChoose extends L2GameClientPacket

{

private static final String _C__A7_MULTISELLCHOOSE = "[C] A7 MultiSellChoose";

@@ -109,7 +112,14 @@

MultiSellListContainer list = L2Multisell.getInstance().getList(_listId);

if (list == null)

return;

-

+

+ L2Object target = player.getTarget();

+ if (!player.isGM() && (target == null

+ || !(target instanceof L2Npc)

+ || !list.checkNpcId(((L2Npc)target).getNpcId())

+ || !player.isInsideRadius(target, INTERACTION_DISTANCE, true, false)))

+ return;

+

for (MultiSellEntry entry : list.getEntries())

{

if (entry.getEntryId() == _entryId)

Index: java/net/sf/l2j/gameserver/model/actor/instance/L2BlacksmithInstance.java

===================================================================

--- java/net/sf/l2j/gameserver/model/actor/instance/L2BlacksmithInstance.java (revision 3236)

+++ java/net/sf/l2j/gameserver/model/actor/instance/L2BlacksmithInstance.java (working copy)

@@ -34,7 +34,7 @@

if (command.startsWith("multisell"))

{

int listId = Integer.parseInt(command.substring(9).trim());

- L2Multisell.getInstance().separateAndSend(listId, player, false, getCastle().getTaxRate());

+ L2Multisell.getInstance().separateAndSend(listId, player, getNpcId(), false, getCastle().getTaxRate());

}

super.onBypassFeedback(player,command);

}

Index: java/net/sf/l2j/gameserver/model/actor/instance/L2MerchantInstance.java

===================================================================

--- java/net/sf/l2j/gameserver/model/actor/instance/L2MerchantInstance.java (revision 3236)

+++ java/net/sf/l2j/gameserver/model/actor/instance/L2MerchantInstance.java (working copy)

@@ -183,14 +183,14 @@

            if (st.countTokens() < 1) return;

 

            int val = Integer.parseInt(st.nextToken());

-            L2Multisell.getInstance().separateAndSend(val, player, false, getCastle().getTaxRate());

+            L2Multisell.getInstance().separateAndSend(val, player, getNpcId(), false, getCastle().getTaxRate());

        }

        else if (actualCommand.equalsIgnoreCase("Exc_Multisell"))

        {

            if (st.countTokens() < 1) return;

 

            int val = Integer.parseInt(st.nextToken());

-            L2Multisell.getInstance().separateAndSend(val, player, true, getCastle().getTaxRate());

+            L2Multisell.getInstance().separateAndSend(val, player, getNpcId(), true, getCastle().getTaxRate());

        }

        else

        {

Index: java/net/sf/l2j/gameserver/model/actor/instance/L2OlympiadManagerInstance.java

===================================================================

--- java/net/sf/l2j/gameserver/model/actor/instance/L2OlympiadManagerInstance.java (revision 3236)

+++ java/net/sf/l2j/gameserver/model/actor/instance/L2OlympiadManagerInstance.java (working copy)

@@ -137,10 +137,10 @@

}

break;

case 7:

- L2Multisell.getInstance().separateAndSend(102, player, false, getCastle().getTaxRate());

+ L2Multisell.getInstance().separateAndSend(102, player, getNpcId(), false, getCastle().getTaxRate());

break;

case 9:

- L2Multisell.getInstance().separateAndSend(103, player, false, getCastle().getTaxRate());

+ L2Multisell.getInstance().separateAndSend(103, player, getNpcId(), false, getCastle().getTaxRate());

break;

case 8:

int point = Olympiad.getInstance().getNoblePoints(player.getObjectId());

Index: java/net/sf/l2j/gameserver/model/actor/L2Npc.java

===================================================================

--- java/net/sf/l2j/gameserver/model/actor/L2Npc.java (revision 3236)

+++ java/net/sf/l2j/gameserver/model/actor/L2Npc.java (working copy)

@@ -1206,11 +1206,13 @@

}

else if (command.startsWith("multisell"))

{

- L2Multisell.getInstance().separateAndSend(Integer.parseInt(command.substring(9).trim()), player, false, getCastle().getTaxRate());

+ int listId = Integer.parseInt(command.substring(9).trim());

+ L2Multisell.getInstance().separateAndSend(listId, player, getNpcId(), false, getCastle().getTaxRate());

}

else if (command.startsWith("exc_multisell"))

{

- L2Multisell.getInstance().separateAndSend(Integer.parseInt(command.substring(13).trim()), player, true, getCastle().getTaxRate());

+ int listId = Integer.parseInt(command.substring(13).trim());

+ L2Multisell.getInstance().separateAndSend(listId, player, getNpcId(), true, getCastle().getTaxRate());

}

else if (command.startsWith("Augment"))

{

Index: java/net/sf/l2j/gameserver/model/L2Multisell.java

===================================================================

--- java/net/sf/l2j/gameserver/model/L2Multisell.java (revision 3236)

+++ java/net/sf/l2j/gameserver/model/L2Multisell.java (working copy)

@@ -101,7 +101,7 @@

*

* @see net.sf.l2j.gameserver.serverpackets.ServerBasePacket#runImpl()

*/

- private MultiSellListContainer generateMultiSell(int listId, boolean inventoryOnly, L2PcInstance player, double taxRate)

+ private MultiSellListContainer generateMultiSell(int listId, boolean inventoryOnly, L2PcInstance player, int npcId, double taxRate)

{

MultiSellListContainer listTemplate = L2Multisell.getInstance().getList(listId);

MultiSellListContainer list = new MultiSellListContainer();

@@ -109,6 +109,8 @@

return list;

list = L2Multisell.getInstance().new MultiSellListContainer();

list.setListId(listId);

+ if (npcId != 0 && !listTemplate.checkNpcId(npcId))

+ listTemplate.addNpcId(npcId);

 

if (inventoryOnly)

{

@@ -261,9 +263,9 @@

return newEntry;

}

 

- public void separateAndSend(int listId, L2PcInstance player, boolean inventoryOnly, double taxRate)

+ public void separateAndSend(int listId, L2PcInstance player, int npcId, boolean inventoryOnly, double taxRate)

{

- MultiSellListContainer list = generateMultiSell(listId, inventoryOnly, player, taxRate);

+ MultiSellListContainer list = generateMultiSell(listId, inventoryOnly, player, npcId, taxRate);

MultiSellListContainer temp = new MultiSellListContainer();

int page = 1;

 

@@ -551,6 +553,7 @@

private int _listId;

private boolean _applyTaxes = false;

private boolean _maintainEnchantment = false;

+ private List<Integer> _npcIds;

 

List<MultiSellEntry> _entriesC;

 

@@ -577,6 +580,11 @@

_maintainEnchantment = maintainEnchantment;

}

 

+ public void addNpcId(int objId)

+ {

+ _npcIds.add(objId);

+ }

+

/**

* @return Returns the listId.

*/

@@ -595,6 +603,21 @@

return _maintainEnchantment;

}

 

+ public boolean checkNpcId(int npcId)

+ {

+ if (_npcIds == null)

+ {

+ synchronized (this)

+ {

+ if (_npcIds == null)

+ _npcIds = new FastList<Integer>();

+ }

+ return false;

+ }

+

+ return _npcIds.contains(npcId);

+ }

+

public void addEntry(MultiSellEntry e)

{

_entriesC.add(e);

 

credits:_DS_

Enjoy

 

                               

 

 

                                                      IF YOU FIND ANY ERRORS PLEASE POST HERE THANKS

  • 2 weeks later...
Posted

man pls ..... from all the people here no one told me where the .... can i find those java files .... where i have to add all those things ... someone told me that in the core files ... where si that :| .... i have eclips to edit java files but , again , where are those files???????? ..pls help me i se here only java share.

Posted

Check this guide ~> http://www.maxcheaters.com/forum/index.php?topic=44325.0

It might help you. All you need to do is learn how to compile and some basics about java and then you will be able

to apply the patches to your core

About the last one check here ~> http://www.l2jserver.com/wiki/How_to_Apply_a_Patch

  • 6 months later...
  • 2 months later...
  • 7 months later...
  • 3 months later...

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