Jump to content

Recommended Posts

Posted

L2J Celebrian Professional Last H5 Emulator HQ


 


General


We are providing ready to be used java based files for the game Lineage2. The setup is really easy, through our well written guides, and within 15 minutes you can be online on your own lineage 2 server. The files are based on open source l2j , l2js , l2jr , cl2c , clc2 , Devl2 and are being developed for more than 5 years. Supports latest java 8 and all of its functions. There are 2 versions that can be used, XML one that stores drops and spawns on XML files and SQL one that stores the same data on the database.


 


Why L2jCelebrian ?


Except from the ready to be used features that L2jC provides the main reason to choose us, is the support.There you can find useful guides, tutorials, shares and information for everything related to L2. There are also always online people willing to help and solve your problems or questions. Another reason would be the free lifetime updates that are taking place every week including new features, problems solved and reworked codes.


 


The Team


We are a powerful team of 5 people. Project owner and founder 'Celebrian' from Belgium , Head Developer 'Kortex' & 'Neoki' from Francia and 'Alibaba','Orkido' as moderators from Francia. Our aim is to built the best H5 java emulator out there, and from what we get from feedbacks we are really close to it. We will never stop working on the project and soon l2jCelebrian will be the one and only worth's trying lineage 2 H5 emulator.


 


Website : L2Celebrian


 


Posted

Le site ne fait pas tout, le script est nouveau 2016 réedit et 90%compléter , l2jsunrise etait a 85.15% 

Et si tu as des idées/conseil pour améliorer le site pm moi :)

Posted

Copy paste ? 

New Release, ameliorer a 90% repris de plusieur base et modifier pour une installation et un jeu plus facile et surtout plus beau 

Ajout de skin d'arme, accès a tout les fichiers , MAJ à chaque bug trouver, et 2016 pas du 2013 (on à évoluer depuis donc on améliore évidemment)

Posted (edited)

C'est quoi l'originalité d'un mix de pack, voir encore pire, qu'est-ce que ça dit sur vos compétences de développement si vous faites rien vous même (dans le sens que vous avez besoin de leech sur plusieurs packs)

Edited by Sdw
Posted

Donc pour vous, nous devrions récréer se qu'y à déjà été créer ?

Alors que rajouter et modifier  des files nous mêmes (70% sont des fichiers repris et modifier et 30% sont des fichiers créer par nous mêmes ).

Posted

Exemple : pourquoi achète tu un téléphone, fait le toi même , ou encore : pourquoi prendre l'Iphone 6 alors que c'est juste l'amélioration du 5 ( et le 5 l'amélioration du 4 ) 

Posted

Tu n'a pas compris l'exemple je crois x) bref passons , l'amélioration c'est se qui fait que l'on a toute cette technologie et autre, merci

Essayez et vous pourrez jugez ;)

Posted

J'ai déjà mon propre pack merci, et je ne ferais pas confiance à quelqu'un qui ne sait pas installer un pack (cf. tes topics où tu demandes de l'aide pour installer un serveur L2JSunrise).

 

http://www.maxcheaters.com/forum/43-request-server-dev-help-l2j/

Posted

Les packs on t été installer sans soucis ,les topics de ma parts était purement rétroactif , voir les différentes méthod pour etre pret a savoir aider dans n'importe quel circonstances.

Posted

Les packs on t été installer sans soucis ,les topics de ma parts était purement rétroactif , voir les différentes méthod pour etre pret a savoir aider dans n'importe quel circonstances.

 

C'est vachement encourageant pour tes futurs clients ;). Bonne chance (quand même) avec tes ventes, je vais demander de bouger ton topic de place (marketplace).

Posted

Je sais pas comment tu fais Tryskell pour rester dans un focus positifs.

 

C'est visiblement un agrégat de patch pourri basé sur un random pack fait par un mec sans expérience.

 

Ça va pleurer au scam après

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