так интерфейс же объединение объектов в один и для создания универсальной функции, для каждого из включенных объектов, надо в самом интерфейсе создать функ. (ничего не утверждаю, т.к. плохо разбираюсь)
т.е. создать интерфейс и там уже создать метод
Да, в способности и блокируй спелбук для игрока-владельца нужного юнита.
+ мне нужно условие триггерное,чтобы давалась за потраченный голд пассивка,а не просто так с неба.
Т.е. нужно, чтобы игрок покупал способности за голду?
Если да, то можешь сделать так:
Создай дамми-предмет(книгу к примеру, которая ничего не даёт) и действуй по схеме:
Событие - продает предмет
Условие - проданный предмет = дамми-предмет
Действие - добавить способность(спелбук и можешь его сразу заблокировать для игрока)
private function CheckUnitId takes unit u returns boolean
call BJDebugMsg("2")
local integer i = GetHandleId(u)
local integer index = 1
local boolean b = false
loop
if (i==HandleIdOfUnit[index]) then
set b = true
set index = CountedUnits
endif
call BJDebugMsg(I2S(index)+" - index")//=====тут=====
exitwhen (index >= CountedUnits)
set index = index+1
endloop
call BJDebugMsg("3")
return b
endfunction
Установил переменной CountedUnits изначальное значение 0 и сработало. Странно, я думал пустые integer по дефолту равны нулю или причина в чем-то другом?
Вроде как это должно копилиться в Aчисло_i и A_Bчисло_i(внутри Bчисло__i) и при правильной записи(внутри области B.i A.i и снаружи A.i и A.B.i) нет причин для конфликта. Но просто написав подобным образом, без каких-либо операции - ошибка. Я vjass почти не знаю и, скорее всего, что-то не правильно понимаю поэтому и спрашиваю
Насколько я знаю, в стандарте такой функции нет. Можно всё очень просто провернуть через базы данных. Можно заморочиться и полезть за помощью в мемори хак, так как, скорее всего, такая функция там есть, раз уж он позволяет проводить махинации с белыми циферками.
В таком случае, думаю, что вариант с бд буду юзать, т.к. мх не применяю. Но хотелось бы сделать все проще, жаль не предусмотрели такую функцию. Спасибо за ответ.
Ну это понятно, только неясно как это сделать без GUI
Это можно и на гуи сделать, но будут утечки памяти.
Создаёшь 2 триггера, в одном из которых добавляешь всех юнитов в группу, а в другом добавляешь в ту же группу новых юнитов, появившихся во время игры. Потом создаёшь ещё один триггер, где каждую 1 сек перебираешь юнитов циклом, проверяешь если юнит не нежить и находится на на порче(есть такое условие в логических сравнениях) и наносишь урон. Могу скинуть пример того, как это реализовать на GUI, если надо.
вот
» WarCraft 3 / Какой метод интерфейса добавить?
т.е. создать интерфейс и там уже создать метод
» WarCraft 3 / Грейд
Если да, то можешь сделать так:
Создай дамми-предмет(книгу к примеру, которая ничего не даёт) и действуй по схеме:
Событие - продает предмет
Условие - проданный предмет = дамми-предмет
Действие - добавить способность(спелбук и можешь его сразу заблокировать для игрока)
» WarCraft 3 / Убрать последние нули у Real
» WarCraft 3 / Проблема с работой библиотеки
Ред. LordDracula
» WarCraft 3 / Конфликт имён, библиотеки, области
» WarCraft 3 / Выбор Юнита по Строке
Ред. LordDracula
» WarCraft 3 / Выбор Юнита по Строке
» WarCraft 3 / Выбор Юнита по Строке
» WarCraft 3 / Способности и алгоритмы на заказ
Заклинание готово!
Способность: Проклятие
Выполнено: Да
» WarCraft 3 / Есть ли функция, которая возвращает стоимость юнита?
» WarCraft 3 / Как отследить что юнит находится на порченной земле?
Создаёшь 2 триггера, в одном из которых добавляешь всех юнитов в группу, а в другом добавляешь в ту же группу новых юнитов, появившихся во время игры. Потом создаёшь ещё один триггер, где каждую 1 сек перебираешь юнитов циклом, проверяешь если юнит не нежить и находится на на порче(есть такое условие в логических сравнениях) и наносишь урон. Могу скинуть пример того, как это реализовать на GUI, если надо.
вот
» WarCraft 3 / Как добиться того, чтобы при получении урона юнит не отбегал...
» WarCraft 3 / Как добиться того, чтобы при получении урона юнит не отбегал...