Why doesnt this work?????

ice cold

Active Member
Trusted Member
Member
Oct 24, 2016
606
871
43
Canada
i made a pvp/raid schedule plugin but it doesnt prevent dmg at players


Python:
__title__ = 'Raidpvp_schedule'
__author__ = 'ice cold'
__version__ = '1.0'

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

class Raidpvp_schedule:
    StartTime = None
    EndTime = None
    AntiRaid = None
    AntiPvp = None

    def On_PluginInit(self):
        ini = self.Settings()
        self.StartTime = int(ini.GetSetting("Schedules", "StartTime"))
        self.EndTime = int(ini.GetSetting("Schedules", "EndTime"))
        self.AntiRaid = int(ini.GetSetting("Settings", "AntiRaid"))
        self.AntiPvp = int(ini.GetSetting("Settings", "AntiPvp"))

    def Settings(self):
        if not Plugin.IniExists("Settings"):
            ini.AddSetting("Schedules", "EndTime", "5")
            ini.AddSetting("Settings", "AntiRaid", "1")
            ini.AddSetting("Settings", "AntiPvp", "1")
            ini.Save()
        return Plugin.GetIni("Settings")



    def On_PlayerHurt(self, HurtEvent):
        if self.AntiPvp == 1:
            if HurtEvent.AttackerIsPlayer and HurtEvent.VictimIsPlayer:
                if World.Time >= self.StartTime and World.Time <= self.EndTime:
                    HurtEvent.DamageAmount = 0
                    HurtEvent.Attacker.Notice("✘", "You cannot kill until Server time = " + self.EndTime + ": Time is now " + Word.Time)
                    return
                else:
                    return

    def On_EntityHurt(self, HurtEvent):
            if World.Time >= self.StartTime and World.Time <= self.EndTime:
                if HurtEvent.WeaponName == "Explosive Charge":
                    HurtEvent.DamageAmount = 0
                    HurtEvent.Attacker.Inventory.AddItem("Explosive Charge", 1)
                    HurtEvent.Attacker.Notice("✘", "You cannot raid until Server time = " + self.EndTime + ": Time is now " + Word.Time)
                    return
                elif HurtEvent.WeaponName == "F1 Grenade":
                     HurtEvent.DamageAmount = 0
                     HurtEvent.Attacker.Inventory.AddItem("F1 Grenade", 1)
                     HurtEvent.Attacker.Notice("✘", "You cannot raid until Server time = " + self.EndTime + ": Time is now " + Word.Time)
 

MeshBenth

☒Rustʕ•ᴥ•ʔRedux☒
Member
Oct 5, 2017
48
46
8
Parts Unknown
i made a pvp/raid schedule plugin but it doesnt prevent dmg at players


Python:
__title__ = 'Raidpvp_schedule'
__author__ = 'ice cold'
__version__ = '1.0'

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

class Raidpvp_schedule:
    StartTime = None
    EndTime = None
    AntiRaid = None
    AntiPvp = None

    def On_PluginInit(self):
        ini = self.Settings()
        self.StartTime = int(ini.GetSetting("Schedules", "StartTime"))
        self.EndTime = int(ini.GetSetting("Schedules", "EndTime"))
        self.AntiRaid = int(ini.GetSetting("Settings", "AntiRaid"))
        self.AntiPvp = int(ini.GetSetting("Settings", "AntiPvp"))

    def Settings(self):
        if not Plugin.IniExists("Settings"):
            ini.AddSetting("Schedules", "EndTime", "5")
            ini.AddSetting("Settings", "AntiRaid", "1")
            ini.AddSetting("Settings", "AntiPvp", "1")
            ini.Save()
        return Plugin.GetIni("Settings")



    def On_PlayerHurt(self, HurtEvent):
        if self.AntiPvp == 1:
            if HurtEvent.AttackerIsPlayer and HurtEvent.VictimIsPlayer:
                if World.Time >= self.StartTime and World.Time <= self.EndTime:
                    HurtEvent.DamageAmount = 0
                    HurtEvent.Attacker.Notice("✘", "You cannot kill until Server time = " + self.EndTime + ": Time is now " + Word.Time)
                    return
                else:
                    return

    def On_EntityHurt(self, HurtEvent):
            if World.Time >= self.StartTime and World.Time <= self.EndTime:
                if HurtEvent.WeaponName == "Explosive Charge":
                    HurtEvent.DamageAmount = 0
                    HurtEvent.Attacker.Inventory.AddItem("Explosive Charge", 1)
                    HurtEvent.Attacker.Notice("✘", "You cannot raid until Server time = " + self.EndTime + ": Time is now " + Word.Time)
                    return
                elif HurtEvent.WeaponName == "F1 Grenade":
                     HurtEvent.DamageAmount = 0
                     HurtEvent.Attacker.Inventory.AddItem("F1 Grenade", 1)
                     HurtEvent.Attacker.Notice("✘", "You cannot raid until Server time = " + self.EndTime + ": Time is now " + Word.Time)

