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

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

Ответ
 
ZLOBICH
Kicked by XimikS
offline
Опыт: 4,727
Активность:
Проблема с GroupEnumUnitsInRange
Код:
function WisdomCon takes nothing returns boolean
local group g=CreateGroup()
local unit u=GetSpellAbilityUnit()
call GroupEnumUnitsInRange(g,GetUnitX(u),GetUnitY(u),700.,null)
call BJDebugMsg("Begin")
loop
set u=FirstOfGroup(g)
if GetUnitAbilityLevel(u,'A003')>0 then
return true
call BJDebugMsg("Succes")
call DestroyGroup(g)
set g=null
set udg_u=u
set u=null
endif
call GroupRemoveUnit(g,u)
set u=null
exitwhen g==null
endloop
call DestroyGroup(g)
call BJDebugMsg("Fail")
return false
endfunction
function Wisdom takes nothing returns nothing
local unit u=udg_u
local integer i=GetUnitAbilityLevel(u,'A003')
call BJDebugMsg("At trig")
call SetHeroInt(u,GetHeroInt(u,false)+i,true)
call PolledWait(GetRandomReal(4.,14.))
call SetHeroInt(u,GetHeroInt(u,false)-i,true)
set u=null
endfunction
function InitTrig_Wisdom takes nothing returns nothing
local trigger tr=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(tr,EVENT_PLAYER_UNIT_SPELL_EFFECT)
call TriggerAddCondition(tr,Condition(function WisdomCon))
call TriggerAddAction(tr, function Wisdom)
set tr=null
endfunction

вот сам спелл, почему-то перед лупом он сразу обрывается.
Старый 28.12.2007, 19:07
DFlyer
<3 MJ
offline
Опыт: 44,079
Активность:
Код:
loop
set u=FirstOfGroup(g)
if GetUnitAbilityLevel(u,'A003')>0 then
return true
call BJDebugMsg("Succes")

return обрывает функцию. Имхо, ты хотел сделать так:
Код:
if GetUnitAbilityLevel(u,'A003')>0 then
  call BJDebugMsg("Succes")
  call DestroyGroup(g)
  set g=null
  set udg_u=u
  set u=null
endif

Т.е. действия записываются между if ... endif. Ретурн не нужен.

DFlyer добавил:
http://xgm.guru/forum/showthread.php?t=11940
Старый 28.12.2007, 20:24
ZLOBICH
Kicked by XimikS
offline
Опыт: 4,727
Активность:
это условие т.е должна возращать true или false, сейчас попробую тру убрать в конец
ура всё работает :) спс(правда только сейчас понял что спелл только для одного юнита ну да ничего)
Старый 28.12.2007, 20:26
adic3x

offline
Опыт: 107,539
Активность:
Цитата:
call PolledWait(GetRandomReal(4.,14.))

какая плохая функция...
Старый 28.12.2007, 21:34
Ответ

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

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

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

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



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