[DOUBLEPOST=1453762065][/DOUBLEPOST]Thats the code from:Code:[Oxide] 11:21 PM [Error] Failed to call hook 'OnEventPlayerDeath' on plugin 'LastManStanding v1.1.1' (NullReferenceException: Object reference not set to an instance of an object) [Oxide] 11:21 PM [Debug] at Oxide.Plugins.LastManStanding.OnEventPlayerDeath (.BasePlayer victim, .HitInfo hitinfo) [0x00000] in <filename unknown>:0 at Oxide.Plugins.LastManStanding.DirectCallHook (System.String name, System.Object& ret, System.Object[] args) [0x00000] in <filename unknown>:0 at Oxide.Plugins.CSharpPlugin.InvokeMethod (System.Reflection.MethodInfo method, System.Object[] args) [0x00000] in <filename unknown>:0 at Oxide.Core.Plugins.CSPlugin.OnCallHook (System.String name, System.Object[] args) [0x00000] in <filename unknown>:0 at Oxide.Core.Plugins.Plugin.CallHook (System.String hookname, System.Object[] args) [0x00000] in <filename unknown>:0
Code:void OnEventPlayerDeath(BasePlayer victim, HitInfo hitinfo) { var attacker = hitinfo?.Initiator as BasePlayer; ulong attackerID = attacker.userID; var PlayersLeft = LMSPlayers.Count; if (useThisEventLMS) { adddeathsstats(victim); addkillstats(attacker); EventManager.Call("LeaveEvent", victim); MessageAllPlayers(string.Format(lang.GetMessage("title", this) + lang.GetMessage("eventDeath", this), victim.displayName)); if (LMSPlayers.Count <= 1) { addKillPoints(attacker); Winner(attacker); return; } //addSurvivalPoints(); MessageAllPlayers(string.Format(lang.GetMessage("title", this) + lang.GetMessage("playersremaining", this), PlayersLeft.ToString())); } }
Failed to call hook (When player dies with a beartrap)
Discussion in 'Rust Development' started by TheMechanical97, Jan 25, 2016.
-
Wulf Community Admin
You'd need to check if the attacker is null.
-
how??
Code:if (attacker == null) { false } true -
Wulf Community Admin
Pretty much just check null before your code that deals with the attacker. If the code is all about the attacker, just check for null and return before the relevant code. -
Seems not working :C
Code:void OnEventPlayerDeath(BasePlayer victim, HitInfo hitinfo) { var attacker = hitinfo?.Initiator as BasePlayer; ulong attackerID = attacker.userID; var PlayersLeft = LMSPlayers.Count; if (useThisEventLMS) { adddeathsstats(victim); if (attacker == null) { addkillstats(attacker); EventManager.Call("LeaveEvent", victim); MessageAllPlayers(string.Format(lang.GetMessage("title", this) + lang.GetMessage("eventDeath", this), victim.displayName)); if (LMSPlayers.Count <= 1) { addKillPoints(attacker); Winner(attacker); return; } //addSurvivalPoints(); MessageAllPlayers(string.Format(lang.GetMessage("title", this) + lang.GetMessage("playersremaining", this), PlayersLeft.ToString())); } EventManager.Call("LeaveEvent", victim); MessageAllPlayers(string.Format(lang.GetMessage("title", this) + lang.GetMessage("eventDeath", this), victim.displayName)); MessageAllPlayers(string.Format(lang.GetMessage("title", this) + lang.GetMessage("playersremaining", this), PlayersLeft.ToString())); } } -
Wulf Community Admin
You've got it reversed. -
Uh, gg for me D:
