PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kill abfangen, um Killscreen anzuzeigen.


Acer90
01.02.2017, 22:13
Hallo Liebe Arma Community,

Ich möchte gerne meinen Killscreen(cutrsc) nach den Tot für 10 Sekunden abspielen, wie kann ich den kill abfangen?

Danke für eure Hilfe.

mfg: Ace

Drunken Officer
02.02.2017, 17:55
Abfangen.. am besten mit einer Schussweste.

Ansonsten mit dem Eventhandler Killed. Der löst aus, wenn die Einheit tot ist.

burns
02.02.2017, 20:43
Ist jetzt nicht super hilfreich, aber Celery hatte das Konzept "Killcam" in irgendeiner DM10 oder DM12 von sich schon ziemlich gut verwirklicht. Man sah allerdings auch wieso es bei dieser einen Mission blieb.

Name kann ich absolut nicht mehr sagen ... und mein Orientierungssinn auf Chernarus hat auch total gelitten :cry:

Acer90
02.02.2017, 23:25
Hey durch den eventhandler "Killed" wird der Screen im Singelplayer aufgerufen aber nicht mehr im Multiplayer. Evnthandler ist bei mir Serverseitig.

Über remoteexec rufe ich dann den Dialog auf. Geht soweit auch lokal klappt aber nicht im Multiplayer.

Hier mal der Code (on_Killed.sqf)

if(isPlayer _unit) then {
[_unit] remoteExec ["show_Killscreen", _unit];

};


mfg: Ace

Drunken Officer
02.02.2017, 23:57
hä?
Der Eventhandler, läuft je nach dem..

Gib z.b. einen GetIn-EH in die Init eines Fahrzeuges ein, und reagiert es bei jedem. Gibst du es in die InitPlayerLocal ein, reagiert es beim Spieler.

Wer soll denn den die Kill-Cam sehen? Der Getötete nehme ich an

Pfandgiraffe
03.02.2017, 11:53
Es liegt wohl daran, dass deine Funktion "show_Killscreen" falsch definiert ist. Wenn deine Funktion richtig definiert ist und es auch eine ist sollte das mal mind. so heißen: "fnc_show_killscreen".

Davon mal abgesehen würde die Funktion wenn sie erst einmal funktioniert bei jedem Spieler ausgeführt werden sobald ein Spieler stirbt. Verabschiede dich also von dem Gedanken das über einen MPKilled EH zu verarbeiten.
Ein lokaler Killed EH ist hier der Weg zum Ziel. (ohne Umwege) Führe den Killed EH lokal aus. Dann benötigst du auch keine zusätzliche Funktion und das remote-Gedöns.

Bsp.:
Schreibe in die initplayerlocal.sqf folgendes:
player addEventhandler ["killed", { ...dein Killcam Code... }];

Fertig. Sofern dein Code funktioniert war es das auch schon gewesen.



Grüße

Acer90
03.02.2017, 12:25
Hier setze ich meine Funktion:

show_Killscreen = compile preprocessFileLineNumbers "ranked\client\func\show_Killscreen.sqf";


Ich verwende InitPlayerServer.sqf, da der eventhandler noch andere Sachen durchführt.

Inhalt in der InitPlayerServer.sqf
_unit addEventHandler ["Killed",{_this call on_Killed;}];

Im Loaklen spiel erfolgt zumindesten eine anzeige, auf den Server geht aber nicht. Muss ich die Funktion anders definieren?

mfg: Ace

lucullus
03.02.2017, 15:40
Pfandgiraffe hat es doch schon gepostet.
Du willst einen lokalen Effekt herbeiführen und gehst damit über den Server, das ist Blödsinn.
Außerdem wird dein Eventhandler nicht auf dem Server auslösen, da mußt du schon den MPEventHandler nehmen.
Zitat: "Killed" and "Hit" eventhandlers are executed where given unit is local.
https://community.bistudio.com/wiki/addEventHandler

Acer90
03.02.2017, 21:48
Ok,

Eventhandler Funktionen 100 % Serverseitig! Denn ich mach ja noch andere Sachen mit den EH Killed.

Habe jetzt folgendes in die initPlayerLocal.sqf geschrieben

_unit addEventHandler ["Killed",{_this call show_Killscreen;}];


Das schein zu funktionieren.

Danke für eure Hilfe.