Перерыл весь интернет и форум, не нашёл. Как заставить бота проигрывать анимацию? Постоянно. Всё пробовал, ничего не работает.
Edited by gizmo, 11 November 2014 - 17:49.
Best Answer SteelRat , 11 November 2014 - 21:02
PS
Вот прекрасно работающий в ините бота вариант
0 = this spawn {sleep 3; {_this disableAI _x} forEach ["ANIM", "AUTOTARGET", "FSM", "MOVE", "TARGET"]; _this switchMove "inbasemoves_patrolling1"}
И естественно, наигравшись с анимацией применяем к боту, но уже от куда то, а не из инита
{_bot enableAI _x} forEach ["ANIM", "AUTOTARGET", "FSM", "MOVE", "TARGET"]; _bot switchMove "normal";
Анимка : Acts_A_M02_briefing
И всё равно не пашет
Вы эту анимацию в просмотрщике крутили?
Go to the full postPosted 11 November 2014 - 17:47
Перерыл весь интернет и форум, не нашёл. Как заставить бота проигрывать анимацию? Постоянно. Всё пробовал, ничего не работает.
Edited by gizmo, 11 November 2014 - 17:49.
Posted 11 November 2014 - 18:15
bot disableAI "ANIM"; bot switchMove "animName";
Posted 11 November 2014 - 18:40
bot disableAI "ANIM"; bot switchMove "animName";
Не работает
Posted 11 November 2014 - 20:39
Вы учитываете тот момент, что не все анимации дадут на выходе, то что вы желаете увидеть?
Имя анимации в студию!
И да, я совсем забыл, что проявить инициативу это не про вас, попробуете так сказать по максимуму отключить ботам AI
{bot disableAI _x} forEach ["ANIM", "AUTOTARGET", "FSM", "MOVE", "TARGET"];
Edited by SteelRat, 11 November 2014 - 20:46.
Posted 11 November 2014 - 20:59
Анимка : Acts_A_M02_briefing
И всё равно не пашет
Posted 11 November 2014 - 21:02 Best Answer
PS
Вот прекрасно работающий в ините бота вариант
0 = this spawn {sleep 3; {_this disableAI _x} forEach ["ANIM", "AUTOTARGET", "FSM", "MOVE", "TARGET"]; _this switchMove "inbasemoves_patrolling1"}
И естественно, наигравшись с анимацией применяем к боту, но уже от куда то, а не из инита
{_bot enableAI _x} forEach ["ANIM", "AUTOTARGET", "FSM", "MOVE", "TARGET"]; _bot switchMove "normal";
Анимка : Acts_A_M02_briefing
И всё равно не пашет
Вы эту анимацию в просмотрщике крутили?
Posted 11 November 2014 - 21:05
PS
Вот прекрасно работающий в ините бота вариант
0 = this spawn {sleep 3; {_this disableAI _x} forEach ["ANIM", "AUTOTARGET", "FSM", "MOVE", "TARGET"]; _this switchMove "inbasemoves_patrolling1"}И естественно, наигравшись с анимацией применяем к боту, но уже от куда то, а не из инита
{_bot enableAI _x} forEach ["ANIM", "AUTOTARGET", "FSM", "MOVE", "TARGET"]; _bot switchMove "normal";Анимка : Acts_A_M02_briefing
И всё равно не пашет
Вы эту анимацию в просмотрщике крутили?
Ваша анимация работает, анимацию крутил, всё ок. Но ваша работает а моя нет, видимо с ней что-то не то.
Поставил другую анимку, работает. Кстати, а можно исправить телепортацию? Там где идёт "шов" анимки чувак телепортируется. Не стоит на месте.
Edited by gizmo, 11 November 2014 - 21:12.
Posted 11 November 2014 - 21:12
Может найдёте здесь про брифинг
Posted 11 November 2014 - 21:22
Анимка : Acts_A_M02_briefing
И всё равно не пашет
Блин, я с вас не устану удивляться, вы могли нормальным русским языком написать.
Анимация проигрывается однократно, а не вот это
И всё равно не пашет
Posted 11 November 2014 - 22:20
Анимка : Acts_A_M02_briefing
Тут дело в том, что эта и подобные ей анимации не зацикливаются, они проигрываются в комплекте с другими.
Но, если очень хочется, вот лекарство
0 = [this, "Acts_A_M02_briefing"] spawn { sleep 3; _unit = _this select 0; _anim = _this select 1; anim_play = true; {_unit disableAI _x} forEach ["ANIM", "AUTOTARGET", "FSM", "MOVE", "TARGET"]; _unit setVariable ["AnimCode", { if (anim_play && alive (_this select 0)) then { (_this select 0) switchmove (_this select 1); } else { (_this select 0) removeEventHandler ["animDone", (_this select 0) getVariable "EH_animDone"]; (_this select 0) setVariable ["EH_animDone", nil]; (_this select 0) setVariable ["AnimCode", nil]; {(_this select 0) enableAI _x} forEach ["ANIM", "AUTOTARGET", "FSM", "MOVE", "TARGET"]; (_this select 0) switchmove "normal"; }; }]; [_unit, _anim] call (_unit getVariable "AnimCode"); waitUntil {sleep 0.01; animationState _unit == _anim}; _unit setVariable ["EH_animDone", _unit addEventHandler ["animDone", {[(_this select 0), (_this select 1)] call ((_this select 0) getVariable "AnimCode")}]]; }
Что бы прервать воспроизведение, исполнить откуда либо эту строку
anim_play = false;
Анимация доиграет до конца и прекратит воспроизведение.