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

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

Ответ
 
Aethiko
Неупокоенная душа
offline
Опыт: 422
Активность:
Мана за убийство
Каким образом можно сделать получение количества N маны (где N - настраиваемое для разных видов мобов) персонажу, когда тот убил моба?
Пробовала триггером, однако не нашла, где проставить добавление маны к уже существующей - либо установка в процентах, либо она же в числах.
Старый 27.11.2010, 01:49
Banzay89

offline
Опыт: 11,155
Активность:
ну смотря от чего тебе нада. если, допустим, от кол-ва хп жертвы, то это будет выглядеть примерно так:
событие - ставишь нужное
local unit   u=GetDyingUnit()
local unit   u2=GetKillingUnitBJ()
local real   hp=GetUnitState(u, UNIT_STATE_MAX_LIFE) * 0.1 // 10% от здоровья
call   SetUnitState(u2, UNIT_STATE_MANA, ( GetUnitStateSwap(UNIT_STATE_MANA, u2) + hp ))
set   u=null
set   u2=null
Старый 27.11.2010, 02:03
Gareth Emery
Passive Progressive^^
offline
Опыт: 9,874
Активность:
Banzay89, хреновенький пример для новичка сразу на джассе, да и то кривом.
Aethiko, делай событие "Юнит умирает", в условии ставь что убийца такой-то такой-то юнит и уровень способности такой-то такой-то > 0, а действие такое:
В разделе Боевая единица найди Set unit mana (вроде так, точно не помню) и выставь значение Mana of Killing Unit + [Здесь число, которое нужно прибавить].
Старый 27.11.2010, 02:41
FKoFF
Venomancer 89lvl. Europe
offline
Опыт: 5,975
Активность:
а смысл через БЖ делать?

call SetUnitState(GetDyingUnit(), ConvertUnitState(2),(GetUnitState(GetKillingUnit(), ConvertUnitState(2)) + GetUnitState(GetDyingUnit(), ConvertUnitState(1)) * (0.02 + 0.02 * GetUnitAbilityLevel(GetKillingUnit(), 'ABILITY'))))
Подогнал под возможность формулировать нужный процент ( смотри конец строки, там формула 0.02 + 0.02 * GetUnitAbilityLevel(GetKillingUnit(), 'ABILITY') )
Замени ABILITY на равкод нужной пассивки.
Старый 27.11.2010, 02:51
Banzay89

offline
Опыт: 11,155
Активность:
Gareth_Emery:
Banzay89, хреновенький пример для новичка сразу на джассе, да и то кривом.
по барабану что кривой, зато наглядно
[+] 1 пункт от ShadoW DaemoN: 1.1 (ненормативная лексика)

Отредактировано ShadoW DaemoN, 27.11.2010 в 12:08.
Старый 27.11.2010, 03:31
Master_chan
Полуночный командир
offline
Опыт: 15,660
Активность:
FKoFF:
ConvertUnitState(2) ... ConvertUnitState(1)
это бред
Gareth_Emery:
да и то кривом
всего лишь вложенные BJ, утечек то нет...
Старый 27.11.2010, 03:38
FKoFF
Venomancer 89lvl. Europe
offline
Опыт: 5,975
Активность:
Master_chan, Ссылка на переменную, которая ссылается на другую переменную, которая ссылается на третью переменную - бред.
Master_chan:
всего лишь вложенные BJ, утечек то нет...
чем больше вызовов от одного к другому - тем ниже скорость работы.
+ инит ненужных локалок.

