Jump to content

Recommended Posts

Posted

L2Cerberus UPDATE

L2DC Revision: r10448 to r10568

 

Date: 24.08.2011 and 28.08.2011

 

CHANGELOG:

  • Added logging and one fix for no target issue
  • Started Target System rework to match retail. (in different project gonna be merged later)
  • Bleed power fix
  • Retail like Party system messages + if party leader leave party will be dispersed
  • Dwarfs corpses for clan lvl 5 quest were moved from dv to death pass
  • Updated extractables from csv to xml and proper support in core/handlers
  • Olympiad Buffer should spawn now in 3vs3 oly
  • Should fix 3vs3 Olympiad issue with buffing, each player should be able to get 5 buffs
  • Fixed that in 3vs3 olympiad, if player is killed, he should lie on the ground
  • Implemneted olympiad battle end time countdown
  • Fixed one of aoe issues, war doesnt matter on sieges
  • It should be possible that one clan register for 2 sieges, if they are not in the same time
  • Fix for nokarma / no summoning after olympiad fight or olympiad observe
  • Fixed all siege summons, they are now working properly
  • Updated AbnormalEffect for Arcane Shield and Hunting Bonus
  • Reworked gametimecontroller
  • Update RequestActionUse with all missing action ids and added comments translated from korean
  • Fixed Titan Ancient Book
  • Fixed kama achiev list, too many records makes the string too long, now its limited to top 10
  • Angelic Icon, corrected stack type and level
  • NPC Totem Spirit Bear, fixed effect time
  • Fixed Pursuit Clan Ambition quest, quest monsters should spawn near dwarfs.
  • Fixed exploit that summoners may have buffed summons inside oly
  • Fixed that its no more allowed to use none english char to create character name
  • Fixed allblock and allunblock command
  • Fixed some wrong fall-throughs switches
  • Added missing packet update for block commands (icon will show up now)
  • Vesper Shooter SA multisell corrected
  • Fixed skills order after reloging, added sort basing on skill id
  • Implemneted support for negateAbnormalTypes, on next update gonna update all skills to match retail
  • Translated The Finest Ingredients Part2 from python to java to fix some errors in it
  • Added some missing agro points to skills
  • Fixed pets exp, all pets are now allowed to level upto level 86. This also fix sin eater issue.
  • Parsed SA - A grade from Blacksmith of mammon to match retail, It has same amount of items, probably correct amount too
  • Parsed Etc item sell from Merchant of mammong to match retail. It was missing 2 items. Before 72 now 74
  • Parsed crafting service blacksmith to retail
  • Parsed S grade SA adding on Blacksmith of Mammon, had missing 84 items and some update to retail
  • Parsed A grade and S grade duals multisell on blackmsith of mammon from retail, note s grade had missing 6
  • Parsed Quest 336(coins of magiic all 3 rewards), 373(Supplier of reagents), 343(Under The Shadow Of The Ivory Tower), 382 (Head Blacksmith Vergara) and 351(BlackSwan) parsed to match retail.
  • Parsed Quest 633: In The Forgotten Village multisell updated to match retail
  • Parsed Quest 426: Fishing Shots multisell updated to match retail
  • Parsed Gatekeeper scrolls multisell updated to match retail
  • Parsed Manor Products: Schuttgart (had missing 36 items) multisell updated to match retail
  • Parsed Manor Products: Rune (had 86 to many items) multisell updated to match retail
  • Parsed Manor Products: Goddard (had 1 to many item) multisell updated to match retail
  • Parsed Manor Products: Innadril (Had missing 44 items) multisell updated to match retail
  • Parsed Manor Products: Oren (Had missing 40 items) multisell updated to match retail
  • Parsed Manor Products: Giran multisell updated to match retail
  • Parsed Manor Products: Dion multisell updated to match retail
  • Parsed Manor Products: Gludio multisell updated to match retail
  • Parsed Manor Products: Aden multisell(missing 100 items) updated to match retail
  • Parsed Talismans for fort/castle had missing 1
  • Parsed Blacksmith of Mammon - Weapon Upgrade(12 missing) multisell updated to match retail
  • Parsed Blacksmith of Mammon - Foundation Items multisell updated to match retail
  • Parsed Reputation Manager Add Pvp to armors/weapon and remove also consumables updated to retail
  • Parsed unseal S80 accessories and Patfinder worker multisell updated to match retail
  • Parsed Maestro Ishuma Dualsword crafting mulitsell
  • Parsed all Maestro Ishuma multisells to match retail: Apply SA to weapons, Remove SA from weapons, Unseal armors, Unseal accessories, Upgrade Armors to noble, Remove rare options on rare items, Change dynasty type to another.

A LOT OF CHANGES WERE SKIPED, ONLY MOST IMPORTANT ARE POSTED ABOVE

ALSO A LOT OF PERFORMANCE REWORKS WAS OMITTED, BECAUSE OF OTHER TEAMS COPYING OUR IDEAS WITHOUT CREDITS

  • 4 months later...

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

    • 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).
    • Use only middleman this guy scammer old discord goddardshop   
  • 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