Why doesnt this work?????

ice cold

Active Member
Trusted Member
Member
Oct 24, 2016
606
907
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)
 
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
 
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)
 
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.
 
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
 
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
 
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:
 
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