Zitat von
Vienna
Verstehe ich das richtig, wenn ich mit publicVariable die Variable übers Netz sende, dann wird der EventHandler aktiviert, egal welchen Inhalt die Variable hat? Wenn das so ist, dann erübrigt sich natürlich das Rückstellen der Variablen (das wäre dann nur für die Bedingung bei Auslösern notwendig). Bis jetzt war ein Ereignis nur einleitbar, wenn sich der Inhalt der Variablen geändert hat.
Korrekt. Der publicVariable Eventhandler reagiert sobald die Variable von irgendwoher kommt. Das ist der entscheidene Vorteil.
Zitat von
Vienna
Ich habe kein Netzwerk, darum kann ich das nicht überprüfen.
Du brauchst kein Netzwerk dafür, starte einfach einen dedicated Server (arma_server.exe) auf Deinem Rechner und connecte auf dem.
Zitat von
Vienna
Weiters, wenn zwei Spieler gleichzeitig mit publicVariable die gleiche Variable übers Netz senden, dann wird der EventHandler auf unbeteiligten PCs zweimal, bei den beteiligten nur der vom anderen Sender aktiviert (da könnte es Probleme bei der "Eigenaktivierung" geben)?
Nö, gibts keine Probleme.
Du darfst allerdings in dem addPublicVariableEventhandler nicht direkt die Variable abfragen, sondern _this select 1. _this select 1 beinhaltet den Variablenwert.
Zitat von
Vienna
Ob das System einen oder hundert EventHandler überprüfen muss, wird sich wohl schon auf die Rechnerleistung auswirken. Ebenso sind Übertragungs- und Koordinierungsfehler bei größeren Datenmengen (z.B. Code) wahrscheinlicher. Hauptsächlich wenn sie von Clients erfolgen, die oft sehr unterschiedliche Übertragungsgeschwindigkeiten haben.
Nein, gibt keine nennenswerten Probleme in diesem Bereich, absolut nicht.
Zitat von
Vienna
Jedenfalls danke ich dir für deine Ausführungen. Wenn ich vielleicht nochmal eine MP-Mission schreibe, werde ich sicher noch mehr Tipps von dir brauchen.
Leider, leider ist der MP Bereich bei ArmA einer der schwierigsten, gerade weil es so gut wie keine Informationen dazu gibt.
Das meiste lernt man nur durch try and error. Mit ein paar Einheiten platzieren im Editor ist es im MP Bereich nicht getan.
Die meisten die sich daran versucht haben, scheitern schon am Lokalitätsproblem geschweige denn haben je eine Chance solche netten Dinge wie die public Variable Eventhandler überhaupt zu verstehen.
Xeno