Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 08/21/2024 in all areas

  1. Hello cheaters, As a team of avid developers and enthusiasts of Lineage 2, we are excited to present the L2 Control Hub, a groundbreaking plugin designed by myself and my collaborator, StinkyMadness. This innovative tool equips server administrators with powerful automation capabilities directly within the game's community board. L2 Control Hub simplifies the creation and management of automations, enabling you to customize your server operations without the need to modify the source code. Key Features of L2 Control Hub: Robust Automation Triggers: Select from a plethora of triggers currently available, with continuous additions in the works to enhance your control options. Dynamic Conditions and Actions: Tailor your server operations with an extensive range of conditions and actions, ensuring flexible and precise control over game events and player interactions. Customizable Variables: Easily integrate server-specific variables from your database to further personalize and streamline your automations. Utilize these variables across various automation scenarios to cater to your specific server requirements. JavaScript Integration: Execute custom JavaScript codes that interact seamlessly with Java classes, bringing advanced functionalities to your server's ecosystem. Explore L2 Control Hub in Action: We've prepared a series of video tutorials to demonstrate the capabilities of L2 Control Hub: Control Hub - Create a Simple Flow with 1 Condition and 1 Action: Get started with basic automations. Control Hub - Multiple Conditions with Multiple Actions: Explore more complex automations for detailed server management. Control Hub - Using Variables: Discover how to implement and use custom variables for tailored automations. Control Hub - Using JavaScript: Experience the power of custom scripts in enhancing your server functionality. L2 Control Hub is currently about 70% complete, and we are actively developing and refining features. We invite you to join our Discord community to engage with the development process, provide feedback, and be the first to test new features. Additionally, any updates or changes to the plugin are seamlessly delivered to all customers directly from our web server, ensuring your system is always up-to-date without the need for manual downloads. Your game, your rules, automated. Join us in redefining server management in Lineage 2 and elevate your gaming community with unmatched automation capabilities. For more details, contact us directly to get started with L2 Control Hub. Currently, the plugin is developed using aCis sources. We will continue with these sources until we finalize all the necessary details before proceeding to integrate with the more prominent sources available. The L2 Control Hub is designed to extend beyond mere functional additions to your server. We are in the process of implementing a suite of advanced mechanisms, such as a vote manager capable of interfacing with any Lineage 2 voting site without requiring configuration, live statistics to provide admins with real-time insights, and an event engine that can generate any desired event within seconds. All these features will be seamlessly integrated into the module, enhancing your server management experience significantly. Please note that L2 Control Hub will be a premium tool, reflecting the extensive features and benefits it offers. While we are finalizing the pricing structure, rest assured that we aim to deliver great value for your investment. We will announce the cost details soon on our platforms to ensure everyone is well-informed and can plan accordingly. Join us to take your server management to the next level with L2 Control Hub. At this time, the project is on hold until further notice.
    12 points
  2. Hey everyone, today I’m sharing the Assassin’s Interface for Interlude with the community for free! However, only Premium users can download it. The interface is clean no binds or protections. If you're missing any files, you can download the L2ACDC server to grab them(Since their files have 0 protection). This isn't the end I’ll keep sharing more on MaxCheaters. That’s all for today, cheers! [Hidden Content]
    11 points
  3. This package is based of aCis 408/409 and has been prefilled with server & client modifications for your convenience. A detailed list of the features (including images/videos) in this package can be found in the L2DEV Discord. You can download the entire package here. What this Package DOES include: Prerequisite Install Files (MySQL, JDK21) Server (Compiled) + Patch Files Popular server-side Java Mods What mods are currently installed: Custom Community Board Character Preferences Menu Daily & Weekly Quests Balance System Events Engine Visual System (aka DressMe) Achievements System Retail Interface with Teleport Menu Player Startup Guide Agathion Support Autofarm System Castle / Hall Siege Manager Daily Login Rewards NPC & Item Search Dungeon System Class & Subclass Master Preset & Scheme Buffer Market Board System Ranking / Leaderboard System PCBangPoints System 4 Custom Maps (Hellbound, Fantasy Isle, Kamael Island & Crystal Island) Updated WorldMap/Minimap to support custom zones What this Package DOES NOT include: EmuDevs Armor Files EmuDevs Weapon Files EmuDevs Skin Files EmuDevs Cloak Files EmuDevs Skill Files EmuDevs Enemies/Raid Bosses EmuDevs Essence Interface Source Code To properly setup this package you will need to: Install the prerequisite files Import the database backup Register a gameserver/hexid using the tools provided in the GameServer folder Notes: The default database scheme name is "emudevs" Agathion support has been added but you will need to add your own Agathion NPC's to your patch. Bugs should be reported in L2DEV or EmuDevs discord. Most mods can be configured via the XML files Most HTML's can be edited via the HTML files Quickly updated the download link to fix incorrect idTemplates. Can we not edit posts here or am I retarded?
    10 points
  4. Website: https://www.nimeracp.com/ Discord: https://discord.gg/jCfcKTxdtr Hey there! Hope you liked my presentation on the control panel. I know you're probably wondering about the price, but I can't give an estimate just yet since we're still in development. That said, I’ll update you as soon as I have a final price to share. If you have any questions about the panel, feel free to ask in the replies, I’ll do my best to answer them accurately! @Moderators, if this isn't the right place and this section is only for finished products, feel free to move it to a more suitable section.
    8 points
  5. Hello Folks, I'm Sharing Essence Based Interface which is made from a Brasilian Guy called "Ona" The person copied from other projects features and started selling it as his own , claiming that everything has been made by him. So i've removed every possible protection from his interface and i would like to share it with everyone. Do not waste anymore your money for stolen projects Download: [Hidden Content] Mirror: [Hidden Content] if you have issues with installing the interface or missing any textures pm me back In order to get download link you have to react & reply. Credits: Sanyol
    7 points
  6. Hello, Guys today i would like to share you something unique i know many people was looking for free good H5 Community boards since on community there are few shared and old i will share you this unique L2Dorn Community Board includes it's not my work it's shared for mxc users - PSD + all scripts Server Side & Client Side If you need to change default logo to your - write me in skype Support_La2-Pro Previews Download: Link = DOWNLOAD to get the password of the archive Like my 1st post send me pm and reply in topic..
    7 points
  7. Hello Folks once again im going to share now the Classic Version the reason im sharing this stuff as i mentioned before the logs are writed on Essence Share i've did Download: [Hidden Content] Mirror: [Hidden Content] to get the link react & reply Credits: Sanyol for removing Protection
    5 points
  8. L2VikosMemory | User Manual 1. General Information L2VikosMemory is a memory optimization tool for Lineage II. It automatically clears the game cache, reducing RAM usage and improving stability. 2. Installation Extract L2VikosMemory.dll and ogg.dll into the game folder (where l2.exe is located). No additional steps are required. 3. Configuration L2VikosMemory settings can be adjusted in the L2VikosMemory.cfg file: CleanInterval=X – Cleanup interval (in minutes) TryElevate=true/false – Enable/disable privilege escalation AltClientGuard=true/false – Compatibility setting for STRIXGUARD Example Configuration: CleanInterval=3 TryElevate=false AltClientGuard=false 4. Verification The log file L2VikosMemory.log contains: Connection status Cleanup results Freed memory 5. Troubleshooting If L2VikosMemory is not working: Check if the DLL files are in the correct folder. Try running the game as an administrator. Check the log file for errors. 6. Support For support, contact Artem on Telegram. 7. Additional Information Compatibility: Supports most Lineage II clients. Recommended Interval: 3-5 minutes. Gameplay Impact: No effect on gameplay performance. Price: $150
    5 points
  9. WARNING: This mod is still experimental, don't use it on LIVE servers. This is an old mod of mine which i ditched since it carries many risks but i decided to share it for "educational" purposes and with the hope you guys give some insight and help to make it functional and safe to run. The idea behind this mod is to give an extra layer of protection for host-machines against DDOS attacks. When DDOS occurs ---> trigger the lockdown mechanism allow only in game (player) IP's and block all unknown traffic. Putting all in game players to "quarantine" will lead to question "How will a player who wasn't online during the lockdown get their IP added to the whitelist?". Well my temporary solution for that is to combine it with discord bot by adding a bot command for example: !addIP 127.0.0.1 or by adding an option in your site (user CP) "allow my ip" it could be button or whatever. Incase of discord bot command has to be sent to the bot itself and not in channels (obviously). Still giving your IP is sus for many people (i dont blame them). If you guys have better ideas you are more than welcome to share them here. Obviously this is the theory behind my idea. I'm not even sure if it's possible, but that's why I shared it with you all. It could potentially be useful for many server owners. OS: Linux - Debian 12 CODE -> pass : maxcheaters
    5 points
  10. I'm releasing a complete Lineage 2 C4 server pack based on the Accumulative Subclass System — totally free, with no restrictions, and everything you need to launch your own server. What’s included: Website (ready-to-use) SQL Server 2012 compatible structure L2OFF Server Files (C4 Chronicle with subclass accumulative system) - Client (Interlude) Tools like L2Account.exe to manage accounts Fully working Client Installation Instructions: Install SQL Server 2012 Open SQL Server Management Studio Go to the folder: Servidor/SQL/ Execute all .sql files — they will automatically create the needed databases. Setup the ODBC connections: Copy these files to My Documents: l2c4_lin2clancomm.dsn l2c4_lin2comm.dsn l2c4_lin2world.dsn Or manually create them via Control Panel > Administrative Tools > ODBC > File DSN Run the account manager: Servidor/ZZZ-l2account/L2Account.exe From there you can: Create regular accounts Create a GM/Admin account Start your server by launching: A. Servidor/hAuthD/hAuthD.exe B. Servidor/CacheD/CacheD.exe C. Servidor/L2Server/L2Server.exe D. Servidor/L2NPC/L2NPC.exe After everything is running, open your Lineage II client and log into your own server! Download Link: Full C4 Accumulative Pack (Server + Web + Client) Support This pack is provided 100% free, no license system, no limits. If you have any doubts or questions, feel free to message me directly here. Enjoy and good luck with your server! — GX-Ext Other Mirror: https://www.mediafire.com/file/r7cph8fxj9y6j7c/L2OFF_C4_C4_ACU%2BWEB%2BCLIENT.rar/file
    4 points
  11. [L2J] Pacote baseado no Wallaz L2JDream - Atualizado para Java 14 + Correções Salve comunidade, Venho compartilhar um pacote baseado no projeto Wallaz L2JDream, que revisei e corrigi extensivamente para facilitar a vida de quem deseja iniciar ou evoluir seu servidor L2J. O que foi feito: Migrado e reorganizado o projeto para o Java 14 (compatível com os tempos atuais e mais desempenho). Corrigido problema de Spawns que estavam ausentes no pacote original. Passivas de itens faltando foram identificadas e devidamente adicionadas. Banco de dados limpo e organizado, entregue como arquivo .sql dentro da pasta tools. Todos os erros de "sinal amarelo" (warnings) foram resolvidos no código. Adicionado painel com interface gráfica usando WScript.Shell para facilitar a execução, evitando o uso de .bat no CMD. Projeto já pronto para ser importado direto na IDE Eclipse (você pode ver na imagem abaixo o pacote carregado com sucesso). Imagens de apresentação: Auth Login Server Game Server (World) Projeto importado no Eclipse Links para download: Source completa (core + datapack): https://github.com/JulioPradoL2j/L2JDreamV2 Considerações finais: Esse pacote é ideal para quem quer iniciar um projeto L2J de forma rápida e com menos dores de cabeça. Caso encontre algum erro ou tenha sugestões, fique à vontade para comentar aqui no post. Boa sorte no seu projeto! .
    4 points
  12. Hello every one I want to share this files. l2jacis Pack: https://mega.nz/file/wSVTURgJ#uYfCNlnqWrx8p4KaLTWCqkEH2cGIQbjTwrvoOoZnGwo Source: https://mega.nz/file/pe9WGQrA#loT_dg-cFam_9NQp4krJRt9vST9rXrJMVt3jmdXyi8w Geodata: https://mega.nz/file/ZesFlRRQ#ll4q0Dh-HfHvksiRf_SAv1Lo8vrMAdaYWVLTmeFvekw Patch: https://mega.nz/file/NbVBjRQB#w2WiV6nrJdgfaienbtVl0lHqvTtLXDuBjfnV5OcLMVA Tools: https://mega.nz/file/techDZxb#H-5aSfLyvzgtul23SSzt8PYLphu6Qpw1pMq7AO5u108
    4 points
  13. Hello everyone, I'm sharing the version I was working on recently. And a more original server-focused package following the missions of the original game. The entire calling package was restructured, making it lighter and easier to execute. It is good for people who want to start a package, without customizing equipment and skills. * I put together 4 bases: "RusaCis3.5" "Lucera" "aCis" "Dev" It has a Modern UI template. JDK 14: https://mega.nz/file/rg5QwDJA#FwHrPbt8bw8prD3WLJz7dFOv1HAoYakNLTbVhLdgQTY Client: https://www.mediafire.com/file/rg6twikao7zugd2/L2_CLIENT_INTERLUDE.zip MariaDB: https://mega.nz/file/YBIXXSgY#9xqdkVMXAXY3VPNkBs6R05rnzJ9bH6aU47y2WNLfri4 L2FileEdit: https://mega.nz/file/xdQTTaKJ#poqzJDE-gItyQo0EOEWCHsC_r4HPXaCmLAZ_InUmOjE Soucer: https://mega.nz/file/cv1BnCpY#F6UDroejOid2i4F9ipMZTt8d0u_ww10o9e0zAjlHMSA Compilado: https://mega.nz/file/M3FxCaaR#FW6k4SFZJhajRygJSxDJwDfWc04kaC6HVUc5rktT2SE Author post: IFox
    4 points
  14. Promotion FREE for 1 month use of Donation Panel v5 Promotion Period: 11/11/2024 - 11/12/2024 Coupon Code: Offer: Before payment apply this coupon and get 100% discount on the initial fee (98.90€) for the v5 Donation Panels plan. Note: After the free month ends and you choose to continue using the panel you will need a monthly subscription. Important Details: Cancellation: If you decide not to continue using the panel after the free month, the panel will be automatically canceled. Limit: Only 20 uses available; the first 20 people can enjoy the initial month without the upfront fee. Eligibility: One use per account. Dual or multiple accounts are strictly prohibited and will result in a ban from this promotion. Installation: You can see the installation by the videos in this topic, or ask help in discord URL's Information about the panel: Donate Panel v5 Support for the panel: Donate Panel v5 Support Download the panel: Donate Panel v5 Download BE AWARE: Leaked versions of old v2 panels (year 2018 with bugs) are still out sold by scammers without support or knowledge of the files. Good luck.
    4 points
  15. Hellllllo everyone ! Good news for some, bad news for others : aCis was, once again, leaked. It wouldn't be that problematic if it was old content, or even last revision 408 ; but this time, the whole content of under development/master branches was leaked out. One pack project is actually reselling NEXT revision content - before even being announced on aCis forums. The mole/leaker is still part of customers, and is still capable to leak data, at the date I speak about. Since I'm on a joyful mood, following events will occur : PIRATE PLANK MINIGAME Since we got restricted amount of donators (we're actually 13 on sources counting developers, over all), it's not extremely hard to actually delete the mole ; few ppl are actually matching the description, and a list can be easily generated based on time leak, potential country, contributions,... Which basically end with that representation : How will it work ? Everytime a new leak will occur, the following donator on the board will jump out of ship (and Talking Island waters are kinda cold). Since I'm not a monster and got principles, I will send back spent money for the non-granted months to the kicked dude. You won't be added back to the sources, anytime. The game ends when the mole is dropped out, or when I'm alone with my most loyal peeps around. CONTRIBUTION Leftover donators will have to contribute to the pack, being reports or code edits. Silent people won't be renewed anymore solely based on money. In the same order of idea, I will now request a minimum of 100 cookies contribution before accepting any new ppl on the gitlab - which anyway won't be hard to do if you're a minimum invested into the pack. If you understood the concept, free ppl can access gitlab sharing for 200 cookies contribution (100+100), and donators can access with 100 cookies + 200€. Regarding monthly contribution, there are no special numbers to achieve, stay active and you will stay. PUBLIC REVISION WILL STEP UP Next rev 409 will be exceptionally released as public revision. This revision got unique reworks, notably AI (L2OFF GF 1:1) and pathfind systems (up to 100 times faster, see #for-your-eyes-only over aCis discord for screens proofs). This revision got a lot of new content, and is far ahead of any other L2J pack in terms of AI fidelity with L2OFF - even the costier. ENDING WORD Thanks to all loyal people who have, will or currently support this pack - one of the very few to offer unique reworks. L2J community, as a whole, unfortunately never stepped up or shined by its cleverness or integrity - and is more preocuppied to add poorly written customs over quality leaked sources. The olympic medal goes to the poop-eater project owner applying straight leak, not even knowing what exactly is the changeset content (because yes, he doesn't know)... It's actually sad real people follow and pay for your work, but well, good job surfing on my own merits, I guess. Maybe one day you will go out of my shadows, and make your own path. That's the best I can wish you. So, my thanks to the few beacons of light in this mere pool of shadows. That's essentially for you (and for my own pleasure, ofc) I continue to work on this hobbyist project - started almost 14 years ago. ----------------------------------------------------- Changeset 409 (3301) SCH, Castles, IU, Npc movement, Drop rate rework, Bugfixes, Organization SCH - Ty Bandnentans for the good work All SCHs are normally fixed and working. CH decorations are reworked (they got their own XML, related Configs are dropped). Aden CHs got the Wyvern option, as stated in Patch Notes. Ty Denzel for report. CH features levels are corrected. Ty Denzel for report. Fix NPC clan crest issue. Castles Keep Castle next tax percent instead of resetting it to 0. Implementation of missing variables over Castle vault management. Ty KejbL for report. Remove doublons over Residence npcIds. Add npcId 35552 HTMs. Ty //Dev for report. Fix the tax income calculation. IU Add PAPERDOLL as potential location for IU (fix gm enchant, arrows consumption). Ty Roko91 for report. Fix weight calculation over login. Ty KejbL for report. Fix inventory update upon teleport (BSOE consumption). Ty //Dev for report, La Roja for fix. Fix inventory weight upon NPC buy. Npc movement MOVE_TO desire is cleansed over onEvtBlocked, avoiding to build infinite desire. Don't add MOVE_TO desire if given Location isn't reachable. FLEE doesn't call event upon onEvtBlocked (that event means something wrong happened, it's then impossible to trigger "regular" FLEE checks). Use Location#equals in few scripts. NpcAI#thinkFollow cleanup (-8 arrays, -24 List#get, -8 distance2D). Drop rate rework Main idea is to iterate each category X times, as if X monsters were killed. No % re-calculation or whatever, it's plain and simple. x50 means you got the calculated drops of 50 monsters. Avoid to generate IntIntHolder, manage the drop/spoil using a Map<Integer, Integer> instead, which also allow to merge similar itemIds. Categories % are tested no matter if drop or spoil, which allow levelMultiplier to be properly applied. Monster#dropItem is moved to Npc#dropItem, which allow any Npc to drop an item and avoid cast. "killer" is now part of all Npc#dropItem, meaning the item is properly item protected. Bugfixes Fix a ClassCastException over Quest#onClanAttacked. Fix a NegativeSizeArrayException upon client logging. Drop few logging errors related to invalid client attempts. Fix NPE over Q635. Fix PDAM calculation prior to rev 399 physical attack/skill split. Ty Yoska for report. Fix TradeList automatic title cleanup. Ty Denzel for report/fix. Add back missing Config.PARTY_XP_CUTOFF_METHOD "none" option. Ty CUCU23 for report/fix. Fix "upper roof" NPCs. Ty Bandnentans for fix. Fix Seven Signs individual stone contribution method. Ty //Dev for report. Fix Q372 reward table and drop rate. Ty //Dev for report. Q348 now distributes drops as party-random, despite the client info. Ty Denzel for report. Fix Benom teleports out. Hardcode other in/out Locations. Ty //Dev for report. Don't show Crystallize icon on inventory for Bounty Hunters (was an addition of CT1 GP1). Ty Bandnentans for report. Replace "weightPenalty" for "weightLimit" over skills XMLs. Ty //Dev for report/fix. When Heroes participate in a raid against Antharas, Valakas, and Baium, the boss monster has a chance to shout out the Hero characters’ names. Ty deekay for fix. Fix isRaidBoss implementation (a raidboss minion without master was considered raidboss). Fix Nurse Ants not healing the Queen Ant larva. Fix a SQLException over Olympiad server startup. Fix a SQLException over Clan member removal (since clan privs rework). Fix default 30169 npcId HTM. Ty Bandnentans for report. Fix Festival Guide missing rift option. Ty Denzel for report/semi-fix. Few dwarven/general manufacture fixes Add the missing max recipe integrity check. Upon shop fail, call back the manage window. Upon shop fail, don't cleanup the manufacture list. Upon shop success, cleanup the reverse manufacture list (successful general shop resets dwarven, successful dwarven shop resets general). Organization Rework HtmCache and CrestCache to use NIO. Move CrestType to enums. Implementation of WorldObject#forEachKnownType / WorldRegion#forEachType & forEachRegion - Avoid List overhead in numerous popular locations (notably broadcastPacket or region checks - which are done on every knownlist check). Rework SkillList packet, it is now handled as other packets. Delete Player#sendSkillList method. Delete DeadlockDetector class and related configs. Add GameServer#isServerCrash, based on LaRoja implementation - without uses, for now. Move IPv4Filter class to commons.network, delete net.sf.l2j.util package. Add DefaultSeeRange config, use the retail value 450 instead of 400. Add more records, ty LaRoja for the merge request. Delete unused dimensionalRift.xml. Few ItemContainer optimizations. Rename all ocurrences of adenas to Adena. SonarLint / UCDetector fixes : Drop MathUtil#limit, use Math#clamp instead (introduced in JDK21). Drop following unused Configs : FS_TIME_ENTRY, FS_TIME_END, RAID_MINION_RESPAWN_TIMER. Few public / protected / private edits. A lot more to come. switch cases are merged (introduced in JDK12). Boolean object is compared to Boolean.FALSE/TRUE, not directly tested as a boolean. String#replaceAll is replaced with String#replace when a regex pattern isn't involved. Generate few records : Sequence, TutorialEvent. Few class-based variables are now local. Use HashMap.newHashMap instead of new HashMap when the capacity is known (static final maps). HashMap.newHashMap avoids to set 0.75 capacity when it's not needed. LogRecord record is renamed LogRecord logRecord, due to record being now a keyword. Use proper Singleton pattern for instance type (notably listeners). Generate private constructors calling IllegalStateException for utility classes.
    4 points
  16. You have deleted a lot of things you need in the compiler. At least you deleted the strip command. To return the strip to normal operation, you need to return Editor.u, Fire.u. Editor.u is needed for the command, Fire.u for the Editor.u build. You also need to add them to UT2003.ini, example below: [Editor.EditorEngine] CacheSizeMegs=32 EditPackages=Core EditPackages=Engine EditPackages=Fire EditPackages=Editor EditPackages=NWindow EditPackages=Interface If you want to protect your code at least a little, use this command to build your interface.u, or any other unrealscript file you need. To compile with the strip command, use the Make_Interface_Strip.bat file Source Editor, Fire and Make_Interface_Strip.bat: Download After the first build of Editor.u and Fire.u, you can delete the source code folders if they bother you, they are no longer needed for further work. I use this command myself, though in a different compiler. I decided to share the fix because I was helping a friend with restoring this feature, as I was surprised that it didn't work for him. For this reason, that it uses a similar compiler, I decided to share the fix here.
    4 points
  17. Hi Maxcheaters Users! By request of many users asking me if I have compiler for interface.u, here are my share of my collection. I hope this will be useful for anyone of this forum. Enjoy it!! Interlude Compiler: DOWNLOAD Hellbound Compiler: DOWNLOAD Gracia Final Compiler: DOWNLOAD Epilogue Compiler: DOWNLOAD Freya Compiler: DOWNLOAD High Five Compiler: DOWNLOAD Ertheia Compiler: DOWNLOAD Grand Crusade Compiler: DOWNLOAD Salvation Compiler: DOWNLOAD Now, if you want to have all in one pack with a basic menu like this: Download HERE
    3 points
  18. A New Chapter Begins We're Rebuilding – Join Our Staff Team After many years of activity, growth, and challenges, it’s finally time for our community to restructure and move forward. We’re ready to turn a new page and evolve into something greater — but we can’t do it without the help of passionate and committed people. That’s why we’re now opening up staff applications for those who want to actively shape the future of our community. If you have the motivation, time, and patience to contribute to something meaningful, this is your chance to step in and make a real impact. What We're Looking For We’re building a fresh and dedicated team of individuals who are ready to support and grow this project. Open roles include: Moderators – to keep the forum clean, safe, and organized Gaming Moderators – to help manage gaming boards (e.g., Lineage, GTA FiveM) Content Creators – to post updates, guides, and articles Community Managers – to engage users and drive activity Technical Staff – for development, backend, and server work We’re not focusing only on Lineage anymore. Our vision is expanding to new areas — including GTA FiveM and other multiplayer games you might have expertise in. If you have a good idea, a server plan, or something new to suggest — we’re open to it. Now’s the time to bring it forward. Requirements We’re looking for individuals who have: A history of activity on the forum (preferred) Available time to contribute consistently A sense of teamwork and responsibility A genuine interest in gaming and community building If you're interested, just send a private message to me or Celestine. (or just reply here) Tell us a few things about yourself and how you’d like to contribute. Let’s bring this community back to life. Let’s rebuild something great — together. M M G A
    3 points
  19. Hello everyone, it’s been a hell of a long time since my last post here. The graveyard keeps growing. You’re probably wondering, “What’s this all about?” Let me tell you: the best Lineage 2 server you’ve ever played on. Maxthor, dicksucker of the century - are you listening? How about you answer your fucking messages? Celestine, it’s been a while - you’ve got my messages hours ago. Now, since I’m the only one from the old crew who still has an account on this dead-ass forum, let me tell you what’s going on. We’ve got the resources, the infrastructure, and everything else needed to create the ultimate Lineage 2 servers – better than anything you’ve ever seen. Why? Because we’re fucking bored. There’s not a single L2 server out there worth mentioning. All of them are total disasters run by clowns who think they can make a quick money with premium accounts and donation fests. Well, here’s a message for you: you’re fucked. We’re back. You’re probably asking, “Back? Who? Why? What’s the point?” Here’s the answer: it’s none of your fucking business who. All you need to know is that we’ve got the money, the infrastructure, and the experience – and we don’t give a fuck about profits, we’re doing it for ourselves and for players like us. We’re about to create Lineage 2 servers like no one has ever fucking seen before. The work has already been in progress for over a year. We’re building a network of servers – whatever style you can imagine: low rate, high rate, stack sub – you name it. Got a crazy idea for a server? Now’s your time to speak up. Your ideas – our execution. We’ve got the files, we’ve got the servers, and soon we’ll share the website where you can vote in polls and help shape the servers of your dreams. And of course, all the hate drama from all of you who made that pathetic garbage servers is very appreciated.
    3 points
  20. You can download new server update, plus an installer that will have your own C4 Cumulative server in 3 simple steps and above all (FREE). https://l2servers.com.ar https://www.mediafire.com/file/aktanlwyuqc9jsa/L2OFF_C4_C4_ACU_GXEXT.rar/file
    3 points
  21. [L2OFF H5] GX-EXT (Public Test Version) Hello everyone, I'm releasing a public test version of my custom extender for Lineage 2 High Five (L2OFF platform), named GX-EXT. This extender is built over official High Five files, designed for performance, customization, and enhanced gameplay features. Note: This test version is intended for personal use, allowing you and up to 20 friends to test and explore the features freely. Key Features (Some may be disabled in this build): AIOBuffer AutoAnnounce AutoLearnSkill AutoLoot AutoStart BuilderCmd Bypass ClassManager OlympiadSystem CommunityBoard Security System (Client Extension / Active Anti-Cheat) DropList Custom Raid Drops Shift+Click Drop Info EnchantSystem ItemDelivery LureProtection MenuPlayer PrimeShop PvPAnnounce Rankings RestoreOfflineShop SchemeBuffer Services System SpawnProtection TeleportData TerritoryData TVT Event VisualArmor For deeper insight, feel free to check the configuration files — most features are fully customizable. Enlaces de descarga: Cliente: Download Client GX-EXT Servidor: Download Server GX-EXT (Password: 115599) Minimum Requirements: Platform: Windows Server 2012 or newer RAM: 16 GB Storage: SSD Base: Official High Five (L2OFF) files Commands: //admin //admin2 .menu ALT+B Feel free to post your questions or feedback here, or contact me via private message. Test it, break it, and enjoy it with your friends. This version is perfect for small team trials (up to 20 online users). Enjoy testing GX-EXT!
    3 points
  22. A good day to everybody here on Max-Cheaters..! Or as they say in Thessaloniki, Greece. Kalispera. Ela re bros. I am here to bring you another masterpiece archived in the very darkest corners of l2rr.ucoz where even this archaeologist Dwarf dares not venture. However. Such a find must be revealed. After brushing off its dust from 2014 and polishing it up a bit to fit **MODERN USERS** (DXT3 compression, skin masking, 64x64 icons). Behold, the absolutely shockingZeuS ThuNDeRarmor set. Once again. Another masterpiece immortalized in the museum known as the MaxCheaters Client-Development-Discussion section. Credits: The17heroes Gracia Final Download: https://l2jbaylee.dev/shares/ZeuSThuNDeRArmor.rar
    3 points
  23. Hello, I'd like to share with you a web template of me. https://www.mediafire.com/file/cslzde4h89it91y/Shinemaker.rar/file
    3 points
  24. Download: [Hidden Content] [Hidden Content] Author: Un1k
    3 points
  25. Radiant Sapphire skin for Lineage 2! Crystal-encrusted skin for all protocols! Perfectly tailored for all races, this armor features a glowing blue aesthetic that will make you look both fierce and majestic. Gleaming sapphire design Exclusive, one-of-a-kind look Perfect for making your character shine
    3 points
  26. There's many reasons why it would be more NO than YES : Using NCSoft assets is a death wish, they can lawyer any LU3/Unity if they wanted, since it's a plain steal of intellectual property. It's an hobby, as you said it, and it's not specially about money. Money is a way to filter idiots/resellers, nothing more. It's really about trying to replicate old content and optimize it which I find it fun. I just align with the basic idea than an emulator emulates. When you launch Project64 and SuperMario 64, you don't expect to get something more than 120 stars and Bowser boss in the end - which should have been L2J project to begin with Even if I played a lot with TESCS from Morrowind, back in time, it's not enough to handle current engines, and I'm too lazy to learn Unity/Unreal Engine. Moreover, it would mean buying assets. While doing it alone would be a fail, coupling to L2J / L2 community would still be shitty (since the majority is RU/BR) ; people is only about fame/glory/reselling shit on back of others. Opening to others, the project would be leaked day 1, rebranded and resold. MMO genre is basically dead, and that's not a reboot of any game (l2/wow classic :D) which will turn the tide. Regarding L2 or an remastered version of it, you can obviously blatantly copy-cat it (as Propnight did for Dead by daylight). All frenchies aren't supposed to do Expedition 33 :).
    3 points
  27. Digging through my files is a bad idea, karma will catch up with you xDDDD
    3 points
  28. This version (1.34) includes all the fixes from above + more, with the exclusion of Premium Account System. The Premium Account System was added in 1.35, which is currently only available through the Chronicle Coders Discord. Appreciate those of you reporting issues and providing suggestions. Download EmuDevsIL 1.34
    3 points
  29. I bet his village is flooded again
    3 points
  30. Utility for more comfortable management of configuration files. Supplied free of charge. NO VIRUSES/KNOCKERS/WORMS and other nonsense! If in doubt, you can not download. you can to see: you can to download it here
    3 points
  31. [Release] Solo PvP Zone System Compatible with: aCis 401+ Features: Automatic Exit on Restart: Players are removed from the zone if a restart occurs or logout. Custom Exit Command: Players can exit the Solo Zone with the voice command .exit. Teleport NPC Command: new bypass solopvp for gatekeeper. Random Name Generator: Generates random names. PvP Flag: The players are flagged within this zone. xml preview & java code backup code -> https://pastebin.com/974V2p2p SoloZone.xml <?xml version="1.0" encoding="UTF-8"?> <list> <zone shape="NPoly" minZ="-5200" maxZ="-4680"><!-- Frintezza Solo Zone --> <stat name="name" val="Solo PvP Zone" /> <stat name="locs" val="174244,-89089,-5112;174260,-86881,-5112;173184,-88090,-5112;175309,-88018,-5112;174231,-88019,-5112;175136,-88828,-5104;174962,-87025,-5104;173149,-87142,-5104;173470,-88908,-5112" /> <stat name="restrictedClasses" val="15,16,97" /> <node x="172031" y="-90127"/> <node x="176428" y="-90089"/> <node x="176428" y="-74051"/> <node x="172057" y="-74108"/> </zone> </list> SoloZone Code: diff --git a/java/net/sf/l2j/gameserver/taskmanager/SoloZoneTaskManager.java b/java/net/sf/l2j/gameserver/taskmanager/SoloZoneTaskManager.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/taskmanager/SoloZoneTaskManager.java @@ -0,0 +1,98 @@ +package net.sf.l2j.gameserver.taskmanager; + +import java.security.SecureRandom; +import java.util.ArrayList; +import java.util.logging.Logger; + +import net.sf.l2j.commons.random.Rnd; + +import net.sf.l2j.gameserver.data.manager.ZoneManager; +import net.sf.l2j.gameserver.enums.ZoneId; +import net.sf.l2j.gameserver.handler.voicecommandhandlers.VoiceExitSoloZone; +import net.sf.l2j.gameserver.model.World; +import net.sf.l2j.gameserver.model.actor.Player; +import net.sf.l2j.gameserver.model.location.Location; +import net.sf.l2j.gameserver.model.zone.type.SoloZone; + + +/** + * @author MarGaZeaS + */ +public class SoloZoneTaskManager implements Runnable { + + private static final Location EXIT_LOCATION = VoiceExitSoloZone.getExitLocation(); // Λαμβάνουμε την έξοδο από το VoiceExitSoloZone + + @Override + public void run() + { + // Διασχίζουμε όλους τους παίκτες του κόσμου + for (Player player : World.getInstance().getPlayers()) + { + // Ελέγχουμε αν ο παίκτης είναι στο SoloZone + if (player.isInsideZone(ZoneId.SOLO)) + { + // Μεταφέρουμε τον παίκτη στην έξοδο + player.teleportTo(EXIT_LOCATION.getX(), EXIT_LOCATION.getY(), EXIT_LOCATION.getZ(), 0); + player.sendMessage("The server is restarting, you have been moved out of the Solo Zone."); + } + } + } + + private int _id; + + private static final Logger _log = Logger.getLogger(SoloZoneTaskManager.class.getName()); + private static final ArrayList<String> _rndNames = new ArrayList<>(); + private static final int RANDOM_NAMES = 500; + private static final String CHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"; + private int _playersInSoloZone = 0; + + public int getPlayersInside() { + return _playersInSoloZone; + } + + public void setPlayersInside(int val) { + _playersInSoloZone = val; + } + + public SoloZoneTaskManager() { + _log.info("Solo Zone System: Loading..."); + for (int i = 0; i < RANDOM_NAMES; i++) { + String name = generateName(); + _rndNames.add(name); + _log.info("Generated name: " + name); + } + _log.info("Solo Zone System: Loaded " + _rndNames.size() + " names."); + } + + public String getAName() { + if (_rndNames.isEmpty()) { + _log.warning("SoloZoneManager: No random names available."); + return "Unknown"; + } + return _rndNames.get(Rnd.get(5, RANDOM_NAMES - 5)); + } + + private static String generateName() { + SecureRandom rnd = new SecureRandom(); + StringBuilder sb = new StringBuilder(15); + for (int i = 0; i < 15; i++) { + sb.append(CHARS.charAt(rnd.nextInt(CHARS.length()))); + } + return sb.toString(); + } + + public int getZoneId() + { + return _id; + } + + public final static SoloZone getCurrentZone() { + return ZoneManager.getInstance().getAllZones(SoloZone.class) + .stream() + .findFirst() // Επιστρέφει την πρώτη SoloZone (αν υπάρχει μόνο μία) + .orElse(null); + } + + public static SoloZoneTaskManager getInstance() { + return SingletonHolder._instance; + } + + private static class SingletonHolder { + private static final SoloZoneTaskManager _instance = new SoloZoneTaskManager(); + } +} diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/taskmanager/PvpFlagTaskManager.java b/aCis_gameserver/java/net/sf/l2j/gameserver/taskmanager/PvpFlagTaskManager.java index a707ce5..d247e2e 100644 --- a/aCis_gameserver/java/net/sf/l2j/gameserver/taskmanager/PvpFlagTaskManager.java final Player player = entry.getKey(); final long timeLeft = entry.getValue(); + if(player.isInsideZone(ZoneId.SOLO)) + continue; if(player.isInsideZone(ZoneId.BOSS)) continue; // Time is running out, clear PvP flag and remove from list. if (currentTime > timeLeft) diff --git a/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestCharacterCreate.java b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestCharacterCreate.java index a707ce5..d247e2e 100644 +++ b/aCis_gameserver/java/net/sf/l2j/gameserver/network/clientpackets/RequestCharacterCreate.java if (Config.ALLOW_FISH_CHAMPIONSHIP) FishingChampionshipManager.getInstance(); + if (Config.ENABLE_STARTUP) + StartupManager.getInstance(); diff --git a/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminMaintenance.java b/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminMaintenance.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/handler/admincommandhandlers/AdminMaintenance.java if (!st.hasMoreTokens()) { sendHtmlForm(player); return; } try { switch (st.nextToken()) { case "shutdown": + SoloZoneTaskManager exitTask = new SoloZoneTaskManager(); + ThreadPool.schedule(exitTask, 0); Shutdown.getInstance().startShutdown(player, null, Integer.parseInt(st.nextToken()), false); break; case "restart": + exitTask = new SoloZoneTaskManager(); + ThreadPool.schedule(exitTask, 0); Shutdown.getInstance().startShutdown(player, null, Integer.parseInt(st.nextToken()), true); break; case "abort": Shutdown.getInstance().abort(player); break; diff --git a/java/net/sf/l2j/gameserver/handler/voicecommandhandlers/VoiceExitSoloZone.java b/java/net/sf/l2j/gameserver/handler/voicecommandhandlers/VoiceExitSoloZone.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/handler/voicecommandhandlers/VoiceExitSoloZone.java +package net.sf.l2j.gameserver.handler.voicecommandhandlers; + +import net.sf.l2j.commons.pool.ThreadPool; + +import net.sf.l2j.gameserver.enums.ZoneId; +import net.sf.l2j.gameserver.handler.IVoiceCommandHandler; +import net.sf.l2j.gameserver.model.actor.Player; +import net.sf.l2j.gameserver.model.location.Location; +import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUse; + +/** + * Handles the voice command for exiting the Solo Zone with delay and effects. + * + * @author MarGaZeaS + */ +public class VoiceExitSoloZone implements IVoiceCommandHandler +{ + private static final String[] VOICE_COMMANDS = + { + "exit" + }; + + // Default location to teleport players when exiting the Solo Zone + private static final Location EXIT_LOCATION = new Location(81318, 148064, -3464); // Replace with your desired coordinates + + // Προσθήκη της μεθόδου για να πάρουμε την τοποθεσία εξόδου + public static Location getExitLocation() { + return EXIT_LOCATION; + } + + @Override + public void useVoiceCommand(Player player, String command) + { + if (command.equalsIgnoreCase("exit")) + { + if (!player.isInsideZone(ZoneId.SOLO)) + { + player.sendMessage("You are not inside the Solo Zone."); + return; + } + + // Notify the player about the delay + player.sendMessage("You will be teleported out of the Solo Zone in 2 seconds."); + + // Cast skill effect (Skill ID: 2100, Level: 1) + player.broadcastPacket(new MagicSkillUse(player, player, 2100, 1, 2000, 0)); + + // Schedule the teleportation after a 2-second delay + ThreadPool.schedule(() -> { + // Teleport the player to the designated exit location + player.teleportTo(EXIT_LOCATION.getX(), EXIT_LOCATION.getY(), EXIT_LOCATION.getZ(), 0); + + // Inform the player + player.sendMessage("You have exited the Solo Zone."); + }, 2000); // Delay in milliseconds (2000ms = 2 seconds) + } + } + + @Override + public String[] getVoiceCommandList() + { + return VOICE_COMMANDS; + } +} diff --git a/java/net/sf/l2j/gameserver/handler/VoiceCommandHandler.java b/java/net/sf/l2j/gameserver/handler/VoiceCommandHandler.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/handler/VoiceCommandHandler.java public class VoiceCommandHandler { private final Map<String, IVoiceCommandHandler> _entries = new HashMap<>(); protected VoiceCommandHandler() { ............ ............ + registerHandler(new VoiceExitSoloZone()); } public void registerHandler(IVoiceCommandHandler handler) { for (String command : handler.getVoiceCommandList()) _entries.put(command, handler); } diff --git a/java/net/sf/l2j/gameserver/model/actor/Npc.java b/java/net/sf/l2j/gameserver/model/actor/Npc.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/model/actor/Npc.java else if (command.startsWith("Chat")) { int val = 0; try { val = Integer.parseInt(command.substring(5)); } catch (final IndexOutOfBoundsException ioobe) { } catch (final NumberFormatException nfe) { } showChatWindow(player, val); + ) + else if (command.startsWith("solopvp")) + { + SoloZoneTaskManager.getInstance(); + player.teleportTo(SoloZoneTaskManager.getCurrentZone().getLoc(), 25); + } else if (command.startsWith("Link")) { final String path = command.substring(5).trim(); if (path.indexOf("..") != -1) return; final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); html.setFile("data/html/" + path); html.replace("%objectId%", getObjectId()); player.sendPacket(html); } diff --git a/java/net/sf/l2j/gameserver/network/clientpackets/RequestRestartPoint.java b/java/net/sf/l2j/gameserver/network/clientpackets/RequestRestartPoint.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/network/clientpackets/RequestRestartPoint.java // Fixed. - else if (_requestType == 4) - { - if (!player.isGM() && !player.isFestivalParticipant()) - return; - - loc = player.getPosition(); - } + if (_requestType == 4) + { + // Έλεγχος αν ο παίκτης δεν είναι GM, δεν είναι μέρος του φεστιβάλ και δεν είναι στην Solo Zone + if (!player.isGM() && !player.isFestivalParticipant() && !player.isInsideZone(ZoneId.SOLO)) + { + return; + } + + SoloZoneTaskManager.getInstance(); + SoloZone currentZone = SoloZoneTaskManager.getCurrentZone(); + if (currentZone != null && currentZone.getLoc() != null) + { + // Αν υπάρχει ζώνη και οι τοποθεσίες δεν είναι κενές, χρησιμοποιούμε τυχαία τοποθεσία από την ζώνη + loc = currentZone.getLoc(); + } else + { + // Διαφορετικά, κάνουμε respawn στην τρέχουσα θέση του παίκτη + loc = player.getPosition(); + } + } diff --git a/java/net/sf/l2j/gameserver/network/clientpackets/RequestRestart.java b/java/net/sf/l2j/gameserver/network/clientpackets/RequestRestart.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/network/clientpackets/RequestRestart.java if (player.isFestivalParticipant() && FestivalOfDarknessManager.getInstance().isFestivalInitialized()) { player.sendPacket(SystemMessageId.NO_RESTART_HERE); sendPacket(RestartResponse.valueOf(false)); return; } + if (player.isInsideZone(ZoneId.SOLO)) + { + player.sendMessage("You cannot restart your character while in Solo Zone. Use .exit to leave"); + player.setFakeName(null); + sendPacket(RestartResponse.valueOf(false)); + return; + } player.removeFromBossZone(); diff --git a/java/net/sf/l2j/gameserver/network/clientpackets/Logout.java b/java/net/sf/l2j/gameserver/network/clientpackets/Logout.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/network/clientpackets/Logout.java player.removeFromBossZone(); player.logout(true); } } + + if (player.isInsideZone(ZoneId.SOLO)) + { + player.sendMessage("You cannot logout or restart your character while in Solo Zone. Use .exit to leave"); + player.setFakeName(null); + player.sendPacket(ActionFailed.STATIC_PACKET); + return; + } + player.removeFromBossZone(); player.logout(true); } } diff --git a/java/net/sf/l2j/gameserver/model/zone/type/SoloZone.java b/java/net/sf/l2j/gameserver/model/zone/type/SoloZone.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/model/zone/type/SoloZone.java +package net.sf.l2j.gameserver.model.zone.type; + +import java.util.ArrayList; +import java.util.List; +import java.util.Random; + +import net.sf.l2j.commons.random.Rnd; + +import net.sf.l2j.Config; +import net.sf.l2j.gameserver.enums.MessageType; +import net.sf.l2j.gameserver.enums.ZoneId; +import net.sf.l2j.gameserver.handler.voicecommandhandlers.VoiceExitSoloZone; +import net.sf.l2j.gameserver.model.World; +import net.sf.l2j.gameserver.model.actor.Creature; +import net.sf.l2j.gameserver.model.actor.Player; +import net.sf.l2j.gameserver.model.location.Location; +import net.sf.l2j.gameserver.model.zone.type.subtype.ZoneType; +import net.sf.l2j.gameserver.network.SystemMessageId; +import net.sf.l2j.gameserver.network.serverpackets.EtcStatusUpdate; +import net.sf.l2j.gameserver.taskmanager.PvpFlagTaskManager; +import net.sf.l2j.gameserver.taskmanager.SoloZoneTaskManager; + +/** + * @author MarGaZeaS + * + */ +public class SoloZone extends ZoneType +{ + private String _name; + private List<Location> _locations = new ArrayList<>(); + + public SoloZone(int id) + { + super(id); + } + + @Override + public void setParameter(String name, String value) + { + if (name.equals("name")) + _name = value; + else if (name.equals("locs")) + { + for (String locs : value.split(";")) + { + String[] coordinates = locs.split(","); + if (coordinates.length == 3) + { + int x = Integer.parseInt(coordinates[0]); + int y = Integer.parseInt(coordinates[1]); + int z = Integer.parseInt(coordinates[2]); + _locations.add(new Location(x, y, z)); + } + else + { + LOGGER.warn("Invalid location format: " + locs); + } + } + } + } + + + @Override + protected void onEnter(Creature character) + { + if (character instanceof Player) + { + final Player player = (Player) character; + + if ((player.getClassId().getId() == 15 || player.getClassId().getId() == 16 || player.getClassId().getId() == 97)) + { + Location respawnLocation = VoiceExitSoloZone.getExitLocation(); + player.instantTeleportTo(respawnLocation, 20); + player.sendMessage("Your class is not allowed in this zone."); + return; + } + + String randomName = SoloZoneTaskManager.getInstance().getAName(); + if (randomName == null || randomName.isEmpty() || !isValidName(randomName)) + { + randomName = generateRandomName(); + } + if (isNameAlreadyTaken(randomName)) + { + randomName = generateRandomName(); + } + player.setFakeName(randomName); + player.sendMessage("Welcome to the Solo Zone, your random name is: " + randomName); + player.sendPacket(SystemMessageId.ENTERED_COMBAT_ZONE); + character.setInsideZone(ZoneId.SOLO, true); + character.setInsideZone(ZoneId.NO_STORE, true); + character.setInsideZone(ZoneId.NO_SUMMON_FRIEND, true); + + if (player.getParty() != null) + { + player.getParty().removePartyMember(player, MessageType.DISCONNECTED); + } + + if (player.getPvpFlag() > 0) + PvpFlagTaskManager.getInstance().remove(player, true); + + player.updatePvPStatus(); + player.broadcastUserInfo(); + } + } + + private static boolean isValidName(String name) { + return name.matches("[a-zA-Z0-9_]+"); + } + + private static String generateRandomName() { + Random rand = new Random(); + int nameLength = rand.nextInt(12) + 4; + StringBuilder nameBuilder = new StringBuilder(); + + for (int i = 0; i < nameLength; i++) { + char randomChar = (char) (rand.nextInt(26) + 'a'); + nameBuilder.append(randomChar); + } + + return nameBuilder.toString(); + } + + private static boolean isNameAlreadyTaken(String name) { + return World.getInstance().getPlayers().stream().anyMatch(player -> player.getFakeName().equals(name)); + } + + @Override + protected void onExit(Creature character) + { + character.setInsideZone(ZoneId.SOLO, false); // Solo zone + character.setInsideZone(ZoneId.NO_STORE, false); // Allow making a store + character.setInsideZone(ZoneId.NO_SUMMON_FRIEND, false); // Allow summon + + if (character instanceof Player) + { + final Player player = (Player) character; + + if (player.getFakeName() != null) + { + player.setFakeName(null); + } + + player.sendPacket(SystemMessageId.LEFT_COMBAT_ZONE); + { + if(!player.isInObserverMode() && player.getPvpFlag() > 0) + PvpFlagTaskManager.getInstance().add(player, Config.PVP_NORMAL_TIME); + + player.sendPacket(new EtcStatusUpdate(player)); + player.broadcastUserInfo(); + } + } + } + + public String getName() + { + return _name; + } + + public Location getLoc() + { + if (_locations.isEmpty()) + { + return null; // Αν η λίστα είναι κενή, επιστρέφουμε null + } + return _locations.get(Rnd.get(0, _locations.size() - 1)); // Επιλέγουμε τυχαία τοποθεσία + } +} diff --git a/java/net/sf/l2j/gameserver/GameServer.java b/java/net/sf/l2j/gameserver/GameServer.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/GameServer.java if (Config.ALLOW_FISH_CHAMPIONSHIP) FishingChampionshipManager.getInstance(); + StringUtil.printSection("Custom Features"); + SoloZoneTaskManager.getInstance(); StringUtil.printSection("Handlers"); LOGGER.info("Loaded {} admin command handlers.", AdminCommandHandler.getInstance().size()); diff --git a/java/net/sf/l2j/gameserver/GameServer.java b/java/net/sf/l2j/gameserver/Shutdown.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/Shutdown.java // disconnect players try { disconnectAllPlayers(); LOGGER.info("All players have been disconnected."); } catch (Exception e) { // Silent catch. } + // Restore real names for players in SoloZone + restoreRealNamesInSoloZone(); // stop all threadpolls ThreadPool.shutdown(); try { LoginServerThread.getInstance().interrupt(); } catch (Exception e) { // Silent catch. } // avoids new players from logging in if (_secondsShut <= 60 && LoginServerThread.getInstance().getServerType() != ServerType.DOWN) LoginServerThread.getInstance().setServerType(ServerType.DOWN); _secondsShut--; Thread.sleep(1000); } } catch (InterruptedException e) { } } + // This method restores the real names of players in SoloZone + private static void restoreRealNamesInSoloZone() + { + for (Player player : World.getInstance().getPlayers()) + { + // Check if player is inside the SoloZone + if (player.isInsideZone(ZoneId.SOLO)) + { + // Restore the real name by removing the fake name + if (player.getFakeName() != null) + { + player.setFakeName(null); // Restore the real name + LOGGER.info("Player {}'s fake name has been removed and real name restored.", player.getName()); + } + } + } + } private static void sendServerQuit(int seconds) { World.toAllOnlinePlayers(SystemMessage.getSystemMessage(SystemMessageId.THE_SERVER_WILL_BE_COMING_DOWN_IN_S1_SECONDS).addNumber(seconds)); } diff --git a/java/net/sf/l2j/gameserver/enums/ZoneId.java b/java/net/sf/l2j/gameserver/enums/ZoneId.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/enums/ZoneId.java public enum ZoneId { PVP(0), PEACE(1), SIEGE(2), MOTHER_TREE(3), CLAN_HALL(4), NO_LANDING(5), WATER(6), JAIL(7), MONSTER_TRACK(8), CASTLE(9), SWAMP(10), NO_SUMMON_FRIEND(11), NO_STORE(12), TOWN(13), HQ(14), DANGER_AREA(15), CAST_ON_ARTIFACT(16), NO_RESTART(17), SCRIPT(18), - BOSS(19), + BOSS(19), + SOLO(20); private final int _id; private ZoneId(int id) { _id = id; } diff --git a/java/net/sf/l2j/gameserver/network/serverpackets/Die.java b/java/net/sf/l2j/gameserver/network/serverpackets/Die.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/network/serverpackets/Die.java if (creature instanceof Player) { Player player = (Player) creature; - _allowFixedRes = player.getAccessLevel().allowFixedRes(); + _allowFixedRes = player.getAccessLevel().allowFixedRes() || player.isInsideZone(ZoneId.SOLO); _clan = player.getClan(); } diff --git a/java/net/sf/l2j/gameserver/model/actor/Player.java b/java/net/sf/l2j/gameserver//model/actor/Player.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/network/clientpackets/EnterWorld.java // Attacker or spectator logging into a siege zone will be ported at town. if (player.isInsideZone(ZoneId.SIEGE) && player.getSiegeState() < 2) player.teleportTo(TeleportType.TOWN); + if (player.isInsideZone(ZoneId.SOLO)) + { + ThreadPool.schedule(() -> { + Location exitLocation = VoiceExitSoloZone.getExitLocation(); + + if (exitLocation != null) + { + player.teleportTo(exitLocation.getX(), exitLocation.getY(), exitLocation.getZ(), 0); + player.sendMessage("You have been moved to the exit of the SoloZone."); + } + }, 5000); // 5000 milliseconds (5sec) + } diff --git a/java/net/sf/l2j/gameserver/model/actor/Player.java b/java/net/sf/l2j/gameserver/model/actor/Player.java new file mode 100644 index 0000000..6b7ef6f --- /dev/null +++ a/java/net/sf/l2j/gameserver/model/actor/Player.java @Override public void doRevive() { super.doRevive(); stopEffects(EffectType.CHARM_OF_COURAGE); sendPacket(new EtcStatusUpdate(this)); getStatus().setCpHpMp(getStatus().getMaxCp(), getStatus().getMaxHp(), getStatus().getMaxMp()); _reviveRequested = 0; _revivePower = 0; if (isMounted()) startFeed(_mountNpcId); + if (isInsideZone(ZoneId.SOLO)) + { + // Give Nobless (1323 ID) + L2Skill no = SkillTable.getInstance().getInfo(1323, 1); + no.getEffects(this, this); + sendMessage("You have received the Nobless status in the Solo Zone."); + } + } If anyone thinks the code is wrong, please make an update and upload it here so I can update the post. A part was edited with chatgpt
    3 points
  32. Join Lineage 2 Monsters – X1000 NO Pay-to-Win | NO Wipe | Long-Term Stability Classic L2, Reimagined – Old School but Exciting & Professional! Server Version: High Five Part 5 (Improved) Client Interface: Unique & Enhanced Anti-Cheat: Dynamic system on both client & server Multilanguage Support: English | Russian | Arabic SP/XP Rates (L2 Monsters) – X1000 Exclusive Cloaks, Accessories & Suits! Retail-Like Gameplay with Custom Enhancements! And much more… A world of adventure awaits! Join us today! Website: L2Monsters.com Discord: L2 Monsters Discord Your journey begins now! Are you ready?
    3 points
  33. Camp Location=(X=168800.000000,Y=234300.000000,Z=-2250.000000) Fafurion Nest Location=(X=173400.000000,Y=252300.000000,Z=-14300.000000) simplified version of the original Fafurion map from the Fafurion 166 client combined 2 in 1 squares 25_24 + 25_25 in a square 25_25 original music tracks installed, date in archive geodata from Koner in the archive not installed in this version: doors in Fafurion's lair, ambisound obzh, event ID at emitters if you don’t need all the installed effects, textures FX_E_T.utx, LineageEffectsTextures.utx, LineageEffectsTextures2.utx can not be replaced The boss itself is available in the archive (repack from SGER@fjs) Download
    3 points
  34. I believe it was 406 (back in mid 2023?), I apologized profusely to Tryskell for my mistake as I wasn't completely aware of the damage I was doing at the time & immediately removed the post once I arrived home from work. After seeing 1st hand how much effort that guy puts into his project, it was indeed a dick move on my end and by far the biggest regret I have. Wont shy away from that mistake at all. At that point in time, we had spoken a fair bit and was given a 2nd chance in the donators section which I still appreciate him for doing to this day. I'd never be as silly as to share anyone's private sources again. Strange attempt to taint my reputation on your behalf though considering its completely unrelated to the topic at hand. You're answering your own question if you think about it hard enough -- I don't particularly want to share sources at the moment, but people are welcomed to the compiled version for free and if they want to report any issues found, they will be periodically fixed and updated. People are always welcome to ya know, not use them at all? Any issues that are stemming from the original aCis branch will be forwarded to Tryskell (or his discord) as well as any possible fixes if I find a solution. Though at the moment, as expected, people that are using it are more focused on the mods. Taking time out of your day to research who I am (as mentioned in the first quote) instead of moving on with your day demonstrates how gay you are and proves you care a great deal. I provided my reasons for posting from the moment you asked, which led you to believe the post was sketchy & I was being dramatic. Dunno what else to tell you man, we're just talking in circles at this point. If you want a more detailed reason: I'd guess that most people in the l2 scene are 30+ years old with jobs/kids and don't have time to learn java, then take on the task of developing an l2j server on the side. Anything I share is made with those types of people in mind, not meant to be some hotshot dev (I'm far from it) or con people in to paying for things (don't need anyone's money), just nerds having fun taking a trip down memory lane while hopefully bringing some enjoyment to a few people in the process. If it manages to get the attention of any half-decent developer in the process that want to contribute in some way, that's just a bonus.
    3 points
  35. As you may have noticed, normal members cannot edit their own threads. I have extended normal members to edit their own content up to 1440 minutes (24 hours or 1 day) after they made their topic/post. To access unlimited edits of your contents, you need to upgrade to Premium or Gold Member .
    3 points
  36. Our project has been under private development for the past year. Recently, we decided to make it public... because, why not? Everything you find in this BitBucket repository is completely FREE! The source code is based on the original L2j project, with no modifications from unofficial or unverified sources. This ensures you can confidently adapt it for your own projects without worrying about obscure or questionable changes. We are currently working on the 286 Tales Untold protocol version. In the download section, you can find detailed instructions on how to obtain and set it up. Project website: https://golbergs-soft.online/ Project Discord: https://discord.com/invite/dVvVDcAr9E BitBucket: https://bitbucket.org/golberg_soft/l2j_golbergsoft_classic_tales_unhold/src/main/ Have a nice day
    3 points
  37. Since last massive leak as explained as 07/09 (notably all development branches), I don't accept anymore financial newcomers that easily. People will have to contribute 100 cookies worth of contributions (bug reports/fixes) as a first step to be accepted as Donator. Free user can join after sharing over 200 cookies out of contributions, compared to 100 cookies before. You can say thanks to RusAcis, and notably his worthless leader, UnleashedForce. The size of users will continue to shrink if more leaks occur, until true helpers only will be left. New prices are as following : Joining price: 200€ + 100 cookies, or 200 cookies This fee has to be paid if you are joining aCis project. Next month, and all other months, you will have to donate only basic monthly donation. Monthly price: 10€ / 10 cookies This fee has to be paid every month. I won't accept any new join fee before the 100 cookies contribution. Your money will be instantly sent back. Also, in the same shape of idea, actual supporters/donators have to be active to stay in sources. It doesn't have to be a particular amount, you just have to share from time to time *anything*. I don't accept anymore silent ppl. Only useful people will be kept.
    3 points
  38. L2PTS Files High Five: 273 Mega.nz Link: [Hidden Content]
    2 points
  39. Hello everyone! I’d like to share an experience that might serve as a lesson for anyone planning to work with third-party protection services—specifically, Active Anticheat. I know this might sound like a strange job request, but our player base mostly consists of veteran of Lineage 2 players who are used to using bots as part of their gameplay experience. As server administrators, we decided to adapt to our users. That’s why we approached Active Anticheat with a proposal: Allow bot usage under certain conditions. We explained everything in detail, and they agreed. February – A Promising Start On February 16th, we contacted Active Anticheat to request a custom antibot system. The idea was to kick players using bots during specific times (like sieges), but allow them to log back in without bots afterward. After a few discussions, both sides agreed on the following solution: Bots allowed during regular days. During siege events, anyone using a bot would be automatically kicked. Kicked players could log back in without using bots. The deal was priced at $5,000, which we already paid on March 31st, 2025. Active Anticheat promised delivery by the end of April, or at the latest, by May. Screenshot: Deal 1 Deal 2 May – The Delays Begin We followed up multiple times in May, only to finally hear back on May 26th: “It won’t be ready this month. But we’re working on a big update coming in June.” That update? Still nowhere to be seen, even as I’m writing this post. Screenshot: Delayed Plan B – L2Walker Rejected, Adrenaline Offered With our server launch schedule getting tighter, we needed an alternative. At the end of June, we asked Active Anticheat: “Can you at least allow L2Walker access to the server?” Their response on June 28th: “L2Walker can’t be allowed. But we can allow Adrenaline (free & paid version) and L2Helper for $2,000 + $300 (for a new license).” We agreed, hoping it would be a temporary fix while waiting for the promised “big update” (which we had already paid $5,000 for, remember?). Screenshot: New Offer 1 New Offer 2 New Offer 3 AA Failed Their setup took about a week. We ran 2–3 rounds of testing using clean clients. The result? Adrenaline (both free and paid) couldn’t connect to our server. It couldn’t detect the Lineage 2 client, because the custom Active Anticheat protection was blocking it. We reached out to Active Anticheat for support, and their response? “You should contact Adrenaline support to enable free Adrenaline for your server. Adrenaline blocks it by default when Active Anticheat is detected.” Then we tested Premium Adrenaline. And it still didn’t work. Active Anticheat stood firm: “It’s not our fault. Adrenaline blocked us—not the other way around.” Screenshot: Failed 1 Failed 2 The Bitter Reality Today, we’re still waiting for answers. No reply. No fix. No update. No refund. We’ve spent a total of $7,300 and received nothing functional in return. And this, despite their full agreement with our initial plan.
    2 points
  40. I know people who have fully bypassed and reversed AAC. One day, they might even release the full source code, but for now, they’re still making money off it. I won’t name anyone, but it’s clear that there aren’t any truly solid anticheats for Lineage2. As I’ve said before, kernel level anticheats are the only real solution. Anything that runs as Internal and injects gets flagged, and your account ends up getting kicked or banned. That’s just how most games handle it nowadays. To TL;DR the whole thing cheating will always exist because there are people out there smart enough to bypass any protection and run private cheats. Public cheats are always detected eventually, so I don’t see any point in buying AAC, especially when they claim it blocks adr, which simply isn’t true.
    2 points
  41. Looking to hire a skilled L2J developer or team to build a custom private server for solo play with advanced server-side AI bots. This is NOT for public launch — just a self-hosted project where I can simulate a full L2 experience alone or with a few friends. What I Need A private L2J server ( High Five preferred, newer versions can work as well) with bots that: Farm 24/7 on their own (solo or in bot parties) Can be invited into party and follow basic orders (attack, follow, res, heal, etc.) Are able to join Olympiad, fight with proper logic (per class), and rank up Can coordinate for Raid Bosses (check spawn, move, assist, heal, DPS, etc.) Act like real players: town routines, rebuffing, restocking, even chatting if possible Have different roles: tanks, healers, nukers, archers, etc. Can interact through simple in-game commands or NPC interface Your Job Set up the server and geodata Integrate a scalable bot system (written in Java or scriptable) Write clean, modular AI behavior (farming, PvP, party play, raid logic, etc.) Allow me to control/assign bots easily (in-game or config) Bonus: basic UI or GM panel for bot config Payment Serious budget for serious work PayPal, crypto, or preferred method Project-based or hourly, negotiable Milestone-based OK Contact Send me: Your experience with L2J or similar projects Any bot/AI systems you've built before Estimated timeframe Pricing expectations
    2 points
  42. Good evening, gentlemen. After many requests and after seeing half a dozen people using the project name with buggy acis sources that make no sense, I decided to bring some content that is truly worthy of carrying the name of our project L2JDREAM. I come through this topic to share the source code of our old L2JDream 2.0 revision This project was active from December/2012 to December/2019, being discontinued in 2019 as we now use alucera based source-code in L2JDream V3.0 That said, there is also the content of our VIP customer review, already embedded in this source, fully functional, and FREE.. WITH THE ONLY EXCEPTION OF ANTIBOT PROTECTION, which requires a valid license to work, THAT IS, a 100% free project with open source, but my protection will only work for customers who had a project license. I found this to be a fair way for customers of the private project. The VIP revision has all the features of the free revision , plus other exclusive features. Check out more complete information about it below. Project Information: BASE: A High Five project was downgraded to Interlude. Features: Quests - All Interlude Quests working according to [L2OFF]. Raid & Grand Bosses - Working perfectly with their proper videos according to [L2OFF]. Olympiads - Fully functional according to [L2OFF]. Sieges - Fully functional and with all Castle functions according to [L2OFF]. Fortress Sieges - Working perfectly with all its functions according to [L2OFF]. Siege Hall - All working perfectly according to [L2OFF]. Lottery - Working perfectly according to [L2OFF]. Fishing - Working perfectly according to [L2OFF]. Skills - All skills in the revision are balanced for standard servers with all working perfectly according to [L2OFF]. Gameplay - All game components have been tested by several servers, both for low rate and high rate servers. Events: Death Match: Classic deathmatch between registered players. Capture The Flag: Event where teams must steal the enemy flag to score points. Team Vs Team: PvP combat event between two teams, where each enemy killed scores 1 point for your team. TvT, CTF and DM: Instanced events with configurable automatic start. Standard Mods from L2JDream FREE revision : Complete Offline Trade/Craft. NPC Crest recreated to consume less memory and run lighter with cleaner and more efficient codes. PvP/PK Color System. Voiced Commands (.menu, .help, .offline, .classmaster) Among others... Exclusive Mods - These were included in the VIP revision (all configurable to enable/disable/etc): AIO System (AIO Seller included) VIP System Buffer Vip AIO, VIP and Noblesse item Siege Date Archievement Engine BuffShop System Npc Ranking Protected Password WareHouse Npc Raid Info Permanent Nobless, meaning the player does not lose buffs when dying. Automatic Nobless when killing Barakiel. Register Siege Advanced Pvp & Pk Announce System PvP & Pk Reward System Chaotic Zones RaidBoss Defeated Message Announcement Respawn Boss Donator Enchant Scroll (Unique Enchant Scroll for all Grades with configurable chance...) PrivateStore Sell/Buy by Item (changes the currency of the character shops) Equipment Restriction Disable Weapons For Classes System Custom Cancellation War Legend System Quake System Dressme Arena Duel 1x1 (With Arena Ranking) *** THIS MOD HAS BEEN REFORMULATED *** Spartan Guard 3.0 - L2JDream Protection System (only works with a valid license) System locked in gameserver. Protects against L2Adrenaline, L2Net, L2phx, L2Tower, L2Walker and others. It is not possible to log into your server without the system. You must have an active license for the server and system to work. NOTE: If you test a bot and are able to use it, just contact me sending the program that it will be blocked and you will receive the fix to implement in your system. I would like to take this moment and thank to @Bian @LucasDante @karlos @apollo @Denky @Wolgan @Nattan Felipe and the entire team that helped create and maintain the L2JDream V2 project. You can find the full source on My GitHub https://github.com/Wallz/L2jDreamV2_Source/ Fork and collaborate with the crowd
    2 points
  43. Hello everyone! I'm offering professional L2J development services, specialized for aCis projects. What I offer: Ready-to-implement existing systems (events, features, gameplay improvements). Custom development: I can create new systems based on your specific requests and ideas. Bug fixing, optimization, and enhancement of your server's code. Professional, clean, and organized Java coding. Support after delivery to ensure smooth integration. Some examples of available systems: PvP and PvE Mini-Events (fully automated). Custom Raid Boss Events. Advanced Clan Utilities (regroup features, clan ranking, etc). Reward Systems (based on kills, damage, objectives, etc). Achievements Subscription system Arena Fights (1v1 tournament, scratch made). Advanced event engine (12 events, many features). multi-client aCis project, progressive gameplay C4 to C6 Why work with me? Years of experience working directly with aCis pack. Fast, reliable communication. I care about performance and long-term stability. I can adjust the systems to fit your server's style and balance. Pricing: Flexible depending on the complexity (fixed price per project or per system). Discounts for multiple systems or long-term collaboration. Contact: MaxCheaters PM Discord: @Luminous Serious and passionate about your project? Let's make your server unique!
    2 points
  44. [L2J Developer Services - Over 3 Years of Experience | Bug Fixes | Feature Implementation | Clean & Reliable Code] Hello, L2J enthusiasts! I am an experienced L2J developer with over 3 years of hands-on experience working on various Lineage 2 projects. If you're looking for someone to improve your server or bring your ideas to life while maintaining stability and top-notch performance, you're in the right place! What I Offer: Bug Fixes & Performance Improvements: Identify and fix bugs that disrupt your server, enhancing gameplay stability. Feature Implementation & Enhancement: Add new features or refine existing ones to create a unique and engaging player experience. Chronicle Feature Migration: Seamlessly port features from one Chronicle to another without compromising compatibility. Clean, Efficient Code: I write structured and maintainable code that does not break original server functionality or impact performance. User-Friendly Configuration: Easy-to-understand configuration options so that admins can customize settings effortlessly without needing coding expertise. Why Choose Me? Reliable Solutions: I ensure every modification integrates smoothly with your existing system. No Performance Trade-Offs: My development approach prioritizes optimization and server stability. Secure and Server-Friendly Code: Always focused on protecting and preserving your project's integrity. Transparent Communication: I keep you updated on progress and explain solutions clearly. If you're serious about making your Lineage 2 server stand out with top-quality development services, feel free to contact me. Let's build something amazing together! Contact Information: PM me on Forum. Discord: l2retro Looking forward to working with passionate server owners who want the best for their players! Cheers!
    2 points
  45. uprising star thank you for including my topsite
    2 points
  46. in the case of h5 client and lower, those 'combos' are completely hardcoded, you can't really make new ones, this is a thing only ever since goddess.
    2 points
  47. Hello there, I found this guy from fiverr I'd like to inform that this guy scammed out of me 400$. The sad thing is, we were working since April and he was completly fine at start, doing the tasks I had on my notes and this is why I trusted him. Here starts with interface, he told me he can add a better interface and I was interesting about it, 6th April: After I paid him all the tasks/interface (he didn't finish yet) he asked me of prepaid 350$, so I was like okay, he gonna setup the server as well, he gonna do this, that etc and I will not pay later, if he needs tho its fine by me to help him. I had no more tasks to do and even the 40$ left, didn't send 310$ and told him it's fine, take the 350$ you need and if something comes up we will see. Here starts the thing, I try to contact him and he starts to stop answering and giving excuses: He still didn't finish anything again and then I decided to search for other dev to start work on it, since I realized I got scammed. After this message, I told him, leave whatever tasks we had made a deal, lets make some other tasks and ofc price them for me, worth of 400$ (all the tasks he didn't finish was that worth) I ask for money back here, but who gives them back? He was working fine until the prepaid of money, after that was done. Btw he says, that he spent his time, I also spent time on work to make that money, I never asked him to do something that he may not know, I always like, "I have these tasks, what can you do out of these", he might change 1 line for 1 task (10 mins work) and get 20$-30$, we never agreed to get paid by hours. Btw I know its not like I lost thousands of Euro or whatever, but still is good to avoid scammers. I got scammed from another one on fiverr, but that was like 30$ so I won't even bother. It's good guys to be careful, I mean give the 1/3 or the half until the work is done and then give the rest. Cheers!
    2 points
  48. You are a highly skilled developer, but unfortunately, you're targeting the wrong market or client base. If I were you, I'd consider freelancing on various websites where prices for your level of work start at €1,000 or more. Your skills are worth that much. Right now, you're wasting your time in a market that can't afford your expertise, and many of the players here may not fully grasp advanced systems like passkeys. Either way good luck. ---- PS: for potential customers, whatever he asks of money pay it, he knows what he is doing and already taking less than he should.
    2 points
  49. Hello everybody, today I will be showing you all how you can unpack a sample which is packed with Themida. This tutorial will show you how to do the process without requiring to manually use a debugger yourself, I know is not the best guide because i'm not a reverser, sure some react to this and laught but I don't care, this is for knowledge purpose of someone wanna try yourself What you will learn in this thread: - What Themida is - A bit about how Themida works - Why packers/obfuscators may be used with not only malicious software but safe, legitmate software - Why unpacking is useful to Malware Analysis - How you can unpack samples packed by Themida without requring knowledge of how to use a Debugger yourself manually 1). What Themida is Themida is software specifically engineered to help software stay better protected from becoming cracked and/or it's source code was being stolen. If someone comes along and they can read the code you wrote for your software, if you have not made the software opensource and did not wish the code to be given out and/or read by someone, would you be happy about them having found a way to read your source code? I don't think you would. The purpose of Themida is to help prevent the protected software from becoming vulnerable to reverse engineering attempts. It can also help against piracy. 2). A bit about how Themida works Themida will pack the executable. When you execute the packed sample, it will unpack the executable in memory and use that to continue executing to perform and do what it's meant to do. If the unpacking of the packed executable into memory fails for whatever reason, then the program will not work. 3). Why packers may be used in legitimate software Packers may be used in legitimate software so the developer's software is better protected against attacks. If someone can read your code, or use Disassembly to understand how it works, they can try to find vulnerabilities and then use them to create zero-day exploits. Packers are also quite frequent with malware. Your Antivirus product may pickup detections for software packed in a certain way/type of packer used. 4). Why unpacking is useful in Malware Analysis If the sample is packed, then this essentially protects against Disassembly. We won't be able to understand how the program works, we'll just be reading the instructions from the packer wrapper. For example, the process of the unpacking. However, we want the original executable (unpacked executable) and we want to perform Disassembly with that executable so we can try to make sense of and understand how the program works to know if it's malicious or not. 5). How we can actually identify and unpack Themida packed executables To start off, you'll need a few things: Tools needed ProtectionID 6.6.7 OllyDBG 1.10 OllyDBG Plugins ODBGScript v1.82.6 StrongOD 0.4.8.892 PhantOm 1.79 ARImpRec.dll Script Themida - Winlicense Ultra Unpacker 1.4 Ok the first thing we need do is set path in the Themida - Winlicense Ultra Unpacker 1.4.txt for your "ARImpRec.dl", so we open the txt with notepad and search it. HERE_ENTER_YOUR_DLL_PATH_TO_ARIMPREC_DLL: mov ARIMPREC_PATH, "C:\Documents and Settings\Admin\Desktop\OllyDBG\plugin\ARImpRec.dll" Open up ProtectionID and as can see first icon like a paper with a pencil, press there and drop your executable. It should process the information (if it can). As we can see in the below screenshot, it detects the Themida packing: Ok after checked that we unpack ollydbg in a path we want, a example mine is in Desktop: C:\Documents and Settings\Admin\Desktop\OllyDBG. So now we gonna create inside ollydbg folder a folder called plugin and inside we extract all plugins we download, so this need be look like that. PS: delete PSAPI.DLL from main folder of OllyDBG. Ok so now we are ready to start with it. 1. First time we open Olly we need set the plugin directory because is not configured, for do it we go to --> Option-Appareance, in the tab Directories we can set where we stored plugins, so do it, press ok and restart Olly. 2.So now the next time we open Olly we see plugins loaded. 3. Ok now we go open the target to unpack or just press F3, after opened we got a pop up, just press Yes and the file continue Analysing, just wait to finish. 4.Now press F9 to run it and as you can see, we got a pop up, don't worry just press ok and the debug is terminated. 5. Good the next move is run script, so for this we go can do it via plugin menu-ODBGScript-Run Script and we search for "Themida - Winlicense Ultra Unpacker 1.4.txt" download before. 6.Ok after we load nothing happen becase we terminated the debug before, so what we need do is reopen the target, just press in the X to close target. 7.After reopened target run script again or if you get this pop up asking for begin unpacking process we press Yes. Ok next one we press No. So now the unpacking process has begun, we can check status in the down bar as the right side of screen, after some seconds, we got pause, now to resume and continue unpacking maximize main thread windows and press right click and go to -> Script Functions-Script Windows, so now we have a Window of Script opened, right click there and press Resume. 8. So now we got a pop up telling us about we need modify some values into "ollydbg.ini", after that we need restart Olly and resume script. 9. So now we repeat steps do before, open target and run script,etc, after we finish we got this at the end. PS: remember close OllyDBG after open .ini. 10. Ok we press Yes and in the Script Execution press right click and Resume. 11. Good now this part is very important, if we running a VMWare, we need set Yes, if we running normal SO just press No. 12. Now we got another pop up, really in my case I select Moddern Scan no Simple, it uses more checks. 13. Ok in this one we select No. 14. Ok after finished we got a new pop, there I press Yes. 15. Finally the job is done, as you can see there, now we can see dumped file, so we press Yes for use this data. 16. As script say, we choose first time no, if we got any problem after press no, repeat the process and the next time just press Yes, just in case. 17. Ok this pop ask for compress the dumped file, but in this case we won't do it because is a good size, is not a file of 120MB or 200MB so I think is fine press No. 18. Ok after all this we finally have dumped file in the folder where stored exe. Press ok and we are done. PS: Ok I hope this guide help us to unpack in future your themida protections, so well have fun and sorry if my english is to bad. Credits: LCF-AT, Nacho_dj and me for write this guide.
    2 points
×
×
  • 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