a4n: Блог

 

a4n

новичок
Проблема с кланами и осадами.
Создал клан, при повышении уровня в списке состава команды добавляются по несколько клан лидеров в список :) Далее повысили до 4 лвл клан, через админское меню хотим посмотреть осаду, ну добавляем себя к списку атакующих, далее жмем Start siege и вываливаемся в NPE:
code text
  1. cannot load npc stats for 12314: java.sql.SQLException: Column 'id_c5' not found
  2. .
  3. java.sql.SQLException: Column 'id_c5' not found.
  4.         at com.mysql.jdbc.ResultSet.findColumn(ResultSet.java:950)
  5.         at com.mysql.jdbc.ResultSet.getInt(ResultSet.java:2401)
  6.         at com.mchange.v2.c3p0.impl.NewProxyResultSet.getInt(NewProxyResultSet.j
  7. ava:2417)
  8.         at net.sf.l2j.gameserver.tables.NpcTable.fillNpcTable(NpcTable.java:230)
  9.  
  10.         at net.sf.l2j.gameserver.tables.NpcTable.getNpcStatsSet(NpcTable.java:36
  11. 4)
  12.         at net.sf.l2j.gameserver.model.entity.Siege.spawnControlTower(Siege.java
  13. :1080)
  14.         at net.sf.l2j.gameserver.model.entity.Siege.startSiege(Siege.java:318)
  15.         at net.sf.l2j.gameserver.handler.admincommandhandlers.AdminSiege.useAdmi
  16. nCommand(AdminSiege.java:104)
  17.         at net.sf.l2j.gameserver.clientpackets.RequestBypassToServer.runImpl(Req
  18. uestBypassToServer.java:69)
  19.         at net.sf.l2j.gameserver.clientpackets.ClientBasePacket.run(ClientBasePa
  20. cket.java:37)
  21.         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source
  22. )
  23.         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
  24.         at java.lang.Thread.run(Unknown Source)
  25. Bad RequestBypassToServer:
  26. java.lang.NullPointerException
  27.         at net.sf.l2j.gameserver.model.entity.Siege.spawnControlTower(Siege.java
  28. :1081)
  29.         at net.sf.l2j.gameserver.model.entity.Siege.startSiege(Siege.java:318)
  30.         at net.sf.l2j.gameserver.handler.admincommandhandlers.AdminSiege.useAdmi
  31. nCommand(AdminSiege.java:104)
  32.         at net.sf.l2j.gameserver.clientpackets.RequestBypassToServer.runImpl(Req
  33. uestBypassToServer.java:69)
  34.         at net.sf.l2j.gameserver.clientpackets.ClientBasePacket.run(ClientBasePa
  35. cket.java:37)
  36.         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source
  37. )
  38.         at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
  39.         at java.lang.Thread.run(Unknown Source)


Далее даём себе сами замок тоже через админку (Give castle). Потом уничтожаем клан у NPC приста и пытаемся посмотреть инфу о замке и вылатам тоже в NPE:
code text
  1. 12.11.2006 19:43:21 net.sf.l2j.gameserver.serverpackets.ServerBasePacket write
  2. SEVERE:
  3. java.lang.NullPointerException
  4.         at net.sf.l2j.gameserver.model.L2Clan.getLeaderName(L2Clan.java:162)
  5.         at net.sf.l2j.gameserver.serverpackets.SiegeInfo.writeImpl(SiegeInfo.java:82)
  6.         at net.sf.l2j.gameserver.serverpackets.ServerBasePacket.write(ServerBasePacket.java:147)
  7.         at net.sf.l2j.gameserver.SelectorThread.pack(SelectorThread.java:637)
  8.         at net.sf.l2j.gameserver.SelectorThread.processOutboudQueue(SelectorThread.java:756)
  9.         at net.sf.l2j.gameserver.SelectorThread.run(SelectorThread.java:271)
  10. 12.11.2006 19:43:48 net.sf.l2j.gameserver.serverpackets.ServerBasePacket write
  11. SEVERE:
  12. java.lang.NullPointerException
  13.         at net.sf.l2j.gameserver.model.L2Clan.getLeaderName(L2Clan.java:162)
  14.         at net.sf.l2j.gameserver.serverpackets.SiegeInfo.writeImpl(SiegeInfo.java:82)
  15.         at net.sf.l2j.gameserver.serverpackets.ServerBasePacket.write(ServerBasePacket.java:147)
  16.         at net.sf.l2j.gameserver.SelectorThread.pack(SelectorThread.java:637)
  17.         at net.sf.l2j.gameserver.SelectorThread.processOutboudQueue(SelectorThread.java:756)
  18.         at net.sf.l2j.gameserver.SelectorThread.run(SelectorThread.java:271)

Ну ладно, видимо нет проверки на "не уничтожили ли клан", рестарт сервера помог понять что клана уже нет и замок ничейный. Далее создаём новый клан (клан создаётся и уровень повышается) и получаем:
code text
  1. error while saving new clan to db java.sql.SQLException: Duplicate entry '268479
  2. 309' for key 1
  3. error while saving new clan to db java.sql.SQLException: Duplicate entry '268479
  4. 309' for key 1
  5. error while saving new clan to db java.sql.SQLException: Duplicate entry '268479
  6. 309' for key 1
  7. error while saving new clan to db java.sql.SQLException: Duplicate entry '268479
  8. 309' for key 1


Ну и вот моё впечатление о новых ревизиях - beta test only :)
 

a4n

новичок
Добрый день девелоперы :)
Пытаюсь сейчас прикрутить хербы С5 к серверу SF. Всё вроде получилось, но есть одно НО. Для начала немного поясню... Суть в этих хербах - они падают с мобов в ньюбских локациях, такие баночки манны и hp и когда игрок подбирает их они сразу юзаються. Их 4 вида: HP,MP восстанавливающие и добавляющие к атаке п. или м. на пару минут. Так вот.. когда включен автолут всё работает отлично, но когда они падают на землю и потом подобрать то они просто сразу изчезают и еффекта нету. Вот код L2Attackable.java:
if (Rnd.get() < Config.HERB_OF_LIFE_DROP_RATE)
{
RewardItem item = new RewardItem(8154, 1);
if (Config.AUTO_LOOT_HERBS) player.doAutoLoot(this, item); // Give this or these Item(s) to the L2PcInstance that has killed the L2Attackable
else DropItem(player, item);
}
 

Т.е как видим тут если включен автолут, то выполняется player.doAutoLoot(this, item);, а если нет, то DropItem(player, item);.
Далее в L2PcInstance.java:
/**
* Adds item to inventory and send a Server->Client InventoryUpdate packet to the L2PcInstance.
* @param process : String Identifier of process triggering this action
* @param item : L2ItemInstance to be added
* @param reference : L2Object Object referencing current action like NPC selling item or previous item in transformation
* @param sendMessage : boolean Specifies whether to send message to Client about this action
/
public void addItem(String process, L2ItemInstance item, L2Object reference, boolean sendMessage)
{
...................................
if (item.getItemId()<= 8157 && item.getItemId() >= 8154)
{
IItemHandler handler = ItemHandler.getInstance().getItemHandler(item.getItemId());

if (handler == null)
_log.fine("No item handler registered for item ID " + item.getItemId() + ".");
else
handler.useItem(this, item);
}
..................................
/*

* Adds item to Inventory and send a Server->Client InventoryUpdate packet to the L2PcInstance.
* @param process : String Identifier of process triggering this action
* @param itemId : int Item Identifier of the item to be added
* @param count : int Quantity of items to be added
* @param reference : L2Object Object referencing current action like NPC selling item or previous item in transformation
* @param sendMessage : boolean Specifies whether to send message to Client about this action
*/
public void addItem(String process, int itemId, int count, L2Object reference, boolean sendMessage)
{
..................................
if (item.getItemId()<= 8157 && item.getItemId() >= 8154)
{
IItemHandler handler = ItemHandler.getInstance().getItemHandler(item.getItemId());

if (handler == null)
_log.fine("No item handler registered for item ID " + item.getItemId() + ".");
else
handler.useItem(this, item);
}

// If over capacity, trop the item
if (!isGM() && !_inventory.validateCapacity(0)) dropItem("InvDrop", item, null, true);
}
 

Вот собственно вопрос - Почему когда хербы падают на землю и потом поднять ничего не происходит, а если автолутом player.doAutoLoot(this, item); то всё работает ?
Как это исправить ?
 

a4n

новичок
Нужна помощь в установке java под фриху 4.9 (да да да 4.9). Портс обновлён, все необходимые либы и дистры у него лежат уже в /ports/distfiles Далее:
cd /usr/ports/java/linux-sun-jdk15
make DISABLE_VULNERABILITIES=yes all install clean && rehash
далее:
cd /usr/ports/java/jdk15
make WITHOUT_WEB=yes all install clean && rehash и вываливается:
===> linux-sun-jdk-1.4.2.12 depends on file: /usr/local/sbin/pkg_info - found
replace j2sdk1.4.2_12/jre/bin/java? [y]es, [n]o, [A]ll, [N]one, [r]ename: A
Bad system call (core dumped)
  • Error code 140

  • Stop in /usr/ports/java/linux-sun-jdk14.
  • Error code 1

  • Stop in /usr/ports/java/jdk15.
     


    Пробовал и rpm -i блабла.rpm пишет что нету кучки пакетов и руками ставить не прёт совсем, тем более что лучше сделать ту что в портс.
     

    в начало страницы | новое
     
    Поиск
    Настройки
    Твиттер сайта
    Статистика
    Рейтинг@Mail.ru