Jump to content


  • Content Count

  • Joined

  • Last visited

  • Days Won


Elfocrash last won the day on February 15

Elfocrash had the most liked content!

Community Reputation

195 Bom

About Elfocrash

  • Rank

Profile Information

  • Gênero:

Recent Profile Visitors

2,792 profile views
  1. First step will be to test the project and see if there are any bugs created from the migration. In parallel with that, a lot of ThreadPool executions will be replaces with coroutines. That's where the performance improvements will come into place and differentiate use from acis.
  2. Project is getting closer and closer to 100% Kotlin. Currently it's 80% Koltin, 20% Java. It should be 100% Kotlin by the end of the week. Stay tuned for updates.
  3. I'm using the build in converter but I am manually editing every file after conversion.
  4. You don't have to learn the language. You can keep writing java. Kotlin is interopable with Java, which means you can have both languages in the same project. L2kt will have an API to allow for customs without the need to change the source unless there is a special case. I am not writing it in Kotlin because of the community but because of me. It just also happens to be open source.
  5. It's a really nice JVM language that's getting really popular and have A TON of advantages, the main one being, it's way cleaner and faster to write. Example in Java: package com.l2kt.gameserver.model.pledge; public class SubPledge { private final int _id; private String _subPledgeName; private int _leaderId; public SubPledge(int id, String name, int leaderId) { _id = id; _subPledgeName = name; _leaderId = leaderId; } public int getId() { return _id; } public String getName() { return _subPledgeName; } public void setName(String name) { _subPledgeName = name; } public int getLeaderId() { return _leaderId; } public void setLeaderId(int leaderId) { _leaderId = leaderId; } } The EXACT same thing in Kotlin: package com.l2kt.gameserver.model.pledge data class SubPledge(val id: Int, var name: String, var leaderId: Int) There are many many others, I highly recommend reading up on it.
  6. Hello everyone L2kt is a project based on 379 aCis currently migrating from Java to Kotlin Project goals Migrate from Java to 100% Kotlin. Refactor a lot of the terrible code in aCis (most of it). Create an advanced plugin based API for people to write their customs in without messing up with the source. Migrate from Ant to Gradle. Dockerise the project. Keep it open source. The main engine itself will never be private. Current stage The project has been migrated to 20% Kotlin. It is already 20 thousand lines less code, just by migrating. There is not major refactoring that has taken place yet. Sources If you can do any of those things then feel free to give me a hand. https://github.com/Elfocrash/L2kt It's licensed under GLP-3.0 mainly because that is the L2j license and I don't have any right to sublicense. The project is fully managed on Discord for now: https://discord.gg/K7kyNpv (To be updated soon)
  7. L2BattleRoyale. Quick, fun, fair. The server The game engine is designed to run infinite instanced games in parallel, so you don't have to wait to play a game. Every character has the same stats. Level is 1 and it doesn't matter. You cannot level up (for now). Armors are COSMETIC ONLY. They give no stats or skills. The main game lobby is the town of Giran. You can queue for a game using the Tutorial window which is always visible in the lobby. There are no classes. Instead your class is set based on the item you are currently wielding. There are 5 ranks of weapons D Grade: One low level skill C Grade: One higher level skill B Grade: An extra skill A Grade: An extra skill S Grade: An extra skill You gain adena in games and you can use them to buy cosmetic items. The game's rules The objective is simple. Be the last man standing in the game. Each game has 4 phases. Teleport to the map Game starting n Circle stages Game ending Each map has a minimum and a maximum amount of players it can host. When the minimum amount is in the queue then a game will start it's teleport stage. If the game isn't full at this stage then people can still join. If someone leaves, the game is aborted. During the "Game starting" stage you can run around but you cannot attack or pickup items. At the end of this stage the chests will spawn. During the "Circles" stage you must loot chests for weapons and other items like potions and prepare for the pvp that is to come. Two circles will also spawn. - The Blue Circle indicates that if you go outside you will take damage per second. - The White circle indicates where the blue circle will be at the end of the round. You have to stay inside the blue circle if you don't want to take any damage. While outside the White Circle, you will get a radar above your character pointing you to the White Circle. Be the last man standing and win the game. The season system After the launch a season system will be introduced. Each season lasts for 1 month. During this period all your stats will be recorded. By the end of the month the top 5 players will get Hero aura and Hero Circlets, while the top one will get the Castle Circlet. A leaderboard with all the stats will be ingame and on the website. The weapon classes Rogue Mage Duelist Archer Warlord Fists dude (Need a better name) Gameplay Here are a couple of videos showcases what a 5man game looks like Disclaimer This server is NOT your typical L2. It bites off the Battle Royale genre and it adapts it for Lineage2. If quick and fair pvp sounds fun then I would highly recommend you give it a go before rejecting it. This is also NOT a pay to win server. In fact there will NEVER BE DONATIONS THAT GIVE ANY COMPETITIVE ADVANTAGE EVER. Doesn't matter if you start today or in 2 months, you will have equal chances in winning. Wanna join the fun? The server is up on Technical Alpha stage. You can test our 5-Man map and the 7 Weapon Classes today at 17:00 BST (19:00 Greek time) Download the l2.ini here http://l2battleroyale.com For more info join us on Discord today!
  8. The system now also supports L2OFF! You can configure it like this: L2OFF Configuration Install L2OFF server database Run L2OFF_L2ACP.SQL script to modify lin2world and lin2db database Change appsettings.json: ** Set TargetServerType to "L2OFF" ** Set PasswordHashType to "Default" if using default password hashing or "MD5" if using hAuthD's MD5 hashing ** Set appropriate connection strings for the lin2world and lin2db databases In server's ilExt.ini set "[PrivateStore] StoreInDB=1" for private stores and "[ItemDelivery] Enabled=1" for item delivery
  9. Elfocrash

    L2RClan Finder

    Hahaha nice! I will be adding recruitment at some point
  10. Elfocrash

    L2RClan Finder

    I made a web app which allows you to looks for clans. Things like recruitment are planned to be added. Link: http://l2rclan.com/
  11. You can always use Redis to act as a centralised cache service. Essentially all those Singletons will stop being singletons and they will start being data access layers to the Redis cache. That way, many instances of the service can use the same data. Could work. I'm more than happy to give you a hand if I see this going in an interesting direction.
  12. Then you have to go from monolith to microservices. The problem is that l2j is so tightly coupled that you can't loosen it up easily. I have done an implementation of acis using mongo instead of mysql and the performance is not so much faster.
  13. Well i use LegalTLDR in general and it says "Since web sites and services are never distributed in the traditional sense, the AGPL is the GPL of the web." Source: https://tldrlegal.com/license/gnu-affero-general-public-license-v3-(agpl-3.0) It doesn't really matter though as the L2 community is known to ignore licenses. The license itself it made to force people to share any improvements they did in the software back to the original owner of the project. This is how L2jserver always was. Ofc this never happened because people just got the files and implemented them for their private servers. Every license there is basically covers the creator legally from liability. In my opinion the MIT license is the best for such things because it protects the owner but also lets the users do whatever they want with the source. About the db stuff mentioned, technically the whole thing could go in a nosql db because l2j has absolutely no (or minimal) relationships between the tables.
  • Create New...