Jump to content

Recommended Posts

Posted (edited)

Well this code is done following an idea that was posted here.
As title says, this code is just to automatize your soulshouts usage, and you don't need to have soulshots in your inventory.
I feel like this is already shared somewhere. If it's exactly the same code as another one, already posted, just leave a comment and I'll junk it.

Easy code but probably usefull for some people, for me too ;)

 


Coded in l2jserver H5 workspace.
http://pastebin.com/pHACrzYp


5497139591.png

 

8170c2e24f.png

 

af48a42e46.png

 

8d80ac572f.png

Edited by ^Wyatt
  • Upvote 1
Posted

It's good that you took the time to code something that someone needed.

 

Good share.

 

P.S I believe that you wanted to type "consumption" in the title. (now it's Consumition)

Posted

It's good that you took the time to code something that someone needed.

 

Good share.

 

P.S I believe that you wanted to type "consumption" in the title. (now it's Consumition)

Thx for the typo, that happens when typing fast  :happyforever:

Posted

yiouuuuuuuuuuuuuuuuuuuuuuuuuuuhuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu!!!!!!!!!!!!!!!!!!!!!!!!!!!! Thank you ! :)

 

( i had search everywhere for that and i can ensurance that from 2 hours search it doesn't provide something like that )

Guest Elfocrash
Posted

Good guy Wyatt. I wrote something similar for Netherrealm but people got mad on me "We wanna see the soulshots!"

Posted (edited)

thanks for sharing the shared on ise

 

get 1 soulshot from the shop and it will not get consumed

??

I coded it from scratch what the hell are u saying bro? Plus it doesn't have that bug that you just trashtalked.

And please write in proper english.

Edited by ^Wyatt
Posted

??

I coded it from scratch what the hell are u saying bro? Plus it doesn't have that bug that you just trashtalked.

And please write in proper english.

your topic says:

i think is somewhere shared

 

this you made is not shared its unique and new

 

the shared one that you are talking about is what i explained

1 soulshot and autoactivated 

 

 

 

if you dont understand i will try to explain more i didnt offend you or said something about your work.. rofl

Posted (edited)

your topic says:

i think is somewhere shared

 

this you made is not shared its unique and new

 

the shared one that you are talking about is what i explained

1 soulshot and autoactivated 

 

 

 

if you dont understand i will try to explain more i didnt offend you or said something about your work.. rofl

Sorry then, I didn't understand you in the way it was explained the first time ;) Edited by ^Wyatt
Posted (edited)

gj! let's see ct 2.3 copies of l2pride now since interlude pride-like servers are like 100 or more

 

 

also can be coded in a much better - easier way than this

Edited by Napster321
Posted

gj! let's see ct 2.3 copies of l2pride now since interlude pride-like servers are like 100 or more

 

 

also can be coded in a much better - easier way than this

Ofc ofc always all can be coded in a better way. If you don't like, don't use it, I'm just helping some people that wanted it ;)

Just go and code and share things to help people if u're so good, instead of replying useless things... anyway

Posted

Ofc ofc always all can be coded in a better way. If you don't like, don't use it, I'm just helping some people that wanted it ;)

Just go and code and share things to help people if u're so good, instead of replying useless things... anyway

xdem had already code it like 1 year ago plus that

 

auto arrows, can do that too ?

Posted (edited)

xdem had already code it like 1 year ago plus that

If you can find the link of the code shared feel free to send it.

 

auto arrows, can do that too ?

yea but now that nerd removed any desire I could have to help more today ;) Edited by ^Wyatt

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