HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-167/)
-   -   Auf Stuhl setzen. UND wieder aufstehen + Addactionbefehl deaktivieren (https://hx3.de/editing-scripting-167/stuhl-setzen-aufstehen-addactionbefehl-deaktivieren-22719/)

Daemion 08.07.2013 22:45

Auf Stuhl setzen. UND wieder aufstehen + Addactionbefehl deaktivieren
 
Hallo zusammen,

ich versuche das irgendwie hinzubekommen, aber ich schaffe es einfach nicht den Addaction Befehl "Aufstehen" wieder wegzubekommen!

Ich schreibe in der Initzeile des Stuhls folgendes:

Code:

sitting = this addaction ["Sit Down","chair.sqf"];
Die "char.sqf" schaut so aus:

Code:

_chair = _this select 0;
_unit = _this select 1;

_unit switchMove "sitUnarm_L_idleLoop2";
_unit setpos [ getPos _chair select 0, getPos _chair select 1, -0.6];
_unit setDir ((getDir _chair) - 90);
_unit addaction ["Stand Up", "chairup.sqf"];

Und die "Chairup.sqf" so:

Code:

player switchMove ""; 
player removeaction sitting;

Ich gehe zum Stuhl, wähle im Aktionsmenü "Hinsetzen", mein Char setzt sich auf den Stuhl. Drücke "Aufstehen", er steht auf aber der Eintrag "Aufstehen im Actionsmenü bleibt bestehen und nervt! Wenn ich mich auf die anderen Stühle setze und wieder aufstehe kommt ein neuer "Aufstehen" Befehl hinzu.
Ich bin kein Ass im scripten ich geb mein Bestes, aber hier hab ich noch keine Lösung gefunden :(

Ich hoffe jmd kann mir helfen! Dieses Stuhlhinsetzen soll auch Multiplayer-Kompatibel sein!

René

Buliwyf 09.07.2013 16:04

Pack folgendes in die Chair.sqf oder Chairup.sqf... oder wo auch immer:

Code:

_id = _this select 2;

_chair removeAction _id;

;)

Daemion 09.07.2013 22:54

Zitat:

Zitat von Buliwyf (Beitrag 453761)
Pack folgendes in die Chair.sqf oder Chairup.sqf... oder wo auch immer:

Code:

_id = _this select 2;

_chair removeAction _id;

;)

Hey Buliwyf!

Ein fetten Dank an Dich!
Ich habe die Zeilen die du geschrieben hast eingetragen. Beim erstmaligem hinsetzen und wieder aufstehen ging der Eintrag weg. Beim wiederholen leider nicht mehr. Habe nunr folgendes gemacht:

Ich schreibe in der Initzeile des Stuhls:

Code:

sitting = this addaction ["Sit Down","chair.sqf"];
Die "char.sqf" schaut diesmal so aus:


Code:

_chair = _this select 0;
_unit = _this select 1;
_id = _this select 2;

_unit switchMove "sitUnarm_L_idleLoop2";
_unit setpos [ getPos _chair select 0, getPos _chair select 1, -0.6];
_unit setDir ((getDir _chair) - 90);
_unit addaction ["Stand Up", "chairup.sqf"];
_chair ramoveAction = _id;

Und die "Chairup.sqf" so:

Code:

_id = _this select 2;
player switchMove ""; 
player removeaction sitting;
player removeAction _id;

Wenn ich die Zeile

Code:

player removeaction sitting;
weglasse funktioniert es komishcerweise nicht. Mit den oben beschriebenen Zeilen geht der Eintrag aber jedesmal weg, hat also geklappt! Super!
Wird morgen im Multiplayer getestet, ich werde berichten.

Gruß
René

Buliwyf 10.07.2013 12:01

Was'n das für ne Zeile?
Code:

_chair ramoveAction = _id;
Die passt ja vorne und hinten nicht... :rolleyes:

Daemion 10.07.2013 13:48

Zitat:

Zitat von Buliwyf (Beitrag 453832)
Was'n das für ne Zeile?
Code:

_chair ramoveAction = _id;
Die passt ja vorne und hinten nicht... :rolleyes:

Huch, das war noch vom ausprobieren dringeblieben! :D
Kann natürlich weg.

Daemion 10.07.2013 21:58

Wir haben es vorhin im MP getestet, leider "sitzt" der andere Spieler um 90° auf dem Stuhl und steht.

Schade das das nicht klappt :(

Hat hier irgendjemand eine Idee oder ein Tipp wie das im MP klappt?

René

Daemion 12.07.2013 15:42

Hat denn hier wirklich niemand ne Ahnung?

Was is mit den Profis Vienna, Xeno oder Hoschi? Keiner n Plan ? :(

Vienna 13.07.2013 21:20

Nur so viel, wenn du einen Stuhl eine Aktion gibst und sie wieder entfernen willst, dann ist der Name des Stuhls anzuführen.

So geht das nicht:

sitting = this addaction ["Sit Down","chair.sqf"]; (this ist der Stuhl)

player removeaction sitting; (anstelle von player muss der Stuhl-Name genommen werden)


Dass der Spieler richtig herum sitzt ist auszuprobieren. Dabei ist zu beachten, dass in MP lokale Befehle auf dem PC des Spielers erfolgen müssen der die Kontrolle über die Einheit hat.

Daemion 14.07.2013 10:36

Hallo Vienna,

ich danke Dir für die Berichtigung und werde es korrigieren.

Der Befehl ansich klappt ja nun dank Buliwyf wunderbar, das einzige wo ich nicht weiter weis ist "nur" das 90° Problem. Der Mitspieler der sich auf ein Stuhl setzt, sitzt bei mir bzw. hockt halb auf dem Stuhl und das 90° vergedreht.

Dieser Befehl bereitet mir irgendwie Kummer.
_unit setDir ((getDir _chair) - 90);

90° grad Also!

Kann es sein, dass ich den Befehl irgendwie mit "if !(iServer) then ..." oder ähnlich schreiben muss, da nur der Server die Gradzahl richtig an die Clients "weitergeben" kann/muss?! *saeufz*

Sorry, ich bin erst seit ein paar Wochen am scripten, arbeite mich akribisch ein, JETZT merke ich zum ersten mal auf was man alles achten muss, die Mission MP Kompatibel zu machen. :(

Vienna 15.07.2013 08:54

gerDir Stuhl ergibt z.B. 0 aber tatsächlich ist der Stuhl 180 Grad ausgerichtet. Vielleicht liegt es daran?


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:09 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