Jump to content

DarknessVoice

Members
  • Posts

    56
  • Credits

  • Joined

  • Last visited

  • Feedback

    0%

Everything posted by DarknessVoice

  1. with a massive advertisment it won't ,we are advertising to success O0 20/04/2013 even we already test every skills every classe every bot etc .. +1 you need at least 300++ active (i'm doing my best a masive advertisment)
  2. Good Question >:D Why to join : 1st of all we dont have many Costume npc (buffer , gmshop ..etc) So you want find kids and newbies 2nd a stable server with ddos protection (antiboot ,etc...) 3rd you want wast 2 or more your life leveling or farming and and the next day you'll find a kids with full +16 :rage: 4th 20/24 hours day staff 5th if you like low/mid rate server you should give it a shot ;) and dont forget the Clans who's waiting for the count down ,if you're not too good to play against them dont Joine :troll: 6th skills and characters fully balanced , 99% uptime , and dont forget the Sieges and Olly you'll fight against clans formed 6 years ago ;D
  3. Hello MXC L2 Darknessvoice is a low/mid rate server using the stucksub classe system (main+1) with a fully balanced classes (all skills reworked and tested) - you need to kill golkonda to add a subclasse -buffs slot 20 +4 -debuff slot 6 cast only -buffs time 20 - the server is using craft system you can find untill c grad weap in shop (no costume gmshop or buffer) -verry active staff -1st and 2nd classe items are in shop (or you can add in classe master for a little more a-beep-t of adena ) -you need to kill a boss (Golkonda) to add subclasse Server Rates! * Experience: x20 * Sp Experience: x20 * Party Experience: x1.5 * Party Sp Experience: x1.5 * Adena: x30 * Subclasses = main+ 1 * Max Alliances = clan+ 3 Enchant rates! * Max Enchant = +16 for all scrolls * Safe Enchant = +3 for all scrolls * Normal enchant scroll rate = 56% * Blessed enchant scrool rate = 68% * Normal Scroll - If Enchant fails item broke * Blessed Scroll - If Enchant Fails items not broke just retuns to safe * Scrolls/LS/BOGS stackable Dedicated Info! * CPU: 2x i7 990x (12 cores) * RAM: 32 GB DDRIII 2133 ECC Memory * HD: 120x3 SSD Hard Drive! * BW: 1000 Mbps * GR: 40 mb/s minium conection for international people. Web : http://l2.darknessvoice.coml ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- FACEBOOK : https://www.facebook.com/L2DVl Server Down the reopning will be in 27/04 what's new ?!! classe manager -1st Classe for 400k -2nd classe for 1kk -adding pc bang point to buy some c grad equipment -Removing the mobs stat (Making them Easy to kill ) - adding comands (/invite /unstuck etc..) -Using advertising expert -Will Recruting 2x GameMasters Since it's internations server !!! ( More info at the facebook page) - Forum is working ... For More NeWS : join us at https://www.facebook.com/L2DVl
  4. well you dont need the mirmir elixre quest but you need item you can get it from a boss (Golkonda LongHorn)
  5. The web site is : http://l2.darknessvoice.com/home.html For custom npc, Golkonda For subclasse ; There is no npc buffer, and no gm shop.item till C grad. only craft. The web site is : http://l2.darknessvoice.com/home.html , and there is no gm shop item till C grad and continue with crafting items.
  6. Hello MXC L2 DarknessVoice is a stucksub server with the following rates Server Rates! * Experience: x20 * Sp Experience: x20 * Party Experience: x1.5 * Party Sp Experience: x1.5 * Adena: x30 * Subclasses = main+ 1 * Max Alliances = clan+ 3 Enchant rates! * Max Enchant = +16 for all scrolls * Safe Enchant = +3 for all scrolls * Normal enchant scroll rate = 56% * Blessed enchant scrool rate = 68% * Normal Scroll - If Enchant fails item broke * Blessed Scroll - If Enchant Fails items not broke just retuns to safe * Scrolls/LS/BOGS stackable Dedicated Info! * CPU: 2x i7 990x (12 cores) * RAM: 32 GB DDRIII 2133 ECC Memory * HD: 120x3 SSD Hard Drive! * BW: 1000 Mbps * GR: 40 mb/s minium conection for international people. * Host Location : Europe. Web : http://l2.darknessvoice.com/featured.html
  7. it's a normale files contain this Index: head-src/com/l2jfrozen/gameserver/handler/voicedcommandhandlers/ChangePassword.java =================================================================== --- head-src/com/l2jfrozen/gameserver/handler/voicedcommandhandlers/ChangePassword.java (revision 0) +++ head-src/com/l2jfrozen/gameserver/handler/voicedcommandhandlers/ChangePassword.java (revision 0) @@ -0,0 +1,91 @@ +/* + * 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.util.StringTokenizer; + +import com.l2jfrozen.gameserver.handler.IVoicedCommandHandler; +import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance; +import com.l2jfrozen.gameserver.thread.LoginServerThread; + + + + +/** + * + * @author Nik + * + */ +public class ChangePassword implements IVoicedCommandHandler +{ + private static final String[] _voicedCommands = + { + "changepassword" + }; + + @Override + public boolean useVoicedCommand(String command, L2PcInstance activeChar, String target) + { + if (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() < 3) + { + activeChar.sendMessage("The new password is shorter than 3 chars! Please try with a longer one."); + return false; + } + if (newpass.length() > 30) + { + activeChar.sendMessage("The new password is longer than 30 chars! Please try with a shorter one."); + return false; + } + + LoginServerThread.getInstance().sendChangePassword(activeChar.getAccountName(), activeChar.getName(), curpass, newpass); + } + else + { + activeChar.sendMessage("Invalid password data! You have to fill all boxes."); + return true; + } + } + catch (Exception e) + { + activeChar.sendMessage("A problem occured while changing password!"); + //_log.log(Level.WARNING, "", e); + } + } + else + { + //showHTML(activeChar); + String html = HtmCache.getInstance().getHtm("en", "data/html/mods/ChangePassword.htm"); + if (html == null) + html = "<html><body><br><br><center><font color=LEVEL>404:</font> File Not Found</center></body></html>"; + activeChar.sendPacket(new NpcHtmlMessage(1, html)); + return true; + } + return true; + } + + @Override + public String[] getVoicedCommandList() + { + return _voicedCommands; + } +} Index: head-src/com/l2jfrozen/gameserver/thread/LoginServerThread.java =================================================================== --- head-src/com/l2jfrozen/gameserver/thread/LoginServerThread.java (revision 986) +++ head-src/com/l2jfrozen/gameserver/thread/LoginServerThread.java (working copy) @@ -32,6 +32,7 @@ import java.security.spec.RSAPublicKeySpec; import java.util.List; import java.util.Map; +import java.util.logging.Level; import java.util.logging.Logger; import javolution.util.FastList; @@ -48,12 +49,14 @@ import com.l2jfrozen.gameserver.network.gameserverpackets.AuthRequest; import com.l2jfrozen.gameserver.network.gameserverpackets.BlowFishKey; import com.l2jfrozen.gameserver.network.gameserverpackets.ChangeAccessLevel; +import com.l2jfrozen.gameserver.network.gameserverpackets.ChangePassword; import com.l2jfrozen.gameserver.network.gameserverpackets.GameServerBasePacket; import com.l2jfrozen.gameserver.network.gameserverpackets.PlayerAuthRequest; import com.l2jfrozen.gameserver.network.gameserverpackets.PlayerInGame; import com.l2jfrozen.gameserver.network.gameserverpackets.PlayerLogout; import com.l2jfrozen.gameserver.network.gameserverpackets.ServerStatus; import com.l2jfrozen.gameserver.network.loginserverpackets.AuthResponse; +import com.l2jfrozen.gameserver.network.loginserverpackets.ChangePasswordResponse; import com.l2jfrozen.gameserver.network.loginserverpackets.InitLS; import com.l2jfrozen.gameserver.network.loginserverpackets.KickPlayer; import com.l2jfrozen.gameserver.network.loginserverpackets.LoginServerFail; @@ -378,6 +381,9 @@ doKickPlayer(kp.getAccount()); kp = null; break; + case 0xF8: + new ChangePasswordResponse(decrypt); + break; } } } @@ -605,6 +611,20 @@ { return _maxPlayer; } + + public void sendChangePassword(String accountName, String charName, String oldpass, String newpass) + { + ChangePassword cp = new ChangePassword(accountName, charName, oldpass, newpass); + try + { + sendPacket(cp); + } + catch (IOException e) + { + if (Config.DEBUG) + _log.log(Level.WARNING, "", e); + } + } /** * @param id Index: head-src/com/l2jfrozen/gameserver/network/clientpackets/RequestBypassToServer.java =================================================================== --- head-src/com/l2jfrozen/gameserver/network/clientpackets/RequestBypassToServer.java (revision 986) +++ head-src/com/l2jfrozen/gameserver/network/clientpackets/RequestBypassToServer.java (working copy) @@ -27,6 +27,8 @@ import com.l2jfrozen.gameserver.datatables.sql.AdminCommandAccessRights; import com.l2jfrozen.gameserver.handler.AdminCommandHandler; import com.l2jfrozen.gameserver.handler.IAdminCommandHandler; +import com.l2jfrozen.gameserver.handler.IVoicedCommandHandler; +import com.l2jfrozen.gameserver.handler.VoicedCommandHandler; import com.l2jfrozen.gameserver.handler.custom.CustomBypassHandler; import com.l2jfrozen.gameserver.model.L2Object; import com.l2jfrozen.gameserver.model.L2World; @@ -287,6 +288,48 @@ + else if (_command.startsWith("voice ")) + { + //only voice commands allowed in bypass for html (bypass -h voice .changepassword) + if (_command.length() > 7 + && _command.charAt(6) == '.') + { + final String vc, vparams; + final int endOfCommand = _command.indexOf(" ", 7); + if (endOfCommand > 0) + { + vc = _command.substring(7, endOfCommand).trim(); + vparams = _command.substring(endOfCommand).trim(); + } + else + { + vc = _command.substring(7).trim(); + vparams = null; + } + if (vc.length() > 0) + { + final IVoicedCommandHandler vch = VoicedCommandHandler.getInstance().getVoicedCommandHandler(vc); + if (vch != null) + vch.useVoicedCommand(vc, activeChar, vparams); + } + } + } else if(_command.startsWith("Quest ")) { if(!activeChar.validateBypass(_command)) Index: head-src/com/l2jfrozen/gameserver/network/loginserverpackets/ChangePasswordResponse.java =================================================================== --- head-src/com/l2jfrozen/gameserver/network/loginserverpackets/ChangePasswordResponse.java (revision 0) +++ head-src/com/l2jfrozen/gameserver/network/loginserverpackets/ChangePasswordResponse.java (revision 0) @@ -0,0 +1,38 @@ +/* + * 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.network.loginserverpackets; + +import com.l2jfrozen.gameserver.model.L2World; +import com.l2jfrozen.gameserver.model.actor.instance.L2PcInstance; + + + + +public class ChangePasswordResponse extends LoginServerBasePacket +{ + + public ChangePasswordResponse(byte[] decrypt) + { + super(decrypt); + //boolean isSuccessful = readC() > 0; + String character = readS(); + String msgToSend = readS(); + + L2PcInstance player = L2World.getInstance().getPlayer(character); + + if (player != null) + player.sendMessage(msgToSend); + } +} \ No newline at end of file Index: head-src/com/l2jfrozen/gameserver/network/gameserverpackets/ChangePassword.java =================================================================== --- head-src/com/l2jfrozen/gameserver/network/gameserverpackets/ChangePassword.java (revision 0) +++ head-src/com/l2jfrozen/gameserver/network/gameserverpackets/ChangePassword.java (revision 0) @@ -0,0 +1,41 @@ +/* + * 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.network.gameserverpackets; + +import java.io.IOException; + + +/** + * @author UnAfraid + * + */ +public class ChangePassword extends GameServerBasePacket +{ + public ChangePassword(String accountName, String characterName, String oldPass, String newPass) + { + writeC(0x1F); + writeS(accountName); + writeS(characterName); + writeS(oldPass); + writeS(newPass); + } + + @Override + public byte[] getContent() throws IOException + { + return getBytes(); + } +} \ No newline at end of file Index: head-src/com/l2jfrozen/gameserver/cache/HtmCache.java =================================================================== --- head-src/com/l2jfrozen/gameserver/cache/HtmCache.java (revision 986) +++ head-src/com/l2jfrozen/gameserver/cache/HtmCache.java (working copy) @@ -213,6 +213,26 @@ return content; } + + //added for gethtm + public String getHtm(String prefix, String path) + { + String newPath = null; + String content; + if (prefix != null && !prefix.isEmpty()) + { + newPath = prefix + path; + content = getHtm(newPath); + if (content != null) + return content; + } + + content = getHtm(path); + if (content != null && newPath != null) + _cache.put(newPath.hashCode(), content); + + return content; + } public String getHtm(String path) { Index: head-src/com/l2jfrozen/loginserver/GameServerThread.java =================================================================== --- head-src/com/l2jfrozen/loginserver/GameServerThread.java (revision 986) +++ head-src/com/l2jfrozen/loginserver/GameServerThread.java (working copy) @@ -41,12 +41,14 @@ import com.l2jfrozen.gameserver.datatables.GameServerTable.GameServerInfo; import com.l2jfrozen.loginserver.network.gameserverpackets.BlowFishKey; import com.l2jfrozen.loginserver.network.gameserverpackets.ChangeAccessLevel; +import com.l2jfrozen.loginserver.network.gameserverpackets.ChangePassword; import com.l2jfrozen.loginserver.network.gameserverpackets.GameServerAuth; import com.l2jfrozen.loginserver.network.gameserverpackets.PlayerAuthRequest; import com.l2jfrozen.loginserver.network.gameserverpackets.PlayerInGame; import com.l2jfrozen.loginserver.network.gameserverpackets.PlayerLogout; import com.l2jfrozen.loginserver.network.gameserverpackets.ServerStatus; import com.l2jfrozen.loginserver.network.loginserverpackets.AuthResponse; +import com.l2jfrozen.loginserver.network.loginserverpackets.ChangePasswordResponse; import com.l2jfrozen.loginserver.network.loginserverpackets.InitLS; import com.l2jfrozen.loginserver.network.loginserverpackets.KickPlayer; import com.l2jfrozen.loginserver.network.loginserverpackets.LoginServerFail; @@ -189,6 +191,9 @@ case 06: onReceiveServerStatus(data); break; + case 0x1F: + new ChangePassword(data); + break; default: _log.warning("Unknown Opcode (" + Integer.toHexString(packetType).toUpperCase() + ") from GameServer, closing connection."); forceClose(LoginServerFail.NOT_AUTHED); @@ -702,6 +707,19 @@ kp = null; } + + public void ChangePasswordResponse(byte successful, String characterName, String msgToSend) + { + ChangePasswordResponse cpr = new ChangePasswordResponse(successful, characterName, msgToSend); + try + { + sendPacket(cpr); + } + catch (IOException e) + { + e.printStackTrace(); + } + } /** * @param gameExternalHost Index: head-src/com/l2jfrozen/loginserver/network/gameserverpackets/ChangePassword.java =================================================================== --- head-src/com/l2jfrozen/loginserver/network/gameserverpackets/ChangePassword.java (revision 0) +++ head-src/com/l2jfrozen/loginserver/network/gameserverpackets/ChangePassword.java (revision 0) @@ -0,0 +1,120 @@ +/* + * 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.loginserver.network.gameserverpackets; + +import java.security.MessageDigest; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.Collection; +import java.util.logging.Level; +import java.util.logging.Logger; + +import com.l2jfrozen.crypt.Base64; +import com.l2jfrozen.gameserver.datatables.GameServerTable; +import com.l2jfrozen.gameserver.datatables.GameServerTable.GameServerInfo; +import com.l2jfrozen.loginserver.GameServerThread; +import com.l2jfrozen.loginserver.network.clientpackets.ClientBasePacket; +import com.l2jfrozen.util.database.L2DatabaseFactory; + + + +/** + * @author Nik + */ +public class ChangePassword extends ClientBasePacket +{ + protected static Logger _log = Logger.getLogger(ChangePassword.class.getName()); + private static GameServerThread gst = null; + + public ChangePassword(byte[] decrypt) + { + super(decrypt); + + String accountName = readS(); + String characterName = readS(); + String curpass = readS(); + String newpass = readS(); + + //get the GameServerThread + Collection<GameServerInfo> serverList = GameServerTable.getInstance().getRegisteredGameServers().values(); + for (GameServerInfo gsi : serverList) + if (gsi.getGameServerThread() != null && gsi.getGameServerThread().hasAccountOnGameServer(accountName)) + gst = gsi.getGameServerThread(); + + if (gst == null) + return; + + if (curpass == null || newpass == null) + gst.ChangePasswordResponse((byte) 0, characterName, "Invalid password data! Try again."); + else + { + Connection con = null; + try + { + 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; + + // SQL connection + con = L2DatabaseFactory.getInstance().getConnection(); + PreparedStatement statement = con.prepareStatement("SELECT password FROM accounts WHERE login=?"); + statement.setString(1, accountName); + 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); + + // SQL connection + PreparedStatement ps = con.prepareStatement("UPDATE accounts SET password=? WHERE login=?"); + ps.setString(1, Base64.encodeBytes(password)); + ps.setString(2, accountName); + passUpdated = ps.executeUpdate(); + ps.close(); + + _log.log(Level.INFO, "The password for account " + accountName + " has been changed from " + curpassEnc + " to " + Base64.encodeBytes(password)); + if (passUpdated > 0) + gst.ChangePasswordResponse((byte) 1, characterName, "You have successfully changed your password!"); + else + { + gst.ChangePasswordResponse((byte) 0, characterName, "The password change was unsuccessful!"); + L2DatabaseFactory.close(con); + } + } + else + gst.ChangePasswordResponse((byte) 0, characterName, "The typed current password doesn't match with your current one."); + } + catch (Exception e) + { + _log.warning("Error while changing password for account " + accountName + " requested by player " + characterName + "! " + e); + } + finally + { + // close the database connection at the end + L2DatabaseFactory.close(con); + } + } + } +} \ No newline at end of file Index: head-src/com/l2jfrozen/loginserver/network/loginserverpackets/ChangePasswordResponse.java =================================================================== --- head-src/com/l2jfrozen/loginserver/network/loginserverpackets/ChangePasswordResponse.java (revision 0) +++ head-src/com/l2jfrozen/loginserver/network/loginserverpackets/ChangePasswordResponse.java (revision 0) @@ -0,0 +1,43 @@ +/* + * This program is free software: you can redistribute it and/or modify it under + * the terms of the GNU General Public License as published by the Free Software + * Foundation, either version 3 of the License, or (at your option) any later + * version. + * + * This program is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS + * FOR A PARTICULAR PURPOSE. See the GNU General Public License for more + * details. + * + * You should have received a copy of the GNU General Public License along with + * this program. If not, see <http://www.gnu.org/licenses/>. + */ +package com.l2jfrozen.loginserver.network.loginserverpackets; + +import java.io.IOException; + +import com.l2jfrozen.loginserver.network.serverpackets.ServerBasePacket; + + + + +/** + * @author Nik + */ +public class ChangePasswordResponse extends ServerBasePacket +{ + public ChangePasswordResponse(byte successful, String characterName, String msgToSend) + { + writeC(0xF8); + //writeC(successful); //0 false, 1 true + writeS(characterName); + writeS(msgToSend); + } + + @Override + public byte[] getContent() throws IOException + { + return getBytes(); + } + +} \ No newline at end of file but dunno where to put it in source
  8. You may wanna check this one http://l2.darknessvoice.com/download.html
  9. hello ,cheaters devlopers O0 i just had a costume mode "changepassword" ingame and and the folder have in it core.patch someone can tell me where to past ...?
  10. :not bad: this won't restart the whole server ?!! :o
  11. where to add this code to make it works :D ? :poker face:
  12. when i use the 1st login server it works even with 2nd gameserver i get problem when i creat a char
  13. hello cheaters , devlopers :good sir: i just set up the new rev 986 "l2j frozen" but when i try to login i get accese failed , please try again later , dont know why is possible i have this problem cause i have 2x database two different rev in to two different locations ? ...
  14. i dont know hot to upadte rev and i cannot even find the latest rev compiled
  15. hello , i just downloaded "SubStack Npc Interlude " from here ---> http://www.l2jfrozen.com/forum/index.php?topic=11895.0 but when i try to use it i get problem in line 12 from com.l2jfrozen.util.database import L2DatabaseFactory from com.l2jfrozen.gameserver.model.quest import State from com.l2jfrozen.gameserver.model.quest import QuestState from com.l2jfrozen.gameserver.model.quest.jython import QuestJython as JQuest from com.l2jfrozen.gameserver.network.serverpackets import CharInfo from com.l2jfrozen.gameserver.network.serverpackets import UserInfo from com.l2jfrozen.gameserver.network.serverpackets import SetupGauge from com.l2jfrozen.gameserver.model.base import ClassId from com.l2jfrozen.gameserver.datatables.xml import ExperienceData from com.l2jfrozen.gameserver.model.actor.instance import L2PcInstance from com.l2jfrozen.gameserver.datatables import SkillTable from com.l2jfrozen.gameserver.datatables.sql import SkillTreeTable from com.l2jfrozen.gameserver.model import L2Skill dont know why but i can't import ExperienceData i'm using a compiled rev revision=855 builddate=05-08-2011 01:33:49 PM repository=http://subversion.assembla.com/svn/L2jFrozenInterlude/trunk/gameserver
  16. Hello cheaters devlopers :good sir: i was woundring if is it possible to add an item quest or tradable instead of mirmir elixir quest well i already disabled the quest but i wanna know if is it possible to add item to the real classmaster not own npc for subclass :dat: if yes how to add it :poker face: i'm using interlude
×
×
  • Create New...