27.02.2013, 11:16 | #1 (permalink) |
Registriert seit: 03.07.2012
Beiträge: 118
|
hideobject global(?)
Hi Leute,
ich habe bei 2 Maps im Multiplayer ein Problem mit dem hideobject-Befehl. Es geht darum, dass jeweils nur der ausführende Spieler (Caller?!) Sicht auf das aufgedeckte Objekt (bzw. die Objekte) bekommt. 1.Fall Eine Leiche (Erhängter Arzt/Name= leiche1) hängt an einem Baum, mit der Möglichkeit sie abzuhängen. InitZeile: this addAction ["Leichnam abhängen","scripts\leiche.sqf"]; leiche.sqf Leiche2 (this hideobject true) ist ein Bodybag, der dann allerdings, wie erwähnt, nur für den Caller sichtbar wird. 2.Fall Hierbei handelt es sich um ein Killhouse-Areal, in dem es per Laptop die Möglichkeit gibt zwischen Übung (Popups und Wertungsscheiben) und Ernstfall (feindliche KI) zu wechseln. Zweiteres funktioniert wie erwünscht. Objekt Laptop mit InitZeile: this setPos [getPos this select 0, getPos this select 1, 1.1]; ID01 = this addAction ["Aktiviere Killhouse-Areal 1 Übung","Scripts\Killhouses\KHA1a.sqf"]; ID02 = this addAction ["Aktiviere Killhouse-Areal 1 Ernstfall","Scripts\Killhouses\KHA1b.sqf"]; Problemscript KHA1a.sqf Ich habs auch schon mit if (isServer) exitWith {} oder if (!isServer) exitWith {} oder if (isPlayer) exitWith {} oder if (isPlayer) then { _obj1 hideobject false; ..... }; oder if (isServer) then { _obj1 hideobject false; ..... }; oder if (isMultiplayer) then { _obj1 hideobject false ..... }; probiert, aber hatte leider keinen Erfolg und da ich nur unregelmäßig die Möglichkeit zum Hochladen und Testen habe und sich das jetzt schon über Monate zieht wollte ich euch um Rat bitten. Super wäre es auch, wenn der Hint vielleicht für jeden Spieler sichtbar wäre, das ist aber eher unwichtig.. ^^ Danke und Grüße |
27.02.2013, 12:16 | #3 (permalink) |
Registriert seit: 03.07.2012
Beiträge: 118
|
Mist, ich sehe gerade, ich hab's vielleicht ein bisschen missverständlich beschrieben, danke trotzdem schonmal für eine Antwort ^^
Also ich meinte damit, dass das halt mein Problem ist, dass es nicht jeder sehen kann - also es soll jeder den Leichensack, bzw. die Popups/Wertungsscheiben sehen können, was momentan leider nicht der Fall ist. Dachte auch schon daran, den Leichensack einfach zu erstellen (also createvehicle anstatt createvehiclelocal), aber dann ist mir die Parallele zu dem Killhouse-Problem in den Sinn gekommen und ich dachte man könnte 2 Fliegen mit einer Klappe schlagen, wenn ich mir Hilfe hole. Würde bei Fall-1 (Leichensack) nicht auch gehen, wenn die erste Zeile im Script if (isServer) exitWith {}; lauten würde? |
27.02.2013, 12:26 | #4 (permalink) |
Registriert seit: 02.04.2003
Ort: San Francisco
Beiträge: 1.919
|
Dann benutz definitiv createVehicle, das ist das sinnvollste.
hideObject hat immer nur dort Effekt, wo es ausgeführt wird. Dein Problem ist, dass die User-Action, die du mittels addAction dem Spieler gibst, auch nur bei diesem Spieler ausgeführt wird. Ergo wird nur auf dessen Rechner hideObject ausgeführt, auf den anderen verbundenen Rechnern nicht. Daher der unerwünschte Effekt. Bei dem anderen Script gehe ich davon aus, dass du einen Trigger benutzt, der dann auf allen verbundenen Rechnern feuert. Ergo wird hideObject auf allen Rechnern ausgeführt, und die Objekte auch überall sichtbar. Bei der addAction brauchst du nur hideObject durch einen entsprechenden createVehicle ersetzen, dann ist alles in Butter. Bei deinem Killhouse kannst du auch alles entsprechend ersetzen, allerdings an den Anfang des Scripts ein if (!isServer} exitWith {} um zu verhindern, dass das Script auf allen verbundenen Rechnern ausgeführt wird. |
27.02.2013, 13:44 | #5 (permalink) |
Registriert seit: 03.07.2012
Beiträge: 118
|
Ok, für das Leichensack-Problem werde ich dann wohl einfach createVehicle nutzen, das ist dann wohl wirklich das simpelste, danke dir!
Für das Killhouse-Problem habe ich dann evtl doch noch eine bessere Lösung, wenn es geklappt hat schreibe ich diese hier rein! Grüße |
06.03.2013, 19:31 | #6 (permalink) |
Registriert seit: 03.07.2012
Beiträge: 118
|
Ja, wollte nur kurz bescheid geben, dass jetzt alles wie erwünscht funktioniert.
Wollte erst über ne PublicVariable gehen, um das vielleicht auch Mal zu verstehen, aber du hattest natürlich schon recht ^^ Danke nochmal Terp! |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Suche Mitstreiter für AAS-Turnier "Armed Global Warfare (AGW)" | BCA Cat Toaster | Die Litfaßsäule | 36 | 30.10.2010 12:37 |