Do you want to protect the players on the first visit? Perhaps you can convert to C # so I helped you
 

ice cold

Active Member
Trusted Member
Member
Oct 24, 2016
606
871
43
Canada
For some reason it cant check the time @salva @DreTaX
pls help me



Python:
__title__ = 'Raidpvp_schedule'
__author__ = 'ice cold'
__version__ = '1.0'

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

class Raidpvp_schedule:
    StartTime = None
    EndTime = None
    AntiRaid = None
    AntiPvp = None
   
    def On_PluginInit(self):
        ini = self.Settings()
        self.StartTime = int(ini.GetSetting("Schedule", "StartTime"))
        self.EndTime = int(ini.GetSetting("Schedule", "EndTime"))
        self.AntiRaid = int(ini.GetSetting("Settings", "AntiRaid"))
        self.AntiPvp = int(ini.GetSetting("Settings", "AntiPvp"))

    def Settings(self):
        if not Plugin.IniExists("Settings"):
            ini = Plugin.CreateIni("Settings")
            ini.AddSetting("Schedule", "StartTime", "17")
            ini.AddSetting("Schedule", "EndTime", "5")
            ini.AddSetting("Settings", "AntiRaid", "1")
            ini.AddSetting("Settings", "AntiPvp", "1")
            ini.Save()
        return Plugin.GetIni("Settings")



    def On_PlayerHurt(self, HurtEvent):
        if self.AntiPvp == 1:
            if HurtEvent.AttackerIsPlayer and HurtEvent.VictimIsPlayer:
                if World.Time >= self.StartTime and World.Time <= self.EndTime:
                    HurtEvent.DamageAmount = 0
                    HurtEvent.Attacker.Notice("✘", "You cannot kill until Server time = " + self.EndTime + ": Time is now " + Word.Time)
                    return
                else:
                    return

    def On_EntityHurt(self, HurtEvent):
        if World.Time >= self.StartTime and World.Time <= self.EndTime:
            if HurtEvent.WeaponName == "Explosive Charge":
                HurtEvent.DamageAmount = 0
                HurtEvent.Attacker.Inventory.AddItem("Explosive Charge", 1)
                HurtEvent.Attacker.Notice("✘", "You cannot raid until Server time = " + self.EndTime + ": Time is now " + Word.Time)
                return
            elif HurtEvent.WeaponName == "F1 Grenade":
                  HurtEvent.DamageAmount = 0
                  HurtEvent.Attacker.Inventory.AddItem("F1 Grenade", 1)
                  HurtEvent.Attacker.Notice("✘", "You cannot raid until Server time = " + self.EndTime + ": Time is now " + Word.Time)
 

MeshBenth

☒Rustʕ•ᴥ•ʔRedux☒
Member
Oct 5, 2017
48
46
8
Parts Unknown
For some reason it cant check the time @salva @DreTaX
pls help me



Python:
__title__ = 'Raidpvp_schedule'
__author__ = 'ice cold'
__version__ = '1.0'

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

