Jump to content

Search the Community

Showing results for tags 'l2j'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • News and Announcements
    • News
  • General
    • Suggestions & Feedback
    • General Chat
    • GFX
    • VFX
  • MMO Hub
    • Gamer's Lounge
    • Member's Lounge
    • Developer Lounge
  • MMO Corner
    • World of Warcraft
    • Lineage 2
    • Minecraft
    • Host Listing
    • Server Listing
    • Server Recruitment
    • Server Reviews
    • The Underground
  • User Hub
    • Support
    • Report
    • Contact Staff
  • Merchant Corner
    • Marketplace
  • General Development Releases
    • Applications
  • Tutorials
    • Programming
    • Web Development
  • Wasteland

Categories

  • Creative Corner
    • GFX Releases
    • VFX Releases
    • Resources
  • MMO and MMORPG
    • World of Warcraft
    • Lineage 2
    • Minecraft
  • Webmasters
    • Content Management Systems
    • Addons
    • Scripts
    • Designs
    • Proxies
    • HTML
  • Applications
  • Gaming
    • World of Warcraft
    • Lineage 2
    • Minecraft
    • Emulation
    • Nulled Distributions
  • Marketplace
    • Marsh Designs
    • iDarts

Product Groups

  • Membership
  • Advertise
  • Promote

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Interests


How Did You Find Us?


Contributor


Discord

