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

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

Ответ
 
R_A_N_D_O_M

offline
Опыт: 5,372
Активность:
Локальные Переменные в Условиях
Вот не могу понять в чём тут дело ставлю в условие заменяю обычную переменную на локальную переменную и Editor вылетает при сохранении , именно вылетает а не выдаёт ошибку.
» Вот
function Trig_A2_Conditions takes nothing returns boolean
if ( not ( R2I(GetUnitStateSwap(UNIT_STATE_LIFE, udg_Unit на a)) == R2I(GetUnitStateSwap(UNIT_STATE_MAX_LIFE, udg_Unit на a)) ) ) then
return false
endif
return true
endfunction

function Trig_A2_Actions takes nothing returns nothing
local unit a
call DisableTrigger( GetTriggeringTrigger() )
set a = udg_Unit
set udg_Unit = null
call UnitRemoveBuffBJ( 'B000', a )
set a = null
endfunction

//===========================================================================
function InitTrig_A2 takes nothing returns nothing
set gg_trg_A2 = CreateTrigger( )
call TriggerRegisterTimerEventPeriodic( gg_trg_A2, 1.00 )
call TriggerAddCondition( gg_trg_A2, Condition( function Trig_A2_Conditions ) )
call TriggerAddAction( gg_trg_A2, function Trig_A2_Actions )
endfunction

Кто нибудь хелп.
Старый 28.12.2007, 22:09
ZLOBICH
Kicked by XimikS
offline
Опыт: 4,727
Активность:
так в Condition'е нету local unit a..
Старый 28.12.2007, 22:13
R_A_N_D_O_M

offline
Опыт: 5,372
Активность:
ZLOBICH ???
Старый 28.12.2007, 22:20
DFlyer
<3 MJ
offline
Опыт: 44,079
Активность:
Локалка действует только в одной функции. Condition - функция, в ней не объявлена переменная a.
Кстати, у тебя слишком много чего лишнего в коде.
Старый 28.12.2007, 22:21
R_A_N_D_O_M

offline
Опыт: 5,372
Активность:
Поправь пожалуйста. Может ты и не заметил но это простое конвентирование текста я жасс только изучаю (я не волшебник , я только учусь. :D: ) и вот чтобы использовать триггер сколько угодно раз (так называемо) мне нужно туда засунуть локалку.
Старый 28.12.2007, 22:24
Harakternyk

offline
Опыт: 2,703
Активность:
R_A_N_D_O_M, вот исправленный вариант. Если ты баф удаляешь, когда здоровье юнита полностью восстанавливается, то это то, что тебе нужно

» Код:
function Trig_A2_Actions takes nothing returns nothing

local unit a
local boolean Bln

call DisableTrigger( GetTriggeringTrigger() )

set a = udg_Unit
set Bln = R2I(GetUnitStateSwap(UNIT_STATE_LIFE, a)) == R2I(GetUnitStateSwap(UNIT_STATE_MAX_LIFE, a))

if Bln then

set udg_Unit = null
call UnitRemoveBuffBJ( 'B000', a )

endif

set a = null
set Bln = 0 == 0

endfunction

//===========================================================================
function InitTrig_A2 takes nothing returns nothing
set gg_trg_A2 = CreateTrigger( )
call TriggerRegisterTimerEventPeriodic( gg_trg_A2, 1.00 )
call TriggerAddAction( gg_trg_A2, function Trig_A2_Actions )
endfunction


Код исправлен и ошибок больше не имеет =)

Отредактировано Harakternyk, 28.12.2007 в 22:46.
Старый 28.12.2007, 22:38
R_A_N_D_O_M

offline
Опыт: 5,372
Активность:
Harakternyk вышло три ошибки.
____________________________________________
Осталась одна я заменил bln на Bln.
____________________________________________
Harakternyk и все три ошибки оказались изза того что ты не поставил большую букву , всё исправил всё норм щас пойду тестить.
____________________________________________
Чё у меня за фигня почему не работает. Вот смотрите.
Прикрепленные файлы
Тип файла: w3x A1.w3x (15.7 Кбайт, 7 просмотров )
Старый 28.12.2007, 22:50
DFlyer
<3 MJ
offline
Опыт: 44,079
Активность:
R_A_N_D_O_M
Карту не смотрел, вломъ качать и открывать Ве. Имхо, ошибка с глобалкой. Откуда берётся её значение?
Старый 28.12.2007, 22:53
R_A_N_D_O_M

