Jump to content

Recommended Posts

Posted

Hello everyone, I want introduce You a PvP Server called L2Midnight.


banner.gif


 

L2Midnight Server Status :

 

 

Live at 13 May (Friday)

 

 

Server Info :

Chronicle: Interlude

More details at Forum Board

 

   Rates

   Experience: 70x

   Adena: x200

   Party Exp Level Gap (20 levels) - Disabled

       Enchanting chance:

       Magic Weapon Enchant Rate: 50%

       Fighter Weapon Enchant Rate: 60%

       Armor Enchant Rate: 60%

   Safe Enchant: +3

   Max Armor Enchant: +10

   Max Weapon Enchant: +16

 

   GM Shops

   Shop up to A Grade Equipment

   Interlude Weapons

   All needed Misc

 

   Zones

   Farm Zone: Varka, Imperial Tomb

   Boosted Zone: DVC Exp boosted x2 ( Totaly x140 )

 

   Farm System

   S grades optainable from our craft system (recipe60%, parts, craft book, crystals S, gemstones)

   coins of idol (item required to buy s grade armor recipes/parts and some Misc items)

   fragment of idol coin (item required to buy s grade armor parts)

   Note: You can exchange fragments to coins ( 3:1 )

   Broken Relic Parts (for weapons recipes & parts require Quest for Broken Relic Parts (NPC located in Giran))

   Ancient Adena ( require for unseal S grades armor )

       Varka

       Drop (less chance for drop)

       coins of idol,

       fragment of idol coin,

       Sealed s grade sets with small chance

       Spoil (more chance for drop)

       coins of idol

       fragment of idol coin

       ews

       eas

       Imperial Tomb

       Drop

       Broken Relic Parts

       Ancient Adena

 

   Buffs

   NPC Buffers with all normal buffs to 74LVL

   Duration of all buffs: 2 Hours

   Cat/Unicorn buff is retail like

   All buffs are Party buffs.

 

   Global GK

   The global GK will teleport to: all towns, leveling zones and custom area locations.

 

   Quests

   Class changes - free of charge at NPC (1nd /2nd / 3rd - cost 10kk )

   Sub Quest Items in NPC.

   Nobless Quest Items in NPC. ( Barakiel level: 80 )

   Clan Level Items in NPC

 

 

 

 


More info @ our sites

 

Our WebSite : www.l2midnight.com

Our Forum : http://forum.l2midnight.com/

 


 

 

 

 

Posted

Craft Guide ;

1.First you need to find a person who will craft for you a weapon/armor (or make an crafter)

11mdafp.jpg

 

2. As you see you lack with few items, shafts, craft book, recipe, crystals and gamestones.

You have to start imperial tomb quest (just click on quest) where you have to farm broken relic parts for recipes and shafts (one s grade weapon recipe = 100 of them and one shaft = 2 of them)

2gv7qyq.jpg

3. When you collect enough relics it's time to buy recipe:

339h9us.jpg

4. And enough craft books(crystals and gamestones are available at misc shop) :

9zq78.jpg

5. After that you make it. It's only 60% chance but with a bit of luck i made it:

207nps2.jpg

6. Time to put SA, This is expensive way ( won't remove enchant), crystals are obtainable from epic and regular rb's

Cheap way cost 50 coins and remove enchant from weapon, you can use it by weapon shop option.

33djo1g.jpg

Posted

Raid Boss Drops / Spawn Times ;

Varka:

Three regular rb's with retail stat's

1.  j58dvk.jpg

2.  f439ud.jpg

3.  oirlly.jpg

For those three drops are the same:

Sealed Imperial Crusader set items
Sealed Leather Draconic set items
Sealed Major Arcana set items
All s grade weapons
adena
Top/High lifestones
Bews/Beas
Crystals for SA
Fragment Coin of idol
Coin of idol

 

 

One with enchanted stats (need atleast 9 peoples to kill it)

 

1.  25n2u.jpg

 

Unsealed Imperial Crusader set items
Unsealed Leather Draconic set items
Unsealed Major Arcana set items
All s grade weapons + SA
adena
Top/High lifestones
Bews/Beas
Crystals for SA
Fragment Coin of idol
Coin of idol

More drop chance for this one (doubled)

 

To kill this one you need varka lvl 1 and Simple quest : Magical power of water part 1

Magical power of water quest guide

 

After it you take Magical power of water part 2 from asefa and you can slay the rb ! (just find it and click on the statue to make him appear)

(after that you have to repeat the part 1 quest to summon it again, only one person from party needs quest)

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