KI darf nur stehen oder hocken aber nicht liegen
Wie kriegt man hin dass die KI nur steht oder hockt, sich aber nicht hinlegt?
setUnitPos ist klar, aber damit befielt man ja nur eine Position. die KI soll sich aber der Situation entsprechend eine von beiden aussuchen dürfen aber eben nicht "down". Jemand ne Idee? |
Wenn du eine Abfrage kennst die feststellt ob die KI liegt, dann könnte das vielleicht gehen. Aber gibt es eine solche Abfrage?
Kannst ja einmal hier nachsehen: http://community.bistudio.com/wiki/C...Commands_ArmA2 |
Stellt fest, ob Spieler liegt:
Code:
player selectionPosition "Neck" select 2 < 0.5 |
Das ist ja schon erfreulich, dass man das abfragen kann. Jetzt fehlt nur noch wie man einen Liegenden zum Aufstehen oder Knien bewegt.
Vielleicht geht es mit: http://community.bistudio.com/wiki/playMove http://community.bistudio.com/wiki/A...lt:_Moves_List oder http://community.bistudio.com/wiki/playAction http://community.bistudio.com/wiki/ArmA:_Actions |
Ich fand die ganze Sache interessant und hab mich selber mal ans Testen gemacht.
Mit dem Eventhandler AnimDone hab ich mal eine moegliche Loesung erstellt. Initzeilenvariante: Code:
this addEventHandler ["AnimDone",{if (animationState (_this select 0) == "amovppnemstpsraswrfldnon") then {(_this select 0) setunitpos "middle";0=[(_this select 0)]spawn{sleep 60;(_this select 0) setunitpos "auto"}}}] Code:
{_x addEventHandler ["AnimDone",{if (animationState (_this select 0) == "amovppnemstpsraswrfldnon") then {(_this select 0) setunitpos "middle";0=[(_this select 0)]spawn{sleep 60;(_this select 0) setunitpos "auto"}}}]} foreach thislist gruß hoschi |
Das mit dem Animationstatus ist schön und gut, aber sobald Du eine Pistole in der Hand hast, heisst die Animation anders... und das war nur eine Möglichkeit von vielen... ;)
|
Man koennte auch einfach deine variante der Abfrage anstatt der Animation nehmen sodass von pistole ueber granate bis zum gewehr alles abgedeckt ist.
Code:
this addEventHandler ["AnimDone",{if ((_this select 0) selectionPosition "Neck" select 2 < 0.5) then {(_this select 0) setunitpos "middle";0=[(_this select 0)]spawn{sleep 60;(_this select 0) setunitpos "auto"}}}] hoschi |
Zitat:
|
Zitat:
>> setUnitPos << |
hehe :D ok habs jetzt ausprobiert, so funzt es doch nicht, aber wenn mans so schreibt schon:
this setunitpos "Up"; this setunitpos "Middle"; tadaaaaa :D //edit: halt shit geht doch nich.. dann bleibt er die ganze zeit geduckt -.- ich hab das aber schonmal hinbekommen in arma 1, ich weiß bloß nicht mehr wie, die lösung war ganz simple^^ |
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:33 Uhr. |
Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias