Добавлен 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
Принятый ответ
кажись вот она
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
насколько я понял нужна система нефти?
чтобы юнит двигался от базы к нефти
исчезал на секунду
потом двигался обратно на базу
исчезал на секунду
и двигался обратно к нефти
Но кому это нужно, вот вопрос, да и не уверен я что этого ещё не сделали.
Отредактирован nvc123
и так же убого
вот в чём проблема
Связанные с этой темой...
Теперь к нефтесхеме, можно ее по подробнее.
Отредактирован nvc123
1 это месторождение нефти
2-база
3-танкер
в каждой из них делаем статичный стек
она правдо не совсем кул
я тогда сиджасс не юзал
и там не оптимально
юзается хэш и куча триггеров для определения соприкосновения юнитов
хотя всё таки оптимальнее чем тот бред который ты писал