Added: a brand-new default dashboard template.
You can now add multiple game/login server builds.
Full support for running both PTS & L2J servers simultaneously, with switching between them.
Payment systems: added OmegaPay and Pally (new PayPal-style API).
Account history now stores everything: donations, items delivered to characters, referrals, transfers between game accounts, and coin transfers to another master account.
Personal Promo Code System: you can create a promo code and assign it to a user or promoter. When donating, a player can enter this promo code to receive bonus coins, and the promo code owner also receives a bonus — all fully configurable in the admin panel.
Look demo site: demo
🚀 **TOMORROW – GRAND OPENING!** 🚀
📅 **Grand Opening Date:** 5 December 2025
⏰ **Time:** 20:00 GMT+2
🎫 **BONUS CODE:** `WELCOME-TO-L2MID`
⚠️ Limited to the **first 100 players** only!
🖥️ **Server Info:**
- 🕒 The server will open **1 hour earlier (19:00 GMT+2)** so you can create your characters.
- 🧍 All important **NPCs will appear at 20:00 GMT+2** for the official **GRAND OPENING**.
💡 **How to redeem the bonus code:**
- After you create your character, log in to the **L2Mid Panel** and redeem your bonus here:
🔗 https://l2mid.com/account.php#dash-promocode
🎁 **BONUS CODE REWARDS:**
🧪 Mana Drug × 50
🛡️ Greater CP Potion × 50
❤️ Greater Healing Potion × 50
📜 Blessed Scroll of Escape × 5
⭐ Bonus Rune – 3 Hours × 1
⚔️ Get ready for the start of your new adventure on **L2Mid**!
Question
GsL
Kalimera mages
Kserei kaneis ti prepei na kanw wste na girizei piso sto spawn point ena L2Monster
otan pernaei ena X distance apo to spawn point tou?
To pack m einai l2jfrozen last revision
to pack exei ena config alla den work ...
dokimasa auto to code alla tipota
/** * Return home. */ public void returnHome() { ThreadPoolManager.getInstance().scheduleAi(new Runnable() { @Override public void run() { L2Spawn mobSpawn = getSpawn(); if(!isInCombat() && !isAlikeDead() && !isDead() && mobSpawn != null && !isInsideRadius(mobSpawn.getLocx(), mobSpawn.getLocy(), Config.MAX_DRIFT_RANGE, false)) { teleToLocation(mobSpawn.getLocx(), mobSpawn.getLocy(), mobSpawn.getLocz(), false); } mobSpawn = null; } }, 1000); } protected void startMaintenanceTask() { ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new Runnable() { @Override public void run() { checkAndReturnToSpawn(); } }, 3000, getMaintenanceInterval()+Rnd.get(5000)); } protected void checkAndReturnToSpawn() { if (isDead() || isMovementDisabled()) return; final L2Spawn spawn = getSpawn(); if (spawn == null) return; final int spawnX = spawn.getLocx(); final int spawnY = spawn.getLocy(); final int spawnZ = spawn.getLocz(); if (!isInCombat() && !isMovementDisabled()) { if (!isInsideRadius(spawnX, spawnY, spawnZ, Math.max(1000, 200), true, false)) teleToLocation(spawnX, spawnY, spawnZ); } }4 answers to this question
Recommended Posts