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

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

Ответ
 
Antropod

offline
Опыт: 87
Активность:
Аура действует на юнит?
Здравствуйте.
У меня возник такой вопрос:
Какой функцией(ями) можно определить, действует ли на определенный юнит определенная аура, и от кого эта аура исходит?
Старый 23.12.2006, 08:18
DioD

offline
Опыт: 45,134
Активность:
можно только узнать есть ли на юните баф ауры, кто эту ауру излучает и какой у ауры уровень узнать будет сложно
Старый 23.12.2006, 09:27
Antropod

offline
Опыт: 87
Активность:
Разобрался как узнать, есть ли определенный бафф.
С остальными - пока думаю.
Старый 23.12.2006, 09:31
DioD

offline
Опыт: 45,134
Активность:
могу посоветовать умное решение проблемы
взять всех юнитов с абилой ауры в радиусе (дальность ауры) вокруг юнита что проверяешь, если такой юнит всего 1(РПГ карта например) то из него получаешь уровень и остальное работает 100%
если юнитов многа,берёшь ближайшего с наибольшим уровнем
Старый 23.12.2006, 09:39
Antropod

offline
Опыт: 87
Активность:
DioD. Спасибо, так вероятно и сделаю.
Старый 23.12.2006, 13:06
deemon12

offline
Опыт: 7,563
Активность:
У меня теперь у самого вопросы:
-я никак не могу найти, как определить, какой бафф висит на юните. Напишите, пожалуйста, как.
-Эта аура у героя в карте? Т.е. он ее прокачивает? Если так, то можно отследить уровень через триггеры.
Старый 23.12.2006, 13:22
Antropod

offline
Опыт: 87
Активность:
Вот этой функцией можно определить действует ли бафф. Определить действует ли ОПРЕДЕЛЕННЫЙ бафф. (Так сделал я.)
Код:
function foo takes unit u returns boolean
    return UnitHasBuffBJ ( u, 'B000' ) //Вместо B000 - нужный бафф
endfunction

Определить КАКОЙ бафф действует... Может в цикле проверять, действует ли бафф с индексом i из массива b:
Код:
function foo takes nothing returns integer
    local integer array b
    local unit u
    local integer i = 0
    set b [0] = 'B000'
    set b [1] = 'B001'
    set b [2] = 'B002'
    loop    
        exitwhen i > 2
        if UnitHasBuffBJ ( u, b[i] ) then 
            return i
        endif
        set i = i + 1
    endloop
endfunction
Старый 24.12.2006, 09:09
DioD

offline
Опыт: 45,134
Активность:
Код:
function UnitHasBuffBJ takes unit whichUnit, integer buffcode returns boolean
    return (GetUnitAbilityLevel(whichUnit, buffcode) > 0)
endfunction


Баф == абила одного уровня, так что искать её можно напрямую по уровням абилок
Старый 24.12.2006, 10:16
Ответ

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

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

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

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



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