![]() |
#1 (permalink) |
![]() Registriert seit: 08.08.2015
Beiträge: 46
|
![]()
Hola.
Wie immer ein Problem mit dem lieben ArmA. Ich habe eine Funktion. In der wird ein Objekt von A nach B bewegt. In mehreren Schritten. Singleplayer: prima. Multiplayer: prima. Dedicated: nix. Soweit ja eigentlich alles wie immer, am Dedicated klappt nix. Das würde ich ja noch einsehen, und deprimiert wie immer (warum heißt es eigentlich nicht Depressing Server? Würde besser passen.) von dannen ziehen. Aber jetzt kommts: Wenn ich auf dem Dedi mit Zeus ein neues Objekt "live" erstelle und dann EXAKT die SELBE Funktion innerhalb von Zeus darauf anwende, dann klappt alles wunderbar. Das Objekt wird korrekt von A nach B bewegt. Was kann denn das sein? Manchmal verhält sich das Zeuchs einfach so dermaßen irrational, dass man in das Mousepad beißen will (wenn das nicht aus Metall wäre ...) Es sieht ja irgendwie so aus, als ob er bei der Initialisierung des Objekts irgendeinen Stress hat und damit dann jegliche Bewegung versaut, während er keinerlei Probleme mit einem neuen, frisch eingefügten Objekt hat. Hilfe?! ![]() |
![]() |
![]() |
#3 (permalink) |
![]() Registriert seit: 08.08.2015
Beiträge: 46
|
![]()
Hi Burns,
ich hab' das aus einem Trigger aus aufgerufen. Das Ding ist: Wenn ich das Objekt per Skript erzeuge, geht es auch. Ich kann mir nur vorstellen, dass beim Spawnen am Anfang der Mission diese vermalledeite Scheibe (es geht um Zielscheiben) irgendwas internes initialisiert (vielleicht sowas wie Score-Speicherung o.ä.) und dann damit nicht mehr richtig bewegbar ist. |
![]() |
![]() |
#4 (permalink) |
![]() ![]() Registriert seit: 15.05.2011
Beiträge: 1.109
|
![]()
Wenn du eine Lösung hast, sag bescheid.
Ich lasse auch auf einer Schießbahn eine Zielscheibe von links nach rechts laufen. Editor, SP, MP (HOST) -> funktioniert MP (Dedi) funktioniert nicht
__________________
Bewegende Momente bei ArmA 3 |
![]() |
![]() |
#5 (permalink) |
![]() Registriert seit: 08.08.2015
Beiträge: 46
|
![]()
Hi Drunken,
du meinst vermutlich mit "Lösung" die Situation, dass ALLE Spieler alle Scheiben sehen. Das weiß ich noch nicht, da ich schon als Einzelspieler auf dem Dedi Probleme hatte, dass die Scheiben sich richtig bewegen. Das läuft inzwischen, aber ich bin noch nicht fit mit RemoteExec und habe nicht so wirklich Plan, wie ich das anstellen soll. Das Problem ist, dass man die Scheibe NICHT auf dem Server spawnen darf, ich denke das ist das Problem. Ich verwende einen AddAction dafür und wenn ich die Lokalität richtig verstanden habe, spawne ich die Scheibe dann lokal und bewege sie auch lokal. Ich sehe sie sich dann korrekt bewegen, weiß aber nicht, ob die anderen sie überhaupt sehen (soweit bin ich noch nicht). In der kalt lächelnden Theorie müsste ein Spieler sie spawnen und dann das Ergebnis allen anderen Spielern mitteilen. Keine Ahnung ob das mit Code:
[params] remoteExec ['fnc', -2, true] Ich hätte es auch lieber, dass die Scheibe von Anfang an dasteht (Atmo), aber das klappt wie gesagt nicht, da man die im Editor platzierten Objekte ja vermutlich auf dem Server spawnt? |
![]() |
![]() |
#6 (permalink) |
![]() Registriert seit: 08.08.2015
Beiträge: 46
|
![]()
Eine Möglichkeit wäre vielleicht, eine Scheibe im Editor zu platzieren, eine globale Variable zu vergeben und diese dann
a) von ihren Werten her zu kopieren: _pos, _dir, _varname, _classname b) zu löschen c) an _pos dann eine neue Scheibe zu spawnen Aber keine Ahnung, wie man einen Variablennamen kopiert. Geht sowas mit get-/setVariable? |
![]() |
![]() |
#7 (permalink) |
![]() ![]() Registriert seit: 15.05.2011
Beiträge: 1.109
|
![]()
Also das mit dem Addaction ist ist halbe Wahrheit.
Prinzipell wird ein Addaction lokal ausgeführt. Jetzt kommt es ganz auf den Befehl an. Hat dieser einen globalen Effekt oder nicht. Bedeutet, das eine Erzeugung eines Objektes einen Globalen Effekt hat, und somit JEDER dieses Objekt sieht. Zur Zeit sind mir nur Lichtpunkte als Ausnahme bekannt. Würdest du ein Objekt ohne Begrenzung (z.B. isServer) erstellen, dann wird es Server+Anzahl Clienten erstellt. Auch ist es wichtig, ob das Argument lokal sein muss oder global. Beliebter Effekt ist z.B. des "Ergeben" eines Gegners. Via Addaction anklicken. Im SP wunderbar im MP nix. Warum, Addaction wird Lokal zum Clienten ausgeführt. Allerdings möchte Playmove das das Kommando lokal zum Besitzer ausgeführt wird, also meistens der Server.
__________________
Bewegende Momente bei ArmA 3 |
![]() |
![]() |
#8 (permalink) |
![]() Registriert seit: 08.08.2015
Beiträge: 46
|
![]()
- addAction ist global / lokal
- createVehicle global / global - setPos global / global Das würde dann ja bedeuten, dass er die Scheibe für alle sichtbar erzeugt und diese dann auch für alle sichtbar verschiebt, und das Ganze nur einmal macht (weil es durch AddAction ausgelöst wird). Richtig? |
![]() |
![]() |
#9 (permalink) |
![]() Registriert seit: 08.08.2015
Beiträge: 46
|
![]()
Wie kann ich denn einem frisch erzeugtem Objekt eine globale Variable zuweisen, die in einer lokalen Variable gespeichert ist?
Ich bräuchte sowas: _varName = globVar; _trg = "classname" createVehicle _pos; _varName = _trg; Sinn der Sache: Ich würde dem frisch erzeugten Objekt gerne eine globale Variable (bzw. einen Variablen-Namen) verpassen, damit ich sie in anderen Skripten ansprechen kann (z.B. das gerade erzeugte Objekt wieder löschen). Dabei will ich das Skript aber mehrmals nutzen können (um z.B. mehrere Scheiben zu spawnen) - daher scheidet eine globale Variable für alles aus. Vielmehr müsste ich im Funktionsaufruf einen Parameter übergeben, wie die Scheibe heißt, damit ich sie dann ansprechen kann. Oder ist das wieder viel zu kompliziert gedacht? Ziel: - In einem Laptop kann ich pro Schienensystem eine Scheibe spawnen - Mit einem Trigger (oder weiterem Befehl im Laptop) kann ich sie bewegen - Mit noch einem Befehl/Trigger kann ich die Scheibe wieder löschen Das Ganze soll dann z.B. für ein dutzend Scheiben auf dem Platz funktionieren. |
![]() |
![]() |
#11 (permalink) |
![]() Registriert seit: 08.08.2015
Beiträge: 46
|
![]()
Also ich habe es jetzt soweit, dass auf dem Dedicated der Spieler, der die Aktion (Scheibenbewegung) auslöst, sieht, wie die Scheibe sich bewegt. Das funktioniert wie gewollt.
Problem: Andere Spieler sehen das Übliche: Die Scheibe ruckelt kurz und man sieht sie dann nur in 1-2 Zwischenschritten, wenn überhaupt, meist bei A und B. Ich schätze mal, dass das schwer daran liegt, dass der AddAction lokal ausgeführt wird. Aber auch RemoteExec bringt momentan keine Abhilfe, wobei ich bei den ganzen mehrfach verschachtelten Lokalitäten langsam anfange, den Überblick zu verlieren ![]() Ich habe folgende Befehle: - createVehicle (global) - setPos (global / global) - getPos (global) die über AddAction (global / lokal) aufgerufen werden. Damit nun alle Spieler alles sehen und für alle das Gleiche abläuft, bräuchte ich ja mehr oder minder einen Aufruf, der Folgendes tut: - auf dem Server das Skript starten und das Ergebnis auf jedem Client anzeigen Denn die Erzeugung und Bewegung sind ja global, sprich: ALLE sehen das Ergebnis, also darf nur eine Maschine die Funktion aufrufen, oder wie muss ich mir das vorstellen? Sinngemäß wäre das dann der Aufruf im AddAction (lokal zu einem Client eines Spielers): Code:
object addAction ["Target create and move", "[params] remoteExec ['fnc', 2, true];", "true", 5, false, ""]; Wo liegt denn da der Denkfehler? |
![]() |
![]() |
#12 (permalink) |
![]() ![]() ![]() ![]() Registriert seit: 13.04.2003
Ort: Monerica
Alter: 41
Beiträge: 32.947
|
![]()
Ich sehe Ähnlichkeit zur Tontaubenmission die zuerst in ArmA2 super aufm Dedi funktionierte, bis irgendein Patch genau das daraus gemacht hat was du schilderst, nämlich das die Tonscheiben plötzlich in größeren Schritten umherflogen.
Das war der Tontaubenwerfer aus der 1. A2 Kampagnenmission, stand iwo aufm Träger rum. Liess sich einfach rüberkopieren wenn ich nicht spinne, musste nix dran gebastelt werden für die MP Mission. Möglicherweise ist die ganze Funktion umgerissen worden, wäre ja leider keine Neuheit. |
![]() |
![]() |
#13 (permalink) |
![]() ![]() ![]() Registriert seit: 11.03.2005
Ort: HH
Alter: 52
Beiträge: 1.930
|
![]()
Ich bin ja nun auch schon länger nicht mehr im ArmA-Geschäft, aber ich habe in Erinnerung, das selbst Helikopter übelste Gummibandeffekte auf dedizierten Servern hatten... und da soll jetzt eine Zielscheibe sauber für alle Clients sichtbar moven? Hat irgendwie was vom Glauben an den Weihnachtsmann...
![]() |
![]() |
![]() |
#14 (permalink) |
![]() ![]() |
![]()
Eine Beispielmission würde helfen zu helfen.
Grüße
__________________
Niemand hat die Absicht eine Tüte zu bauen! ![]() ___<<<A3 Wounding System>>>___ |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
![]() |
||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Flugzeug spawn mit Wegpunkt - Skriptproblem? | skydiv | Editing & Scripting | 4 | 12.11.2015 05:57 |
Brillen und Kopfbedeckung Saven? | Bahlramir | Editing & Scripting | 0 | 13.05.2014 22:45 |
Funktion wird nur beim ersten Durlauf korrekt abgearbeitet | SmokyJoey | Editing & Scripting | 0 | 08.12.2013 11:37 |
Revive Script Problem | wArDoG81 | Editing & Scripting | 8 | 13.05.2011 23:35 |
Hilfe bei Funktion um Gegnerspawns zu erstellen | Ante G. | Editing & Scripting | 10 | 25.11.2010 18:26 |