Смотрите видео ниже, чтобы узнать, как установить наш сайт в качестве веб-приложения на домашнем экране.
Примечание: Эта возможность может быть недоступна в некоторых браузерах.
Про подробнее согласен, вот только в java серверах aion всё в скриптах и xml(квесты ai), html не используется тут как в la2.А можно более подробно? А то не понял ни черта. Если смотреть именно ошибку на скриншоте, копай в сторону html файлов сборки.
Понял, принял, буду знать. Просто я посмотрел на скриншоте, что идет ссылка на какой то файл html, да и в сборках есть какие-то html файлы, которые в клиенте в виде всяких окошек дополнительных потом появляются.Про подробнее согласен, вот только в java серверах aion всё в скриптах и xml(квесты ai), html не используется тут как в la2.
По скрину просто видно, что нет обращения к самому скрипту либо диалог не правильный.
Проще будет, если автор посмотрит в более ранних до этой версии сборках и сделает по аналогии.
Понял, принял, буду знать. Просто я посмотрел на скриншоте, что идет ссылка на какой то файл html, да и в сборках есть какие-то html файлы, которые в клиенте в виде всяких окошек дополнительных потом появляются.
Там всё сверхуменя прикалывает пуск сверху xdd
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 :)
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 :)
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
Код: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
<!-- 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>
