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

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

Закрытая тема
 
Dreii
define{name=Dreii age=17}
offline
Опыт: 5,246
Активность:
call ForGroupBJ
call ForGroupBJ
Мне нужно выбрать юнитов в группе например g неприбегая ко второй ф-ии.
Старый 03.04.2011, 11:07
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
local group g = LoadGroupHandle(udg_Hash,id,0)
local group tg = CreateGroup()
local unit c = LoadUnitHandle(udg_Hash,id,1)
local unit u
call GroupAddGroup(g,tg)
loop
set u = FirstOfGroup(tg)
call UnitDamageTarget(c,u,80.,true,false,ATTACK_TYPE_NORMAL,DAMAGE_TYPE_MAGIC,null)
call GroupRemoveUnit(tg,u)
exitwhen u == null
endloop
call DestroyGroup(tg)
Старый 03.04.2011, 11:10
Dreii
define{name=Dreii age=17}
offline
Опыт: 5,246
Активность:
юнит u это тот юнит уоторый в группе tg?
Старый 03.04.2011, 11:11
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
нет эта переменная для перебора юнитов используется
мы добавляем в группу tg всех юнитов g а потом убираем по одному из tg и делаем действия когда юнита кончились выходим из цикла
g это основная группа
Старый 03.04.2011, 11:12
Dreii
define{name=Dreii age=17}
offline
Опыт: 5,246
Активность:
set g2=GetRandomSubGroup(1,g)
loop
set u = FirstOfGroup(g2)
call SaveUnitHandle(hash,id,1,u)
call UnitAddAbility(u,'A000')
exitwhen u == null
endloop

Вот так верно?
g - основная
Старый 03.04.2011, 11:22
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
ты не удаляешь юнита и группы g2 цикл вечный будет
Старый 03.04.2011, 11:23
Dreii
define{name=Dreii age=17}
offline
Опыт: 5,246
Активность:
if t==LoadUnitHandle(hash,id,1) then
set g2=GetRandomSubGroup(1,g)
loop
set u=FirstOfGroup(g2)
call SaveUnitHandle(hash,id,1,u)
call UnitAddAbility(u,'A000')
call GroupRemoveUnit(g2,u)
exitwhen u == null
endloop
call DestroyGroup(g2)
endif

Почему то юнит не сохраняяеться в хеш\\
Старый 03.04.2011, 11:29
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
16Gb неправильные вещи написал.
Почему то юнит не сохраняяеться в хеш\\
Твой код записывает в хеш null на последнем шаге цикла. Корректный вариант цикла по группе:
((код jass
loop
set u = FirstOfGroup(g2)
exitwhen u == null
call GroupRemoveUnit(g2, u)
. . .
твои действия
endloop
))
Да, тебе нужно записать в хеш всех юнитов в группе или только последнего? И вообще, какова цель записи юнита (юнитов) в хеш? Где ты его (их) собираешься потом использовать?
Старый 03.04.2011, 11:57
Dreii
define{name=Dreii age=17}
offline
Опыт: 5,246
Активность:
ShadoW DaemoN, Я делаю систему отрядов. И вот после смерти лидера группы у меня нагуд выбираеться новый лидер. Но когда старый умирает у нвоого просто появляетсья эффект лидера,но сыми действия не работатют
Старый 03.04.2011, 12:01
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
Желательно, чтобы автор темы выложил карту с кодом. По описанию пока неясно, что за действия и в чём причина неработоспособности.
Старый 04.04.2011, 08:36
DotaMaster666
Silenced by GadenbIsh
offline
Опыт: 1,259
Активность:
// cJass
ForGroup(g, lambda nothing () {
    u_temp = GetEnumUnit() // u_temp - глобальная переменная
    // ...
})
Я так всегда перебираю группу.
Старый 04.04.2011, 09:35
Закрытая тема

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

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

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

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



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