Jump to content
  • 0

Genre switching without relogin


Question

Posted

recently i redid my code and i change gender and update for the other players and not for me which package needs to be updated?

 

View from another player:

 

my vision:

 

Screenshot_92.png.39b3df74a3b33cff0ea3a3691e2f7e1f.png

 

Recommended Posts

  • 0
Posted
On 9/27/2022 at 4:49 AM, laRoja said:

this didn't work anymore it opened a light how can it be fixed when you remove the object and put a delay it gives critical some time ago I did it this way and it didn't work

  • 0
Posted (edited)
4 hours ago, Williams said:

this didn't work anymore it opened a light how can it be fixed when you remove the object and put a delay it gives critical some time ago I did it this way and it didn't work

 

Working on aCis 406.

 

 

Edited by laRoja
  • 0
Posted
On 9/27/2022 at 5:35 AM, arm4729 said:

what you give me if i can make it work only editing server side on acis ?

you use requestrestart to relog a player without player making any client action

 

this sucks because it forces the client to make an actual restart, its no different that making a manual restart

  • Sad 1
  • 0
Posted
10 hours ago, xdem said:

 

this sucks because it forces the client to make an actual restart, its no different that making a manual restart

is just 3 second loading screen and bam you are now a reptilian.

  • 0
Posted
53 minutes ago, arm4729 said:

is just 3 second loading screen and bam you are now a reptilian.

 

not really, this forces the client to switch state, resend enter world, in reality just an automated restart. Its not the real solution.

The real solution will be to emulate the correct UserInfo/CharInfo packets in the correct sequence without calling any server-sided function like decayMe spawnMe etc, its completely unnecessary since this bug is completely client sided.


I have figured a way to emulate the correct packet sequence to change one's race without stacking the animation without restarting the client or sending a transformation packet, I haven't tested but it should also be possible in Interlude.

 

H5 client never stucks the animation when you do a complete race change, it will only stuck if you switch from Human Mage to Human Fighter, or from FOrc to MOrc etc, by emulating a fake change to a different race for 1 millisecond, you essentially force the client not to stack the animation

  • 0
Posted
5 hours ago, Williams said:

 

 

use the admin panel

 

There is no difference: is the same command which execute the same part of code. Tested and working.

  • 0
Posted

laRoja share was committed with slight edit on 406, +10 cookies for him.

 

I set 4sec as timer, since 3sec still could generate critical (and 1.5sec 100% does it).

 

I won't dig deeper in that, since it's only an admincommand and the ratio spent time / interest is extremely limited.

 

 

  • 0
Posted
4 minutes ago, Tryskell said:

laRoja share was committed with slight edit on 406, +10 cookies for him.

 

I set 4sec as timer, since 3sec still could generate critical (and 1.5sec 100% does it).

 

I won't dig deeper in that, since it's only an admincommand and the ratio spent time / interest is extremely limited.

 

 

 

If you was even a little bit serious you would know that you can emulate all that with packets instead of using expensive operations like spawnMe decayMe and storeMe especially behind tasks, no wonder why your pack is trash after 10 years of tryhard

  • Sad 1
  • 0
Posted (edited)
3 hours ago, xdem said:

 

If you was even a little bit serious you would know that you can emulate all that with packets instead of using expensive operations like spawnMe decayMe and storeMe especially behind tasks, no wonder why your pack is trash after 10 years of tryhard

 

Feel free to deliver a "not expensive" version of it instead of random taunting. Everytime I read you there is like 0 added value and it's a waste of time.

 

You're like a fucking NPC, even my scripts got a less predictable behavior loop than your.

Edited by Tryskell
  • Thanks 2
  • 0
Posted
24 minutes ago, Tryskell said:

 

Feel free to deliver a "not expensive" version of it instead of random taunting. Everytime I read you there is like 0 added value and it's a waste of time.

 

You're like a fucking NPC, even my scripts got a less predictable behavior loop than your.

 

I've described exactly on my previous post, you are the NPC you missed that part

  • 0
Posted (edited)
13 hours ago, xdem said:

 

I've described exactly on my previous post, you are the NPC you missed that part

 

And you missed my part where I said the development wasn't worthy the spent time.

 

How much hours do you think you need to handle the perfect behavior - giving the fact it randomly client critical without timer - for which benefits ? It's a simple admincommand, if you spend more than 30min doing it then it's not worthy to be developed further. And that's why I never personally cared about it, since it's just QoL stuff.

 

I don't want to spend more than 30min to pick all possible packets from L2PHX properly, add it in the good sequence... All that to probably figured out it was impossible in the first place, because IL client is IL client and client wasn't developed to handle that stuff.

 

If you think you got the time and the will to do it, simply do it and share it, that will help people out there - but don't random taunt out of nothing (eg "your pack is trash") - moreover when you specifically said retailness isn't your business, meaning you got actually no clue what I'm doing and will probably never be interested in what I'm doing since you stucked yourself to rev 32x or so.

 

Don't be "that" randomer stucked in 2015 stating I only edit class names for fun and/or money and/or lack of skill (which, btw, was the main point of the said cycle, "organization", back in time). It's enough to read aCis changesets to understand you are wrong.

Edited by Tryskell
  • 0
Posted
1 hour ago, Tryskell said:

 

And you missed my part where I said the development wasn't worthy the spent time.

 

How much hours do you think you need to handle the perfect behavior - giving the fact it randomly client critical without timer - for which benefits ? It's a simple admincommand, if you spend more than 30min doing it then it's not worthy to be developed further. And that's why I never personally cared about it, since it's just QoL stuff.

 

I don't want to spend more than 30min to pick all possible packets from L2PHX properly, add it in the good sequence... All that to probably figured out it was impossible in the first place, because IL client is IL client and client wasn't developed to handle that stuff.

 

If you think you got the time and the will to do it, simply do it and share it, that will help people out there - but don't random taunt out of nothing (eg "your pack is trash") - moreover when you specifically said retailness isn't your business, meaning you got actually no clue what I'm doing and will probably never be interested in what I'm doing since you stucked yourself to rev 32x or so.

 

Don't be "that" randomer stucked in 2015 stating I only edit class names for fun and/or money and/or lack of skill (which, btw, was the main point of the said cycle, "organization", back in time). It's enough to read aCis changesets to understand you are wrong.

 

Im still using aCis 220, upgraded to H5, the fact that I like how it started doesn't mean that I like the direction it took

  • 0
Posted
24 minutes ago, xdem said:

 

Im still using aCis 220, upgraded to H5, the fact that I like how it started doesn't mean that I like the direction it took

 

You basically use L2jServer.
:happyforever:

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