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

Answer

TriggerRegisterVariableEvent
Абсолютно бесполезная шутка, и в луа может не работать. Меняете значение переменной, вызывайте сразу нужные действия.

Shown only a small set of comments around the pointed one. Go to actual.
0
Голосов: 0
NatriY - 2 years ago
0
Голосов: 0
map_maiker:
Хм-м, после присваивания всё нормально. Т.е разовый вывод выводит 1, но триггер, который каждую 0.01 сек ее выводит - выводит 0. Т.е она сразу становится нулём, при этом триггер с событием даже не срабатывает, ток что перепроверил.
Ну тогда надо в других местах ошибку искать...
У меня эта переменная обнулится может в том же скрипте, только при отпускании клавиши. Если клавишу не отжимать - она не может никак не может обнулиться.
0
Голосов: 0
map_maiker - 2 years ago
0
Голосов: 0
У меня эта переменная обнулится может в том же скрипте, только при отпускании клавиши. Если клавишу не отжимать - она не может никак не может обнулиться.
Вы же сами написали - переменной присваивается значение, но потом обнуляется.

Ещё есть вариант, что не та переменная используется...
0
Голосов: 0
NatriY - 2 years ago
0
Голосов: 0
map_maiker:
У меня эта переменная обнулится может в том же скрипте, только при отпускании клавиши. Если клавишу не отжимать - она не может никак не может обнулиться.
Вы же сами написали - переменной присваивается значение, но потом обнуляется.

Ещё есть вариант, что не та переменная используется...
Я когда нажимаю клавишу, то переменная должна быть равна 1 и никак не 0, ибо 0 может быть только после отпускания. Второй вариант маловероятен.
3
Голосов: 3
rsfghd - 2 years ago
3
Голосов: 3
NatriY, попробуй на отдельной карте то же самое сделать, так легче понять где именно кроется проблема
0
Голосов: 0
NatriY - 2 years ago
0
Голосов: 0
Я создал отдельный триггер на ГУИ с событием - ToMove становится 1.00 и он тоже не сработал, хотя вывод показывает, что она == 1.00 Я просто переводил карту на луа, и вот теперь событие просто отказалось работать)
0
Голосов: 0
Borodach - 2 years ago
0
Голосов: 0
NatriY, Выводи лог на экран значений udg_S, udg_W и udg_ToMove, когда нажал и когда отпустил клавишу. Возможно причина в них
0
Голосов: 0
NatriY - 2 years ago
0
Голосов: 0
Borodach:
NatriY, Выводи лог на экран значений udg_S, udg_W и udg_ToMove, когда нажал и когда отпустил клавишу. Возможно причина в них
Добавлял в событие отпускания проверочное действие - не срабатывает. Да и я говорю, переменная принимает нужно значение, но ни мой, ни даже созданный на ГУИ триггер не реагирует на это событие.
0
Голосов: 0
Borodach - 2 years ago
0
Голосов: 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
Голосов: 0
NatriY - 2 years ago
0
Голосов: 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
Голосов: 0
Borodach - 2 years ago
0
Голосов: 0
NatriY, Если выводит число 11 у тебя, то тут все работает. Нужен код того как ты событие регистрируешь...
0
Голосов: 0
prog - 2 years ago
0
Голосов: 0
NatriY, вы определитесь, луа у вас или жасс. Это разные языки, в том числе с отличиями в том как делается конкатенация строк.
Shown only a small set of comments around the pointed one. Go to actual.
To leave a comment please sign in to the site.