PDA

Просмотр полной версии : [Вопрос] Не воспроизводит анимацию актера (Streamer)



Salik_Davince
03.04.2019, 18:09
Здравствуйте уважаемые) Столкнулся с такой проблемой, может было такое? Не воспроизводятся анимация на актера, прелоад присутствует, воспроизвожу анимацию так - (LoadActors) -
ActorInfo[i][ActorID] =
CreateDynamicActor(ActorInfo[i][ActorSkin],
ActorInfo[i][ActorPosX], ActorInfo[i][ActorPosY], ActorInfo[i][ActorPosZ],
ActorInfo[i][ActorAngle],
ActorInfo[i][ActorInvul], ActorInfo[i][ActorHealth],
ActorInfo[i][ActorVWorld], ActorInfo[i][ActorInt]
);

cache_get_value_name(i, "ActorAnimation", actor_delimit);

if(sscanf(actor_delimit, "p<|>s[32]s[32]fddddd",
ActorInfo[i][ActorAnimlib], ActorInfo[i][ActorAnimname],
ActorInfo[i][ActorAnimDelta],
ActorInfo[i][ActorAnimloop],
ActorInfo[i][ActorAnimLockX], ActorInfo[i][ActorAnimLockY],
ActorInfo[i][ActorAnimFreeze], ActorInfo[i][ActorAnimTime])) {

ApplyDynamicActorAnimation(ActorInfo[i][ActorID],
ActorInfo[i][ActorAnimlib], ActorInfo[i][ActorAnimname],
ActorInfo[i][ActorAnimDelta],
ActorInfo[i][ActorAnimloop],
ActorInfo[i][ActorAnimLockX], ActorInfo[i][ActorAnimLockY],
ActorInfo[i][ActorAnimFreeze], ActorInfo[i][ActorAnimTime]);
}

Поле анимации актера (взял 1го для примера) -
BEACH|PARKSIT_M_LOOP|4.099999|1|1|1|0|0

DeimoS
03.04.2019, 20:22
Так у тебя сейчас ApplyDynamicActorAnimation сработает только если sscanf вернёт значение, отличное от 0. А такое значение sscanf возвращает только когда не удалось обработать строку.


ActorInfo[i][ActorID] =
CreateDynamicActor(ActorInfo[i][ActorSkin],
ActorInfo[i][ActorPosX], ActorInfo[i][ActorPosY], ActorInfo[i][ActorPosZ],
ActorInfo[i][ActorAngle],
ActorInfo[i][ActorInvul], ActorInfo[i][ActorHealth],
ActorInfo[i][ActorVWorld], ActorInfo[i][ActorInt]
);

cache_get_value_name(i, "ActorAnimation", actor_delimit);

sscanf(actor_delimit, "p<|>s[32]s[32]fddddd",
ActorInfo[i][ActorAnimlib], ActorInfo[i][ActorAnimname],
ActorInfo[i][ActorAnimDelta],
ActorInfo[i][ActorAnimloop],
ActorInfo[i][ActorAnimLockX], ActorInfo[i][ActorAnimLockY],
ActorInfo[i][ActorAnimFreeze], ActorInfo[i][ActorAnimTime]);

ApplyDynamicActorAnimation(ActorInfo[i][ActorID],
ActorInfo[i][ActorAnimlib], ActorInfo[i][ActorAnimname],
ActorInfo[i][ActorAnimDelta],
ActorInfo[i][ActorAnimloop],
ActorInfo[i][ActorAnimLockX], ActorInfo[i][ActorAnimLockY],
ActorInfo[i][ActorAnimFreeze], ActorInfo[i][ActorAnimTime]);

Salik_Davince
03.04.2019, 20:38
Да, заметил, я раньше думал то что при вызове sscanf'a в условиях, то если введенные параметры валидны то выполнится то что в теле функции. Спасибо.