Перейти к содержанию
Авторизация  
kaganpwnz

Пропадает хиро после релога

Рекомендуемые сообщения

Добавил 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 destiny
destroyItem("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 dev

package 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 (?,?,?)";

@@override
public 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;
}
}

@@override
public 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
};

}

 

Изменено пользователем kaganpwnz

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

//close thx Naik

 

Ну так скинь уже решение, возможно кому и пригодится.

А потом уже close.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ищем в L2PcInstance.java метод L2PcInstance restore(int objectId)

добавил туда строчку

player.restoreCustomStatus();

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...