Jump to content

Recommended Posts

Posted

Well Today Its My Day :)

 

So I Decided To SHARE Something on My Favourite Forum :)

 

In This Way You Can Protect Your Server From 1000000 Bugs :)

 

Flood Protection

 

1 ) Config.properties

http://www.4shared.com/file/136964145/1c28ee09/floodprotector.html

Now The Java Part :)

 

2 ) Config.java ( SEE LINES )

512         //--------------------------------------------------

513         // FloodProtector Settings

514         //--------------------------------------------------

515         public static final FloodProtectorConfig FLOOD_PROTECTOR_USE_ITEM =

516                 new FloodProtectorConfig("UseItemFloodProtector");

517         public static final FloodProtectorConfig FLOOD_PROTECTOR_ROLL_DICE =

518                 new FloodProtectorConfig("RollDiceFloodProtector");

519         public static final FloodProtectorConfig FLOOD_PROTECTOR_FIREWORK =

520                 new FloodProtectorConfig("FireworkFloodProtector");

521         public static final FloodProtectorConfig FLOOD_PROTECTOR_ITEM_PET_SUMMON =

522                 new FloodProtectorConfig("ItemPetSummonFloodProtector");

523         public static final FloodProtectorConfig FLOOD_PROTECTOR_HERO_VOICE =

524                 new FloodProtectorConfig("HeroVoiceFloodProtector");

525         public static final FloodProtectorConfig FLOOD_PROTECTOR_GLOBAL_CHAT =

526                 new FloodProtectorConfig("GlobalChatFloodProtector");

527         public static final FloodProtectorConfig FLOOD_PROTECTOR_SUBCLASS =

528                 new FloodProtectorConfig("SubclassFloodProtector");

529         public static final FloodProtectorConfig FLOOD_PROTECTOR_DROP_ITEM =

530                 new FloodProtectorConfig("DropItemFloodProtector");

531         public static final FloodProtectorConfig FLOOD_PROTECTOR_SERVER_BYPASS =

532                 new FloodProtectorConfig("ServerBypassFloodProtector");

533         public static final FloodProtectorConfig FLOOD_PROTECTOR_MULTISELL =

534                 new FloodProtectorConfig("MultiSellFloodProtector");

535         public static final FloodProtectorConfig FLOOD_PROTECTOR_TRANSACTION =

536                 new FloodProtectorConfig("TransactionFloodProtector");

537  

538

 

File : http://www.4shared.com/file/136964510/163c461f/Config.html

 

3 ) gameserver/network/clientpackets/RequestDestroyItem.java

File : http://www.4shared.com/file/136965058/c2fcaea7/RequestDestroyItem.html

 

Replace

 

4 ) gameserver/network/clientpackets/RequestGetItemFromPet.java

File : http://www.4shared.com/file/136965202/5cda6792/RequestGetItemFromPet.html

 

Replace

 

5 ) gameserver/network/clientpackets/RequestPackageSend.java

File : http://www.4shared.com/file/136965452/2520ef65/RequestPackageSend.html

 

Replace

 

6 ) gameserver/network/clientpackets/RequestPrivateStoreBuy.java

File : http://www.4shared.com/file/136965581/845aaa5/RequestPrivateStoreBuy.html

 

Replace

 

7 ) gameserver/network/clientpackets/RequestPrivateStoreSell.java

File : http://www.4shared.com/file/136965905/ceeb1dd0/RequestPrivateStoreSell.html

 

Replace

 

8 ) gameserver/network/clientpackets/SendWareHouseDepositList.java

File : http://www.4shared.com/file/136966042/2987d916/SendWareHouseDepositList.html

 

Replace

 

9 ) gameserver/network/clientpackets/SemdWareHouseWithDrawList.java

File : http://www.4shared.com/file/136966272/12e5ebb/SendWareHouseWithDrawList.html

 

And The Last File

 

10 ) java/net/sf/l2j/gameserver/util/FloodProtectors.java

File : http://www.4shared.com/file/136966615/ce19c442/FloodProtectors.html

 

 

PS : Its From L2JServer With Many Modifications BY ME

 

PS2 : If You Are not Interesting Just DONT POST

 

PS4 : Thanks For Reading My Topic

 

Posted

Actually, this ain't yours.

I checked l2emu's timeline before some days and they posted new fixes.

