Ige, спасибо за уделенное время, но я все таки пойду плясать от репутации. У меня уже есть некоторые идеи как идентифицировать цвет НПЦ не имеющих персональной репутации.
Dragonear, об этом и речь. У меня цвет юнита изменяется в зависимости от репутации. Игрок-владелец при этом меняется крайне редко.
Ну и видимо да, мне придется писать свою функцию, опираясь на ту же репутацию. Мне просто не хочется этого делать в виду того, что есть куча юнитов без личной репутации, цвет которых мне тоже нужно будет узнавать. Слишком много проверок получится для такой простой задачи.
Спасибо всем за помощь. Мне не принципиально нужен был тип урона, это была одна из возможностей заставить мои системы работать правильно.
Если бы я мог функциями отловить тип урона - я привел бы в порядок свои системы при помощи 4 строк кода.
Немного поэкспериментировав и пораскинув мозгами я смог привести их в порядок за те же 4 строки.
Соответственно все методы, где надо создавать юнитов, переменные итд - не актуальны.
Но если в будущем мне действительно понадобится тип урона, я буду иметь в виду Ваши советы, ребята (:
molot39, если крутить такие сложные костыли, то я могу повлиять на свои системы значительно проще, не прибегая к типам урона. Я хотел использовать тип урона, потому как думал, что его можно отследить...
molot39, каким образом мне оттуда сделать отлов?
занесение типов урона в переменную задачу никак не упрощает. с помощью чего мне входящий урон приравнивать к этой переменной?
если ты имеешь в виду заносить в переменную юнитов-детекторов - то это костыли. хотелось бы что-то более адекватное.
quq_CCCP, да там не триггер, а лишь 1 строка (удаление записей в хэше по данному юниту).
Просто не очень бы хотелось каждый раз при удалении дамми-юнитов писать ее.
Надо, пожалуй, фильтровать навешивание отслеживания урона по даммикам. Гораздо эффективней получится.
Local integer i = половина нужного урона (в данном случае 25)
Local integrr k = 2
Local integer j = уровень способности
Local integer n = 0
Local integer d
Loop
Exitwhen n>j
Set d = i * k
Set n = n+1
Endloop
Нанести урон равный d
я ему это с телефона писал, баловаться правописанием желания небыло.
мне кажется зайти на какой-нибудь sourceforge и посмотреть как правильно функции пишутся не тяжело. Sumert:
переменные, типо локации надо обнулять, даже если ты её ничему не присвоил.
ты предлагаешь нулю присваивать нуль? doctal, как советует Sumert, юзай "custom script" в GUI и вписывай туда мой код (каждую строку в новую функцию "custom scrip").
local integer i = GetRandomInt(1,3)
local integer h = GetRandomInt(1,3)
local integer j = 0
local location p
local group g = GetUnitsInRectAll( udg_locations[h] )
if (CountUnitsInGroup(g) < 1) then
set p = GetRectCenter( udg_locations[h] )
call CreateUnitAtLoc( Player(0), udg_buildings[i], p, 270 )
loop
exitwhen j > 3
call CreateUnitAtLoc( Player(0), udg_units[i], p, 270 )
set j = j + 1
endloop
call RemoveLocation(p)
set p = null
endif
call DestroyGroup(g)
set g = null
отвлекли, забыл пояснения дописать.
при создании юнитов впиши нужного игрока (для которого они создаются)
также я использовал переменные udg_locations, udg_buildings и udg_units - это твои массивы регионов, зданий и юнитов соответственно.
С переменными думаю понТно
Дальше if/then/else проверяешь если переменная с кол-вом юнитов в выбранной области меньше единицы, то делаешь следующие действия:
Создаешь здание
Создаешь юнитов
Local integer i = случайное число от 1 до 3
Local integer h = случайное число от 1 до 3
Local integer j = 0
Local integer k = взять кол-во юнитов в области locations[h]
Local location p
If k < 1 then
Set p = GetRectCenter( locations[h] )
Call createUnitAtLoc( buildings[i], player(0), p )
Loop
Exitwhen j > 3
Call createUnitAtLoc( units[i], player(0), p )
Set j = j + 1
Endloop
Call removeLocation(p)
Set p = null
Endif
» WarCraft 3 / Аура которая сбрасывается сразу после покидания зоны действия
» WarCraft 3 / запуск ф-ции с параметрами для группы
нашел FirstOfGroup
я так понимаю, можно гнать через Loop удаляя каждый раз этого первого из группы?
» WarCraft 3 / Как отследить цвет юнита?
» WarCraft 3 / Как отследить цвет юнита?
» WarCraft 3 / Как узнать тип урона
Если бы я мог функциями отловить тип урона - я привел бы в порядок свои системы при помощи 4 строк кода.
Немного поэкспериментировав и пораскинув мозгами я смог привести их в порядок за те же 4 строки.
Соответственно все методы, где надо создавать юнитов, переменные итд - не актуальны.
» WarCraft 3 / Как узнать тип урона
» WarCraft 3 / Как узнать тип урона
» WarCraft 3 / Как узнать тип урона
Ред. avuremybe
» WarCraft 3 / Как узнать тип урона
занесение типов урона в переменную задачу никак не упрощает. с помощью чего мне входящий урон приравнивать к этой переменной?
если ты имеешь в виду заносить в переменную юнитов-детекторов - то это костыли. хотелось бы что-то более адекватное.
» WarCraft 3 / Как узнать тип урона
» WarCraft 3 / Как узнать тип урона
» Edemium / Edemium
» Edemium / Уникальная боевая система
Ред. avuremybe
» WarCraft 3 / как проверить есть ли у юнита предмет
» WarCraft 3 / Псс, нужно немного мемхака?
Ред. avuremybe
» WarCraft 3 / Как отловить тип урона?
буду плясать от метода Обелиска.
» WarCraft 3 / Как отловить тип урона?
» WarCraft 3 / Как отловить тип урона?
» WarCraft 3 / (cjass)Фатал при изменениии
Ред. avuremybe
» WarCraft 3 / EVENT_PLAYER_UNIT_DEATH
Просто не очень бы хотелось каждый раз при удалении дамми-юнитов писать ее.
Надо, пожалуй, фильтровать навешивание отслеживания урона по даммикам. Гораздо эффективней получится.
» WarCraft 3 / Прогрессия в триггераx
Local integrr k = 2
Local integer j = уровень способности
Local integer n = 0
Local integer d
Loop
Exitwhen n>j
Set d = i * k
Set n = n+1
Endloop
Нанести урон равный d
Ред. Кет
» WarCraft 3 / Как сделать это на gui
мне кажется зайти на какой-нибудь sourceforge и посмотреть как правильно функции пишутся не тяжело.
Sumert:
doctal, как советует Sumert, юзай "custom script" в GUI и вписывай туда мой код (каждую строку в новую функцию "custom scrip").
при создании юнитов впиши нужного игрока (для которого они создаются)
также я использовал переменные udg_locations, udg_buildings и udg_units - это твои массивы регионов, зданий и юнитов соответственно.
» WarCraft 3 / Создание войск в рандомной области из массива с областями.
Дальше if/then/else проверяешь если переменная с кол-вом юнитов в выбранной области меньше единицы, то делаешь следующие действия:
Создаешь здание
Создаешь юнитов
» WarCraft 3 / Создание войск в рандомной области из массива с областями.
Local integer h = случайное число от 1 до 3
Local integer j = 0
Local integer k = взять кол-во юнитов в области locations[h]
Local location p
If k < 1 then
Set p = GetRectCenter( locations[h] )
Call createUnitAtLoc( buildings[i], player(0), p )
Loop
Exitwhen j > 3
Call createUnitAtLoc( units[i], player(0), p )
Set j = j + 1
Endloop
Call removeLocation(p)
Set p = null
Endif
» WarCraft 3 / World Editor (вопрос)
Для стриков принцып тот же, но обнуляешь счетчик не по таймеру, а при смерти.