XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
Удаляются все юниты из группы.
Код:
loop
        set g=buildings[i]
        loop
            set gu=FirstOfGroup(g)
            exitwhen gu==null or gu==u
            call GroupRemoveUnit(g,gu)
            set gu=null
        endloop
        exitwhen gu==u or i>33
        set i=i+1
    endloop


Вообщем из массива групп buildings удаляются все юниты до того как найдется нужный, хотя должны удаляться только из группы g, подскажите как решить проблему.

Т.е. как будто я произвожу действия над каждым из элементов массивов, а не их копиями...
Старый 10.12.2008, 18:06
ScorpioT1000
Работаем
offline
Опыт: отключен
обнулять gu вроде после цикла можно

ScorpioT1000 добавил:
а вобще код не совсем ясен, давай все исходные данные
Старый 10.12.2008, 18:11
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
Код:
// . . .    
    local unit u = GetDyingUnit()
    local group g = CreateGroup()
    local unit gu=null
    local integer i=0
    loop
        set g=buildings[i]
        loop
            set gu=FirstOfGroup(g)
            exitwhen gu==null or gu==u
            call GroupRemoveUnit(g,gu)
            set gu=null
        endloop
        exitwhen gu==u or i>33
        set i=i+1
    endloop


Эмм, ну мб есть какой-то другой хороший вариант получения индекса массива группы в которой находится юнит?

Отредактировано ShadoW DaemoN, 11.12.2008 в 05:50.
Старый 10.12.2008, 18:37
user_jasser

offline
Опыт: 232
Активность:
Hellfim
вопрос не до конца понятный интуитивно могу порекомендовать след. нативу...

Код:
constant native IsUnitInGroup takes unit whichUnit, group whichGroup returns boolean
Старый 10.12.2008, 18:52
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
CustomValue использовать религия не позволяет? Или что-то другое там висит уже?
Старый 10.12.2008, 18:53
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
Hellfim, элементарно:
Код:
function func takes nothing returns nothing
  local unit u = GetDyingUnit()
  local integer i = 0
  loop
    exitwhen i > 33 or IsUnitInGroup(u, buildings[i])
    set i = i + 1
  endloop
  set u = null
endfunction


Van Damm, тебе следует больше времени уделять на сон.
Старый 10.12.2008, 18:54
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
Так всем огромное спасибо, в частности ShadoW DaemoN'у. Проблема была в том, что надо было добавлять группу в группу :).
Старый 10.12.2008, 21:31
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 23:07.