Some of them were flood protections. (they didn't include chat, item use etc, cause these things are old.)

 

Floodprotection of the items transactions (pet get/give, private store buy/sell, warehouse put/withdraw, freight, destroy).

 

http://l2emu.no-ip.info/forum/index.php?topic=286.msg1189

 

So write the appropriate credits (for the parts that you took) or you will win a - karma. :)

Posted

Actually, this ain't yours.

I checked l2emu's timeline before some days and they posted new fixes.

Some of them were flood protections. (they didn't include chat, item use etc, cause these things are old.)

 

Floodprotection of the items transactions (pet get/give, private store buy/sell, warehouse put/withdraw, freight, destroy).

 

http://l2emu.no-ip.info/forum/index.php?topic=286.msg1189

 

So write the appropriate credits (for the parts that you took) or you will win a - karma. :)

This Is Not All Mine !!!

 

I Made Some Fixes On I T!! Some Of Them Are From L2JServer

 

Nothi' From L2JEmu

Posted

Yes It Does...

Thanks

Fine, Thanks For Your Comments

This Is Not All Mine !!!

 

I Made Some Fixes On I T!! Some Of Them Are From L2JServer

 

Nothi' From L2JEmu

Don't doublepost.

 

Anyway, give credits to L2j project then.

Posted

@Horus.why not to comment it?he did a try...i think that when you beggin coding you were noob to ?

Ontopic:good try system

Posted

why in the blue hell you put every single file change into a 4shared share? :D

 

anyway since you dont posted any diff file i want to see the huge changes you made otherswise its just a c/p of l2j timeline

 

ohh and by the way we've had the floodprotector for item transtactions before l2j just to comment what Skiller said :)

