Jump to content

Search the Community

Showing results for tags 'NPC'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Categories

  • Lineage II Server Packs [Java]
  • Lineage II Server Packs [PTS]
  • Lineage II Server Scripts
  • Lineage II Client Scripts
  • Lineage II Items & Chars
  • Website Templates

Forums

  • General Zone
    • Announcements and News
    • Newbies Introduce Urself
    • Maxcheaters Competitions & Events
    • Votes/Polls Area
    • Report Section
    • Downloads Section
  • Lineage II General Section
    • General Discussion [English]
    • Request Support [English]
  • Lineage II Hacks,Cheats and Bots
    • Hacks & Cheats [English]
    • Request Hacks & Cheats [English]
    • Botting [English]
    • Request Botting [English]
  • Lineage II Private Servers
    • [High Five] L2Redmoon.EU x12 launching November 2nd
    • Private Servers
    • Buy Advertising Link #2
    • [Previews] L2 Private Servers
    • Clans and Alliances
  • Lineage II Marketplace
    • Marketplace [Items & Chars]
    • Marketplace [L2Packs & Files]
    • Marketplace [Powerlvl & Support]
  • Lineage II OFF Server Development
    • Server Development Discussion [L2OFF]
    • Request Server Development Help [L2OFF]
    • Server Shares & Files [L2OFF]
  • Lineage II Java Server Development
    • Server Development Discussion [L2J]
    • Request Server Development Help [L2J]
    • Server Shares & Files [L2J]
    • Private Projects [L2J]
  • Lineage II Client Development
    • Client Development Discussion
  • MMO Games
    • League of Legends
    • World Of Warcraft Area
    • Other Multiplayer Games
  • General Section
    • General Marketplace
    • Consoles/Mobiles/PDA Gaming Zone
    • Webmasters Zone
    • Hacking/Coding Zone
  • Graphics/GFX Zone
    • Graphics/GFX General Discussion
    • Graphics/GFX Showcase
    • Graphics/GFX Resources/Tools
  • VIP/SVIP/Donators Zone
    • VIPs/Donators Discussion
    • VIPs Lineage II
    • VIPs [GFX] Zone
    • VIPs Download Area
  • MaxCheaters Corner
    • Tech/World News
    • Off-Topics
    • Spam Topics
  • TEST's Topics
  • L2Classic Club's Just trying this thing out
  • Lineage 2 Revolution Club's Discussions
  • Lineage 2 Revolution Club's Tutorials
  • Lineage 2 Revolution Club's Request Help

Product Groups

  • Paid Subscriptions
  • Advertisements

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

