Armed-Assault.de Twitter
 
 
Themen-Optionen Ansicht
Alt 06.08.2017, 21:01   #1 (permalink)
JSR
500 Beiträge1000 Beiträge
 
Registriert seit: 29.10.2008
Beiträge: 1.192
Standard 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];}];
Da diese ja auf jedem PC im Netzwerk geladen werden (da ja init), hätte ich gedacht, dass der Eventhandler für jeden Schützen Effekt hat... also das Ziel unten bleibt, egal wer es trifft. Das passiert jedoch nicht. Nur ich als Host erziele den Effekt.

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.

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 {
	[] execVM "scripts\room1\setTargets.sqf";
};
setTargets.sqf
Code:
_hostiles = [t1,t2,t3,t4,t5];
_hostages = [h1,h2,h3,h4];
_positions = [rs1, rs1_1, rs1_2,rs1_3,rs1_4];

for "_i" from 0 to 4 do {
	_random = random [0,5,10];
	_hostile = selectRandom _hostiles;
	_hostage = selectRandom _hostages;
	_position = selectRandom _positions;
	_dir = 0;
	switch (_position) do { 
			case rs1 : {_dir = 180}; 
			case rs1_1 : {_dir = 50}; 
			case rs1_2 : {_dir = 95}; 
			case rs1_3 : {_dir = 95}; 
			case rs1_4 : {_dir = 60}; 
			default {_dir = 95}; 
		};

	if (_random > 5) then {
		_hostage setPos (getPos _position);
		_hostage setDir _dir;
		_hostage setDamage 0; _hostage animate["terc", 0];
		_hostages deleteAt (_hostages find _hostage);
	
	} else {
		_hostile setPos (getPos _position);
		_hostile setDir _dir;
		_hostile setDamage 0; _hostile animate["terc", 0];
		_hostiles deleteAt (_hostiles find _hostile);
	};

	_positions deleteAt (_positions find _position);
	
	
};

Komme irgendwie nicht weiter. Hilfe wäre angesagt!

Geändert von JSR (06.08.2017 um 21:51 Uhr).
JSR ist offline  
Alt 06.08.2017, 22:00   #2 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Pfandgiraffe
 
Registriert seit: 16.09.2008
Ort: Berlin
Alter: 38
Beiträge: 1.737
Pfandgiraffe eine Nachricht über ICQ schicken Pfandgiraffe eine Nachricht über Skype™ schicken
Standard

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
__________________
Niemand hat die Absicht eine Tüte zu bauen!
​​​​​​​
___<<<A3 Wounding System>>>___
Pfandgiraffe ist offline  
Alt 06.08.2017, 22:05   #3 (permalink)
JSR
500 Beiträge1000 Beiträge
 
Registriert seit: 29.10.2008
Beiträge: 1.192
Standard

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];
_hostages = [h1,h2,h3,h4];
_positions = [rs1, rs1_1, rs1_2,rs1_3,rs1_4];

for "_i" from 0 to count _positions -1 do {
	_random = random [0,5,10];
	_hostile = selectRandom _hostiles;
	_hostage = selectRandom _hostages;
	_position = selectRandom _positions;
	_dir = getDir _position;
	
	if (_random > 5) then {
		_hostage setPos (getPos _position);
		_hostage setDir _dir;
		_hostage setDamage 0; _hostage animate["terc", 0];
		_hostages deleteAt (_hostages find _hostage);
	
	} else {
		_hostile setPos (getPos _position);
		_hostile setDir _dir;
		_hostile setDamage 0; _hostile animate["terc", 0];
		_hostiles deleteAt (_hostiles find _hostile);
	};

	_positions deleteAt (_positions find _position);
};

Geändert von JSR (07.08.2017 um 02:29 Uhr).
JSR ist offline  
Alt 07.08.2017, 11:23   #4 (permalink)
JSR
500 Beiträge1000 Beiträge
 
Registriert seit: 29.10.2008
Beiträge: 1.192
Standard

Zitat von Pfandgiraffe Beitrag anzeigen

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)

Getestet, funktioniert. Also die Animation wird überall abgespielt. Problem ist halt nur, dass man das Ziel unten treffen muss, am Unterstand, statt das eigentliche Ziel. Weil halt sonst kein Schaden registriert wird. Muss mal "Hit" austesten, bin aber auch grade nicht zuhause. Geht also erst heute Abend.

Ansonsten habe ich das Delay mit CreateVehicle wegbekommen. SetPos ist im MP einfach delayed, laut Bis Forums..
JSR ist offline  
 


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Total War (Sammelthread) Tom2e Sonstige Genres & Themen 184 08.12.2016 19:30
Fraktionen verfeinden - Eventhandler MPKilled Loooci Editing & Scripting 13 27.02.2015 20:16
Beta-Patch für OpA erschienen det99 Community 1429 18.07.2014 17:51
Eventhandler im MP JoeJoe87577 Editing & Scripting 18 12.03.2013 10:08
Problem mit Eventhandler Moerderhoschi Editing & Scripting 3 04.11.2010 19:46


Kontakt - HX3.de - Archiv - Nach oben

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