Jump to content

Recommended Posts

  • 3 weeks later...
Posted

Hello guys, i had finally some free time to update the website. Sorry for inactivity but University is killing me  >:(

 

I used a simple wordpress blog, i would do this thing a lot of time ago but cause of IRL i hadn't never time to do it.

 

So now the website (blog) where we will report the important news will be at link www.l2jfrozen.com while the forum is moved to www.l2jfrozen.com/forum.

 

I hope you like it, soon rev 960!

 

Rev 959 is out!

 

[CORE][DP]

 Report bugs on www.l2jfrozen.com, soon new website!

- Fixed dino skills like L2OFF (Kabokula, Tapirawa, Shabonob).

- Fixed Rune Teleporter Arisha like L2OFF.

- Fixed arrow pick up problem.

- Corrected skill Archery.

- Corrected skill Force Meditation.

- Fixed quest The Name of Evil Part 1.

- Fixed quest The Name of Evil Part 2.

- Fixed quest Attack Sailren.

- Fixed some teleport locations.

- Format UseItem.java.

- Orginize imports.

 

Discussion on forum:

http://www.l2jfrozen.com/forum/index.php?topic=18632.msg58180

 

Timeline:

https://www.assembla.com/code/L2jFrozenInterlude/subversion/changesets/959

 

Cheers,

Nefer

Posted

Hello Nefer L2J Frozen Dead.. you stoped work on this project. but i dont understand why.. if you searching for developers you can pm me

 

Kind Regards

 

Romeo

Posted

Hello guys, i had finally some free time to update the website. Sorry for inactivity but University is killing me  >:(

 

I used a simple wordpress blog, i would do this thing a lot of time ago but cause of IRL i hadn't never time to do it.

 

So now the website (blog) where we will report the important news will be at link www.l2jfrozen.com while the forum is moved to www.l2jfrozen.com/forum.

 

I hope you like it, soon rev 960!

 

Rev 959 is out!

 

Cheers,

Nefer

 

Dear Guys,

Shyla here.. We are trying to be more active in this period, but as you perfectly know it's not simple for us to find hours to dedicate to the project Fix-Dev, so Nefer is doing a great work right now.

I want just ask who wants continue to use the pack just continue also to support us with segnalations, some simple fixes or just testing the provided temporal solutions, we really need that.

Thanks again and see you on new Site :).

 

Shyla

 

Posted

Little update. Next patch will include fixes for Cursed weapon and signet.

 

[CORE][DP]

 New website at www.l2jfrozen.com, forum moved at www.l2jfrozen.com/forum

- Fix Scroll of resurection like L2OFF (consume only one scroll).

- Fix Scroll of resurection can't use more during cast.

- Format ScrollOfResurrection.java.

- Fixed Cursed weapon weapon update after drop.

- Fixed Sword Blunt Mastery with Mastery penality.

- Fixed Cursed weapon with Mastery penality.

- Fixed Holiday Wind Walk.

- Fixed Holiday Might.

- Fixed Holiday Shield.

- Little fix on Primeval Potion.

- Little fix on Sprigant's Fruit.

- Added spawn of Raidboss Plague Golem (73).

- Added some fixes miss on rev 959.

 

https://www.assembla.com/code/L2jFrozenInterlude/subversion/changesets/960

Posted

New rev, CW refactor. All reports about CW on our forum are fixed on this rev.

 

[CORE][DP] Cursed weapon refactor, fixed all bugs about CW on forum.

- Fixed bug Cursed weapon desappears after server restart.

- Fixed problem after server restart char can’t equip weapon.

- Fixed bug when player drops CW if he restarts he takes critical error.

- Fixed bug CW icon update.

- Fixed bug endTime calculation.

- Cleanup code with some improvment.

- Fixed some NPE.

- Fixed Hotsprings buffs like L2OFF.

 

Forum discussion:

http://www.l2jfrozen.com/forum/index.php?topic=18649.0

 

https://www.assembla.com/code/L2jFrozenInterlude/subversion/changesets/961

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