Добавлен Sergant1000
Делал систему при которой юнит находящийся в радиусе от "юнит1" и в опр. группе, отправлялся в в опр. локацию, если их массивы совпадают.
"юнит1" - строится игроком по этому я сделал триггер через таймер.
"юнит1" - строится игроком по этому я сделал триггер через таймер.
Проблема в том что не работает функция "1_C1" точнее не работает она при вызове ее из функции "1_2". Нужна помощь.
триггер
function 1_C1 takes unit ruf returns integer
local integer i=0
local integer p
loop
exitwhen Zone[i]==null
if (IsUnitInGroup(ruf, group[i])==true ) then
set p=i
endif
set i=i+1
endloop
return p
endfunction
local integer i=0
local integer p
loop
exitwhen Zone[i]==null
if (IsUnitInGroup(ruf, group[i])==true ) then
set p=i
endif
set i=i+1
endloop
return p
endfunction
function 1_2 takes nothing returns nothing
local integer p=GetPlayerId(GetOwningPlayer(GetEnumUnit()))
local integer i=1_C1(GetEnumUnit())
if ( IsUnitInGroup(GetEnumUnit(), group[i]) == true ) then
call IssuePointOrderLoc(udg_OilTank, "move", Location(GetRectCenterX(Zone[i]), GetRectCenterY(Zone[i])))
call GroupRemoveUnit(group[i], GetEnumUnit())
endif
endfunction
local integer p=GetPlayerId(GetOwningPlayer(GetEnumUnit()))
local integer i=1_C1(GetEnumUnit())
if ( IsUnitInGroup(GetEnumUnit(), group[i]) == true ) then
call IssuePointOrderLoc(udg_OilTank, "move", Location(GetRectCenterX(Zone[i]), GetRectCenterY(Zone[i])))
call GroupRemoveUnit(group[i], GetEnumUnit())
endif
endfunction
function 1_1 takes nothing returns nothing
call ForGroupBJ( GetUnitsInRangeOfLocAll(300, GetUnitLoc(GetEnumUnit())), function 1_2 )
endfunction
call ForGroupBJ( GetUnitsInRangeOfLocAll(300, GetUnitLoc(GetEnumUnit())), function 1_2 )
endfunction
function 1_A takes nothing returns nothing
local integer i=0
loop
exitwhen i>10
call ForGroupBJ( GetUnitsOfPlayerAndTypeId(Player(i), 'юнит1'), function 1_1 )
set i=i+1
endloop
endfunction
local integer i=0
loop
exitwhen i>10
call ForGroupBJ( GetUnitsOfPlayerAndTypeId(Player(i), 'юнит1'), function 1_1 )
set i=i+1
endloop
endfunction
function InitTrig_1 takes nothing returns nothing
set gg_trg_1= CreateTrigger()
call TriggerRegisterTimerEvent(gg_trg_1, 1, true)
call TriggerAddAction( gg_trg_1, function 1_A )
endfunction
set gg_trg_1= CreateTrigger()
call TriggerRegisterTimerEvent(gg_trg_1, 1, true)
call TriggerAddAction( gg_trg_1, function 1_A )
endfunction
Принятый ответ
кажись вот она
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
немедленно
и написать нормальный код
определить в какой группе юнит можно и намного проще
например через атач структуры
и тут бж везде
код не оптимален
утечки
что должен делать этот триггер
это спелл или система
короче составь нормальное описание
и прочитай статьи
у тебя утечки и бж
и не надо начинать с гуи)
начинай с джасса
Buulichkaa, пользоваться хешем нехочу. а вот про кастом, это уже интересно.
nvc123, чтобы начинать с джасса надо начинать с гуи, ты же когда по большему на горшок садишся сначало штаны снимаешь, а потом откладываешь личинку, а не наоборот.
Sergant1000, неправильный пример
А на гуи все "когда-то" да творили...
Buulichkaa, да, повсей видимости буду переделывать, но хотелось бы узнать почему проверка не срабатывает.
именно так и пишется код
сначала берётся цель
потом выстраивается алгоритм
и лишь потом этот алгоритм переводится на яп
не зная цели твои 243 символа являются полным 0
впрочем как и твой код
что то сегодня слишком много нубов
Ред. Buulichkaa
Можно было сделать так:
но это же велосипед ненужный...
Buulichkaa, твой код тоже не работает, так как не проходит проверка на группу.
Ред. Buulichkaa
мой велосипед вполне рабочий, но не ясно зачем он если можно сразу приаттачить индекс к юниту...
что самое интересное при первой выборке она работает нормально а при второй не работает вообще
у ваших велосипедов квадратные колёса
Sergant1000, хочешь понять почему не работает?
сделай отладку
Ред. Sergant1000
кидал им работающий код
объяснял
ты кстати тоже был среди этих нубов
теперь прошёл почти год
и они ничего не умеют
за год 0 прогрес
еслиб ты учился то я бы тебе помог
но тебе лень даже открыть и почитать статью
тебе надо всё готовое
видимо ирл за тобой всей роднёй сопелки подтирают
а тут злые дебилы и мудаки заставляют тебя что то делать самому
учиться чему то
я кончил
"идеи для рпг"
"помощь новичкам"
"школа jass"
Помнится было еше два примера, первый о синтаксисе, а второй использование структуры и если с первым примером было все понятно то вот на втором, вы сдулись в объяснениях. Мой совет : не нужно обвинять нубов в их невежестве, так как может быть дело не в них.
Sergant1000, Чтобы использовать мою функцию надо сделать стек групп.
Но я не пойму зачччеееем вам мои или чьи-либо велосипеды, если все делается через аттач на юнита.
зоны заполнены по порядку Zone[1].Zone[2].Zone[3]... и т.д. соответственно если Zone[15] будет пуста то выход из цикла.
Ред. Sergant1000
И можно хранить через таблицу булин, несет юнит что-либо или нет
А кстати да, моя функция работает как часы, только что проверил...