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

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

Закрытая тема
 
Strayiker
Warcraft Forever
offline
Опыт: 3,406
Активность:
Чето с переменной
Вобщем есть триггер с условием:
Код:
function Trig_Enter_Condition takes nothing returns boolean
    return ( GetObjInt( GetEnteringUnit(), "in house number" ) != FR( GetEnteringUnit() ) )
endfunction


И функция:
Код:
function FR takes unit u returns integer
    local integer i = 0
    local boolean b
    loop
        exitwhen b == true
        set b = RectContainsUnit( udg_HouseR[i], u )
        set i = i + 1
    endloop
    return i
endfunction


После того как в игру захожу мне пишут:
Uninitialized variable "b" used in
FR(1049811)
Trigger_Enter_Condition()


Что это вообще такое ?
Старый 11.07.2008, 00:05
J
expert
offline
Опыт: 48,447
Активность:
нужно дать переменой b начальное значение, поставь ей false
Старый 11.07.2008, 00:54
S

offline
Опыт: 43,833
Активность:
событие где?

Цитата:
local boolean b

Цитата:
exitwhen b == true

втф? Камрад мне интересно как вы к локалке-булине придадите true ;) можете поделиться секретом?
Старый 11.07.2008, 11:44
ShadoW DaemoN

offline
Опыт: 37,078
Активность:
Вообще-то можно просто не использовать переменную:
Код:
function FR takes unit u returns integer
  local integer i = 0
  loop
    exitwhen RectContainsUnit(udg_HouseR[i], u) == true or i >= 8190
    set i = i + 1
  endloop
  return i
endfunction
Старый 11.07.2008, 12:15
J
expert
offline
Опыт: 48,447
Активность:
Цитата:
Сообщение от Sasha
втф? Камрад мне интересно как вы к локалке-булине придадите true
Цитата:
Сообщение от Strayiker
Код:
set b = RectContainsUnit( udg_HouseR[i], u )


ShadoW DaemoN тогда уж нужно таг:
Код:
function FR takes unit u returns integer
  local integer i = 0
  loop    
    exitwhen RectContainsUnit(udg_HouseR[i], u) or i >= 8190
    set i = i + 1
  endloop
  return i+1
endfunction

(это в том случае если нужно сделать аналог его кода, мб так и нужно :хз:)
Старый 11.07.2008, 13:22
Strayiker
Warcraft Forever
offline
Опыт: 3,406
Активность:
Всё понятно, но: or i >= 8190 не нуно, ибо true будет в любом случае
Старый 11.07.2008, 23:19
Закрытая тема

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

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

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

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



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