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

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

Закрытая тема
 
ELDAR
НИИ 4А-ВО кафедра SPELLS
offline
Опыт: 8,394
Активность:
Проблема с кодом
Вот код

Код:
function F1 takes location l returns boolean
local group g
local unit u = null
local integer i = 0
local integer r = 0
call GroupEnumUnitsInRangeOfLoc(g, l, 25, null)
loop
set u = FirstOfGroup(g)
exitwhen (i == 1) or (u == null)
if (IsPlayerAlly(GetOwningPlayer(u), GetOwningPlayer(udg_Uc)) == true) and (u != null) then
set i = 1
set r = 1
endif
endloop
if r == 1 then
return false 
else
return true
endif
endfunction

function Trig_CTAgu9I_2_Actions takes nothing returns nothing
    set udg_i = 1
    loop
        exitwhen udg_i > ( GetUnitAbilityLevelSwapped('A000', udg_Uc) + 4 )
set b = F1(GetUnitLoc(udg_u[udg_i]))
        if (b == true) and ( IsUnitAliveBJ(udg_u[udg_i]) == true) then
            set udg_a2 = ( udg_a + GetRandomReal(-40.00, 40.00) )
            call SetUnitPositionLocFacingBJ( udg_u[udg_i], PolarProjectionBJ(GetUnitLoc(udg_u[udg_i]), 20.00, udg_a2), udg_a2 )
        else
            call UnitDamagePointLoc( udg_u[udg_i], 50.00, 25.00, GetUnitLoc(udg_u[udg_i]), ( 40.00 + ( 10.00 * I2R(GetUnitAbilityLevelSwapped('A000', udg_Uc)) ) ), ATTACK_TYPE_NORMAL, DAMAGE_TYPE_MAGIC )
            call KillUnit( udg_u[udg_i] )
        endif
        set udg_i = udg_i + 1
    endloop
endfunction


если убрать set b = F1(GetUnitLoc(udg_u[udg_i])) и (b == true) то все работает

помоготе плиз.

Отредактировано ShadoW DaemoN, 05.11.2008 в 09:40.
Старый 05.11.2008, 09:35
DFlyer
<3 MJ
offline
Опыт: 42,879
Активность:
Код:
//...
loop
  set u = FirstOfGroup(g)
  exitwhen (i == 1) or (u == null)
  if (IsPlayerAlly(GetOwningPlayer(u), GetOwningPlayer(udg_Uc)) == true) and (u != null) then
    set i = 1
    set r = 1
  endif
endloop
//...

1. В локалке u всегда один и тотже юнит, ты забыл про их удаление из группы.
2. Плюс, код можно гораздо оптимизировать.
Старый 05.11.2008, 10:12
ELDAR
НИИ 4А-ВО кафедра SPELLS
offline
Опыт: 8,394
Активность:
Точняк спс. DFlyer
Старый 05.11.2008, 10:35
Закрытая тема

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

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

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

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



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