Jump to content

Recommended Posts

Posted

Then you have killed L2Off systems and soon they will become like java. Thanks. :D

don't say such bullshits

 

L2Off needs MUCH MORE money for many things-It isn't like Java

 

And the only reason sharing this is to prevent ppl that want start L2Off server buying shits from everyone that thinks he is a DEV

 

Posted

don't say such bullshits

 

L2Off needs MUCH MORE money for many things-It isn't like Java

 

And the only reason sharing this is to prevent ppl that want start L2Off server buying shits from everyone that thinks he is a DEV

 

 

Now someone has a valid point.

Posted

Now someone has a valid point.

/agree

 

L2off its much harder to setup / mantain / extend than l2j, mssql its harder than mysql, just watch the stored procedures,database split, etc?

i dont think that every noob outta there can handle it , seriously.

Posted

And don't be faggots

 

L2j servers at priority is ok(The one serious projects with deticated)

the shitty l2j servers are the home-hosted w/o any knowledge with preconf packs

while in L2Off

U need a very good deticated

Surely a Developer

And MONEY for maintenance/protections/etc

 

In 95% u will never see a HOME hosted L2Off,just see the requirments of L2Off and l2J and compare

Posted

I suppose that is true, but given enough time it can be figured out with all the guides available.

 

And it is expensive, that much I know but my server is worth it. :D

 

I have L2OFF set up on one of my home servers for testing, works fine but I would never use it for live as I have a hosting service for that.

 

Test Server (In my home):

Intel Core 2 Quad 2.40GHz

8GB DDR3 RAM

Western Digital VelociRaptor 180GB (2) 10k RPM HD's

10Mbit Dedicated Pipeline

 

Actual Gaming Server (Dedicated Hosting):

Intel Xeon W3520 (i7) 4x 2x 2.66+ GHz

32 GB DDR3

Western Digital SiliconDrive III 2x80GB SSD + VelociRaptor 2x750GB HDD 12k RPM (Hardware Raid Array)

10TB/mo @ 1Gbps

Microsoft Windows Server 2003 64bit (with license)

Microsoft SQL Server 2005 64bit (with license)

Posted

/agree

 

L2off its much harder to setup / mantain / extend than l2j, mssql its harder than mysql, just watch the stored procedures,database split, etc?

i dont think that every noob outta there can handle it , seriously.

 

Spoken like true idiot with no knowledge.

 

 

Wether you use queries executed directly from your application or use stored procs inside the database matters not.

It's TSQL and it's nearly the bloody same for EVERY single incarnation out there, postgre,oracle,mysql,mssql, etc etc.

 

 

 

Shakal's comment made me laugh too.

He's the same as everyone else who downloads a pack.

 

 

 

L2OFF is chronicle 4 leak - in order to get further than that you'll need to look inside the application cause you have no source availeble (Well yet, who knows with NCSoft security it might not leak). You have to change already compiled code.

 

 

This is where it goes wrong for 99,99999999999999999999999999999999%.

How often is it that these files end up with a person with RCE/Assembly knowledge and knowing what to do, investing time into researching?

Very very rare.

 

How often do any of the people who get these files, begin to learn the the L2 Off daemons - and begin a well near impossible scaled task for somehow understading them, researching them and knowing enough assembly to start cross matching them and creating another application to rewrite the daemons?

 

I'd say 0.

 

 

 

 

The problem is not "L2Off is not supported lolz" - the problem is it's a closed enviroment from the start.

Nearly anyone can learn BASIC JAVA SYNTAX and go change various elements of L2J , or if any public .NET/C# emulators.

 

Who can write infrastucture, threading/pooling and memory management proper for this for l2j and their own emulator branch?

Again 0.

 

 

It's basic OOP for NASC/AI and for JAVA.

Doesn't require much effort to get some results.

 

Bothering to learn an application written for 1 platform, and changing it.

Takes quite bit more effort even for the smallest results.

 

 

 

Why doesn't anyone btw just see this is A HUGE COMMERCIAL for fr3d's buyout of dvamp?

If it's not fr3d himself :D

 

Posted

I suppose that is true, but given enough time it can be figured out with all the guides available.

 

And it is expensive, that much I know but my server is worth it. :D

 

I have L2OFF set up on one of my home servers for testing, works fine but I would never use it for live as I have a hosting service for that.

In enugh time,

Plug'n'play server will still plug'n'play servers,stupid admin will still supid admins

who will create something good, its going to do it cause its really interessed in developing,learning, and all, and not only to make money like many ppl outta there,

this its what i think.

Posted

Spoken like true idiot with no knowledge.

 

 

Wether you use queries executed directly from your application or use stored procs inside the database matters not.

It's TSQL and it's nearly the bloody same for EVERY single incarnation out there, postgre,oracle,mysql,mssql, etc etc.

 

 

 

Shakal's comment made me laugh too.

He's the same as everyone else who downloads a pack.

 

 

 

L2OFF is chronicle 4 leak - in order to get further than that you'll need to look inside the application cause you have no source availeble (Well yet, who knows with NCSoft security it might not leak). You have to change already compiled code.

 

 

This is where it goes wrong for 99,99999999999999999999999999999999%.

How often is it that these files end up with a person with RCE/Assembly knowledge and knowing what to do, investing time into researching?

Very very rare.

 

How often do any of the people who get these files, begin to learn the the L2 Off daemons - and begin a well near impossible scaled task for somehow understading them, researching them and knowing enough assembly to start cross matching them and creating another application to rewrite the daemons?

 

I'd say 0.

 

 

 

 

The problem is not "L2Off is not supported lolz" - the problem is it's a closed enviroment from the start.

Nearly anyone can learn BASIC JAVA SYNTAX and go change various elements of L2J , or if any public .NET/C# emulators.

 

Who can write infrastucture, threading/pooling and memory management proper for this?

Again near null.

 

 

It's basic OOP for NASC/AI and for JAVA.

Doesn't require much effort - bothering with assembly and researching a program, well does.

 

 

 

 

ehmmm maybe you have not understand what i sayd, i mean, if you get out with l2j, you are just going to install you mysql db, without taking care of the rest,if you are going to work with l2off, or mssql, you should know waht stored procedures are,try to ask this to someone who use l2j.. if you talk with them about creating a stored procedures to do something,he will ask you "wtf its that thing?i just know what's "inset into and select * from". dunno if you understand what i mean

Posted

ehmmm maybe you have not understand what i sayd, i mean, if you get out with l2j, you are just going to install you mysql db, without taking care of the rest,if you are going to work with l2off, or mssql, you should know waht stored procedures are,try to ask this to someone who use l2j.. if you talk with them about creating a stored procedures to do something,he will ask you "wtf its that thing?i just know what's "inset into and select * from". dunno if you understand what i mean

 

Maybe because they're newbies and don't really know MYSQL? Or SQL in general? Maybe your one of them?

MySQL has stored procedures (or routine's as they call them).

 

A query with arguments, is a query with arguments.

Wether you execute it yourself, or have something prepared in the database matters not.

I'm sure however this is NEWS to you.

Posted

Maybe because they're newbies and don't really know MYSQL? Or SQL in general? Maybe your one of them?

MySQL has stored procedures (or routine's as they call them).

 

A query with arguments, is a query with arguments.

Wether you execute it yourself, or have something prepared in the database matters not.

I'm sure however this is NEWS to you.

Still not understanding,this was just an example! i just sayd that l2off will not be like l2j, everywere,

i know what is a query, i know that mysql too have stored function and procedures, in not so idiot,

but (again) this was just the easiest example!

 

P.S. nop, this is not a news for me!

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