Хочу реализовать систему опыта юнитов. Например юнит убивает определённое количество врагов и получает за это способность.

Принятый ответ

Событие - юнит умирает
Действие - set custom value of (Killing unit) to (custom value of (Killing unit) + 1)
Действие - if (custom value of (Killing unit)) == *нужное значение*, то
*Нужные действия внутри ифа*
Если юнит может улучшаться несколько раз, то скопировать иф со следующим значением и другими действиями.
1
19
7 лет назад
1
Похожие вопросы:

ответ
Melissa:
Пик еври юнит ин 1100 ов позишн ов юнит
утекает группа + точка
Вместо тысячи слов - изучай наработку.
поставил кастомскрипты для удаления группы и группы игроков (destroygroup и destroyforce), но так после первого срабатывания триггера, дальше уже ничего не работает
ответ
нужно всего 20 а не 120 опыта для второго уровня, что за фигня?
Элементарно, Ватсон. В варике при повышении уровня опыт не сбрасывается, а продолжает расти. Т.е. не 0-100, 100-120 и т.д. Если хочешь получить 0-120, тебе придётся обнулять опыт триггером.
награда за уничтожение базовая
Это же золото.
Герою требуется опыта - формула для вычисления требуемого кол-ва опыта для получения уровня. Вычисляется, когда значения в таблице кончились. В твоём случае для 9 уровня начнёт вычислятся, а для получения 8 уровня у тебя требуется 120 опыта.
Набранный опыт героя - формула вычисления опыта, который даётся за убийство монстров. Т.е. 25 опыта за твоего скелета начисляется именно тут.
Таблица Сокращения монстров
т.е на 3% каждый уровень
По 3% за разницу в уровнях, если уровень героя больше уровня монстра. Т.е. герой 5 уровня будет получать на 12% меньше опыта за убийство монстра 1 уровня и на 3% за убийство монстра 4 уровня.
ответ
Diaboliko, xgm.guru/p/blog-nvc123/101422
это про то как вешать всякую фигню на общий таймер
хэш тут нафиг не нужен т.к. таймер 1
ответ
Можно:
  • Создать проект, пройти модерацию и добавить в него ресурс с вакансией — он появится в ленте ресурсов.
  • Написать в свой блог, запись будет в ленте блогов, соответственно.
  • Обратиться сюда (но этот ресурс, вроде, не особо активен.
Но в «Вопросы» писать не надо.
ответ
Лимит операций, обычно это беда настигает заядлых гуишников.
На jass обычно нету таких проблем.
Создайте таймер с периодом .00 сек и запускайте им функции инициализации триггеров.
функция типа InitTrig_Имя триггера - это функция инициализации триггера, она вызывается из функции InitCustomTriggers, но если этих вызовов очень много то функция упирается в лимит операций и поток завершается так и не создав все триггеры.

5
18
7 лет назад
5
Событие - юнит умирает
Действие - set custom value of (Killing unit) to (custom value of (Killing unit) + 1)
Действие - if (custom value of (Killing unit)) == *нужное значение*, то
*Нужные действия внутри ифа*
Если юнит может улучшаться несколько раз, то скопировать иф со следующим значением и другими действиями.
Принятый ответ
1
24
7 лет назад
Отредактирован NilasAran_39
1
Кристофер, Спасибо, попробую.

Кристофер, Вроде бы работает, но когда делаешь систему на другой юнит, то почему то она берёт значение из предыдущего триггера, то есть если объект А нужно було 3 жертвы, для а обекту Б 6, то объект Б берёт значение 3. Это странно.
1
20
7 лет назад
1
глобалки должны быть в виде массивов, для каждого юнита, у которого будет опыт
3
16
7 лет назад
3
NilasAran_39:
О, в какой-то карте Melissa была такая штуковина. Что-то вроде Custom Melee. Посмотри, там очень красиво реализовано.
1
24
7 лет назад
Отредактирован NilasAran_39
1
ssbbssc, это что то вроде привязки каждого юнита к отдельному значению?

Naadir, посмотрю, спс зп инфу.
1
18
7 лет назад
1
NilasAran_39, странно. У меня с CV никаких проблем не было. Покажи, как ты это сделал.
1
24
7 лет назад
1
Maniac_91, Ровно так как описал Кристофер, но я думаю, может это из за самой способности. Дело в том что способность которую получает юнит это способность апдейта, основанная на способности друд=медведь, а последующие клоны созданы с неё. Может дело в этом.
1
18
7 лет назад
1
NilasAran_39, если у юнита две способности, которые сделаны из одной и той же, то будет использоваться только одна, т.к. ID приказа одинаковые. Можно делать либо через Канал, либо использовать другую пустышку.
0
24
7 лет назад
0
Кристофер, ID вроде как то поменять можно, разве нет?
1
18
7 лет назад
1
NilasAran_39, скорее всего это действительно из-за морфа. У меня как-то из-за неё вроде бы переменная-юнит глючила (записал юнита в переменную, а после морфа почему-то переменная переставала на него указывать; после морфа перезаписывать приходилось), так что вполне возможно.
NilasAran_39, у Канала можно поменять.
А вообще можно апгрейдить юнита через скрытый спеллбук, чтобы не использовать морф. Это если не нужно внешних изменений.
0
24
7 лет назад
0
Maniac_91, Самое интересное что когда условия были просто убийство одного юнита, то ничто не конфликтовало.

А через спелбук как? Если не секрет?

2
18
7 лет назад
2
NilasAran_39, вот одна полезная статья.
Всё о спеллбуке(книга заклинаний)
Описание
Абилка спеллбук представляет собой абилку, содержащую в себе от 0 до 11 абилок,
Spellbook находится в Special\Items. Имеет код 'Aspb'.
Имеет 5 полей:
  1. Base Order ID - приказ спеллбука (не верьте ему,спеллбук вы этим приказом не откроете), существует для того, что бы при создании 2ух или более спеллбуков, спеллбуки не склеивались, если Base Order ID одинаковый, то они склеются, если разный, то нет.
  2. Maximum Spells - Максимальное количество спеллов в спеллбуке.
  3. Minimum Spells - Минисальное количество спеллов в спеллбуке.
Внимание: максимальное и минимальное количество спеллов должно быть одинаковое, иначе некоторые спеллы могут не появится!
Если вы конечно намеренно не делаете рандомные спеллы с спеллбуке.
  1. Shared Spell Cooldown - общий кулдаун спеллов в спеллбуке (но это не совсем так - кулдаун у одного спелла, но ещё кулдаунится спеллбук, но если у вас есть ещё один спеллбук с таким же Base Order ID, то вы увидите, что перезаряжается только один спелл и спеллбук).
  2. Spell List - собственно лист спеллов, в том случае, если вы хотите фиксированное количество спеллов, количество спеллов должно быть равно Maximum и Minimum Spells, но и может быть не равно, если вы хотите рандом.
Применение
Ну применяется спеллбук по разному:
  1. Стандартный метод применения - собственно книжка с заклинаниями, которая содержит от 1 до 11 заклинаний.
  2. Спеллбук с добавлением спеллов в него - ну впринципе похоже на 1ый способ, но различие в том, что можно спеллы добаляются по желанию во время игры (спеллбуки с одинаковыми Base Order ID).
  3. Спеллбук с мультилевелными спеллами - используется первый или 2ой способ + увеличение левелов абилок, используется чаще всего в расширенных инвенторях (бонус типа +3 к Storm Bolt)
  4. Скрывание пассивных абилок - используется в том случае если надо, что бы пассивка давала бонус, но иконки не было видно. Метод: добавляется спеллбук с пассивкой и спеллбук запрещается для игрока. В этом случае спеллбука видно не будет, но пассивка будет давать бонус. Пассивка может быть и мультилевелная.
  5. Используется как меню - используется в системах типа Attributes Menu, в спеллбук добавляются дамми абилки,при касте которых прокачиваются аттрибуты или совершаются другие какие-либо действия.
Баги
Как не прискорбно,но в каждой хорошей абилке есть свои баги,но в этом случае почти все связаны с загрузкой сэйвов:
  1. При загрузке абилка в спеллбуке удаляется и добавляется - Ну самый главный баг спеллбука,остальные баги вытекают из него.
  2. Сброс левела мультилевелных абилок - Ну собственно при загрузке левел абилок сбрасывается,так как они удаляются и добавляются 1 левела.
Этот баг лечится записью в кэш левелов абилок и созданием триггера, который при загрузке ставит левел абилок на нужный.
  1. Сброс кулдаунов абилок - лечится только тем, что вы делаете кулдаун абилок через таймеры или триггеры.
  2. Привязанные суммоны и иллюзии умирают - ну абилки типа feral spirit и mirror image создают привязанных суммонов и иллюзий, которые при удалении абилки исчезают. Лечится дамми кастом.
  3. Спеллы в спеллбуке(если спеллбуков несколько и с одинковым ID) при загрузке выстраиваются в обратном порядке - лечится удалением спеллбуков и добавлением их в нужном порядке (имхо лучше не фиксить).
Ну и напоследок пара багов не связанных с загрузкой:
  1. Спеллбук нельзя открыть приказом и нельзя отследить его нажатие - не лечится.
  2. Спеллы в спеллбуке нельзя вызвать триггерно приказом -
лечится созданием точно такой же абилки но с 0 параметрами. Добавляем её юниту и запрещаем, а когда надо вызвать триггерно - разрешаем,приказ,запрещаем.
0
24
7 лет назад
Отредактирован NilasAran_39
0
Maniac_91, Ой не, это слишком мудрёно для меня. Спасибо за развёрнутый ответ, но с моими навыками я тут только усложню. Мне бы по основному вопросу разобраться.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.