↑ ↓

Конфигурирование квестов. Проблема с квестами ID1006 и ID1007.

Тема в разделе "Помощь", создана пользователем DrSpider, 19 мар 2016.

  1. TopicStarter Overlay
    Offline

    DrSpider Рядовой

    90
    5
    41
    Кредиты:
    $198,00
    Репутация:
    1
    Доброго дня всем форумчанам! Хочу спросить у людей знающих как поправить квесты с ID1006 и 1007. Использую сервер AionCore 4.7.5, в ходе настройки сервера обратил внимание на некоторые вещи, которым вначале не придал значения, а как оказалось зря. Все параметры настройки указывали на то, что сервер изначально был "заточен" как ПвП сервер. По всей видимости в связи с этим в данной сборке получилась такая проблема: создаем персонажа, заходим в игру и автоматом получаем эти два злосчастных квеста (в конфе видимо было что при создании персонажа - он получает сразу 9 лвл, я же наверное изменил на 1). Но, так как по моей конфигурации персонаж при входе имеет только 1 лвл, то выполнить эти квесты конечно же нельзя. После релога квесты эти пропадают, но потом в ходе кача, добираемся до френоса, имеем 9 лвл, НО миссий этих у френоса нет! Логика подсказывает что квест одноразовый, и если его получили на входе и не выполнили - то систему не волнует этот нюанс, она просто не дает его снова. Вручную конечно ГМ может стартануть для игрока этот кв, но это же не выход? Подскажите пожалуйста где искать решение? Какие файлы рыть и что вообще искать? Я ведь не волшебник )) я только учусь.
     
  2. Offline

    klubheads Сержант Команда форума Модератор

    2.011
    356
    189
    Кредиты:
    $2.142,45
    Репутация:
    54
    ClassChangeService.java
    покажи свой .
     
  3. TopicStarter Overlay
    Offline

    DrSpider Рядовой

    90
    5
    41
    Кредиты:
    $198,00
    Репутация:
    1
    в исходниках других серверов вижу такой файл, а вот у себя не могу найти его ... ткните носом плиз
     
  4. Offline

    klubheads Сержант Команда форума Модератор

    2.011
    356
    189
    Кредиты:
    $2.142,45
    Репутация:
    54
    В сервисе смотри
     
  5. TopicStarter Overlay
    Offline

    DrSpider Рядовой

    90
    5
    41
    Кредиты:
    $198,00
    Репутация:
    1
    перерыл все папки, прошелся поиском, нет такого файла
     
  6. Offline

    klubheads Сержант Команда форума Модератор

    2.011
    356
    189
    Кредиты:
    $2.142,45
    Репутация:
    54
    \AC-Game\src\com\aionemu\gameserver\services

    лежит в корне папки
     
  7. TopicStarter Overlay
    Offline

    DrSpider Рядовой

    90
    5
    41
    Кредиты:
    $198,00
    Репутация:
    1
    мда, исходников то у меня и нет от этого сервера. Нашел в скомпилированном следующий файл _1006Ascension.java, как понимаю это как раз квест 1006
    /**
    * This file is part of Aion-Lightning <aion-lightning.org>.
    *
    * Aion-Lightning is free software: you can redistribute it and/or modify
    * it under the terms of the GNU General Public License as published by
    * the Free Software Foundation, either version 3 of the License, or
    * (at your option) any later version.
    *
    * Aion-Lightning is distributed in the hope that it will be useful,
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    * GNU General Public License for more details. *
    *
    * You should have received a copy of the GNU General Public License
    * along with Aion-Lightning.
    * If not, see <Please login or register to view links.
    *
    *
    * Credits goes to all Open Source Core Developer Groups listed below
    * Please do not change here something, ragarding the developer credits, except the "developed by XXXX".
    * Even if you edit a lot of files in this source, you still have no rights to call it as "your Core".
    * Everybody knows that this Emulator Core was developed by Aion Lightning
    * @-Aion-Unique-
    * @-Aion-Lightning
    * @Aion-Engine
    * @Aion-Extreme
    * @Aion-NextGen
    * @Aion-Core Dev.
    */
    package quest.ascension;

    import java.util.ArrayList;
    import java.util.List;

    import com.aionemu.gameserver.configs.main.CustomConfig;
    import com.aionemu.gameserver.dataholders.DataManager;
    import com.aionemu.gameserver.model.EmotionType;
    import com.aionemu.gameserver.model.PlayerClass;
    import com.aionemu.gameserver.model.TeleportAnimation;
    import com.aionemu.gameserver.model.actions.NpcActions;
    import com.aionemu.gameserver.model.gameobjects.Item;
    import com.aionemu.gameserver.model.gameobjects.Npc;
    import com.aionemu.gameserver.model.gameobjects.player.Player;
    import com.aionemu.gameserver.model.gameobjects.state.CreatureState;
    import com.aionemu.gameserver.network.aion.SystemMessageId;
    import com.aionemu.gameserver.network.aion.serverpackets.SM_ASCENSION_MORPH;
    import com.aionemu.gameserver.network.aion.serverpackets.SM_EMOTION;
    import com.aionemu.gameserver.network.aion.serverpackets.SM_SYSTEM_MESSAGE;
    import com.aionemu.gameserver.questEngine.handlers.HandlerResult;
    import com.aionemu.gameserver.questEngine.handlers.QuestHandler;
    import com.aionemu.gameserver.model.DialogAction;
    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.ClassChangeService;
    import com.aionemu.gameserver.services.QuestService;
    import com.aionemu.gameserver.services.instance.InstanceService;
    import com.aionemu.gameserver.services.teleport.TeleportService2;
    import com.aionemu.gameserver.skillengine.SkillEngine;
    import com.aionemu.gameserver.utils.PacketSendUtility;
    import com.aionemu.gameserver.utils.ThreadPoolManager;
    import com.aionemu.gameserver.world.WorldMapInstance;
    import com.aionemu.gameserver.world.zone.ZoneName;

    /**
    * Talk with Pernos (790001). Go to the island at the center of Cliona Lake
    * (CLIONA_LAKE_210010000) and fill up the bottle Pernos gave you (182200007).
    * Meet Daminu (730008) and obtain Daminu's Essence (182200009). Talk with
    * Pernos. Explore your lost past (310020000, 52, 174, 229). Advance on
    * Karamatis (Belpartan, 205000). Defeat Raiders (211042) (4). Defeat Orissan
    * (211043). Talk with Pernos and choose the path you will take.
    *
    * @author MrPoke
    * @reworked vlog
    */
    public class _1006Ascension extends QuestHandler {

    private final static int questId = 1006;

    public _1006Ascension() {
    super(questId);
    }

    @Override
    public void register() {
    if (CustomConfig.ENABLE_SIMPLE_2NDCLASS) {
    return;
    }
    int[] mobs = {211042, 211043};
    int[] npcs = {790001, 730008, 205000};
    qe.registerOnLevelUp(questId);
    for (int mob : mobs) {
    qe.registerQuestNpc(mob).addOnKillEvent(questId);
    }
    for (int npc : npcs) {
    qe.registerQuestNpc(npc).addOnTalkEvent(questId);
    }
    qe.registerQuestItem(182200007, questId);
    qe.registerOnEnterWorld(questId);
    qe.registerOnDie(questId);
    qe.registerOnMovieEndQuest(14, questId);
    qe.registerOnMovieEndQuest(151, questId);
    }

    @Override
    public boolean onDialogEvent(final QuestEnv env) {
    final Player player = env.getPlayer();
    final QuestState qs = player.getQuestStateList().getQuestState(questId);
    if (qs == null) {
    return false;
    }
    DialogAction dialog = env.getDialog();
    int var = qs.getQuestVarById(0);
    int targetId = 0;
    if (env.getVisibleObject() instanceof Npc) {
    targetId = ((Npc) env.getVisibleObject()).getNpcId();
    }

    if (qs.getStatus() == QuestStatus.START) {
    switch (targetId) {
    case 790001: { // Pernos
    switch (dialog) {
    case QUEST_SELECT: {
    if (var == 0) {
    return sendQuestDialog(env, 1011);
    } else if (var == 3) {
    return sendQuestDialog(env, 1693);
    } else if (var == 5) {
    return sendQuestDialog(env, 2034);
    }
    }
    case SETPRO1: {
    if (player.getInventory().getItemCountByItemId(182200007) == 0) {
    if (!giveQuestItem(env, 182200007, 1)) {
    return true;
    }
    }
    qs.setQuestVar(1);
    updateQuestStatus(env);
    TeleportService2.teleportTo(player, 210010000, 657f, 1071f, 99.375f, (byte) 72, TeleportAnimation.BEAM_ANIMATION);
    return true;
    }
    case SETPRO3: {
    WorldMapInstance newInstance = InstanceService.getNextAvailableInstance(310020000);
    InstanceService.registerPlayerWithInstance(newInstance, player);
    TeleportService2.teleportTo(player, 310020000, newInstance.getInstanceId(), 52, 174, 229, (byte) 10);
    qs.setQuestVar(99); // 99
    updateQuestStatus(env);
    removeQuestItem(env, 182200009, 1);
    return closeDialogWindow(env);
    }
    case SETPRO4: {
    PlayerClass playerClass = player.getCommonData().getPlayerClass();
    if (var == 5) {
    if (playerClass.isStartingClass()) {
    if (playerClass == PlayerClass.WARRIOR) {
    return sendQuestDialog(env, 2375);
    } else if (playerClass == PlayerClass.SCOUT) {
    return sendQuestDialog(env, 2716);
    } else if (playerClass == PlayerClass.MAGE) {
    return sendQuestDialog(env, 3057);
    } else if (playerClass == PlayerClass.PRIEST) {
    return sendQuestDialog(env, 3398);
    } else if (playerClass == PlayerClass.ENGINEER) {
    return sendQuestDialog(env, 3739);
    } else if (playerClass == PlayerClass.ARTIST) {
    return sendQuestDialog(env, 4080);
    }
    }
    }
    }
    case SETPRO5: {
    return setPlayerClass(env, qs, PlayerClass.GLADIATOR);
    }
    case SETPRO6: {
    return setPlayerClass(env, qs, PlayerClass.TEMPLAR);
    }
    case SETPRO7: {
    return setPlayerClass(env, qs, PlayerClass.ASSASSIN);
    }
    case SETPRO8: {
    return setPlayerClass(env, qs, PlayerClass.RANGER);
    }
    case SETPRO9: {
    return setPlayerClass(env, qs, PlayerClass.SORCERER);
    }
    case SETPRO10: {
    return setPlayerClass(env, qs, PlayerClass.SPIRIT_MASTER);
    }
    case SETPRO11: {
    return setPlayerClass(env, qs, PlayerClass.CLERIC);
    }
    case SETPRO12: {
    return setPlayerClass(env, qs, PlayerClass.CHANTER);
    }
    case SETPRO13: {
    return setPlayerClass(env, qs, PlayerClass.GUNNER);
    }
    case SETPRO14: {
    return setPlayerClass(env, qs, PlayerClass.BARD);
    }
    case SETPRO15: {
    return setPlayerClass(env, qs, PlayerClass.RIDER);
    }
    }
    break;
    }
    case 730008: { // Daminu
    switch (dialog) {
    case QUEST_SELECT: {
    if (var == 2) {
    if (player.getInventory().getItemCountByItemId(182200008) >= 1) {
    return sendQuestDialog(env, 1352);
    }
    }
    }
    case SETPRO2: {
    playQuestMovie(env, 14);
    return true;
    }
    }
    break;
    }
    case 205000: { // Belpartan
    switch (dialog) {
    case QUEST_SELECT: {
    if (qs.getQuestVars().getQuestVars() == 99) {
    SkillEngine.getInstance().applyEffectDirectly(1910, player, player, 0);
    player.setState(CreatureState.FLIGHT_TELEPORT);
    player.unsetState(CreatureState.ACTIVE);
    player.setFlightTeleportId(1001);
    PacketSendUtility.sendPacket(player, new SM_EMOTION(player, EmotionType.START_FLYTELEPORT, 1001, 0));
    qs.setQuestVar(50); // 50
    updateQuestStatus(env);
    final int instanceId = player.getInstanceId();
    ThreadPoolManager.getInstance().schedule(new Runnable() {
    @Override
    public void run() {
    qs.setQuestVar(51);
    updateQuestStatus(env);
    List<Npc> mobs = new ArrayList<Npc>();
    mobs.add((Npc) QuestService.spawnQuestNpc(310020000, instanceId, 211042, (float) 224.073,
    (float) 239.1, (float) 206.7, (byte) 0));
    mobs.add((Npc) QuestService.spawnQuestNpc(310020000, instanceId, 211042, (float) 233.5,
    (float) 241.04, (float) 206.365, (byte) 0));
    mobs.add((Npc) QuestService.spawnQuestNpc(310020000, instanceId, 211042, (float) 229.6,
    (float) 265.7, (float) 205.7, (byte) 0));
    mobs.add((Npc) QuestService.spawnQuestNpc(310020000, instanceId, 211042, (float) 222.8,
    (float) 262.5, (float) 205.7, (byte) 0));
    for (Npc mob : mobs) {
    mob.getAggroList().addDamage(player, 1000);
    }
    }
    }, 43000);
    return true;
    }
    }
    }
    }
    }
    } else if (qs.getStatus() == QuestStatus.REWARD) {
    if (targetId == 790001) { // Pernos
    switch (env.getDialog()) {
    case SELECTED_QUEST_NOREWARD:
    if (player.getWorldId() == 310020000) {
    TeleportService2.teleportTo(player, 210010000, 245.14868f, 1639.1372f, 100.35713f, (byte) 60, TeleportAnimation.BEAM_ANIMATION);
    }
    break;
    }
    return sendQuestEndDialog(env);
    }
    }
    return false;
    }

    @Override
    public HandlerResult onItemUseEvent(final QuestEnv env, Item item) {
    Player player = env.getPlayer();
    QuestState qs = player.getQuestStateList().getQuestState(questId);
    if (qs != null && qs.getStatus() == QuestStatus.START) {
    if (player.isInsideZone(ZoneName.get("LF1_ITEMUSEAREA_Q1006"))) {
    int var = qs.getQuestVarById(0);
    if (var == 1) {
    return HandlerResult.fromBoolean(useQuestItem(env, item, 1, 2, false, 182200008, 1, 0)); // 2
    }
    }
    }
    return HandlerResult.SUCCESS; // ??
    }

    @Override
    public boolean onKillEvent(QuestEnv env) {
    Player player = env.getPlayer();
    QuestState qs = player.getQuestStateList().getQuestState(questId);
    if (qs != null && qs.getStatus() == QuestStatus.START) {
    Npc npc = (Npc) env.getVisibleObject();
    int var = qs.getQuestVarById(0);
    int targetId = env.getTargetId();
    if (targetId == 211042) {
    NpcActions.delete(npc);
    if (var >= 51 && var < 54) {
    return defaultOnKillEvent(env, 211042, 51, 54); // 52 - 54
    } else if (var == 54) {
    qs.setQuestVar(4); // 4
    updateQuestStatus(env);
    Npc mob = (Npc) QuestService.spawnQuestNpc(310020000, player.getInstanceId(), 211043, (float) 226.7,
    (float) 251.5, (float) 205.5, (byte) 0);
    mob.getAggroList().addDamage(player, 1000);
    return true;
    }
    } else if (targetId == 211043 && var == 4) {
    playQuestMovie(env, 151);
    for (Npc npcInside : player.getPosition().getWorldMapInstance().getNpcs()) {
    NpcActions.delete(npcInside);
    }
    QuestService.addNewSpawn(310020000, player.getInstanceId(), 790001, (float) 220.6, (float) 247.8, (float) 206.0, (byte) 0);
    qs.setQuestVar(5); // 5
    updateQuestStatus(env);
    }
    }
    return false;
    }

    private boolean setPlayerClass(QuestEnv env, QuestState qs, PlayerClass playerClass) {
    Player player = env.getPlayer();
    if (player.getPlayerClass().isStartingClass()) {
    ClassChangeService.setClass(player, playerClass);
    player.getController().upgradePlayer();
    changeQuestStep(env, 5, 5, true); // reward
    return sendQuestDialog(env, 5);
    }
    return false;
    }

    @Override
    public boolean onDieEvent(QuestEnv env) {
    Player player = env.getPlayer();
    QuestState qs = player.getQuestStateList().getQuestState(questId);
    if (qs != null && qs.getStatus() != QuestStatus.START) {
    int var = qs.getQuestVars().getQuestVars();
    if (var == 4 || (var == 5 && player.getPlayerClass().isStartingClass()) || (var >= 50 && var <= 55)) {
    qs.setQuestVar(3);
    updateQuestStatus(env);
    PacketSendUtility.sendPacket(player, new SM_SYSTEM_MESSAGE(SystemMessageId.QUEST_FAILED_$1,
    DataManager.QUEST_DATA.getQuestById(questId).getName()));
    }
    }
    return false;
    }

    @Override
    public boolean onEnterWorldEvent(QuestEnv env) {
    Player player = env.getPlayer();
    QuestState qs = player.getQuestStateList().getQuestState(questId);
    if (qs != null && qs.getStatus() == QuestStatus.START) {
    int var = qs.getQuestVars().getQuestVars();
    if (var == 4 || (var == 5 && player.getPlayerClass().isStartingClass()) || (var >= 50 && var <= 55) || var == 99) {
    if (player.getWorldId() != 310020000) {
    qs.setQuestVar(3);
    updateQuestStatus(env);
    PacketSendUtility.sendPacket(player, new SM_SYSTEM_MESSAGE(SystemMessageId.QUEST_FAILED_$1,
    DataManager.QUEST_DATA.getQuestById(questId).getName()));
    } else {
    PacketSendUtility.sendPacket(player, new SM_ASCENSION_MORPH(1));
    return true;
    }
    }
    }
    return false;
    }

    @Override
    public boolean onLvlUpEvent(QuestEnv env) {
    return defaultOnLvlUpEvent(env);
    }

    @Override
    public boolean onMovieEndEvent(QuestEnv env, int movieId) {
    Player player = env.getPlayer();
    QuestState qs = player.getQuestStateList().getQuestState(questId);

    if (qs == null || qs.getStatus() != QuestStatus.START) {
    return false;
    }

    if (movieId == 14) {
    removeQuestItem(env, 182200008, 1);
    giveQuestItem(env, 182200009, 1);
    qs.setQuestVar(3);
    updateQuestStatus(env);
    TeleportService2.teleportTo(player, 210010000, 246f, 1639f, 100.316f, (byte) 56, TeleportAnimation.BEAM_ANIMATION);
    return true;
    }
    return false;
    }
    }
     
  8. Offline

    klubheads Сержант Команда форума Модератор

    2.011
    356
    189
    Кредиты:
    $2.142,45
    Репутация:
    54
    Лежат исходники тут на форуме , не думаю что тут проблема в самом квесте .
     
  9. TopicStarter Overlay
    Offline

    DrSpider Рядовой

    90
    5
    41
    Кредиты:
    $198,00
    Репутация:
    1
    непосредственно сам квест работает отлично, проблема в том что при создании персонажа он появляется автоматически, и если не сделать его до релога - то потом взять его снова у френоса невозможно, так как система считает что квест уже был (причем статус выполнен/отказан и пр системе плевать). Судя по исходникам на корах и содержимому _1006Ascension.java - все в норме. Как убрать автозапуск этих миссий при создании и входе свежего персонажа? Я уже не знаю куда рыть, до того как прийти и задать вопрос здесь - искал по всем файлам, гуглил, пересмотрел все файлы с настройками, насколько смог - вник в java файлы самих миссий, но к сожалению решения не нашел, не может быть случаем в клиенте стоять запуск? Я знаю что нупь, но я над этим работаю, поверьте, помогите понять пожалуйста.
     
  10. Offline

    klubheads Сержант Команда форума Модератор

    2.011
    356
    189
    Кредиты:
    $2.142,45
    Репутация:
    54
    в конфигах
    custom.properties

    так стоит ?
    gameserver.simple.secondclass.enable = false
     
  11. TopicStarter Overlay
    Offline

    DrSpider Рядовой

    90
    5
    41
    Кредиты:
    $198,00
    Репутация:
    1
    # Enable second class change without quest
    # Default: false
    gameserver.simple.secondclass.enable = false

    Конфиги конечно ))) все проверил уже раз 50.
     
  12. TopicStarter Overlay
    Offline

    DrSpider Рядовой

    90
    5
    41
    Кредиты:
    $198,00
    Репутация:
    1
    вопрос так и не решил, сервер AionCore 4.7.5.18 ревизия 903. Исходников просто не нашел, в структуре скомпилированного сервера папка services отсутствует. Нашел все файлы, где упоминаются эти злосчатные квесты с id 1006 и 1007, проверил насколько мог содержимое - криминала не обнаружил. Еще раз симптоматика: при создании нового персонажа сходу даются два кв: перерождение и церемония даэвов, НО ... кв не рабочие, даже если получить 9 лвл, необходимый для кв перерождение - приходим к френосу - он заявляет либо что-то вроде подождите, либо предлагает отправиться искать тутти, если релогнуться - кв 1006 и 1007 пропадают вовсе и только гм запуская принудительно эти кв для игрока решает вопрос. Может где-то при создании персонажа есть процедура приписывающая старт этих кв?
     
  13. TopicStarter Overlay
    Offline

    DrSpider Рядовой

    90
    5
    41
    Кредиты:
    $198,00
    Репутация:
    1
    Залез в ядро.
    Please login or register to view links

    Содержимое ClassChangeService.class:
    package com.aionemu.gameserver.services;

    import com.aionemu.gameserver.configs.main.CustomConfig;
    import com.aionemu.gameserver.configs.main.MembershipConfig;
    import com.aionemu.gameserver.controllers.PlayerController;
    import com.aionemu.gameserver.model.PlayerClass;
    import com.aionemu.gameserver.model.Race;
    import com.aionemu.gameserver.model.gameobjects.player.Player;
    import com.aionemu.gameserver.model.gameobjects.player.PlayerCommonData;
    import com.aionemu.gameserver.network.aion.serverpackets.SM_CUBE_UPDATE;
    import com.aionemu.gameserver.network.aion.serverpackets.SM_DIALOG_WINDOW;
    import com.aionemu.gameserver.services.player.PlayerService;
    import com.aionemu.gameserver.utils.PacketSendUtility;

    public class ClassChangeService
    {
    public static void setClass(Player a, PlayerClass a)
    {
    if (validateSwitch(a, a))
    {
    a.getCommonData().setPlayerClass(a);a.getController().upgradePlayer();a; int tmp32_31 = 1;tmp32_31; int tmp36_35 = 1;tmp36_35; int tmp39_38 = 0; int tmp41_40 = 1;tmp41_40;tmp39_38.<init>(tmp36_35, tmp39_38, tmp41_40);PacketSendUtility.sendPacket(tmp32_31, 0);
    }
    }

    public static void changeClassToSelection(Player a, int a)
    {
    Race a = a.getRace();
    if (CustomConfig.ENABLE_SIMPLE_2NDCLASS)
    {
    switch (a)
    {
    case 2376:
    case 2461:
    case 2717:
    case 2802:
    case 3058:
    case 3143:
    case 3399:
    case 3484:
    case 3825:
    case 3740:
    for (;;)
    {
    if (0 == 0)
    {
    int tmp123_122 = 1; int tmp124_123 = tmp123_122;tmp124_123;setClass(tmp123_122, PlayerClass.getPlayerClassById(tmp124_123));tmpTernaryOp = a;break;throw a; int tmp140_139 = 1;tmp140_139;setClass(2, PlayerClass.getPlayerClassById(tmp140_139));tmpTernaryOp = a;break;throw a; int tmp156_155 = 1;tmp156_155;setClass(4, PlayerClass.getPlayerClassById(tmp156_155));tmpTernaryOp = a;

    break; int tmp171_170 = 1;tmp171_170;setClass(5, PlayerClass.getPlayerClassById(tmp171_170));tmpTernaryOp = a;break; int tmp187_186 = 1;tmp187_186;setClass(7, PlayerClass.getPlayerClassById(tmp187_186));tmpTernaryOp = a;break; int tmp203_202 = 1;tmp203_202;setClass(8, PlayerClass.getPlayerClassById(tmp203_202));tmpTernaryOp = a;break; int tmp219_218 = 1;tmp219_218;setClass(10, PlayerClass.getPlayerClassById(tmp219_218));tmpTernaryOp = a;break; int tmp235_234 = 1;tmp235_234;setClass(11, PlayerClass.getPlayerClassById(tmp235_234));tmpTernaryOp = a;

    break; int tmp251_250 = 1;tmp251_250;setClass(13, PlayerClass.getPlayerClassById(tmp251_250));tmpTernaryOp = a;break; int tmp267_266 = 1;tmp267_266;setClass(14, PlayerClass.getPlayerClassById(tmp267_266));tmpTernaryOp = a;break;tmpTernaryOp = a;
    }
    }
    case 4081:
    int tmp285_284 = 1;tmp285_284;setClass(16, PlayerClass.getPlayerClassById(tmp285_284));
    }
    int tmp298_297 = 1;tmp298_297;completeQuest(1006, tmp298_297); int

    tmp309_308 = 1;tmp309_308;completeQuest(1007, tmp309_308);
    if (a.havePermission(MembershipConfig.STIGMA_SLOT_QUEST))
    {
    int tmp329_328 = 1;tmp329_328;completeQuest(1929, tmp329_328);
    if (a == Race.ASMODIANS)
    {
    switch (a)
    {
    case 3058:
    case 3143:
    case 3399:
    case 3484:
    case 3740:
    case 3825:
    case 4081:
    for (;;)
    {
    if (0 == 0)
    {
    int tmp451_450 = 1; int tmp452_451 = tmp451_450;tmp452_451;setClass(tmp451_450, PlayerClass.getPlayerClassById(tmp452_451));tmpTernaryOp = a;break; int tmp467_466 = 1;tmp467_466;setClass(2, PlayerClass.getPlayerClassById(tmp467_466));tmpTernaryOp = a;break; int

    tmp482_481 = 1;tmp482_481;setClass(4, PlayerClass.getPlayerClassById(tmp482_481));tmpTernaryOp = a;break; int tmp497_496 = 1;tmp497_496;setClass(5, PlayerClass.getPlayerClassById(tmp497_496));tmpTernaryOp = a;break; int tmp513_512 = 1;tmp513_512;setClass(7, PlayerClass.getPlayerClassById(tmp513_512));tmpTernaryOp = a;break; int tmp529_528 = 1;tmp529_528;setClass(8, PlayerClass.getPlayerClassById(tmp529_528));tmpTernaryOp = a;break; int tmp545_544 = 1;tmp545_544;setClass(10, PlayerClass.getPlayerClassById(tmp545_544));tmpTernaryOp = a;break;tmpTernaryOp = a;
    }
    }
    case 4166:
    int tmp564_563 = 1;tmp564_563;setClass(11, PlayerClass.getPlayerClassById(tmp564_563));tmpTernaryOp = a;

    break;
    case 3591:
    int tmp580_579 = 1;tmp580_579;setClass(13, PlayerClass.getPlayerClassById(tmp580_579));tmpTernaryOp = a;

    break;
    case 3570:
    int tmp596_595 = 1;tmp596_595;setClass(14, PlayerClass.getPlayerClassById(tmp596_595));tmpTernaryOp = a;break;
    case 3911:
    int tmp611_610 = 1;tmp611_610;setClass(16, PlayerClass.getPlayerClassById(tmp611_610));
    }
    int tmp624_623 = 1;tmp624_623;completeQuest(2008, tmp624_623); int

    tmp635_634 = 1;tmp635_634;completeQuest(2009, tmp635_634);
    if (

    a.havePermission(MembershipConfig.STIGMA_SLOT_QUEST))
    {
    int tmp654_653 = 1;tmp654_653;completeQuest(2900, tmp654_653);
    }
    }
    }
    SkillLearnService.addMissingSkills(

    a == Race.ELYOS ? a : a);addQuestsIfMissing(a);PlayerService.storePlayer(a);
    }
    }

    public static void showClassChangeDialog(Player a)
    {
    if (CustomConfig.ENABLE_SIMPLE_2NDCLASS)
    {
    PlayerClass a = a.getPlayerClass();

    Race a = a.getRace(); int
    tmp23_22 = 1;tmp23_22;
    if ((9 >= tmp23_22) && (a.isStartingClass()))
    {
    if (a == Race.ELYOS)
    {
    switch (1.$SwitchMap$com$aionemu$gameserver$model$PlayerClass[a.ordinal()])
    {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    for (;;)
    {
    if (0 == 0)
    {
    int tmp99_98 = 1;tmp99_98; int tmp105_104 = 1;tmp105_104; int tmp111_110 = 1;tmp111_110;'?'.<init>(tmp105_104, 1006, tmp111_110);PacketSendUtility.sendPacket(0, tmp99_98);return;throw new com/aionemu/gameserver/network/aion/serverpackets/SM_DIALOG_WINDOW; int tmp128_127 = 1;tmp128_127; int tmp134_133 = 1;tmp134_133; int tmp140_139 = 1;tmp140_139;'?'.<init>(tmp134_133, 1006, tmp140_139);PacketSendUtility.sendPacket(0, tmp128_127);

    return;throw new com/aionemu/gameserver/network/aion/serverpackets/SM_DIALOG_WINDOW; int tmp157_156 = 1;tmp157_156; int tmp163_162 = 1;tmp163_162; int tmp169_168 = 1;tmp169_168;'?'.<init>(tmp163_162, 1006, tmp169_168);PacketSendUtility.sendPacket(0, tmp157_156); return; int tmp185_184 = 1;tmp185_184; int tmp191_190 = 1;tmp191_190; int tmp197_196 = 1;tmp197_196;'?'.<init>(tmp191_190, 1006, tmp197_196);PacketSendUtility.sendPacket(0, tmp185_184); return; int tmp213_212 = 1;tmp213_212; int tmp219_218 = 1;tmp219_218; int tmp225_224 = 1;tmp225_224;'?'.<init>(tmp219_218, 1006, tmp225_224);PacketSendUtility.sendPacket(0, tmp213_212); return;new com/aionemu/gameserver/network/aion/serverpackets/SM_DIALOG_WINDOW;
    }
    }
    case 6:
    int tmp244_243 = 1;tmp244_243; int tmp250_249 = 1;tmp250_249; int tmp256_255 = 1;tmp256_255;'?'.<init>(tmp250_249, 1006, tmp256_255);PacketSendUtility.sendPacket(0, tmp244_243);
    }
    return;
    }
    if (a == Race.ASMODIANS) {
    switch (1.$SwitchMap$com$aionemu$gameserver$model$PlayerClass[a.ordinal()])
    {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    for (;;)
    {
    if (0 == 0)
    {
    int tmp331_330 = 1;tmp331_330; int tmp337_336 = 1;tmp337_336; int tmp343_342 = 1;tmp343_342;'?'.<init>(tmp337_336, 2008, tmp343_342);PacketSendUtility.sendPacket(0, tmp331_330); return; int

    tmp359_358 = 1;tmp359_358; int tmp365_364 = 1;tmp365_364; int tmp371_370 = 1;tmp371_370;'?'.<init>(tmp365_364, 2008, tmp371_370);PacketSendUtility.sendPacket(0, tmp359_358); return; int tmp387_386 = 1;tmp387_386; int tmp393_392 = 1;tmp393_392; int tmp399_398 = 1;tmp399_398;'?'.<init>(tmp393_392, 2008, tmp399_398);PacketSendUtility.sendPacket(0, tmp387_386); return; int

    tmp415_414 = 1;tmp415_414; int tmp421_420 = 1;tmp421_420; int tmp427_426 = 1;tmp427_426;'?'.<init>(tmp421_420, 2008, tmp427_426);PacketSendUtility.sendPacket(0, tmp415_414); return; int

    tmp443_442 = 1;tmp443_442; int tmp449_448 = 1;tmp449_448; int tmp455_454 = 1;tmp455_454;'?'.<init>(tmp449_448, 2008, tmp455_454);PacketSendUtility.sendPacket(0, tmp443_442);return;new com/aionemu/gameserver/network/aion/serverpackets/SM_DIALOG_WINDOW;
    }
    }
    case 6:
    int tmp474_473 = 1;tmp474_473; int tmp480_479 = 1;tmp480_479; int tmp486_485 = 1;tmp486_485;'?'.<init>(tmp480_479, 2008, tmp486_485);PacketSendUtility.sendPacket(0, tmp474_473);
    }
    }
    }
    }
    }

    public static void addQuestsIfMissing(Player a)
    {
    switch (1.$SwitchMap$com$aionemu$gameserver$model$Race[a.getRace().ordinal()])
    {
    case 1:
    while (0 != 0) {}
    int tmp45_44 = 1;tmp45_44;
    if (!'?'.isCompleteQuest(tmp45_44))
    {
    int tmp58_57 = 1;tmp58_57;completeQuest(1006, tmp58_57);
    }
    int tmp68_67 = 1;tmp68_67;
    if (!'?'.isCompleteQuest(tmp68_67))
    {
    int tmp81_80 = 1;tmp81_80;completeQuest(1007, tmp81_80);
    }
    int tmp91_90 = 1;tmp91_90;
    if ((!'?'.isCompleteQuest(tmp91_90)) && (a.havePermission(MembershipConfig.STIGMA_SLOT_QUEST)))
    {
    int tmp115_114 = 1;tmp115_114;completeQuest(1929, tmp115_114);tmpTernaryOp = a;
    break label204;
    throw a;
    }
    break;
    case 2:
    int tmp129_128 = 1;tmp129_128;
    if (!'?'.isCompleteQuest(tmp129_128))
    {
    int tmp142_141 = 1;tmp142_141;completeQuest(2008, tmp142_141);
    }
    int tmp152_151 = 1;tmp152_151;
    if (!'?'.isCompleteQuest(tmp152_151))
    {
    int tmp165_164 = 1;tmp165_164;completeQuest(2009, tmp165_164);
    }
    int tmp175_174 = 1;tmp175_174;
    if ((!'?'.isCompleteQuest(tmp175_174)) && (a.havePermission(MembershipConfig.STIGMA_SLOT_QUEST)))
    {
    int tmp198_197 = 1;tmp198_197;completeQuest(2900, tmp198_197);
    }
    break;
    }
    label204:
    PacketSendUtility.sendPacket(a, SM_CUBE_UPDATE.stigmaSlots(a.getCommonData().getAdvancedStigmaSlotSize()));
    }
    }
    Требуется помощь властелинов кодинга/конфигурирования для осознания проблемы, если что - договоримся о цене в ПМ.
     
  14. Offline

    klubheads Сержант Команда форума Модератор

    2.011
    356
    189
    Кредиты:
    $2.142,45
    Репутация:
    54
    Это декомпил ?)))
     
  15. TopicStarter Overlay
    Offline

    DrSpider Рядовой

    90
    5
    41
    Кредиты:
    $198,00
    Репутация:
    1
    Ввиду отсутствия исходников на ревизию 903, пришлось да, залезть вероломно для изучения содержимого того самого файла, о котором вы упомянули ) А что еще делать-то? Настройки верные, все выставлено правильно, несмотря на это кв упрямо даются при создании персонажа, такое ощущение что сервер был скомпилирован уже с таким поведением. Ребят, ну вы же ГУРУ, не первый день и не первый раз изучающие эти вещи, я знаю что задаю возможно глупые вопросы, но ведь дорогу осилит идущий, все с чего-то начинали. Вот и мне пришлось столкнуться с проблемой, и я не ищу способа, чтобы мне все решили и пр., я хочу понять, разобраться, чтобы знать в будущем как подобные задачи решать, где искать, куда копать. Очень прошу помощи и содействия сообщества по мере возможности.
     
  16. TopicStarter Overlay
    Offline

    DrSpider Рядовой

    90
    5
    41
    Кредиты:
    $198,00
    Репутация:
    1
    Вот такой кусок кода нарыл в скомпилированном ядре в ClassChangeService.java:
    Код:
      public static void showClassChangeDialog(Player a)
      {
      if (CustomConfig.ENABLE_SIMPLE_2NDCLASS)
      {
      PlayerClass a = a.getPlayerClass();
       
      Race a = a.getRace(); int
      tmp23_22 = 1;tmp23_22;
      if ((9 >= tmp23_22) && (a.isStartingClass()))
    Если я правильно мыслю, то выделенный кусок в соответствии с рекомендациями в теме
    Please login or register to view links
    правильный, теперь хотелось бы понять где именно вызываются эти чертовы квесты при создании персонажа. Есть еще мысли?
     
  17. Offline

    klubheads Сержант Команда форума Модератор

    2.011
    356
    189
    Кредиты:
    $2.142,45
    Репутация:
    54
    Please login or register to view links , возьми сборку нормальную с исходниками (на компилах далеко не уедешь) .
    Проще будет исправить в исходниках чем в компил класы пихать .

    Отступлю немного .... мне как то сборка попадалась ... так там получение 9-го лвл при старте было добавлено тупо экспой в 1 квест каждой расе:LOL: - возможно стоит там посмотреть .
    тут как бы вход из положения но не решение , там всего лишь нужно было добавить в общий конфиг это , а потом вывести в игровой эту фичу , возможно тут так же - но опять .. в исходах это делается .
     
  18. Offline

    klubheads Сержант Команда форума Модератор

    2.011
    356
    189
    Кредиты:
    $2.142,45
    Репутация:
    54
    попробуй добавить в
    custom.properties
    gameserver.player.start.level = 1

    если в ядре нормально сделано .
     
  19. TopicStarter Overlay
    Offline

    DrSpider Рядовой

    90
    5
    41
    Кредиты:
    $198,00
    Репутация:
    1
    Добавил давно уже, результат тот же. Ваша догадка по поводу экспы интересна, но как понимать тогда что персонаж-таки создается именно 1 лвл, а вот миссии эти поганые как-будто из старт зашит где-то, экспы не дают, перс остается 1 лвл и нулевой экспы. Я уже в бешенстве.
     
  20. Offline

    klubheads Сержант Команда форума Модератор

    2.011
    356
    189
    Кредиты:
    $2.142,45
    Репутация:
    54
    Я бы конечно глянул сборку если бы меня заинтересовали ;)... Но тут у вас по сути компил в нем ничего не сделать без исходников . Тем более компил криптованный yguard(ом) .
    Я сборки AC и GER новые брал чисто для разбора даты .