Jump to content

Recommended Posts

Posted

Update with L2jServer BETA 8913 on June 12

Fixed in this BETA:       

- BETA: Update for core read-me file by FBIagent.

- BETA: Other changes.

- BETA: Other minor changes.

- BETA: TerritoryWarManager? thread-safe

- BETA: Updated Enchant Skill Chances.

- BETA: SP required for acquiring some of the skills of the Third Class is reduced in H5.

- BETA: Admin Siege command handler rework:

        - Added Javadocs.

        - Replaced if/else statement with ternary operations.

        - Replaced if/else if statements for string comparison with switch statement.

        - Replaced try/catch statement for numbers with Util.isDigit(String).

        - Fixed faulty logic that, which was flagged with possible null pointer access.

        - Fixed other redundant pieces of code.

- BETA: Minor update for pcBaseStats.xml.

Posted

Changelog for L2jServer BETA 8927

Fixed in this BETA:         

- BETA: Pet food rework:

        - RequestPetUseItem? cleanup.

        - Added method isServitor()

        - L2Object cleanup.

        - Unhardcoding food Ids at PetDataTable?.

        - Fixed duplicated consume of food when used from pet's inventory (not auto-feed).

- BETA: Minor cleanup for [5431].

- BETA: Reworked Harvesting skill to use an effect (as it does in retail).

        - Fixed few typos in skill parameters.

        - Removed skill type.

        - Minor rework in the code.

- BETA: Support for "equip_reuse_delay".

- BETA: Fix doors being created dead raised in forum topic ​http://www.l2jserver.com/forum/viewtopic.php?f=77&t=25566

- BETA: Reworking quest's reentrant lock usage:

    - Fixing reload quest (scripts) problem, thanks DareStrike? for report.

    - Minor improvements in quest timers.

- BETA: Fixing some log typos.

- BETA: Removed (setLocz() + 20) because it cause NPCs spawn in wrong places when geodata is enabled (for example Core GrandBoss?).

- BETA: Minor typo fix, thanks Tavo22 for report.

- BETA: Fix for "Error in FightModeScheduler?":

        - Thanks Edoo, _Blade_, u3games, Lupu1, Starter, franpisco for report.

        - Thanks atp for testing.

- BETA: Fix for Quests:

        - Thanks goncafa, kostantinos and Tavo22 for report.

        - Closing #6199

        - Thanks FBIagent for fix implementations and comments.

        - Thanks jurchiks for the code improvement and code suggestions.

- BETA: Minor fixes and optimizations:

        - Duplicated properties.

        - Math.ceil(double) for int parameter.

        - Replaced String.append(String) with String.append(char) for one lenght strings.

- BETA: - Datapack part for ​[L5433]:

        - Reworked PetFood? item handler.

- BETA: Reworked Harvesting skill to use an effect (as it does in retail).

        - Fixed few typos in skill parameters.

        - Removed skill type.

        - Minor rework in the code.

- BETA: Updated some Boss Spawns.

- BETA: Servitor Summon Skills casting time is decreased from 15 seconds to 6 seconds in H5.

- BETA: Updated to H5 Summon Feline King, Summon Magnus the Unicorn and Summon Spectral Lord skills.

- BETA: Missing H5 Doors from 8851.

- BETA: Fix for Quests:

        - Thanks goncafa, kostantinos and Tavo22 for report.

        - Closing #6199

        - Thanks FBIagent for fix implementations and comments.

        - Thanks jurchiks for the code improvement and code suggestions.

- BETA: Updated/Fixed? Spoil & Spoil Festival Skills.

Posted

Update with L2jServer BETA 8941 on June 22

Fixed in this BETA:         

- BETA: Fix for Armor Sets and Henna bonuses not working on first player login:

        - Thanks FinalDestination? and Adry_85 for reports.

        - Thanks MELERIX for testing.

        - Minor formatting.

- BETA: Fixed NPE for isSpiritShotCharged and isBlessedSpiritshotCharged. Thanks MELERIX for help.

- BETA: Offensive Magic Skills should trigger EVT_ATTACKED_HIT.

- BETA: The rest of [5441] (now for hair accesories).

- BETA: Fixed cloak visualization when you left-click on the item.

- BETA: Improved sps/bsps behavior.

    - Unhardcoded switch code for soulshot, spiritshot and blessed spiritshot and deleted redundant code.

    - Avoiding some "instanceof" where it's possible.

  Thanks MELERIX, UnAfraid? and Zoey76 for help.

- BETA: Fix for "oncrit" and "oncast" item skills not performing skill casting checks.

        - Now default oncrit_chance and oncast_chance is 100.

            - If the parameter is not set in the item, the skill will be called every time there is a critical hit/magic skill usage.

            - Chance lesser than or equal to zero will completely prevent the skill call.

        - Reworked some weird code.

        - Fixes Infinity Rod healing monsters, thanks goncafa and Tavo22 for report.

- BETA: Minor fix in logic at doDie(..):

        - Thanks Starter for report and fix.

        - This should keep the same logic as it was before [4662].

- BETA: Removed "passive" boolean from passive effects (now it will check if skill is passive), thanks Zoey76 & Adry_85 for help.

- BETA: RequestJoinParty? NPE vulnerability fix, thanks Tavo22 for report.

        - Fixed typo in JavaDocs?, thanks jurchiks for report and proper JavaDoc? text.

- BETA: Fix for cubics being removed at olympiad:

    - Thanks Endrance and Tavo22 for report.

    - Closing ​#DP5305

    - Thanks Tavo22 for testing.

- BETA: Missing Eilhalder Von Hellmann from [8938].

- BETA: Fixed GrandBosses? respawn times formula.

- BETA: Fixed some RaidBosses? respawn times.

- BETA: Fixed few NPC types.

- BETA: Fixed Buffer/Player? Spawns for Orbis Arena.

- BETA: Minor skills update:

        - Parameter values True/False? to true/false.

        - Removed invalid condition system message from Sweeper (42) skill.

- BETA: NPE vulnerability fix for find_ip command, thanks Tavo22 for report.

- BETA: Datapack part for ​[L5438]:

        - Removed/fixed non-required chance parameters.

        - Removed invalid system message for Infinity Rod trigger skill.

- BETA: Fix for NoSuchElementException? in reload command, thanks DareStrike? for report.

- BETA: 10282_ToTheSeedOfAnnihilation typo fix. Now players with lvl 84 or above will be able to take the quest (previously only lower levels could take it... lol)

 

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