↑ ↓

Ап уровня перса через ClassChangeService.java

Тема в разделе "Помощь", создана пользователем WeRn, 4 авг 2018.

  1. TopicStarter Overlay
    Offline

    WeRn Ефрейтор

    496
    59
    59
    Кредиты:
    $16.149,43
    Репутация:
    8
    В принципе все сделано верно и правильно. Но после того как я получил диалог на выбор класса и выбрал класс данные перса не обновляются, т.е. я как был 9 уровнем, так и остался.

    По коду:

    Код:
    	public static void setClass(Player player, PlayerClass playerClass) {
    	   if (validateSwitch(player, playerClass)) {
    		   player.getCommonData().setPlayerClass(playerClass);
    		   player.getCommonData().setLevel(10);
    		   player.getController().upgradePlayer();
    		   SkillLearnService.addMissingSkills(player);
    		   DAOManager.getDAO(PlayerDAO.class).storePlayer(player);
    		   DAOManager.getDAO(PlayerQuestListDAO.class).store(player);   
    		   PacketSendUtility.sendPacket(player, new SM_DIALOG_WINDOW(0, 0, 0));
    	   }
      }
    Должно все обновить было, но это произойдет только после того, как я выйду в релог этим персом.
    Также и с базой, к примеру я после выбора класса засчитываю персу квесты:

    Код:
    	private static int [] elyQuests = {1000, 1006, 1007, 1929, 30217, 11276, 11049, 3932, 3931, 3930, 1044, 11550, 1205, 38002};
    	private static int [] asmoQuests = {2000, 2008, 2009, 2900, 30317, 21278, 21049, 4936, 4935, 4934, 2042, 21550, 2132, 48002};
    Но пока релог не сделаю персом, в базе не появляются данные об этом.

    По коду ясно, что я обновляю данные, но ничего не происходит.
    Код:
    		   DAOManager.getDAO(PlayerDAO.class).storePlayer(player);
    		   DAOManager.getDAO(PlayerQuestListDAO.class).store(player); 
    Может кто сталкивался с такой проблемой? Есть может у кого идеи от чего оно зависит?
    Сборка Чистые AL (не шара)
     
  2. Offline

    SG Shaiy Ефрейтор

    402
    95
    61
    Кредиты:
    $15.767,72
    Репутация:
    9
    Сделай обновление базы с задержкой, а то получается ты одновременно обновляешь лист перса и тут же обновляешь в базу, получается в базу обновляется то что было, ну как пример может не из лучших но попробуй))

    public static void setClass(Player player, PlayerClass playerClass) {
    if (validateSwitch(player, playerClass)) {
    player.getCommonData().setPlayerClass(playerClass);
    player.getCommonData().setLevel(10);
    player.getController().upgradePlayer();
    SkillLearnService.addMissingSkills(player);

    ThreadPoolManager.getInstance().schedule(new Runnable() {
    @Override
    public void run() {
    DAOManager.getDAO(PlayerDAO.class).storePlayer(player);
    DAOManager.getDAO(PlayerQuestListDAO.class).store(player);
    }
    }, 90);
    PacketSendUtility.sendPacket(player, new SM_DIALOG_WINDOW(0, 0, 0));
    }
    }
     
  3. TopicStarter Overlay
    Offline

    WeRn Ефрейтор

    496
    59
    59
    Кредиты:
    $16.149,43
    Репутация:
    8
    Ну мне известно, что в программировании выполняется все по очереди, не так ли?..
    Ну и этот метод с задержкой также не работает. Есть еще варианты?
    Просто именно как я выдаю 9 уровень и сетаю класс - работает, а вот после того как класс выдал - данные обновляются только после выхода в релог.
     
  4. TopicStarter Overlay
    Offline

    WeRn Ефрейтор

    496
    59
    59
    Кредиты:
    $16.149,43
    Репутация:
    8
    Более не актуально.
     
  5. Offline

    Павел Владимирович Рядовой

    34
    2
    36
    Кредиты:
    $293,14
    Репутация:
    0
    было бы круто если за место не актуально, написал бы как ты решил данную задачу
     
  6. TopicStarter Overlay
    Offline

    WeRn Ефрейтор

    496
    59
    59
    Кредиты:
    $16.149,43
    Репутация:
    8
    Написал сервис, которые решает вопрос со стартом персонана. 2018 года сборка слитая на форуме лежит. Она еще вроде доступна. В 2020 года сборке более улучшенный сервис, но суть таже
    --- Double Post Merged, 27 авг 2021, Original Post Date: 27 авг 2021 ---
    Я имел ввиду в моих сборках, что сливали там можно найти сервис этот. сборка LD