Search the Community
Showing results for tags 'kill feed'.
Found 2 results
-
While I am no beginner at programming in general, I am relatively new to SQF scripting for Arma 3. After 1000 hours I decided to finally toy around with the scripting side of things and I've already completely broken my first script. I apologize for any mistakes I may have made in advance, I am really new to this and I need some help solving this problem. At the moment the script is executing, however, it is not displaying the kills in the chat as it should be. I am realizing more and more that the YouTube video I learned this from is very inaccurate and riddled with errors. ----------initClient.sqf---------- // Executes all client scripts remotely and globally (with restrictions to client only if set in the script itself). [] remoteExec ["killFeedClient", 0]; ----------initServer.sqf---------- // Executes all client scripts remotely and server-sided. [] remoteExec ["killFeedServer", 2]; ----------killFeedClient.sqf---------- // Creates "killFeedClient" function to be executed in "initClient.sqf." killFeedClient = { { // Adding an event handler for the "Killed" action to every unit. _x addEventHandler ["Killed", { // Initializes all of the variables used in the formatting of the kill-feed statement. _unit = (_this select 0); _killedBy = (_this select 1); // Organizing and grouping all of the variables into a single array. deathInfo = [_unitName, _killedBy]; // Creating the "killFeedUpdate" public variable event handler. publicVariableServer "killFeedUpdate"; }]; } forEach allUnits; }; ----------killFeedServer.sqf---------- // Creates "killFeedServer" function to be executed in "initServer.sqf." killFeedServer = { // Only runs this script if the machine executing it is the server. if (isServer) then { // Listens for updates from the "killFeedUpdate" public variable event handler. "killFeedUpdate" addPublicVariableEventHandler { // Initalizes "_deathInfo" private array and sets it's value from the previously mentioned event handler. private "_deathInfo"; _deathInfo = (_this select 1); // If you are confused by why we used 1 and not 0 refer to "addPublicVariableEventHandler" documentation on the wiki. // Extracts each variable from the "_deathInfo" private array. _unit = (_deathInfo select 0); _killedBy = (_deathInfo select 1); // Grabs some more data by passing the previously mentioned variables through a variety of functions. _unitName = name _unit; _killedByName = name _killedBy; _distance = _unit distance _killedBy; // Formats the kill-feed statement to be displayed in the game chat. _killFeedStatement = format ["%1 was killed by %2. (%3m)", _unitName, _killedByName, _distance]; // Displays the kill-feed statement in the game chat as if it were being called in by the killer. _killedBy globalChat _killFeedStatement; }; }; };
-
Considering that a few individuals have recently been trying to make a kill feed, I though I would share a code snippet which has been laying about on my computer HALs_fnc_killFeed (snippet) image This kill feed uses the EntityKilled MEH and, for the ui, uses crtlCreate. Code (example init.sqf): To add grenade detection to a unit: A few things to note: This code registers road kills, vehicle kills (including turret kills), infantry weapon kills, suicide etc. Grenades, EGLM, Mines etc. are only registered if the unit has a handleDamage eventhandler which checks for the last projectile which inflicted damage. Automatically registers spawned units as well as units placed in the editor. UAVs mess up the kill feed. Vehicles are registered as the killer if they blow a unit up. Grenades, EGLM, Mines etc. have a rudimentary implementation (simulation of the last projectile (which hit the unit) is used). This does not work in multiplayer (I haven't bothered to work it out). Any improvements are welcome. I had a few ideas for making this multiplayer friendly but sadly I haven't had the time to try them out.