Отредактировано FKoFF, 27.11.2010 в 05:29.
Старый 27.11.2010, 04:38
Master_chan
Полуночный командир
offline
Опыт: 15,660
Активность:
Тебе не кажется что на порядок быстрее обращаться к переменной UNIT_STATE_MANA в которой уже записано значение функции ConvertUnitState(1) чем каждый раз вызывать эту самую функцию?
чем больше вызовов от одного к другому - тем ниже скорость работы.
+ инит ненужных локалок.
о да, в нашем случае это очень сильно замедляет работу всего кода.
Старый 27.11.2010, 11:07
Aethiko
Неупокоенная душа
offline
Опыт: 422
Активность:
Gareth_Emery:
условии ставь что убийца такой-то такой-то юнит
Сделала.
и уровень способности такой-то такой-то > 0
Стоп. А какой способности-то? Нужно определенную, созданную мною для этого способность пихать для этого? А кому: убивающему или умирающему юниту?
выставь значение Mana of Killing Unit + [Здесь число, которое нужно прибавить].
То есть мне надо знать количество маны убивающего юнита?
Старый 28.11.2010, 01:28
Ликкрит
Newbie
offline
Опыт: 2,308
Активность:
Aethiko, Да и Да
PS:джасс тут не катит господа,сами видите
Старый 28.11.2010, 01:32
Aethiko
Неупокоенная душа
offline
Опыт: 422
Активность:
Ликкрит,
Простите, но можно ли узнать, на какой из моих вопросов (на кои нельзя ответить так просто) вы любезно соизволили ответить? Я спрашиваю определенную вещь, тут нет Да и Нет.
Я тут попыталась сделать через:
Событие:
Юнит умирает ...
Условие:
Убивающий юнит равно .х.
И
Умирающий юнит равно ...
Действие:
Установить ману Убивающего юнита как {значение}.
И снова не получилось, плюс исчезли мобы с переменной. А ведь, надо еще и значение знать(
Старый 28.11.2010, 01:53
Ликкрит
Newbie
offline
Опыт: 2,308
Активность:
Aethiko, На все вопросы ответ да
Событие
Юнит умирает
Условия
Убивающий юнит имеет способность "Убийство за ману" x
Умирающий юнит y
Действие
Установить ману убивающего юнита z
х-твоя способность
у-умирающий юнит
z- a+b
а- мана юнита во время убийства
b- прибавляемая мана
Старый 28.11.2010, 01:59
Aethiko
Неупокоенная душа
offline
Опыт: 422
Активность:
Ликкрит,
А кому: убивающему или умирающему юниту?
Здесь тоже ответ "да"? Тут одно из двух, а не или.
Ваше предложение здесь все же не поможет. Мне нужно знать ману убивающего юнита, из-за чего триггер может использоваться один раз. А мне требуется прибавлять ману к неизвестному кол-ву, плюс одинаковых юнитов убиват также много раз. А затем проставить данное и к другим юнитам, чтобы от них маны получалось больше и т.д.
Я думаю, можно сунуть способность умирающим мобам, но опять же мне придется знать кол-во маны. Как сделать так, чтобы прибавление происходило к неизвестному числу?
Старый 28.11.2010, 12:23
Ликкрит
Newbie
offline
Опыт: 2,308
Активность:
Aethiko, Смотри переменную a в моём предыдущем посте(переменная типа real)
Старый 28.11.2010, 12:27
Aethiko
Неупокоенная душа
offline
Опыт: 422
Активность:
По вашим советам сделала:
Событие:
Боевая единица - умирает.
Условия:
Убивающий юнит равно X
И
Тип умирающего юнита равно B
Действия:
Установить ману убивающего юнита, как Mana + 1.
Из этого у убивающего юнита X к изначальной мане (0) прибавилась 1 (0+1=1), т.е. все работает. Но, как сделать, чтобы триггер срабатывал много раз? На последующих юнитах B ничего не происходит. Пробовала запустить триггер заново, проверяя условию, включать триггер. Все равно работает единожды.
Старый 28.11.2010, 13:23
Ликкрит
Newbie
offline
Опыт: 2,308
Активность:
Странно,должно работать
Старый 28.11.2010, 13:45
Aethiko
Неупокоенная душа
offline
Опыт: 422
Активность:
Ликкрит,
Вот, мне тоже интересно, почему не работает.
Может быть создать второй такой же и менять их?
Старый 28.11.2010, 14:23
Ликкрит
Newbie
offline
Опыт: 2,308
Активность:
Aethiko, Вопрос, y-переменная или определённый юнит у тебя?
Старый 28.11.2010, 14:32
Aethiko
Неупокоенная душа
offline
Опыт: 422
Активность:
Ликкрит,
Тип определенного юнита, т.е.:
((Тип юнита (Умирающий юнит)) равно X)
Где Х у меня выбран из списка юнитов (в данном случае это паук).
Старый 28.11.2010, 16:49
Ликкрит
Newbie
offline
Опыт: 2,308
Активность:
Aethiko, Еще раз проверьте все переменные,так как должно работать
Старый 28.11.2010, 19:23
Ответ

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

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

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

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



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