Не сбивается анимация разговора
#1

Здравствуйте уважаемые пользователи форума.
У меня проблема казалось бы лёгкого плана. Периодически не сбивается анимация разговора у игрока.
Сбиваю я её в одно секундном таймере. То есть игрок написал в чат - запустилась анимация и к переменной присвоилось число 3.
В одно секундном таймере я проверяю эту переменную, и если не ноль то сбиваю анимацию.
Вот только беда вся в том, что анимация иногда не хочет сбиваться и игрок принимает позу "Спанч Боба", то есть держит руки по швам.
Также пробовал запускать отдельный таймер для каждого игрока сказавшего в чат но результат такой же.

Подскажите, что может быть не так.

Запуск:
PHP код:
ApplyAnimation(playerid,"PED","IDLE_CHAT",4.1,0,1,1,1,1,1);
PI[playerid][PedChatTime] = 3
Cбив:
PHP код:
if(PI[i][PedChatTime] != 0)
            {
                
PI[i][PedChatTime]--;
                if(
PI[i][PedChatTime] == 0)
                {
                    
PI[i][PedChatTime] = 0;
                    
ApplyAnimation(i,"CARRY","crry_prtial",4.0,0,0,0,0,0);
                }
            } 
Также пробовал использовать функцию ClearAnimations но толку это не принесло.

ps библиотеки анимаций подгружаю при спавне игрока, единожды.
Reply
#2

Дебаг пробовал?
Reply
#3

Пробовал. Принтит в лог всегда. Но анимация иногда всё же не сбивается.
Что удивительно для 0 ида функция выполняется всегда, а вот для остальных с периодичностью. То есть как повезёт.
Reply
#4

Попробуй сбивать так:
pawn Код:
ApplyAnimation(i,"CARRY","crry_prtial",4.0,0,0,0,0,1,1);
Reply
#5

Quote:
Originally Posted by XemyL
Посмотреть сообщение
Попробуй сбивать так:
pawn Код:
ApplyAnimation(i,"CARRY","crry_prtial",4.0,0,0,0,0,1,1);
Хорошо. Как опробую - отпишу
Reply
#6

Не помогло
Reply
#7

В общем проблема актуальна.
И общим таймером пробовал и отдельным, для каждого игрока. Толку - ноль!

Ручайте)
Reply
#8

Проверь свой код в чистом моде сампа.
--------------------------------------------
Ради интереса можешь попробовать так:

PHP код:
if(PI[i][PedChatTime] != 0
            { 
                
PI[i][PedChatTime]--; 
                if(
PI[i][PedChatTime] == 0
                { 
                    
//PI[i][PedChatTime] = 0; этого не надо делать
                    
ApplyAnimation(playerid"CARRY""crry_prtial"1.000000);
                    
ClearAnimations(playerid);
                } 
            } 
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)