EventHandler Multiplayer Scripting
Moinsen
Probiere mich grade mit Multiplayer Scripting aus und habe Code in die Init von Popup Zielen geschrieben. Kurz gesagt, Eventhandler geaddet. Code:
this addEventHandler ["HitPart", {(_this select 0) select 0 setDamage 1; (_this select 0) select 0 animate ["terc", 1];}]; MPHit habe ich auch schon ausprobiert und hat den selben Effekt. Teste das Ganze mit zweiter Instanz von Arma 3. PS: Okay, MPHit fired anscheinend doch. Man muss aber statt das Ziel den Unterstand des Zieles treffen, weil es sonst wohl keinen Hit bzw. Schaden registriert. :rolleyes: Gibt es eine Möglichkeit, den HitPart im Multiplayer zu benutzen? Auch stellen sich bei dem Script PopUp Ziele nur langsam auf, wenn der Script vom Client und nicht vom Host ausgelöst wurde. Irgendeiner eine Idee, woran das liegt? Also im Script verschiebt er die Position mit 'setPos'. Die Ziele stehen außerhalb des Raumes. Geht man in den Raum rein, werden diese in den Raum gebeamt. Beim Host funktioniert es super schnell, man bekommt es gar nicht mit. Beim Client jedoch eher im Sekundentakt pro Ziel. Preprocessfile habe ich auch schon ausprobiert, keinen Effekt. Initialscript für den Raum. Code:
if (isServer) then { Code:
_hostiles = [t1,t2,t3,t4,t5]; Komme irgendwie nicht weiter. Hilfe wäre angesagt! :) |
HitPart funktioniert nur wenn der EH lokal bei der Unit bekannt ist die auch geschossen hat. Wenn du den EH in die Init des Objektes schreibst, ist der EH also nur so lange loakl so lange du es für dich auf deinem Rechner testest. Sobald du damit auf nen Dedi gehst ist i.d.r. das Objekt lokal zum Server. Damit ist der EH auch nur noch zum Server lokal und zu keinem Spieler mehr. Dann funktioniert der EH also nur noch für KI Schützen die ebenfalls lokal zum Server sind. Ob die Scheibe dann umkippt bleibt trotzdem fraglich weil nicht jede Animation automatisch global ausgeführt wird. (heißt die Scheibe wird für den Server wohl umkippen, bleibt dem Spieler aber verborgen)
Bei deinem Test funktioniert es aus diesem Grund nur bei dir. Host = Server. Du musst dafür sorgen, dass der EH bei jedem Spieler lokal für jedes Objekt angehangen wird. Die Objekt Init hilft dir hier nicht wirklich weiter. Grüße |
Okay, danke schon mal für die Erläuterung! Dachte die Init eines Objektes (platziert im Editor) ist für jeden Client sichtbar bzw. wird ausgeführt. Ich überlege mir mal ne Lösung.
Habe jetzt erstmal den Switch entfernt. Code:
_hostiles = [t1,t2,t3,t4,t5]; |
Zitat:
Ansonsten habe ich das Delay mit CreateVehicle wegbekommen. SetPos ist im MP einfach delayed, laut Bis Forums.. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:02 Uhr. |
Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias