Some new features that we added:
- 2 new quests
- PvP Arena (to get hero status) Olympiad is disabled
- Love Event
- Dressme for armor/weapons/accessories
- HWID Protection
- More monsters
- New farm zone
- New autofarm system (works almost like adrenaline)
- Auto enchant
- Auto augment
- 3 levels of armors
- 3 levels of weapons
- Anti KS System
- Rebirth Manager
- 30 days checking rewards
- Small event (daily checking with small reward for all online players)
Added FloodProtector utility to prevent packet flooding for actions like item use and dice rolling.
Integrated flood protection checks in relevant client packet handlers and registered/removal hooks in player lifecycle.
Updated movement logic in L2PcInstance for improved position synchronization and geodata handling.
Minor fixes and refactoring in attack logic, private store handling, and admin NPC editing.
Refactored AI classes to enhance movement, attack, and skill usage logic for characters and mobs.
Improved distance checks, attack range calculations, and skill casting conditions.
Removed unused intention command logic from L2CharacterAI.
Updated configuration to enable CellPathFinding.
Minor code cleanups and bug fixes for more reliable AI behavior.
Enhanced GeoPathFinding with detailed debug and error messages for region loading, including success/failure counts and file checks.
Refactored L2AttackableAI and L2CharacterAI to improve attack range tolerance, immediate attack behavior, and added safety checks for missing targets.
Updated configuration to disable CellPathFinding by default and added a new ShowRedName option for aggressive mobs.
Minor config and log updates included.
Applied TCP socket optimizations (e.g., TCP_NODELAY, buffer sizes, keepalive) in ClientThread, Connection, and SelectorThread to reduce latency and improve throughput. Enhanced L2AttackableAI with better random walk, aggro, and attack logic, including silent move checks, quest monster handling, and improved faction/raid/minion behavior.
Added silent move support to L2PlayableInstance and quest monster flag to L2NpcTemplate/L2NpcInstance.
These changes aim to improve server responsiveness, AI realism, and overall stability.
I’ve been using this Escape from Tarkov Hack for about a week now with no issues at all. ESP works great without any lag, and the aimbot is smooth and doesn't feel obvious. Had a quick setup with the loader, and support answered my questions right away. The HWID spoofer also did its job without messing with my system. So far, the cheat's staying undetected on my side.
Question
B0nd
Geia sas pedia..
mipws mporei kapios na me voi8isei na perasw to code?
Index: D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java =================================================================== --- D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 144) +++ D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (working copy) @@ -6332,7 +6332,7 @@ { synchronized(arrows) { - arrows.changeCountWithoutTrace(-1, this, null); + arrows.changeCountWithoutTrace(0, this, null); arrows.setLastChange(L2ItemInstance.MODIFIED); // could do also without saving, but let's save approx 1 of 10 @@ -6343,8 +6343,6 @@ } else { - // Destroy entire item and save to database - _inventory.destroyItem("Consume", arrows, this, null); getInventory().unEquipItemInSlot(Inventory.PAPERDOLL_LHAND); if (bolts) Index: D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/BeastSoulShot.java =================================================================== --- D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/BeastSoulShot.java (revision 121) +++ D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/BeastSoulShot.java (working copy) @@ -22,7 +22,6 @@ import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.model.actor.instance.L2PetInstance; import net.sf.l2j.gameserver.network.SystemMessageId; -import net.sf.l2j.gameserver.network.serverpackets.ExAutoSoulShot; import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUse; import net.sf.l2j.gameserver.network.serverpackets.SystemMessage; import net.sf.l2j.gameserver.templates.item.L2Weapon; @@ -78,7 +77,6 @@ return; } - int itemId = 6645; int shotConsumption = 1; L2ItemInstance weaponInst = null; L2Weapon weaponItem = null; @@ -126,24 +124,6 @@ activePet.setChargedSoulShot(L2ItemInstance.CHARGED_SOULSHOT); } - // If the player doesn't have enough beast soulshot remaining, remove any auto soulshot task. - if (!activeOwner.destroyItemWithoutTrace("Consume", item.getObjectId(), shotConsumption, null, false)) - { - if (activeOwner.getAutoSoulShot().containsKey(itemId)) - { - activeOwner.removeAutoSoulShot(itemId); - activeOwner.sendPacket(new ExAutoSoulShot(itemId, 0)); - - SystemMessage sm = new SystemMessage(SystemMessageId.AUTO_USE_OF_S1_CANCELLED); - sm.addString(item.getItem().getName()); - activeOwner.sendPacket(sm); - return; - } - - activeOwner.sendPacket(new SystemMessage(SystemMessageId.NOT_ENOUGH_SOULSHOTS)); - return; - } - // Pet uses the power of spirit. activeOwner.sendPacket(new SystemMessage(SystemMessageId.PET_USE_THE_POWER_OF_SPIRIT)); Index: D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/CharChangePotions.java =================================================================== --- D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/CharChangePotions.java (revision 117) +++ D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/CharChangePotions.java (working copy) @@ -112,9 +112,6 @@ // Update the changed stat for the character in the DB. activeChar.store(); - // Remove the item from inventory. - activeChar.destroyItem("Consume", item.getObjectId(), 1, null, false); - // Broadcast the changes to the char and all those nearby. UserInfo ui = new UserInfo(activeChar); activeChar.broadcastPacket(ui); Index: D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/SoulShots.java =================================================================== --- D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/SoulShots.java (revision 117) +++ D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/SoulShots.java (working copy) @@ -19,10 +19,8 @@ import net.sf.l2j.gameserver.model.actor.L2Playable; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.network.SystemMessageId; -import net.sf.l2j.gameserver.network.serverpackets.ExAutoSoulShot; import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUse; import net.sf.l2j.gameserver.network.serverpackets.SystemMessage; -import net.sf.l2j.gameserver.skills.Stats; import net.sf.l2j.gameserver.templates.item.L2Item; import net.sf.l2j.gameserver.templates.item.L2Weapon; import net.sf.l2j.gameserver.util.Broadcast; @@ -84,26 +82,6 @@ if (weaponInst.getChargedSoulshot() != L2ItemInstance.CHARGED_NONE) return; - // Consume Soul shots if player has enough of them - int saSSCount = (int) activeChar.getStat().calcStat(Stats.SOULSHOT_COUNT, 0, null, null); - int SSCount = saSSCount == 0 ? weaponItem.getSoulShotCount() : saSSCount; - - if (!activeChar.destroyItemWithoutTrace("Consume", item.getObjectId(), SSCount, null, false)) - { - if (activeChar.getAutoSoulShot().containsKey(itemId)) - { - activeChar.removeAutoSoulShot(itemId); - activeChar.sendPacket(new ExAutoSoulShot(itemId, 0)); - - SystemMessage sm = new SystemMessage(SystemMessageId.AUTO_USE_OF_S1_CANCELLED); - sm.addString(item.getItem().getName()); - activeChar.sendPacket(sm); - } - else - activeChar.sendPacket(new SystemMessage(SystemMessageId.NOT_ENOUGH_SOULSHOTS)); - return; - } - // Charge soul shot weaponInst.setChargedSoulshot(L2ItemInstance.CHARGED_SOULSHOT); } Index: D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/ScrollOfEscape.java =================================================================== --- D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/ScrollOfEscape.java (revision 142) +++ D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/ScrollOfEscape.java (working copy) @@ -167,8 +167,11 @@ int itemId = item.getItemId(); int escapeSkill = (itemId == 1538 || itemId == 5858 || itemId == 5859 || itemId == 3958 || itemId == 10130) ? 2036 : 2013; - if (!activeChar.destroyItem("Consume", item.getObjectId(), 1, null, false)) - return; + if (itemId == 1538) + { + if (!activeChar.destroyItem("Consume", item.getObjectId(), 1, null, false)) + return; + } activeChar.disableAllSkills(); Index: D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/SpiritShot.java =================================================================== --- D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/SpiritShot.java (revision 117) +++ D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/SpiritShot.java (working copy) @@ -19,7 +19,6 @@ import net.sf.l2j.gameserver.model.actor.L2Playable; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.network.SystemMessageId; -import net.sf.l2j.gameserver.network.serverpackets.ExAutoSoulShot; import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUse; import net.sf.l2j.gameserver.network.serverpackets.SystemMessage; import net.sf.l2j.gameserver.templates.item.L2Item; @@ -80,23 +79,6 @@ return; } - // Consume Spirit shot if player has enough of them - if (!activeChar.destroyItemWithoutTrace("Consume", item.getObjectId(), weaponItem.getSpiritShotCount(), null, false)) - { - if (activeChar.getAutoSoulShot().containsKey(itemId)) - { - activeChar.removeAutoSoulShot(itemId); - activeChar.sendPacket(new ExAutoSoulShot(itemId, 0)); - - SystemMessage sm = new SystemMessage(SystemMessageId.AUTO_USE_OF_S1_CANCELLED); - sm.addString(item.getItem().getName()); - activeChar.sendPacket(sm); - } - else - activeChar.sendPacket(new SystemMessage(SystemMessageId.NOT_ENOUGH_SPIRITSHOTS)); - return; - } - // Charge Spirit shot weaponInst.setChargedSpiritshot(L2ItemInstance.CHARGED_SPIRITSHOT); Index: D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/BlessedSpiritShot.java =================================================================== --- D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/BlessedSpiritShot.java (revision 117) +++ D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/BlessedSpiritShot.java (working copy) @@ -19,7 +19,6 @@ import net.sf.l2j.gameserver.model.actor.L2Playable; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.network.SystemMessageId; -import net.sf.l2j.gameserver.network.serverpackets.ExAutoSoulShot; import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUse; import net.sf.l2j.gameserver.network.serverpackets.SystemMessage; import net.sf.l2j.gameserver.templates.item.L2Item; @@ -90,23 +89,6 @@ return; } - // Consume Blessed SpiritShot if player has enough of them - if (!activeChar.destroyItemWithoutTrace("Consume", item.getObjectId(), weaponItem.getSpiritShotCount(), null, false)) - { - if (activeChar.getAutoSoulShot().containsKey(itemId)) - { - activeChar.removeAutoSoulShot(itemId); - activeChar.sendPacket(new ExAutoSoulShot(itemId, 0)); - - SystemMessage sm = new SystemMessage(SystemMessageId.AUTO_USE_OF_S1_CANCELLED); - sm.addString(item.getItem().getName()); - activeChar.sendPacket(sm); - } - else - activeChar.sendPacket(new SystemMessage(SystemMessageId.NOT_ENOUGH_SPIRITSHOTS)); - return; - } - // Charge Blessed SpiritShot weaponInst.setChargedSpiritshot(L2ItemInstance.CHARGED_BLESSED_SPIRITSHOT); Index: D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/FishShots.java =================================================================== --- D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/FishShots.java (revision 117) +++ D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/FishShots.java (working copy) @@ -85,7 +85,6 @@ } weaponInst.setChargedFishshot(true); - activeChar.destroyItemWithoutTrace("Consume", item.getObjectId(), 1, null, false); L2Object oldTarget = activeChar.getTarget(); activeChar.setTarget(activeChar); Index: D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/Scrolls.java =================================================================== --- D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/Scrolls.java (revision 117) +++ D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/Scrolls.java (working copy) @@ -85,8 +85,6 @@ if (itemId >= 8594 && itemId <= 8599) //Scrolls of recovery XML: 2286 { - if (!playable.destroyItem("Consume", item.getObjectId(), 1, null, false)) - return; activeChar.broadcastPacket(new MagicSkillUse(playable, playable, 2286, 1, 1, 0)); activeChar.reduceDeathPenaltyBuffLevel(); useScroll(activeChar, 2286, itemId - 8593); Index: D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/BeastSpiritShot.java =================================================================== --- D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/BeastSpiritShot.java (revision 117) +++ D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/BeastSpiritShot.java (working copy) @@ -22,7 +22,6 @@ import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.model.actor.instance.L2PetInstance; import net.sf.l2j.gameserver.network.SystemMessageId; -import net.sf.l2j.gameserver.network.serverpackets.ExAutoSoulShot; import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUse; import net.sf.l2j.gameserver.network.serverpackets.SystemMessage; import net.sf.l2j.gameserver.templates.item.L2Weapon; @@ -135,23 +134,6 @@ activePet.setChargedSpiritShot(L2ItemInstance.CHARGED_SPIRITSHOT); } - if (!activeOwner.destroyItemWithoutTrace("Consume", item.getObjectId(), shotConsumption, null, false)) - { - if (activeOwner.getAutoSoulShot().containsKey(itemId)) - { - activeOwner.removeAutoSoulShot(itemId); - activeOwner.sendPacket(new ExAutoSoulShot(itemId, 0)); - - SystemMessage sm = new SystemMessage(SystemMessageId.AUTO_USE_OF_S1_CANCELLED); - sm.addString(item.getItem().getName()); - activeOwner.sendPacket(sm); - return; - } - - activeOwner.sendPacket(new SystemMessage(SystemMessageId.NOT_ENOUGH_SPIRITSHOTS)); - return; - } - // Pet uses the power of spirit. activeOwner.sendPacket(new SystemMessage(SystemMessageId.PET_USE_THE_POWER_OF_SPIRIT)); Index: D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/ScrollOfResurrection.java =================================================================== --- D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/ScrollOfResurrection.java (revision 117) +++ D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/ScrollOfResurrection.java (working copy) @@ -140,8 +140,6 @@ if (condGood) { - if (!activeChar.destroyItem("Consume", item.getObjectId(), 1, null, false)) - return; int skillId = 0; int skillLevel = 1; @@ -153,6 +151,8 @@ break; // Scroll of Resurrection case 3936: skillId = 2049; + if (!activeChar.destroyItem("Consume", item.getObjectId(), 1, null, false)) + return; break; // Blessed Scroll of Resurrection case 3959: skillId = 2062; Index: D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/Potions.java =================================================================== --- D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/Potions.java (revision 117) +++ D:/workspace/L2_GameServer/java/net/sf/l2j/gameserver/handler/itemhandlers/Potions.java (working copy) @@ -128,20 +128,20 @@ case 725: // healing_drug, xml: 2002 if (!isEffectReplaceable(playable, L2EffectType.HEAL_OVER_TIME, itemId)) return; - res = usePotion(playable, 2002, 1); + usePotion(playable, 2002, 1); break; case 726: // custom mana drug, xml: 9007 if (Config.L2JMOD_ENABLE_MANA_POTIONS_SUPPORT) - res = usePotion(activeChar, 9007, 1); + usePotion(activeChar, 9007, 1); break; case 727: // _healing_potion, xml: 2032 if (!isEffectReplaceable(playable, L2EffectType.HEAL_OVER_TIME, itemId)) return; - res = usePotion(playable, 2032, 1); + usePotion(playable, 2032, 1); break; case 728: // custom mana potion, xml: 9008 if (Config.L2JMOD_ENABLE_MANA_POTIONS_SUPPORT) - res = usePotion(activeChar, 9008, 1); + usePotion(activeChar, 9008, 1); break; case 733: // Endeavor Potion, xml: 2010 res = usePotion(playable, 2010, 1); @@ -175,7 +175,7 @@ case 1539: // greater_healing_potion, xml: 2037 if (!isEffectReplaceable(playable, L2EffectType.HEAL_OVER_TIME, itemId)) return; - res = usePotion(playable, 2037, 1); + usePotion(playable, 2037, 1); break; case 1540: // quick_healing_potion, xml: 2038 if (!isEffectReplaceable(playable, L2EffectType.HEAL_OVER_TIME, itemId))mono to "Res scroll" kai to "Escape Scroll" doulevei....:/
5 answers to this question
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now