Art78 0 Опубликовано 25 апреля, 2016 Сборка шара от л2скрипт, сам синтез работает, но не нравится когда фейл синтеза, никакой индикации нет, ни сообщения, ни окна с фейлом. Синтез закрывается молча и все. Где собсна это правится, подскажите пож Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
k0ss11 302 Опубликовано 25 апреля, 2016 В 25.04.2016 в 11:22, Art78 сказал: Сборка шара от л2скрипт, сам синтез работает, но не нравится когда фейл синтеза, никакой индикации нет, ни сообщения, ни окна с фейлом. Синтез закрывается молча и все. Где собсна это правится, подскажите пож в коде Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Art78 0 Опубликовано 25 апреля, 2016 В 25.04.2016 в 11:27, kosss сказал: в кодеЭмм с моими знаниями можно несколько более разжеванный ответ?) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
4ipolino 9 Опубликовано 25 апреля, 2016 без исходников - никак Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 621 Опубликовано 25 апреля, 2016 (изменено) В 25.04.2016 в 11:29, Art78 сказал: Эмм с моими знаниями можно несколько более разжеванный ответ?)в пакете RequestNewEnchantTry при фейле шлется ExEnchantFail и да - без исходников никак. Изменено 25 апреля, 2016 пользователем Gaikotsu 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Art78 0 Опубликовано 25 апреля, 2016 В 25.04.2016 в 12:28, Gaikotsu сказал: в пакете RequestNewEnchantTryпри фейле шлется ExEnchantFailи да - без исходников никак. Спасибо. Исходники нашел, буду ковырять узнавать что такое пакет и где он)) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Art78 0 Опубликовано 26 апреля, 2016 А ткните носом в инфу по пакетам, статейки или мануалы какие. А то что-то открыл, что-то там написано, что на что менять или дописывать хз. Открыл хексомGamePacketHandler.java Байты сплошные, выделяю цифры, выделяется одна буква. Это что буква соответствует этому цифровому коду? Извините, иеформатику прогуливал в школе, не знаю основ) Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 621 Опубликовано 26 апреля, 2016 если это не толстый троллинг и ты реально на таком уровне знаешь программирование, то тебе лучше вобще не пытаться что-то делать в плане работы с серверами, пока не выучишь хотя бы основы. 1 Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Art78 0 Опубликовано 26 апреля, 2016 не, не троллю Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Gaikotsu 621 Опубликовано 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 (изменено) В 28.04.2016 в 17:28, Gaikotsu сказал: Изменено 1 мая, 2016 пользователем voel Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Art78 0 Опубликовано 1 мая, 2016 В 28.04.2016 в 17:28, Gaikotsu сказал: Цитата ну вот я могу показать конечно мою реализацию конечного этапа синтеза, как раз пакет 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 В 01.05.2016 в 10:10, MaJr сказал: брось ты это дело, я уверен что ты не сможешь прикрыть баг с осадами и еще 2 дюпа (онли для тех у кого есть исход скриптов).... да я не серв открыть, ради интереса ковыряюсь, на чем-то надо учиться же Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты