Solved Server crashing every hour or so

DreTaX

Probably knows the answer...
Administrator
Jun 29, 2014
4,093
4,784
113
At your house.
github.com
I couldn't paste it here nor on pastebin because it has to many words...

Anyways, i've uploaded the files onto file dropper: http://www.filedropper.com/log01012015

it's the txt log.
[1/1/2015 3:58:34 PM] [Error] [Jint] Error invoking function On_PlayerConnected in PlayerLog plugin.

PlayerLog plugin has errors which I noticed also 1 hour ago. You can use http://fougerite.com/resources/ididentifier.22/ instead of that.

[1/1/2015 3:58:24 PM] [Debug] [IronPython] An error occurred in: Advertise plugin while calling method: testtimerCallback

I think you are free to delete the Advertiser plugin unless you use It.

[1/1/2015 3:57:43 PM] [Error] [Magma] Error invoking function pingcontrolCallback in DHPK plugin.

I don't know what's this, but this seems to be the main source of the flood.


DeathMSG seems to be having errors too. Which version are you using? Could you post me your config?


[1/1/2015 3:56:26 PM] [Debug] [IronPython] An error occurred in: DeathMSG plugin while calling method: On_PlayerKilled
IronPython.Runtime.Exceptions.ValueErrorException: Invalid integer literal
at IronPython.Runtime.LiteralParser.ParseIntegerSign (System.String text, Int3


1/1/2015 3:51:44 PM] [Debug] [IPModule] Loading plugin EasyRemove.
[1/1/2015 3:51:44 PM] [Exception] [ IPModule->LoadPlugin | IPModule->LoadPlugins | IPModule->ReloadPlugins | IPModule->Initialize | ModuleContainer->Initialize | ModuleManager->LoadModules | Bootstrap->Start | ]
System.IO.IOException: Could not add reference to assembly Pluton

EasyRemove is a pluton Plugin. Look for DestroySystem to replace It


[1/1/2015 12:06:33 PM] [Error] [Magma] Error invoking function On_PlayerHurt in ShowDamage plugin.
[1/1/2015 12:06:33 PM] [Exception] [ Plugin->Invoke | Plugin->OnPlayerHurt | Hooks->PlayerHurt | HumanBodyTakeDamage->Hurt | TakeDamage->HurtShared | TakeDamage->Hurt | HostileWildlifeAI->StateSim_Attack | HostileWildlifeAI->SimAIState | BasicWildLifeAI->ManagedUpdate | Data->Think | WildlifeManager->Update | ]
System.NullReferenceException: Object reference not set to an instance of an object
at Fougerite.Player.get_Name () <0x0001a>

Ehh...
 

h0wHigh

Retired Staff
Retired Staff
Aug 5, 2014
103
9
18
That DHPK plugin is a High pink kicker from Magma, i used it to but produced errors so i had to delete it.
 

JumPayy

Member
Member
Dec 20, 2014
30
0
6
54
California, United States of America
[1/1/2015 3:58:34 PM] [Error] [Jint] Error invoking function On_PlayerConnected in PlayerLog plugin.

PlayerLog plugin has errors which I noticed also 1 hour ago. You can use http://fougerite.com/resources/ididentifier.22/ instead of that.

[1/1/2015 3:58:24 PM] [Debug] [IronPython] An error occurred in: Advertise plugin while calling method: testtimerCallback

I think you are free to delete the Advertiser plugin unless you use It.

[1/1/2015 3:57:43 PM] [Error] [Magma] Error invoking function pingcontrolCallback in DHPK plugin.

I don't know what's this, but this seems to be the main source of the flood.


DeathMSG seems to be having errors too. Which version are you using? Could you post me your config?


[1/1/2015 3:56:26 PM] [Debug] [IronPython] An error occurred in: DeathMSG plugin while calling method: On_PlayerKilled
IronPython.Runtime.Exceptions.ValueErrorException: Invalid integer literal
at IronPython.Runtime.LiteralParser.ParseIntegerSign (System.String text, Int3


1/1/2015 3:51:44 PM] [Debug] [IPModule] Loading plugin EasyRemove.
[1/1/2015 3:51:44 PM] [Exception] [ IPModule->LoadPlugin | IPModule->LoadPlugins | IPModule->ReloadPlugins | IPModule->Initialize | ModuleContainer->Initialize | ModuleManager->LoadModules | Bootstrap->Start | ]
System.IO.IOException: Could not add reference to assembly Pluton

EasyRemove is a pluton Plugin. Look for DestroySystem to replace It


[1/1/2015 12:06:33 PM] [Error] [Magma] Error invoking function On_PlayerHurt in ShowDamage plugin.
[1/1/2015 12:06:33 PM] [Exception] [ Plugin->Invoke | Plugin->OnPlayerHurt | Hooks->PlayerHurt | HumanBodyTakeDamage->Hurt | TakeDamage->HurtShared | TakeDamage->Hurt | HostileWildlifeAI->StateSim_Attack | HostileWildlifeAI->SimAIState | BasicWildLifeAI->ManagedUpdate | Data->Think | WildlifeManager->Update | ]
System.NullReferenceException: Object reference not set to an instance of an object
at Fougerite.Player.get_Name () <0x0001a>

Ehh...
thanks by the way.

Here's the deathmsg config

Code:
__author__ = 'DreTaX'
__version__ = '3.1'
import clr

clr.AddReferenceByPartialName("Fougerite")
import Fougerite
import re

"""
    Class
"""

