kaganpwnz 82 Опубликовано 9 февраля, 2017 (изменено) Добавил Hero Custom Item в сборку l2jlisvus, пропадает хиро после релога есть у кого инфа как исправить? В java не сильно силён. //add private static final String STATUS_DATA_GET = "SELECT hero, hero_end_date FROM characters_custom_data WHERE obj_Id = ?"; public void restoreCustomStatus(){if (Config.DEVELOPER){_log.info("Restoring character status " + getName() + " from database...");}int hero = 0;long hero_end = 0;Connection con = null;try{con = DatabaseFactory.getInstance().getConnection();PreparedStatement statement = con.prepareStatement(STATUS_DATA_GET);statement.setInt(1, getObjectId());ResultSet rset = statement.executeQuery();while (rset.next()){hero = rset.getInt("hero");hero_end = rset.getLong("hero_end_date");}rset.close();statement.close();statement = null;rset = null;}catch (final Exception e){_log.warn("Error: could not restore char custom data info: " + e);}finally{try{con.close();}catch (Exception e){}}if (hero > 0 && (hero_end == 0 || hero_end > System.currentTimeMillis())){setHero(true);}else{// delete wings of destinydestroyItem("HeroEnd", 6842, 1, null, false);}} // Hero Custom Item , Created By Stefoulis15// Added From Stefoulis15 Into The Core.// Visit www.MaxCheaters.com For Support// Source File Name: HeroCustomItem.java// Modded by programmos, sword devpackage net.sf.l2j.gameserver.handler.itemhandlers;import java.sql.Connection;import java.sql.PreparedStatement;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import net.sf.l2j.Config;import net.sf.l2j.gameserver.handler.IItemHandler;import net.sf.l2j.gameserver.model.L2ItemInstance;import net.sf.l2j.gameserver.model.actor.instance.L2PcInstance;import net.sf.l2j.gameserver.model.actor.instance.L2PlayableInstance;import net.sf.l2j.gameserver.network.serverpackets.SocialAction;import net.sf.l2j.commons.db.DatabaseFactory;public class HeroCustomItem implements IItemHandler{private static Logger _log = LoggerFactory.getLogger(HeroCustomItem.class.getName());public HeroCustomItem(){// null}String INSERT_DATA = "REPLACE INTO characters_custom_data (obj_Id, hero, hero_end_date) VALUES (?,?,?)";@@overridepublic void useItem(final L2PlayableInstance playable, final L2ItemInstance item){if (Config.HERO_CUSTOM_ITEMS){if (!(playable instanceof L2PcInstance))return;L2PcInstance player = (L2PcInstance) playable;if (activeChar.isInOlympiadMode()){activeChar.sendMessage("This Item Cannot Be Used On Olympiad Games.");}if (activeChar.isHero()){activeChar.sendMessage("You Are Already A Hero!.");}else{activeChar.broadcastPacket(new SocialAction(activeChar.getObjectId(), 16));playable.setHero(true);playable.broadcastUserInfo();updateDatabase(activeChar, Config.HERO_CUSTOM_DAY * 24L * 60L * 60L * 1000L);activeChar.sendMessage("You Are Now a Hero,You Are Granted With Hero Status , Skills ,Aura.");playable.destroyItem("Consume", item.getObjectId(), 1, null, false);activeChar.getInventory().addItem("Wings", 6842, 1, activeChar, null);}activeChar = null;}}@@overridepublic int[] getItemIds(){return ITEM_IDS;}private void updateDatabase(final L2PcInstance player, final long heroTime){Connection con = null;try{if (player == null)return;con = DatabaseFactory.getInstance().getConnection();PreparedStatement stmt = con.prepareStatement(INSERT_DATA);stmt.setInt(1, player.getObjectId());stmt.setInt(2, 1);stmt.setLong(3, heroTime == 0 ? 0 : System.currentTimeMillis() + heroTime);stmt.execute();stmt.close();stmt = null;player.broadcastUserInfo();}catch (final Exception e){_log.warn("Error: could not update database: ");}finally{try{con.close();}catch (Exception e){}}}private static final int ITEM_IDS[] ={Config.HERO_CUSTOM_ITEM_ID};} Изменено 9 февраля, 2017 пользователем kaganpwnz Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
kaganpwnz 82 Опубликовано 9 февраля, 2017 //close thx Naik Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
JoeyTribbiani 822 Опубликовано 9 февраля, 2017 //close thx Naik Ну так скинь уже решение, возможно кому и пригодится. А потом уже close. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
kaganpwnz 82 Опубликовано 10 февраля, 2017 Ищем в L2PcInstance.java метод L2PcInstance restore(int objectId) добавил туда строчку player.restoreCustomStatus(); Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты