Просто игнорируется строчка "udg_ToMove = 1.0" ( подобная и для поворота снизу тоже игнорится ). Функция вызывается (проверял), а переменной значение не присваивается. Оно нужно для последующего триггера с событием TriggerRegisterVariableEvent. Выводил через тэгтекст - постоянный 0. Да даже если бы она на микросекунду стала бы 1.0, но какая нибудь логическая ошибка её бы обратно на 0 правила, то триггер с событием выше реагировал бы и выполнял действия, но такого не происходит. В чем беда?

Принятый ответ

TriggerRegisterVariableEvent
Абсолютно бесполезная шутка, и в луа может не работать. Меняете значение переменной, вызывайте сразу нужные действия.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
3
3 года назад
0
Я создал отдельный триггер на ГУИ с событием - ToMove становится 1.00 и он тоже не сработал, хотя вывод показывает, что она == 1.00 Я просто переводил карту на луа, и вот теперь событие просто отказалось работать)
0
13
3 года назад
0
NatriY, Выводи лог на экран значений udg_S, udg_W и udg_ToMove, когда нажал и когда отпустил клавишу. Возможно причина в них
0
3
3 года назад
0
Borodach:
NatriY, Выводи лог на экран значений udg_S, udg_W и udg_ToMove, когда нажал и когда отпустил клавишу. Возможно причина в них
Добавлял в событие отпускания проверочное действие - не срабатывает. Да и я говорю, переменная принимает нужно значение, но ни мой, ни даже созданный на ГУИ триггер не реагирует на это событие.
0
13
3 года назад
0
NatriY, Вставь код в функцию UpDown_Act() после udg_ToMove = 1
Если выводит TRUE 1, тогда ошибка в регистрации события и вызова функции для этого триггера
	if udg_W then 
        call BJDebugMsg("TRUE "+R2S(udg_ToMove))
	else
		call BJDebugMsg("FALSE "+R2S(udg_ToMove))
    endif
0
3
3 года назад
0
Borodach:
NatriY, Вставь код в функцию UpDown_Act() после udg_ToMove = 1
Если выводит TRUE 1, тогда ошибка в регистрации события и вызова функции для этого триггера
	if udg_W then 
        call BJDebugMsg("TRUE "+R2S(udg_ToMove))
	else
		call BJDebugMsg("FALSE "+R2S(udg_ToMove))
    endif
У меня почему-то не срабатывал дебагмсдж при конкатенации, поэтому я написал так
if (udg_W == true) then
BJDebugMsg(R2S(udg_ToMove + 10.0))
else
BJDebugMsg(R2S(udg_ToMove + 20.0))
end
Выводит 1 вариант, при udg_W == true, но почему это означает ошибку? Ведь эта переменная и должна быть true, так как кнопка зажата...
0
13
3 года назад
0
NatriY, Если выводит число 11 у тебя, то тут все работает. Нужен код того как ты событие регистрируешь...
0
24
3 года назад
0
NatriY, вы определитесь, луа у вас или жасс. Это разные языки, в том числе с отличиями в том как делается конкатенация строк.
0
3
3 года назад
Отредактирован NatriY
0
~
Borodach:
NatriY, Если выводит число 11 у тебя, то тут все работает. Нужен код того как ты событие регистрируешь...
Вот сама функция регистрирующая событие и запуск всех инициализирующих функций.

prog:
NatriY, вы определитесь, луа у вас или жасс. Это разные языки, в том числе с отличиями в том как делается конкатенация строк.
Lua, с конкатенацией уже понял
Загруженные файлы
0
13
3 года назад
0
NatriY, Надо пошагово продебажить где обрывает...
2
28
3 года назад
2
TriggerRegisterVariableEvent
Абсолютно бесполезная шутка, и в луа может не работать. Меняете значение переменной, вызывайте сразу нужные действия.
Принятый ответ
0
9
3 года назад
0
Есть вариант что условие равенства не срабатывает из-за погрешностей. Попробуйте в событии на переменную поставить что-то в духе >=0.9
Или использовать логический тип, как я понимаю, эта переменная связана с нажатием/отпусканием клавиши.
Ещё есть вариант что она где-то ещё обнуляется.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.