Found 10 results

  1. Have you ever wanted to build your own lineage2 private server? If yes, l2jsunrise is the way to achieve it easily and without knowledge. First of all, what is l2jsunrise? Its a project founded by NeverMore & vGodfather 5 years ago which develops high quality H5 server files. If you are really into lineage2 industry the past few years, then for sure you might have heard of l2jsunrise or you might have played on a server based on l2jsunrise files. There are many similar server files on the internet, however with a few simple facts i will help you understand why you should choose l2jsunrise: [★] You will find countless ready to be used features that can be enabled/disabled and configured by configs. [★] Hundreds of problems and bugs has been fixed over the last years under users reports. [★] Source access on the lowest price you will ever find on the marketplace. [★] Video and well written tutorials of how to control several issues/features or how to install your emulator. [★] Daily support throught our well structured private forum. [★] Regular updates either for fixes or reworks for stability issues. [★] You will get some discount coupons for s-guard (client side protection) and sovahost (cheap and reliable hosting solutions). [★] Geodata files included on all available plans Here's some useful links regarding our project Features ➥ https://goo.gl/qEY36Z Ingame Preview ➥ https://goo.gl/KrEgEd Test Server ➥ https://goo.gl/2DmwhB Testimonials ➥ https://goo.gl/pWeWca OFFICIAL PROJECTS WEBSITE ➥ https://www.l2jsunrise.com ===== IMPORTANT ===== DO NOT GET SCAMMED ===== Please be sure that you obtained sunrise files from the official provider. Contact us only via our in-built contact form, facebook or through skype l2jsunrise. Fake sunrise files may be offered on the marketplace for lower prices, but keep in mind that there might include backdoors, you will not have lifetime sunrise support, and last but not least if we found out that you are using a non registered SVN, account will be deleted and you will lose everything you paid for. In case you found a reseller of sunrise please report it at l2jsunrise@gmail.com and benefit from it.
  2. Hello members of LordCraft, here is a code for automatic potions for all L2J packs. Images Preview: Code: [hide] Index: data/xml/items/0700-0799.xml =================================================================== --- data/xml/items/0700-0799.xml (revision 112) +++ data/xml/items/0700-0799.xml (working copy) @@ -329,7 +329,7 @@ <set name="price" val="2000" /> <set name="is_stackable" val="true" /> <set name="is_oly_restricted" val="true" /> - <set name="handler" val="ItemSkills" /> + <set name="handler" val="SoulShots" /> <set name="item_skill" val="2279-2" /> <set name="use_condition" val="{{uc_transmode_exclude;{tt_flying}}}" /> </item> Index: data/xml/items/1500-1599.xml =================================================================== --- data/xml/items/1500-1599.xml (revision 112) +++ data/xml/items/1500-1599.xml (working copy) @@ -265,7 +265,7 @@ <set name="reuse_delay" val="10000" /> <set name="is_stackable" val="true" /> <set name="is_oly_restricted" val="true" /> - <set name="handler" val="ItemSkills" /> + <set name="handler" val="SoulShots" /> <set name="item_skill" val="2037-1" /> <set name="use_condition" val="{{uc_transmode_exclude;{tt_flying}}}" /> <set name="shared_reuse_group" val="10" /> Index: data/xml/items/5500-5599.xml =================================================================== --- data/xml/items/5500-5599.xml (revision 112) +++ data/xml/items/5500-5599.xml (working copy) @@ -673,7 +673,7 @@ <set name="reuse_delay" val="500" /> <set name="is_stackable" val="true" /> <set name="is_oly_restricted" val="true" /> - <set name="handler" val="ItemSkills" /> + <set name="handler" val="SoulShots" /> <set name="item_skill" val="2166-2" /> </item> <item id="5593" type="EtcItem" name="SP Scroll: Low Grade"> Index: java/net/sf/l2j/gameserver/handler/itemhandlers/SoulShots.java =================================================================== --- java/net/sf/l2j/gameserver/handler/itemhandlers/SoulShots.java (revision 112) +++ java/net/sf/l2j/gameserver/handler/itemhandlers/SoulShots.java (working copy) @@ -14,18 +14,24 @@ */ package net.sf.l2j.gameserver.handler.itemhandlers; +import net.sf.l2j.gameserver.ThreadPoolManager; import net.sf.l2j.gameserver.handler.IItemHandler; import net.sf.l2j.gameserver.model.L2ItemInstance; import net.sf.l2j.gameserver.model.ShotType; import net.sf.l2j.gameserver.model.actor.L2Playable; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.network.SystemMessageId; +import net.sf.l2j.gameserver.network.serverpackets.ExAutoSoulShot; import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUse; import net.sf.l2j.gameserver.templates.item.L2Weapon; import net.sf.l2j.gameserver.util.Broadcast; public class SoulShots implements IItemHandler { + private static final int MANA_POT_CD = 2, + HEALING_POT_CD = 11, // DO NOT PUT LESS THAN 10 + CP_POT_CD = 2; + private static final int[] SKILL_IDS = { 2039, @@ -47,6 +53,108 @@ final L2Weapon weaponItem = activeChar.getActiveWeaponItem(); final int itemId = item.getItemId(); + if (itemId == 728 || itemId == 1539 || itemId == 5592) + { + switch (itemId) + { + case 728: // mana potion + { + if (activeChar.isAutoPot(728)) + { + activeChar.sendPacket(new ExAutoSoulShot(728, 0)); + activeChar.sendMessage("Deactivated auto mana potions."); + activeChar.setAutoPot(728, null, false); + } + else + { + if (activeChar.getInventory().getItemByItemId(728) != null) + { + if (activeChar.getInventory().getItemByItemId(728).getCount() > 1) + { + activeChar.sendPacket(new ExAutoSoulShot(728, 1)); + activeChar.sendMessage("Activated auto mana potions."); + activeChar.setAutoPot(728, ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoPot(728, activeChar), 1000, MANA_POT_CD*1000), true); + } + else + { + MagicSkillUse msu = new MagicSkillUse(activeChar, activeChar, 2279, 2, 0, 100); + activeChar.broadcastPacket(msu); + + ItemSkills is = new ItemSkills(); + is.useItem(activeChar, activeChar.getInventory().getItemByItemId(728), true); + } + } + } + + break; + } + case 1539: // greater healing potion + { + if (activeChar.isAutoPot(1539)) + { + activeChar.sendPacket(new ExAutoSoulShot(1539, 0)); + activeChar.sendMessage("Deactivated auto healing potions."); + activeChar.setAutoPot(1539, null, false); + } + else + { + if (activeChar.getInventory().getItemByItemId(1539) != null) + { + if (activeChar.getInventory().getItemByItemId(1539).getCount() > 1) + { + activeChar.sendPacket(new ExAutoSoulShot(1539, 1)); + activeChar.sendMessage("Activated auto healing potions."); + activeChar.setAutoPot(1539, ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoPot(1539, activeChar), 1000, HEALING_POT_CD*1000), true); + } + else + { + MagicSkillUse msu = new MagicSkillUse(activeChar, activeChar, 2037, 1, 0, 100); + activeChar.broadcastPacket(msu); + + ItemSkills is = new ItemSkills(); + is.useItem(activeChar, activeChar.getInventory().getItemByItemId(1539), true); + } + } + } + + break; + } + case 5592: // greater cp potion + { + if (activeChar.isAutoPot(5592)) + { + activeChar.sendPacket(new ExAutoSoulShot(5592, 0)); + activeChar.sendMessage("Deactivated auto cp potions."); + activeChar.setAutoPot(5592, null, false); + } + else + { + if (activeChar.getInventory().getItemByItemId(5592) != null) + { + if (activeChar.getInventory().getItemByItemId(5592).getCount() > 1) + { + activeChar.sendPacket(new ExAutoSoulShot(5592, 1)); + activeChar.sendMessage("Activated auto cp potions."); + activeChar.setAutoPot(5592, ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new AutoPot(5592, activeChar), 1000, CP_POT_CD*1000), true); + } + else + { + MagicSkillUse msu = new MagicSkillUse(activeChar, activeChar, 2166, 2, 0, 100); + activeChar.broadcastPacket(msu); + + ItemSkills is = new ItemSkills(); + is.useItem(activeChar, activeChar.getInventory().getItemByItemId(5592), true); + } + } + } + + break; + } + } + + return; + } + // Check if soulshot can be used if (weaponInst == null || weaponItem.getSoulShotCount() == 0) { @@ -87,4 +195,76 @@ activeChar.sendPacket(SystemMessageId.ENABLED_SOULSHOT); Broadcast.toSelfAndKnownPlayersInRadiusSq(activeChar, new MagicSkillUse(activeChar, activeChar, SKILL_IDS[grade], 1, 0, 0), 360000); } + + private class AutoPot implements Runnable + { + private int id; + private L2PcInstance activeChar; + + public AutoPot(int id, L2PcInstance activeChar) + { + this.id = id; + this.activeChar = activeChar; + } + + @Override + public void run() + { + if (activeChar.getInventory().getItemByItemId(id) == null) + { + activeChar.sendPacket(new ExAutoSoulShot(id, 0)); + activeChar.setAutoPot(id, null, false); + return; + } + + switch (id) + { + case 728: + { + if (activeChar.getCurrentMp() < 0.70*activeChar.getMaxMp()) + { + MagicSkillUse msu = new MagicSkillUse(activeChar, activeChar, 2279, 2, 0, 100); + activeChar.broadcastPacket(msu); + + ItemSkills is = new ItemSkills(); + is.useItem(activeChar, activeChar.getInventory().getItemByItemId(728), true); + } + + break; + } + case 1539: + { + if (activeChar.getCurrentHp() < 0.95*activeChar.getMaxHp()) + { + MagicSkillUse msu = new MagicSkillUse(activeChar, activeChar, 2037, 1, 0, 100); + activeChar.broadcastPacket(msu); + + ItemSkills is = new ItemSkills(); + is.useItem(activeChar, activeChar.getInventory().getItemByItemId(1539), true); + } + + break; + } + case 5592: + { + if (activeChar.getCurrentCp() < 0.95*activeChar.getMaxCp()) + { + MagicSkillUse msu = new MagicSkillUse(activeChar, activeChar, 2166, 2, 0, 100); + activeChar.broadcastPacket(msu); + + ItemSkills is = new ItemSkills(); + is.useItem(activeChar, activeChar.getInventory().getItemByItemId(5592), true); + } + + break; + } + } + + if (activeChar.getInventory().getItemByItemId(id) == null) + { + activeChar.sendPacket(new ExAutoSoulShot(id, 0)); + activeChar.setAutoPot(id, null, false); + } + } + } } \ No newline at end of file Index: java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java =================================================================== --- java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 112) +++ java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (working copy) @@ -251,6 +251,24 @@ */ public final class L2PcInstance extends L2Playable { + private Map<Integer, Future<?>> _autoPotTasks = new HashMap<>(); + + public boolean isAutoPot(int id) + { + return _autoPotTasks.keySet().contains(id); + } + + public void setAutoPot(int id, Future<?> task, boolean add) + { + if (add) + _autoPotTasks.put(id, task); + else + { + _autoPotTasks.get(id).cancel(true); + _autoPotTasks.remove(id); + } + } + private BuffShop buffShop = null; public void setBuffShop(BuffShop val) @@ -4321,6 +4339,22 @@ teleToLocation(184351, 20318, -3174, 0); } + if (isAutoPot(728)) + { + sendPacket(new ExAutoSoulShot(728, 0)); + setAutoPot(728, null, false); + } + if (isAutoPot(1539)) + { + sendPacket(new ExAutoSoulShot(1539, 0)); + setAutoPot(1539, null, false); + } + if (isAutoPot(5592)) + { + sendPacket(new ExAutoSoulShot(5592, 0)); + setAutoPot(5592, null, false); + } + return true; } [/hide] Credits: Devlin
  3. Hello members of LordCraft, here is a code for time load like L2OFF for aCis. Code: [hide] ### Eclipse Workspace Patch 1.0 Index: java/net/sf/l2j/Config.java =================================================================== --- java/net/sf/l2j/Config.java (revision 1) +++ java/net/sf/l2j/Config.java (working copy) @@ -650,6 +650,8 @@ public static int ZONE_TOWN; public static boolean DISABLE_TUTORIAL; + public static long NPC_SERVER_DELAY; + // -------------------------------------------------- // Those "hidden" settings haven't configs to avoid admins to **** their server // You still can experiment changing values here. But don't say I didn't warn you. @@ -1258,6 +1260,8 @@ ZONE_TOWN = server.getProperty("ZoneTown", 0); SERVER_NEWS = server.getProperty("ShowServerNews", false); DISABLE_TUTORIAL = server.getProperty("DisableTutorial", false); + + NPC_SERVER_DELAY = npcs.getProperty("npcServerDelay", 1); } else if (Server.serverMode == Server.MODE_LOGINSERVER) { Index: java/net/sf/l2j/gameserver/datatables/SpawnTable.java =================================================================== --- java/net/sf/l2j/gameserver/datatables/SpawnTable.java (revision 1) +++ java/net/sf/l2j/gameserver/datatables/SpawnTable.java (working copy) @@ -23,6 +23,7 @@ import net.sf.l2j.Config; import net.sf.l2j.L2DatabaseFactory; +import net.sf.l2j.gameserver.ThreadPoolManager; import net.sf.l2j.gameserver.instancemanager.DayNightSpawnManager; import net.sf.l2j.gameserver.model.L2Spawn; import net.sf.l2j.gameserver.model.actor.template.NpcTemplate; @@ -44,7 +45,7 @@ protected SpawnTable() { if (!Config.ALT_DEV_NO_SPAWNS) - fillSpawnTable(); + ThreadPoolManager.getInstance().scheduleGeneral(new NPCServerTask(), Config.NPC_SERVER_DELAY * 1000); } public Set<L2Spawn> getSpawnTable() @@ -188,6 +189,17 @@ fillSpawnTable(); } + class NPCServerTask implements Runnable + { + @SuppressWarnings("synthetic-access") + @Override + public void run() + { + fillSpawnTable(); + _log.info("NPC Server: Task initialization..."); + } + } + private static class SingletonHolder { protected static final SpawnTable _instance = new SpawnTable(); +++ config/server.properties (working copy) +# Enable Npc Server Delay +npcServerDelay = 1 [/hide] Credits: masone
  4. Hello members of LordCraft, here is a code for Name Change. How it works? An item that changes the name of the character. Don't worry, we made checks on retail conditions, as 16-character limit, ... Remeber, you have to set an item to be the handler of Name Change. You can do it by adding <set name="handler" val="NameChange" /> on XML of the item. Image Preview: Core part: [hide] Index: java/net/sf/l2j/gameserver/handler/ItemHandler.java =================================================================== --- java/net/sf/l2j/gameserver/handler/ItemHandler.java (revision 21) +++ java/net/sf/l2j/gameserver/handler/ItemHandler.java (working copy) @@ -31,6 +31,7 @@ import net.sf.l2j.gameserver.handler.itemhandlers.Keys; import net.sf.l2j.gameserver.handler.itemhandlers.Maps; import net.sf.l2j.gameserver.handler.itemhandlers.MercTicket; +import net.sf.l2j.gameserver.handler.itemhandlers.NameChange; import net.sf.l2j.gameserver.handler.itemhandlers.PaganKeys; import net.sf.l2j.gameserver.handler.itemhandlers.PetFood; import net.sf.l2j.gameserver.handler.itemhandlers.Recipes; @@ -70,6 +71,7 @@ registerItemHandler(new Keys()); registerItemHandler(new Maps()); registerItemHandler(new MercTicket()); + registerItemHandler(new NameChange()); registerItemHandler(new PaganKeys()); registerItemHandler(new PetFood()); registerItemHandler(new Recipes()); Index: java/net/sf/l2j/gameserver/handler/itemhandlers/NameChange.java =================================================================== --- java/net/sf/l2j/gameserver/handler/itemhandlers/NameChange.java (revision 0) +++ java/net/sf/l2j/gameserver/handler/itemhandlers/NameChange.java (working copy) @@ -0,0 +1,43 @@ +/* + * This program is free software: you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation, either version 3 of the License, or (at your option) any later + * version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see <http://www.gnu.org/licenses/>. + */ +package net.sf.l2j.gameserver.handler.itemhandlers; + +import net.sf.l2j.gameserver.handler.IItemHandler; +import net.sf.l2j.gameserver.model.actor.L2Playable; +import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; +import net.sf.l2j.gameserver.model.item.instance.ItemInstance; +import net.sf.l2j.gameserver.network.serverpackets.ActionFailed; +import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage; + +/** + * @author rapfersan92 + */ +public class NameChange implements IItemHandler +{ + @Override + public void useItem(L2Playable playable, ItemInstance item, boolean forceUse) + { + if (!(playable instanceof L2PcInstance)) + return; + + final L2PcInstance activeChar = (L2PcInstance) playable; + activeChar.setNameChangeItemId(item.getItemId()); + + final NpcHtmlMessage html = new NpcHtmlMessage(0); + html.setFile("data/html/mods/NameChange.htm"); + activeChar.sendPacket(html); + activeChar.sendPacket(ActionFailed.STATIC_PACKET); + } +} \ No newline at end of file Index: java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java =================================================================== --- java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (revision 21) +++ java/net/sf/l2j/gameserver/model/actor/instance/L2PcInstance.java (working copy) @@ -10705,4 +10705,16 @@ break; } } + + private int _nameChangeItemId = 0; + + public int getNameChangeItemId() + { + return _nameChangeItemId; + } + + public void setNameChangeItemId(int itemId) + { + _nameChangeItemId = itemId; + } } \ No newline at end of file Index: java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java =================================================================== --- java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java (revision 21) +++ java/net/sf/l2j/gameserver/network/clientpackets/RequestBypassToServer.java (working copy) @@ -18,8 +18,10 @@ import java.util.logging.Level; import net.sf.l2j.Config; +import net.sf.l2j.commons.lang.StringUtil; import net.sf.l2j.gameserver.communitybbs.CommunityBoard; import net.sf.l2j.gameserver.datatables.AdminCommandAccessRights; +import net.sf.l2j.gameserver.datatables.CharNameTable; import net.sf.l2j.gameserver.handler.AdminCommandHandler; import net.sf.l2j.gameserver.handler.IAdminCommandHandler; import net.sf.l2j.gameserver.model.L2Object; @@ -31,7 +33,9 @@ import net.sf.l2j.gameserver.model.olympiad.OlympiadManager; import net.sf.l2j.gameserver.network.SystemMessageId; import net.sf.l2j.gameserver.network.serverpackets.ActionFailed; +import net.sf.l2j.gameserver.network.serverpackets.ExShowScreenMessage; import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage; +import net.sf.l2j.gameserver.network.serverpackets.PlaySound; import net.sf.l2j.gameserver.util.FloodProtectors; import net.sf.l2j.gameserver.util.FloodProtectors.Action; import net.sf.l2j.gameserver.util.GMAudit; @@ -181,6 +185,46 @@ final int arenaId = Integer.parseInt(_command.substring(12).trim()); activeChar.enterOlympiadObserverMode(arenaId); } + else if (_command.startsWith("name_change")) + { + try + { + String name = _command.substring(12); + if (name.length() > 16) + { + activeChar.sendMessage("The chosen name cannot exceed 16 characters in length."); + return; + } + + if (!StringUtil.isValidPlayerName(name)) + { + activeChar.sendMessage("The chosen name does not fit with the regex pattern."); + return; + } + + synchronized (CharNameTable.getInstance()) + { + if (CharNameTable.doesCharNameExist(name)) + { + activeChar.sendMessage("The chosen name already exists."); + return; + } + } + + if (activeChar.destroyItemByItemId("Name Change", activeChar.getNameChangeItemId(), 1, null, true)) + { + activeChar.setName(name); + activeChar.sendPacket(new ExShowScreenMessage("Congratulations. Your name has been changed.", 10000)); + activeChar.sendPacket(new PlaySound("ItemSound.quest_finish")); + activeChar.broadcastUserInfo(); + activeChar.store(); + } + } + catch (Exception e) + { + activeChar.sendMessage("Fill out the field correctly."); + } + } } catch (Exception e) { [/hide] Datapack Part: [hide] Index: data/html/mods/NameChange.htm =================================================================== --- data/html/mods/NameChange.htm (revision 0) +++ data/html/mods/NameChange.htm (working copy) @@ -0,0 +1,26 @@ +<html> + <body> + <center> + <table width="256"> + <tr><td width="256" align="center">Name Change</td></tr> + </table> + <br> + <table width="256"> + <tr><td width="256" align="left">The name change service allows you to change the name of your character as it appears in-game.</td></tr> + </table> + <br> + <table width="160" cellspacing="2"> + <tr><td width="160" align="center">Name</td></tr> + <tr><td width="160" align="center"><edit var="name" width="160" height="12"></td> + </table> + <br> + <table width="95" cellspacing="2"> + <tr><td width="95" align="center"><button action="bypass -h name_change $name" value="Change!" width="95" height="21" back="bigbutton_over" fore="bigbutton"></td></tr> + </table> + <br> + <table width="256"> + <tr><td width="256" align="center">L2jBrasil</td></tr> + </table> + </center> + </body> +</html> \ No newline at end of file [/hide] Credits: Kraker
  5. Chronicle 4 (Scions of Destiny) L2J Sources: L2JLisvus Sources -> Download Forum of L2JLisvus Porject -> Forum SVN of L2JLisvus Project -> SVN I do not know to say much for this Project, but as I can see from the bug report, have some bugs/exploits fixed. Also, have many custom mods inside. You can check first the configs of this project. -> configs Chronicle 6 (Interlude) L2J Sources: L2J aCis Sources -> Download Forum of aCis Project -> Forum SVN of aCis Project -> SVN (The newest free sources) L2J aCis is a clean and stable private project. Tryskell and his team have throw so much work on it. Many of bug/exploits are fixed. There are not custom **** inside. It is the only Interlude project who worth to work on it. L2JFrozen Sources -> Download Forum of L2JFrozen Project -> Forum SVN of L2J Frozen Project -> SVN Timeline of L2JFrozen Project -> Timeline L2J Frozen is a open-source Project. Inside you will find many custom mods. It is good for your fledgling steps on L2J Developent. L2JHellas Sources -> Download SVN of L2JHellas Project -> SVN Timeline of L2JHellas Project -> Timeline Team of L2JHellas not work anymore on it.. You will find inside many interesting custom mods. The Chaotic Throne: Freya (The 2nd Throne) L2J Sources: L2JServer Sources -> Download Forum of L2JServer Project -> Forum Git URL of L2JServer Project -> Git URLof Core | Git URL of Datapack Developers of L2JServer has moved, on newest client "Ertheia". So, it is a closed Project. The Chaotic Throne: H5 (High-Five) L2J Sources: L2JServer Sources -> Download Forum of L2JServer Project -> Forum Git URL of L2JServer Project -> Git URLof Core | Git URL of Datapack Epic Tale of Aden Ertheia (Dimensional Strangers) L2J Sources: L2J Server Ertheia Sources -> Download Forum of L2JServer Project -> Forum Git URL of L2JServer Project -> Git URLof Core | Git URL of Datapack Ertheia it is the newest client of Lineage II. Everything you want to knοw for this client, you can read this PDF. Bellow you can find some important links. Please give a read and on this part of topic. Will help you on your steps. How I can do compile from SVN? -> Watch this videos How I can do compile from Git? -> Take a look on this guide Where I can find Eclipse? -> Download from here Where I can find JDK? -> Download JDK 1.7 | Download JDK 1.8 Q. How I can throw the Sources on my eclipse? A. Well, you have to go at Eclipse-->File->Import->General and press on Existing projects into Workspace. From there, you can find the location of the sources. Credits for the share: 'Baggos'
  6. Setup Eclipse & SVN Well, in this tutorial I will explain how to setup Eclipse to work with aCis project. As you perhaps know, the project is located online on a Assembla server. You, as owner, have to take a copy of the project on your computer in order to work on it and make it custom. Some vocabulary before : - IDE* : Integrated Development Environment. Basically, your working environnement. - Subversion : A software used to version a project, allowing to make revision. Eclipse uses his own Subversion plugin, named Subclipse. - Checkout : the act to download sources (at last revision if possible...) from the online repository. *Some others IDEs are existing, but this tutorial will only cover Eclipse setup. 1. Download and extract Eclipse ! First of all, you must download Eclipse software on its website. Eclipse IDE for Java EE Developers or Eclipse IDE for Java Developers are both good choices. The archive have to be directly extracted, generally on the root of your drive (C:/, D:/) 2. First launch of Eclipse At first launch, Eclipse will ask you where your workspace will be located. Try to use a safe partition or another drive, like that all your work will be secured. 3. Installation of Subclipse Now you must install the plugin named subclipse in order to checkout the project : in the main bar, select Help->Install New Software. From the new window that will popup, press Add site... and write the following link: http://subclipse.tigris.org/update_1.10.x Eclipse will ask you if you agree about the plugin rules, accept, click on Install and in the end click on the Finish button. 4. Call the SVN Repositories window Eclipse will perhaps ask to reload, accept and wait. We have to call a window, which will be used to checkout project, and which comes with the installation of Subclispe. Click at the bar Window->Show View->Other... In the new window, select the little SVN folder type, then select SVN Repositories and click OK. 5. Write the SVN URL in the SVN Repositories window On the new tab, click at SVN Repositories, then right click anywhere inside and go to New->Repository Location.... Using the following url : http://xp-dev.com/svn/aCis_public/ you will link yourself to the project. Click Finish. 6. Checkout ! Last but not least, you must check out datapack and gameserver with the same way. Select the new location, right click on the SVN link, select Checkout... and click in the new window Finish. Wait Eclipse download the whole project in order to work on it, depending of your connection it can be 2-10 minutes. 7. Configure compiler path. Your eclipse will try to search the compiler in the wrong direction if you had an old version of JRE installed. You have to change this direction, following those simple instructions : - Window > Preferences. A window will popup. - Java tab > Installed JREs. Push "Search..." and give yourself the good path. It mustn't be JRE, but jdk. Compilation of aCis project using Eclipse In this short tutorial, I will explain how to compile aCis project using Eclipse. Before starting compiling, you must setup eclipse & svn. 1. Checkout any revision & create java's path ! As you have clicked to datapack (or gameserver) checkout button, a window poped up. You can checkout any version writing an existing revision number instead the xx on my screen. If you check Check out HEAD Revision, it will automatically checkout the last revision. Others options will be grey. Then, simply click on Finish. 2. Compile aCis project! When projects' checkouts (gameserver/datapack) are over, you will have a local copy of aCis' files. Congratulations, you are ready to compile them. On the image, we have only checkouted datapack sources. This is an exemple, normally you should have 2 distinct projects. You need to compile each project. Click on the little + icon from datapack (once again, it could be gameserver, datapack is taken as exemple). Right click at build.xml Choose Run as -> 1 Ant Build The compilation should normally begin. It will take some seconds / minutes depending of your own computer performances. At the end of any compilation you should have Buildfile: C:\workspace\aCis_datapack\build.xml init: [mkdir] Created dir: C:\workspace\aCis_datapack\build\dist [mkdir] Created dir: C:\workspace\aCis_datapack\build\dist\gameserver [mkdir] Created dir: C:\workspace\aCis_datapack\build\dist\login version: [echo] aCis datapack revision: 170 export: [sync] Copying 3949 files to C:\workspace\aCis_datapack\build\dist\gameserver\data [sync] Copying 84 files to C:\workspace\aCis_datapack\build\dist\sql [sync] Copying 4 files to C:\workspace\aCis_datapack\build\dist\tools [sync] Copying 1 file to C:\workspace\aCis_datapack\build\dist\login dist: BUILD SUCCESSFUL Total time: 46 seconds From the moment you got BUILD SUCCESFULL, it means compilation succeeded. You have to do same actions for gameserver project. 3. Find compiled files on your drive ! The path fully depends of where you put your workspace. Don't take those informations at first degree. As my workspace is setup in C:/, let's go at C:\workspace\aCis_datapack\build to see what new files / folders have been created from compilation. For gameserver project, the location is C:\workspace\aCis_gameserver\build\dist. As you have build/compile datapack & gameserver, you should have also create a folder with name(for ex.)MyServer at C: and copy paste the folders inside there. So now at MyServer folder you should have folders: gameserver, login, sql, tools. Installing aCis INTRODUCTION Well, don't laugh, but some people asked for it. You have to know this tutorial is useful at any case, from L2J IL to Freya, using my pack or not. Important things : In this tutorial, some things aren't essential (shortcuts, etc), but they're presented to make your life easier & reduce the installation / upgrade time. We use 2 different locations : the sources location, which got compiled version and sources, and the server installation location, which got your server files organized. It's IMPORTANT TO DON'T USE SAME PLACE FOR BOTH USES. Using your build location as server installation will result in a big mess. You're warned. So be clever and simply create a new folder. I personally use a folder Sources and another named Servers. My windows is in French, just use common sense in order to find good paths... So, you compiled both gameserver and datapack. How to install the crap then ? DATAPACK INSTALLATION Okay, as you have all necessary files in one folder, now you can configure them and install. You have to create your database first in navicat / phpMyAdmin. Continuing this tutorial without doing it will result in a fail at database installation. We will first install the database, so go on tools folder, right click on database_installer.bat and click on Modify option. You have to edit this square with your own informations. REM ############################################ REM ## You can change here your own DB params ## REM ############################################ REM MYSQL BIN PATH set mysqlBinPath=C:\Program Files\MySQL\MySQL Server 5.5\bin REM LOGINSERVER set lsuser=root set lspass=KEEP_EMPTY_IF_NO_PASSWORD set lsdb=acis set lshost=localhost REM GAMESERVER set gsuser=root set gspass=KEEP_EMPTY_IF_NO_PASSWORD set gsdb=acis set gshost=localhost REM ############################################ Don't forget to save modifications, then run database_installer.bat double clicking on it. For a full install, just type f and type y anew to confirm you want to delete all characters table. Wait it install tables, than verify (who knowns, you are perhaps the unlucky type) if the database is installed. After you verified database is populated, move from tools folder to login. Open config folder, then edit loginserver.properties #============================================================= # Database informations #============================================================= URL = jdbc:mysql://localhost/acis #URL = jdbc:hsqldb:hsql://localhost/acis #URL = jdbc:sqlserver://localhost/database=acis/user=sa/password= Login = root Password = KEEP_EMPTY_IF_NO_PASSWORD The same you have to do with gameserver.properties located inside gameserver/config folder. As you have set correct database path, now you can register your gameserver / create hexid file. Go to login folder and run RegisterGameServer.bat When the window pops up, type 1 and press enter. If you (previously) correctly configured the db path, the result should be following Now, select the hexid(server 1) and rename it to hexid. Cut the file and paste it inside gameserver/config folder. And that's it, you have successfully configured your server files. Now you can launch the server (startLoginServer.bat and startGameServer.bat). Updating server If you made java developement like adding customs etc, you have to use Team Synchronize from Eclipse to keep your customs but refresh code. If you "only" talk of updating your server from revision xxx to revision xxx+1, you have first to checkout/synchronize latest version, then compile, then : - in near 90% of case, pick the l2jserver.jar and copy/paste it in the libs folder of your server. It is needed if there was core additions. In some very rare cases, you will have to update the loginserver l2jserver lib too, but in 95% of time it's not needed. - add DP (can be HTMs added, drop/update of a SQL table for another with better content, and such). Use the timeline to see what files have been changed, it's useful for DP. - configs file are rarely updated, but sometimes they are. Like the addition of floodProtector. You can keep old configs in server.properties or delete them at hand, but you have to add the new .properties in order you want to change values. By default it will use values written in core so even if you forget the file, that works, but you can't configure it. Tutorial Created by aCis team and Tryskell (Owner of aCis Project). You can find this topic on their Official Forum as well by clicking HERE.
  7. Hello members of LordCraft, today i'm gonna share with you L2J-Mobius Project. Original Post from Mobius (Project Owner): L2J Mobius is the best open source server that exists supporting the latest Lineage 2 client. It is based on l2jserver sources, with many code improvements and simplifications that follow retail logic or simple common sence. There are also many core changes made for supporting retail GoD+ features. It personaly took me several months fixing game breaking bugs that existed on original l2j sources, tested and reported by players on live servers. Also many basic custom features implemented to the sources, such as premium system, custom community board and player factions. Most NPCs are parsed from online database sites, or made by hand. All item data are updated from client info, making most items usable with retail stats. The only things that are under development are missing scripts and GoD+ skills, from which more than 80% are already done based on retail information. These two things make the server unusable for live servers, unless you don't enable 4rth class professions. Visit our forum to download, chat or get more information. http://l2jmobius.com/
  8. Roar-Custom x5000 Basic Features L2 Roar Custom is A PvP Server, and there fore has come characteristics,such as Rates,NPC's,areas and drops modified and differentiated. These information are availableHere : Basic Rates Experience (EXP) x5000 Skill points (SP) x5000 Adena x5000 Enchants Safe Enchant:3 Max Enchant : +10 0 with Crystal +16 Normal Scroll chance:70 Blessed Scroll chance:100 Crystal Scroll from +10 to +16:80 Top Grade Life Stone :20 Special Items Custom Tatto Dynasty Weapons ONLY Weapons Basic Configurations Server, and Forum time GMT +2 Buffs, Dances and songs Duration 2h Buff Slots 99 Max.Clients per DC : 4 Anti-bot (LAMEGUARD + Report System: Geodata and Pathnodes: Sub-Class Max.level 80 Class Master: Off-line Shop Mode: Password Changer: Auction System: Casino System: Wedding System: More Information about Server Commadns .online .menu .events, Sieges,Full Features, Grand Boss Respawns, Instances Requirements can be found in game through! Server Website: http://l2roar.eu/ Server Forum: http://l2roar.eu/forum/ Server FB Page: https://www.facebook.com/La2Roar
  9. Hello members of LordCraft, here is a list with Free L2J Interlude Projects. L2JFrozen Website: http://www.l2jfrozen.com/ Forum: http://www.l2jfrozen.com/forum/ SVN: http://subversion.assembla.com/svn/L2jFrozenInterlude/trunk/ Timeline: https://www.assembla.com/code/L2jFrozenInterlude/subversion/changesets aCis Website/Forum: http://acis.i-live.eu/ SVN: https://xp-dev.com/svn/aCis_community/ Changesets: http://acis.i-live.eu/index.php?topic=30.0
  10. Forum: http://www.united-extreme.com/l2jeventengine/forum/ Project: https://github.com/u3games/L2J_EventEngine Chat: https://gitter.im/u3games/L2J_EventEngine More info coming soon... Credits goes to: u3games
×
×
  • Create New...