↑ ↓

Help me Рейты х1/х2/х3 на получение кинар не верно работают

Тема в разделе "Помощь", создана пользователем Fire, 6 ноя 2024.

  1. TopicStarter Overlay
    Offline

    Fire Рядовой

    52
    2
    39
    Кредиты:
    $344,72
    Репутация:
    1
    Доброго!
    Имеется исход 3.9 от лайтингов.
    В конфиге по рейтам для дропа прописано вот что:
    • # Quest Kinah Rates #######################
    • gameserver.rate.regular.quest.kinah = 1
    • gameserver.rate.premium.quest.kinah = 2
    • gameserver.rate.vip.quest.kinah = 3
    При этом обычный игрок без рейтов (regular) получает за квест х2 кинар. Что явно не стыкуется.

    Пришлось в конфиге прописать следующее:
    • # Quest Kinah Rates #######################
    • gameserver.rate.regular.quest.kinah = 0.5 (кол-во кинар как и указано в квесте)
    • gameserver.rate.premium.quest.kinah = 1 (кол-во кинар х2)
    • gameserver.rate.vip.quest.kinah = 1.5 (кол-во кинар х3)
    Все остальные переменные по опыту, дропу и т.д. соответствуют, и только лишь на кинару почему-то приходится в конфиге указывать х/2

    • gameserver.rate.regular.quest.xp = 1
    • gameserver.rate.premium.quest.xp = 2
    • gameserver.rate.vip.quest.xp = 3

    • # Gathering EXP Rates #####################
    • gameserver.rate.regular.gathering.xp = 1
    • gameserver.rate.premium.gathering.xp = 2
    • gameserver.rate.vip.gathering.xp = 3

    • # Crafting EXP Rates ######################
    • gameserver.rate.regular.crafting.xp = 1
    • gameserver.rate.premium.crafting.xp = 2
    • gameserver.rate.vip.crafting.xp = 3

    • # Quest Kinah Rates #######################
    • gameserver.rate.regular.quest.kinah = 0.5
    • gameserver.rate.premium.quest.kinah = 1
    • gameserver.rate.vip.quest.kinah = 1.5
    Подскажите плз, где в исходниках можно данную хреновину поправить?
     
  2. Offline

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

    2.011
    356
    189
    Кредиты:
    $2.142,45
    Репутация:
    54
    QuestService посмотри, в методе giveReward
    По хорошему, нужна ссылка на билд с исходами (если нужна помощь по исходам), иначе как тебе помочь, если у себя нет такой проблемы.
     
    Fire нравится это.
  3. TopicStarter Overlay
    Offline

    Fire Рядовой

    52
    2
    39
    Кредиты:
    $344,72
    Репутация:
    1
    Проблема оказалась на самом верху, куда я даже не смотрел сам)
    Ну сперва последовал твоему совету, нашел строку в "QuestService" и дабы исключить всякое, заменил на корню:
    • Player player = env.getPlayer();
    • if (rewards.getGold() != null) player.getInventory().increaseKinah((long) (player.getRates().getQuestKinahRate() * rewards.getGold()), ItemUpdateType.INC_KINAH_QUEST);
    на
    • Player player = env.getPlayer();
    • if (rewards.getGold() != null) player.getInventory().increaseKinah((long) (100 * rewards.getGold()), ItemUpdateType.INC_KINAH_QUEST);
    И после этого я прихринел. В итоге за квест я получил не 120 кинары а 24000. Т.е. где-то в глубине еще указан рейт х2. Либо.... а пойду-ка я посмотрю на сам код квеста в "quest_data.xml"...
    • <quest id="1101" name="Sleeping on the Job" nameId="1102201" minlevel_permitted="1" max_repeat_count="1" race_permitted="ELYOS" category="QUEST">
    • <rewards gold="240" exp="50"/>
    • </quest>
    В морде клиента явно светится голд "120" и експа "50"

    А в клиенте и на aidb указано 120 кинары.
    Все оказалось на много проще, а меня в исходники потянуло)))

    Тут теперь вопрос в другом, даже два вопроса.
    Теперь искать нормальную quest_data.xml от 3.9...
    И почему ncsoft сами себе палки вставляют. Зачем в клиенте указывают награду не переменной из сервака, а статой? Так ведь и запутаться можно, как я сам и пошел не верным путем. Или я чего то не понимаю.
     
  4. TopicStarter Overlay
    Offline

    Fire Рядовой

    52
    2
    39
    Кредиты:
    $344,72
    Репутация:
    1
    Я очень много правок делал в "quest_data.xml", и искать замену ну вобще не вариант.
    Что я думаю по этому поводу...
    Нужно мне распаковать клиентскую версию, в месте где хранятся квесты все в удобопонимаемый формат.
    Написать парсер, который будет проверять/сравнивать награды в клиентском файле и в серверном, и уравнивать награду в обоих.
     
    klubheads нравится это.
  5. Offline

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

    2.011
    356
    189
    Кредиты:
    $2.142,45
    Репутация:
    54
    То есть получается у тебя в статиках была проблема, а ты полез ядро колупать :cry:

    Эту тема под каждую версию перепарсивается, потому как в каждой версии менялись награды, убирались или добавлялись квесты.
    Конечно можно поискать готовое, но где уверенность, что кто то так же как ты не делал в готовом, прежде чем выложить в паблик.
     
    Последние данные очков репутации:
    Fire: 1 Очко 7 ноя 2024
    Fire нравится это.
  6. TopicStarter Overlay
    Offline

    Fire Рядовой

    52
    2
    39
    Кредиты:
    $344,72
    Репутация:
    1
    Именно)))

    Та мне проще самому написать, делов максимум на час) А главное будет заточено именно под эту версию клиента)
     
  7. Offline

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

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