offline
Опыт: 5,372
Активность:
Что с этим что без этого не работает
Цитата:
Триггер - Turn on A2 <gen>


R_A_N_D_O_M добавил:
DFlyer Значение в триггере под названием A1 а это следующий A2 , суть в том что когда на воина кидают способность он записывается в глобалку , ему даётся способность реген и включается вот этот триг (A2)
Старый 28.12.2007, 22:57
Harakternyk

offline
Опыт: 2,703
Активность:
R_A_N_D_O_M, ты хочешь, чтоб баф убрался после полного восстановления здоровья?
Старый 28.12.2007, 23:01
R_A_N_D_O_M

offline
Опыт: 5,372
Активность:
Harakternyk да.

R_A_N_D_O_M добавил:
И способность тоже.
Старый 28.12.2007, 23:02
Harakternyk

offline
Опыт: 2,703
Активность:
R_A_N_D_O_M, держи - всё работает. Если хочешь, чтобы было на джассе, то могу перевести корректно

____________

Вложение в следующем посте...

Отредактировано Harakternyk, 28.12.2007 в 23:31.
Старый 28.12.2007, 23:08
R_A_N_D_O_M

offline
Опыт: 5,372
Активность:
Harakternyk мляя... , ты думаешь я совсем тупой я точно также сделал но потом подумал и ты тоже подумай , представь себе сражаются 4 воина и у всех есть способность у всех мало жизней и они её врубают практически одновременно , в результате у одного исчезает баф и реген , а у остальных он остаётся пожизненно. Я пробовал по разному также как ты только чтобы проверка была каждую секунду. Я решил дайка переведу её на джасс ведь через CS нельзя и заменю глобалки на локалки , и Editor выдаёт ошибку.
_________________________________________
*R_A_N_D_O_M вздыхая*
Эх блин так не кто не поможет.
_________________________________________
Ладно я пошёл грызть гранит науки (джасса).
Старый 28.12.2007, 23:24
Harakternyk

offline
Опыт: 2,703
Активность:
R_A_N_D_O_M, не нервничай Не подумал я сразу как-то... Вот исправленный вариант - приравниваем глобалку к локалке, а потом убераем когда нужно способность и баф, после чего, переводим значение локалки в значение глобалки обратно - то, что ты сам пытался сделать, насколько я понял из первичного кода.
Прикрепленные файлы
Тип файла: w3x A1.w3x (15.9 Кбайт, 8 просмотров )

Отредактировано Harakternyk, 28.12.2007 в 23:36.
Старый 28.12.2007, 23:31
R_A_N_D_O_M

offline
Опыт: 5,372
Активность:
Harakternyk Спасибо то что мне надо. Просто я не мог разобраться с условием чтобы узнать полные жизни у юнита или нет.
Цитата:
не нервничай

Я в полном спокойствие *R_A_N_D_O_M уснул*
Старый 28.12.2007, 23:38
S

offline
Опыт: 43,833
Активность:
На заметку - функции
call DisableTrigger(***) и call EnableTrigger(***) работают с с переменными типа trigger , а не с названием функции...
Старый 29.12.2007, 11:06
adic3x

offline
Опыт: 107,539
Активность:
учитесь кодить правильно, не делая кучу ненужный операций...
Код:
function Trig_A2_Actions takes nothing returns nothing
 call DisableTrigger(GetTriggeringTrigger())
 if GetUnitState(udg_Unit, UNIT_STATE_LIFE)==GetUnitState(udg_Unit, UNIT_STATE_MAX_LIFE)then
  call UnitRemoveAbility(udg_Unit, 'B000')
 endif
endfunction

//===========================================================================
function InitTrig_A2 takes nothing returns nothing
set gg_trg_A2 = CreateTrigger( )
call TriggerRegisterTimerEventPeriodic( gg_trg_A2, 1.00 )
call TriggerAddAction( gg_trg_A2, function Trig_A2_Actions )
endfunction
Старый 29.12.2007, 11:06
Ответ

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

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

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

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



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