搜索：

    public void complete(MapleCharacter c, int npc, Integer selection) {
        if (c.getMap() != null && (autoPreComplete || checkNPCOnMap(c, npc)) && canComplete(c, npc)) {
            for (MapleQuestAction a : completeActs) {
                if (!a.checkEnd(c, selection)) {
                    return;
                }
            }
            forceComplete(c, npc);
            for (MapleQuestAction a : completeActs) {
                a.runEnd(c, selection);
            }
            // we save forfeits only for logging purposes, they shouldn't matter anymore
            // completion time is set by the constructor

            c.getClient().getSession().write(EffectPacket.showForeignEffect(12)); // Quest completion
            c.getMap().broadcastMessage(c, EffectPacket.showForeignEffect(c.getId(), 12), false);
        }
    }



替換：

    public void complete(MapleCharacter c, int npc, Integer selection) {// 修復部分非腳本任務不能完成問題
        //if (c.getMap() != null && (autoPreComplete || checkNPCOnMap(c, npc)) && canComplete(c, npc)) {
            for (MapleQuestAction a : completeActs) {
                if (!a.checkEnd(c, selection)) {
                    return;
                }
            }
            forceComplete(c, npc);
            for (MapleQuestAction a : completeActs) {
                a.runEnd(c, selection);
            }
            // we save forfeits only for logging purposes, they shouldn't matter anymore
            // completion time is set by the constructor

            c.getClient().getSession().write(EffectPacket.showForeignEffect(12)); // Quest completion
            c.getMap().broadcastMessage(c, EffectPacket.showForeignEffect(c.getId(), 12), false);
        //}
    }