class Raidpvp_schedule:
    StartTime = None
    EndTime = None
    AntiRaid = None
    AntiPvp = None
  
    def On_PluginInit(self):
        ini = self.Settings()
        self.StartTime = int(ini.GetSetting("Schedule", "StartTime"))
        self.EndTime = int(ini.GetSetting("Schedule", "EndTime"))
        self.AntiRaid = int(ini.GetSetting("Settings", "AntiRaid"))
        self.AntiPvp = int(ini.GetSetting("Settings", "AntiPvp"))

    def Settings(self):
        if not Plugin.IniExists("Settings"):
            ini = Plugin.CreateIni("Settings")
            ini.AddSetting("Schedule", "StartTime", "17")
            ini.AddSetting("Schedule", "EndTime", "5")
            ini.AddSetting("Settings", "AntiRaid", "1")
            ini.AddSetting("Settings", "AntiPvp", "1")
            ini.Save()
        return Plugin.GetIni("Settings")



    def On_PlayerHurt(self, HurtEvent):
        if self.AntiPvp == 1:
            if HurtEvent.AttackerIsPlayer and HurtEvent.VictimIsPlayer:
                if World.Time >= self.StartTime and World.Time <= self.EndTime:
                    HurtEvent.DamageAmount = 0
                    HurtEvent.Attacker.Notice("✘", "You cannot kill until Server time = " + self.EndTime + ": Time is now " + Word.Time)
                    return
                else:
                    return

    def On_EntityHurt(self, HurtEvent):
        if World.Time >= self.StartTime and World.Time <= self.EndTime:
            if HurtEvent.WeaponName == "Explosive Charge":
                HurtEvent.DamageAmount = 0
                HurtEvent.Attacker.Inventory.AddItem("Explosive Charge", 1)
                HurtEvent.Attacker.Notice("✘", "You cannot raid until Server time = " + self.EndTime + ": Time is now " + Word.Time)
                return
            elif HurtEvent.WeaponName == "F1 Grenade":
                  HurtEvent.DamageAmount = 0
                  HurtEvent.Attacker.Inventory.AddItem("F1 Grenade", 1)
                  HurtEvent.Attacker.Notice("✘", "You cannot raid until Server time = " + self.EndTime + ": Time is now " + Word.Time)
What does World.Time tell you? Game time in mind Hh:Mm.
 

Jakkee

Plugin Developer
Plugin Developer
Contributor
Jul 28, 2014
1,465
925
113
Australia
Problem is here:
Python:
if World.Time >= self.StartTime and World.Time <= self.EndTime:
Say server time is 20,
if World.Time >= 17: True!
and
if World.Time <= 5: False!
Which means this if statement will always return false.

change and to or
Python:
if World.Time >= self.StartTime or World.Time <= self.EndTime:
You also might want to disable structures getting damaged or players will raid during this time
 

ice cold

Active Member
Trusted Member
Member
Oct 24, 2016
606
871
43
Canada
Problem is here:
Python:
if World.Time >= self.StartTime and World.Time <= self.EndTime:
Say server time is 20,
if World.Time >= 17: True!
and
if World.Time <= 5: False!
Which means this if statement will always return false.

change and to or
Python:
if World.Time >= self.StartTime or World.Time <= self.EndTime:
You also might want to disable structures getting damaged or players will raid during this time
I want block raid and pvp between Starttime and endtime
 

Jakkee

Plugin Developer
Plugin Developer
Contributor
Jul 28, 2014
1,465
925
113
Australia
I want block raid and pvp between Starttime and endtime
Whoops, Didnt scroll down far enough in your code. But still applies for both :)
Just replace AND with OR in both if statements:
Python:
if World.Time >= self.StartTime and World.Time <= self.EndTime:
to
Python:
if World.Time >= self.StartTime or World.Time <= self.EndTime:
 

ice cold

Active Member
Trusted Member
Member
Oct 24, 2016
606
871
43
Canada
Whoops, Didnt scroll down far enough in your code. But still applies for both :)
Just replace AND with OR in both if statements:
Python:
if World.Time >= self.StartTime and World.Time <= self.EndTime:
to
Python:
if World.Time >= self.StartTime or World.Time <= self.EndTime:
Yo thx buddy i wil try it out