HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-167/)
-   -   KI darf nur stehen oder hocken aber nicht liegen (https://hx3.de/editing-scripting-167/ki-darf-nur-stehen-hocken-liegen-21103/)

Steirer 05.11.2011 14:07

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?

Vienna 05.11.2011 15:42

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

Buliwyf 05.11.2011 16:08

Stellt fest, ob Spieler liegt:

Code:

player selectionPosition "Neck" select 2 < 0.5
:rolleyes:

Vienna 05.11.2011 17:10

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

Moerderhoschi 05.11.2011 17:24

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"}}}]
Triggervariante:
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
Bei diesem Eventhandler wird die Animation des Soldaten abgefragt (amovppnemstpsraswrfldnon = Liegen). Wenn der Soldat liegt wird ihm per setunitpos "middle" zu knieen befohlen und mit dem spawnscript nach 60 sekunden wieder eine automatische wahl (stehen,knieen,theoretisch auch liegen) ermoeglicht wobei sich beim hinlegen das ganze wieder von vorne abspielt.

gruß

hoschi

Buliwyf 05.11.2011 17:28

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... ;)

Moerderhoschi 05.11.2011 17:47

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"}}}]
gruß

hoschi

Virility92 05.11.2011 20:06

Zitat:

Name setUnitPos "KneelDown" - Einheit kniet und wählt zwischen Liegen und Knien
demnach müsste doch auch Name setunitpos "UpMiddle" funktionieren, bzw UpKneel^^

Buliwyf 05.11.2011 20:25

Zitat:

Zitat von Virility92 (Beitrag 393414)
demnach müsste doch auch Name setunitpos "UpMiddle" funktionieren, bzw UpKneel^^

Wat ihr euch hier manchmal zusammenreimt is der Hammer... :stupid:

>> setUnitPos <<

Virility92 05.11.2011 20:39

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


SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119