DeathNotes

Broadcasts players and animals deaths to chat

Total Downloads: 65,994 - First Release: Feb 14, 2015 - Last Update: May 13, 2018

4.98519/5, 270 likes
  1. Oh... Okay

    I was thinking that u want ti uodate it with new latest fresh build of rust... :(
     
  2. The rust just updated, I would still have to wait for an Oxide update, and then check if there was anything on the update that would screw the plugin. But still I'm still planning how I am doing things on Death Notes, like I said before I don't like how the code looks right now, I may warn just now that there will be big changes into 1.2.0.

    And you will be able to disable a specific message with false:

    i.e: "BLEEDING": false (instead of the message)
     
  3. Best :p
     
  4. will this ever show snap rap and c4 deaths?
     
  5. SkinN for C4 you can just get it when you see a Rust.DamageType.Explosion or if: HitInfo.Initiator has type: TimedExplosive
    as for BearTrape it would be: Rust.DamageType.Bite or HitInfo.Initiator has type: BearTrap
     
  6. @Reneb I actually find it simpler to check death types this way:
    Code:
    ...
    # GET THE DEAH TYPE
    deathtype = str(hitinfo.damageTypes.GetMajorityDamageType()).upper()# DEATHTYPE: EXPLOSION (TimedExplosive aka C4)
    if deathtype == 'EXPLOSION' and settings['DISPLAY EXPLOSION DEATHS']:    # SEND MESSAGE
        ...# DEATHTYPE: STAB (Knife and spears, and sap trap)
    elif deathtype == 'STAB':    # DEATH BY TRAP
        if 'BearTrap' in str(attacker) and settings['DISPLAY TRAPS DEATHS']:    # SEND MESSAGE
        ...    # DEATH BY SPEARS/KNIFE
        elif settings['DISPLAY PLAYER KILL MESSAGES']:    # SEND MESSAGE
        ......
    It seems to take less code.
    In this case the C4 death type will show as 'explosion', hitinfo.Initiator would have the whole entity stuff.
     
    Last edited by a moderator: Feb 18, 2015
  7. SkinN õ.Õ'.|. updated Death Notes with a new update entry:

    Death Notes | New Rust Update Fixes


    [DOUBLEPOST=1424222794][/DOUBLEPOST]
    It has now been fixed! The messages will now show.
     
  8. @SkinN õ.Õ'.|. my portuguese speaker bro'

    Remove the lines:
    print(str(hitinfo.damageTypes.GetMajorityDamageType()).upper())
    print(hitinfo.Initiator)

    It only prints info in the logs that we dont need...

    Tnx for the plugin ;)
     
  9. SkinN õ.Õ'.|. updated Death Notes with a new update entry:

    Death Notes | Minor Tweak


    [DOUBLEPOST=1424232806][/DOUBLEPOST]
    Sorry about that, I use them for debug and forgot to remove them. Thanks for reporting.
     
  10. I found an issue with your melee detection.
    Bone Knife, Stone Hatchet and Hatchet aren't being detected by your plugin.

    Bone Knife should be STAB and hatchet would be something like CUT. You could define the difference by the weapon name.
    [DOUBLEPOST=1424234680][/DOUBLEPOST]ahh bows are also "hunting(clone)" now
    [DOUBLEPOST=1424239307][/DOUBLEPOST]On BULLET this solved the issue for the Hunting Bow:
    Code:
    elif deathtype == 'BULLET' and settings['DISPLAY PLAYER KILL MESSAGES'] or weapon == 'bow' or weapon == 'hunting(Clone)':
    now for the Bone Knife and the Hatchets you must create an exception to detect the weapon 'melee' and then give it a unique msg, as the CUT that I sugested before.

    Adding SLASH will solve the issues with the 3 weps:

    Code:
    elif deathtype == 'SLASH' and settings['DISPLAY PLAYER KILL MESSAGES']:            # IS PLAYER CONNECTED?
                if victim.IsConnected(): msg = msgs['SLASH']
                else: msg = msgs['SLASH SLEEP']            # GET DEAHT INFO AND MAKE MESSAGE REPLACEMENTS
                msg = msg.replace('{victim}', victim.displayName)
                msg = msg.replace('{attacker}', attacker.displayName)
                msg = msg.replace('{weapon}', weapon)
                return (msg, victim_pos, hitinfo)
    
    Then add "SLASH" and "SLASH SLEEP" deaths in the config.
     
    Last edited by a moderator: Feb 18, 2015
  11. Waiting for...

     
  12. I have the following spamming console. Welcome message/connect/disconnect work but nothing else.

    [Oxide] 6:20 PM [Error] Failed to initialise plugin notifier (ArgumentException: An element with the same key already exists in the dictionary.)
    [Oxide] 6:20 PM [Debug] at System.Collections.Generic.Dictionary`2[System.String,Oxide.Rust.Libraries.Command+ChatCommand].Add (System.String key, ChatCommand value) [0x00000] in <filename unknown>:0
    at Oxide.Rust.Libraries.Command.AddChatCommand (System.String name, Oxide.Core.Plugins.Plugin plugin, System.String callbackname) [0x00000] in <filename unknown>:0
    at (wrapper delegate-invoke) System.Action`4<System.Action`3<string, Oxide.Core.Plugins.Plugin, string>, string, Oxide.Core.Plugins.Plugin, string>:invoke_void__this___Action`3<string, Plugin, string>_string_Plugin_string (System.Action`3<string, Oxide.Core.Plugins.Plugin, string>,string,Oxide.Core.Plugins.Plugin,string)
    at Microsoft.Scripting.Interpreter.ActionCallInstruction`4[System.Action`3[System.String,Oxide.Core.Plugins.Plugin,System.String],System.String,Oxide.Core.Plugins.Plugin,System.String].Run (Microsoft.Scripting.Interpreter.InterpretedFrame frame) [0x00000] in <filename unknown>:0
    at Microsoft.Scripting.Interpreter.Interpreter.Run (Microsoft.Scripting.Interpreter.InterpretedFrame frame) [0x00000] in <filename unknown>:0
     
  13. redone, [Oxide] 6:20 PM [Error] Failed to initialise plugin notifier, not Death Notes!
     
  14. Oh. my bad. wrong plugin ;p
     
  15. "An element with the same key already exists in the dictionary" means that other plugin is already using the same "command/function" as another one what was already loaded.
    Since SkinN develops Notifier and DeathNotes I suggest u guys to disable DeathNotes if u use Notifier, since Notifier does more and notify death also.
     
  16. wow very cool thx for the updat!. also when people get killed by a torch it says Pump shotgun
     
  17. No, death notification was removed from Notifier v2.0.0 and newest.
     
  18. You will have to wait for version 1.2.0.
    This new Rust version is all messed up, about the weapons. They have change almost all the death types from all the weapons, I just tweaked what I could for now.
    I will be working on 1.2.0 tonight, should be ready by Thursday.
    [DOUBLEPOST=1424245902][/DOUBLEPOST]
    You are totally wrong, both Notifier and Death Notes are my plugins. Player Death Notifications feature was removed from Notifier on Notifier's version 2.0.0, Death Notes is the feature's standalone plugin. This said be clear that Notifier has NOTHING to do with Death Notes, neither one interfere with each other in any case.

    All the problems Death Notes has at moment it's due to the new Rust update changes, you will have to be patient until I release a stable version.
     
    Last edited by a moderator: Feb 18, 2015
  19. Ok SkinN. When I read "Standalone" in your Overview I thought that your Notifier would have the same function... anyway. Did you saw my solutions that I posted in a upper comment?

    I'm using then here without issues.
     
  20. @SkinN õ.Õ'.|.
    found some little stuff also, dunno what it really does but i guess it could help you :)
    hitinfo.Weapon.LookupShortPrefabName() => should give you the name of the weapon.

    if(hitinfo.HitBone > 0)
    {
    StringPool.Get(hitinfo.HitBone);
    }

    also seems like that for all object kills there is an easier way.
    Here is what they use in rust:
    Code:
    public override void Die(HitInfo info = null)
    {
        Assert.Test(base.isServer, "Die called on client!");
        if (!this.IsDead())
        {
            Interface.CallHook("OnEntityDeath", new object[] { this, info });
            this.EndSleeping();
            this.EndLooting();
            ServerPerformance.deaths += (ulong) 1L;
            base.RemoveFromTriggers();
            this.UpdatePlayerCollider(false, false);
            this.ChangePlayerState(PlayerState.Type.Dead, true);
            if (this.belt != null)
            {
                Vector3 vector = new Vector3(Random.Range((float) -2f, (float) 2f), 0.2f, Random.Range((float) -2f, (float) 2f));
                this.belt.DropActive((Vector3) (vector.normalized * 3f));
            }
            LootableCorpse corpse = base.DropCorpse("player/player_corpse") as LootableCorpse;
            ItemContainer[] source = new ItemContainer[] { this.inventory.containerMain, this.inventory.containerWear, this.inventory.containerBelt };
            corpse.TakeFrom(source);
            corpse.playerName = this.displayName;
            corpse.playerSteamID = this.userID;
            corpse.SendNetworkUpdate(NetworkQueue.Update);
            this.inventory.crafting.CancelAll();
            this.inventory.Strip();
            string message = string.Empty;
            string msg = string.Empty;
            if (info != null)
            {
                BasePlayer player = info.Initiator.ToPlayer();
                if (player != null)
                {
                    if (player == this)
                    {
                        message = this.displayName + " was killed by " + base.lastDamage;
                        msg = "You died: killed by " + base.lastDamage;
                    }
                    else
                    {
                        message = this.displayName + " was killed by " + player.displayName;
                        msg = "You died: killed by " + player.displayName;
                    }
                }
                else if (info.Initiator != null)
                {
                    message = this.displayName + " was killed by " + info.Initiator.LookupPrefabName();
                    msg = "You died: killed by " + info.Initiator.LookupPrefabName();
                }
                else
                {
                    message = this.displayName + " was killed by unknown!";
                    msg = "You died: killed by unknown!";
                }
            }
            else
            {
                object[] objArray1 = new object[] { this.displayName, " died (", base.lastDamage, ")" };
                message = string.Concat(objArray1);
                msg = "You died: " + base.lastDamage.ToString();
            }
            Debug.Log(message);
            this.ConsoleMessage(msg);
            this.LifeStoryLogDeath(info);
            this.LifeStoryEnd();
            if (base.net.connection == null)
            {
                base.Invoke("KillMessage", 1f);
            }
            else
            {
                this.SendRespawnOptions();
            }
        }
    }
    
    hope all of this can help you :)