Вопрос, что лучше - тратить на спелл 3 глобалки или 3 абилы в РО, думаю, значительной разницы нет.
То есть как разницы нет? Это вообще не сравнимо!
Но если у тебя карта не нагружена разными системами и триггерами - то на глаз ты, конечно же, разницы не заметишь...
ClotPh, ты делаешь все точно так же, как делал бы со своей "маркерной" способностью на 1000 уровней.
когда герой получает эту твою добивающую способность - создаешь для него переменную с соотв. индексом. А также добавляешь +1 к целочисленной переменной, которая дает тебе понимание сколько у тебя сейчас таких способностей на карте
а потом каждый раз, когда он добивает кого-то твоей способностью ты заносишь в эту переменную +1
соответственно урон герою добавляешь отталкиваясь от значения этой переменной.
тобишь, у тебя есть
integer array i
integer n
unit array u
герой получил способность - делаешь
set n = n+1
set i[n]=0
set u[n]=GetTriggerUnit()
нет, стоп. мы через юнита не получим индекс.
хэш-таблицой пользоваться умеешь?
ClotPh, я тебе предложил способ вообще не затратный, MUI + расчитанный на неограниченное кол-во юнитов и вообще без создания левых абил, юнитов и всей остальной лажи.
дада, неограниченное. создать еще один массив при i>8092 не есть проблема.
ClotPh, если тебе не нравится моя методология - ты можешь привязывать к нему переменную тем же способом, что ты собирался привязывать к нему маркеры, юнитов и все остальное что там предлагалось.
а кастом валуе ты можешь и самому герою задавать. я этот вариант не предлагал, т.к. полагал что оно у тебя чем-то более полезным занято...
ClotPh, сохранением значения в ячейку массива соответствующую каждому герою.
способов масса. можешь каждого героя вносить в переменную с индексом i и в переменную с тем же индексом i писать свои данные
можешь просто вязать переменную к герою через хэш
можешь как угодно делать
nvc123, второй ключ - это там где прописывается StringHash() либо указывается значение?
Я сейчас на работе, проверить на практике возможности не имею, но на сколько я понял мне нужно действовать следующим образом:
function MyFunc takes unit u returns nothing
local integer h = GetHandleId(u)
local integer i = 1
local integer array a
local integer array b
loop
exitwhen i>10
set a[i] = i
set b[i] = i
call SaveInteger(udg_ht, h, StringHash("a"+I2S(i)))
call SaveInteger(udg_ht, h, StringHash("b"+I2S(i)))
set i = i+1
endloop
endfunction
Diaboliko, грубо говоря, у тебя под каждого юнита отведена одна строка в твоем двумерном массиве?
Я о таком думал, но мне это не подойдет. У меня для каждого юнита хранится разное количество информации.
Diaboliko, ты предлагаешь сохранять каждую переменную из массива отдельно? у меня идея была в том, чтобы по одному ключу система могла достать нужный набор данных для любого юнита...
8gabriel8, у тебя радиус ауры перекрывает твой квадрат. юнит вышел из квадрата, ты с него скинул баф, на него повесился новый баф, т.к. он в радиусе действия ауры. все у тебя правильно работает. чем ты не доволен?
А мы толкуем о том, что спросил автор. А он хочет снимать баф моментально при уходе из АоЕ ауры.
Ige, спасибо за уделенное время, но я все таки пойду плясать от репутации. У меня уже есть некоторые идеи как идентифицировать цвет НПЦ не имеющих персональной репутации.
Dragonear, об этом и речь. У меня цвет юнита изменяется в зависимости от репутации. Игрок-владелец при этом меняется крайне редко.
Ну и видимо да, мне придется писать свою функцию, опираясь на ту же репутацию. Мне просто не хочется этого делать в виду того, что есть куча юнитов без личной репутации, цвет которых мне тоже нужно будет узнавать. Слишком много проверок получится для такой простой задачи.
Спасибо всем за помощь. Мне не принципиально нужен был тип урона, это была одна из возможностей заставить мои системы работать правильно.
Если бы я мог функциями отловить тип урона - я привел бы в порядок свои системы при помощи 4 строк кода.
Немного поэкспериментировав и пораскинув мозгами я смог привести их в порядок за те же 4 строки.
Соответственно все методы, где надо создавать юнитов, переменные итд - не актуальны.
Но если в будущем мне действительно понадобится тип урона, я буду иметь в виду Ваши советы, ребята (:
molot39, если крутить такие сложные костыли, то я могу повлиять на свои системы значительно проще, не прибегая к типам урона. Я хотел использовать тип урона, потому как думал, что его можно отследить...
» WarCraft 3 / Усиление (точнее название не могу придумать, сорри)
Но если у тебя карта не нагружена разными системами и триггерами - то на глаз ты, конечно же, разницы не заметишь...
Ред. avuremybe
» WarCraft 3 / Усиление (точнее название не могу придумать, сорри)
Будут вопросы - не стесняйся.
» WarCraft 3 / Усиление (точнее название не могу придумать, сорри)
ночь уже прост, а я после работы. тупонул :C
» WarCraft 3 / Усиление (точнее название не могу придумать, сорри)
когда герой получает эту твою добивающую способность - создаешь для него переменную с соотв. индексом. А также добавляешь +1 к целочисленной переменной, которая дает тебе понимание сколько у тебя сейчас таких способностей на карте
а потом каждый раз, когда он добивает кого-то твоей способностью ты заносишь в эту переменную +1
соответственно урон герою добавляешь отталкиваясь от значения этой переменной.
тобишь, у тебя есть
integer array i
integer n
unit array u
герой получил способность - делаешь
set n = n+1
set i[n]=0
set u[n]=GetTriggerUnit()
нет, стоп. мы через юнита не получим индекс.
хэш-таблицой пользоваться умеешь?
» WarCraft 3 / Усиление (точнее название не могу придумать, сорри)
» WarCraft 3 / Усиление (точнее название не могу придумать, сорри)
дада, неограниченное. создать еще один массив при i>8092 не есть проблема.
» WarCraft 3 / Усиление (точнее название не могу придумать, сорри)
а кастом валуе ты можешь и самому герою задавать. я этот вариант не предлагал, т.к. полагал что оно у тебя чем-то более полезным занято...
» WarCraft 3 / Усиление (точнее название не могу придумать, сорри)
способов масса. можешь каждого героя вносить в переменную с индексом i и в переменную с тем же индексом i писать свои данные
можешь просто вязать переменную к герою через хэш
можешь как угодно делать
Ред. avuremybe
» WarCraft 3 / Усиление (точнее название не могу придумать, сорри)
я не предлагаю локальную. я предлагаю массив
Ред. avuremybe
» WarCraft 3 / Усиление (точнее название не могу придумать, сорри)
переменная типа integer к которой добавляется 1 когда герой убивает этой способностью это слишком просто для тебя?
» WarCraft 3 / Как убрать шкалу здоровья (не в настройках) и ограничение пищи?
Ред. avuremybe
» WarCraft 3 / Можно ли сохранить массив в хэш-таблицу?
Я сейчас на работе, проверить на практике возможности не имею, но на сколько я понял мне нужно действовать следующим образом:
local integer h = GetHandleId(u)
local integer i = 1
local integer array a
local integer array b
loop
exitwhen i>10
set a[i] = i
set b[i] = i
call SaveInteger(udg_ht, h, StringHash("a"+I2S(i)))
call SaveInteger(udg_ht, h, StringHash("b"+I2S(i)))
set i = i+1
endloop
endfunction
Я о таком думал, но мне это не подойдет. У меня для каждого юнита хранится разное количество информации.
» WarCraft 3 / Можно ли сохранить массив в хэш-таблицу?
Системы по универсальному ключу берут у обрабатываемого юнита нужную им информацию.
» WarCraft 3 / Можно ли сохранить массив в хэш-таблицу?
» WarCraft 3 / Делаем карты на уровне Blizzard Entertainment
А вообще - гж!
» WarCraft 3 / Аура которая сбрасывается сразу после покидания зоны действия
Ред. avuremybe
» WarCraft 3 / Аура которая сбрасывается сразу после покидания зоны действия
» WarCraft 3 / Аура которая сбрасывается сразу после покидания зоны действия
» WarCraft 3 / запуск ф-ции с параметрами для группы
нашел FirstOfGroup
я так понимаю, можно гнать через Loop удаляя каждый раз этого первого из группы?
» WarCraft 3 / Как отследить цвет юнита?
» WarCraft 3 / Как отследить цвет юнита?
» WarCraft 3 / Как узнать тип урона
Если бы я мог функциями отловить тип урона - я привел бы в порядок свои системы при помощи 4 строк кода.
Немного поэкспериментировав и пораскинув мозгами я смог привести их в порядок за те же 4 строки.
Соответственно все методы, где надо создавать юнитов, переменные итд - не актуальны.
» WarCraft 3 / Как узнать тип урона
» WarCraft 3 / Как узнать тип урона
» WarCraft 3 / Как узнать тип урона