Jump to content

Recommended Posts

Posted

Tired to play same servers every time?

Tired to be killed at pvp by hits of insane damage?

Tired to start everytime in each server to start to pvp two days later?

Definitely... tired to play a fake Lineage 2 gameplay?

We have the solution! This is your server:

 

Lineage 2 Soul Unique Features PvP Server

 

 

Try us and check some fresh advances about us:

 

soul.jpg

 

SERVER OPENED 4/22/12 !!

 

## Server Rates ##

 

- Exp: x1000.

- Exp at level +86: x300.

- Exp with the 1st Subclass: x500.

- Exp with the 2nd Subclass: x250.

- Exp with the 3rd Subclass: x100.

- Drop Rate: x1.

- Adena Drop: x100.

 

- Safe Enchant: +7.

- Max Enchant: +30.

- Blessed enchant rate: 100%.

- Normal enchant rate: 70%.

- Elemental Success Rate: 50%.

- Augment Skill Chance: 20%.

 

## Main Features ##

 

A totally new and unique event system that allows the players to select the event type, teams and map.

- 4 types of Mini Events to select every hour: TvT, CTF, DM, ZE, KTB (and more coming soon!).

- A unique ranking system that saves and rewards the top 10 players of the mini events each week.

- A custom nobless system where players can become noble by killing some special monsters that appears randomly after killing a monster in the server hunting areas.

- Max level cap set to 90.

- A custom subclass system where players will have different rates of experience depending on what his active subclass is (check server rates to learn more). Also after finishing the third subclass, players will unlock his max level up to level 90!.

- A custom certification system where players will get special certification items to unlock new skills (from lvl 86 to 90).

- A custom castle/siege system that allows the players clan members and Allies to unlock some special skills and cloaks from the acquired castle. Also the Gludio siege has his own siege system, instead of only killing players and taking the castle artifact, players have to get the max amount of points (by killing the bosses, players and castle doors) to take the castle.

- A custom community board system that allows the players to check all the server news without exiting the game, read the server guides, vote and manage all the event features, check the leader-boards, check his event stats, email friends, and manage his clan inner forum.

- A custom long term event called "DragonBall Event" where players have to get all the dragon balls by killing monsters/players to collect them all and be able to get a exclusive reward by making a wish to Shenron.

- A custom feature called "Survive or Die event" that runs every 30 min and allows the players to get special skills/status for his clan and himself. This event is a score based system so it works like the other event systems with some exceptions and with a different score system (check the guides for more info).

- A different way of connecting to the game by using a Updater that updates every file needed to connect each time you launch it, a launcher that launches the game after updating it and also a built in client protection called "L2SoulGuard" that prevents the usage of external tools (packet injectors, bots, etc) to be used on this server.

- An anti AFK/Feeder system that will automatically punish all the non wanted players from the events/Olympiads.

- A custom Grand Boss system where players don't need to finish the official quests to be able to attack these monsters.

- A exclusive hunting zone where only the players above level 86 will be able to kill monsters and get experience.

- A custom event that rewards players every 20 minutes depending of the amount of server votes.

- A custom event that will choose and reward each day a random connected player.

- A custom Pvp/PK announcement system.

- A exclusive Scheme Buffer built in the community board.

 

## Gameplay Improvements ##

 

- Our PVP Balance is good enough to where you can start pvp from the first minute you enter the server.

- Mana Pots only allowed if you aren't engaged in PvP.

- Vampiric Rage buff only works if you aren't flagged.

- No imba tanks or archer tanks.

- No imba healers or dominators.

- Support and forgotten classes are useful at PvP, not only at Olympiads (Improved Sword Muses and Spectral Dancers).

- Balanced Economy (Adena in this servers worth).

- Added a special PvP potion with a long cool down that boost your stats for a few seconds.

 

## Community Features ##

 

- The game (gameserver, loginserver, community server) is connected with the website and forums. That allows to the players to be able to see and manage everything from the website, forums and even in-game.

- A website that allows to the player to see all the game systems information (sod, dbevent, minievents, sieges, other clans, other players, etc), manage all his in-game information, such as accounts, characters, clans, etc.

- A built-in ticket system to make direct contact with the staff.

- A friendly web site design that allows to the players interact with the community.

 

## Server Engine and Development ##

 

L2Soul.com is using the well known open-source engine from l2jserver.com as a base, stable and working engine to deploy all our game services; also we are not using the latest releases from them because we are using our own development channel from a previous and stable version from them (most of our features are not compatible with the original ones).

Also all the featured offered are COMPLETELY made from us, so dont expect a worse game experience due to using old, buggy and/or bought features from other developers/channels.

Posted

Max enchant by normal scrolls (EWS, BEWS) is +20.

+20 to +30 is only available through Crystal Enchant Scrolls and are only able to acquire at Events.

Anyways enchant rate would be easy, but scrolls aren't pretty easy to get. At this way we make the Adena and economy balanced and useful.

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