-
Posts
47 -
Credits
0 -
Joined
-
Last visited
-
Feedback
0%
Content Type
Articles
Profiles
Forums
Store
Everything posted by Admin@Abyssal
-
Code Custom Effects At Echant Armor And More..
Admin@Abyssal replied to Admin@Abyssal's topic in Server Shares & Files [L2J]
baggos but with armor echant wwe have one prob if you find answer tell me and i fix it the prob is if you got +16 armor getEffectAbnormal but if ArmorRemove abnormal effect stay.. -
Code Custom Effects At Echant Armor And More..
Admin@Abyssal replied to Admin@Abyssal's topic in Server Shares & Files [L2J]
thank you -
Guide Vote Manager Npc
Admin@Abyssal replied to L2KingWorld's topic in Server Development Discussion [Greek]
ahahhaahahhaah :P -
Hello Mxc,Today Ill Show You Some Codes I think Some Off this Is Not Shared Or Is shared Before 2009. First ill Show You Enchant armor auto get abnormal effect When you have enchanted your armor +16 there will be show an abnormal effect if you want you can change it! l2character.java search for abnormal effects Go at inventory.java after this line "+armorSet.getEnchant6skillId()+"."); add this if (armorSet.isEnchanted16(player)) { player.startAbnormalEffect(L2Character.ABNORMAL_EFFECT_STEALTH); } before this line if(removeSkillId1 != 0) { L2Skill skill = SkillTable.getInstance().getInfo(removeSkillId1,1); add this player.stopAbnormalEffect(L2Character.ABNORMAL_EFFECT_STEALTH); Now go to L2Armorset.java and add this public boolean isEnchanted16(L2PcInstance player) { // Player don't have full set if(!containAll(player)) return false; Inventory inv = player.getInventory(); L2ItemInstance chestItem = inv.getPaperdollItem(Inventory.PAPERDOLL_CHEST); L2ItemInstance legsItem = inv.getPaperdollItem(Inventory.PAPERDOLL_LEGS); L2ItemInstance headItem = inv.getPaperdollItem(Inventory.PAPERDOLL_HEAD); L2ItemInstance glovesItem = inv.getPaperdollItem(Inventory.PAPERDOLL_GLOVES); L2ItemInstance feetItem = inv.getPaperdollItem(Inventory.PAPERDOLL_FEET); if(chestItem.getEnchantLevel() < 16) return false; if(_legs != 0 && legsItem.getEnchantLevel() < 16) return false; if(_gloves != 0 && glovesItem.getEnchantLevel() < 16) return false; if(_head != 0 && headItem.getEnchantLevel() < 16) return false; if(_feet != 0 && feetItem.getEnchantLevel() < 16) return false; return true; } Thats all with this.. Then i give too one code L2Password Changer with command and without npc and nah...bored this Create a public class ChangePassword At Com.L2jfrozen.Gameserver.Hander.VoicedCommandHandler and then add this /* * 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 com.l2jfrozen.gameserver.handler.voicedcommandhandlers; import java.security.MessageDigest; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.StringTokenizer; import com.l2jfrozen.crypt.Base64; import com.l2jfrozen.util.database.L2DatabaseFactory; import com.l2jfrozen.gameserver.handler.IVoicedCommandHandler; import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance; import com.l2jfrozen.gameserver.network.serverpackets.ExShowScreenMessage; /* * @Author: Abyssal */ public class ChangePassword implements IVoicedCommandHandler { private static final String[] _voicedCommands = { "changepass" }; @Override public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target) { if(command.equalsIgnoreCase("changepass") && target != null) { StringTokenizer st = new StringTokenizer(target); try { String curpass = null, newpass = null, repeatnewpass = null; if(st.hasMoreTokens()) curpass = st.nextToken(); if(st.hasMoreTokens()) newpass = st.nextToken(); if(st.hasMoreTokens()) repeatnewpass = st.nextToken(); if(!(curpass == null || newpass == null || repeatnewpass == null)) { if(!newpass.equals(repeatnewpass)) { activeChar.sendMessage("The new password doesn't match with the repeated one!"); return false; } if(newpass.length() < 4) { activeChar.sendMessage("The new password is shorter than 4 characters! Please try with a longer one."); return false; } if(newpass.length() > 25) { activeChar.sendMessage("The new password is longer than 25 characters! Please try with a shorter one."); return false; } MessageDigest md = MessageDigest.getInstance("SHA"); byte[] raw = curpass.getBytes("UTF-8"); raw = md.digest(raw); String curpassEnc = Base64.encodeBytes(raw); String pass = null; int passUpdated = 0; Connection con = null; con = L2DatabaseFactory.getInstance().getConnection(); PreparedStatement statement = con.prepareStatement("SELECT password FROM accounts WHERE login=?"); statement.setString(1, activeChar.getAccountName()); ResultSet rset = statement.executeQuery(); if(rset.next()) { pass = rset.getString("password"); } rset.close(); statement.close(); if(curpassEnc.equals(pass)) { byte[] password = newpass.getBytes("UTF-8"); password = md.digest(password); PreparedStatement ps = con.prepareStatement("UPDATE accounts SET password=? WHERE login=?"); ps.setString(1, Base64.encodeBytes(password)); ps.setString(2, activeChar.getAccountName()); passUpdated = ps.executeUpdate(); ps.close(); con.close(); if(passUpdated > 0) { activeChar.sendMessage("You have successfully changed your password!"); activeChar.sendPacket(new ExShowScreenMessage("You have successfully changed your password!#Enjoy :)", 6000)); } else { activeChar.sendMessage("The password change was unsuccessful!"); activeChar.sendPacket(new ExShowScreenMessage("The password change was unsuccessful!!#U_u)", 6000)); } } else { activeChar.sendMessage("CurrentPass doesn't match with your current one."); return false; } } else { activeChar.sendMessage("Invalid pass data! Format: .changepass CurrentPass NewPass NewPass"); return false; } } catch(Exception e) { activeChar.sendMessage("A problem occured while changing password!"); } } else { activeChar.sendMessage("To change your current password, you have to type the command in the following format(without the brackets []): [.changepass CurrentPass NewPass NewPass]. You should also know that the password is case sensitive."); activeChar.sendPacket(new ExShowScreenMessage("To change your current password, you have to type the command in the following format(without the brackets []):#[.changepass CurrentPass NewPass NewPass]. You should also know that the password is case sensitive.)", 7000)); return false; } return true; } @Override public String[] getVoicedCommandList() { return _voicedCommands; } } Then ill show BugReport Npc. With this X player Can Report one bug and server admin gets at server files Server\gameserver\log\BugReports One file with bug report and the message is Character Info: [Character: Abyssal - Account: Abyssal - IP: 999.999.999.999] Bug Type: General Message: BuG With Vote Manager Fix It Go to Com.L2jfrozen.Gameserver.Model.Actor.Instance and create a class L2BugReportInstance and copy paste this code /* * 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 com.l2jfrozen.gameserver.model.actor.instance; import java.io.*; import java.util.StringTokenizer; import javolution.text.TextBuilder; import com.l2jfrozen.gameserver.ai.CtrlIntention; import com.l2jfrozen.gameserver.model.L2World; import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance; import com.l2jfrozen.gameserver.network.L2GameClient; import com.l2jfrozen.gameserver.network.clientpackets.Say2; import com.l2jfrozen.gameserver.network.serverpackets.ActionFailed; import com.l2jfrozen.gameserver.network.serverpackets.CreatureSay; import com.l2jfrozen.gameserver.network.serverpackets.MyTargetSelected; import com.l2jfrozen.gameserver.network.serverpackets.NpcHtmlMessage; import com.l2jfrozen.gameserver.network.serverpackets.ValidateLocation; import com.l2jfrozen.gameserver.templates.L2NpcTemplate; /** * @author squallcs * * @Reworked Abyssal */ public class L2BugReportInstance extends L2FolkInstance { private static String _type; public L2BugReportInstance(int objectId, L2NpcTemplate template) { super(objectId, template); } @Override public void onBypassFeedback(L2PcInstance player, String command) { if (command.startsWith("send_report")) { StringTokenizer st = new StringTokenizer(command); st.nextToken(); String msg = ""; String type = null; type = st.nextToken(); st.nextToken(); try { while (st.hasMoreTokens()) { msg = msg + " " + st.nextToken(); } sendReport(player, type, msg); } catch (StringIndexOutOfBoundsException e) { } } } static { new File("log/BugReports/").mkdirs(); } private void sendReport(L2PcInstance player, String command, String msg) { String type = command; L2GameClient info = player.getClient().getConnection().getClient(); if (type.equals("General")) _type = "General"; if (type.equals("Fatal")) _type = "Fatal"; if (type.equals("Misuse")) _type = "Misuse"; if (type.equals("Balance")) _type = "Balance"; if (type.equals("Other")) _type = "Other"; try { String fname = "log/BugReports/" + player.getName() + ".txt"; File file = new File(fname); boolean exist = file.createNewFile(); if (!exist) { player.sendMessage("You have already sent a bug report, GMs must check it first."); return; } FileWriter fstream = new FileWriter(fname); BufferedWriter out = new BufferedWriter(fstream); out.write("Character Info: " + info + "\r\nBug Type: " + _type + "\r\nMessage: " + msg); player.sendMessage("Report sent. GMs will check it soon. Thanks..."); for (L2PcInstance allgms : L2World.getInstance().getAllGMs()) allgms.sendPacket(new CreatureSay(0, Say2.SHOUT, "Bug Report Manager", player.getName() + " sent a bug report.")); System.out.println("Character: " + player.getName() + " sent a bug report."); out.close(); } catch (Exception e) { player.sendMessage("Something went wrong try again."); } } @Override public void onAction(L2PcInstance player) { if (!canTarget(player)) { return; } 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 { showHtmlWindow(player); } player.sendPacket(new ActionFailed()); } private void showHtmlWindow(L2PcInstance activeChar) { NpcHtmlMessage nhm = new NpcHtmlMessage(5); TextBuilder replyMSG = new TextBuilder(""); replyMSG.append("<html><title>Bug Report Manager</title>"); replyMSG.append("<body><br><br><center>"); replyMSG.append("<table border=0 height=10 bgcolor=\"444444\" width=240>"); replyMSG.append("<tr><td align=center><font color=\"00FFFF\">Hello " + activeChar.getName() + ".</font></td></tr>"); replyMSG.append("<tr><td align=center><font color=\"00FFFF\">There are no Gms online</font></td></tr>"); replyMSG.append("<tr><td align=center><font color=\"00FFFF\">and you want to report something?</font></td></tr>"); replyMSG.append("</table><br>"); replyMSG.append("<img src=\"L2UI.SquareWhite\" width=280 height=1><br><br>"); replyMSG.append("<table width=250><tr>"); replyMSG.append("<td><font color=\"LEVEL\">Select Report Type:</font></td>"); replyMSG.append("<td><combobox width=105 var=type list=General;Fatal;Misuse;Balance;Other></td>"); replyMSG.append("</tr></table><br><br>"); replyMSG.append("<multiedit var=\"msg\" width=250 height=50><br>"); replyMSG.append("<br><img src=\"L2UI.SquareWhite\" width=280 height=1><br><br><br><br><br><br><br>"); replyMSG.append("<button value=\"Send Report\" action=\"bypass -h npc_" + getObjectId() + "_send_report $type $msg\" width=204 height=20 back=\"sek.cbui75\" fore=\"sek.cbui75\">"); replyMSG.append("</center></body></html>"); nhm.setHtml(replyMSG.toString()); activeChar.sendPacket(nhm); activeChar.sendPacket(new ActionFailed()); } } Then ill show you reputation item,This give you x reputation points to your clan. Go to Com.L2jfrozen.Gameserver.Handler.ItemHandler.java Find this import com.l2jfrozen.gameserver.handler.itemhandlers.ChristmasTree; bellow add this import com.l2jfrozen.gameserver.handler.itemhandlers.ClanRepsItem; then find this registerItemHandler(new ChestKey()); bellow add this registerItemHandler(new ClanRepsItem()); Then go Com.L2jfrozen.Gamserver.Handler.ItemHander and create new ClanRepsItem.java add this /* * 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 com.l2jfrozen.gameserver.handler.itemhandlers; /** * * * @author Coyote * Adapted by Strike * Reworked by Abyssal */ import com.l2jfrozen.Config; import com.l2jfrozen.gameserver.handler.IItemHandler; import com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance; import com.l2jfrozen.gameserver.model.actor.instance.L2PlayableInstance; import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance; import com.l2jfrozen.gameserver.network.serverpackets.MagicSkillUser; public class ClanRepsItem implements IItemHandler { private static final int ITEM_IDS[] = { Config.CR_ITEM_REPS_ITEM_ID }; public void useItem(L2PlayableInstance playable, L2ItemInstance item) { if (!(playable instanceof L2PcInstance)) { return; } L2PcInstance activeChar = (L2PcInstance)playable; if (!activeChar.isClanLeader()) { activeChar.sendMessage("This can be used only by Clan Leaders!"); return; } else if (!(activeChar.getClan().getLevel() >= Config.CR_ITEM_MIN_CLAN_LVL)) { activeChar.sendMessage("Your Clan Level is not big enough to use this item!"); return; } else { activeChar.getClan().setReputationScore(activeChar.getClan().getReputationScore()+Config.CR_ITEM_REPS_TO_BE_AWARDED, true); activeChar.sendMessage("Your clan has earned "+ Config.CR_ITEM_REPS_TO_BE_AWARDED +" rep points!"); MagicSkillUser MSU = new MagicSkillUser(activeChar, activeChar, 2024, 1, 1, 0); activeChar.broadcastPacket(MSU); playable.destroyItem("Consume", item.getObjectId(), 1, null, false); } } public int[] getItemIds() { return ITEM_IDS; } } then go Config.java Find this public static String PVP2_CUSTOM_MESSAGE; and then add this /** * Clan Reputation Item */ public static boolean USE_CR_ITEM; public static int CR_ITEM_MIN_CLAN_LVL; public static int CR_ITEM_REPS_TO_BE_AWARDED; public static int CR_ITEM_REPS_ITEM_ID; then find this PVP2_CUSTOM_MESSAGE = L2ScoriaSettings.getProperty("PvP2CustomMeesage", "You have been teleported to PvP Zone 2!"); and bellow add this /** Clan reputation Item**/ USE_CR_ITEM = Boolean.parseBoolean(L2ScoriaSettings.getProperty("EnableTheClanRepPointsItem", "False")); CR_ITEM_MIN_CLAN_LVL = Integer.parseInt(L2ScoriaSettings.getProperty("ClanLevelNeededForCR", "5")); CR_ITEM_REPS_TO_BE_AWARDED = Integer.parseInt(L2ScoriaSettings.getProperty("HowManyClanRepsToGive", "500")); CR_ITEM_REPS_ITEM_ID = Integer.parseInt(L2ScoriaSettings.getProperty("CRItemID", "6673")); and the last Go To L2JFrozen.Propeties Find this # ----------------------------------------------------- # Hero Custom Item Configuration - # ----------------------------------------------------- # When ActiveChar will use this item will gain Hero Status. EnableHeroCustomItem = False # Id Itemn Need's HeroCustomItemId = 3481 # Hero for X days, 0 forever. HeroCustomDay = 0 and after this add this # ------------------------------------------------------- # Clan Reputation Custom Item Configuration # ------------------------------------------------------- # Would you like to enable the Clan Reputation points item? # Default: False EnableTheClanRepPointsItem = False # What's the Min Level in which clan leaders will be able to use the item? # Default 5 MinClanLevelNeededForCR = 5 # How many rep points will be rewarded to the clan? # Default 500 HowManyClanRepsToGive = 500 # Set the ID of the Clan Rep Points Item # Default = 6673 (Festival Adena) CRItemID = 6673 And The Last Code ChangeNameNpc.. Com.L2jFrozen.Gamserver.Model.Actor.Instance and create L2ChangeNameInstance add this /* * 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 com.l2jfrozen.gameserver.model.actor.instance; 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.ItemTable; import com.l2jfrozen.gameserver.model.L2World; import com.l2jfrozen.gameserver.network.serverpackets.ActionFailed; 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.ValidateLocation; import com.l2jfrozen.gameserver.templates.L2NpcTemplate; import com.l2jfrozen.logs.Log; import java.io.File; import java.io.FileInputStream; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Properties; import java.util.StringTokenizer; import java.util.logging.Level; import java.util.logging.Logger; import javolution.text.TextBuilder; public class L2ChangeNameInstance extends L2FolkInstance { private static final String changeNameConfigFile = "./config/changename.properties"; // Set the config file path. private static boolean paymentRequired; private static int changeNamePrice; private static int itemID; // Get configurations from file. public static void loadOptionsConfig() { final String OPTIONS = L2ChangeNameInstance.changeNameConfigFile; try { Properties optionsSettings = new Properties(); InputStream is = new FileInputStream(new File(OPTIONS)); optionsSettings.load(is); is.close(); changeNamePrice = Integer.parseInt(optionsSettings.getProperty("ChangeNamePrice", "0")); itemID = Integer.parseInt(optionsSettings.getProperty("ItemID", "57")); paymentRequired = Boolean.valueOf(optionsSettings.getProperty("PaymentRequired", "false")); } catch (Exception e) { e.printStackTrace(); throw new Error("Failed to Load " + OPTIONS + " File."); } } // Load config files. static { loadOptionsConfig(); } // Obtain item name. public static String getItemName() { String _itemName = ItemTable.getInstance().getTemplate(itemID).getName(); return _itemName; } // Audit change name. static { new File("log/CHARChangeName").mkdirs(); } private static final Logger _log = Logger.getLogger(Log.class.getName()); public static void auditChangeName(String oldCharName, String newCharName) { SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy H:mm:ss"); String today = formatter.format(new Date()); FileWriter save = null; try { File file = new File("log/CHARChangeName/log.txt"); save = new FileWriter(file, true); String out = "[" + today + "] --> User: " + oldCharName + " changed his name to " + newCharName + " \r\n"; save.write(out); } catch (IOException e) { _log.log(Level.SEVERE, "Change name of " + oldCharName + " could not be saved: ", e); } finally { if (save != null) try { save.close(); } catch (Exception e) { e.printStackTrace(); } } } // Create NPC. public L2ChangeNameInstance(int objectId, L2NpcTemplate template) { super(objectId, template); } // Changing name action. @Override public void onBypassFeedback(L2PcInstance player, String command) { if (command.startsWith("change_name")) { StringTokenizer st = new StringTokenizer(command); st.nextToken(); String currName = null; String newName = null; String repeatNewName = null; try { if (st.hasMoreTokens()) { currName = st.nextToken(); newName = st.nextToken(); repeatNewName = st.nextToken(); } else { printErrorMessage("Please fill in all the blanks before requesting for a name change.", player); return; } changeName(currName, newName, repeatNewName, player); } catch (StringIndexOutOfBoundsException e) { } } } // Interaction with npc. @Override public void onAction(L2PcInstance player) { if (!canTarget(player)) { return; } 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 { showHtmlWindow(player); } player.sendPacket(new ActionFailed()); } // Main html frame. private void showHtmlWindow(L2PcInstance activeChar) { NpcHtmlMessage nhm = new NpcHtmlMessage(5); TextBuilder replyMSG = new TextBuilder(""); replyMSG.append("<html><title>Name Manager</title>"); replyMSG.append("<body><center>"); replyMSG.append("To change your name:<br1> First fill in your current name and then your new!</font><br>"); if (paymentRequired) { replyMSG.append("Item required: " + getItemName() + "and amount: " + changeNamePrice + " <br>"); } replyMSG.append("Current Name: <edit var=\"cur\" width=100 height=15><br>"); replyMSG.append("New Name: <edit var=\"new\" width=100 height=15><br>"); replyMSG.append("Repeat New Name: <edit var=\"repeatnew\" width=100 height=15><br><br>"); replyMSG.append("<button value=\"Change Name\" action=\"bypass -h npc_" + getObjectId() + "_change_name $cur $new $repeatnew\" width=204 height=20 back=\"sek.cbui75\" fore=\"sek.cbui75\">"); replyMSG.append("</center></body></html>"); nhm.setHtml(replyMSG.toString()); activeChar.sendPacket(nhm); activeChar.sendPacket(new ActionFailed()); } // Print html method. private static void printErrorMessage(String msg, L2PcInstance activeChar) { NpcHtmlMessage nhm = new NpcHtmlMessage(5); TextBuilder replyMSG = new TextBuilder(""); replyMSG.append("<html><title>Name Manager</title>"); replyMSG.append("<body><center><br>Ohh no! A problem ocurred!</center><br> " + msg + " </body></html>"); nhm.setHtml(replyMSG.toString()); activeChar.sendPacket(nhm); } public static boolean changeName(String currName, String newName, String repeatNewName, L2PcInstance activeChar) { // Check player name requirements if (newName.length() < 4) { printErrorMessage("The new name is too short! You should use 4 charcaters or more", activeChar); return false; } if (newName.length() > 16) { printErrorMessage("The new name is too long!", activeChar); return false; } if (!newName.equals(repeatNewName)) { printErrorMessage("Repeated name doesn't match the new name.", activeChar); return false; } String name2 = null; // Check if player name already exists if not, continue. if (CharNameTable.getInstance().doesCharNameExist(newName)) { activeChar.sendMessage(newName + " already in use!"); return false; } // Check if player name verifies the original. if (!currName.equals(activeChar.getName())) { printErrorMessage("Your actual name doesn't verifies yours.", activeChar); return false; } // Check player required item. if (paymentRequired && (activeChar.getInventory().getItemByItemId(itemID) == null || activeChar.getInventory().getItemByItemId(itemID).getCount() < changeNamePrice)) { printErrorMessage("You dont have enough " + getItemName(), activeChar); return false; } try { name2 = newName; L2PcInstance player = null; String oldName = null; player = activeChar; oldName = player.getName(); L2World.getInstance().removeFromAllPlayers(player); player.setName(name2); player.store(); L2World.getInstance().addToAllPlayers(player); printErrorMessage("Your name has been changed succesfully from " + oldName + " to " + name2, player); player.broadcastUserInfo(); if (player.isInParty()) { player.getParty().broadcastToPartyMembers(player, new PartySmallWindowDeleteAll()); for (L2PcInstance member : player.getParty().getPartyMembers()) { if (member != player) { member.sendPacket(new PartySmallWindowAll(player, player.getParty())); } } } if (player.getClan() != null) { player.getClan().broadcastClanStatus(); } RegionBBSManager.getInstance().changeCommunityBoard(); // Audit change name for security if a char did something bad and he changes his name to hide his malevolent steps... auditChangeName(oldName, name2); // Take required item from inventory. if (paymentRequired && (changeNamePrice > 0)) { player.destroyItemByItemId("ChangeNameNPC", itemID, changeNamePrice, player.getLastFolkNPC(), true); } } catch (Exception e) { _log.log(Level.SEVERE, "Change name action couldn't be performed!", e); } return true; } } then create a file at gamserver/config/changename.propeties and add this # Change Name settings # PaymentRequired = Set if you need to pay in order to change your name # Default: false PaymentRequired = True # ChangeNamePrice = Set the amount of adena that you have to pay. # Default = 0 ChangeNamePrice = 1000000 # ItemID = Set the item id as payment. For example 57 = Adena # Default = 57 ItemID = 57 and the last add sql INSERT INTO `custom_npc` VALUES ('9991', '29047', 'ChangeName', '1', '', '1', 'Monster3.follower_of_frintessa_tran', '10.00', '110.00', '85', 'male', 'L2ChangeName', '40', '1709400', '70000', '668.78', '300.00', '60', '57', '73', '76', '70', '80', '111550355', '9525390', '50000', '4500', '8082', '2000', '270', '0', '300', '8222', '0', '0', '160', '300', 'frintezza_clan', '5000', '0', '13', 'FULL_PARTY'); Dont ask credits some is mine some is from another but i find at my pc thrown Soon more Thank you ..
-
Help Killing Spree System
Admin@Abyssal replied to Anuvor's question in Request Server Development Help [Greek]
ti pack xisimopoieis..frozen,acis,server h kati allo? -
Help Help Ip
Admin@Abyssal replied to CTGavesT's question in Request Server Development Help [Greek]
-
Help Help Error Eclipse
Admin@Abyssal replied to CTGavesT's question in Request Server Development Help [Greek]
katarxin kai na theloume na se voithisoume den boroume logo tou post sou kai tin analisi tou mas dinis files vasika names apo files kai les oti exeis errors...ok -
Guide Vote Manager Npc
Admin@Abyssal replied to L2KingWorld's topic in Server Development Discussion [Greek]
an evales auto akrivos akrivos apokliete na doulevei hopzone sto upografo -
Guide Vote Manager Npc
Admin@Abyssal replied to L2KingWorld's topic in Server Development Discussion [Greek]
URLConnection con = new URL(Hopzonelink).openConnection(); con.addRequestProperty("User-Agent", "Mozilla/4.76"); isr = new InputStreamReader(con.getInputStream()); br = new BufferedReader(isr); vres ta errors egw ena komati tha s dikso :P magkes den to sinisto hopzone dont work -
good luck with your sales mate!
-
Help Build Failed
Admin@Abyssal replied to L2KingWorld's question in Request Server Development Help [Greek]
check your L2MassSiegeManagerInstance.java ... there is 14 errors inside :) fix em -
Code [Share]Get Class Items With Commands.
Admin@Abyssal replied to 'Baggos''s topic in Server Shares & Files [L2J]
pathetic.. -
Code [Share]Get Class Items With Commands.
Admin@Abyssal replied to 'Baggos''s topic in Server Shares & Files [L2J]
hahahaha kids.. :) an account isn't only for one ;) crap...crap is your face dude -
Code [Share]Get Class Items With Commands.
Admin@Abyssal replied to 'Baggos''s topic in Server Shares & Files [L2J]
youre wrong dude :) -
Code [Share]Get Class Items With Commands.
Admin@Abyssal replied to 'Baggos''s topic in Server Shares & Files [L2J]
(57, 0) < Config.FIGHTER_Items_PRICE ... it mean -500 return true; 500+ return false; -
Code [Share]Get Class Items With Commands.
Admin@Abyssal replied to 'Baggos''s topic in Server Shares & Files [L2J]
if(activeChar.getInventory().getInventoryItemCount(57, 0) == Config.FIGHTER_ITEMS_PRICE) if im not wrong, this one will give items only when you have the corrent adena..example 10 adena ... 11 adena will not -
Thank you :) (date updated)
-
Code [Share]Get Class Items With Commands.
Admin@Abyssal replied to 'Baggos''s topic in Server Shares & Files [L2J]
i pref you to make just a more better from this one.. something like .items .. or something you like so this one will check if getClass,archer,duelist,tank,tyrant,maestro and all classes. so ... createItem per class ... cuz here is only 3 different, tank-dagger-archer-mage .... if im tyrant what i will use? dagger or mage :S sorry for my bad english :) -
Help Scheme Buffer Acis Rev:330
Admin@Abyssal replied to maneco's question in Request Server Development Help [L2J]
relax guys, Tryskell don't give a *** to support about his project :) post here your errors so we can help you. -
### L2 NewAge Community### Check all features with 1 click at video : L2NewAgeVideoViwer Official Site : http://www.lineage2newage.com Official Forum : Soon. Client : Interlude x5000 Official Facebook Page : https://www.facebook.com/lineage2NewAge GRAND OPENING : 7/2/2015 18:00 DDOS PROTECT PHX PROTECT L2WALKER PROTECT L2TOWER PORTECT SECURITY SYSTEM The SS effects on custom weapons since the photos are not included in the .rar https://imageshack.com/i/exZp1PMDj ( SS effect normal hit +0 until +3) https://imageshack.com/i/idhp4wBwj (SS effect critical +0 until +3) https://imageshack.com/i/exhs10bcj (SS effect normal hit +4 +5) https://imageshack.com/i/exxUhJ02j (SS effect critical +4 +5) https://imageshack.com/i/iqvyszaIj (SS effect normal hit +6 +7) https://imageshack.com/i/p7EKuRDIj (SS effect critical on +6 and +7) https://imageshack.com/i/eyOxDpK0j (SS effect normal hit +8 +9) https://imageshack.com/i/p7AdfZvKj (SS effect critical on +8 +9) https://imageshack.com/i/knlcm0ekj (SS effect normal hit +10) https://imageshack.com/i/p3zoRhywj ( SS effect critical on +10) ##INFORMATIONS## Auto Noblesse Login 200kk Adena mp, healing, cp(lvl1 150 cp) pots and SS,BSS A Security Key untradeable, undroppable, undestroyable and unsellable. By using this key you can submit your security code(if u have one) so you can have full access on your player. You can create a code by using the command .security Summon CP Potion skill can give you up to 100 CP potions lvl 2 (300 cp recover). The reuse time is same for mages and fighters. The class manager is making you direct on the last class that you want. Entering in Aden(Main Town) level 80. Hero announce system(no matters if you re on sub. The system will announce u will ur base class). Clan leader announce system(All the clan leaders that own a Castle). Raid Bosses announce system(When a raid make his appear it will be announced). Forbidden names system. By entering the name in the config this name will be disabled to use it in game. #Experience Max level is 89 On Subclass add u start 80 level and max for it is 89 too. The experience gaining is getting reduced level by level. Until 85 is pretty easy. The Supporter Classes have 50% increased xp gain from pvp taking xp and 20% more in general. By leveling up you gain more cp/hp/mp and debuff restistance #Buffslots For mages is 24 buffs(not included Summoners and Prophet) max For Daggers is 25 buffs max For the Other classes is 28 buffs max For Summons is 8 buffs max For Pets Like "Strider" is 12 buffs max Only the Buffs that exist on the buffer count as a buff so don't be afraid of losing buffs. #Karma After 5 PKs you will start dropping up to 3 items if you die with high possibility of 40%. Weapons drop is 10%, Equip items 40% and others 50%. After deing you will be teleported out of the Goddard to walk in Ketra and erase it. #Wedding Once you get merried you will gain the Wedding Bow with 3 skills. Heart Shot(Recovers 1350hp to ur partner only), Double Heart Shot(Recovers 35% of your partner maximum Hp) and Wedding - Greater Shield(increased for 30 sec your partner's pDef by 200%) #Security System You have a choice to enable it or not once you join the game. If you enable it you can't disable the system again and you can't change the security code. So to enable it you use the command .security Once you enable it you have to submit it in every login whenever you want by pressing on the Security key that you took by entering ous. If you don't want to enter the code your char won't have full access. What do i mean? You will not be able to join into events, trades, changing titles, remove clan members, making damage to players(only mob can take dmg) etc. All the actions will be disabled until you submit the code. The only thing that you can do is to move, wear items from the current inventory and hitting mobs. This is a 4 to 10 numbers code and you must NOT forget it. #Enchant System Max for normal items is +20. Max for custom items is +20. All the normal items are automatic +4. Safe +5 Customs. The enchant rate for normal items starts from 95% and in every enchant loses -5%. The enchant rate for custom items starts from 75% for 3 enchants and in every enchant after 3 loses -10%. With normal enchant scrolls the normal items when it fails will be +4. With normal enchant scrolls the custom items when it fails will be vanished. With crystal enchant scrolls the normal items when it fails will be +10. Also are usable only after +10. With crystal enchant scrolls the custom items when it fails will be +0. With blessed enchant scrolls the normal items when it fails will take a penalty of -2 enchant level. Also are usable only after +15. With blessed enchant scrolls the custom items when it fails will take a penalty of -1 enchant level. Also are usable only after +7. Auto Pvp Enchanting with rate 2% for weapons 4% for the others. Can be enchanted until 18 for normal items and 8 for custom items. Augmentation Chances: Mid 5%, High 10%, Top 15%. Scrolls, Lifestones and Book of Giants are stackable When you are making doubleClick on a Lifestone the Augmention table will appears When you are making on the Gemstones C the Remove Augmetion table will appears Custom effect when you are making skill enchanting #PVP Taking pvps by supporting your party members(Config for the supp classes) is possible with a chance of 15%. You must be inside 1100 range and in combat. By holding a Cursed Weapon (Zariche,Mortis Ressa,Alhazzard,Akamanah) you have 40% chance to take pvps. PVP Skill system. Different skills for mage and fighters. Starting at 250, 500, 1000, 2000, 3000, 4000, 5000, 6500, 7500, 8500, 9500, 12000. PVP color system. Changing title and name color. Starting at 250, 1000, 2000, 3000, 4000, 5000, 6000, 8500, 10000 Taking Experience by the PVPS Killing Spree System Starting at 10, 15, 20 , 25(PVPHeroAura), 30, 35, 40, 45, 50, 75, 100(Hero until RR). Killing Spree Stopper Name in announce Special Spree for Hunter Village Starting at 3, 5, 8, 10, 12. Changing the names on this spree Dominating, Rampage, Unstoppable, WickedSick, GodLike. The status will be back to normal if you die or if you leave Hunters. Hunter's Village PVP. You name and title is going to "Random Sh1t" and "Hunter's Magic", party inside is forbidden, cursed weaps are forbidden, Buff keeping after die without noblesse, Limited items inside(Items that costs Blue Eva are disabled), the enchant colors are chaning in every click on the players, Experience gain is increased by 15% if your level is lower than 83. Rune High PVP. Everything is allowed there. The healing gain is decreased /2 if you are inside the town. Fame and Deaths points are counting only if you are inside Hunters or Rune. You can see the points by using ALT+T. Reputation points. Earning by pvping up to 30 from wars and losing up to 10 by dieing from a war with 40% chance. Rep points can take clans that are below level 8. If a clan is lvl 8 and kills some1 that his clan is lower level they don't lose Rep.Points. Trade Chat at 25 PVPs with 80 sec reuse chatting [ Region] Global Chat at 2500 PVPs with 50 sec reuse chatting [Global] Hero Chat without beeing a Hero at 10000 PVPs with 30 sec reuse chatting [Global] After deing if you have cubics won't be removed #Farming Alt+Click to see the Status,Drops. The Ancient Adena and the Adena are not included. Gludin as a safe farm for the newbies. Not a lot mobs but their respawn is low. Getting coins and bogs. Ruins of Despair is a normal farming zone without guards and all the mobs, one Raid Boss and a random spawn Mob that spawns almost every 3,5 hours there or in Abandonded Camp. Abandonded Camp is a normal farming zone without guards and all the mobs, one Raid Boss and a random spawn Mob that spawns almost every 3,5 hours there or in Ruins of Despair. A random mob with nice drops appears in Hunters Village or in Rune every 3,5 hours. 9 Raid Bosses in every single region. 1 for every region. They appears in the gatekeeper as "ZoneName(Rare)". Respawning time 6-12 hours 5 Grand Bosses that drops Jewels and items. 12-24 hour respawn. To enter you need event medal that you can earn it only by voting! Custom items. Titanium armor with 5 parts. Dynasty armor. Icarus weapons, dynasty weapons, Relic weapons and Accessories with custom stats. The armors are gaining ++ status by enchating them. Starting at +5, +8 and +10.The Dynasty Rapier works as a dagger and a swords. You can use Blows and every single skill that use sword. Relic weapons got unique aura enchanting. Different in every weapon. Also they can debuff you on critical hits. Like "Trick,Silence,Hex etc". Unique SS Effects on attacks by the Custom weapons. 0 to 3 the first effect 4-6 second effect 7-9 third effect and +10 the last effect. Rly Beautiful* Customs coins. Adena, Golden Apiga, Bloody Pa'agrio, Silver Shilen, Gold Einhasad, Blue Eva, Festival Adena, Event Medal, Glittering Medal. Creating Golden apiga by 1kkk adena. .deposit .withdraw commands Creating Silver Shilen by 50 Bloody Pa'agrio. Gold Einhasad are with low rates. Blue eva by 25 Gold Einhasad. Festival Adena by RB'S and Voting(after 20 votes the choice will appear). Event and Glittering Medals only by Voting. 3 New items that are used to Seed yourself with the Effect of Seed of Fire, Water and Wind. Usable only on urself. New potions Battle and War Pots. Increases pvpDamage or pvpDefense. in FameShop Herbs with different effects. in FameShop Different Healing Pots. in FameShop Reputation points #NPCs The npcs looks like normal players but with unique color names, items etc. Every single npc got really nice htmls. Simple and beautiful. Voting NPC (topzone, hopzone individual) Achievements NPC (Reaching the Achievements and get the reward. 12 Achievements) Top 10 Ranking by PVPs PKs Fame and Deaths Grand Bosses 10/2/2015 18:00 status Grand Olympiad Top 10 Ranking with matches played, points Item Store and Luxury Shop Buffer (Include Scheme) Gatekeeper with almost full tele places Symbol maker, WH, Auctionner, Priest, Class Manager, Wedding Manager, Pk Guard. #Grand Olympiad Games You need to be at least 85 level and have 250 pvp's to join the games. The games are totally annonymous. Your names will appear only in the end of the game. Crests, Titles, Hero Aura, Weap Colors are made in a way so you cant understand with the player that you are playing. Disabled everything that can show to your Challenger your identify. Oly is only with normal S grade items(not customs). Every 2 weeks the new heroes. 100 points as a reward to exchange em so you can buy items from the olympiad shop(custom edition). 2 Voodoo Doll weapons. 1 for Mage and 1 for Fighter. These weaps are in the Normal Items so they can't break with scrolls and their max enchant level is +20. They gives you buffs for the games. Buffs at +10,13,16,19 and 20. Recharge skills in every game. +1 Hero Skill for Damage. Unique skills from RB'S with nice effects. In every pack of classes the skills are chaning. Assassins, Healers, Warriors etc. Pressure Bomb on Titan, Striking of Thunderbolts on DreadNought, Dragon Thunder on Daggers, Thunderous Shot on Archers, Dragon Breath on Archmage, Meteor Storm on Orc Mages, Wind Force on Supporters, Fossilization on Dwarfs, Darkness Strike on Duelist and BD, Holy Light Burst on MysticMuse, Demonic Circle On StormScreamer, Fallen Magic on Soultaker, Lightning Eruption on Tyrant and Prophet, Death Trap on Tanks and Frozen Ring Storm on SwordMuse and Evas Templar. No hero skills on subs. Fixed reuses to be the same for mages and fighters also the timing and the rate of Heroic Dread and Heroic Grandeur. #Clan Increases ur clan level until 5 is completly free. After +5 you may need items, RP points and clan members. For level 6 you need 30 members and 10k RP points. For level 7 you need 45 members and 20k RP points. For level 8 you need 60 members and 40k RP points. To create guards the cost is 2000 RP and for knights is 5000 RP. Clan war at 10 members and max allies 3. Siege Period Every 1 Week. .castle command to see the sieges #Skills and Classes The hitting time and the reuse time is made in a way to be a bit balanced. The debuffs times is reduced. 3sec to stuns, buffs, fears, 5sec to para, silence, sleep, root and 7 seconds to the others. There is a debuff protection system. Getting the same debuff every "x" time. Example getting Stun now and the next stun that will work will be after 15seconds. 10sec for tricks, 15sec for fears, sleep, root, para, silence, bluff and stun. 12sec for aggro. This system works only with the players. New skills added in some classes to make a better balance for a pvp server always*. DreadNought: Dash lvl 1, War Cry lvl 2. Shock blast is usable only if you have 250 distance from the enemy. Braveheart restores 30%CP, Battle roar now recovers 35% hp on lvl 6 and increases 10% your maximum HP. Wrath makes 30% damage on ur CP. 70% chance to work. Provoke decreases 10% restistance into pole weapon types. Phoenix Knight: Buffs Iron Will now gives 100mDef doesnt stuck with M.Barrier. Holy blade +10% pAtk to party members. Holy Armor +10%pDef and 10% resist to holy atks to party members. Aegis stance now gives also +200pDef. Ultimate defense is only for 10 secs and you are able to move with it. Vengeance gives you +500 range attack when you use it. Hell Knight: Added 3 Cubics. Phantom, Vampire and Binding Cubic. Shield of Revenge reflect 50% of the dmg back and have 50% chance to avoid blow atks. Archmage: Added Earth Vortex and Stone. Possibility of Half lethal with Stone 7% and 1100 range. Arcane Lord: Added Shadow spark lvl 3(Range 1100) and Frenzied Servitor(Usable when your pet's hp is lower or 30%). Cardinal: Added Holy armor lvl 2, Dark Vortex, Light Vortex. Dark Vortex power is increased and the Absorb part is decreased. Cleanse now removes the debuffs of all the party(bigger reuse), Purify works like cleanse but only in one. Hierophant: Added Fist Fury, Bear Spirit Totem, Puma Spirit Totem, Wolf Spirit Totem, Revival, Zealot lvl 3, Angelic Icon lvl1, Dodge, Burning Fist, Soul Breaker, Shadow Spark lvl3, Shadow Flare(Half Lethal possibility 7%) Evas Templar: Added summon Fang of Eva and Angelic Icon. SwordMuse: Added Sonic focus lvl7, Sonic Blaster, War Cry lvl2, Ultimate Evasion lvl1, Dodge and Armor Crush(New Debuff Effect). Sprint gives +5 runSpd and doesnt stuck with WindWalk buff. Spirit Barrier gives +100 mDef and doesnt stuck with M.Barrier. Song of Life gives +5% maxHp. MysticMuse: Solar Flare has chance of Half Lethal 7% and increased range to 1100. Elemental Master: Frenzied Servitor(Usable when your pet's hp is lower or 30%). Eva Saint: Balance Mana(Balance the party's mana and gives +20% pvpDef for 5seconds), Body of Avatar(Restores 35% mana to all the party members), Salvation, Cleanse, Celestial Shield, Mass Resurrection, Greater Battle Mana(Restores mana to one player), Group Major MP(Restores mana to party members), Ice Vortex and Light Vortex, Life Cubic and Storm Cubic. Arcane widsom now decreases only 100 cast speed. SpectralDancer: Added Rage, Duelist Spirit, Triple Slash, Counterattack, Dash and Ultimate Evasion. Dance of Protection now gives 200mDef and pDef. Dance of Medusa now turn the enemy into Stone but you can deal damage to him. Poison Blade Dance now making the enemy to start Dancing while is in Stun Effect. ShillienSaint: Added Life and Viper Cubics, Darkness Armor(+10%mDef and dark resist to party members), Darkness Blade(+10%mAtk to party members), Balance Combat Points(Balance CP to ur party members and gives for 5 sec pvpDam +20%), Body of Avatar(Restores 35% CP to ur party members), Restore CP(Restores 30% CP to one), Major CP(Recovers CP), Group Major CP(Recovers CP to party members), Cleanse, Salvation, Celestial Shield, Dark Vortex, Wind Vortex and Mass Resurrection. Titan: Frenzy is usable at 60% hp but the pAtk is decreased. DoomCryer: Added Holy Armor, Angelic Icon. Darkness Armor, True Brotherhood(Makes invul for 5sec all ur party members), Chant of Protection(Recovers CP and gives pDef and mDef for 3sec). Chant of Revenge now reflects 100% magical and physical debuffs for 10sec(Party Skill). Maestro: Added Dash, War Cry, Battle Roar, Ultimate Transfer(transfers 100% dmg to ur pet for 10sec), Golem's Recovery(Restores hp and gives 1k pDef,mDef and pAtk for 3sec) Summon Big Boom now is called "Summon Crazy Mechanic Golem". This Golem lives for 25 seconds with insane defense status. Make a combo with Ultimate Transfer and this Golem to be immune to damage for almost 20 seconds. Sweeper now makes root. FortuneSeeker: Added Rage, Dash, Stand Bomb(works like frenzy). Spoil now regen hp over 15 seconds. Spoil Festival recovers hp once by 20% but you need the effect of Spoil in order to use it. Spoil Crush now makes damage direct to hp with 35% Power. The Chance is 70% to work and u sucrifice 1k from ur own hp in order to use the skill. Others: Mana Burn skill is now making damage in percent of ur current Mana. Ultimate Evasion gives 40% chance to avoid Blow atks. Summoners pet buffs stuck with every buff and doesnt count as a buff. Lethals have 4% chance to work to 1hp and 7% to work to "half lethal" only Cp reduce to players and half Hp to mobs. Steal Essense mana is reduced by almost 40. Greating healing potion effect is increased also the chant of Life Effect. Heal gain is now getting reduced by /1.5 if you are flagged. Doesn't stuck with the Rune effect that is /2. All the Summon Pets have increased cast time and reuse. The Fighter classes when they use bow and their class isn't archer they gain accuracy penalty. The same exists with the tanks when they are using Dagger. Mana pots restores 5000 mp with 5 sec reuse time. For healers "Cardinals, Eva Saint and Shillien Saint" the restore is /5 so 1000 mana with 5sec reuse. Every debuff that is used in one player the power to succeed is 80% with 0 resists. For skills that are AIO the chance is 50%. By sitting the Regen on your CP,MP,HP is greatly increased by high%. Disable the heal on Monster and Raid Bosses. Inferno, Blizzard and Demon Wind can knockdown ur enemy. Dominator can use INT Dyes. New Stats: absorbCp, absorbMp, pvpPhysDef, pvpMagicalDef, pvpPhysSkillsDef, pAtk-human, pAtk-elf, pAtk-delf, pAtk-orc, pAtk-dwarf #TvT Joinable in Rune Lvl 83-89 to join 2 Teams [Yellow & Green] Price for the winner Team 4 Gold Einhasad Price for the losers 1 Gold Einhasad Additional 1 Gold Einhasad for the Top Killer You cant attack your teamates with hit or spells 10 minutes the registration 10 minutes the event TvT Every 3hours #CTF Joinable in Rune Lvl 83-89 to join 2 Teams [Yellow & Green] Price for the winner Team 4 Gold Einhasad Price for the losers 1 Gold Einhasad Additional 10 Silver Shilen for every time that you score You have 60 seconds to score when you have the flag else the flag will go back to the position You cant attack your teamates with hit or spells 10 minutes the registration 10 minutes the event CTF Every 3hours #DM Joinable in Rune Lvl 83-89 to join The 3 first top killers will take 2 Gold Einhasad as reward 10 minutes the registration 5 minutes the event DM Every 3hours
-
1. speak better to me 2. just stacy doll can move my topic on another section and dont lock it. Do you get it now?
-
It is not allowed anymore to copy/paste the post in order to just share the server. The topic will be locked/junked without any notice. :) who tell to stacy doll server is off? server is on beta so.. just i give grand opening and is not just share, is advertising...