привет Steel Rake Cabin нет записи дал ошибку Как решить. Server Files: AionServer-4.6 (AionGer-emulator rev.564)
А можно более подробно? А то не понял ни черта. Если смотреть именно ошибку на скриншоте, копай в сторону html файлов сборки.
Про подробнее согласен, вот только в java серверах aion всё в скриптах и xml(квесты ai), html не используется тут как в la2. По скрину просто видно, что нет обращения к самому скрипту либо диалог не правильный. Проще будет, если автор посмотрит в более ранних до этой версии сборках и сделает по аналогии.
Понял, принял, буду знать. Просто я посмотрел на скриншоте, что идет ссылка на какой то файл html, да и в сборках есть какие-то html файлы, которые в клиенте в виде всяких окошек дополнительных потом появляются.
Bug İs Fix. Модифицированный файл PortalDialogAI2 Код: paketi ai.portals; import java.util.List; import com.aionemu.gameserver.ai2.AIName; import com.aionemu.gameserver.dataholders.DataManager; import com.aionemu.gameserver.model.DialogAction; import com.aionemu.gameserver.model.autogroup.AutoGroupType; import com.aionemu.gameserver.model.gameobjects.player.Player; import com.aionemu.gameserver.model.templates.portal.PortalPath; import com.aionemu.gameserver.network.aion.serverpackets.SM_AUTO_GROUP; import com.aionemu.gameserver.network.aion.serverpackets.SM_DIALOG_WINDOW; import com.aionemu.gameserver.network.aion.serverpackets.SM_FIND_GROUP; import com.aionemu.gameserver.questEngine.QuestEngine; import com.aionemu.gameserver.questEngine.model.QuestEnv; import com.aionemu.gameserver.questEngine.model.QuestState; import com.aionemu.gameserver.questEngine.model.QuestStatus; import com.aionemu.gameserver.services.QuestService; import com.aionemu.gameserver.services.teleport.PortalService; import com.aionemu.gameserver.utils.PacketSendUtility; / ** * @author xTz * @reworked vlog * @reworked Blackfire * / @AIName ("portal_dialog") public class PortalDialogAI2, PortalAI2'yi genişletir { korunan int ödülüDialogId = 5; korumalı int başlatmaDialogId = 10; protected int questDialogId = 10; @Override protected void handleDialogStart (Oyuncu oynatıcı) { if (getTalkDelay () == 0) { CheckDialog (oyuncu); } else { super.handleDialogStart (oyuncu); } } @Override public boolean onDialogSelect (Oyuncu oynatıcı, int dialogId, int questId, int extendedRewardIndex) { QuestEnv env = yeni QuestEnv (getOwner (), player, questId, dialogId); env.setExtendedRewardIndex (extendedRewardIndex); if (questId> 0 && QuestEngine.getInstance (). onDialog (env)) { doğruyu döndür; } if (dialogId == DialogAction.INSTANCE_PARTY_MATCH.id ()) { AutoGroupType agt = AutoGroupType.getAutoGroup (player.getLevel (), getNpcId ()); if (agt! = null) { PacketSendUtility.sendPacket (çalar, yeni SM_AUTO_GROUP (agt.getInstanceMaskId ())); } PacketSendUtility.sendPacket (oyuncu, yeni SM_DIALOG_WINDOW (getObjectId (), 0)); } / * başka if (dialogId == DialogAction.SELECT_ACTION_1012.id ()) { PacketSendUtility.sendPacket (oynatıcı, yeni SM_DIALOG_WINDOW (getObjectId (), 1182)); } * / else if (dialogId == DialogAction.OPEN_INSTANCE_RECRUIT.id ()) { AutoGroupType agt = AutoGroupType.getAutoGroup (player.getLevel (), getNpcId ()); if (agt! = null) { PacketSendUtility.sendPacket (çalar, yeni SM_FIND_GROUP (0x1A, agt.getInstanceMapId ())); } } else { if (questId == 0) { PortalPath portalPath = DataManager.PORTAL2_DATA.getPortalDialog (getNpcId (), dialogId, player.getRace ()); if (portalPath! = null) { PortalService.port (portalPath, oynatıcı, getObjectId ()); } } else { PacketSendUtility.sendPacket (oynatıcı, yeni SM_DIALOG_WINDOW (getObjectId (), dialogId, questId)); } } doğruyu döndür; } @Override protected void handleUseItemFinish (Oyuncu oynatıcı) { CheckDialog (oyuncu); } özel void checkDialog (oyuncu oynatıcı) { int npcId = getNpcId (); int teleportationDialogId = DataManager.PORTAL2_DATA.getTeleportDialogId (npcId); Liste <Tamsayı> relatedQuests = QuestEngine.getInstance (). GetQuestNpc (npcId) .getOnTalkEvent (); boolean playerHasQuest = false; boolean playerCanStartQuest = false; if (! relatedQuests.isEmpty ()) { for (int questId: relatedQuests) { QuestState qs = player.getQuestStateList (). GetQuestState (questId); if (qs! = null && (qs.getStatus () == QuestStatus.START || qs.getStatus () == QuestStatus.REWARD)) { playerHasQuest = true; break; } else if (qs == null || qs.getStatus () == QuestStatus.NONE || qs.canRepeat ()) { if (QuestService.checkStartConditions (yeni QuestEnv (getOwner (), player, questId, 0), false)) { playerCanStartQuest = true; devam; } } } } if (playerHasQuest) { boolean isRewardStep = false; for (int questId: relatedQuests) { QuestState qs = player.getQuestStateList (). GetQuestState (questId); if (qs! = boş && qs.getStatus () == QuestStatus.REWARD) { PacketSendUtility.sendPacket (oynatıcı, yeni SM_DIALOG_WINDOW (getObjectId (), rewardDialogId, questId)); isRewardStep = true; break; } } if (! isRewardStep) { PacketSendUtility.sendPacket (oynatıcı, yeni SM_DIALOG_WINDOW (getObjectId (), questDialogId)); } } else if (playerCanStartQuest) { PacketSendUtility.sendPacket (oynatıcı, yeni SM_DIALOG_WINDOW (getObjectId (), startingDialogId)); } else { PacketSendUtility.sendPacket (oynatıcı, yeni SM_DIALOG_WINDOW (getObjectId (), teleportationDialogId, 0)); } } } [/ KOD] Thank you Guys :)
Сколько гемора в этом фиксе. А поменять ид диалога на верный религия не позволяет в темплете portals?
Код: PORTALDİALOGAI2.JAVA before else if (dialogId == DialogAction.SELECT_ACTION_1012.id()) { PacketSendUtility.sendPacket(player, new SM_DIALOG_WINDOW(getObjectId(), 1182)); } AFTER: /*else if (dialogId == DialogAction.SELECT_ACTION_1012.id()) { PacketSendUtility.sendPacket(player, new SM_DIALOG_WINDOW(getObjectId(), 1182)); }*/ close window dialog 1182
Лайтами уже давно интерфейс весь сделан и ничего не нужно лишнего писать в бедном PortalDialog Ai. Код: <!-- STEEL RAKE --> <!-- Steel Rake (Elyos) --> <portal_dialog npc_id="798378"> <portal_path dialog="1012" loc_id="3001000" player_count="6" instance="true" race="ELYOS" err_group="1182"> <portal_req min_level="40" err_level="27"> <quest_req quest_id="3200" err_quest="1097"/> </portal_req> </portal_path> </portal_dialog> <portal_dialog npc_id="805848"> <portal_path dialog="1012" loc_id="3001000" player_count="6" instance="true" race="ELYOS" err_group="1182"> <portal_req min_level="40" err_level="27"> <quest_req quest_id="3200" err_quest="1097"/> </portal_req> </portal_path> </portal_dialog> <!-- Steel Rake (Asmo) --> <portal_dialog npc_id="798379"> <portal_path dialog="1012" loc_id="3001000" player_count="6" instance="true" race="ASMODIANS" err_group="1182"> <portal_req min_level="40" err_level="27"> <quest_req quest_id="4200" err_quest="1097"/> </portal_req> </portal_path> </portal_dialog> <portal_dialog npc_id="805849"> <portal_path dialog="1012" loc_id="3001000" player_count="6" instance="true" race="ASMODIANS" err_group="1182"> <portal_req min_level="40" err_level="27"> <quest_req quest_id="4200" err_quest="1097"/> </portal_req> </portal_path> </portal_dialog> Код: <!-- Steel Rake Solo(Ely) --> <portal_dialog npc_id="798462"> <portal_path dialog="1012" loc_id="3004600" player_count="1" instance="true" race="ELYOS"> <portal_req min_level="40"> <quest_req quest_id="3200" err_quest="1097"/> </portal_req> </portal_path> </portal_dialog> <portal_dialog npc_id="805850"> <portal_path dialog="1012" loc_id="3004600" player_count="1" instance="true" race="ELYOS"> <portal_req min_level="40"> <quest_req quest_id="3200" err_quest="1097"/> </portal_req> </portal_path> </portal_dialog> <!-- Steel Rake Solo(Asmo) --> <portal_dialog npc_id="798463"> <portal_path dialog="1012" loc_id="3004600" player_count="1" instance="true" race="ASMODIANS"> <portal_req min_level="40"> <quest_req quest_id="4200" err_quest="1097"/> </portal_req> </portal_path> </portal_dialog> <portal_dialog npc_id="805851"> <portal_path dialog="1012" loc_id="3004600" player_count="1" instance="true" race="ASMODIANS"> <portal_req min_level="40"> <quest_req quest_id="4200" err_quest="1097"/> </portal_req> </portal_path> </portal_dialog>