Jump to content

Recommended Posts

Posted

Yesterday i seen a sps, 2 kamaels, 1 se and like 3 or 4 daggers. Is ok for a BETA where everyone knows it will be wiped at LIVE.

The good thing is that they started to kill the event RB, even got a try  at Baium, so we can make an ideea how hard / easy we have made them.

 

They also started to siege forts, i could make a averege of how many KE cann be farmed / fort si i think everything is according to the sqedule for now.

 

Tomorrow morning we start class check and some PvP simulations in top gears +10 , OE skills and RB Jwls. I want to be sure about land rates and DMG amounts that we dont get any surprise at start.

Posted

.......

Tomorrow morning we start class check and some PvP simulations in top gears +10 , OE skills and RB Jwls. I want to be sure about land rates and DMG amounts that we dont get any surprise at start.

 

 

Is exactly what we work with now.

With all the modesty i can say that I am good in skills and classes moding.

 

I will not nurf any class , i will not make and IMBA OP class.

I can say that except the classes that really really can not do anything in a full buff pvp enviorement (lets say PP, SwS, BD), all the others will be as equal as they can be.

But what everyone should understand is that, when i make a class i think it as a end game char, meaning ++ skills, top armors, weapon , augment.

Posted

 

Is exactly what we work with now.

With all the modesty i can say that I am good in skills and classes moding.

 

I will not nurf any class , i will not make and IMBA OP class.

I can say that except the classes that really really can not do anything in a full buff pvp enviorement (lets say PP, SwS, BD), all the others will be as equal as they can be.

But what everyone should understand is that, when i make a class i think it as a end game char, meaning ++ skills, top armors, weapon , augment.

We will see.... what you will do... ;D

Posted

they are overpowered on every epi/freya l2j, it's some basic stuff.

 

If by ''kamaels'' you mean Doom Bringers VS Mage classes or Archers, is true, they are OP vs Mages/Archers because they are the perfect Anti Mage/Archer killing machines, but they are weak to daggers, duelists, tyrants, etc.

 

By balance i see it like this: each class have some classes that it can pwn easy and other classes where it lose easy.

 

It is in a way like the Paper/Rok/Scissor  game. If you are a ''rok'' you can break the scissor but the paper coveres you, while the paper gets cut by the scissor.

Posted

nay, I db's are usually ok, since the skills are mostly stuns, I referred to tricksters and soulhunds, tricksters real target, if it is +30, decreases the pdef by 40%, thats almost like dividing your pdef by 2, too much, soulhunds are hated by many ppl, steal divinity is ruining the game. The warps are not a factor imo, but melees gonna be in trouble, slow or shackle should land oftenly on them.

my bad that I used kamaels in my past sentence, I should have been more accurate.

Posted

nay, I db's are usually ok, since the skills are mostly stuns, I referred to tricksters and soulhunds, tricksters real target, if it is +30, decreases the pdef by 40%, thats almost like dividing your pdef by 2, too much, soulhunds are hated by many ppl, steal divinity is ruining the game. The warps are not a factor imo, but melees gonna be in trouble, slow or shackle should land oftenly on them.

my bad that I used kamaels in my past sentence, I should have been more accurate.

 

Tricksters are one of the most harmless class :D low HP lvl , low p def, medium to low evasion, only the m def is insane (prahnah+soul barrier). Usualy this class cant reach even a decent attack speed and p atack so i really dont think they will be a problem even in late game. Offcourse as team debuffers and buffers (prahnahh) they are really good, but except l2divinity i never seen OP tricksters anywhere (on L2D v1 they used to have the DM enchantable and the reuse of deadly rullete was around 10 sec, so a top trickster could kill a full pty of heros if he had a good cp spammer and a domi to regen his cp).

 

About soulhounds, the steal divinity is set to around 3 minutes reuse, that is a 15x reuse increase time, so this will not botther ppl so much. The problem many admins miss is the landing chance/ trigger activation rate of Lightning Barrier and the land chance of Lightning Shock. On most of the servers i tested the LB was landing every 3 , max 4 hits even if the slh was not top geared (jwls to empower para attack).

 

About root/slow on them ... is useless, Soul Cleanes FTW.

Posted

i would suggest puting some reuse on paladin's skill named sacrifise,in most servers paladins are impa coz of the crazy p def and the 100% healing rate from sacrifise.Also putting some extra reuse on soulhound's warp would be cool so they don't warp and blink 100%.Doombringer's disarm lands 100%.1 last thing would be to decrease the land rate of mana burn coz in oly mana burn lands 100% and support classes don't take any dmg at all.

 

The things i said are problems that most private servers have,i haven't tested on this server,im just saying ^^

Posted

About sacrifice, i am aware of the problem, and we allready discussed what should be the solution. Probably it will get a longer ReuseDelay and retail olyReuseDelay. We dont want to affect classes in the olympiad, and all the balancing we make is for free PvP.

 

Anyway we are almost ready for the opening that will happen in :

 

1 Day : 21 Hours

 

 

:D

Posted

u need to put alot alot alot more mobs at leveling zones, just 5 mobs aren't enough.Also increase adena drops and decrease the price from s80 and under.I reach 80 lv and im not able to buy even b grade

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now



  • 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