Jump to content

Caparso

Members
  • Posts

    88
  • Credits

  • Joined

  • Last visited

  • Days Won

    6
  • Feedback

    0%

Everything posted by Caparso

  1. another custom manager, that shows status (alive or respawn estimating time) of any raidboss in da game. originally status is 'divided' onto two individual lists: private static final int[] RBOSSES = {25418,25434,25126}; private static int MBOSS = 25126;MBOSS main boss (one and only).RBOSSES list of additional bosses (as many as you want). preview: http://s1.postimg.org/dqli7zcf2/rbstatus_preview.jpg ps. credits to daffynash who spared some of you the tedious work by creating the patch. ### Eclipse Workspace Patch 1.0 #P aCis_datapack Index: data/xml/npcs/50000-50999.xml =================================================================== --- data/xml/npcs/50000-50999.xml (revision 6) +++ data/xml/npcs/50000-50999.xml (working copy) @@ -1,5 +1,38 @@ <?xml version="1.0" encoding="utf-8"?> <list> + <npc id="50001" idTemplate="25449" name="BOSS STATUS" title="L2EUPHORIA.COM"> + <set name="level" val="80"/> + <set name="radius" val="15"/> + <set name="height" val="28"/> + <set name="rHand" val="0"/> + <set name="lHand" val="0"/> + <set name="type" val="L2RaidBossStatus"/> + <set name="exp" val="0"/> + <set name="sp" val="0"/> + <set name="hp" val="5000"/> + <set name="mp" val="2500"/> + <set name="hpRegen" val="8"/> + <set name="mpRegen" val="8"/> + <set name="pAtk" val="100"/> + <set name="pDef" val="100"/> + <set name="mAtk" val="100"/> + <set name="mDef" val="100"/> + <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="false" seedable="false"/> + </npc> + <npc id="50006" idTemplate="31228" name="Roy the Cat" title="Class Manager"> <set name="level" val="70"/> <set name="radius" val="9"/> Index: data/html/mods/RaidBossStatus/50001.htm =================================================================== --- data/html/mods/RaidBossStatus/50001.htm (revision 0) +++ data/html/mods/RaidBossStatus/50001.htm (working copy) @@ -0,0 +1,21 @@ +<html><title>BOSS STATUS</title><body> +<br><table width=300><tr><td align=center> +<img src="L2UI_CH3.herotower_deco" width=256 height=32> + +<br><br><br><br> +<font color=a2a0a2>ancient scrolls reveals truth of their return +<br1>defeat was merely delay ...</font> +</td></tr></table> + +<br> +<img src=L2UI.SquareGray width=300 height=1> +<table width=300 height=27 bgcolor="000000"> + <tr> + <td align=center width=300>%mboss%</td> + </tr> +</table> +<img src=L2UI.SquareGray width=300 height=1> + +<br> +<center>%bosslist%</center> +</body></html> \ No newline at end of file #P aCis_gameserver Index: java/net/sf/l2j/gameserver/instancemanager/RaidBossSpawnManager.java =================================================================== --- java/net/sf/l2j/gameserver/instancemanager/RaidBossSpawnManager.java (revision 9) +++ java/net/sf/l2j/gameserver/instancemanager/RaidBossSpawnManager.java (working copy) @@ -45,6 +45,7 @@ protected final static Map<Integer, L2RaidBossInstance> _bosses = new HashMap<>(); protected final static Map<Integer, L2Spawn> _spawns = new HashMap<>(); + protected final static Map<Integer, Long> _respawns = new HashMap<>(); protected final static Map<Integer, StatsSet> _storedInfo = new HashMap<>(); protected final static Map<Integer, ScheduledFuture<?>> _schedules = new HashMap<>(); @@ -142,6 +143,7 @@ _log.info("RaidBoss: " + raidboss.getName() + " has spawned."); _bosses.put(bossId, raidboss); + _respawns.put(bossId,0L); } _schedules.remove(bossId); @@ -148,6 +150,14 @@ } } + public long getRespawntime(int id) + { + if(_respawns.containsKey(id)) + return _respawns.get(id); + + return -1; + } + public void updateStatus(L2RaidBossInstance boss, boolean isBossDead) { if (!_storedInfo.containsKey(boss.getNpcId())) @@ -171,6 +181,7 @@ { _log.info("RaidBoss: " + boss.getName() + " - " + StringUtil.DATE_MM.format(respawnTime) + " (" + respawnDelay + "h)."); + _respawns.put(boss.getNpcId(), Calendar.getInstance().getTimeInMillis() + (respawnDelay * 3600000L)); _schedules.put(boss.getNpcId(), ThreadPoolManager.getInstance().scheduleGeneral(new spawnSchedule(boss.getNpcId()), respawnDelay * 3600000)); updateDb(); } @@ -179,6 +190,8 @@ { boss.setRaidStatus(StatusEnum.ALIVE); + _respawns.put(boss.getNpcId(), 0L); + info.set("currentHP", boss.getCurrentHp()); info.set("currentMP", boss.getCurrentMp()); info.set("respawnTime", 0L); @@ -226,11 +239,13 @@ info.set("respawnTime", 0L); _storedInfo.put(bossId, info); + _respawns.put(bossId, 0L); } } else { long spawnTime = respawnTime - Calendar.getInstance().getTimeInMillis(); + _respawns.put(bossId,respawnTime); _schedules.put(bossId, ThreadPoolManager.getInstance().scheduleGeneral(new spawnSchedule(bossId), spawnTime)); } @@ -272,6 +287,9 @@ SpawnTable.getInstance().deleteSpawn(spawnDat, false); _spawns.remove(bossId); + if (_respawns.containsKey(bossId)) + _respawns.remove(bossId); + if (_bosses.containsKey(bossId)) _bosses.remove(bossId); @@ -412,6 +430,7 @@ _schedules.clear(); } + _respawns.clear(); _storedInfo.clear(); _spawns.clear(); } Index: java/net/sf/l2j/gameserver/model/actor/instance/L2RaidBossStatusInstance.java =================================================================== --- java/net/sf/l2j/gameserver/model/actor/instance/L2RaidBossStatusInstance.java (revision 0) +++ java/net/sf/l2j/gameserver/model/actor/instance/L2RaidBossStatusInstance.java (working copy) @@ -0,0 +1,126 @@ +/* + * 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.Calendar; +import net.sf.l2j.gameserver.cache.HtmCache; +import net.sf.l2j.gameserver.datatables.NpcTable; +import net.sf.l2j.gameserver.instancemanager.RaidBossSpawnManager; +import net.sf.l2j.gameserver.model.actor.template.NpcTemplate; +import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage; + +public class L2RaidBossStatusInstance extends L2NpcInstance +{ + private static final int[] RBOSSES = {25418,25434,25126}; + private static int MBOSS = 25126; + + public L2RaidBossStatusInstance(int objectId, NpcTemplate template) + { + super(objectId, template); + } + + @Override + public void showChatWindow(L2PcInstance player) + { + generateFirstWindow(player); + } + + private void generateFirstWindow(L2PcInstance activeChar) + { + final StringBuilder sb = new StringBuilder(); + + for(int rboss : RBOSSES) + { + + long delay = RaidBossSpawnManager.getInstance().getRespawntime(rboss); + String name = NpcTable.getInstance().getTemplate(rboss).getName().toUpperCase(); + + if (delay==0) + { + sb.append("<font color=\"b09979\">"+name +" IS ALIVE!</font><br1>"); + } + else if (delay<0) + { + sb.append("<font color=\"FF0000\"> "+name +" IS DEAD.</font><br1>"); + } + else + { + delay = RaidBossSpawnManager.getInstance().getRespawntime(rboss) - Calendar.getInstance().getTimeInMillis(); + sb.append("<font color=\"b09979\">"+name+"</font> "+ConverTime(delay)+" <font color=\"b09979\">TO RESPAWN.</font><br1>"); + } + } + + long m_delay = RaidBossSpawnManager.getInstance().getRespawntime(MBOSS); + String m_name = NpcTable.getInstance().getTemplate(MBOSS).getName().toUpperCase(); + + String mainBossInfo =""; + + if (m_delay==0) + { + mainBossInfo = "WE SHOULD HAVE ACTED<br1><font color=\"b09979\">"+m_name+" IS ALIVE!</font><br1>"; + } + else if (m_delay<0) + { + mainBossInfo = "IT'S ALL OVER<br1><font color=\"FF0000\"> "+m_name+" IS DEAD.</font><br1>"; + } + else + { + m_delay = m_delay - Calendar.getInstance().getTimeInMillis(); + mainBossInfo = "<font color=\"b09979\">"+ConverTime(m_delay)+"</font><br1>UNTIL OBLIVION OPEN!"; + } + + NpcHtmlMessage html = new NpcHtmlMessage(1); + html.setFile(getHtmlPath(getNpcId(), 0)); + html.replace("%objectId%", getObjectId()); + html.replace("%bosslist%", sb.toString()); + html.replace("%mboss%", mainBossInfo); + activeChar.sendPacket(html); + } + + private static String ConverTime(long mseconds) + { + long remainder = mseconds; + + long hours = (long)Math.ceil((mseconds/(60*60*1000))); + remainder = mseconds - (hours*60*60*1000); + + long minutes = (long)Math.ceil((remainder / (60*1000))); + remainder = remainder -(minutes *(60*1000)); + + long seconds = (long)Math.ceil((remainder / 1000)); + + return hours+":"+minutes+":"+seconds; + } + + @Override + public String getHtmlPath(int npcId, int val) + { + String filename; + + if (val == 0) + filename = "data/html/mods/RaidBossStatus/" + npcId + ".htm"; + else + filename = "data/html/mods/RaidBossStatus/" + npcId + "-" + val + ".htm"; + + if (HtmCache.getInstance().isLoadable(filename)) + return filename; + + return "data/html/mods/RaidBossStatus/" + npcId + ".htm"; + } +} \ No newline at end of file
  2. basically you've to learn how to work with pre-compiled source - you should search for some guides how to compile packs (in this case acis' pack), so you'll be able to work with java files :)
  3. next l2archer generation server and 250 online? should i suicide? :x
  4. guys that used to work on pirated software on every step they take, now for providing some information expect payment? people .... gosh what a shame ...
  5. if you have modified duration time of any effect - you have to reload skills on server (//reload skills) or just simply restart your server. anyway, as long as i only remember frozen has option in configs within ability to draw up a list of buffs +custom duration time, so you can try like that as well.
  6. no idea what exactly l2pride-like means, because personally i never tried this server. anyway, someone mentioned about this one as pride-like. hope you'll find your favorite one! :)
  7. i guess you do not removed previous zone in this area? make sure any other zone (like town zone for ex.) does not affect your area.
  8. proudly presents probably first custom npc, that has been designed and developed together with my good friend. custom npc shows ranking of top players with the best score in three basic categories (TOP PVP, TOP PK, TOP ONLINE). lists refreshes automaticaly every x minutes and generates y players in the ranking table. variables are fully customizable and configurable, but never tested with none-default values. to successfully implement npc just follow three simple steps. preview: http://s29.postimg.org/bxq590bj9/ranking_npc.gif first you have to create new file in proper package (gameserver/model/actor/instance/), name: L2StatusInstance.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.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.StringTokenizer; import java.util.logging.Level; import net.sf.l2j.L2DatabaseFactory; import net.sf.l2j.gameserver.ThreadPoolManager; import net.sf.l2j.gameserver.cache.HtmCache; import net.sf.l2j.gameserver.model.actor.template.NpcTemplate; import net.sf.l2j.gameserver.network.serverpackets.NpcHtmlMessage; public class L2StatusInstance extends L2NpcInstance { private class PlayerInfo { public PlayerInfo(int pos,String n, int pvps, int pks ,int ontime, Boolean iso) { position = pos; Nick = n; pvpCount = pvps; pkCount = pks; onlineTime = ontime; isOnline = iso; } public int position; public String Nick; public int pvpCount; public int pkCount; public int onlineTime; public Boolean isOnline; } //delay interval (in minutes): private final int delayForCheck = 5; //number of players to be listed private int pvpListCount = 10; private int pkListCount = 10; private int onlineListCount = 10; private PlayerInfo [] topPvPList = new PlayerInfo [pvpListCount]; private PlayerInfo [] topPkList = new PlayerInfo [pkListCount]; private PlayerInfo [] topOnlineList = new PlayerInfo [onlineListCount]; public L2StatusInstance(int objectId, NpcTemplate template) { super(objectId, template); ThreadPoolManager.getInstance().scheduleGeneralAtFixedRate(new RefreshAllLists(), 10000, delayForCheck * 60000); } private class RefreshAllLists implements Runnable { public void run() { ReloadData(); } } private void ReloadData() { try (Connection con = L2DatabaseFactory.getInstance().getConnection()) { PreparedStatement statement = con.prepareStatement("SELECT char_name, pvpkills, online FROM characters ORDER BY pvpkills DESC, char_name ASC LIMIT 10"); ResultSet result = statement.executeQuery(); //refreshing top pvp list int i = 0; //index of array while (result.next()) { topPvPList[i] = new PlayerInfo(i+1,result.getString("char_name"),result.getInt("pvpkills"),0,0,result.getBoolean("online")); i++; } //refreshing top pk list statement = con.prepareStatement("SELECT char_name, pkkills, online FROM characters ORDER BY pkkills DESC, char_name ASC LIMIT 10"); result = statement.executeQuery(); i = 0; //index of array while (result.next()) { topPkList[i] = new PlayerInfo(i+1,result.getString("char_name"),0,result.getInt("pkkills"),0,result.getBoolean("online")); i++; } //refreshing top online list statement = con.prepareStatement("SELECT char_name, onlinetime, online FROM characters ORDER BY onlinetime DESC, char_name ASC LIMIT 10"); result = statement.executeQuery(); i = 0; //index of array while (result.next()) { topOnlineList[i] = new PlayerInfo(i+1,result.getString("char_name"),0,0,result.getInt("onlinetime"),result.getBoolean("online")); i++; } result.close(); statement.close(); } catch (SQLException e) { _log.log(Level.WARNING, "ranking (status): could not load statistics informations" + e.getMessage(), e); } } @Override public void onSpawn() { ReloadData(); } @Override public void showChatWindow(L2PcInstance player) { GeneratePvPList(player); } @Override public void onBypassFeedback(L2PcInstance player, String command) { StringTokenizer st = new StringTokenizer(command, " "); String currentCommand = st.nextToken(); if (currentCommand.startsWith("pvplist")) { GeneratePvPList(player); } else if (currentCommand.startsWith("pklist")) { GeneratePKList(player); } else if (currentCommand.startsWith("onlinelist")) { GenerateOnlineList(player); } super.onBypassFeedback(player, command); } private void GeneratePvPList(L2PcInstance p) { StringBuilder _PVPranking = new StringBuilder(); for (PlayerInfo player : topPvPList) { if (player == null) break; _PVPranking.append("<table width=\"290\"><tr>"); _PVPranking.append("<td FIXWIDTH=\"2\" align=\"center\"></td>"); _PVPranking.append("<td FIXWIDTH=\"17\" align=\"center\">"+player.position+"</td>"); _PVPranking.append("<td FIXWIDTH=\"158\" align=\"center\">"+player.Nick+"</td>"); _PVPranking.append("<td FIXWIDTH=\"90\" align=\"center\">"+player.pvpCount+"</td>"); _PVPranking.append("<td FIXWIDTH=\"50\" align=\"center\">"+((player.isOnline) ? "<font color=\"00FF00\">ON</font>" : "<font color=\"CC0000\">OFF</font>")+"</td>"); _PVPranking.append("<td FIXWIDTH=\"2\" align=\"center\"></td>"); _PVPranking.append("</tr></table>"); _PVPranking.append("<img src=\"L2UI.Squaregray\" width=\"300\" height=\"1\">"); } NpcHtmlMessage html = new NpcHtmlMessage(1); html.setFile(getHtmlPath(getNpcId(), 0)); html.replace("%objectId%", getObjectId()); html.replace("%pvplist%", _PVPranking.toString()); p.sendPacket(html); } private void GeneratePKList(L2PcInstance p) { StringBuilder _PVPranking = new StringBuilder(); for (PlayerInfo player : topPkList) { if (player == null) break; _PVPranking.append("<table width=\"290\"><tr>"); _PVPranking.append("<td FIXWIDTH=\"2\" align=\"center\"></td>"); _PVPranking.append("<td FIXWIDTH=\"17\" align=\"center\">"+player.position+"</td>"); _PVPranking.append("<td FIXWIDTH=\"158\" align=\"center\">"+player.Nick+"</td>"); _PVPranking.append("<td FIXWIDTH=\"90\" align=\"center\">"+player.pkCount+"</td>"); _PVPranking.append("<td FIXWIDTH=\"50\" align=\"center\">"+((player.isOnline) ? "<font color=\"00FF00\">ON</font>" : "<font color=\"CC0000\">OFF</font>")+"</td>"); _PVPranking.append("<td FIXWIDTH=\"2\" align=\"center\"></td>"); _PVPranking.append("</tr></table>"); _PVPranking.append("<img src=\"L2UI.Squaregray\" width=\"300\" height=\"1\">"); } NpcHtmlMessage html = new NpcHtmlMessage(1); html.setFile(getHtmlPath(getNpcId(), 2)); html.replace("%objectId%", getObjectId()); html.replace("%pklist%", _PVPranking.toString()); p.sendPacket(html); } private void GenerateOnlineList(L2PcInstance p) { StringBuilder _PVPranking = new StringBuilder(); for (PlayerInfo player : topOnlineList) { if (player == null) break; _PVPranking.append("<table width=\"290\"><tr>"); _PVPranking.append("<td FIXWIDTH=\"2\" align=\"center\"></td>"); _PVPranking.append("<td FIXWIDTH=\"17\" align=\"center\">"+player.position+"</td>"); _PVPranking.append("<td FIXWIDTH=\"158\" align=\"center\">"+player.Nick+"</td>"); _PVPranking.append("<td FIXWIDTH=\"90\" align=\"center\">"+ConverTime(player.onlineTime)+"</td>"); _PVPranking.append("<td FIXWIDTH=\"50\" align=\"center\">"+((player.isOnline) ? "<font color=\"00FF00\">ON</font>" : "<font color=\"CC0000\">OFF</font>")+"</td>"); _PVPranking.append("<td FIXWIDTH=\"2\" align=\"center\"></td>"); _PVPranking.append("</tr></table>"); _PVPranking.append("<img src=\"L2UI.Squaregray\" width=\"300\" height=\"1\">"); } NpcHtmlMessage html = new NpcHtmlMessage(1); html.setFile(getHtmlPath(getNpcId(), 3)); html.replace("%objectId%", getObjectId()); html.replace("%onlinelist%", _PVPranking.toString()); p.sendPacket(html); } private String ConverTime(long seconds) { long remainder = seconds; int days = (int) remainder / (24*3600); remainder = remainder -(days * 3600 * 24); int hours = (int) (remainder / 3600); remainder = remainder -(hours * 3600); int minutes = (int) (remainder / 60); remainder = remainder -(hours * 60); seconds = remainder; String timeInText = ""; if (days > 0) timeInText = days+"<font color=\"LEVEL\">D</font> "; if (hours > 0) timeInText = timeInText+ hours+"<font color=\"LEVEL\">H</font> "; if (minutes >0) timeInText = timeInText+ minutes+"<font color=\"LEVEL\">M</font>"; if (timeInText=="") { if(seconds>0) { timeInText = seconds+"<font color=\"LEVEL\">S</font>"; } else { timeInText = "N/A"; } } return timeInText; } @Override public String getHtmlPath(int npcId, int val) { String filename; if (val == 0) filename = "data/html/Status/" + npcId + ".htm"; else filename = "data/html/Status/" + npcId + "-" + val + ".htm"; if (HtmCache.getInstance().isLoadable(filename)) return filename; return "data/html/Status/" + npcId + ".htm"; } }create new npc with our dedicated type or use the one below: <npc id="50012" idTemplate="31549" name="STATISTICS WALL" title="L2EUPHORIA.COM"> <set name="level" val="70"/> <set name="radius" val="32"/> <set name="height" val="46.5"/> <set name="rHand" val="0"/> <set name="lHand" val="0"/> <set name="type" val="L2Status"/> <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>dowload this archive(contains necessary .htmls) and extract to: gameserver/data/html/.remember to keep these files in proper folder (Status) and use correct npc type (L2Status).
  9. WEB: HTTP://L2EUPHORIA.COM FORUM: HTTP://L2EUPHORIA.COM/FORUM OPENING DATE (MAY CHANGE): 12.12.2015, BETA PERIOD UNTIL THEN. Why euphoria? x999 INSTANT PVP since very beginning our goal is to provide possibly most comfortable dimension of gaming, putting tremendous pressure on smooth control of your character. no more crappy movements louvered under visually impressive customs! ▌ ENCHANTMENT enchant safe: +5 enchant maximum: +20 normal scrolls max enchant (+15), chance (90%) and don't break. blessed scrolls max enchant (+20), chance (80%) and is safe. ▌ AUGMENTATION normal augmentation within 100% of chance, provides only an active augments. proper count of pvp points bring to possess one extra passive augment, then level it up. ▌ OLYMPIAD GAMES grand olympiad competitions two weeks long (calculating new heroes on sunday). hero weapons (attack/magic attack stats) corresponds s-grade weapons +20. no custom armors/weapons. custom underwears (tattoos) » sort of attributes against counter-profession. custom farming zones » including one safe-zone. custom automatic events. custom noblesse quest. custom bosses. each pvp/pk point is an award winning game. every pvp/pk victory regenerates CP. within death character receives killer's CP/HP conditions on screen. execute /stats command to x-ray characters (basic stats, item enchant values). flagged character can be traded only if a member of the same party. characters may cast buffs only on party members. conquerable location providing clan reputation points within every successful capture. unique values, dedicated adena system. maximum [99+] available buff slots, duration 3h. two siegeable castles (one siege every week) » giran (+1STR), aden (+1INT). custom siege mercenaries. new acis geo-engine.
  10. beta version is still available, but its just a beta. final version will be released day after tomorrow and i'd like to invite everybody to try this <i think> unusual project :) http://l2euphoria.com
  11. http://l2euphoria.com exp » x666 party x2 sp » x666 party x2 adena » x1 drop » x1 enchant safe: +5 enchant maximum: +20 normal scrolls max enchant (+15), chance (90%) and don't break. blessed scrolls max enchant (+20), chance (80%) and is safe. normal augmentation within 100% of chance, provides only an active augments. proper count of pvp points allow to gain one extra passive augment, then level it up.
  12. hey everyone! i'm so confused and lookin for help. i've some errors when using clan warehouse and freight service on my server. i'm working on l2jfrozen server files and i even compiled the latest and clean version to be sure the error is not caused because of my interference. well, when i put my bodyarmor (for example) into clan warehouse as a admin or normal character, i'm getting an annoying error: ERROR [com.l2jfrozen.database.dal.impl.ManagerImpl] - Got hibernate exception. java.lang.NullPointerException at com.l2jfrozen.database.dal.game.impl.CharacterManagerDAOImpl.initFields(CharacterManagerDAOImpl.java:280) at com.l2jfrozen.database.dal.game.impl.CharacterManagerDAOImpl.get(CharacterManagerDAOImpl.java:123) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157) at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:98) at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:262) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:95) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:207) at com.sun.proxy.$Proxy44.get(Unknown Source) at com.l2jfrozen.database.manager.game.CharacterManager.get(CharacterManager.java:166) at com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance.updateInDb(L2ItemInstance.java:1233) at com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance.updateDatabase(L2ItemInstance.java:1140) at com.l2jfrozen.gameserver.model.ItemContainer.transferItem(ItemContainer.java:376) at com.l2jfrozen.gameserver.model.PcInventory.transferItem(PcInventory.java:429) at com.l2jfrozen.gameserver.network.clientpackets.SendWareHouseDepositList.runImpl(SendWareHouseDepositList.java:203) at com.l2jfrozen.gameserver.network.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:62) at com.l2jfrozen.gameserver.network.L2GameClient.run(L2GameClient.java:183) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) i thought its maybe caused by some security checks or something, but i'm rly confused. also, when i use freight service by warehouse keeper (deposit cargo box) in order to transfer item to another character, there's another error. what's really bad - items sometimes duplicate: INFO [com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance] - Could not update item 268452504 in DB: Reason: java.lang.NullPointerException at com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance.updateInDb(L2ItemInstance.java:1237) at com.l2jfrozen.gameserver.model.actor.instance.L2ItemInstance.updateDatabase(L2ItemInstance.java:1140) at com.l2jfrozen.gameserver.model.ItemContainer.transferItem(ItemContainer.java:376) at com.l2jfrozen.gameserver.model.PcInventory.transferItem(PcInventory.java:429) at com.l2jfrozen.gameserver.network.clientpackets.RequestPackageSend.runImpl(RequestPackageSend.java:193) at com.l2jfrozen.gameserver.network.clientpackets.L2GameClientPacket.run(L2GameClientPacket.java:62) at com.l2jfrozen.gameserver.network.L2GameClient.run(L2GameClient.java:183) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) that's not the main problem, because freight service can be locked and people dont need it as much as clan warehouse function. anyway, maybe someone already deal with this problem and know the solution.
×
×
  • Create New...