Добавлен
Делал систему при которой юнит находящийся в радиусе от "юнит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
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
function 1_1 takes nothing returns nothing
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
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
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
21
Ну вы же проверяете массив групп, я так понял.
Можно было сделать так:
function test takes unit u returns integer
    local integer i = 0
    local integer p = -1
    loop
        exitwhen i > G_max //какая-то переменная обозначающая вершину стека из наших групп
        if (IsUnitInGroup(u, GroupStack[i])) then
            set p = i
            exitwhen true
        endif
       set i = i + 1
    endloop
    return p
endfunction
функция вернет -1 если юнита в группах нет, так же функция предполагает что юнит хранится лишь в одной группе из стека...
но это же велосипед ненужный...
Вот нативки для Custom Value
код
native GetUnitUserData              takes unit whichUnit returns integer

native SetUnitUserData              takes unit whichUnit, integer data returns nothing
а вот нативки для хэш-таблиц
код
native  SaveInteger						takes hashtable table, integer parentKey, integer childKey, integer value returns nothing

native  LoadInteger					takes hashtable table, integer parentKey, integer childKey returns integer

native GetHandleId takes handle h returns integer
17
не надо закрывать вопрос раньше времени. тем более если вопросодержатель еще тут.
Buulichkaa, твой код тоже не работает, так как не проходит проверка на группу.
21
Sergant1000, какую группу... тебе же надо проверить массив групп и найти индекс той в которой сидит юнит?
мой велосипед вполне рабочий, но не ясно зачем он если можно сразу приаттачить индекс к юниту...
17
Buulichkaa, функции у нас с тобой одинаковый но разные по виду, проблема в том что она постоянно возвращяет -1 и ни разу индекс массива.
что самое интересное при первой выборке она работает нормально а при второй не работает вообще
28
эй народ
у ваших велосипедов квадратные колёса
Sergant1000, хочешь понять почему не работает?
сделай отладку
28
киньте кто нить ссылку на статьи а то мне надоело
17
nvc123, пожалуйста, если вы не хотите, вникать в какое либо действие(читать посты от 0 до бесконечность), помогать(хотя бы маломальский пример), объяснять(более внятно чем обычно). Не могли бы вы не вмешиваться в обсуждения тем, вопросов и прочего так как пустые сообщения с призрачными, а иногда не призрачными(я бог скриптинга) намеками не помогают.
28
Sergant1000, я 4 месяца помогал нубам из Q/A
кидал им работающий код
объяснял
ты кстати тоже был среди этих нубов
теперь прошёл почти год
и они ничего не умеют
за год 0 прогрес
еслиб ты учился то я бы тебе помог
но тебе лень даже открыть и почитать статью
тебе надо всё готовое
видимо ирл за тобой всей роднёй сопелки подтирают
а тут злые дебилы и мудаки заставляют тебя что то делать самому
учиться чему то
я кончил
17
ОФФТОП: дорогой nvc123,я помогаю нубам c 2011 года когда нубом зарегался на playthegame.info с тех пор достаточно много знаю благодаря Nerlin. Если не знаете как нужно объяснять почитайте его форум. По поводу вашей хваленого обучения, заходи в блог нашего недовольного и видим:
"идеи для рпг"
"помощь новичкам"
"школа jass"
Помнится было еше два примера, первый о синтаксисе, а второй использование структуры и если с первым примером было все понятно то вот на втором, вы сдулись в объяснениях. Мой совет : не нужно обвинять нубов в их невежестве, так как может быть дело не в них.
21
Так, а теперь тушим пуканы и кончаем оффтоп.
Sergant1000, Чтобы использовать мою функцию надо сделать стек групп.
Но я не пойму зачччеееем вам мои или чьи-либо велосипеды, если все делается через аттач на юнита.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.