123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- import winsound
- # ---------------------------------------------------------------------
- # CONFIGURE SECTION
- # ---------------------------------------------------------------------
- # Enable alerts for specified conditions
- ALERT_ON_LOW_DURABILITY = True
- ALERT_ON_AFK = True
- ALERT_ON_LOW_LIFE = True
- # LAYERS_TO_CHECK defines all the items slots the should be checked
- # for low durability.
- #
- # Possible values (string):
- # RightHand, LeftHand, Shoes, Pants, Shirt, Head, Gloves, Ring,
- # Neck, Hair, Waist, InnerTorso, Bracelet, FacialHair, MiddleTorso,
- # Earrings, Arms, Cloak, OuterTorso, OuterLegs, InnerLegs, Talisman
- LAYERS_TO_CHECK = ["Head",
- "Gloves",
- "Ring",
- "Neck",
- "Hair",
- "Waist",
- "InnerTorso",
- "Bracelet",
- "MiddleTorso",
- "Earrings",
- "Cloak",
- "OuterTorso",
- "OuterLegs",
- "InnerLegs"]
- # LAYERS_LOW_DURABILITY_TRESHOLD defines the treshold value for
- # acoustic alert on low durability.
- LAYERS_DURABILITY_ALERT_VALUE = 3
- # AFK_GUMP_SEARCH defined the a search string to look for in current
- # gump. When found there will be an acoustic alert.
- AFK_GUMP_SEARCH = 'AFK'
- # AFK_JOURNAL_SEARCH defined the a search string to look for in journal.
- # When found there will be an acoustic alert.
- AFK_JOURNAL_SEARCH = 'You cannot fight while being afk checked.'
- # HITPOINTS_ALERT_VALUE defines the treshold value for acoustic
- # acoustic alert on low life.
- HITPOINTS_ALERT_VALUE = 100
- # ---------------------------------------------------------------------
- # SCRIPT SECTION - DO NOT EDIT BELOW HERE
- # ---------------------------------------------------------------------
- # cold start until player is logged in
- if not Player.Connected:
- while not Player.Connected:
- Misc.Pause(5000)
- def start():
- while Player.Connected:
- Journal.Clear()
- # check for AFK in Gump
- if ALERT_ON_AFK and Gumps.LastGumpTextExist("AFK"):
- print("there is an AFK check!")
- winsound.Beep(2800, 1000)
-
- # check for low life
- if ALERT_ON_LOW_LIFE and Player.Hits < 100:
- winsound.Beep(1800, 1000)
-
- # check for dura
- if ALERT_ON_LOW_DURABILITY:
- for layer in LAYERS_TO_CHECK:
- myitem = Player.GetItemOnLayer(layer)
- if myitem:
- #print(f"{layer}:{myitem.Name}")
- for p in myitem.Properties:
- if p.ToString().startswith("durability"):
- [current_dur, max_dur] = p.Args.split()
- if int(current_dur) <= LAYERS_DURABILITY_ALERT_VALUE:
- winsound.Beep(1400, 300)
- Misc.Pause(200)
- winsound.Beep(1500, 300)
- Misc.Pause(200)
- winsound.Beep(1600, 300)
- Misc.Pause(200)
- break
-
- # lets pause for a while, we dont need to check all the time
- Misc.Pause(2500)
- # lastly, we check the journal for AFK messages
- if ALERT_ON_AFK:
- if Journal.Search('You cannot fight while being afk checked.'):
- winsound.Beep(2800, 1000)
- if __name__ == '__main__':
- start()
|