class DeathMSG:
    """
        Methods
    """
    red = "[color #FF0000]"
    green = "[color #009900]"

    def On_PluginInit(self):
        Util.ConsoleLog("DeathMSG by" + __author__ + " Version: " + __version__ + " loaded.", False)

    def On_Command(self, Player, cmd, args):
        if cmd == "uautoban":
            if len(args) == 0:
                Player.Message("---DeathMSG 3.1---")
                Player.Message("/uautoban name - Unbans player")
            else:
                config = self.DeathMSGConfig()
                deathmsgname = config.GetSetting("Settings", "deathmsgname")
                if not Player.Admin and not self.isMod(Player.SteamID):
                    Player.MessageFrom(deathmsgname, "You aren't an admin!")
                    return
                ini = self.DMB()
                pl = self.argsToText(args)
                id = self.GetPlayerUnBannedID(pl)
                ip = self.GetPlayerUnBannedIP(pl)
                if id is None:
                    Player.Message("Target: " + pl + " isn't in the database, or you misspelled It!")
                    return
                iprq = ini.GetSetting("NameIps", ip)
                idrq = ini.GetSetting("NameIds", id)
                ini.DeleteSetting("Ips", iprq)
                ini.DeleteSetting("Ids", idrq)
                ini.DeleteSetting("NameIps", ip)
                ini.DeleteSetting("NameIds", id)
                ini.Save()
                Player.MessageFrom(deathmsgname, "Player " + pl + " unbanned!")

    def On_PlayerKilled(self, DeathEvent):
        if DeathEvent.DamageType is not None and DeathEvent.Victim is not None and DeathEvent.Attacker is not None:
            config = self.DeathMSGConfig()
            killer = str(DeathEvent.Attacker.Name)
            victim = str(DeathEvent.Victim.Name)
            deathmsgname = config.GetSetting("Settings", "deathmsgname")
            id = str(self.TrytoGrabID(DeathEvent.Attacker))
            vid = str(self.TrytoGrabID(DeathEvent.Victim))
            if self.WasSuicide(int(id), int(vid)):
                e = int(config.GetSetting("Settings", "enablesuicidemsg"))
                if e == 1:
                    n = config.GetSetting("Settings", "suicide")
                    n = n.replace("victim", victim)
                    Server.BroadcastFrom(deathmsgname, n)
                return
            if self.IsAnimal(killer) and id is None:
                e = int(config.GetSetting("Settings", "enableanimalmsg"))
                if e == 1:
                    a = config.GetSetting("Settings", "animalkill")
                    a = a.replace("victim", victim)
                    a = a.replace("killer", killer)
                    Server.BroadcastFrom(deathmsgname, a)
            else:
                bodyPart = self.BD(DeathEvent.DamageEvent.bodyPart)
                weapon = DeathEvent.WeaponName
                damage = round(DeathEvent.DamageAmount, 2)
                killerloc = DeathEvent.Attacker.Location
                location = DeathEvent.Victim.Location
                distance = round(Util.GetVectorsDistance(killerloc, location), 2)
                bleed = str(DeathEvent.DamageType)
                kl = int(config.GetSetting("Settings", "killog"))
                if bleed == "Bullet":
                    message = config.GetSetting("Settings", "msg")
                    n = message.replace("victim", victim)
                    n = n.replace("killer", killer)
                    n = n.replace("weapon", weapon)
                    n = n.replace("damage", str(damage))
                    n = n.replace("number", str(distance))
                    n = n.replace("bodyPart", str(bodyPart))
                    Server.BroadcastFrom(deathmsgname, n)
                    autoban = int(config.GetSetting("Settings", "autoban"))
                    if autoban == 1:
                        if distance > self.RangeOf(weapon) > 0:
                            tpfriendteleport = DataStore.Get("tpfriendautoban", id)
                            hometeleport = DataStore.Get("homesystemautoban", id)
                            if (tpfriendteleport == "none" or tpfriendteleport is None) and (hometeleport == "none" or hometeleport is None):
                                z = config.GetSetting("Settings", "banmsg")
                                z = z.replace("killer", killer)
                                DeathEvent.Attacker.Kill()
                                Server.BroadcastFrom(deathmsgname, self.red + z)
                                ini = self.DMB()
                                ip = DeathEvent.Attacker.IP
                                ini.AddSetting("Ips", ip, "1")
                                ini.AddSetting("Ids", id, "1")
                                ini.AddSetting("NameIps", killer, ip)
                                ini.AddSetting("NameIds", killer, id)
                                ini.AddSetting("Logistical", killer, "Gun: " + weapon + " Dist: " + str(distance) + " BodyP: " + bodyPart + " DMG: " + str(damage))
                                ini.Save()
                                DeathEvent.Attacker.Disconnect()
                                DataStore.Add("DeathMSGBAN", vid, str(location))
                            else:
                                t = config.GetSetting("Settings", "TpaMsg")
                                t = t.replace("killer", killer)
                                Server.BroadcastFrom(deathmsgname, t)
                                if kl == 1:
                                    self.Log(killer, weapon, distance, victim, bodyPart, damage, 1)
                            return
                    if kl == 1:
                        self.Log(killer, weapon, distance, victim, bodyPart, damage, None)
                elif bleed == "Melee":
                    if damage == 75:
                        hn = config.GetSetting("Settings", "huntingbow")
                        hn = hn.replace("victim", victim)
                        hn = hn.replace("killer", killer)
                        hn = hn.replace("damage", str(damage))
                        hn = hn.replace("number", str(distance))
                        hn = hn.replace("bodyPart", str(bodyPart))
                        Server.BroadcastFrom(deathmsgname, hn)
                        autoban = int(config.GetSetting("Settings", "autoban"))
                        if autoban == 1:
                            if distance > self.RangeOf(weapon) and self.RangeOf(weapon) > 0:
                                tpfriendteleport = DataStore.Get("tpfriendautoban", id)
                                hometeleport = DataStore.Get("homesystemautoban", id)
                                if (tpfriendteleport == "none" or tpfriendteleport is None) and (hometeleport == "none" or hometeleport is None):
                                    z = config.GetSetting("Settings", "banmsg")
                                    z = z.replace("killer", killer)
                                    DeathEvent.Attacker.Kill()
                                    Server.BroadcastFrom(deathmsgname, self.red + z)
                                    ini = self.DMB()
                                    ip = DeathEvent.Attacker.IP
                                    ini.AddSetting("Ips", ip, "1")
                                    ini.AddSetting("Ids", id, "1")
                                    ini.AddSetting("NameIps", killer, ip)
                                    ini.AddSetting("NameIds", killer, id)
                                    ini.AddSetting("Logistical", killer, "Gun: Hunting Bow Dist: " + str(distance) + " BodyP: " + str(bodyPart) + " DMG: " + str(damage))
                                    ini.Save()
                                    DeathEvent.Attacker.Disconnect()
                                    DataStore.Add("DeathMSGBAN", vid, str(location))
                                else:
                                    t = config.GetSetting("Settings", "TpaMsg")
                                    t = t.replace("killer", killer)
                                    Server.BroadcastFrom(deathmsgname, t)
                                    if kl == 1:
                                        self.Log(killer, "Hunting Bow", distance, victim, str(bodyPart), damage, 1)
                                return
                        if kl == 1:
                            self.Log(killer, "Hunting Bow", distance, victim, str(bodyPart), damage, None)
                    elif damage == 10 or damage == 15:
                        s = config.GetSetting("Settings", "spike")
                        s = s.replace("victim", victim)
                        s = s.replace("killer", killer)
                        s = s.replace("weapon", "Spike Wall")
                        Server.BroadcastFrom(deathmsgname, s)
                    else:
                        n = config.GetSetting("Settings", "msg")
                        n = n.replace("victim", victim)
                        n = n.replace("killer", killer)
                        n = n.replace("weapon", weapon)
                        n = n.replace("damage", str(damage))
                        n = n.replace("number", str(distance))
                        n = n.replace("bodyPart", str(bodyPart))
                        Server.BroadcastFrom(deathmsgname, n)
                elif bleed == "Explosion":
                    x = config.GetSetting("Settings", "explosionmsg")
                    x = x.replace("killer", killer)
                    x = x.replace("victim", victim)
                    x = x.replace("weapon", "C4/F1 Grenade")
                    Server.BroadcastFrom(deathmsgname, x)
                elif bleed == "Bleeding":
                    n = config.GetSetting("Settings", "bmsg")
                    n = n.replace("victim", victim)
                    n = n.replace("killer", killer)
                    Server.BroadcastFrom(deathmsgname, n)

    def On_PlayerSpawned(self, Player, SpawnEvent):
        id = Player.SteamID
        if DataStore.ContainsKey("DeathMSGBAN", id):
            get = DataStore.Get("DeathMSGBAN", id)
            loc = self.Replace(get)
            newloc = Util.CreateVector(float(loc[0]), float(loc[1]), float(loc[2]))
            Player.TeleportTo(newloc)
            config = self.DeathMSGConfig()
            deathmsgname = config.GetSetting("Settings", "deathmsgname")
            Player.MessageFrom(deathmsgname, self.green + "You got teleported back where you died!")
            DataStore.Remove("DeathMSGBAN", id)

    def On_PlayerConnected(self, Player):
        ini = self.DMB()
        id = self.TrytoGrabID(Player)
        if id is None:
            try:
                Player.Disconnect()
            except:
                pass
            return
        config = self.DeathMSGConfig()
        deathmsgname = config.GetSetting("Settings", "deathmsgname")
        ip = Player.IP
        if ini.GetSetting("Ips", ip) is not None and int(ini.GetSetting("Ips", ip)) == 1:
            Player.MessageFrom(deathmsgname, "You are banned from this server")
            Player.Disconnect()
        elif ini.GetSetting("Ids", id) is not None and int(ini.GetSetting("Ids", id)) == 1:
            Player.MessageFrom(deathmsgname, "You are banned from this server")
            Player.Disconnect()

    def TrytoGrabID(self, Player):
        try:
            id = Player.SteamID
            return id
        except:
            return None

    def argsToText(self, args):
        text = str.join(" ", args)
        return text

    def Log(self, killer, weapon, dist, victim, body, dmg, tp):
        if tp is None:
            Plugin.Log("KillLog", " Killer: " + killer + " Gun: " + weapon + " Dist: " + str(dist) + " Victim: " + victim + " BodyP: " + str(body) + " DMG: " + str(dmg))
        else:
            Plugin.Log("KillLog", " Killer: " + killer + " Gun: " + weapon + " Dist: " + str(dist) + " Victim: " + victim + " BodyP: " + str(body) + " DMG: " + str(dmg) + " WAS TELEPORTING")

    def IsAnimal(self, killer):
        if killer == 'Wolf' or killer == 'Bear' or killer == 'MutantWolf' or killer == 'MutantBear':
            return True
        return False

    def WasSuicide(self, killerid, victimid):
        if killerid == victimid:
            return True
        return False

    def isMod(self, id):
        if DataStore.ContainsKey("Moderators", id):
            return True
        return False

    def BD(self, bodyp):
        ini = self.Bodies()
        bodyp = str(bodyp)
        name = ini.GetSetting("bodyparts", bodyp)
        return str(name)

    def Bodies(self):
        return Plugin.GetIni("bodyparts")

    def DeathMSGConfig(self):
        return Plugin.GetIni("DeathMSGConfig")

    def DMB(self):
        return Plugin.GetIni("BannedPeopleDM")

    def GetPlayerUnBannedIP(self, name):
        ini = self.DMB()
        name = name.lower()
        checkdist = ini.EnumSection("NameIps")
        for pl in checkdist:
            nameid = ini.GetSetting("NameIps", pl)
            if nameid is not None and pl.lower() == name:
                return str(pl)
        return None

    def GetPlayerUnBannedID(self, name):
        ini = self.DMB()
        name = name.lower()
        checkdist = ini.EnumSection("NameIds")
        for pl in checkdist:
            nameid = ini.GetSetting("NameIds", pl)
            if nameid is not None and pl.lower() == name:
                return str(pl)
        return None

    def RangeOf(self, weapon):
        ini = Plugin.GetIni("range")
        range = ini.GetSetting("range", weapon)
        return int(range)

    def Replace(self, s):
        s = re.sub('[(\)\]]', '', s)
        s = s.split(",")
        return s
or this one?

Code:
[Settings]
autoban=1
msg=victim was killed by killer with weapon DMG: damage Distance: number m In: bodyPart
bmsg=victim was bleed out. Killer: killer
banmsg=killer was banned, due to making an impossible shot.
explosionmsg=victim was killed with weapon Killer: killer
huntingbow=victim was killed by killer with Hunting Bow DMG: damage Distance: number m In: bodyPart
spike=victim was killed by killer 's weapon
enablesuicidemsg=0
suicide=victim suicided
enableanimalmsg=1
animalkill=victim was killed by a killer
killog=1
deathmsgname=[DeathMSG]
TpaMsg=killer was teleporting just right at the last shot. Ignoring ban.
tpbackmsg=You have been teleported to your last location.
 
Last edited:

DreTaX

Probably knows the answer...
Administrator
Jun 29, 2014
4,093
4,784
113
At your house.
github.com
That DHPK plugin is a High pink kicker from Magma, i used it to but produced errors so i had to delete it.
thanks by the way.

Here's the deathmsg config

Code:
__author__ = 'DreTaX'
__version__ = '3.1'
import clr

clr.AddReferenceByPartialName("Fougerite")
import Fougerite
import re

"""
    Class
"""

class DeathMSG:
    """
        Methods
    """
    red = "[color #FF0000]"
    green = "[color #009900]"

    def On_PluginInit(self):
        Util.ConsoleLog("DeathMSG by" + __author__ + " Version: " + __version__ + " loaded.", False)

    def On_Command(self, Player, cmd, args):
        if cmd == "uautoban":
            if len(args) == 0:
                Player.Message("---DeathMSG 3.1---")
                Player.Message("/uautoban name - Unbans player")
            else:
                config = self.DeathMSGConfig()
                deathmsgname = config.GetSetting("Settings", "deathmsgname")
                if not Player.Admin and not self.isMod(Player.SteamID):
                    Player.MessageFrom(deathmsgname, "You aren't an admin!")
                    return
                ini = self.DMB()
                pl = self.argsToText(args)
                id = self.GetPlayerUnBannedID(pl)
                ip = self.GetPlayerUnBannedIP(pl)
                if id is None:
                    Player.Message("Target: " + pl + " isn't in the database, or you misspelled It!")
                    return
                iprq = ini.GetSetting("NameIps", ip)
                idrq = ini.GetSetting("NameIds", id)
                ini.DeleteSetting("Ips", iprq)
                ini.DeleteSetting("Ids", idrq)
                ini.DeleteSetting("NameIps", ip)
                ini.DeleteSetting("NameIds", id)
                ini.Save()
                Player.MessageFrom(deathmsgname, "Player " + pl + " unbanned!")

    def On_PlayerKilled(self, DeathEvent):
        if DeathEvent.DamageType is not None and DeathEvent.Victim is not None and DeathEvent.Attacker is not None:
            config = self.DeathMSGConfig()
            killer = str(DeathEvent.Attacker.Name)
            victim = str(DeathEvent.Victim.Name)
            deathmsgname = config.GetSetting("Settings", "deathmsgname")
            id = str(self.TrytoGrabID(DeathEvent.Attacker))
            vid = str(self.TrytoGrabID(DeathEvent.Victim))
            if self.WasSuicide(int(id), int(vid)):
                e = int(config.GetSetting("Settings", "enablesuicidemsg"))
                if e == 1:
                    n = config.GetSetting("Settings", "suicide")
                    n = n.replace("victim", victim)
                    Server.BroadcastFrom(deathmsgname, n)
                return
            if self.IsAnimal(killer) and id is None:
                e = int(config.GetSetting("Settings", "enableanimalmsg"))
                if e == 1:
                    a = config.GetSetting("Settings", "animalkill")
                    a = a.replace("victim", victim)
                    a = a.replace("killer", killer)
                    Server.BroadcastFrom(deathmsgname, a)
            else:
                bodyPart = self.BD(DeathEvent.DamageEvent.bodyPart)
                weapon = DeathEvent.WeaponName
                damage = round(DeathEvent.DamageAmount, 2)
                killerloc = DeathEvent.Attacker.Location
                location = DeathEvent.Victim.Location
                distance = round(Util.GetVectorsDistance(killerloc, location), 2)
                bleed = str(DeathEvent.DamageType)
                kl = int(config.GetSetting("Settings", "killog"))
                if bleed == "Bullet":
                    message = config.GetSetting("Settings", "msg")
                    n = message.replace("victim", victim)
                    n = n.replace("killer", killer)
                    n = n.replace("weapon", weapon)
                    n = n.replace("damage", str(damage))
                    n = n.replace("number", str(distance))
                    n = n.replace("bodyPart", str(bodyPart))
                    Server.BroadcastFrom(deathmsgname, n)
                    autoban = int(config.GetSetting("Settings", "autoban"))
                    if autoban == 1:
                        if distance > self.RangeOf(weapon) > 0:
                            tpfriendteleport = DataStore.Get("tpfriendautoban", id)
                            hometeleport = DataStore.Get("homesystemautoban", id)
                            if (tpfriendteleport == "none" or tpfriendteleport is None) and (hometeleport == "none" or hometeleport is None):
                                z = config.GetSetting("Settings", "banmsg")
                                z = z.replace("killer", killer)
                                DeathEvent.Attacker.Kill()
                                Server.BroadcastFrom(deathmsgname, self.red + z)
                                ini = self.DMB()
                                ip = DeathEvent.Attacker.IP
                                ini.AddSetting("Ips", ip, "1")
                                ini.AddSetting("Ids", id, "1")
                                ini.AddSetting("NameIps", killer, ip)
                                ini.AddSetting("NameIds", killer, id)
                                ini.AddSetting("Logistical", killer, "Gun: " + weapon + " Dist: " + str(distance) + " BodyP: " + bodyPart + " DMG: " + str(damage))
                                ini.Save()
                                DeathEvent.Attacker.Disconnect()
                                DataStore.Add("DeathMSGBAN", vid, str(location))
                            else:
                                t = config.GetSetting("Settings", "TpaMsg")
                                t = t.replace("killer", killer)
                                Server.BroadcastFrom(deathmsgname, t)
                                if kl == 1:
                                    self.Log(killer, weapon, distance, victim, bodyPart, damage, 1)
                            return
                    if kl == 1:
                        self.Log(killer, weapon, distance, victim, bodyPart, damage, None)
                elif bleed == "Melee":
                    if damage == 75:
                        hn = config.GetSetting("Settings", "huntingbow")
                        hn = hn.replace("victim", victim)
                        hn = hn.replace("killer", killer)
                        hn = hn.replace("damage", str(damage))
                        hn = hn.replace("number", str(distance))
                        hn = hn.replace("bodyPart", str(bodyPart))
                        Server.BroadcastFrom(deathmsgname, hn)
                        autoban = int(config.GetSetting("Settings", "autoban"))
                        if autoban == 1:
                            if distance > self.RangeOf(weapon) and self.RangeOf(weapon) > 0:
                                tpfriendteleport = DataStore.Get("tpfriendautoban", id)
                                hometeleport = DataStore.Get("homesystemautoban", id)
                                if (tpfriendteleport == "none" or tpfriendteleport is None) and (hometeleport == "none" or hometeleport is None):
                                    z = config.GetSetting("Settings", "banmsg")
                                    z = z.replace("killer", killer)
                                    DeathEvent.Attacker.Kill()
                                    Server.BroadcastFrom(deathmsgname, self.red + z)
                                    ini = self.DMB()
                                    ip = DeathEvent.Attacker.IP
                                    ini.AddSetting("Ips", ip, "1")
                                    ini.AddSetting("Ids", id, "1")
                                    ini.AddSetting("NameIps", killer, ip)
                                    ini.AddSetting("NameIds", killer, id)
                                    ini.AddSetting("Logistical", killer, "Gun: Hunting Bow Dist: " + str(distance) + " BodyP: " + str(bodyPart) + " DMG: " + str(damage))
                                    ini.Save()
                                    DeathEvent.Attacker.Disconnect()
                                    DataStore.Add("DeathMSGBAN", vid, str(location))
                                else:
                                    t = config.GetSetting("Settings", "TpaMsg")
                                    t = t.replace("killer", killer)
                                    Server.BroadcastFrom(deathmsgname, t)
                                    if kl == 1:
                                        self.Log(killer, "Hunting Bow", distance, victim, str(bodyPart), damage, 1)
                                return
                        if kl == 1:
                            self.Log(killer, "Hunting Bow", distance, victim, str(bodyPart), damage, None)
                    elif damage == 10 or damage == 15:
                        s = config.GetSetting("Settings", "spike")
                        s = s.replace("victim", victim)
                        s = s.replace("killer", killer)
                        s = s.replace("weapon", "Spike Wall")
                        Server.BroadcastFrom(deathmsgname, s)
                    else:
                        n = config.GetSetting("Settings", "msg")
                        n = n.replace("victim", victim)
                        n = n.replace("killer", killer)
                        n = n.replace("weapon", weapon)
                        n = n.replace("damage", str(damage))
                        n = n.replace("number", str(distance))
                        n = n.replace("bodyPart", str(bodyPart))
                        Server.BroadcastFrom(deathmsgname, n)
                elif bleed == "Explosion":
                    x = config.GetSetting("Settings", "explosionmsg")
                    x = x.replace("killer", killer)
                    x = x.replace("victim", victim)
                    x = x.replace("weapon", "C4/F1 Grenade")
                    Server.BroadcastFrom(deathmsgname, x)
                elif bleed == "Bleeding":
                    n = config.GetSetting("Settings", "bmsg")
                    n = n.replace("victim", victim)
                    n = n.replace("killer", killer)
                    Server.BroadcastFrom(deathmsgname, n)

    def On_PlayerSpawned(self, Player, SpawnEvent):
        id = Player.SteamID
        if DataStore.ContainsKey("DeathMSGBAN", id):
            get = DataStore.Get("DeathMSGBAN", id)
            loc = self.Replace(get)
            newloc = Util.CreateVector(float(loc[0]), float(loc[1]), float(loc[2]))
            Player.TeleportTo(newloc)
            config = self.DeathMSGConfig()
            deathmsgname = config.GetSetting("Settings", "deathmsgname")
            Player.MessageFrom(deathmsgname, self.green + "You got teleported back where you died!")
            DataStore.Remove("DeathMSGBAN", id)

    def On_PlayerConnected(self, Player):
        ini = self.DMB()
        id = self.TrytoGrabID(Player)
        if id is None:
            try:
                Player.Disconnect()
            except:
                pass
            return
        config = self.DeathMSGConfig()
        deathmsgname = config.GetSetting("Settings", "deathmsgname")
        ip = Player.IP
        if ini.GetSetting("Ips", ip) is not None and int(ini.GetSetting("Ips", ip)) == 1:
            Player.MessageFrom(deathmsgname, "You are banned from this server")
            Player.Disconnect()
        elif ini.GetSetting("Ids", id) is not None and int(ini.GetSetting("Ids", id)) == 1:
            Player.MessageFrom(deathmsgname, "You are banned from this server")
            Player.Disconnect()

    def TrytoGrabID(self, Player):
        try:
            id = Player.SteamID
            return id
        except:
            return None

    def argsToText(self, args):
        text = str.join(" ", args)
        return text

    def Log(self, killer, weapon, dist, victim, body, dmg, tp):
        if tp is None:
            Plugin.Log("KillLog", " Killer: " + killer + " Gun: " + weapon + " Dist: " + str(dist) + " Victim: " + victim + " BodyP: " + str(body) + " DMG: " + str(dmg))
        else:
            Plugin.Log("KillLog", " Killer: " + killer + " Gun: " + weapon + " Dist: " + str(dist) + " Victim: " + victim + " BodyP: " + str(body) + " DMG: " + str(dmg) + " WAS TELEPORTING")

    def IsAnimal(self, killer):
        if killer == 'Wolf' or killer == 'Bear' or killer == 'MutantWolf' or killer == 'MutantBear':
            return True
        return False

    def WasSuicide(self, killerid, victimid):
        if killerid == victimid:
            return True
        return False

    def isMod(self, id):
        if DataStore.ContainsKey("Moderators", id):
            return True
        return False

    def BD(self, bodyp):
        ini = self.Bodies()
        bodyp = str(bodyp)
        name = ini.GetSetting("bodyparts", bodyp)
        return str(name)

    def Bodies(self):
        return Plugin.GetIni("bodyparts")

    def DeathMSGConfig(self):
        return Plugin.GetIni("DeathMSGConfig")

    def DMB(self):
        return Plugin.GetIni("BannedPeopleDM")

    def GetPlayerUnBannedIP(self, name):
        ini = self.DMB()
        name = name.lower()
        checkdist = ini.EnumSection("NameIps")
        for pl in checkdist:
            nameid = ini.GetSetting("NameIps", pl)
            if nameid is not None and pl.lower() == name:
                return str(pl)
        return None

    def GetPlayerUnBannedID(self, name):
        ini = self.DMB()
        name = name.lower()
        checkdist = ini.EnumSection("NameIds")
        for pl in checkdist:
            nameid = ini.GetSetting("NameIds", pl)
            if nameid is not None and pl.lower() == name:
                return str(pl)
        return None

    def RangeOf(self, weapon):
        ini = Plugin.GetIni("range")
        range = ini.GetSetting("range", weapon)
        return int(range)

    def Replace(self, s):
        s = re.sub('[(\)\]]', '', s)
        s = s.split(",")
        return s
Here. Use this: http://fougerite.com/resources/highping-kicker.87/

About the Config, I meant the DeathMsg ini file.
 

DreTaX

Probably knows the answer...
Administrator
Jun 29, 2014
4,093
4,784
113
At your house.
github.com
thanks by the way.

Here's the deathmsg config

Code:
__author__ = 'DreTaX'
__version__ = '3.1'
import clr

clr.AddReferenceByPartialName("Fougerite")
import Fougerite
import re

"""
    Class
"""

class DeathMSG:
    """
        Methods
    """
    red = "[color #FF0000]"
    green = "[color #009900]"

    def On_PluginInit(self):
        Util.ConsoleLog("DeathMSG by" + __author__ + " Version: " + __version__ + " loaded.", False)

    def On_Command(self, Player, cmd, args):
        if cmd == "uautoban":
            if len(args) == 0:
                Player.Message("---DeathMSG 3.1---")
                Player.Message("/uautoban name - Unbans player")
            else:
                config = self.DeathMSGConfig()
                deathmsgname = config.GetSetting("Settings", "deathmsgname")
                if not Player.Admin and not self.isMod(Player.SteamID):
                    Player.MessageFrom(deathmsgname, "You aren't an admin!")
                    return
                ini = self.DMB()
                pl = self.argsToText(args)
                id = self.GetPlayerUnBannedID(pl)
                ip = self.GetPlayerUnBannedIP(pl)
                if id is None:
                    Player.Message("Target: " + pl + " isn't in the database, or you misspelled It!")
                    return
                iprq = ini.GetSetting("NameIps", ip)
                idrq = ini.GetSetting("NameIds", id)
                ini.DeleteSetting("Ips", iprq)
                ini.DeleteSetting("Ids", idrq)
                ini.DeleteSetting("NameIps", ip)
                ini.DeleteSetting("NameIds", id)
                ini.Save()
                Player.MessageFrom(deathmsgname, "Player " + pl + " unbanned!")

    def On_PlayerKilled(self, DeathEvent):
        if DeathEvent.DamageType is not None and DeathEvent.Victim is not None and DeathEvent.Attacker is not None:
            config = self.DeathMSGConfig()
            killer = str(DeathEvent.Attacker.Name)
            victim = str(DeathEvent.Victim.Name)
            deathmsgname = config.GetSetting("Settings", "deathmsgname")
            id = str(self.TrytoGrabID(DeathEvent.Attacker))
            vid = str(self.TrytoGrabID(DeathEvent.Victim))
            if self.WasSuicide(int(id), int(vid)):
                e = int(config.GetSetting("Settings", "enablesuicidemsg"))
                if e == 1:
                    n = config.GetSetting("Settings", "suicide")
                    n = n.replace("victim", victim)
                    Server.BroadcastFrom(deathmsgname, n)
                return
            if self.IsAnimal(killer) and id is None:
                e = int(config.GetSetting("Settings", "enableanimalmsg"))
                if e == 1:
                    a = config.GetSetting("Settings", "animalkill")
                    a = a.replace("victim", victim)
                    a = a.replace("killer", killer)
                    Server.BroadcastFrom(deathmsgname, a)
            else:
                bodyPart = self.BD(DeathEvent.DamageEvent.bodyPart)
                weapon = DeathEvent.WeaponName
                damage = round(DeathEvent.DamageAmount, 2)
                killerloc = DeathEvent.Attacker.Location
                location = DeathEvent.Victim.Location
                distance = round(Util.GetVectorsDistance(killerloc, location), 2)
                bleed = str(DeathEvent.DamageType)
                kl = int(config.GetSetting("Settings", "killog"))
                if bleed == "Bullet":
                    message = config.GetSetting("Settings", "msg")
                    n = message.replace("victim", victim)
                    n = n.replace("killer", killer)
                    n = n.replace("weapon", weapon)
                    n = n.replace("damage", str(damage))
                    n = n.replace("number", str(distance))
                    n = n.replace("bodyPart", str(bodyPart))
                    Server.BroadcastFrom(deathmsgname, n)
                    autoban = int(config.GetSetting("Settings", "autoban"))
                    if autoban == 1:
                        if distance > self.RangeOf(weapon) > 0:
                            tpfriendteleport = DataStore.Get("tpfriendautoban", id)
                            hometeleport = DataStore.Get("homesystemautoban", id)
                            if (tpfriendteleport == "none" or tpfriendteleport is None) and (hometeleport == "none" or hometeleport is None):
                                z = config.GetSetting("Settings", "banmsg")
                                z = z.replace("killer", killer)
                                DeathEvent.Attacker.Kill()
                                Server.BroadcastFrom(deathmsgname, self.red + z)
                                ini = self.DMB()
                                ip = DeathEvent.Attacker.IP
                                ini.AddSetting("Ips", ip, "1")
                                ini.AddSetting("Ids", id, "1")
                                ini.AddSetting("NameIps", killer, ip)
                                ini.AddSetting("NameIds", killer, id)
                                ini.AddSetting("Logistical", killer, "Gun: " + weapon + " Dist: " + str(distance) + " BodyP: " + bodyPart + " DMG: " + str(damage))
                                ini.Save()
                                DeathEvent.Attacker.Disconnect()
                                DataStore.Add("DeathMSGBAN", vid, str(location))
                            else:
                                t = config.GetSetting("Settings", "TpaMsg")
                                t = t.replace("killer", killer)
                                Server.BroadcastFrom(deathmsgname, t)
                                if kl == 1:
                                    self.Log(killer, weapon, distance, victim, bodyPart, damage, 1)
                            return
                    if kl == 1:
                        self.Log(killer, weapon, distance, victim, bodyPart, damage, None)
                elif bleed == "Melee":
                    if damage == 75:
                        hn = config.GetSetting("Settings", "huntingbow")
                        hn = hn.replace("victim", victim)
                        hn = hn.replace("killer", killer)
                        hn = hn.replace("damage", str(damage))
                        hn = hn.replace("number", str(distance))
                        hn = hn.replace("bodyPart", str(bodyPart))
                        Server.BroadcastFrom(deathmsgname, hn)
                        autoban = int(config.GetSetting("Settings", "autoban"))
                        if autoban == 1:
                            if distance > self.RangeOf(weapon) and self.RangeOf(weapon) > 0:
                                tpfriendteleport = DataStore.Get("tpfriendautoban", id)
                                hometeleport = DataStore.Get("homesystemautoban", id)
                                if (tpfriendteleport == "none" or tpfriendteleport is None) and (hometeleport == "none" or hometeleport is None):
                                    z = config.GetSetting("Settings", "banmsg")
                                    z = z.replace("killer", killer)
                                    DeathEvent.Attacker.Kill()
                                    Server.BroadcastFrom(deathmsgname, self.red + z)
                                    ini = self.DMB()
                                    ip = DeathEvent.Attacker.IP
                                    ini.AddSetting("Ips", ip, "1")
                                    ini.AddSetting("Ids", id, "1")
                                    ini.AddSetting("NameIps", killer, ip)
                                    ini.AddSetting("NameIds", killer, id)
                                    ini.AddSetting("Logistical", killer, "Gun: Hunting Bow Dist: " + str(distance) + " BodyP: " + str(bodyPart) + " DMG: " + str(damage))
                                    ini.Save()
                                    DeathEvent.Attacker.Disconnect()
                                    DataStore.Add("DeathMSGBAN", vid, str(location))
                                else:
                                    t = config.GetSetting("Settings", "TpaMsg")
                                    t = t.replace("killer", killer)
                                    Server.BroadcastFrom(deathmsgname, t)
                                    if kl == 1:
                                        self.Log(killer, "Hunting Bow", distance, victim, str(bodyPart), damage, 1)
                                return
                        if kl == 1:
                            self.Log(killer, "Hunting Bow", distance, victim, str(bodyPart), damage, None)
                    elif damage == 10 or damage == 15:
                        s = config.GetSetting("Settings", "spike")
                        s = s.replace("victim", victim)
                        s = s.replace("killer", killer)
                        s = s.replace("weapon", "Spike Wall")
                        Server.BroadcastFrom(deathmsgname, s)
                    else:
                        n = config.GetSetting("Settings", "msg")
                        n = n.replace("victim", victim)
                        n = n.replace("killer", killer)
                        n = n.replace("weapon", weapon)
                        n = n.replace("damage", str(damage))
                        n = n.replace("number", str(distance))
                        n = n.replace("bodyPart", str(bodyPart))
                        Server.BroadcastFrom(deathmsgname, n)
                elif bleed == "Explosion":
                    x = config.GetSetting("Settings", "explosionmsg")
                    x = x.replace("killer", killer)
                    x = x.replace("victim", victim)
                    x = x.replace("weapon", "C4/F1 Grenade")
                    Server.BroadcastFrom(deathmsgname, x)
                elif bleed == "Bleeding":
                    n = config.GetSetting("Settings", "bmsg")
                    n = n.replace("victim", victim)
                    n = n.replace("killer", killer)
                    Server.BroadcastFrom(deathmsgname, n)

    def On_PlayerSpawned(self, Player, SpawnEvent):
        id = Player.SteamID
        if DataStore.ContainsKey("DeathMSGBAN", id):
            get = DataStore.Get("DeathMSGBAN", id)
            loc = self.Replace(get)
            newloc = Util.CreateVector(float(loc[0]), float(loc[1]), float(loc[2]))
            Player.TeleportTo(newloc)
            config = self.DeathMSGConfig()
            deathmsgname = config.GetSetting("Settings", "deathmsgname")
            Player.MessageFrom(deathmsgname, self.green + "You got teleported back where you died!")
            DataStore.Remove("DeathMSGBAN", id)

    def On_PlayerConnected(self, Player):
        ini = self.DMB()
        id = self.TrytoGrabID(Player)
        if id is None:
            try:
                Player.Disconnect()
            except:
                pass
            return
        config = self.DeathMSGConfig()
        deathmsgname = config.GetSetting("Settings", "deathmsgname")
        ip = Player.IP
        if ini.GetSetting("Ips", ip) is not None and int(ini.GetSetting("Ips", ip)) == 1:
            Player.MessageFrom(deathmsgname, "You are banned from this server")
            Player.Disconnect()
        elif ini.GetSetting("Ids", id) is not None and int(ini.GetSetting("Ids", id)) == 1:
            Player.MessageFrom(deathmsgname, "You are banned from this server")
            Player.Disconnect()

    def TrytoGrabID(self, Player):
        try:
            id = Player.SteamID
            return id
        except:
            return None

    def argsToText(self, args):
        text = str.join(" ", args)
        return text

    def Log(self, killer, weapon, dist, victim, body, dmg, tp):
        if tp is None:
            Plugin.Log("KillLog", " Killer: " + killer + " Gun: " + weapon + " Dist: " + str(dist) + " Victim: " + victim + " BodyP: " + str(body) + " DMG: " + str(dmg))
        else:
            Plugin.Log("KillLog", " Killer: " + killer + " Gun: " + weapon + " Dist: " + str(dist) + " Victim: " + victim + " BodyP: " + str(body) + " DMG: " + str(dmg) + " WAS TELEPORTING")

    def IsAnimal(self, killer):
        if killer == 'Wolf' or killer == 'Bear' or killer == 'MutantWolf' or killer == 'MutantBear':
            return True
        return False

    def WasSuicide(self, killerid, victimid):
        if killerid == victimid:
            return True
        return False

    def isMod(self, id):
        if DataStore.ContainsKey("Moderators", id):
            return True
        return False

    def BD(self, bodyp):
        ini = self.Bodies()
        bodyp = str(bodyp)
        name = ini.GetSetting("bodyparts", bodyp)
        return str(name)

    def Bodies(self):
        return Plugin.GetIni("bodyparts")

    def DeathMSGConfig(self):
        return Plugin.GetIni("DeathMSGConfig")

    def DMB(self):
        return Plugin.GetIni("BannedPeopleDM")

    def GetPlayerUnBannedIP(self, name):
        ini = self.DMB()
        name = name.lower()
        checkdist = ini.EnumSection("NameIps")
        for pl in checkdist:
            nameid = ini.GetSetting("NameIps", pl)
            if nameid is not None and pl.lower() == name:
                return str(pl)
        return None

    def GetPlayerUnBannedID(self, name):
        ini = self.DMB()
        name = name.lower()
        checkdist = ini.EnumSection("NameIds")
        for pl in checkdist:
            nameid = ini.GetSetting("NameIds", pl)
            if nameid is not None and pl.lower() == name:
                return str(pl)
        return None

    def RangeOf(self, weapon):
        ini = Plugin.GetIni("range")
        range = ini.GetSetting("range", weapon)
        return int(range)

    def Replace(self, s):
        s = re.sub('[(\)\]]', '', s)
        s = s.split(",")
        return s
or this one?

Code:
[Settings]
autoban=1
msg=victim was killed by killer with weapon DMG: damage Distance: number m In: bodyPart
bmsg=victim was bleed out. Killer: killer
banmsg=killer was banned, due to making an impossible shot.
explosionmsg=victim was killed with weapon Killer: killer
huntingbow=victim was killed by killer with Hunting Bow DMG: damage Distance: number m In: bodyPart
spike=victim was killed by killer 's weapon
enablesuicidemsg=0
suicide=victim suicided
enableanimalmsg=1
animalkill=victim was killed by a killer
killog=1
deathmsgname=[DeathMSG]
TpaMsg=killer was teleporting just right at the last shot. Ignoring ban.
tpbackmsg=You have been teleported to your last location.
Wuhh. good question
 

DreTaX

Probably knows the answer...
Administrator
Jun 29, 2014
4,093
4,784
113
At your house.
github.com
The server seems to crash more often now.
I have approx 60+players playing daily.

Mind checking it out?
Remove the advertiser plugin.

There are errors in the plugin KillingSpree. Is that a custom plugin?

RespawnKits has also errors. Couldn't find It either to do a quick fix.

TpFriend plugin has errors with the On_PlayerConnected method, though It doesn't even contain one? Hows that possible?

So far seems like RespawnKits is flooding your console with the KillingSpree plugins. Did you write those?