Jump to content

Recommended Posts

Posted

i can be a tester

Main topic with diff patch is here : http://acis.i-live.eu/index.php?topic=717.0

Bug reports topic for Olys is here : http://acis.i-live.eu/index.php?topic=740.0

 

If you think to know retail way for "that" or "that" (any olympiad behavior), give any link as proof (youtube videos, forums posts from official forum/l2guru/etc). I don't care about things without proofs. You can read aswell C5/IL patchnote and report if something is missing.

Posted

Main topic with diff patch is here : http://acis.i-live.eu/index.php?topic=717.0

Bug reports topic for Olys is here : http://acis.i-live.eu/index.php?topic=740.0

so i gotta test if olympiad is working properly?
Posted

so i gotta test if olympiad is working properly?

Anyone can test so far :). Diff patch is accessible to all. I just give you links for easy access. Btw I edited latest post, check higher.

 

Treaser is the author of the rework, so see with him - bugs reports topic - for anything related to Olys. My only job concerning Olys will be to test and to commit it, and eventually correct missing features if any. Point is to have a good patch directly to avoid (oly part 1/2/3/4/5/6/...)

Posted

Ofc not :D. The diff patch is made for aCis. Checkout aCis, apply diff patch and test. And reports errors of olympiads after you applied diff patch.

 

It's not yet commited because need more tests to be commited. So for the moment it stays a diff patch, and need tests. Once tested and ok, it will be commited.

Posted

Fiat Panda 2003 or Fiat Panda 1980 ? :)

As requested i post 0.5 version of olympiads, i dont remember about changes, im not working on it now, cuz no one test it(instead of Sweets) and post bugs..

So here is it.

 

That why i asked

Posted

i can be a tester

we do not have a special rank for testers, so you are free to doit "on your own" and im saying this cuz you will not be rewarded with anything by doing it, you will just help the project to be developed faster :) since there is a sense that tryskell see in not developing further if the thing done is not tested yet.

 

Posted

we do not have a special rank for testers, so you are free to doit "on your own" and im saying this cuz you will not be rewarded with anything by doing it, you will just help the project to be developed faster :) since there is a sense that tryskell see in not developing further if the thing done is not tested yet.

 

sure i already know that , also i am helping this project in order to be developed fast.
Posted

ATTENTION !!!

About acisil.eu domain, i got the account where the domain were brought, but as far as i can see, even if i changed the acc. details, with "Forgot Password" option i get no email... which makes me belive that the email with the new password go on his email. and since i cant transfer it to my account till december. I DO NOT ENCOURAGE YOU TO USE IT.

ANY LOSS MADE BY VISITING THIS DOMAIN IS ONLY YOUR FAULT !!!

keep in mind that. if there will be any changes about, ill announce, till then be careful

( http://acis.i-live.eu/ our only address )

 

ftm the redirection from that address was removed, and also i want to Thank Vhalior for the "donation" (since as i said, i got access to the account) but in time that is not 100% safe we do not use it.

Posted

ATTENTION !!!

About acisil.eu domain, i got the account where the domain were brought, but as far as i can see, even if i changed the acc. details, with "Forgot Password" option i get no email... which makes me belive that the email with the new password go on his email. and since i cant transfer it to my account till december. I DO NOT ENCOURAGE YOU TO USE IT.

ANY LOSS MADE BY VISITING THIS DOMAIN IS ONLY YOUR FAULT !!!

keep in mind that. if there will be any changes about, ill announce, till then be careful

( http://acis.i-live.eu/ our only address )

 

ftm the redirection from that address was removed, and also i want to Thank Vhalior for the "donation" (since as i said, i got access to the account) but in time that is not 100% safe we do not use it.

 

i can give mail too :) but better w8 when you can transfer not a problem

Posted
Changeset 199

 

Formulas fix, quests, misc

 

Formulas fix (skill success)

- those formulas are now based on L2JFree, and then tweaked (pure custom following my own tastes). The "pure custom" can afraid you, but both L2JFree and L2J are custom, from IL to hi5. And both don't fit with my own knowledge of L2 (L2JFree doesn't impact enough, L2J impacts *far* too much as some of you correctly warned me - fighterboss :p).

- difference of levels got a real impact (negative is even bigger than positive) from now. Enchant and matkModifier doesn't break the harmony of the formula. I can't assure you won't have 10% luck with +500 weapon ofc...

- skill success is now 1% to 99% max.

- magic success is now heavily affected by level of skill or level of player. You can't do 100% damage using Wind Strike at high level for exemple.

- the whole calculation has been seriously reduced for the best performance (as MEN/STR squares precomputed).

- calcSkillVulnerability is now a %, not a fockin addition anymore. Previously 50% base - 40%. Now, 50% base * 0,6. Simple.

 

ALL USED FORMULAS ARE FULLY EXPERIMENTAL. I TESTED THEM FOR ONE DAY, BUT PERHAPS I MISSED THE BEHAVIOR OF A SPECIAL SKILL AND SUCH.

 

Quests

- use of a new "system" to make quests. Many quests are now faster (avoid to read deeper in quest) and consumes less RAM (avoids int[] uses)

- some corrections have been made (3-4 little bugs, some typos).

- addition of 6 quests, ty fernandopm for the good work (and me aswell to correct muhaha :P).

 

Misc

- fix an eventual rare NPE (ty SweeTs for report).

- addition of an AI for speaking NPCs (hit/speak and death/speak types). More NPCs will come with time, and surely that new original AI will be modified (NpcString ?).

- fix of quest monsters wrong spawns for noblesse quest (I think ? lol), and fix SoDA spawns on deepest central room (with Merkenis, one of the new speaking NPCs).

- deletion of minChance, maxChance && pvpPower from L2Skill (unused stuff and/or hardcoded from now).

- fix an issue on admin panel (ty Sikken for little fix)

 

Soon the 200th. Yeepee.

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