PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Überprüfen ob Spieler in Auto sitzt


pspsps91
19.11.2006, 12:52
So... ich arbeite trotz ArmA noch ein bisschen an einer OFP Mission...

dabei hat der Spieler die Möglichkeit sich tod zu stellen. Also im Actionmenu auswählen, dann wird die Animation für einen Getöteden Soldaten abgespielt...
Doch dabei bin ich auf ein Problem gestoßen, wenn man in nem Fahrzeug sitzt wird die Animation trotzdem ausgeführt, das sieht dann aber ein bisschen blöd aus :D

Jetzt meine Frage: Ist, oder wie ist es möglich zu überprüfen ob der Spieler in einem Auto sitzt? ich mein jetzt nicht "? (player in auto)", da das ja bei jedem Fahrzeug so sein soll, und einfach alle autos auf der map zu überprüfen wäre etwas viel aufwand :rolleyes:

Stryker
20.11.2006, 13:56
Wenn der Spieler allein im Auto ist, braucht er nur auf die Beifahrerseite zu gehen. Die KI erkennt den Spieler dann nicht und geht selbst aus 1m Entfernung an ihm vorbei.

Da würde ich per Auslöser verbieten das der Script bei Autos ausgelöst wird.

pspsps91
20.11.2006, 16:37
hää? Sorry aber ich hab das jetzt mal gar nicht verstanden? :stupid:

Ich will doch bloß, dass ein script, wenn es ausgelöst wird, überprüft ob der Spieler in einem Auto sitzt und dann ggf. beendet.

Stryker
21.11.2006, 13:19
Mach doch einen Auslöser um das Auto das den Script beendet sofern der Spieler sich nährt.

pspsps91
21.11.2006, 13:47
Ja wäre ne möglichkeit, ist aber eigentlich nicht das was ich will, weil 1. sich die Autos bewegen(ich weiß könnte man schon machen, dass der trigger sich mitbewegt), 2. wäre ich dann auch nicht weiter wie ich schon bin, weil ich könnte ja auch ne abfrage einbauen wie "? (player in auto):...". Das ist mir aber zu viel arbeit, weil ich das ja mit jedem Fahrzeug, dass sich auf der map befindet machen muss :rolleyes: :D

ich hab mir eher sowas vorgestellt:
_veh = vehicle player
? !(_veh == objNull):exit

*so hab ichs auch schon versucht, aber geht leider irgendwie nicht

MarcusErgalla
21.11.2006, 17:21
.Wie erstelle ich eine Abfrage, ob der Spieler sich in einem Fahrzeug befindet?

Eine solche Abfrage sollte in einem Script mit einer If-Then-Else-Funktion aufgebaut sein.

Beispiel:
If(Player In Red4_UAZ1) Then{Player SetCaptive True} Else{Player SetCaptive False}

Durch diese Abfrage überprüft Armed Assault, ob der Spieler in dem mit Red4_UAZ1 bezeichneten Fahrzeug sitzt, egal an welcher Position. Sitzt er in Red4_UAZ1, dann wird sein SetCaptive-Status auf True umgeschrieben, also er wird zum Gefangenen und somit greift ihn der Gegner nicht mehr an. Sitzt er allerdings nicht in Red4_UAZ1, wird sein SetCaptive-Status nicht auf True gesetzt und der Gegner sieht in ihm immer noch einen Feind und wird ihn angreifen. Selbstverständlich kann man dies auch in einem Auslöser einbauen, dort müsste es dann aber so aussehen:

Bedingung: Player in UAZ
Activierung: Player SetCaptive True

(Die Outputs können natürlich selbstverständlich varieren!)


Textfüller :)

pspsps91
21.11.2006, 17:45
*ahm* ich rede noch von OFP... und da auch nicht von einem bestimmten Fahrzeug, sondern von allen Fahrzeugen, egal welches. Also wenn der Spieler in einem Fahrzeug (irgendeins auf der ganzen map, egal welches) sitzt, und gerade dann ein script gestartet wird, soll in diesem Script am Anfang überprüft werden ob der Spieler ein irgendeinem Fahrzeug sitzt und es in diesem Fall auch beenden.

