Jump to content

Recommended Posts

Posted

 

RATES.png

XP: x 10

SP: x 10

Party XP: x 1.1

Party SP: x 1.1

Drop: x 5

Spoil: x 5

Adena: x 10

Quest Drop: x 5

Quest Reward: x 5

Quest Exp/Sp Reward: x 5

Quest Adena Reward: x 5

Raid Boss drop: x 2

Grand Boss drop: x 1 (1 Jewell's by Epic Raid Boss)

Manor: x 3

Rate Extract Fish: x 5

 

Vitality System

               

Vitality: 1.5;2.0;2.5;3.0

Vitality Gain/Lost = 1/1

Vitality NPC's

 

Enchants

             

Safe Enchant for weapons,Armor parts and Jewelry + 4

Safe Enchant For Full Body Armor + 4

Enchant Max For Weapons Armors and Jewelry + 20

Enchant Chance with normal scroll 66%

Enchant Chance with Blessed Scroll 76%

 

 

FEATURES.png

All NPC's Retail Like

Automated  Events (TvT,CTF,DM,DoM. And More)

Buff Time Retail Like

Really Balanced classes & skills!

Proffesional and Reworked Geodata & Pathnodes

Champion Mobs

Automated Restart (3 Restart Weekly)

Conquerable Clan Halls

3 Boxes

 

 

INSTANCES.png

Solo Kamaloka

Chamber of Delusion

All Pailakas

RimPailaka

Kamaloka

BaseTower

InfinitumTower

CrystalCavern

Fortres Dungeon.

Castles Dungeon.

Hellbound with leveling system 100% Retail

Tully's workshop (Retail)

Tower of Naia (Retail)

Anomic Foundry

Frintezza Retail

Beleth (Retail)

All Gracia Raid Boss

Freya Boss

 

COMMUNITY.png

Top PVP

Top PK

Castles Status

Olympiad List

And much more

 

 

More info's you can read on our website below

www.L2Heaven.org

 

l2jheaven.png

 

 

Some Completed Features we have Implemented these months of work

 

  • Antharas Lair & Dragon Valley H5 Mobs/Raids
  • Seven Sign all quests and battle betwin Anakin & Lilith Animations
  • H5 New Quests
  • Sel Mahum Grounds With new H5 Mobs and Quests
  • Zaken Instance Day/Night
  • Hellbound Full Working Retail With Leveling System
  • Tower of Naia Retail with all mobs drops
  • Tully's Workshop Retail all mobs/Tully Raid
  • Ranku Raid and Demon Prince full Working
  • Conquerable/Siegable Clan Halls all working retail
  • Frintezza Instance H5 Update Almost done 90%
  • H5 Olympiad System all new stadiums full working & Party vs Party
  • Freya Raid Instance Almost completed 95%
  • Reworked Geodata and Geoengine (I am really proud for this work:)
  • Many Fixes on Core/Bugs/Issues/And Missing old Features

Notice.

Thats for now this is not all the list soon we will Update it with all that we have fix

Posted

I've made an account yesterday and was deleted. Now I can't make another one, it says access forbidden after I complete the registration form.

Posted

well your accound was deleted because the server its still on developing mode also the website forgive us! don't whory when

we announcment the BETA opening mode you will be able to register again. For now the Registrations are closed.

Posted

Registrations are opened now for the public just for to stay informed with news about the server

The registered members we will be able only to see topics,posts,news,etc they will not have privileges yet

to do anything else before the server goes to be live.

 

Also: New fixes and update have been made we have make our private

L2Heaven Console to improve performance and statibility.

Many minor fixes have been made we will announcement our updates

on the forum.

Posted

why all open h5 low rates and no1 open PvP server High Rate ?

 

Well for the others i don't know for us i know that we don't like pvp servers and highly customized because 1 server with all that shit like gk/buffer/custom system/highly donates for +++ and more more it lost the sense of lineage 2 and you feel like you play on somthing like lineage 2. our opinion is to make 1 stable server who can join anyone to enjoy the game we have implemented the most of missing features like hellbound with leveling system full working,siegable clan halls,freya raid boss,H5 Olympiad, H5 Areas, and mobs, and much more. we are using l2j based but we have rework the most things inside of it and we still working every day to make server 100% working without any problem/bug/or somthing else

Guest
This topic is now closed to further replies.



  • Posts

    • what pack you use  send me on discord for it
    • package custom.events.RandomZoneEvent; import java.io.File; import java.util.ArrayList; import java.util.List; import java.util.Random; import java.util.concurrent.ScheduledFuture; import org.w3c.dom.Document; import org.w3c.dom.Node; import org.l2jmobius.commons.threads.ThreadPool; import org.l2jmobius.commons.time.SchedulingPattern; import org.l2jmobius.commons.time.TimeUtil; import org.l2jmobius.commons.util.IXmlReader; import org.l2jmobius.gameserver.managers.ZoneManager; import org.l2jmobius.gameserver.model.StatSet; import org.l2jmobius.gameserver.model.actor.Creature; import org.l2jmobius.gameserver.model.actor.Npc; import org.l2jmobius.gameserver.model.actor.Player; import org.l2jmobius.gameserver.model.quest.Event; import org.l2jmobius.gameserver.model.zone.ZoneId; import org.l2jmobius.gameserver.model.zone.ZoneType; import org.l2jmobius.gameserver.model.zone.type.RandomZone; import org.l2jmobius.gameserver.util.Broadcast; /** * Random Zone Event - Activates one random PvP zone temporarily. No modifica la clase de la zona: usa flags PvP en runtime. * @author Juan */ public class RandomZoneEvent extends Event { private static final String CONFIG_FILE = "data/scripts/custom/events/RandomZoneEvent/config.xml"; private static int EVENT_DURATION_MINUTES = 15; private static boolean _isActive = false; private ScheduledFuture<?> _eventTask = null; private final List<ZoneType> _availableZones = new ArrayList<>(); private ZoneType _activeZone = null; public RandomZoneEvent() { loadConfig(); loadZones(); registerZoneListeners(); } /** * Registra listeners a TODAS LAS ZONAS random */ private void registerZoneListeners() { for (ZoneType zone : _availableZones) { addEnterZoneId(zone.getId()); addExitZoneId(zone.getId()); LOGGER.info("[RandomZoneEvent] Registered listener for zone: " + zone.getName()); } } private void loadConfig() { new IXmlReader() { @Override public void load() { parseDatapackFile(CONFIG_FILE); } @Override public void parseDocument(Document doc, File file) { forEach(doc, "event", eventNode -> { final StatSet att = new StatSet(parseAttributes(eventNode)); final String name = att.getString("name"); for (Node node = eventNode.getFirstChild(); node != null; node = node.getNextSibling()) { if ("schedule".equals(node.getNodeName())) { final StatSet attributes = new StatSet(parseAttributes(node)); final String pattern = attributes.getString("pattern"); final SchedulingPattern schedulingPattern = new SchedulingPattern(pattern); final StatSet params = new StatSet(); params.set("Name", name); params.set("SchedulingPattern", pattern); final long delay = schedulingPattern.getDelayToNextFromNow(); getTimers().addTimer("Schedule_" + name, params, delay + 5000, null, null); LOGGER.info("[RandomZoneEvent] Event " + name + " scheduled at " + TimeUtil.getDateTimeString(System.currentTimeMillis() + delay)); } } }); } }.load(); } private void loadZones() { for (ZoneType zone : ZoneManager.getInstance().getAllZones(RandomZone.class)) { if ((zone.getName() != null) && zone.getName().toLowerCase().startsWith("random_zone")) { _availableZones.add(zone); LOGGER.info("[RandomZoneEvent] Loaded zone: " + zone.getName() + " (id=" + zone.getId() + ")"); } } LOGGER.info("[RandomZoneEvent] Total random zones loaded: " + _availableZones.size()); } @Override public void onTimerEvent(String event, StatSet params, Npc npc, Player player) { if (event.startsWith("Schedule_")) { eventStart(null); final SchedulingPattern schedulingPattern = new SchedulingPattern(params.getString("SchedulingPattern")); final long delay = schedulingPattern.getDelayToNextFromNow(); getTimers().addTimer(event, params, delay + 5000, null, null); LOGGER.info("[RandomZoneEvent] Rescheduled for " + TimeUtil.getDateTimeString(System.currentTimeMillis() + delay)); } } @Override public boolean eventStart(Player eventMaker) { if (_isActive) { if (eventMaker != null) { eventMaker.sendMessage("RandomZoneEvent already active."); } return false; } if (_availableZones.isEmpty()) { Broadcast.toAllOnlinePlayers("[RandomZoneEvent] No zones configured."); return false; } _isActive = true; Broadcast.toAllOnlinePlayers("⚔️ Random Zone Event has started!"); _eventTask = ThreadPool.schedule(this::activateRandomZone, 5_000); return true; } private void activateRandomZone() { _activeZone = _availableZones.get(new Random().nextInt(_availableZones.size())); _activeZone.setEnabled(true); Broadcast.toAllOnlinePlayers("🔥 Random Zone Event: " + _activeZone.getName() + " is now PvP for " + EVENT_DURATION_MINUTES + " minutes!"); _eventTask = ThreadPool.schedule(this::eventStop, EVENT_DURATION_MINUTES * 60 * 1000L); } @Override public boolean eventStop() { if (!_isActive) { return false; } _isActive = false; if (_eventTask != null) { _eventTask.cancel(true); _eventTask = null; } if (_activeZone != null) { _activeZone.setEnabled(false); Broadcast.toAllOnlinePlayers("🏁 Random Zone Event ended. " + _activeZone.getName() + " is back to normal."); _activeZone = null; } else { Broadcast.toAllOnlinePlayers("🏁 Random Zone Event ended."); } return true; } @Override public void onEnterZone(Creature creature, ZoneType zone) { if (!_isActive || (_activeZone == null)) { return; } if ((zone == _activeZone) && creature.isPlayable()) { creature.setInsideZone(ZoneId.PVP, true); if (creature.isPlayer()) { creature.sendMessage("Esta zona está en modo PvP temporalmente."); } } } @Override public void onExitZone(Creature creature, ZoneType zone) { if (!_isActive || (_activeZone == null)) { return; } if ((zone == _activeZone) && creature.isPlayable()) { creature.setInsideZone(ZoneId.PVP, false); if (creature.isPlayer()) { creature.sendMessage("Abandonaste la zona PvP temporal."); } } } @Override public boolean eventBypass(Player player, String bypass) { return true; } @Override public String onEvent(String event, Npc npc, Player player) { return super.onEvent(event, npc, player); } @Override public String onFirstTalk(Npc npc, Player player) { return null; } public static void main(String[] args) { new RandomZoneEvent(); } } i have this but its not working
    • ZonePvPSpawnBossRadio=0 ZonePvPSpawnBossBarakiel=0 at the Customs.ini in L2Server folder. Im prety sure this is it because i had the same problem with you in cruma 1 floor for example and i couldn't fix it but i fixed it finally by changing these 2 lines
    • Siege Reward Start PM Msg Rework Config root BossDieAnnounce and BossDieSound in the L24Team.properties and Config.java files for global raid boss death notifications and sounds. Adds a new reward_list table to the DB.sql file to track castle rewards. Improves character creation logic for thread safety and validation. Adds extensive state checks to the RequestEnchantItem method to prevent enchantments during inappropriate player states. Fixed auto-attack animation bug (there was no attack animation, only damage animation) Clean Code Other fixes I forgot to list! Java 14 Fixed issue where deleting a character would prevent it from leaving the screen or being removed, or even after a delete CD (it would only exit when re-logging in or creating a new character). Added Premium System from the other C2 project (Needs testing and improvement). Added the "Improved" Community Board (incomplete).
  • Topics

×
×
  • 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