Guest
This topic is now closed to further replies.


  • Posts

    • Where I can buy a cheap domain .com? cheapest I found was on Godaddy for 12 euro and Hostinger for 10 euro.
    • Hello everyone, here's a simple and useful idea for any type of server.   This code applies a discount when a player makes a purchase inside a clan’s castle or clan hall, offering a benefit to clan members who own a castle or clan hall. Important: Merchant transactions must be handled through multisell, not buylist. The discount is directly applied within the multisell, so the price shown is already reduced.   "For example, if a scroll costs 1000 Adena and you set a 20% discount in the config, the final price when purchasing inside a castle or clan hall will be 800 Adena."   This code is developed on the public aCis 401 revision.   public static int CLAN_BASE_OWNERSHIP_MERCHANT_DISCOUNT; CLAN_BASE_OWNERSHIP_MERCHANT_DISCOUNT = clans.getProperty("ClanBaseOwnershipMechantDiscount", 20); # If clan owns a clan hall or castle, all members have a discount of X% at merchant transactions (multisell). # Discount applies only inside the base (castle or clan hall). ClanBaseOwnershipMechantDiscount = 20   /** diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/data/xml/MultisellData.java b/aCis_gameserver/java/net/sf/l2j/gameserver/data/xml/MultisellData.java index 556e111..bbf8e69 100644 --- a/aCis_gameserver/java/net/sf/l2j/gameserver/data/xml/MultisellData.java +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/data/xml/MultisellData.java @@ -101,7 +101,7 @@ do { // send list at least once even if size = 0 - player.sendPacket(new MultiSellList(list, index)); + player.sendPacket(new MultiSellList(list, index, player)); index += PAGE_SIZE; } while (index < list.getEntries().size()); diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/MultiSellChoose.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/MultiSellChoose.java index 7c82c5b..1654abc 100644 --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/MultiSellChoose.java +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/MultiSellChoose.java @@ -6,6 +6,7 @@ import net.sf.l2j.Config; import net.sf.l2j.gameserver.enums.FloodProtector; import net.sf.l2j.gameserver.enums.StatusType; +import net.sf.l2j.gameserver.enums.ZoneId; import net.sf.l2j.gameserver.enums.items.CrystalType; import net.sf.l2j.gameserver.model.Augmentation; import net.sf.l2j.gameserver.model.actor.Player; @@ -225,6 +226,20 @@ return; } + if (player.isInsideZone(ZoneId.CLAN_HALL) && player.getClan() != null && player.getClan().hasClanHall()) + { + e.setItemCount(e.getItemCount() * (100 - Config.CLAN_BASE_OWNERSHIP_MERCHANT_DISCOUNT) / 100); + if (e.getItemCount() == 0) + e.setItemCount(1); + } + + if (player.isInsideZone(ZoneId.CASTLE) && player.getClan() != null && player.getClan().hasCastle()) + { + e.setItemCount(e.getItemCount() * (100 - Config.CLAN_BASE_OWNERSHIP_MERCHANT_DISCOUNT) / 100); + if (e.getItemCount() == 0) + e.setItemCount(1); + } + if (Config.BLACKSMITH_USE_RECIPES || !e.getMaintainIngredient()) { // if it's a stackable item, just reduce the amount from the first (only) instance that is found in the inventory diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/MultiSellList.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/MultiSellList.java index 9269b06..c6102a0 100644 --- a/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/MultiSellList.java +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/serverpackets/MultiSellList.java @@ -2,6 +2,9 @@ import static net.sf.l2j.gameserver.data.xml.MultisellData.PAGE_SIZE; +import net.sf.l2j.Config; +import net.sf.l2j.gameserver.enums.ZoneId; +import net.sf.l2j.gameserver.model.actor.Player; import net.sf.l2j.gameserver.model.multisell.Entry; import net.sf.l2j.gameserver.model.multisell.Ingredient; import net.sf.l2j.gameserver.model.multisell.ListContainer; @@ -15,7 +18,9 @@ private boolean _finished; - public MultiSellList(ListContainer list, int index) + private Player _player; + + public MultiSellList(ListContainer list, int index, Player player) { _list = list; _index = index; @@ -28,6 +33,8 @@ } else _finished = true; + + _player = player; } @Override @@ -74,7 +81,14 @@ { writeH(ing.getItemId()); writeH(ing.getTemplate() != null ? ing.getTemplate().getType2() : 65535); - writeD(ing.getItemCount()); + + if (_player.isInsideZone(ZoneId.CLAN_HALL) && _player.getClan() != null && _player.getClan().hasClanHall()) + writeD((ing.getItemCount() * (100 - Config.CLAN_BASE_OWNERSHIP_MERCHANT_DISCOUNT) / 100) < 1 ? 1 : ing.getItemCount() * 80 / 100); + else if (_player.isInsideZone(ZoneId.CASTLE) && _player.getClan() != null && _player.getClan().hasCastle()) + writeD((ing.getItemCount() * (100 - Config.CLAN_BASE_OWNERSHIP_MERCHANT_DISCOUNT) / 100) < 1 ? 1 : ing.getItemCount() * 80 / 100); + else + writeD(ing.getItemCount()); + writeH(ing.getEnchantLevel()); writeD(0x00); // TODO: i.getAugmentId() writeD(0x00); // TODO: i.getManaLeft()  
    • DISCORD : utchiha_market telegram : https://t.me/utchiha_market SELLIX STORE : https://utchihamkt.mysellix.io/ Join our server for more products : https://discord.gg/uthciha-services https://campsite.bio/utchihaamkt
    • WTB EXP ETERNAL 10x new dm.
    • This project is based on the latest public aCis sources (revision 401) and supports a multi-client system (C4 & IL), making it suitable for custom usage but not for retail.   You can configure the SelectedClient option in server.properties and loginserver.properties to switch between C4 and IL.  Both clients are fully synchronized, including login, server selection, packets, and geodata.   Notable Features: - Completed the login and server selection phase for both clients. - Synchronized all packets to support both clients (including some specific features). - Reworked the datapack and SQL files (excluding HTML files) to work seamlessly with both clients. - Added geodata support for both clients. - Adapted nearly all AI, scripts, bosses, HTML, and MULTISELL files to match C4 functionality. - Reduced the maximum clan level from 8 to 5 (C4 feature). - Rewrote clan HTML to remove C5-C6 features.   Disabled the following C5 and C6 features: - Divine Inspiration (C6 feature). - Clan skills and clan reputation points (C5 feature). - Pledge class (C5 feature). - Hero skills (C5 feature). - Dueling system (C6 feature). - Augmentations (C6 feature). - Cursed weapons (C5-C6 feature).   General Improvements: - Performed a general HTML cleanup and optimized features based on the client version. - Added an option to display the remaining time of disabled skills. - Skill timestamps now update when using the skill list.   This flexibility allows you to create a unique progression system tailored to your needs. The price for the diff patch, which can be applied to aCis public sources, is €150. For inquiries, please contact me via PM or Discord (ID: @Luminous).
  • Topics

×
×
  • Create New...