XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
MrSigma
愛 - XGM
offline
Опыт: 2,429
Активность:
aow_GetApxExpBounty или "Что-то здесь не так!"
Вообщем мне нужна была функция, которая высчитывает количество опыта за смерть юнита. Я залез в библиотеку функций и нашел там следующее:
Код:
function aow_GetApxExpBounty takes unit u returns real

  return SquareRoot((GetUnitState(u, UNIT_STATE_MAX_LIFE) + GetUnitState(u, UNIT_STATE_MAX_MANA)) * GetUnitLevel(u)) * 2
endfunction


Я уж было возрадовался, однако подставив в свою карту эту функцию и посмотрев на разницу истинного значения и значения, выдавваемого функцией, я ужаснулся!
Вот некоторые примеры:
  • Работник. Подсчитано: 29, Получено: 25.
  • Пехотинец. Подсчитано 57, Получено: 40.
  • Рыцарь. Подсчитано: 113. Получено: 85.
  • Стрелок. Подсчитано: 78, Получено: 60.
  • Ведьмак. Подсчитано: 103, Получено: 60.

Как видите, чем сильнее юнит - тем больше разброс в полученном опыте. Однако, и это еще не все!
Убив горного короля 10 уровня, герой должен был получить 247 опыта, однако получил 800. (!)

Я прошу вас назвать, или дать мне ссылку на более точную систему вычесления оыпыта за убийство, потому как эта - не годится. Хотя, возможно, я чего-то не понимаю. Если это так - объясните в чем моя ошибка.

Примечание: Все проверки делались паладином 1-ого уровня со стандартными юнитами Альянса.
Старый 13.02.2010, 14:42
DioD

offline
Опыт: 45,134
Активность:
не обратил внимание на то, что ты получал опыт по стандартной таблице опыта?
Старый 13.02.2010, 14:53
MrSigma
愛 - XGM
offline
Опыт: 2,429
Активность:
Создав нестандартного юнита и поменяв ему ключевые параметры тоже произошла нестыковка.
Старый 13.02.2010, 15:52
Rewenger
The culprit will not die
offline
Опыт: 35,873
Активность:
MrSigma, если почитать формулу, то можно понять, что мы получаем опыт в зависимости от максимальных хп, маны и здоровья юнита (это теоретически определяет его силу, хотя не учитываются всякие сильные способности вроде иммуна к магии).
Точная формула стандартного опыта за убийство у тебя высчитывается в игровых константах.
Старый 13.02.2010, 15:55
MrSigma
愛 - XGM
offline
Опыт: 2,429
Активность:
Rewenger, Хорошо, а как убрать таблицы опыта, чтобы опыт за юнита считался по этой формуле?
Старый 13.02.2010, 15:57
Rewenger
The culprit will not die
offline
Опыт: 35,873
Активность:
native SuspendHeroXP takes unit whichHero, boolean flag returns nothing
Старый 13.02.2010, 16:36
MrSigma
愛 - XGM
offline
Опыт: 2,429
Активность:
Rewenger, SuspendHeroXP не работает.

MrSigma добавил:
Что эта функция вообще должна делать?
Старый 14.02.2010, 13:46
DioD

offline
Опыт: 45,134
Активность:
работает.
Старый 14.02.2010, 13:46
MrSigma
愛 - XGM
offline
Опыт: 2,429
Активность:
Класс.... И?
Цитата:
Сообщение от MrSigma
Что эта функция вообще должна делать?
Старый 14.02.2010, 13:50
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
заморозить опыт героя. дословно
Старый 14.02.2010, 13:54
MrSigma
愛 - XGM
offline
Опыт: 2,429
Активность:
А зачем его замораживать? Мне надо чтобы герой получал опыт не по таблице опыта, а по определенной формуле, ПО ОКТОРОЙ Я ТРИГГЕРНО ЭТО КОЛИЧЕСТВО СМОГУ ПОСЧИТАТЬ.

MrSigma добавил:
Видимо получение опыта придется тоже прописывать по своей формуле...
Старый 14.02.2010, 13:56
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Ещё раз, http://xgm.guru/forum/showthread.php?t=615&page=1 пункт 4.1 и ниже
Старый 14.02.2010, 14:00
DioD

offline
Опыт: 45,134
Активность:
вот мне интересно, когда близзы интегрировали в варкрафт телепатический модуль, откуда игра будет знать что надо выдавать опыт по твоей формуле?
Старый 14.02.2010, 14:01
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
Если надо полностью свою систему начисления опыта, то обнуляй в игровых константах таблицу, а начисление опыта делай триггерно, как душе захочется.
Старый 14.02.2010, 14:09
MrSigma
愛 - XGM
offline
Опыт: 2,429
Активность:
DioD, Если игра выдает опыта по таблицам - то зачем тогда была придумана функция, вчисляющая опыт за юнита? Наверное, есть какие то случаи, когда эта самая функция работает, тоесть когда опыт начисляется не по таблице. Вот я и хотел узнать, в каких случаях она считает опыт так. Ты же (непонятно почему) решил что я собираюсь мысленно приказывать это игре. А теперь внимание вопрос.
ТЫ ЧИТАТЬ УМЕЕШЬ ВООБЩЕ?!
Цитата:
Сообщение от MrSigma
Хорошо, а как убрать таблицы опыта, чтобы опыт за юнита считался по этой формуле?


MrSigma добавил:
Обрати самое пристальное внимание на последнюю часть вопроса, и ответь на нее. (Если это возможно.)
Старый 14.02.2010, 15:43
Sebra

offline
Опыт: 5,603
Активность:
Замораживай герою опыт и начисляй его самостоятельно.
Сам рассчитывай и сам добавляй.
Старый 14.02.2010, 15:52
Rewenger
The culprit will not die
offline
Опыт: 35,873
Активность:
Если игра выдает опыта по таблицам - то зачем тогда была придумана функция, вчисляющая опыт за юнита?
Для более адекватного вычисления опыта за моба с учётом его параметров, приближенная по значениям к оригинальным, наверное. Начисляй герою опыт по этой формуле, а в игровых константах находи всё, что похоже на "полученный героем опыт - таблица" и ставь нули.
Старый 14.02.2010, 16:03
MrSigma
愛 - XGM
offline
Опыт: 2,429
Активность:
Хорошо, но назревает вопрос. Как сделать разделение опыта для героев, если они бьют одного и того-же юнита?
Старый 14.02.2010, 16:09
FellGuard
Losyash
offline
Опыт: 39,547
Активность:
руками

FellGuard добавил:
причём тут бьют, убьёт то всё равно один.
Старый 14.02.2010, 16:25
MrSigma
愛 - XGM
offline
Опыт: 2,429
Активность:
Спасибо. Тему можно закрывать.
А на счет "Причем тут бьют"... Для РПГ карты будет критично. Представь стиуацию. Огроменный босс, мощнейший. Много Хп и маны. И после его убивчевства - опыт начислят только одному юниту. будет обидно... Как бы то ни было, я уже сделал разделение опыта) Спасибо всем.
Старый 14.02.2010, 16:35
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 08:51.