Art78 0 Опубликовано 25 апреля, 2016 Сборка шара от л2скрипт, сам синтез работает, но не нравится когда фейл синтеза, никакой индикации нет, ни сообщения, ни окна с фейлом. Синтез закрывается молча и все. Где собсна это правится, подскажите пож Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
k0ss11 302 Опубликовано 25 апреля, 2016 Сборка шара от л2скрипт, сам синтез работает, но не нравится когда фейл синтеза, никакой индикации нет, ни сообщения, ни окна с фейлом. Синтез закрывается молча и все. Где собсна это правится, подскажите пож в коде Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Art78 0 Опубликовано 25 апреля, 2016 в кодеЭмм с моими знаниями можно несколько более разжеванный ответ?) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
4ipolino 9 Опубликовано 25 апреля, 2016 без исходников - никак Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 25 апреля, 2016 (изменено) Эмм с моими знаниями можно несколько более разжеванный ответ?)в пакете RequestNewEnchantTry при фейле шлется ExEnchantFail и да - без исходников никак. Изменено 25 апреля, 2016 пользователем Gaikotsu 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Art78 0 Опубликовано 25 апреля, 2016 в пакете RequestNewEnchantTryпри фейле шлется ExEnchantFailи да - без исходников никак. Спасибо. Исходники нашел, буду ковырять узнавать что такое пакет и где он)) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Art78 0 Опубликовано 26 апреля, 2016 А ткните носом в инфу по пакетам, статейки или мануалы какие. А то что-то открыл, что-то там написано, что на что менять или дописывать хз. Открыл хексомGamePacketHandler.java Байты сплошные, выделяю цифры, выделяется одна буква. Это что буква соответствует этому цифровому коду? Извините, иеформатику прогуливал в школе, не знаю основ) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 26 апреля, 2016 если это не толстый троллинг и ты реально на таком уровне знаешь программирование, то тебе лучше вобще не пытаться что-то делать в плане работы с серверами, пока не выучишь хотя бы основы. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Art78 0 Опубликовано 26 апреля, 2016 не, не троллю Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 620 Опубликовано 28 апреля, 2016 ну вот я могу показать конечно мою реализацию конечного этапа синтеза, как раз пакет RequestNewEnchantTry package l2p.gameserver.network.clientpackets.compound; import l2p.commons.util.Rnd; import l2p.gameserver.data.holder.CompoundDataHolder; import l2p.gameserver.model.Player; import l2p.gameserver.model.items.ItemInstance; import l2p.gameserver.model.items.PcInventory; import l2p.gameserver.model.request.ItemCompoundRequest; import l2p.gameserver.network.clientpackets.L2GameClientPacket; import l2p.gameserver.network.serverpackets.ExAdenaInvenCount; import l2p.gameserver.network.serverpackets.ExUserInfoInvenWeight; import l2p.gameserver.network.serverpackets.InventoryUpdate; import l2p.gameserver.network.serverpackets.components.SystemMsg; import l2p.gameserver.network.serverpackets.compound.ExEnchantFail; import l2p.gameserver.network.serverpackets.compound.ExEnchantOneFail; import l2p.gameserver.network.serverpackets.compound.ExEnchantSucess; import l2p.gameserver.templates.CompoundData; public class RequestNewEnchantTry extends L2GameClientPacket { @Override protected void readImpl() {} @Override protected void runImpl() { final Player player = getClient().getActiveChar(); if (player == null) return; if (player.isInStoreMode()) { player.sendPacket(SystemMsg.YOU_CANNOT_DO_THAT_WHILE_IN_A_PRIVATE_STORE_OR_PRIVATE_WORKSHOP); player.sendPacket(ExEnchantOneFail.STATIC); return; } if (player.isProcessingRequest()) { player.sendPacket(SystemMsg.PLEASE_FINISH_YOUR_ONGOING_TASK_AND_TRY_AGAIN); player.sendPacket(ExEnchantOneFail.STATIC); return; } ItemCompoundRequest request = player.getItemRequest(ItemCompoundRequest.class); if (request == null || request.isProcessing()) { player.sendPacket(ExEnchantFail.STATIC); return; } PcInventory inventory = player.getInventory(); inventory.writeLock(); try { request.setProcessing(true); final ItemInstance itemOne = request.getItemOne(); final ItemInstance itemTwo = request.getItemTwo(); if (itemOne == null || itemTwo == null) { player.sendPacket(ExEnchantFail.STATIC); player.setItemRequest(null); return; } if (itemOne.getObjectId() == itemTwo.getObjectId()) { player.sendPacket(SystemMsg.THIS_IS_NOT_A_VALID_COMBINATION, new ExEnchantFail(itemOne.getItemId(), itemTwo.getItemId())); player.setItemRequest(null); return; } final CompoundData compound = CompoundDataHolder.getInstance().getData(itemOne.getItemId()); if (compound == null || compound.getItemTwoId() != itemTwo.getItemId()) { player.sendPacket(SystemMsg.THIS_IS_NOT_A_VALID_COMBINATION, new ExEnchantFail(itemOne.getItemId(), itemTwo.getItemId())); player.setItemRequest(null); return; } final InventoryUpdate iu = new InventoryUpdate(); if (Rnd.chance(compound.getChance())) { iu.addRemovedItem(itemOne); iu.addRemovedItem(itemTwo); if (inventory.destroyItem(itemOne, 1) && inventory.destroyItem(itemTwo, 1)) { inventory.addItem(compound.getResultId(), 1); player.sendPacket(new ExEnchantSucess(compound.getResultId())); } } else { if (compound.getFailedId() > 0 && compound.getFailedId() != compound.getItemOneId()) { iu.addRemovedItem(itemOne); iu.addRemovedItem(itemTwo); if (inventory.destroyItem(itemOne, 1) && inventory.destroyItem(itemTwo, 1)) { inventory.addItem(compound.getFailedId(), 1); player.sendPacket(new ExEnchantFail(itemOne.getItemId(), itemTwo.getItemId())); } } else { iu.addRemovedItem(itemTwo); if (inventory.destroyItem(itemTwo, 1)) player.sendPacket(new ExEnchantFail(itemOne.getItemId(), itemTwo.getItemId())); } } player.sendPacket(iu, new ExAdenaInvenCount(player), new ExUserInfoInvenWeight(player)); player.setItemRequest(null); } finally { inventory.writeUnlock(); player.updateStats(); } } } но боюсь тут ты с твоим уровнем знания программирования, а в частности явы, увидишь только кучу незнакомых тебе слов и ничего более... очень рекомендую все же прислушаться к совету и ихучить ту же яву, хотя бы основы для начала, а потом уже пытаться что-то делать в сервере. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
voel 0 Опубликовано 1 мая, 2016 (изменено) Изменено 1 мая, 2016 пользователем voel Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Art78 0 Опубликовано 1 мая, 2016 ну вот я могу показать конечно мою реализацию конечного этапа синтеза, как раз пакет RequestNewEnchantTry но боюсь тут ты с твоим уровнем знания программирования, а в частности явы, увидишь только кучу незнакомых тебе слов и ничего более... очень рекомендую все же прислушаться к совету и ихучить ту же яву, хотя бы основы для начала, а потом уже пытаться что-то делать в сервере. да просто ковырял дату, там то спавн, то статы, то траекторию движения нпц, не сложно вроде разобрался по аналогам с других сборок, а тут запнулся) в моем пакете немного по другому написано, не могу интерпретировать твой код под свой, не трудно будет дописать? я хоть посмотрю как должно быть. STATIC сбивает с толку) package zgts.gameserver.network.l2.c2s; import zgts.gameserver.network.l2.*; import zgts.gameserver.data.xml.holder.*; import zgts.gameserver.utils.*; import zgts.commons.util.*; import zgts.gameserver.network.l2.s2c.*; import zgts.gameserver.model.*; import zgts.gameserver.templates.item.support.*; import zgts.gameserver.model.items.*; public class RequestNewEnchantTry extends L2GameClientPacket { @Override protected void readImpl() { } @Override protected void runImpl() { final Player activeChar = ((GameClient)this.getClient()).getActiveChar(); if (activeChar == null) { return; } if (activeChar.isActionsDisabled()) { activeChar.sendPacket(ExEnchantFail.STATIC); return; } if (activeChar.isInStoreMode()) { activeChar.sendPacket(ExEnchantFail.STATIC); return; } if (activeChar.isInTrade()) { activeChar.sendPacket(ExEnchantFail.STATIC); return; } if (activeChar.isFishing()) { activeChar.sendPacket(ExEnchantFail.STATIC); return; } final ItemInstance item1 = activeChar.getSynthesisItem1(); if (item1 == null) { activeChar.sendPacket(ExEnchantFail.STATIC); return; } final ItemInstance item2 = activeChar.getSynthesisItem2(); if (item2 == null) { activeChar.sendPacket(ExEnchantFail.STATIC); return; } if (item1 == item2) { activeChar.sendPacket(ExEnchantFail.STATIC); return; } SynthesisData data = null; for (final SynthesisData d : SynthesisDataHolder.getInstance().getDatas()) { if (item1.getItemId() == d.getItem1Id() && item2.getItemId() == d.getItem2Id()) { data = d; break; } if (item1.getItemId() == d.getItem2Id() && item2.getItemId() == d.getItem1Id()) { data = d; break; } } if (data == null) { activeChar.sendPacket(ExEnchantFail.STATIC); return; } final Inventory inventory = activeChar.getInventory(); inventory.writeLock(); try { if (inventory.getItemByObjectId(item1.getObjectId()) == null) { activeChar.sendPacket(ExEnchantFail.STATIC); return; } if (inventory.getItemByObjectId(item2.getObjectId()) == null) { activeChar.sendPacket(ExEnchantFail.STATIC); return; } ItemFunctions.removeItem(activeChar, item1, 1L, true); ItemFunctions.removeItem(activeChar, item2, 1L, true); if (Rnd.chance(data.getChance())) { ItemFunctions.addItem(activeChar, data.getSynthesizedItemId(), 1L, true); activeChar.sendPacket(new ExEnchantSucess(data.getSynthesizedItemId())); } else { ItemFunctions.addItem(activeChar, Rnd.chance(50) ? data.getItem1Id() : data.getItem2Id(), 1L, true); activeChar.sendPacket(ExEnchantFail.STATIC); } } finally { inventory.writeUnlock(); } } } Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
ImmortalPony 126 Опубликовано 1 мая, 2016 брось ты это дело, я уверен что ты не сможешь прикрыть баг с осадами и еще 2 дюпа (онли для тех у кого есть исход скриптов).... Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Art78 0 Опубликовано 1 мая, 2016 брось ты это дело, я уверен что ты не сможешь прикрыть баг с осадами и еще 2 дюпа (онли для тех у кого есть исход скриптов).... да я не серв открыть, ради интереса ковыряюсь, на чем-то надо учиться же Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты