DubFire

Kill message

14 posts in this topic

Hi guys please, something similar to "kill message" by GR8 ?, which no longer shared, for my new project of exile server, appreciate any help.

Share this post


Link to post
Share on other sites
1 hour ago, DubFire said:

Hi guys please, something similar to "kill message" by GR8 ?, which no longer shared, for my new project of exile server, appreciate any help.

Maybe this will help ?

 

Share this post


Link to post
Share on other sites
Advertisement

Thanks for answering. If I read that, so my question, because the script is not shared, wanted to know if there is something similar, maybe someone else could it developed and shared.

Share this post


Link to post
Share on other sites

If someone got it working and would kindly share it would you please PM me a link to a working version.

Thank you if possible :)

Share this post


Link to post
Share on other sites

Posted (edited)

Original Kill Message Mod

Updated ExileServer_object_player_event_onMpKilled.sqf for Exile 1.0.0

Spoiler

/**
 * ExileServer_object_player_event_onMpKilled
 *
 * Exile Mod
 * www.exilemod.com
 * © 2015 Exile Mod Team
 *
 * This work is licensed under the Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License. 
 * To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-nd/4.0/.
 */
 
private["_victim","_killer","_countDeath","_countKill","_killSummary","_killingPlayer","_killType","_oldVictimRespect","_newVictimRespect","_oldKillerRespect","_newKillerRespect","_systemChat","_modifyVictimRespect","_respectLoss","_perks","_minRespectTransfer","_respectTransfer","_perkNames","_killerStatsNeedUpdate","_newKillerFrags","_victimStatsNeedUpdate","_newVictimDeaths","_victimPosition","_weapon","_txt","_pic"];
_victim = _this select 0;
_killer = _this select 1;
if (!isServer || hasInterface || isNull _victim) exitWith {};
_victim setVariable ["ExileDiedAt", time];
if !(isPlayer _victim) exitWith {};
_victim setVariable ["ExileIsDead", true]; 
_victim setVariable ["ExileName", name _victim, true]; 
_countDeath = false;
_countKill = false;
_killSummary = [];
_killingPlayer = _killer call ExileServer_util_getFragKiller;
_killType = [_victim, _killer, _killingPlayer] call ExileServer_util_getFragType;
_oldVictimRespect = _victim getVariable ["ExileScore", 0];
_newVictimRespect = _oldVictimRespect;
_oldKillerRespect = 0;
if !(isNull _killingPlayer) then 
{
    _oldKillerRespect = _killingPlayer getVariable ["ExileScore", 0];
};
_newKillerRespect = _oldKillerRespect;
switch (_killType) do 
{
    default 
    {
        _countDeath = true;
        _systemChat = format ["%1 died for an unknown reason!", name _victim];
        _newVictimRespect = _oldVictimRespect - round ((abs _oldVictimRespect) / 100 * (getNumber (configFile >> "CfgSettings" >> "Respect" >> "Percentages" >> "unlucky")));
    };
    case 1:
    {
        _countDeath = true;
        _modifyVictimRespect = true;
        _systemChat = format ["%1 commited suicide!", name _victim];
        _newVictimRespect = _oldVictimRespect - round ((abs _oldVictimRespect) / 100 * (getNumber (configFile >> "CfgSettings" >> "Respect" >> "Percentages" >> "suicide")));
    };
    case 2:
    {
        _countDeath = true;
        _countKill = false;
        _systemChat = format ["%1 died while playing Russian Roulette!", name _victim];
        _newVictimRespect = _oldVictimRespect; 
        _victim call ExileServer_system_russianRoulette_event_onPlayerDied;
    };
    case 3:
    {
        _countDeath = true;
        _countKill = false;
        _systemChat = format ["%1 crashed to death!", name _victim];
        _newVictimRespect = _oldVictimRespect - round ((abs _oldVictimRespect) / 100 * (getNumber (configFile >> "CfgSettings" >> "Respect" >> "Percentages" >> "crash")));
    };
    case 4:
    {
        _countDeath = true;
        _countKill = false;

        _newVictimRespect = _oldVictimRespect - round ((abs _oldVictimRespect) / 100 * (getNumber (configFile >> "CfgSettings" >> "Respect" >> "Percentages" >> "npc")));
        _weapon = currentWeapon _killer;
        _txt = (gettext (configFile >> 'cfgWeapons' >> _weapon >> 'displayName'));
        _pic = (gettext (configFile >> 'cfgWeapons' >> _weapon >> 'picture'));
        if (_pic == "") then {
           _weapon = typeOf (vehicle _killer);
           _pic = (getText (configFile >> 'cfgVehicles' >> _weapon >> 'picture'));
           _txt = (getText (configFile >> 'cfgVehicles' >> _weapon >> 'displayName'));
        };
        _systemChat = format ["%1 was killed by a Rebel", name _victim];
        ["systemChatRequest", [format["%1 was killed by a Rebel! (%2m Distance)", (name _victim), floor(_victim distance _killer)]]] call ExileServer_object_player_event_killfeed;
        // KILL MESSAGES BY GR8
        Gr8s_kill_msg = ["Rebel", _pic, (name _victim), floor(_victim distance _killer), _txt, nil, nil];
        if (LogAIKills) then {format["logGr8Kill:%1:%2:%3:%4:%5:%6:%7", "Rebel", getPlayerUID _killer, (name _victim), getPlayerUID _victim, _txt, floor(_victim distance _killer), 0] call ExileServer_system_database_query_insertSingle;};
        if (ShowAIKills) then {publicVariable "Gr8s_kill_msg";};
    };
    case 5:
    {
        _countDeath = false;
        _countKill = false;
        _systemChat = format ["%1 was team-killed by %2!", name _victim, name _killingPlayer];
        _respectLoss = round ((abs _oldKillerRespect) / 100 * (getNumber (configFile >> "CfgSettings" >> "Respect" >> "Percentages" >> "friendyFire")));
        _newKillerRespect = _oldKillerRespect - _respectLoss;
        _killSummary pushBack ["FRIENDLY FIRE", -1 * _respectLoss];
    };
    case 6:
    {
        _countDeath = false;
        _countKill = false;
        _systemChat = format ["%1 was killed by %2! (BAMBI SLAYER)", name _victim, name _killingPlayer];
        _respectLoss = round ((abs _oldKillerRespect) / 100 * (getNumber (configFile >> "CfgSettings" >> "Respect" >> "Percentages" >> "bambiKill")));
        _newKillerRespect = _oldKillerRespect - _respectLoss;
        _killSummary pushBack ["BAMBI SLAYER", -1 * _respectLoss];
    };
    case 7:
    {
        _countDeath = true;
        _countKill = true;
        _perks = [_victim, _killer, _killingPlayer] call ExileServer_util_getFragPerks;
        _minRespectTransfer = getNumber (configFile >> "CfgSettings" >> "Respect" >> "minRespectTransfer");
        _respectTransfer = round ((abs _oldVictimRespect) / 100 * (getNumber (configFile >> "CfgSettings" >> "Respect" >> "Percentages" >> "frag")));
        if (_respectTransfer < _minRespectTransfer) then
        {
            _respectTransfer = _minRespectTransfer;
        };
        _newVictimRespect = _oldVictimRespect - _respectTransfer;
        _newKillerRespect = _oldKillerRespect + _respectTransfer;
        _killSummary pushBack ["ENEMY FRAGGED", _respectTransfer];
        if (_perks isEqualTo []) then
        {
            _killer setVariable ["ExileScore", _newKillerScore];
            _weapon = currentWeapon _killer;
            _txt = (gettext (configFile >> 'cfgWeapons' >> _weapon >> 'displayName'));
            _pic = (gettext (configFile >> 'cfgWeapons' >> _weapon >> 'picture'));
            if (_pic == "") then {
                _weapon = typeOf (vehicle _killer);
                _pic = (getText (configFile >> 'cfgVehicles' >> _weapon >> 'picture'));
                _txt = (getText (configFile >> 'cfgVehicles' >> _weapon >> 'displayName'));
            };
            _systemChat = format ["%1 was killed by %2!", name _victim, name _killingPlayer];
            
            Gr8s_kill_msg = [(name _killer), _pic, (name _victim), floor(_victim distance _killer), _txt, nil, nil];
            if (LogPlayerKills) then {format["logGr8Kill:%1:%2:%3:%4:%5:%6:%7", (name _killer), getPlayerUID _killer, (name _victim), getPlayerUID _victim, _txt, floor(_victim distance _killer), _overallRespectChange] call ExileServer_system_database_query_insertSingle;};
            if (ShowPlayerKills) then {publicVariable "Gr8s_kill_msg";};
        }
        else 
        {
            _perkNames = [];
            {
                _perkNames pushBack (_x select 0);
                _killSummary pushBack _x;
                _newKillerRespect = _newKillerRespect + (_x select 1);
            } 
            forEach _perks;
            _systemChat = format ["%1 was killed by %2! (%3)", name _victim, name _killingPlayer, _perkNames joinString ", "];
        };
    };
};
if !(isNull _killingPlayer) then 
{
    if !(_killSummary isEqualTo []) then 
    {    
        [_killingPlayer, "showFragRequest", [_killSummary]] call ExileServer_system_network_send_to;
    };
};
if !(isNull _killingPlayer) then 
{
    _killerStatsNeedUpdate = false;
    if (_countKill) then
    {
        _newKillerFrags = _killingPlayer getVariable ["ExileKills", 0];
        _newKillerFrags = _newKillerFrags + 1;
        _killerStatsNeedUpdate = true;
        _killingPlayer setVariable ["ExileKills", _newKillerFrags];
        format["addAccountKill:%1", getPlayerUID _killingPlayer] call ExileServer_system_database_query_fireAndForget;
    };
    if !(_newKillerRespect isEqualTo _oldKillerRespect) then 
    {
        _killingPlayer setVariable ["ExileScore", _newKillerRespect];
        _killerStatsNeedUpdate = true;
        format["setAccountScore:%1:%2", _newKillerRespect, getPlayerUID _killingPlayer] call ExileServer_system_database_query_fireAndForget;
    };
    if (_killerStatsNeedUpdate) then 
    {
        _killingPlayer call ExileServer_object_player_sendStatsUpdate;
    };
};
_victimStatsNeedUpdate = false;
if (_countDeath) then
{
    _newVictimDeaths = _victim getVariable ["ExileDeaths", 0];
    _newVictimDeaths = _newVictimDeaths + 1;
    _victim setVariable ["ExileDeaths", _newVictimDeaths];
    _victimStatsNeedUpdate = true;
    format["addAccountDeath:%1", getPlayerUID _victim] call ExileServer_system_database_query_fireAndForget;
};
if !(_newVictimRespect isEqualTo _oldVictimRespect) then 
{
    _victim setVariable ["ExileScore", _newVictimRespect];
    _victimStatsNeedUpdate = true;
    format["setAccountScore:%1:%2", _newVictimRespect, getPlayerUID _victim] call ExileServer_system_database_query_fireAndForget;
};
if (_victimStatsNeedUpdate) then 
{
    _victim call ExileServer_object_player_sendStatsUpdate;
};
if ((vehicle _victim) isEqualTo _victim) then 
{
    if !(underwater _victim) then 
    {
        if !(_victim call ExileClient_util_world_isInTraderZone) then 
        {
            _victim call ExileServer_object_flies_spawn;
        };
    };
};
if !(_systemChat isEqualTo "") then 
{
    if ((getNumber (configFile >> "CfgSettings" >> "KillFeed" >> "showKillFeed")) isEqualTo 1) then 
    {
        ["systemChatRequest", [_systemChat]] call ExileServer_system_network_send_broadcast;
    };
};
if !(_systemChat isEqualTo "") then 
{
    if ((getNumber (configFile >> "CfgSettings" >> "Logging" >> "deathLogging")) isEqualTo 1) then
    {
        "extDB2" callExtension format["1:DEATH:%1", _systemChat];
    };
};
_victimPosition = getPos _victim;
format["insertPlayerHistory:%1:%2:%3:%4:%5", getPlayerUID _victim, name _victim, _victimPosition select 0, _victimPosition select 1, _victimPosition select 2] call ExileServer_system_database_query_fireAndForget;
format["deletePlayer:%1", _victim getVariable ["ExileDatabaseId", -1]] call ExileServer_system_database_query_fireAndForget;
true

Install as normal but with new file. 

Edited by StonedReality
1 person likes this

Share this post


Link to post
Share on other sites
1 hour ago, MojoFlow said:

Is there any changes in the above script for 1.0.1?

 

Cheers!

Still works for me with no edits.

Share this post


Link to post
Share on other sites
12 hours ago, MojoFlow said:

Thanks!

I will work on implementing it on my server.

@DubFire This might also be something you're looking for.

Edited by kuplion

Share this post


Link to post
Share on other sites

Did someone manage to get this working again ? 

Because the onMPKilled Event changed !?

 

 

Share this post


Link to post
Share on other sites
Advertisement

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.