• Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Модератор форума: Dimitro  
Форум » TrinityCore » [TrinityCore] Help » Даётся exp за серых мобов (С++)
Даётся exp за серых мобов
Stormtrooper
Командир
я решил про клиент логически - так как не нашёл больше в коде упоминаний цвета левела
Если помог, ставь плюсик в репу :)

Сообщение # 61 написано 17.02.2017 в 14:25
p620
Маршал
Цитата Stormtrooper ()
я решил про клиент логически - так как не нашёл больше в коде упоминаний цвета левела

Решил, насколько я помню, Ваш собеседник. Вам не нужно искать упоминание цвета. Вам нужно найти все ссылки на вышеупомянутую функцию. Вы найдете как минимум определение. Может быть еще и объявления, одно или несколько. Но нас будут интересовать вызовы. Контекст ее вызовов Вам и нужно будет предоставить сюда. Если же Вы считаете, что эта задача Вам не по силам - замените
Код
inline uint32 GetGrayLevel(uint32 pl_level)
{
    if (pl_level <= 5)
        return 0;
    else if (pl_level <= 39)
        return pl_level - 5 - pl_level / 10;
    else if (pl_level <= 59)
        return pl_level - 1 - pl_level / 5;
    else
        return pl_level - 9;
}

на
Код
inline uint32 GetGrayLevel(uint32 pl_level)
{
    return pl_level > 9 ? pl_level - 9 : 0;
}

и сберегите драгоценные нервы.
Сообщение # 62 отредактировано p620 - Пятница, 17.02.2017, 14:35
Stormtrooper
Командир
Цитата p620 ()
то эта задача Вам не по силам - замените
вы явно не читаете мои посты
я УЖЕ заменял на нечно похожее и результат отрицательный - я уже писал почему
потому что -9 работает не на всех уровнях
например на 38 левеле разница не -9 а -8 и унифицировать формулу нельзя
убедительно прошу не умничать а внимательно вникнуть в проблему если она вам интересна
и про "не по силам" оставьте при себе - я многого не знаю но уж поиском пользоваться умею -= повторяю - НЕТ упоминаний
Если помог, ставь плюсик в репу :)

Сообщение # 63 написано 17.02.2017 в 14:38
grasicco
Сержант
Так ты сам ответил на свой вопрос, убери формулы и поставь для конкретного лвл конкретное значение возврата
Сообщение # 64 написано 17.02.2017 в 14:49
Stormtrooper
Командир
Цитата grasicco ()
Так ты сам ответил на свой вопрос, убери формулы и поставь для конкретного лвл конкретное значение возврата
это реально но геморно - проверять каждый уровень на предмет разницы
да результат будет 100% но доооолгиииииий
Если помог, ставь плюсик в репу :)

Сообщение # 65 написано 17.02.2017 в 14:51
p620
Маршал
Цитата Stormtrooper ()
НЕТ упоминаний

Т.е. функция имплементирована, но нигде не используется? Любопытное там у Вас ядро, судя по всему.
Справедливости ради отмечу, что то, на что Вы заменяли, underflow'ило бы в ряде случаев.
У меня на руках сейчас нет развернутого решения. В каком файле у Вас определена функция GetGrayLevel?

П.С: вопрос снимается. Сейчас сравню с тем, как все обрабатывается на последнем TrinityCore.
Сообщение # 66 отредактировано p620 - Пятница, 17.02.2017, 15:00
grasicco
Сержант
Другого выхода не вижу. И вообще не вижу повода для долгих раздумий, даже на лайве есть подобное - убил серого нипа/ скрафтил серую шмотку - через пару повторений получи опыт.
Сообщение # 67 написано 17.02.2017 в 14:57
p620
Маршал
В основном бранче 3.3.5 последней версии используется точно такой же способ расчета в GetGrayLevel. Если Вы точно уверены, что это некорректно - остается три варианта: хардкодить условие по уровням (отбито), попытаться угадать формулу (приемлемо), вытаскивать ее из клиента (чем я сейчас не могу заняться).
Сообщение # 68 написано 17.02.2017 в 15:13
Stormtrooper
Командир
Цитата p620 ()
В основном бранче 3.3.5 последней версии используется точно такой же способ расчета в GetGrayLevel
может быть - но у меня БК
кто знает - может между БК и Личем есть разница в представлении левелов мобов относительно левела игрока и может быть для ЛИча эта формула актуальна
ладно я угрохал кучу времени но всё же прошерстил мобов от 1 до 60 левела и жёстко захардкодил условия
тему можно закрыть - изящного решения к сожалению я не вижу
Если помог, ставь плюсик в репу :)

Сообщение # 69 написано 17.02.2017 в 15:50
Pallam
Рыцарь
Цитата Stormtrooper ()
может быть - но у меня БКкто знает - может между БК и Личем есть разница в представлении левелов мобов относительно левела игрока и может быть для ЛИча эта формула актуальналадно я угрохал кучу времени но всё же прошерстил мобов от 1 до 60 левела и жёстко захардкодил условиятему можно закрыть - изящного решения к сожалению я не вижу
Советую прошерстить MPQ в поисках нужных .lua скриптов, которые заведуют логикой цветов.
Сообщение # 70 написано 17.02.2017 в 20:40
Форум » TrinityCore » [TrinityCore] Help » Даётся exp за серых мобов (С++)
  • Страница 3 из 3
  • «
  • 1
  • 2
  • 3
Поиск: