Jump to content

[share]increase your multisell secutiry


Recommended Posts

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

Link to comment
Share on other sites

  • 2 weeks later...

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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

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