Found 17 results

  1. **Not Mine** Fafurion Grand Boss for Interlude (can be adapted for other chronicles aswell) System files only. Found on another forum Credits: ★BlackStar★ Link: [Hidden Content]
  2. ### Eclipse Workspace Patch 1.0 #P L2JHellasC Index: java/com/l2jhellas/gameserver/model/actor/instance/L2NpcInstance.java =================================================================== --- java/com/l2jhellas/gameserver/model/actor/instance/L2NpcInstance.java (revision 496) +++ java/com/l2jhellas/gameserver/model/actor/instance/L2NpcInstance.java (working copy) @@ -17,6 +17,7 @@ import com.l2jhellas.Config; import com.l2jhellas.gameserver.datatables.xml.SkillTreeData; import com.l2jhellas.gameserver.model.L2EnchantSkillLearn; +import com.l2jhellas.gameserver.model.L2ItemInstance; import com.l2jhellas.gameserver.model.L2Skill; import com.l2jhellas.gameserver.model.L2SkillLearn; import com.l2jhellas.gameserver.model.actor.L2Npc; @@ -43,6 +44,18 @@ @Override public void onAction(L2PcInstance player) { + if (getNpcId() == L2SkillSellerInstance.NPC_ID) + { + L2ItemInstance i = player.getInventory().getItemByItemId(L2SkillSellerInstance.ITEM_ID); + + if (i == null || i.getCount() < L2SkillSellerInstance.ITEM_COUNT) + { + player.sendMessage("You need " + L2SkillSellerInstance.ITEM_COUNT + " Gold Bars to use this Npc."); + player.sendPacket(new ActionFailed()); + return; + } + } + player.setLastFolkNPC(this); super.onAction(player); } Index: java/com/l2jhellas/gameserver/model/actor/instance/L2SkillSellerInstance.java =================================================================== --- java/com/l2jhellas/gameserver/model/actor/instance/L2SkillSellerInstance.java (revision 0) +++ java/com/l2jhellas/gameserver/model/actor/instance/L2SkillSellerInstance.java (working copy) @@ -0,0 +1,57 @@ +package com.l2jhellas.gameserver.model.actor.instance; + +import com.l2jhellas.gameserver.model.L2Skill; +import com.l2jhellas.gameserver.network.serverpackets.NpcHtmlMessage; +import com.l2jhellas.gameserver.skills.SkillTable; +import com.l2jhellas.gameserver.templates.L2NpcTemplate; + +public class L2SkillSellerInstance extends L2NpcInstance +{ + + public final static int NPC_ID = 24246; + public final static int ITEM_ID = 2807; + public final static int ITEM_COUNT = 5; + private final int[] SKILL_IDS = + { + 3134, 3132, 3124, 3125, 3133, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3134 + }; + + public L2SkillSellerInstance(int objectId, L2NpcTemplate template) + { + super(objectId, template); + } + + @Override + public void showChatWindow(L2PcInstance j, int val) + { + if (j == null) + return; + + StringBuilder t = new StringBuilder(); + NpcHtmlMessage n = new NpcHtmlMessage(getObjectId()); + sendHtml(t, n, j); + } + + private void sendHtml(StringBuilder t, NpcHtmlMessage n, L2PcInstance j) + { + t.append("<html><head><title>"); + t.append("L2Skill Seller"); + t.append("</title</head>"); + t.append("<body><center>"); + t.append("<br>Hello , do you want some special skills?"); + t.append("<br>Choose whatever you want but don't forget"); + t.append("<br>you need 5 Gold Bars for each one"); + for (int i : SKILL_IDS) + { + L2Skill s = SkillTable.getInstance().getInfo(i, 10); + String name = ""; + if (s != null) + name = s.getName(); + if (name != "") + t.append("<center><button value=\"" + name + " LvL:10\" action=\"bypass -h skill" + i + "\" width=204 height=20 back=\"L2UI_ct1.button_df\" fore=\"L2UI_ct1.button_df\"><br>"); + } + t.append("</center></body></html>"); + n.setHtml(t.toString()); + j.sendPacket(n); + } +} \ No newline at end of file Index: java/com/l2jhellas/gameserver/network/clientpackets/RequestBypassToServer.java =================================================================== --- java/com/l2jhellas/gameserver/network/clientpackets/RequestBypassToServer.java (revision 496) +++ java/com/l2jhellas/gameserver/network/clientpackets/RequestBypassToServer.java (working copy) @@ -29,7 +29,9 @@ import com.l2jhellas.gameserver.handler.AdminCommandHandler; import com.l2jhellas.gameserver.handler.IAdminCommandHandler; import com.l2jhellas.gameserver.model.L2CharPosition; +import com.l2jhellas.gameserver.model.L2ItemInstance; import com.l2jhellas.gameserver.model.L2Object; +import com.l2jhellas.gameserver.model.L2Skill; import com.l2jhellas.gameserver.model.L2World; import com.l2jhellas.gameserver.model.actor.L2Npc; import com.l2jhellas.gameserver.model.actor.instance.L2AccountManagerInstance; @@ -36,6 +38,7 @@ import com.l2jhellas.gameserver.model.actor.instance.L2ClassMasterInstance; import com.l2jhellas.gameserver.model.actor.instance.L2OlympiadManagerInstance; import com.l2jhellas.gameserver.model.actor.instance.L2PcInstance; +import com.l2jhellas.gameserver.model.actor.instance.L2SkillSellerInstance; import com.l2jhellas.gameserver.model.entity.Hero; import com.l2jhellas.gameserver.model.entity.L2Event; import com.l2jhellas.gameserver.model.entity.engines.CTF; @@ -48,6 +51,7 @@ import com.l2jhellas.gameserver.network.SystemMessageId; import com.l2jhellas.gameserver.network.serverpackets.ActionFailed; import com.l2jhellas.gameserver.network.serverpackets.NpcHtmlMessage; +import com.l2jhellas.gameserver.skills.SkillTable; import com.l2jhellas.logs.GMAudit; import com.l2jhellas.util.database.L2DatabaseFactory; @@ -513,6 +517,36 @@ Balancer.sendBalanceWindow(classId, activeChar); } + // L2SkillSeller + else if (_command.startsWith("skill")) + { + String b = _command.substring(5); + int id = 0; + try + { + id = Integer.parseInt(b); + } + catch (Exception e) + { + e.printStackTrace(); + } + + if (id == 0) + return; + + L2Skill s = SkillTable.getInstance().getInfo(id, 10); + L2ItemInstance i = activeChar.getInventory().getItemByItemId(L2SkillSellerInstance.ITEM_ID); + + if (i == null || i.getCount() < L2SkillSellerInstance.ITEM_COUNT) + { + activeChar.sendMessage("You don't have enought gold bars"); + return; + } + + activeChar.getInventory().destroyItemByItemId("", L2SkillSellerInstance.ITEM_ID, L2SkillSellerInstance.ITEM_COUNT, activeChar, null); + activeChar.sendMessage("You rewarded successfully with " + s.getName() + " Lvl:10, 5 Gold Bar dissapeared"); + activeChar.addSkill(s, false); + } // Rank PvP System by Masterio -------------------------------------------- else if(_command.startsWith("RPS.")) { credits rizlaaa
  3. Fast Preview: Download: [Hidden Content] Credits: TheVainglorious
  4. http://www.mediafire.com/file/lfngf7lxujvkq9u/TearsNPCS2.rar ID weapons:9890 for the NPC: Naiad9891 for the NPC: Castalia and Pythia9892 for the NPC: Guardian WaterspiritThe weapons are dual, when they create the NPC in the xml (acis) or sql (frozen) they must put the same id in rhand and lhand
  5. simplest custom buffer - easy in use, intuitive window. magical support has been divided onto five independent groups where users can buffup themselves manually or automatically via two pre-definied sets (mage, fighter). also there's an additional option to bestow heroic valor effect in exchange for any item (in this case: gold bar). i recommend to combine this feature with vote reward system :) preview: http://s9.postimg.org/czbrb670v/buffer.gif create new instance: java/gameserver/model/actor/instance/L2BufferInstance.java /* * 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 2, 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, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA * 02111-1307, USA. * * http://www.gnu.org/copyleft/gpl.html */ package net.sf.l2j.gameserver.model.actor.instance; import java.util.StringTokenizer; import net.sf.l2j.commons.random.Rnd; import net.sf.l2j.gameserver.ai.CtrlIntention; import net.sf.l2j.gameserver.datatables.SkillTable; import net.sf.l2j.gameserver.network.serverpackets.ActionFailed; import net.sf.l2j.gameserver.network.serverpackets.MyTargetSelected; import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage; import net.sf.l2j.gameserver.network.serverpackets.SocialAction; import net.sf.l2j.gameserver.network.serverpackets.ValidateLocation; import net.sf.l2j.gameserver.network.serverpackets.MagicSkillUse; import net.sf.l2j.gameserver.model.actor.template.NpcTemplate; /** * * @author Caparso */ public final class L2BufferInstance extends L2NpcInstance { int fighterbuffs [] = {1397,1087,1044,1243,1304,1259,1204,1068,1388,1040,1036,1035,1048,1045,1077,1242,1086,1043,1240,1268,1032,1033,1191,1189,1182,1354,1353,1352,1392,1393,4699,4700,1416,1363,277,307,309,311,310,272,271,275,274,264,269,265,270,267,268,266,364,349,308,306,304}; int magebuffs [] = {1397,1087,1044,1243,1304,1259,1204,1040,1389,1036,1035,1048,1045,1085,1078,1303,1059,1032,1033,1191,1189,1182,1353,1354,1352,1392,1393,4703,1416,1363,273,276,365,307,309,311,264,265,270,267,268,266,363,349,308,306,304}; int voterewards [] = {1374}; public L2BufferInstance(int objectId, NpcTemplate template) { super(objectId, template); } @Override public void onBypassFeedback(L2PcInstance player, String command) { StringTokenizer st = new StringTokenizer(command, " "); String actualCommand = st.nextToken(); int buffid = 0; int bufflevel = 1; String nextWindow = null; if (st.countTokens() == 3) { buffid = Integer.valueOf(st.nextToken()); bufflevel = Integer.valueOf(st.nextToken()); nextWindow = st.nextToken(); } else if (st.countTokens() == 1) { buffid = Integer.valueOf(st.nextToken()); } if (actualCommand.equalsIgnoreCase("getbuff")) { if (buffid != 0) { MagicSkillUse mgc = new MagicSkillUse(this, player, buffid, bufflevel, -1, 0); SkillTable.getInstance().getInfo(buffid, bufflevel).getEffects(this, player); showMessageWindow(player); player.broadcastPacket(mgc); showChatWindow(player, nextWindow); } } else if (actualCommand.equalsIgnoreCase("fighterset")) { for (int id: fighterbuffs) { SkillTable.getInstance().getInfo(id, SkillTable.getInstance().getMaxLevel(id)).getEffects(this, player); } showChatWindow(player); } else if (actualCommand.equalsIgnoreCase("mageset")) { for (int id: magebuffs) { SkillTable.getInstance().getInfo(id, SkillTable.getInstance().getMaxLevel(id)).getEffects(this, player); } showChatWindow(player); } else if (actualCommand.equalsIgnoreCase("rewards")) { if (player.destroyItemByItemId("voterewards",10600,1, player.getCurrentFolkNPC(), true)) { for (int id: voterewards) { SkillTable.getInstance().getInfo(id, SkillTable.getInstance().getMaxLevel(id)).getEffects(this, player); } } else { player.sendMessage("You don't have heroic's certifications to exchange."); } showChatWindow(player); } else if (actualCommand.equalsIgnoreCase("restore")) { player.setCurrentHpMp(player.getMaxHp(), player.getMaxMp()); player.setCurrentCp(player.getMaxCp()); showMessageWindow(player); } else if (actualCommand.equalsIgnoreCase("cancel")) { player.stopAllEffects(); showMessageWindow(player); } else super.onBypassFeedback(player, command); } @Override public void onAction(L2PcInstance player) { if (this != player.getTarget()) { player.setTarget(this); player.sendPacket(new MyTargetSelected(getObjectId(), player.getLevel() - getLevel())); player.sendPacket(new ValidateLocation(this)); } else if (isInsideRadius(player, INTERACTION_DISTANCE, false, false)) { SocialAction sa = new SocialAction(this, Rnd.get(8)); broadcastPacket(sa); player.setCurrentFolkNPC(this); showMessageWindow(player); player.sendPacket(ActionFailed.STATIC_PACKET); } else { player.getAI().setIntention(CtrlIntention.INTERACT, this); player.sendPacket(ActionFailed.STATIC_PACKET); } } private void showMessageWindow(L2PcInstance player) { String filename = "data/html/buffer/" + getNpcId() + ".htm"; filename = getHtmlPath(getNpcId(), 0); NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); html.setFile(filename); html.replace("%objectId%", String.valueOf(getObjectId())); html.replace("%npcname%", getName()); player.sendPacket(html); } @Override public String getHtmlPath(int npcId, int val) { String pom = ""; if (val == 0) pom = "" + npcId; else pom = npcId + "-" + val; return "data/html/buffer/" + pom + ".htm"; } }create new npc: <npc id="9001" idTemplate="31081" name="BUFFER" title="L2EUPHORIA.COM"> <set name="level" val="70"/> <set name="radius" val="8"/> <set name="height" val="30.5"/> <set name="rHand" val="0"/> <set name="lHand" val="5802"/> <set name="type" val="L2Buffer"/> <set name="exp" val="0"/> <set name="sp" val="0"/> <set name="hp" val="2444.46819"/> <set name="mp" val="1345.8"/> <set name="hpRegen" val="7.5"/> <set name="mpRegen" val="2.7"/> <set name="pAtk" val="688.86373"/> <set name="pDef" val="295.91597"/> <set name="mAtk" val="470.40463"/> <set name="mDef" val="216.53847"/> <set name="crit" val="4"/> <set name="atkSpd" val="253"/> <set name="str" val="40"/> <set name="int" val="21"/> <set name="dex" val="30"/> <set name="wit" val="20"/> <set name="con" val="43"/> <set name="men" val="20"/> <set name="corpseTime" val="7"/> <set name="walkSpd" val="50"/> <set name="runSpd" val="120"/> <set name="dropHerbGroup" val="0"/> <set name="attackRange" val="40"/> <ai type="default" ssCount="0" ssRate="0" spsCount="0" spsRate="0" aggro="0" canMove="true" seedable="false"/> <skills> <skill id="4045" level="1"/> <skill id="4416" level="14"/> </skills> </npc> don't forget to paste this folder within htmls in the right section (gameserver/data/html), then spawn 9001.
  6. Kalhspera. edw pera ine 1 donate manager. apo ton l2sayn to exw vgalei kai to dinw se esas. parakalw mhn krazete. :D Code: http://pastebin.com/tuWcQAXQ EDIT: 3exasa na valw to name sto Instance. valte L2DonateShopInstance (ADAPTED FOR L2JACIS http://pastebin.com/6d9P4wm1 ) by member l2jkain SCREENSHOTS Download: Gia na doulepsi to code prepei na valete auta ta arxia. Click Me Diavaste to ReadMe.txt To sql uparxi sto arxio. To Donate Coin exei id 1704 Ean vgalei kapoio provlima kalo einai na kanete 1 post se auto to topic gia na to checkarw. :) Doulevei sto l2jfrozen last rev. twra gia prohgoumena den 3erw. :D UPDATED** //augment command http://www.maxcheaters.com/topic/207755-l2jfrozen-augment-command/ CREDITS: fofas
  7. model/actor/instance new file package com.l2jfrozen.gameserver.model.actor.instance; import java.sql.Connection; import java.sql.PreparedStatement; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.regex.PatternSyntaxException; import javolution.text.TextBuilder; import com.l2jfrozen.Config; import com.l2jfrozen.gameserver.ai.CtrlIntention; import com.l2jfrozen.gameserver.communitybbs.Manager.RegionBBSManager; import com.l2jfrozen.gameserver.datatables.sql.CharNameTable; import com.l2jfrozen.gameserver.datatables.sql.ClanTable; import com.l2jfrozen.gameserver.model.Inventory; import com.l2jfrozen.gameserver.model.L2World; import com.l2jfrozen.gameserver.network.SystemMessageId; import com.l2jfrozen.gameserver.network.serverpackets.ActionFailed; import com.l2jfrozen.gameserver.network.serverpackets.LeaveWorld; import com.l2jfrozen.gameserver.network.serverpackets.MagicSkillUser; import com.l2jfrozen.gameserver.network.serverpackets.MyTargetSelected; import com.l2jfrozen.gameserver.network.serverpackets.NpcHtmlMessage; import com.l2jfrozen.gameserver.network.serverpackets.PartySmallWindowAll; import com.l2jfrozen.gameserver.network.serverpackets.PartySmallWindowDeleteAll; import com.l2jfrozen.gameserver.network.serverpackets.PledgeShowMemberListAll; import com.l2jfrozen.gameserver.network.serverpackets.PledgeShowMemberListUpdate; import com.l2jfrozen.gameserver.network.serverpackets.SocialAction; import com.l2jfrozen.gameserver.network.serverpackets.SystemMessage; import com.l2jfrozen.gameserver.network.serverpackets.ValidateLocation; import com.l2jfrozen.gameserver.templates.L2NpcTemplate; import com.l2jfrozen.gameserver.util.Util; import com.l2jfrozen.util.CloseUtil; import com.l2jfrozen.util.database.L2DatabaseFactory; public class L2te0xServiceNpcInstance extends L2NpcInstance { private final static int ITEM_ID = 9989; String INSERT_DATA = "REPLACE INTO characters_custom_data (obj_Id, char_name, hero, noble, donator, hero_end_date) VALUES (?,?,?,?,?,?)"; String INSERT_DATAA = "REPLACE INTO characters_custom_data (obj_Id, char_name, hero, noble, donator) VALUES (?,?,?,?,?)"; public L2te0xServiceNpcInstance(int objectId, L2NpcTemplate template) { super(objectId, template); } @Override public void onBypassFeedback(L2PcInstance player, String command) { if (player == null) { return; } else if (command.startsWith("active")) { showActiveWindow(player, 0); } else if (command.startsWith("passive")) { showPassiveWindow(player, 0); } else if (command.startsWith("back")) { showChatWindow(player, 0); } else if (command.startsWith("Refresh")) { addAugment(player, 16287, 3202, 3); } else if (command.startsWith("Ritual")) { addAugment(player, 16183, 3130, 10); } else if (command.startsWith("Heal")) { addAugment(player, 16195, 3123, 10); } else if (command.startsWith("Recharge")) { addAugment(player, 16204, 3127, 10); } else if (command.startsWith("Cheer")) { addAugment(player, 16197, 3131, 10); } else if (command.startsWith("Celestial")) { addAugment(player, 15047, 3158, 1); } else if (command.startsWith("BlessedSoul")) { addAugment(player, 16200, 3128, 10); } else if (command.startsWith("BlessedBody")) { addAugment(player, 16199, 3124, 10); } else if (command.startsWith("Empower")) { addAugment(player, 16281, 3241, 10); } else if (command.startsWith("MagicBarrier")) { addAugment(player, 16282, 3245, 10); } else if (command.startsWith("Might")) { addAugment(player, 16283, 3240, 10); } else if (command.startsWith("Shield")) { addAugment(player, 16284, 3244, 10); } else if (command.startsWith("DuelMight")) { addAugment(player, 16285, 3243, 10); } else if (command.startsWith("Focus")) { addAugment(player, 16333, 3249, 10); } else if (command.startsWith("WildMagic")) { addAugment(player, 16336, 3250, 10); } else if (command.startsWith("Agility")) { addAugment(player, 16332, 3247, 10); } else if (command.startsWith("Guidance")) { addAugment(player, 16335, 3248, 10); } else if (command.startsWith("changeName2")) { showNameWindow(player, 0); } else if (command.startsWith("changeClanName2")) { showClanNameWindow(player, 0); } else if (command.startsWith("changeName")) { String _name = command.substring(11); String errorMsg = null; boolean proceed = true; if (_name.length() < 3) { errorMsg = "Names have to be at least 3 characters"; proceed = false; showNameWindow(player, 0); } if (_name.length() > 16) { errorMsg = "Names cannot be longer than 16 characters"; proceed = false; showNameWindow(player, 0); } if ((!Util.isAlphaNumeric(_name)) || (!isValidName(_name))) { errorMsg = "Invalid name"; proceed = false; showNameWindow(player, 0); } if (CharNameTable.getInstance().doesCharNameExist(_name)) { if ((!player.getName().equalsIgnoreCase(_name)) || (player.getName().equals(_name))) { errorMsg = "Name already exists"; proceed = false; showNameWindow(player, 0); } } if (!proceed) { player.sendMessage(errorMsg); showNameWindow(player, 0); return; } if (player.destroyItemByItemId("Consume", ITEM_ID, 10, player, true)) { try (Connection con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("UPDATE characters SET char_name=? WHERE obj_Id=?")) { statement.setString(1, _name); statement.setInt(2, player.getObjectId()); statement.execute(); statement.close(); } catch (Exception e) { LOGGER.info("Error updating name for player " + player.getName() + ". Error: " + e); } L2World.getInstance().removeFromAllPlayers(player); player.setName(_name); player.store(); L2World.getInstance().addToAllPlayers(player); player.sendMessage("Your new character name is " + _name); player.broadcastUserInfo(); player.sendMessage("Thank you for helping our server!"); if (player.isInParty()) { // Delete party window for other party members player.getParty().broadcastToPartyMembers(player, new PartySmallWindowDeleteAll()); for (final L2PcInstance member : player.getParty().getPartyMembers()) { // And re-add if (member != player) { member.sendPacket(new PartySmallWindowAll(player, player.getParty())); } } } if (player.getClan() != null) { player.getClan().updateClanMember(player); player.getClan().broadcastToOnlineMembers(new PledgeShowMemberListUpdate(player)); player.sendPacket(new PledgeShowMemberListAll(player.getClan(), player)); } RegionBBSManager.getInstance().changeCommunityBoard(); } } else if (command.startsWith("changeClanName")) { String _name = command.substring(15); String errorMsg = null; boolean proceed = true; if (_name.length() < 2) { errorMsg = "Clan Names have to be at least 2 characters"; proceed = false; showClanNameWindow(player, 0); } if (_name.length() > 16) { errorMsg = "Clan Names cannot be longer than 16 characters"; proceed = false; showClanNameWindow(player, 0); } if ((!Util.isAlphaNumeric(_name)) || (!isValidClanName(_name))) { errorMsg = "Invalid name"; proceed = false; showClanNameWindow(player, 0); } if (ClanTable.getClanByName(_name) != null) { errorMsg = "Name already exists"; proceed = false; showClanNameWindow(player, 0); } if (!proceed) { player.sendMessage(errorMsg); showClanNameWindow(player, 0); return; } if (player.destroyItemByItemId("Consume", ITEM_ID, 10, player, true)) { try (Connection con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("UPDATE clan_data SET clan_name=? WHERE clan_id=?")) { statement.setString(1, _name); statement.setInt(2, player.getClan().getClanId()); statement.execute(); statement.close(); } catch (Exception e) { LOGGER.info("Error updating clan name for player " + player.getName() + ". Error: " + e); } player.getClan().setName(_name); player.sendMessage("Your new clan name is " + _name); player.sendMessage("Thank you for helping our server!"); player.getClan().broadcastClanStatus(); } } else if (command.startsWith("setNoble")) { if (!player.isNoble()) { if (player.getInventory().getInventoryItemCount(ITEM_ID, -1) >= 10) { player.destroyItemByItemId("Consume", ITEM_ID, 10, player, true); player.getInventory().addItem("Tiara", 7694, 1, player, null); player.setNoble(true); player.setTarget(player); player.broadcastPacket(new MagicSkillUser(player, 5103, 1, 1000, 0)); player.broadcastUserInfo(); player.broadcastPacket(new SocialAction(player.getObjectId(), 16)); player.sendMessage("The greatest soul of the Flame of Splendor Barakiel is now following your spirit by gifting you the Noblesse status. Status that only a few true Semi-Gods can have."); } else { player.sendMessage("You don't have enough items."); } } else { player.sendMessage("The greatest soul of the Flame of Splendor Barakiel is already following your spirit and gifting it with the Noblesse status."); } } else if (command.startsWith("setDonator")) { if (!player.isDonator()) { if (player.getInventory().getInventoryItemCount(ITEM_ID, -1) >= 7) { player.destroyItemByItemId("Consume", ITEM_ID, 1, player, true); player.setDonator(true); player.setTarget(player); updateDatabasex(player, true); player.broadcastPacket(new MagicSkillUser(player, 5103, 1, 1000, 0)); player.broadcastUserInfo(); player.sendMessage("You are gifted with the Donator status. Thank you for being a helpful player on our server!"); } else { player.sendMessage("You don't have enough items."); } } else { player.sendMessage("You already own Donator status."); } } else if (command.startsWith("reducePks2")) { showPksWindow(player, 0); } else if (command.startsWith("reducePks")) { try { String pkReduceString = command.substring(10); int pkReduceCount = Integer.parseInt(pkReduceString); if (player.getPkKills() != 0) { if (pkReduceCount == 0) { player.sendMessage("Please, put a higher value."); showPksWindow(player, 0); } else { if (player.getInventory().getInventoryItemCount(ITEM_ID, -1) >= 1) { player.destroyItemByItemId("Consume", ITEM_ID, 1 * pkReduceCount, player, true); player.setPkKills(player.getPkKills() - pkReduceCount); player.sendMessage("You have successfuly cleaned " + pkReduceCount + " PKs."); player.broadcastUserInfo(); } else { player.sendMessage("Not enough items."); } } } else { player.sendMessage("Not enough PKs."); } } catch (Exception e) { player.sendMessage("Incorrect value. Please try again."); showPksWindow(player, 0); } } else if (command.startsWith("levelUpClan")) { if (!player.isClanLeader()) { player.sendMessage("You must be a clan leader in order to use this service."); } else { if (player.getClan().getLevel() == 8) { player.sendMessage("Your clan is already level 8."); } else { if (((player.getClan().getLevel() <= 1) || (player.getClan().getLevel() == 2) || (player.getClan().getLevel() == 3) || (player.getClan().getLevel() == 4))) { player.getClan().setLevel(player.getClan().getLevel() + 1); player.getClan().broadcastClanStatus(); player.sendMessage("Your clan is now level " + player.getClan().getLevel() + "."); player.setTarget(player); player.broadcastPacket(new MagicSkillUser(player, 5103, 1, 1000, 0)); int newCLanLevel = player.getClan().getLevel() +1; LOGGER.info("Updating clan ID " + player.getClan().getClanId() +" to level " + newCLanLevel + " for player " + player.getName() + "."); try (Connection con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("UPDATE clan_data SET clan_level=? WHERE clan_id=?")) { statement.setInt(1, player.getClan().getLevel()); statement.setInt(2, player.getClan().getClanId()); statement.execute(); statement.close(); } catch (Exception e) { LOGGER.info("Error updating clan level for player " + player.getName() + ". Error: " + e); } player.sendMessage("Your clan level have been increased successfully."); } else if (player.getClan().getLevel() == 5) { if (player.getInventory().getInventoryItemCount(ITEM_ID, -1) >= 10) { player.destroyItemByItemId("Consume", ITEM_ID, 10, player, true); player.getClan().setLevel(player.getClan().getLevel() + 1); player.getClan().broadcastClanStatus(); player.sendMessage("Your clan is now level " + player.getClan().getLevel() + "."); player.setTarget(player); player.broadcastPacket(new MagicSkillUser(player, 5103, 1, 1000, 0)); int newCLanLevel = player.getClan().getLevel() +1; LOGGER.info("Updating clan ID " + player.getClan().getClanId() +" to level " + newCLanLevel + " for player " + player.getName() + "."); try (Connection con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("UPDATE clan_data SET clan_level=? WHERE clan_id=?")) { statement.setInt(1, player.getClan().getLevel()); statement.setInt(2, player.getClan().getClanId()); statement.execute(); statement.close(); } catch (Exception e) { LOGGER.info("Error updating clan level for player " + player.getName() + ". Error: " + e); } player.sendMessage("Your clan level have been increased successfully."); } else { player.sendMessage("Not enough items."); } } else if (player.getClan().getLevel() == 6) { if (player.getInventory().getInventoryItemCount(ITEM_ID, -1) >= 10) { player.destroyItemByItemId("Consume", ITEM_ID, 10, player, true); player.getClan().setLevel(player.getClan().getLevel() + 1); player.getClan().broadcastClanStatus(); player.sendMessage("Your clan is now level " + player.getClan().getLevel() + "."); player.setTarget(player); player.broadcastPacket(new MagicSkillUser(player, 5103, 1, 1000, 0)); int newCLanLevel = player.getClan().getLevel() +1; LOGGER.info("Updating clan ID " + player.getClan().getClanId() +" to level " + newCLanLevel + " for player " + player.getName() + "."); try (Connection con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("UPDATE clan_data SET clan_level=? WHERE clan_id=?")) { statement.setInt(1, player.getClan().getLevel()); statement.setInt(2, player.getClan().getClanId()); statement.execute(); statement.close(); } catch (Exception e) { LOGGER.info("Error updating clan level for player " + player.getName() + ". Error: " + e); } player.sendMessage("Your clan level have been increased successfully."); } else { player.sendMessage("Not enough items."); } } else if (player.getClan().getLevel() == 7) { if (player.getInventory().getInventoryItemCount(ITEM_ID, -1) >= 10) { player.destroyItemByItemId("Consume", ITEM_ID, 10, player, true); player.getClan().setLevel(player.getClan().getLevel() + 1); player.getClan().broadcastClanStatus(); player.sendMessage("Your clan is now level " + player.getClan().getLevel() + "."); player.setTarget(player); player.broadcastPacket(new MagicSkillUser(player, 5103, 1, 1000, 0)); int newCLanLevel = player.getClan().getLevel() +1; LOGGER.info("Updating clan ID " + player.getClan().getClanId() +" to level " + newCLanLevel + " for player " + player.getName() + "."); try (Connection con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("UPDATE clan_data SET clan_level=? WHERE clan_id=?")) { statement.setInt(1, player.getClan().getLevel()); statement.setInt(2, player.getClan().getClanId()); statement.execute(); statement.close(); } catch (Exception e) { LOGGER.info("Error updating clan level for player " + player.getName() + ". Error: " + e); } player.sendMessage("Your clan level have been increased successfully."); } else { player.sendMessage("Not enough items."); } } player.getClan().broadcastClanStatus(); } } } else if (command.startsWith("changeGender")) { if (player.getInventory().getInventoryItemCount(ITEM_ID, -1) >= 5) { player.getAppearance().setSex(player.getAppearance().getSex() ? false : true); player.setTarget(player); player.broadcastPacket(new MagicSkillUser(player, 5103, 1, 1000, 0)); player.destroyItemByItemId("Consume", ITEM_ID, 10, player, true); L2PcInstance.setSexDB(player, 1); player.sendMessage("You have successfully changed your sex."); player.decayMe(); player.spawnMe(player.getX(), player.getY(), player.getZ()); player.broadcastUserInfo(); } else { player.sendMessage("You don't have enough items."); } } else if (command.startsWith("hero")) { if (!player.isHero()) { if (player.getInventory().getInventoryItemCount(ITEM_ID, -1) >= 10) { player.broadcastPacket(new SocialAction(player.getObjectId(), 16)); player.setHero(true); updateDatabase(player, 1 * 24L * 60L * 60L * 1000L); player.sendMessage("You have been hero for 1 day. Have a nice time!"); player.broadcastUserInfo(); player.destroyItemByItemId("Consume", ITEM_ID, 10, player, true); } else { player.sendMessage("You don't have enough items."); } } else { player.sendMessage("You already are a hero."); } } } @Override public void onAction(L2PcInstance player) { if (this != player.getTarget()) { player.setTarget(this); player.sendPacket(new MyTargetSelected(getObjectId(), 0)); player.sendPacket(new ValidateLocation(this)); } else if (!canInteract(player)) { player.getAI().setIntention(CtrlIntention.AI_INTENTION_INTERACT, this); } else { showChatWindow(player, 0); } // Send a Server->Client ActionFailed to the L2PcInstance in order to avoid that the client wait another packet player.sendPacket(ActionFailed.STATIC_PACKET); } @Override public void showChatWindow(L2PcInstance player, int val) { TextBuilder tb = new TextBuilder(); tb.append("<html><head><title>Lineage II Addicted - Donate Panel</title></head><body>"); tb.append("<center><img src=\"l2ui_ch3.herotower_deco\" width=256 height=32>"); tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>"); tb.append("<table bgcolor=000000 width=300 height=40>"); tb.append("<tr>"); tb.append("<td width=\"300\" align=\"center\"><font color=\"666666\">Welcome " + player.getName() +" in Lineage II</font><font color=\"FF9900\"> -Addicted-</font></td>"); tb.append("</tr>"); tb.append("</table>"); tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>"); tb.append("<br>"); tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>"); tb.append("</center>"); tb.append("<center>"); tb.append("<table bgcolor=000000 width=300 height=12>"); tb.append("<tr>"); tb.append("<td width=\"300\" align=\"center\"><font color=\"FF0000\">{Donate Panel}</font></td>"); tb.append("</tr>"); tb.append("<tr>"); tb.append("<td width=\"300\" align=\"center\"><font color=\"666666\">Help us to improve our server by donating!</font></td>"); tb.append("</tr>"); tb.append("</table>"); tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>"); tb.append("<br>"); tb.append("<center>"); tb.append("<table>"); tb.append("<tr><td align=center><font color=\"FF9900\"><a action=\"bypass -h npc_%objectId%_active\">Active Augment (20 Donate coins)</a></font></td></tr>"); tb.append("<tr><td align=center><font color=\"FF9900\"><a action=\"bypass -h npc_%objectId%_passive\">Passive Augment (20 Donate coins)</a></font></td></tr>"); tb.append("<tr><td align=center><font color=\"FF9900\"><a action=\"bypass -h npc_%objectId%_hero\">Become Hero 24h (20 Donate coins)</a></font></td></tr>"); tb.append("<tr><td align=center><font color=\"FF9900\"><a action=\"bypass -h npc_%objectId%_setNoble\">Become Noblesse (10 Donate coins)</a></font></td></tr>"); tb.append("<tr><td align=center><font color=\"FF9900\"><a action=\"bypass -h npc_%objectId%_setDonator\">Become Donator (50 Donate coins)</a></font></td></tr>"); tb.append("<tr><td align=center><font color=\"FF9900\"><a action=\"bypass -h npc_%objectId%_changeName2\">Change Name (10 Donate coins)</a></font></td></tr>"); tb.append("<tr><td align=center><font color=\"FF9900\"><a action=\"bypass -h npc_%objectId%_changeGender\">Change Sex (10 Donate coins)</a></font></td></tr>"); tb.append("<tr><td align=center><font color=\"FF9900\"><a action=\"bypass -h npc_%objectId%_reducePks2\">Remove Pks (1 pk = 1 Donate coin)</a></font></td></tr>"); tb.append("<tr><td align=center><font color=\"FF9900\"><a action=\"bypass -h npc_%objectId%_changeClanName2\">Change Clan Name (10 Donate coins)</a></font></td></tr>"); tb.append("<tr><td align=center><font color=\"FF9900\"><a action=\"bypass -h npc_%objectId%_levelUpClan\">Clan level up (10 Donate coins per lvl)</a></font></td></tr>"); tb.append("</table>"); tb.append("<br>"); tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>"); tb.append("<table border=0 bgcolor=000000 width=300 height=20>"); tb.append("<tr>"); tb.append("<td align=\"center\" width=\"300\"><font color=\"666666\">Vote for us :</font><font color=\"FF5555\"> www.l2addicted.eu</font></td>"); tb.append("</tr>"); tb.append("</table>"); tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>"); tb.append("</center>"); tb.append("</body></html>"); NpcHtmlMessage msg = new NpcHtmlMessage(this.getObjectId()); msg.setHtml(tb.toString()); msg.replace("%objectId%", String.valueOf(this.getObjectId())); player.sendPacket(msg); } public void showActiveWindow(L2PcInstance player, int val) { TextBuilder tb = new TextBuilder(); tb.append("<html><head><title>Lineage II Addicted - Active Augment</title></head><body>"); tb.append("<center><img src=\"l2ui_ch3.herotower_deco\" width=256 height=32>"); tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>"); tb.append("</center>"); tb.append("<center>"); tb.append("<table bgcolor=000000 width=300 height=12>"); tb.append("<tr>"); tb.append("<td width=\"300\" align=\"center\"><font color=\"FF0000\">{Remove Pks}</font></td>"); tb.append("</tr>"); tb.append("<tr>"); tb.append("<td width=\"300\" align=\"center\"><font color=\"666666\">Add a passive skill for 10 donate coins.</font></td>"); tb.append("</tr>"); tb.append("</table>"); tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>"); tb.append("<br>"); tb.append("<center>"); tb.append("<button value=\"Celestial\" action=\"bypass -h npc_%objectId%_Celestial\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">"); tb.append("<button value=\"Refresh\" action=\"bypass -h npc_%objectId%_Refresh\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">"); tb.append("<button value=\"Ritual\" action=\"bypass -h npc_%objectId%_Ritual\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">"); tb.append("<button value=\"Heal\" action=\"bypass -h npc_%objectId%_Heal\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">"); tb.append("<button value=\"Recharge\" action=\"bypass -h npc_%objectId%_Recharge\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">"); tb.append("<button value=\"Cheer\" action=\"bypass -h npc_%objectId%_Cheer\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">"); tb.append("<button value=\"Blessed Soul\" action=\"bypass -h npc_%objectId%_BlessedSoul\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">"); tb.append("<button value=\"Blessed Body\" action=\"bypass -h npc_%objectId%_BlessedBody\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">"); tb.append("<img src=\"l2ui_ch3.herotower_deco\" width=256 height=32>"); tb.append("<br>"); tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>"); tb.append("<table border=0 bgcolor=000000 width=300 height=20>"); tb.append("<tr>"); tb.append("<td align=\"center\" width=\"300\"><font color=\"666666\">Vote for us :</font><font color=\"FF5555\"> www.l2addicted.eu</font></td>"); tb.append("</tr>"); tb.append("</table>"); tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>"); tb.append("</center>"); tb.append("</body></html>"); NpcHtmlMessage msg = new NpcHtmlMessage(this.getObjectId()); msg.setHtml(tb.toString()); msg.replace("%objectId%", String.valueOf(this.getObjectId())); player.sendPacket(msg); } public void showPassiveWindow(L2PcInstance player, int val) { TextBuilder tb = new TextBuilder(); tb.append("<html><head><title>Lineage II Addicted - Passive Augment</title></head><body>"); tb.append("<center><img src=\"l2ui_ch3.herotower_deco\" width=256 height=32>"); tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>"); tb.append("</center>"); tb.append("<center>"); tb.append("<table bgcolor=000000 width=300 height=12>"); tb.append("<tr>"); tb.append("<td width=\"300\" align=\"center\"><font color=\"FF0000\">{Remove Pks}</font></td>"); tb.append("</tr>"); tb.append("<tr>"); tb.append("<td width=\"300\" align=\"center\"><font color=\"666666\">Add a passive skill for 10 donate coins.</font></td>"); tb.append("</tr>"); tb.append("</table>"); tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>"); tb.append("<br>"); tb.append("<center>"); tb.append("<button value=\"Empower\" action=\"bypass -h npc_%objectId%_Empower\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">"); tb.append("<button value=\"M.Barrier\" action=\"bypass -h npc_%objectId%_MagicBarrier\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">"); tb.append("<button value=\"Might\" action=\"bypass -h npc_%objectId%_Might\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">"); tb.append("<button value=\"Shield\" action=\"bypass -h npc_%objectId%_Shield\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">"); tb.append("<button value=\"Duel Might\" action=\"bypass -h npc_%objectId%_DuelMight\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">"); tb.append("<button value=\"Focus\" action=\"bypass -h npc_%objectId%_Focus\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">"); tb.append("<button value=\"Wild Magic\" action=\"bypass -h npc_%objectId%_WildMagic\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">"); tb.append("<button value=\"Agility\" action=\"bypass -h npc_%objectId%_Agility\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">"); tb.append("<button value=\"Guidance\" action=\"bypass -h npc_%objectId%_Guidance\" width=75 height=21 back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\">"); tb.append("<img src=\"l2ui_ch3.herotower_deco\" width=256 height=32>"); tb.append("<br>"); tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>"); tb.append("<table border=0 bgcolor=000000 width=300 height=20>"); tb.append("<tr>"); tb.append("<td align=\"center\" width=\"300\"><font color=\"666666\">Vote for us :</font><font color=\"FF5555\"> www.l2addicted.eu</font></td>"); tb.append("</tr>"); tb.append("</table>"); tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>"); tb.append("</center>"); tb.append("</body></html>"); NpcHtmlMessage msg = new NpcHtmlMessage(this.getObjectId()); msg.setHtml(tb.toString()); msg.replace("%objectId%", String.valueOf(this.getObjectId())); player.sendPacket(msg); } public void showPksWindow(L2PcInstance player, int val) { TextBuilder tb = new TextBuilder(); tb.append("<html><head><title>Lineage II Addicted - Remove PKs</title></head><body>"); tb.append("<center><img src=\"l2ui_ch3.herotower_deco\" width=256 height=32>"); tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>"); tb.append("</center>"); tb.append("<center>"); tb.append("<table bgcolor=000000 width=300 height=12>"); tb.append("<tr>"); tb.append("<td width=\"300\" align=\"center\"><font color=\"FF0000\">{Remove Pks}</font></td>"); tb.append("</tr>"); tb.append("<tr>"); tb.append("<td width=\"300\" align=\"center\"><font color=\"666666\">Clean Pks. 1 pk = 1 Donate coin.</font></td>"); tb.append("</tr>"); tb.append("</table>"); tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>"); tb.append("<br>"); tb.append("<center>"); tb.append("<edit var=\"pkReduceCount\" width=80 height=15>"); tb.append("<button value=\"Clean Pks\" action=\"bypass -h npc_%objectId%_reducePks $pkReduceCount\" back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\" width=75 height=21>"); tb.append("<img src=\"l2ui_ch3.herotower_deco\" width=256 height=32>"); tb.append("<br>"); tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>"); tb.append("<table border=0 bgcolor=000000 width=300 height=20>"); tb.append("<tr>"); tb.append("<td align=\"center\" width=\"300\"><font color=\"666666\">Vote for us :</font><font color=\"FF5555\"> www.l2addicted.eu</font></td>"); tb.append("</tr>"); tb.append("</table>"); tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>"); tb.append("</center>"); tb.append("</body></html>"); NpcHtmlMessage msg = new NpcHtmlMessage(this.getObjectId()); msg.setHtml(tb.toString()); msg.replace("%objectId%", String.valueOf(this.getObjectId())); player.sendPacket(msg); } public void showNameWindow(L2PcInstance player, int val) { TextBuilder tb = new TextBuilder(); tb.append("<html><head><title>Lineage II Addicted - Rename</title></head><body>"); tb.append("<center><img src=\"l2ui_ch3.herotower_deco\" width=256 height=32>"); tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>"); tb.append("</center>"); tb.append("<center>"); tb.append("<table bgcolor=000000 width=300 height=12>"); tb.append("<tr>"); tb.append("<td width=\"300\" align=\"center\"><font color=\"FF0000\">{Rename}</font></td>"); tb.append("</tr>"); tb.append("<tr>"); tb.append("<td width=\"300\" align=\"center\"><font color=\"666666\">Change your name for 10 donate coins.</font></td>"); tb.append("</tr>"); tb.append("</table>"); tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>"); tb.append("<br>"); tb.append("<center>"); tb.append("<edit var=\"newName\" width=80 height=15>"); tb.append("<button value=\"Rename\" action=\"bypass -h npc_%objectId%_changeName $newName\" back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\" width=75 height=21>"); tb.append("<img src=\"l2ui_ch3.herotower_deco\" width=256 height=32>"); tb.append("<br>"); tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>"); tb.append("<table border=0 bgcolor=000000 width=300 height=20>"); tb.append("<tr>"); tb.append("<td align=\"center\" width=\"300\"><font color=\"666666\">Vote for us :</font><font color=\"FF5555\"> www.l2addicted.eu</font></td>"); tb.append("</tr>"); tb.append("</table>"); tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>"); tb.append("</center>"); tb.append("</body></html>"); NpcHtmlMessage msg = new NpcHtmlMessage(this.getObjectId()); msg.setHtml(tb.toString()); msg.replace("%objectId%", String.valueOf(this.getObjectId())); player.sendPacket(msg); } public void showClanNameWindow(L2PcInstance player, int val) { TextBuilder tb = new TextBuilder(); tb.append("<html><head><title>Lineage II Addicted - Rename</title></head><body>"); tb.append("<center><img src=\"l2ui_ch3.herotower_deco\" width=256 height=32>"); tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>"); tb.append("</center>"); tb.append("<center>"); tb.append("<table bgcolor=000000 width=300 height=12>"); tb.append("<tr>"); tb.append("<td width=\"300\" align=\"center\"><font color=\"FF0000\">{Rename}</font></td>"); tb.append("</tr>"); tb.append("<tr>"); tb.append("<td width=\"300\" align=\"center\"><font color=\"666666\">Change your clan name for 10 donate coins.</font></td>"); tb.append("</tr>"); tb.append("</table>"); tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>"); tb.append("<br>"); tb.append("<center>"); tb.append("<edit var=\"newClanName\" width=80 height=15>"); tb.append("<button value=\"Rename\" action=\"bypass -h npc_%objectId%_changeClanName $newClanName\" back=\"L2UI_ch3.Btn1_normalDisable\" fore=\"L2UI_ch3.Btn1_normalDisable\" width=75 height=21>"); tb.append("<img src=\"l2ui_ch3.herotower_deco\" width=256 height=32>"); tb.append("<br>"); tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>"); tb.append("<table border=0 bgcolor=000000 width=300 height=20>"); tb.append("<tr>"); tb.append("<td align=\"center\" width=\"300\"><font color=\"666666\">Vote for us :</font><font color=\"FF5555\"> www.l2addicted.eu</font></td>"); tb.append("</tr>"); tb.append("</table>"); tb.append("<img src=\"L2UI.SquareGray\" width=300 height=1>"); tb.append("</center>"); tb.append("</body></html>"); NpcHtmlMessage msg = new NpcHtmlMessage(this.getObjectId()); msg.setHtml(tb.toString()); msg.replace("%objectId%", String.valueOf(this.getObjectId())); player.sendPacket(msg); } private static void addAugment(L2PcInstance player, int attribute, int skill, int level) { L2ItemInstance item = player.getInventory().getPaperdollItem(Inventory.PAPERDOLL_RHAND); if (item == null) { player.sendMessage("You have to equip a weapon."); return; } if (player.getInventory().getInventoryItemCount(ITEM_ID, -1) < 20) { player.sendMessage("You dont have enough item."); return; } if (item.isAugmented()) { player.sendMessage("Remove the augment first."); return; } Connection con = null; try { player.destroyItemByItemId("Consume", ITEM_ID, 20, player, true); con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("REPLACE INTO augmentations VALUES(?,?,?,?)"); statement.setInt(1, item.getObjectId()); statement.setInt(2, attribute*65536+1); statement.setInt(3, skill); statement.setInt(4, level); statement.executeUpdate(); player.sendPacket(new SystemMessage(SystemMessageId.THE_ITEM_WAS_SUCCESSFULLY_AUGMENTED)); statement.close(); player.sendMessage("You will be disconnected in 3 seconds to enable the security"); try { Thread.sleep(3000L); } catch (Exception e) { } player.deleteMe(); player.sendPacket(new LeaveWorld()); } catch (Exception e) { } finally { L2DatabaseFactory.close(con); } } private void updateDatabasex(L2PcInstance player, boolean newDonator) { Connection con = null; try { if(player == null) return; con = L2DatabaseFactory.getInstance().getConnection(false); PreparedStatement stmt = con.prepareStatement(INSERT_DATAA); stmt.setInt(1, player.getObjectId()); stmt.setString(2, player.getName()); stmt.setInt(3, player.isHero() ? 1 : 0); stmt.setInt(4, player.isNoble() ? 1 : 0); stmt.setInt(5, 1); stmt.execute(); stmt.close(); stmt = null; } catch(Exception e) { if(Config.ENABLE_ALL_EXCEPTIONS) e.printStackTrace(); LOGGER.error("Error: could not update database: ", e); } finally { CloseUtil.close(con); con = null; } } private void updateDatabase(L2PcInstance player, long heroTime) { Connection con = null; try { if(player == null) return; con = L2DatabaseFactory.getInstance().getConnection(false); PreparedStatement stmt = con.prepareStatement(INSERT_DATA); stmt.setInt(1, player.getObjectId()); stmt.setString(2, player.getName()); stmt.setInt(3, 1); stmt.setInt(4, player.isNoble() ? 1 : 0); stmt.setInt(5, player.isDonator() ? 1 : 0); stmt.setLong(6, heroTime == 0 ? 0 : System.currentTimeMillis() + heroTime); stmt.execute(); stmt.close(); stmt = null; } catch(Exception e) { if(Config.ENABLE_ALL_EXCEPTIONS) e.printStackTrace(); LOGGER.error("Error: could not update database: ", e); } finally { CloseUtil.close(con); con = null; } } private boolean isValidName(final String text) { boolean result = true; final String test = text; Pattern pattern; try { pattern = Pattern.compile(Config.CNAME_TEMPLATE); } catch (final PatternSyntaxException e) // case of illegal pattern { if (Config.ENABLE_ALL_EXCEPTIONS) e.printStackTrace(); pattern = Pattern.compile(".*"); } final Matcher regexp = pattern.matcher(test); if (!regexp.matches()) result = false; return result; } private boolean isValidClanName(final String text) { boolean result = true; final String test = text; Pattern pattern; try { pattern = Pattern.compile(Config.CLAN_NAME_TEMPLATE); } catch (final PatternSyntaxException e) // case of illegal pattern { if (Config.ENABLE_ALL_EXCEPTIONS) e.printStackTrace(); pattern = Pattern.compile(".*"); } final Matcher regexp = pattern.matcher(test); if (!regexp.matches()) result = false; return result; } }
  8. Hello guys, nothing special but it's not shared here this code for IL and a lot of people don't know how to do it since i added it on my project yesterday i decided to share it here with you. Here is preview images: Go to net.sf.l2j.gameserver.model.actor.L2Npc.java find: @Override public void onActionShift(L2PcInstance player) { // Check if the L2PcInstance is a GM if (player.isGM()) { final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); html.setFile("data/html/admin/npcinfo.htm"); html.replace("%class%", getClass().getSimpleName()); html.replace("%id%", getTemplate().getNpcId()); html.replace("%lvl%", getTemplate().getLevel()); html.replace("%name%", getTemplate().getName()); html.replace("%race%", getTemplate().getRace().toString()); html.replace("%tmplid%", getTemplate().getIdTemplate()); html.replace("%aggro%", (this instanceof L2Attackable) ? ((L2Attackable) this).getAggroRange() : 0); html.replace("%corpse%", getTemplate().getCorpseTime()); html.replace("%enchant%", getTemplate().getEnchantEffect()); html.replace("%hp%", (int) getCurrentHp()); html.replace("%hpmax%", getMaxHp()); html.replace("%mp%", (int) getCurrentMp()); html.replace("%mpmax%", getMaxMp()); html.replace("%patk%", getPAtk(null)); html.replace("%matk%", getMAtk(null, null)); html.replace("%pdef%", getPDef(null)); html.replace("%mdef%", getMDef(null, null)); html.replace("%accu%", getAccuracy()); html.replace("%evas%", getEvasionRate(null)); html.replace("%crit%", getCriticalHit(null, null)); html.replace("%rspd%", getRunSpeed()); html.replace("%aspd%", getPAtkSpd()); html.replace("%cspd%", getMAtkSpd()); html.replace("%str%", getSTR()); html.replace("%dex%", getDEX()); html.replace("%con%", getCON()); html.replace("%int%", getINT()); html.replace("%wit%", getWIT()); html.replace("%men%", getMEN()); html.replace("%loc%", getX() + " " + getY() + " " + getZ()); html.replace("%dist%", (int) Math.sqrt(player.getDistanceSq(this))); html.replace("%ele_fire%", getDefenseElementValue((byte) 2)); html.replace("%ele_water%", getDefenseElementValue((byte) 3)); html.replace("%ele_wind%", getDefenseElementValue((byte) 1)); html.replace("%ele_earth%", getDefenseElementValue((byte) 4)); html.replace("%ele_holy%", getDefenseElementValue((byte) 5)); html.replace("%ele_dark%", getDefenseElementValue((byte) 6)); if (getSpawn() != null) { html.replace("%spawn%", getSpawn().getLocx() + " " + getSpawn().getLocy() + " " + getSpawn().getLocz()); html.replace("%loc2d%", (int) Math.sqrt(getPlanDistanceSq(getSpawn().getLocx(), getSpawn().getLocy()))); html.replace("%loc3d%", (int) Math.sqrt(getDistanceSq(getSpawn().getLocx(), getSpawn().getLocy(), getSpawn().getLocz()))); html.replace("%resp%", getSpawn().getRespawnDelay() / 1000); html.replace("%rand_resp%", getSpawn().getRandomRespawnDelay()); } else { html.replace("%spawn%", "<font color=FF0000>null</font>"); html.replace("%loc2d%", "<font color=FF0000>--</font>"); html.replace("%loc3d%", "<font color=FF0000>--</font>"); html.replace("%resp%", "<font color=FF0000>--</font>"); html.replace("%rand_resp%", "<font color=FF0000>--</font>"); } if (hasAI()) { html.replace("%ai_intention%", "<font color=\"LEVEL\">Intention</font><table width=\"100%\"><tr><td><font color=\"LEVEL\">Intention:</font></td><td>" + getAI().getIntention().name() + "</td></tr>"); html.replace("%ai%", "<tr><td><font color=\"LEVEL\">AI:</font></td><td>" + getAI().getClass().getSimpleName() + "</td></tr></table><br>"); } else { html.replace("%ai_intention%", ""); html.replace("%ai%", ""); } html.replace("%ai_type%", getAiType().name()); html.replace("%ai_clan%", (getClans() != null) ? "<tr><td width=100><font color=\"LEVEL\">Clan:</font></td><td align=right width=170>" + Arrays.toString(getClans()) + " " + getClanRange() + "</td></tr>" + ((getIgnoredIds() != null) ? "<tr><td width=100><font color=\"LEVEL\">Ignored ids:</font></td><td align=right width=170>" + Arrays.toString(getIgnoredIds()) + "</td></tr>" : "") : ""); html.replace("%ai_move%", String.valueOf(canMove())); html.replace("%ai_seed%", String.valueOf(isSeedable())); html.replace("%ai_ssinfo%", _currentSsCount + "[" + getSsCount() + "] - " + getSsRate() + "%"); html.replace("%ai_spsinfo%", _currentSpsCount + "[" + getSpsCount() + "] - " + getSpsRate() + "%"); html.replace("%butt%", ((this instanceof L2MerchantInstance) ? "<button value=\"Shop\" action=\"bypass -h admin_show_shop " + getNpcId() + "\" width=65 height=19 back=\"L2UI_ch3.smallbutton2_over\" fore=\"L2UI_ch3.smallbutton2\">" : "")); player.sendPacket(html); player.sendPacket(ActionFailed.STATIC_PACKET); } Below add: else if (Config.ENABLE_SHIFT_CLICK_TO_NPCS) { final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId()); html.setFile("data/html/mods/npcinfo.htm"); html.replace("%class%", getClass().getSimpleName()); html.replace("%id%", getTemplate().getNpcId()); html.replace("%lvl%", getTemplate().getLevel()); html.replace("%name%", getTemplate().getName()); html.replace("%race%", getTemplate().getRace().toString()); html.replace("%tmplid%", getTemplate().getIdTemplate()); html.replace("%aggro%", getTemplate().getAggroRange()); html.replace("%corpse%", StringUtil.getTimeStamp(getTemplate().getCorpseTime())); html.replace("%enchant%", getTemplate().getEnchantEffect()); html.replace("%hp%", (int) getCurrentHp()); html.replace("%hpmax%", getMaxHp()); html.replace("%mp%", (int) getCurrentMp()); html.replace("%mpmax%", getMaxMp()); html.replace("%patk%", getPAtk(null)); html.replace("%matk%", getMAtk(null, null)); html.replace("%pdef%", getPDef(null)); html.replace("%mdef%", getMDef(null, null)); html.replace("%accu%", getAccuracy()); html.replace("%evas%", getEvasionRate(null)); html.replace("%crit%", getCriticalHit(null, null)); html.replace("%rspd%", getWalkSpeed()); html.replace("%aspd%", getPAtkSpd()); html.replace("%cspd%", getMAtkSpd()); player.sendPacket(html); } Now the Configs public static boolean ENABLE_SHIFT_CLICK_TO_NPCS; ENABLE_SHIFT_CLICK_TO_NPCS = npcs.getProperty("EnableShiftClickToNpcs", false); # ============================================= # Shift + Click to NPC(s) # ============================================= # Enable showing NPC(s) info by Shift + Click # on NPC(s)? # Default: False EnableShiftClickToNpcs = True The voicedcommand Create new class called ShiftClickToNpc inside paste /* * 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.voicedcommandhandlers; import java.util.StringTokenizer; import net.sf.l2j.commons.lang.StringUtil; import net.sf.l2j.gameserver.datatables.ItemTable; import net.sf.l2j.gameserver.datatables.NpcTable; import net.sf.l2j.gameserver.handler.IVoicedCommandHandler; import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance; import net.sf.l2j.gameserver.model.actor.template.NpcTemplate; import net.sf.l2j.gameserver.model.item.DropCategory; import net.sf.l2j.gameserver.model.item.DropData; import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage; /** * @author Designatix * */ public class ShiftClickToNpc implements IVoicedCommandHandler { private static final int PAGE_LIMIT = 20; private static String[] _voicedCommands = { "show_droplist" }; @Override public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target) { final StringTokenizer st = new StringTokenizer(command, " "); st.nextToken(); if (command.startsWith("show_droplist")) { try { int npcId = Integer.parseInt(st.nextToken()); int page = (st.hasMoreTokens()) ? Integer.parseInt(st.nextToken()) : 1; showNpcDropList(activeChar, npcId, page); } catch (Exception e) { activeChar.sendMessage("Usage: .show_droplist <npc_id> [<page>]"); } } return true; } private static void showNpcDropList(L2PcInstance activeChar, int npcId, int page) { final NpcTemplate npcData = NpcTable.getInstance().getTemplate(npcId); if (npcData == null) { activeChar.sendMessage("Npc template is unknown for id: " + npcId + "."); return; } final StringBuilder sb = new StringBuilder(2000); StringUtil.append(sb, "<html><title>Show droplist page ", page, "</title><body><center><font color=\"LEVEL\">", npcData.getName(), " (", npcId, ")</font></center><br>"); if (!npcData.getDropData().isEmpty()) { sb.append("Drop type legend: <font color=\"3BB9FF\">Drop</font> | <font color=\"00ff00\">Sweep</font><br><table><tr><td width=25>cat.</td><td width=45>item</td><td width=45>drop count</td></tr>"); int myPage = 1; int i = 0; int shown = 0; boolean hasMore = false; for (DropCategory cat : npcData.getDropData()) { if (shown == PAGE_LIMIT) { hasMore = true; break; } for (DropData drop : cat.getAllDrops()) { if (myPage != page) { i++; if (i == PAGE_LIMIT) { myPage++; i = 0; } continue; } if (shown == PAGE_LIMIT) { hasMore = true; break; } StringUtil.append(sb, "<tr><td><font color=\"", ((cat.isSweep()) ? "00FF00" : "3BB9FF"), "\">", cat.getCategoryType(), "</td><td>", ItemTable.getInstance().getTemplate(drop.getItemId()).getName(), " (", drop.getMinDrop(), ", ", drop.getMaxDrop(), ")</td></tr>"); shown++; } } sb.append("</table><table width=\"100%\" bgcolor=666666><tr>"); if (page > 1) { StringUtil.append(sb, "<td width=120><a action=\"bypass -h voiced_show_droplist ", npcId, " ", page - 1, "\">Prev Page</a></td>"); if (!hasMore) StringUtil.append(sb, "<td width=100>Page ", page, "</td><td width=70></td></tr>"); } if (hasMore) { if (page <= 1) sb.append("<td width=120></td>"); StringUtil.append(sb, "<td width=100>Page ", page, "</td><td width=70><a action=\"bypass -h voiced_show_droplist ", npcId, " ", page + 1, "\">Next Page</a></td></tr>"); } sb.append("</table>"); } else sb.append("This NPC has no drops."); sb.append("</body></html>"); final NpcHtmlMessage html = new NpcHtmlMessage(0); html.setHtml(sb.toString()); activeChar.sendPacket(html); } @Override public String[] getVoicedCommandList() { return _voicedCommands; } } Import the voicedcommand on net.sf.l2j.gameserver.handler.VoicedCommandHandler.java import net.sf.l2j.gameserver.handler.voicedcommandhandlers.ShiftClickToNpc; if (Config.ENABLE_SHIFT_CLICK_TO_NPCS) { registerHandler(new ShiftClickToNpc()); } And now go to your dp > data/html/mods and create new file called npcinfo.htm and inside paste <html><title>NPC Info</title><body> <center> <table width="100%"> <tr> <td align=center> <button value="Show Droplist" action="bypass -h voiced_show_droplist %id%" width=134 height=21 back="L2UI_ch3.BigButton3_over" fore="L2UI_ch3.BigButton3"> </td> </tr> </table> <br><img src="L2UI.SquareWhite" width=260 height=1><br> <font color="LEVEL">General Informations</font> <table width="100%"> <tr><td><font color="LEVEL">Name:</font></td><td>%name%</td></tr> <tr><td><font color="LEVEL">Level:</font></td><td>%lvl%</td></tr> <tr><td><font color="LEVEL">Type:</font></td><td>%class%</td></tr> <tr><td><font color="LEVEL">Race:</font></td><td>%race%</td></tr> </table><br> <font color="LEVEL">Aggro Informations</font> <table width="100%"> <tr><td width=100><font color="LEVEL">Aggro:</font></td><td align=right width=170>%aggro%</td></tr> </table><br> <font color="LEVEL">Combat Informations</font> <table width="100%"> <tr><td><font color="LEVEL">HP:</font></td><td><font color=FF4040>%hp%/%hpmax%</font></td><td><font color="LEVEL">MP:</font></td><td><font color=6161FF>%mp%/%mpmax%</font></td></tr> <tr><td>P.Atk.</td><td>%patk%</td><td>M.Atk.</td><td>%matk%</td></tr> <tr><td>P.Def.</td><td>%pdef%</td><td>M.Def.</td><td>%mdef%</td></tr> <tr><td>Accuracy</td><td>%accu%</td><td>Evasion</td><td>%evas%</td></tr> <tr><td>Critical</td><td>%crit%</td><td>Speed</td><td>%rspd%</td></tr> <tr><td>Atk.Spd</td><td>%aspd%</td><td>Cast.Spd</td><td>%cspd%</td></tr> </table><br> <br><img src="L2UI.SquareWhite" width=260 height=1><br> </center> </body></html> Have Fun!
  9. Fast Preview: Download (3,17KB) :[Hidden Content] Credits: HappyLDE <npc id="9994" idTemplate="100912" name="Jolie" title=" Enchant Items"> <set name="level" val="70"/> <set name="radius" val="13"/> <set name="height" val="20"/> <set name="rHand" val="22"/> <set name="lHand" val="26"/> <set name="type" val="L2Npc"/> <set name="exp" val="0"/> <set name="sp" val="0"/> <set name="hp" val="2444.46819"/> <set name="mp" val="1345.8"/> <set name="hpRegen" val="7.5"/> <set name="mpRegen" val="2.7"/> <set name="pAtk" val="688.86373"/> <set name="pDef" val="295.91597"/> <set name="mAtk" val="470.40463"/> <set name="mDef" val="216.53847"/> <set name="crit" val="4"/> <set name="atkSpd" val="253"/> <set name="str" val="40"/> <set name="int" val="21"/> <set name="dex" val="30"/> <set name="wit" val="20"/> <set name="con" val="43"/> <set name="men" val="20"/> <set name="corpseTime" val="7"/> <set name="walkSpd" val="50"/> <set name="runSpd" val="120"/> <set name="dropHerbGroup" val="0"/> <set name="attackRange" val="40"/> <ai type="default" ssCount="0" ssRate="0" spsCount="0" spsRate="0" aggro="0" canMove="true" seedable="false"/> </npc>
  10. Credits : Kfan For Scripts & Sydhe For Edition
  11. Just want to see some opinions about mount variations. So what do you think? Is it a good idea? Some examples: Purple Maned Horse: Pure, Light and Heavy(Retail) White Maned Black Horse: Pure, Light and Heavy Dark Maned Black Horse: Pure, Light and Heavy
  12. http://www.mediafire.com/file/23tn1j4bavnvtgu/Linboss.rar
  13. Hello guys. I've create a simple Gatekeeper for me. A long time ago. I found it on my desktop and I wanted to share it with you because some guys are lazy to create locs. Nothing special or something. That Gatekeeper is only for aCis. DOWNLOAD
  14. Hello members of MxC!!!!! Oriste kapoies photo apo tin buffer ========================== =========================================== =========================================== http://www.4shared.com/rar/gbgI_EO4/Buffer_V3_Updated.html Credits : Smallz Update Credits : g1org1os Update info : Eftia3a to Restore giati gemize mono CP , twra gemizei CP/HP/MP kai pros8esa merika buffs.
  15. Hello MaxCheaters... there i have a Scheme Buffer for Interlude, found it on some L2 Sites... So i wanna share it with all of you. L2J Frozen NOTE: It's Rin4a's buffer style. PREVIEW: DOWNLOAD: Download (via 4 Shared) CREDITS: The L2 Sites and the Guy i guess from video.
  16. Download Link: Click Here!! Autor: VeNoM Screenshots: - ScreenShot
×