Существует ли в варкрафте возможность сохранить или записать получаемый опыт?
Ситуация такая. Герой достигает определенного уровня, после чего я выключаю у него получения опыта, пока он не купит соответсвующий предмет. Нужен своеобразный буфер, куда бы я записывал возможный получаемый опыт и после приобретения предмета добавлял очки опыта, полученые за время блокировки.
Второй вариант это просто запретить ему каким либо образом повышать уровень выше определенного, но опять же записывать очки получаемого опыта в переменную

Так что сложного. Есть событие герой повышает уровень, если уровень героя == такому то, блокируем опыт функцией
call SuspendHeroXP(Unit, true)
Далее есть два варианта
  1. Создаем второго героя который будет получать опыт и после покупки предмета переносим его опыт первому герою.
Получить опыт героя можно через функцию
GetHeroXP(Hero)
2.Делаем кастомное получение опыта: Создаем целочисленную. При событии юнит умирает пикаем юнитов в радиусе и прибавляем к этой целочисленной опыт либо записываем в хэштаблицу на хэндл героя. Создаем триггер с событием получения предмета и выдаем опыт с сохраненной целочисленной или с ХТ.
перед выдачей опыта разблокируем получение.
call SuspendHeroXP(Unit, false)
call SetHeroXP( Unit, GetHeroXP(Unit) + Exp, true )
`
ОЖИДАНИЕ РЕКЛАМЫ...
28
native GetHeroXP takes unit whichHero returns integer
Загруженные файлы
28
native SetHeroXP takes unit whichHero, integer newXpVal, boolean showEyeCandy returns nothing
Загруженные файлы
13
Так что сложного. Есть событие герой повышает уровень, если уровень героя == такому то, блокируем опыт функцией
call SuspendHeroXP(Unit, true)
Далее есть два варианта
  1. Создаем второго героя который будет получать опыт и после покупки предмета переносим его опыт первому герою.
Получить опыт героя можно через функцию
GetHeroXP(Hero)
2.Делаем кастомное получение опыта: Создаем целочисленную. При событии юнит умирает пикаем юнитов в радиусе и прибавляем к этой целочисленной опыт либо записываем в хэштаблицу на хэндл героя. Создаем триггер с событием получения предмета и выдаем опыт с сохраненной целочисленной или с ХТ.
перед выдачей опыта разблокируем получение.
call SuspendHeroXP(Unit, false)
call SetHeroXP( Unit, GetHeroXP(Unit) + Exp, true )
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.