MarcusErgalla
21.11.2006, 18:06
OFP und Armed Assault benutzen die selbe Sprache, es wird daher funktionieren, sofern sich kein Fehler meinerseits eingeschlichen hat. Wenn es mit jedem Fahrzeug auf der KArte geschehen soll, wirst du aber nicht um ein Skript herumkommen...

pspsps91
27.11.2006, 11:09
OFP und Armed Assault benutzen die selbe Sprache, es wird daher funktionieren, sofern sich kein Fehler meinerseits eingeschlichen hat.

*hüstel* das ist so eigentlich nicht richtig. Man kann die OFP befehle für ArmA verwenden aber nicht andersrum, weils ja in ArmA neu Befehle geben wird
*Klugscheiß* :)

Script ist kein Prob, ich wills sowiso in nem script machen. Nur ich hab keine Ahnung was ich machen muss.
Ok, ich könnte ne liste machen:
? player in car:car = car + 1
? player in car2:car = car +1
...

aber ich will das halt einfach allgemein abfragen, dass ich bei anderen Missionen nicht jedesmal ne neue liste mit allen Vehicles schreiben muss, sondern nur das Script in den Missi Ordner kopieren

MarcusErgalla
27.11.2006, 18:52
*hüstel* das ist so eigentlich nicht richtig. Man kann die OFP befehle für ArmA verwenden aber nicht andersrum, weils ja in ArmA neu Befehle geben wird
*Klugscheiß* :)


Falsch, es ist die selbe Skriptsprache, jegendlich wurde sie für Armed Assault erweitert... ;)

Das geht natürlich alles mit einem Skript, du musst jegendliche alle Fahrzeuge einlesen die sich momentan auf der Insel befinden, und in die der Spieler einsteigen kann, dann überprüfst du mit jedem einzelnen ob der Spieler darin sitzt und gibts dies dann aus. :)

pspsps91
28.11.2006, 20:01
Das mit den ArmA befehlen hatte ich ja so gemeint :rolleyes: :rolleyes:

Ja, das hätte ich auch selbst gewusst, aber ich will ja gerade nicht, dass man die Namen der Fahrzeuge braucht. Es muss doch möglich sein, generell zu überprüfen ob der Spieler in einem Fahrzeug sitzt oder nicht:stupid:

MarcusErgalla
28.11.2006, 20:09
Ja, das hätte ich auch selbst gewusst, aber ich will ja gerade nicht, dass man die Namen der Fahrzeuge braucht. Es muss doch möglich sein, generell zu überprüfen ob der Spieler in einem Fahrzeug sitzt oder nicht:stupid:

du brauchst dafür keine Namen für jedes einzelne Fahrzeug, das geht auch so. Wie gesagt, mit Typenabfrage jedes Fahrzeug in eine globale Variable einlesen, jedes einzelne Fahrzeug überprüfen und wenn eines gefunden wurde in dem der Spieler sitzt, dann eben dass, was du als Resultat möchtest ;)

pspsps91
01.12.2006, 14:35
Ok, ich weiß nicht wie man jedes Fahrzeug in eine Globale Variable einlesen kann... auch egal, hab nun doch einen Lösungsweg gefunden :) :D

Für alle, die den Thread mal finden und die Lösung wissen wollen:
mit Vehicle Player kann man das Fahrzeug des Spielers auslesen, aber wenn man nicht in nem Fahrzeug sitzt ist diese Variable nicht objNull(wie ich anfangs angenommen habe), sondern man kann das so überprüfen:
_veh = vehicle player
? _veh != player:exit

@Marcus
Trotzdem danke, dass du dich bemüht hast

hypercop
18.03.2009, 20:22
Ok, der Thread hat mich schon ein bischen weiter gebracht:

Mit dem Satz

_veh = vehicle player


gebe ich dem Fahrzeug, in dem sich der Spieler befindet, den Namen _veh. Ich möchte mir nun auch noch anzeigen lassen, z.B. über hint, um was für ein Fahrzeug es sich handelt (z.B. SkodaRed).

Ich hab da auch schon was probiert,
if (_veh == SkodaRed) then {hint "player im roten skoda"}
aber das hat mal gar nicht funktioniert.

TeRp
19.03.2009, 16:58
if (typeOf _veh == "SkodaRed") then {hint "player im roten skoda"}

hypercop
20.03.2009, 19:23
Hat funktioniert. Vielen Dank TeRpEnTiN.