Добавлен
Делал систему при которой юнит находящийся в радиусе от "юнит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
`
ОЖИДАНИЕ РЕКЛАМЫ...
28
Sergant1000, этот код надо удалить
немедленно
и написать нормальный код
определить в какой группе юнит можно и намного проще
например через атач структуры
и тут бж везде
код не оптимален
утечки
21
Sergant1000, Если тебе надо прикрепить индекс массива к юниту, то сделай это через через хеш-таблицу или custom value при добавлении юнита в группу... делов то
17
nvc123, пример в студию о великий гуру. я над этим как многие выражаются "ГОВНОКОДОМ" уже недели две корплю, начиная от гуи и заканчивая тем что есть. И пример пожалуйста того что вы называете "НОРМАЛЬНЫМ КОДОМ"
28
Sergant1000, напиши как именно он должен работать
что должен делать этот триггер
это спелл или система
короче составь нормальное описание
и прочитай статьи
у тебя утечки и бж
и не надо начинать с гуи)
начинай с джасса
17
nvc123, описал в 25м посту.
Buulichkaa, пользоваться хешем нехочу. а вот про кастом, это уже интересно.
nvc123, чтобы начинать с джасса надо начинать с гуи, ты же когда по большему на горшок садишся сначало штаны снимаешь, а потом откладываешь личинку, а не наоборот.
28
Sergant1000, в 25 посте ни черта не написано
Sergant1000, неправильный пример
21
Sergant1000, в смысле, что вы несете? Когда поймешь джасс гуи не нужен.
А на гуи все "когда-то" да творили...
Проблема решена? Будете использовать CV?
17
в 25 посте 261 символ из которых 243 сугубо по делу
Buulichkaa, да, повсей видимости буду переделывать, но хотелось бы узнать почему проверка не срабатывает.
28
Sergant1000, в 25 посте нету не 1 символа который объяснял цель этого кода
именно так и пишется код
сначала берётся цель
потом выстраивается алгоритм
и лишь потом этот алгоритм переводится на яп
не зная цели твои 243 символа являются полным 0
впрочем как и твой код
что то сегодня слишком много нубов
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, Чтобы использовать мою функцию надо сделать стек групп.
Но я не пойму зачччеееем вам мои или чьи-либо велосипеды, если все делается через аттач на юнита.
17
у меня получается авто стоп благодаря Zone[i]==null
зоны заполнены по порядку Zone[1].Zone[2].Zone[3]... и т.д. соответственно если Zone[15] будет пуста то выход из цикла.
21
Sergant1000, так в чем проблема, делайте каких-нибудь юнитов, делайте базу даных, через ID типа юнита получайте данные (сколько вырабатывает или требует), делаем свои приказы (скилами) ну и вроде бы все, я не понял зачем вам моя функция?
И можно хранить через таблицу булин, несет юнит что-либо или нет
А кстати да, моя функция работает как часы, только что проверил...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.