From 66de7de3a593efca8001487809a5987289ff9f92 Mon Sep 17 00:00:00 2001 From: Joe DiPrima Date: Wed, 28 Dec 2022 18:02:05 -0600 Subject: [PATCH] 12/28/2022 --- mutants.py | 661 ------------------------------------ mutants_localbbs.py | 526 ---------------------------- mutants_paths.py | 812 -------------------------------------------- 3 files changed, 1999 deletions(-) delete mode 100644 mutants.py delete mode 100644 mutants_localbbs.py delete mode 100644 mutants_paths.py diff --git a/mutants.py b/mutants.py deleted file mode 100644 index af113c0..0000000 --- a/mutants.py +++ /dev/null @@ -1,661 +0,0 @@ -import getpass -import telnetlib -import re -import time -import keyboard -import random - -HOST = "telnet.goldenunicorn.net" -user = "epilectrik" -password = "gupass" -tn = telnetlib.Telnet() -tn.open(HOST,23) - -#static lists -convert_list = ["Ion-Pack","Ion-Decay","Cheese","Nuclear-thong","Skull","Bottle-Cap","Cigarette-Butt","Knife","Gas-Grenade", - "Light-Spear","Silver-Potion","Bastard-Sword","Invisible-Knife","Great-Club","Spear","Blizzard-Staff","Devil_Key","Grey-Dagger","Bone","Axe","BlackJack", - "Golden-Key","Crystal-Key","Trident","Ice-Knife","Iron-Sickle","Gold-Spear","Fang-Dagger","Hound-Fang","Pink-Potion","Small-Dagger","Mage-Stick","Purple-Potion", - "Tree-Branch","Poker","Bronze Knife","Small-Club","Wonderous-Sword","Spell-Potion","Long-Sword","Ion-Gauntlet","Sling-Sword","Green-Vial","Small-Spear", - "Tree-Stump","Saphire","Flame-Sword","Rock-Club","Lava-Dagger","Bloody-Arm","Golden-Needle"] - -farm_list = ["Gold-Chunck","Nuclear-Rock","Nuclear-Decay","Invisible-Cloth","Troll-Skin","Nuclear-Waste"] - -friend_list = ["Epilectrik","ImBait","Mtron","Im"] - -help_list = ["$ - Key listener on/off", - "8 - North", - "2 - South", - "6 - East", - "4 - West", - "5 - Look direction", - "c - Combat", - "w - Wield weapon", - "a - Auto combat on/off", - "f - Auto farm on/off", - "i - Auto Ion on/off", - "t - time travel", - "d - drop item", - "k - keyboard input", - "v - status", - "m - meander" - ] - -#dynamic lists -local_items = [] -local_monsters = [] - -#modes -heal = False -wander = False -auto_combat = False -auto_ion = False -auto_farm = False -key_detect = True -#states -time_steps = 0 -in_combat = False -hits = 0 -lock_key="$" -direction_list = [] -sell_list = [] -previous_dir = "" - -opposite_dir = { - "north":"south", - "south":"north", - "east":"west", - "west":"east", -} - -#search a list -def search(list, platform): - for i in range(len(list)): - if list[i] == platform: - return True - return False - -#Reup Ions -def convert_items(): - global local_items - global convert_list - for item_l in local_items: - for item in convert_list: - if item_l == item: - tn.write(b"get "+item.encode('ascii')+b"\r\n") - tn.write(b"con "+item.encode('ascii')+b"\r\n") - local_items.remove(item_l) - -#Farms valuable stuff -def farm_items(): - global local_items - global farm_list - global sell_list - - for item_l in local_items: - for item in farm_list: - if item_l == item: - tn.write(b"get "+item.encode('ascii')+b"\r\n") - local_items.remove(item_l) - sell_list.append(item_l) - -#Sell items -def sell_items(): - global sell_list - print(sell_list) - while len(sell_list) > 0: - item_l=sell_list[0] - sell_list.pop(0) - if item_l != "Nuclear-Decay": - tn.write(b"sell "+item_l.encode('ascii')+b"\r\n") - time.sleep(.25) - - -#Remove friends from monster list -def remove_friends(): - global local_monsters - for friend in friend_list: - try: - local_monsters.remove(friend) - except: - pass - -#Flushes keyboard -def flush_input(): - - try: - import msvcrt - while msvcrt.kbhit(): - msvcrt.getch() - except ImportError: - import sys, termios - termios.tcflush(sys.stdin, termios.TCIOFLUSH) - -def decode_line(line): - result = "" - if line.decode('cp1252') != "": - ansi_escape = re.compile(r'\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])') - result = ansi_escape.sub('', line.decode('cp1252').strip('\n')) - print(result) - return result - -#initiate combat -def combat_start(): - global local_monsters - global in_combat - - tn.write(b"combat " + local_monsters[0].encode('ascii')+b"\r\n") - in_combat = True - heal = True - -#process wander -def wander_process(result,wander_trigger): - global heal - global direction_list - global previous_dir - global local_monsters - global local_items - - #area clear - if result.find("north - area continues.") != -1 or result.find("north - open gate.") != -1: - direction_list.append("north") - if result.find("south - area continues.") != -1 or result.find("south - open gate.") != -1: - direction_list.append("south") - if result.find("east - area continues.") != -1 or result.find("east - open gate.") != -1: - direction_list.append("east") - if result.find("west - area continues.") != -1 or result.find("west - open gate.") != -1: - direction_list.append("west") - - #print(direction_list) - #are there monsters - if result.find("You see shadows to the") != -1: - try: - if result.find("north") != -1: - direction_list.remove("north") - if result.find("south") != -1: - direction_list.remove("south") - if result.find("east") != -1: - direction_list.remove("east") - if result.find("west") != -1: - direction_list.remove("west") - except: - pass - - if wander_trigger == 0: - print("wander triggered") - if len(direction_list) == 0: - tn.write(b"look\r\n") - local_monsters = [] - local_items = [] - - #pick randomly - if len(direction_list) > 0 and wander_trigger == 0: - if len(direction_list) > 1: - try: - direction_list.remove(previous_dir) - except: - pass - print(direction_list) - dir_choice = random.choice(direction_list) - tn.write(dir_choice.encode('ascii')+b"\r\n") - direction_list = [] - previous_dir = opposite_dir[dir_choice] - -#process combat per loop -def combat_process(result): - global heal - global hits - global time_steps - global local_monsters - global in_combat - - if result.find("You suffer") != -1: - hits = hits + 1 - if hits == 2: - tn.write(b"heal\r\n") - tn.write(b"heal\r\n") - hits = 0 - - if result.find("have slain") != -1 or result.find("has just left") != -1 or result.find("isn't around here!") != -1 or result.find("You're not ready") != -1: - try: - local_monsters.pop(0) - except: - pass - if len(local_monsters) > 0: - tn.write(b"combat " + local_monsters[0].encode('ascii')+b"\r\n") - else: - print("Area cleared") - in_combat = False - - wield = time_steps % 10 - - if wield == 0: - tn.write(b"wie nuclear-decay\r\n") - -def parse_stat(): - global farm_list - global sell_list - sell_list = [] - line = tn.read_until(b">",0) # Read one line - result = decode_line(line) - for item_l in farm_list: - x = line.decode('ascii').count(item_l) - for i in range(x): - sell_list.append(item_l) - print(sell_list) - -def index_area(): - global local_items - global local_monsters - end_index = 0 - line = tn.read_until(b">",0) # Read one line - result = decode_line(line) - #Index items - if result.find("On the ground lies:") != -1: - start_index = result.index('On the ground lies:') - item_str = result[start_index:] - try: - end_index = item_str.index('***') - except: - try: - end_index = item_str.index('>') - except: - pass - item_str = item_str[:end_index] - item_str = item_str.replace("On the ground lies:","") - item_str = item_str.replace("0","") - item_str = item_str.replace("1","") - item_str = item_str.replace("2","") - item_str = item_str.replace("3","") - item_str = item_str.replace("4","") - item_str = item_str.replace("5","") - item_str = item_str.replace("6","") - item_str = item_str.replace("7","") - item_str = item_str.replace("8","") - item_str = item_str.replace("9","") - item_str = item_str.replace("(","") - item_str = item_str.replace(")","") - item_str = item_str.replace("A ","") - item_str = item_str.replace("An ","") - item_str = item_str.replace(" ","") - item_str = item_str.replace(".","") - item_str = item_str.replace("\r\n","") - item_str = item_str.replace("***","") - local_items = list(item_str.split(",")) - print(local_items) - - if result.find("here") != -1: - end_index = result.index('here') - monster_str = result[:end_index] - start_index = monster_str.rindex('***') - monster_str = monster_str[start_index:] - monster_str = monster_str.replace("\r\n","") - monster_str = monster_str.replace(" and ","") - monster_str = monster_str.replace(" are ","") - monster_str = monster_str.replace(" is ","") - monster_str = monster_str.replace(" ","") - monster_str = monster_str.replace(".","") - monster_str = monster_str.replace("***","") - local_monsters = list(monster_str.split(",")) - remove_friends() - print(local_monsters) - -def mutants(): - global time_steps - global local_items - global local_monsters - global heal - global wander - global in_combat - global key_detect - global auto_combat - global auto_farm - global auto_ion - global lock_key - global direction_list - - area_indexed = False - while True: - #print(local_items) - time.sleep(.1) - time_steps = time_steps + 1 - #data decode - result = "" - line = None - line = tn.read_until(b"\n",0) # Read one line - result = decode_line(line) - - stat_trigger = time_steps % 600 - if stat_trigger == 0 and not in_combat: - tn.write(b"stat\r\n") - - heal_trigger = time_steps % 20 - if heal_trigger == 0: - if heal: - tn.write(b"heal\r\n") - - #auto farm if sold items - if len(sell_list) == 0 and wander: - auto_farm = True - - #process wander[[ - wander_trigger = time_steps % 30 - if wander and not in_combat: - if wander_trigger == 0: - area_indexed = False - #print("wander triggered") - wander_process(result,wander_trigger) - - if time_steps == 1000: - time_steps = 0 - - #process combat - if in_combat: - combat_process(result) - - #scrapers - if result == "(N)onstop, (Q)uit, or (C)ontinue?": - tn.write(b"N\r\n") - - if result.find("You're starving for IONS!") != -1: - tn.write(b"con gold-chunck\r\n") - auto_ion = True - heal = True - - if wander and result.find("The weight of all your items forces you to the ground.") != -1: - wander = False - tn.write(b"X\r\n") - - if auto_farm and result.find("The Nuclear-Decay fell out of your sack!") != -1: - time_steps = 0 - tn.write(b"con gold-chunck\r\n") - tn.write(b"get nuclear-decay\r\n") - - if auto_farm and result.find("You're not carrying a gold-chunck.") != -1: - auto_farm = False - - if result.find("The Monster-Bait fell out of your sack!") != -1: - time_steps = 0 - tn.write(b"con gold-chunck\r\n") - tn.write(b"get monster-bait\r\n") - - #if wander and result.find("fell out of your sack!") != -1: - #wander = False - #auto_farm = False - - if wander and (result.find("It's too dark to see anything!") != -1 or result.find("You're blocked!") != -1): - direction_list = ["north","south","east","west"] - - if result.find("travel") != -1: - local_monsters = [] - - if result.find("City Trading Centre") != -1: - #print("Sell trigger") - if len(sell_list) > 0: - sell_items() - - if result.find("Compass:") != -1 and area_indexed == False: - index_area() - if wander: - tn.write(b"look\r\n") - area_indexed = True - - if result.find("stat") != -1: - parse_stat() - - if result.find("Nothing happens!") != -1 or result.find("You don't have enough ions to heal!") != -1: - heal = False - - if result.find("You suffer") != -1 or result.find("You are poisoned!") != -1: - heal = True - - #monster list related - if (result.find("yells: Gimmie") != -1 or - result.find("just arrived from") != -1 or - result.find("has hit") != -1 or - result.find("body is glowing") != -1 or - result.find("Get away from me") != -1 or - result.find("has magically appeared") != -1): - m = result.index(' ') - monster = result[:m] - if not search(local_monsters, monster): - local_monsters.append(monster) - remove_friends() - print(local_monsters) - if len(local_monsters) > 0 and auto_combat and not in_combat: - combat_start() - - if result.find("has just left") != -1: - end_index = result.index(' has') - mon_str = result[:end_index] - mon_str = mon_str.replace(" ","") - try: - local_monsters.remove(mon_str) - except: - pass - print(mon_str) - print(local_monsters) - - if result.find("is crumbling to dust") != -1: - end_index = result.index(' is') - mon_str = result[:end_index] - mon_str = mon_str.replace(" ","") - try: - local_monsters.remove(mon_str) - except: - pass - print(mon_str) - print(local_monsters) - - if result.find("picked up the") != -1: - start_index = result.index('the') + 4 - item_str = result[start_index:] - end_index = item_str.index('.') - item_str = item_str[:end_index] - item_str = item_str.replace(" ","") - try: - local_items.remove(item_str) - except: - pass - print(item_str) - print(local_items) - - if result.find("is falling from") != -1: - start_index = result.index('A') - item_str = result[start_index:] - end_index = item_str.index('is') - item_str = item_str[:end_index] - item_str = item_str.replace(" ","") - item_str = item_str.replace("is","") - item_str = item_str.replace("An","") - item_str = item_str.replace("A","") - local_items.append(item_str) - print(local_items) - - if result.find("Select (Bury, 1-5, ?)") != -1: - in_combat=False - heal = False - wander = False - auto_farm = False - auto_ion = False - - #farm items - if len(local_items) > 0 and not in_combat: - if auto_farm: - farm_items() - if auto_ion: - convert_items() - #print("convert") - - #functions - if keyboard.is_pressed(lock_key): - time.sleep(.5) - if key_detect: - key_detect = False - print("Key detect off") - else: - key_detect = True - print("Key detect on") - - if key_detect: - if keyboard.is_pressed("?"): - time.sleep(.5) - for help in help_list: - print(help) - #directions - if keyboard.is_pressed("8"): - local_monsters = [] - local_items = [] - tn.write(b"north\r\n") - area_indexed = False - time.sleep(.25) - if keyboard.is_pressed("2"): - local_monsters = [] - local_items = [] - tn.write(b"south\r\n") - area_indexed = False - time.sleep(.25) - if keyboard.is_pressed("4"): - local_monsters = [] - local_items = [] - tn.write(b"west\r\n") - area_indexed = False - time.sleep(.25) - if keyboard.is_pressed("6"): - local_monsters = [] - local_items = [] - tn.write(b"east\r\n") - area_indexed = False - time.sleep(.25) - #functions - if keyboard.is_pressed("a"): - time.sleep(.5) - if auto_combat: - auto_combat = False - print("Auto combat off") - else: - auto_combat = True - print("Auto combat on") - #Auto Ion - if keyboard.is_pressed("i"): - time.sleep(.5) - if auto_ion: - auto_ion = False - print("Auto ion off") - else: - auto_ion = True - print("Auto ion on") - #Auto farm - if keyboard.is_pressed("f"): - time.sleep(.5) - if auto_farm: - auto_farm = False - print("Auto farm off") - else: - auto_farm = True - print("Auto farm on") - - if keyboard.is_pressed("c"): - if len(local_monsters) > 0: - combat_start() - time.sleep(.25) - if keyboard.is_pressed("5"): - tn.write(b"look ") - time.sleep(.25) - - if keyboard.is_pressed("m"): - time.sleep(.5) - if wander: - wander = False - print("Meander off") - else: - wander = True - print("Meander on") - tn.write(b"look\r\n") - - if keyboard.is_pressed("h"): - tn.write(b"heal\r\n") - heal = True - time.sleep(.25) - if keyboard.is_pressed("l"): - area_indexed == False - tn.write(b"look\r\n") - time.sleep(.25) - if keyboard.is_pressed("m"): - wander = True - if keyboard.is_pressed("v"): - tn.write(b"stat\r\n") - time.sleep(.25) - if keyboard.is_pressed("s"): - sell_items() - time.sleep(.25) - if keyboard.is_pressed("k") and not in_combat: - time.sleep(.25) - flush_input() - #toss = keyboard.read_key() - st = input("Keyboard input: ") - tn.write(st.encode('ascii')+b"\r\n") - flush_input() - - if keyboard.is_pressed("w"): - time.sleep(.25) - tn.write(b"wie nuclear-decay\r\n") - - if keyboard.is_pressed("d"): - time.sleep(.25) - flush_input() - #toss = keyboard.read_key() - st = input("drop item: ") - drop_item = "drop " + st - tn.write(drop_item.encode('ascii')+b"\r\n") - - if keyboard.is_pressed("t") and not in_combat: - monster_list = [] - time.sleep(.25) - flush_input() - #toss = keyboard.read_key() - st = input("year: ") - year = "travel " + st - tn.write(year.encode('ascii')+b"\r\n") - - if keyboard.is_pressed("x"): - break - -user = input("User name:") -password = input("Password:") -lock_key = input("Lock key:") - -while True: - line = None - line = tn.read_until(b"\n",1) # Read one line - if line.decode('cp1252') == "": - #print("break") - #break - pass - else: - ansi_escape = re.compile(r'\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])') - result = ansi_escape.sub('', line.decode('cp1252').strip('\n')) - print(result) - if result == "Otherwise type \"new\": ": - tn.write(user.encode('ascii')+b"\r\n") - - if result == "Enter your password: ": - tn.write(password.encode('ascii')+b"\r\n") - - if result == "(N)onstop, (Q)uit, or (C)ontinue?": - tn.write(b"Q\r\n") - - if result == "Make your selection (G,T,F,M,S,? for help, or X to exit): ": - tn.write(b"G\r\n") - - if result == "help, or X to exit): ": - tn.write(b"C\r\n") - - if result == "Select (P,I,H,S,W,X,?): ": - tn.write(b"P\r\n") - - if result == "Select (Bury, 1-5, ?) ": - tn.write(b"4\r\n") - mutants() - break - - \ No newline at end of file diff --git a/mutants_localbbs.py b/mutants_localbbs.py deleted file mode 100644 index 0459934..0000000 --- a/mutants_localbbs.py +++ /dev/null @@ -1,526 +0,0 @@ -import getpass -import telnetlib -import re -import time -import keyboard -import random - -HOST = "192.168.86.34" -user = "epilectrik" -password = "gupass" -tn = telnetlib.Telnet() -tn.open(HOST,2323) - -#static lists -convert_list = ["Ion-Pack","Ion-Decay","Cheese","Nuclear-thong","Skull","Bottle-Cap","Cigarette-Butt","Knife","Gas-Grenade", - "Light-Spear","Silver-Potion","Bastard-Sword","Invisible-Knife","Great-Club","Spear","Blizzard-Staff","Devil_Key","Grey-Dagger","Bone","Axe","BlackJack", - "Golden-Key","Crystal-Key","Trident","Ice-Knife","Iron-Sickle","Gold-Spear","Fang-Dagger","Hound-Fang","Pink-Potion","Small-Dagger","Mage-Stick","Purple-Potion", - "Tree-Branch","Poker","Bronze Knife","Small-Club","Wonderous-Sword","Spell-Potion","Long-Sword","Ion-Gauntlet","Sling-Sword","Green-Vial","Small-Spear", - "Tree-Stump","Saphire","Flame-Sword","Rock-Club","Lava-Dagger","Bloody-Arm"] - -farm_list = ["Gold-Chunck","Nuclear-Rock","Nuclear-Decay","Invisible-Cloth","Troll-Skin","Ion-Booster","Nuclear-Waste"] - -friend_list = ["Epilectrik","ImBait","Mtron","Im"] - -help_list = ["$ - Key listener on/off", - "8 - North", - "2 - South", - "6 - East", - "4 - West", - "5 - Look direction", - "c - Combat", - "w - Wield weapon", - "a - Auto combat on/off", - "f - Auto farm on/off", - "i - Auto Ion on/off", - "t - time travel", - "d - drop item", - "k - keyboard input", - "v - status", - "m - meander" - ] - -#dynamic lists -local_items = [] -local_monsters = [] - -#modes -heal = False -wander = False -auto_combat = False -auto_ion = False -auto_farm = False -key_detect = True -#states -time_steps = 0 -in_combat = False -hits = 0 -lock_key="$" -north_ok = True -south_ok = True -west_ok = True -east_ok = True - - -#Reup Ions -def convert_items(): - global local_items - global convert_list - for item_l in local_items: - for item in convert_list: - if item_l == item: - tn.write(b"get "+item.encode('ascii')+b"\r\n") - tn.write(b"con "+item.encode('ascii')+b"\r\n") - local_items.remove(item_l) - -#Farms valuable stuff -def farm_items(): - global local_items - global farm_list - for item_l in local_items: - for item in farm_list: - if item_l == item: - tn.write(b"get "+item.encode('ascii')+b"\r\n") - local_items.remove(item_l) - -#Remove friends from monster list -def remove_friends(): - global local_monsters - for friend in friend_list: - try: - local_monsters.remove(friend) - except: - pass - -#Flushes keyboard -def flush_input(): - - try: - import msvcrt - while msvcrt.kbhit(): - msvcrt.getch() - except ImportError: - import sys, termios - termios.tcflush(sys.stdin, termios.TCIOFLUSH) - -def decode_line(line): - result = "" - if line.decode('cp1252') != "": - ansi_escape = re.compile(r'\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])') - result = ansi_escape.sub('', line.decode('cp1252').strip('\n')) - print(result) - return result - -#initiate combat -def combat_start(): - global local_monsters - global in_combat - - tn.write(b"combat " + local_monsters[0].encode('ascii')+b"\r\n") - in_combat = True - heal = True - -#process wander -def wander_process(result) - global heal - global north_ok - global south_ok - global east_ok - global west_ok - - direction_list = [] - - #area clear - if result.find("north - area continues.") != -1: - direction_list.add("north") - if result.find("south - area continues.") != -1: - direction_list.add("south") - if result.find("east - area continues.") != -1: - direction_list.add("east") - if result.find("west - area continues.") != -1: - direction_list.add("west") - - #are there monsters - if result.find("You see shadows to the"): - if result.find("north"): - direction_list.remove("north") - if result.find("south"): - direction_list.remove("south") - if result.find("east"): - direction_list.remove("east") - if result.find("west"): - direction_list.remove("west") - print(direction_list) - #pick randomly - if len(direction_list) > 0: - dir_choice = random.choice(direction_list) - tn.write(dir_choice.encode('ascii')+b"\r\n") - -#process combat per loop -def combat_process(result): - global heal - global hits - global time_steps - global local_monsters - global in_combat - - if result.find("You suffer") != -1: - hits = hits + 1 - if hits == 2: - tn.write(b"heal\r\n") - tn.write(b"heal\r\n") - hits = 0 - - if result.find("have slain") != -1 or result.find("has just left") != -1 or result.find("isn't around here!") != -1 or result.find("You're not ready") != -1: - try: - local_monsters.pop(0) - except: - pass - if len(local_monsters) > 0: - tn.write(b"combat " + local_monsters[0].encode('ascii')+b"\r\n") - else: - print("Area cleared") - in_combat = False - - wield = time_steps % 5 - - if wield == 0: - tn.write(b"wie nuclear-decay\r\n") - -def index_area(): - global local_items - global local_monsters - line = tn.read_until(b">",0) # Read one line - result = decode_line(line) - #Index items - if result.find("On the ground lies:") != -1: - start_index = result.index('On the ground lies:') - item_str = result[start_index:] - try: - end_index = item_str.index('***') - except: - end_index = item_str.index('>') - item_str = item_str[:end_index] - item_str = item_str.replace("On the ground lies:","") - item_str = item_str.replace("0","") - item_str = item_str.replace("1","") - item_str = item_str.replace("2","") - item_str = item_str.replace("3","") - item_str = item_str.replace("4","") - item_str = item_str.replace("5","") - item_str = item_str.replace("6","") - item_str = item_str.replace("7","") - item_str = item_str.replace("8","") - item_str = item_str.replace("9","") - item_str = item_str.replace("(","") - item_str = item_str.replace(")","") - item_str = item_str.replace("A ","") - item_str = item_str.replace("An ","") - item_str = item_str.replace(" ","") - item_str = item_str.replace(".","") - item_str = item_str.replace("\r\n","") - item_str = item_str.replace("***","") - local_items = list(item_str.split(",")) - print(local_items) - - if result.find("here") != -1: - end_index = result.index('here') - monster_str = result[:end_index] - start_index = monster_str.rindex('***') - monster_str = monster_str[start_index:] - monster_str = monster_str.replace("\r\n","") - monster_str = monster_str.replace(" and ","") - monster_str = monster_str.replace(" are ","") - monster_str = monster_str.replace(" is ","") - monster_str = monster_str.replace(" ","") - monster_str = monster_str.replace(".","") - monster_str = monster_str.replace("***","") - local_monsters = list(monster_str.split(",")) - remove_friends() - print(local_monsters) - -def mutants(): - global time_steps - global local_items - global local_monsters - global heal - global wander - global in_combat - global key_detect - global auto_combat - global auto_farm - global auto_ion - global lock_key - - while True: - #print(local_items) - time.sleep(.1) - time_steps = time_steps + 1 - #data decode - result = "" - line = None - line = tn.read_until(b"\n",0) # Read one line - result = decode_line(line) - - heal_trigger = time_steps % 20 - if heal_trigger == 0: - if heal: - tn.write(b"heal\r\n") - - #process wander - wander_trigger = time_steps % 50 - if wander: - process_wander(result) - - if time_steps == 1000: - time_steps = 0 - - #process combat - if in_combat: - combat_process(result) - - #scrapers - if result == "(N)onstop, (Q)uit, or (C)ontinue?": - tn.write(b"N\r\n") - - if result.find("travel") != -1: - local_monsters = [] - - if result.find("Compass:") != -1: - index_area() - - if result.find("Nothing happens!") != -1 or result.find("You don't have enough ions to heal!") != -1: - heal = False - - if result.find("You suffer") != -1 or result.find("You are poisoned!") != -1: - heal = True - - #monster list related - if result.find("yells: Gimmie") != -1 or result.find("just arrived from") != -1 or result.find("has magically appeared") != -1: - m = result.index(' ') - monster = result[:m] - local_monsters.append(monster) - remove_friends() - print(local_monsters) - if len(local_monsters) > 0 and auto_combat: - combat_start() - - if result.find("has just left") != -1: - end_index = result.index(' has') - mon_str = result[:end_index] - mon_str = mon_str.replace(" ","") - try: - local_monsters.remove(mon_str) - except: - pass - print(mon_str) - print(local_monsters) - - if result.find("is crumbling to dust") != -1: - end_index = result.index(' is') - mon_str = result[:end_index] - mon_str = mon_str.replace(" ","") - try: - local_monsters.remove(mon_str) - except: - pass - print(mon_str) - print(local_monsters) - - if result.find("picked up the") != -1: - start_index = result.index('the') + 4 - item_str = result[start_index:] - end_index = item_str.index('.') - item_str = item_str[:end_index] - item_str = item_str.replace(" ","") - try: - local_items.remove(item_str) - except: - pass - print(item_str) - print(local_items) - - if result.find("is falling from") != -1: - start_index = result.index('A') - item_str = result[start_index:] - end_index = item_str.index('is') - item_str = item_str[:end_index] - item_str = item_str.replace(" ","") - item_str = item_str.replace("is","") - item_str = item_str.replace("An","") - item_str = item_str.replace("A","") - local_items.append(item_str) - print(local_items) - - if result.find("Select (Bury, 1-5, ?)") != -1: - in_combat=False - heal = False - - #farm items - if len(local_items) > 0: - if auto_farm: - farm_items() - if auto_ion: - convert_items() - #print("convert") - - #functions - if keyboard.is_pressed(lock_key): - time.sleep(.5) - if key_detect: - key_detect = False - print("Key detect off") - else: - key_detect = True - print("Key detect on") - - if key_detect: - if keyboard.is_pressed("?"): - time.sleep(.5) - for help in help_list: - print(help) - #directions - if keyboard.is_pressed("8"): - local_monsters = [] - local_items = [] - tn.write(b"north\r\n") - time.sleep(.25) - if keyboard.is_pressed("2"): - local_monsters = [] - local_items = [] - tn.write(b"south\r\n") - time.sleep(.25) - if keyboard.is_pressed("4"): - local_monsters = [] - local_items = [] - tn.write(b"west\r\n") - time.sleep(.25) - if keyboard.is_pressed("6"): - local_monsters = [] - local_items = [] - tn.write(b"east\r\n") - time.sleep(.25) - #functions - if keyboard.is_pressed("a"): - time.sleep(.5) - if auto_combat: - auto_combat = False - print("Auto combat off") - else: - auto_combat = True - print("Auto combat on") - #Auto Ion - if keyboard.is_pressed("i"): - time.sleep(.5) - if auto_ion: - auto_ion = False - print("Auto ion off") - else: - auto_ion = True - print("Auto ion on") - #Auto farm - if keyboard.is_pressed("f"): - time.sleep(.5) - if auto_farm: - auto_farm = False - print("Auto farm off") - else: - auto_farm = True - print("Auto farm on") - - if keyboard.is_pressed("c"): - if len(local_monsters) > 0: - combat_start() - time.sleep(.25) - if keyboard.is_pressed("5"): - tn.write(b"look ") - time.sleep(.25) - - if keyboard.is_pressed("m"): - time.sleep(.5) - if wander: - wander = False - print("Meander off") - else: - wander = True - print("Meander on") - - if keyboard.is_pressed("h"): - tn.write(b"heal\r\n") - heal = True - time.sleep(.25) - if keyboard.is_pressed("l"): - tn.write(b"look\r\n") - time.sleep(.25) - if keyboard.is_pressed("m"): - wander = True - if keyboard.is_pressed("v"): - tn.write(b"stat\r\n") - time.sleep(.25) - if keyboard.is_pressed("s"): - tn.write(b"sell gold-chunck\r\n") - time.sleep(.25) - if keyboard.is_pressed("k"): - time.sleep(.25) - flush_input() - #toss = keyboard.read_key() - st = input("Keyboard input: ") - tn.write(st.encode('ascii')+b"\r\n") - flush_input() - - if keyboard.is_pressed("d"): - time.sleep(.25) - flush_input() - #toss = keyboard.read_key() - st = input("drop item: ") - drop_item = "drop " + st - tn.write(drop_item.encode('ascii')+b"\r\n") - - if keyboard.is_pressed("t"): - monster_list = [] - time.sleep(.25) - flush_input() - #toss = keyboard.read_key() - st = input("year: ") - year = "travel " + st - tn.write(year.encode('ascii')+b"\r\n") - - if keyboard.is_pressed("x"): - break - -user = input("User name:") -password = input("Password:") -lock_key = input("Lock key:") - -while True: - line = None - line = tn.read_until(b"\n",1) # Read one line - if line.decode('cp1252') == "": - #print("break") - #break - pass - else: - ansi_escape = re.compile(r'\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])') - result = ansi_escape.sub('', line.decode('cp1252').strip('\n')) - print(result) - if result == "Username: ": - tn.write(user.encode('ascii')+b"\r\n") - - if result == "Password: ": - tn.write(password.encode('ascii')+b"\r\n") - - if result == "(N)onstop, (Q)uit, or (C)ontinue?": - tn.write(b"Q\r\n") - - if result == "Make your selection (X to exit): ": - tn.write(b"1\r\n") - - if result == "Select (P,I,H,S,W,X,?): ": - tn.write(b"P\r\n") - - if result == "Select (Bury, 1-5, ?) ": - tn.write(b"4\r\n") - mutants() - break - - \ No newline at end of file diff --git a/mutants_paths.py b/mutants_paths.py deleted file mode 100644 index cba085a..0000000 --- a/mutants_paths.py +++ /dev/null @@ -1,812 +0,0 @@ -import getpass -import telnetlib -import re -import time -import keyboard -import random - -HOST = "telnet.goldenunicorn.net" -user = "epilectrik" -password = "gupass" -tn = telnetlib.Telnet() -tn.open(HOST,23) - -#static lists -convert_list = ["Ion-Pack","Ion-Decay","Cheese","Nuclear-thong","Skull","Bottle-Cap","Cigarette-Butt","Knife","Gas-Grenade", - "Light-Spear","Silver-Potion","Bastard-Sword","Invisible-Knife","Great-Club","Spear","Blizzard-Staff","Devil_Key","Grey-Dagger","Bone","Axe","BlackJack", - "Golden-Key","Crystal-Key","Trident","Ice-Knife","Iron-Sickle","Gold-Spear","Fang-Dagger","Hound-Fang","Pink-Potion","Small-Dagger","Mage-Stick","Purple-Potion", - "Tree-Branch","Poker","Bronze Knife","Small-Club","Wonderous-Sword","Spell-Potion","Long-Sword","Ion-Gauntlet","Sling-Sword","Green-Vial","Small-Spear", - "Tree-Stump","Saphire","Flame-Sword","Rock-Club","Lava-Dagger","Bloody-Arm","Golden-Needle","Ion-Booster"] - -farm_list = ["Gold-Chunck","Nuclear-Rock","Nuclear-Waste"] - -stock_list = ["Nuclear-Decay","Troll-Skin","Invisible-Cloth","Hell-Blade",""] - -friend_list = ["Epilectrik","ImBait","Mtron","Im"] - -help_list = ["$ - Key listener on/off", - "8 - North", - "2 - South", - "6 - East", - "4 - West", - "5 - Look direction", - "c - Combat", - "w - Wield weapon", - "a - Auto combat on/off", - "f - Auto farm on/off", - "i - Auto Ion on/off", - "t - time travel", - "d - drop item", - "k - keyboard input", - "v - status", - "m - meander" - ] - -#dynamic lists -local_items = [] -local_monsters = [] - -#modes -heal = False -wander = False -auto_combat = False -auto_ion = False -auto_farm = False -key_detect = True -#states -time_steps = 0 -in_combat = False -hits = 0 -lock_key="$" -direction_list = [] -sell_list = [] -previous_dir = "" -selected_path = 0 -path_step = 0 -riblets = 0 -riblet_thresh = 100000 -farm_year=2000 -year_limit=2500 -no_action_cnt = 0 -na_thresh = 50 - -path_list = [ - ["done","tra 2000","south","deposit "+str(riblet_thresh),"stat","tra "+str(farm_year),"done"], - ["done","tra 2000","east","east","east","deposit "+str(riblet_thresh),"stat","tra "+str(farm_year),"done"], - ["done","tra 2000","south","south","south","south","south","south","west","west","west","north","deposit "+str(riblet_thresh),"stat","tra "+str(farm_year),"done"] - ] - -opposite_dir = { - "north":"south", - "south":"north", - "east":"west", - "west":"east", -} - -#search a list -def search(list, platform): - for i in range(len(list)): - if list[i] == platform: - return True - return False - -#Reup Ions -def convert_items(): - global local_items - global convert_list - for item_l in local_items: - for item in convert_list: - if item_l == item: - tn.write(b"get "+item.encode('ascii')+b"\r\n") - tn.write(b"con "+item.encode('ascii')+b"\r\n") - local_items.remove(item_l) - -#Farms valuable stuff -def farm_items(): - global local_items - global farm_list - global sell_list - global no_action_cnt - - for item_l in local_items: - for item in farm_list: - if item_l == item: - tn.write(b"get "+item.encode('ascii')+b"\r\n") - local_items.remove(item_l) - sell_list.append(item_l) - no_action_cnt = 0 - -#Sell items -def sell_items(): - global sell_list - print(sell_list) - while len(sell_list) > 0: - item_l=sell_list[0] - sell_list.pop(0) - if item_l != "Nuclear-Decay": - tn.write(b"sell "+item_l.encode('ascii')+b"\r\n") - time.sleep(.25) - - -#Remove friends from monster list -def remove_friends(): - global local_monsters - for friend in friend_list: - try: - local_monsters.remove(friend) - except: - pass - -#Flushes keyboard -def flush_input(): - - try: - import msvcrt - while msvcrt.kbhit(): - msvcrt.getch() - except ImportError: - import sys, termios - termios.tcflush(sys.stdin, termios.TCIOFLUSH) - -#Decode incoming information -def decode_line(line): - result = "" - if line.decode('cp1252') != "": - ansi_escape = re.compile(r'\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])') - result = ansi_escape.sub('', line.decode('cp1252').strip('\n')) - print(result) - return result - -#initiate combat -def combat_start(): - global local_monsters - global in_combat - global path_step - global no_action_cnt - - tn.write(b"combat " + local_monsters[0].encode('ascii')+b"\r\n") - in_combat = True - heal = True - path_step = 0 - no_action_cnt = 0 - -#process wander -def wander_process(result,wander_trigger): - global heal - global direction_list - global previous_dir - global local_monsters - global local_items - global no_action_cnt - - #area clear - if result.find("north - area continues.") != -1 or result.find("north - open gate.") != -1: - direction_list.append("north") - if result.find("south - area continues.") != -1 or result.find("south - open gate.") != -1: - direction_list.append("south") - if result.find("east - area continues.") != -1 or result.find("east - open gate.") != -1: - direction_list.append("east") - if result.find("west - area continues.") != -1 or result.find("west - open gate.") != -1: - direction_list.append("west") - - #are there monsters - if result.find("You see shadows to the") != -1: - try: - if result.find("north") != -1: - direction_list.remove("north") - if result.find("south") != -1: - direction_list.remove("south") - if result.find("east") != -1: - direction_list.remove("east") - if result.find("west") != -1: - direction_list.remove("west") - except: - pass - - if wander_trigger == 0: - print("wander triggered") - print("no action: " + str(no_action_cnt)) - #increment no action counter - no_action_cnt = no_action_cnt + 1 - if len(direction_list) == 0: - tn.write(b"look\r\n") - local_monsters = [] - local_items = [] - - #pick randomly - if len(direction_list) > 0 and wander_trigger == 0: - if len(direction_list) > 1: - try: - direction_list.remove(previous_dir) - except: - pass - print(direction_list) - dir_choice = random.choice(direction_list) - tn.write(dir_choice.encode('ascii')+b"\r\n") - direction_list = [] - previous_dir = opposite_dir[dir_choice] - -#process combat per loop -def combat_process(result): - global heal - global hits - global time_steps - global local_monsters - global in_combat - - if result.find("You suffer") != -1: - hits = hits + 1 - if hits == 2: - tn.write(b"heal\r\n") - tn.write(b"heal\r\n") - hits = 0 - - if result.find("have slain") != -1 or result.find("has just left") != -1 or result.find("isn't around here!") != -1 or result.find("You're not ready") != -1: - try: - local_monsters.pop(0) - except: - pass - if len(local_monsters) > 0: - tn.write(b"combat " + local_monsters[0].encode('ascii')+b"\r\n") - else: - print("Area cleared") - in_combat = False - - wield = time_steps % 10 - - if wield == 0: - tn.write(b"wie nuclear-decay\r\n") - -#time travel -def time_travel(): - global farm_year - global year_limit - farm_year = farm_year + 100 - if farm_year > year_limit: - farm_year = 2000 - tn.write(b"tra "+str(farm_year).encode('ascii')+b"\r\n") - -#process path -def path_process(): - global selected_path - global path_step - path_str = path_list[selected_path][path_step] - if path_str != "done": - tn.write(path_str.encode('ascii')+b"\r\n") - path_step = path_step + 1 - else: - path_step = 0 - -#process stats -def parse_stat(): - global farm_list - global sell_list - global riblets - sell_list = [] - line = tn.read_until(b">",0) # Read one line - result = decode_line(line) - for item_l in farm_list: - x = line.decode('ascii').count(item_l) - for i in range(x): - sell_list.append(item_l) - - if result.find("Riblets :") != -1: - start_index = result.index('Riblets : ') + 16 - riblets_str = result[start_index:] - try: - end_index = riblets_str.index(' ') - except: - pass - riblets_str = riblets_str[:end_index] - print("Riblets:" + riblets_str) - riblets = int(riblets_str) - print(sell_list) - -#index area -def index_area(): - global local_items - global local_monsters - end_index = 0 - line = tn.read_until(b">",0) # Read one line - result = decode_line(line) - #Index items - if result.find("On the ground lies:") != -1: - start_index = result.index('On the ground lies:') - item_str = result[start_index:] - try: - end_index = item_str.index('***') - except: - try: - end_index = item_str.index('>') - except: - pass - item_str = item_str[:end_index] - item_str = item_str.replace("On the ground lies:","") - item_str = item_str.replace("0","") - item_str = item_str.replace("1","") - item_str = item_str.replace("2","") - item_str = item_str.replace("3","") - item_str = item_str.replace("4","") - item_str = item_str.replace("5","") - item_str = item_str.replace("6","") - item_str = item_str.replace("7","") - item_str = item_str.replace("8","") - item_str = item_str.replace("9","") - item_str = item_str.replace("(","") - item_str = item_str.replace(")","") - item_str = item_str.replace("A ","") - item_str = item_str.replace("An ","") - item_str = item_str.replace(" ","") - item_str = item_str.replace(".","") - item_str = item_str.replace("\r\n","") - item_str = item_str.replace("***","") - local_items = list(item_str.split(",")) - print(local_items) - - if result.find("here") != -1: - end_index = result.index('here') - monster_str = result[:end_index] - start_index = monster_str.rindex('***') - monster_str = monster_str[start_index:] - monster_str = monster_str.replace("\r\n","") - monster_str = monster_str.replace(" and ","") - monster_str = monster_str.replace(" are ","") - monster_str = monster_str.replace(" is ","") - monster_str = monster_str.replace(" ","") - monster_str = monster_str.replace(".","") - monster_str = monster_str.replace("***","") - local_monsters = list(monster_str.split(",")) - remove_friends() - print(local_monsters) - -#main game loop -def mutants(): - global time_steps - global local_items - global local_monsters - global heal - global wander - global in_combat - global key_detect - global auto_combat - global auto_farm - global auto_ion - global lock_key - global direction_list - global selected_path - global path_step - global path_list - global riblets - global no_action_cnt - global na_thresh - global year_limit - global farm_year - - area_indexed = False - while True: - #print(local_items) - time.sleep(.1) - time_steps = time_steps + 1 - - #data decode - result = "" - line = None - line = tn.read_until(b"\n",0) # Read one line - result = decode_line(line) - - #Nothing has happened in a while, time jump - if no_action_cnt > na_thresh: - time_travel() - no_action_cnt = 0 - - #deposit riblets - if riblets > riblet_thresh and path_step == 0: - path_step = 1 - - #follow path_list - path_trigger = time_steps % 10 - if path_trigger == 0 and not in_combat: - path_process() - - #parse status - stat_trigger = time_steps % 600 - if stat_trigger == 0 and not in_combat: - tn.write(b"stat\r\n") - - #heal - heal_trigger = time_steps % 20 - if heal_trigger == 0: - if heal: - tn.write(b"heal\r\n") - - #auto farm if sold items - if len(sell_list) == 0 and wander: - auto_farm = True - - #process wander - wander_trigger = time_steps % 30 - if wander and not in_combat and path_step == 0: - if wander_trigger == 0: - area_indexed = False - #print("wander triggered") - wander_process(result,wander_trigger) - - #Reset time steps - if time_steps == 1000: - time_steps = 0 - - #process combat - if in_combat: - combat_process(result) - - #scrapers - if result == "(N)onstop, (Q)uit, or (C)ontinue?": - tn.write(b"N\r\n") - - #ion starvation - if result.find("You're starving for IONS!") != -1: - tn.write(b"con gold-chunck\r\n") - auto_ion = True - heal = True - - #too heavy - if wander and result.find("The weight of all your items forces you to the ground.") != -1: - wander = False - tn.write(b"X\r\n") - - #dropped your weapon! - if auto_farm and result.find("The Nuclear-Decay fell out of your sack!") != -1: - time_steps = 0 - tn.write(b"con gold-chunck\r\n") - tn.write(b"get nuclear-decay\r\n") - - #I can't remember why I did this - if auto_farm and result.find("You're not carrying a gold-chunck.") != -1: - auto_farm = False - - #Dropped the bait, pick it back up - if result.find("The Monster-Bait fell out of your sack!") != -1: - time_steps = 0 - tn.write(b"con gold-chunck\r\n") - tn.write(b"get monster-bait\r\n") - - #if wander and result.find("fell out of your sack!") != -1: - #wander = False - #auto_farm = False - - #GTFO - if wander and ((result.find("It's too dark to see anything!") != -1 or - result.find("has hit you with his Nuclear-Decay!") != -1 or - result.find("You're blocked!") != -1) or - len(local_monsters) > 4): - - heal = True - tn.write(b"tra "+str(farm_year).encode('ascii')+b"\r\n") - in_combat = False - - #Sell the loot - if result.find("City Trading Centre") != -1: - if len(sell_list) > 0: - sell_items() - - #New area, take a look - if result.find("Compass:") != -1 and area_indexed == False: - index_area() - if wander: - tn.write(b"look\r\n") - area_indexed = True - - #Parse character status - if result.find("stat") != -1: - parse_stat() - - #Trigger stop healing - if result.find("Nothing happens!") != -1 or result.find("You don't have enough ions to heal!") != -1: - heal = False - - #Turn on healing - if result.find("You suffer") != -1 or result.find("You are poisoned!") != -1: - heal = True - - #monster list related - if (result.find("yells: Gimmie") != -1 or - result.find("just arrived from") != -1 or - result.find("has hit") != -1 or - result.find("body is glowing") != -1 or - result.find("Get away from me") != -1 or - result.find("has magically appeared") != -1): - m = result.index(' ') - monster = result[:m] - if not search(local_monsters, monster): - local_monsters.append(monster) - remove_friends() - print(local_monsters) - if len(local_monsters) > 0 and auto_combat and not in_combat: - combat_start() - - #Monster took off, remove from list - if result.find("has just left") != -1: - end_index = result.index(' has') - mon_str = result[:end_index] - mon_str = mon_str.replace(" ","") - try: - local_monsters.remove(mon_str) - except: - pass - print(mon_str) - print(local_monsters) - - #Monster died, remove from list - if result.find("is crumbling to dust") != -1: - end_index = result.index(' is') - mon_str = result[:end_index] - mon_str = mon_str.replace(" ","") - try: - local_monsters.remove(mon_str) - except: - pass - print(mon_str) - print(local_monsters) - - #Someone picked something up, remove from item list - if result.find("picked up the") != -1: - start_index = result.index('the') + 4 - item_str = result[start_index:] - end_index = item_str.index('.') - item_str = item_str[:end_index] - item_str = item_str.replace(" ","") - try: - local_items.remove(item_str) - except: - pass - print(item_str) - print(local_items) - - #Dead person dropping stuff, add to local list - if result.find("is falling from") != -1: - start_index = result.index('A') - item_str = result[start_index:] - end_index = item_str.index('is') - item_str = item_str[:end_index] - item_str = item_str.replace(" ","") - item_str = item_str.replace("is","") - item_str = item_str.replace("An","") - item_str = item_str.replace("A","") - local_items.append(item_str) - print(local_items) - - #You died, do some stuff - if result.find("Select (Bury, 1-5, ?)") != -1: - in_combat=False - heal = False - wander = False - auto_farm = False - auto_ion = False - - #farm items - if len(local_items) > 0 and not in_combat: - if auto_farm: - farm_items() - if auto_ion: - convert_items() - #print("convert") - - #keyboard related - this part sucks - if keyboard.is_pressed(lock_key): - time.sleep(.5) - if key_detect: - key_detect = False - print("Key detect off") - else: - key_detect = True - print("Key detect on") - - if key_detect: - if keyboard.is_pressed("?"): - time.sleep(.5) - for help in help_list: - print(help) - - #directions - if keyboard.is_pressed("8"): - local_monsters = [] - local_items = [] - tn.write(b"north\r\n") - area_indexed = False - time.sleep(.25) - if keyboard.is_pressed("2"): - local_monsters = [] - local_items = [] - tn.write(b"south\r\n") - area_indexed = False - time.sleep(.25) - if keyboard.is_pressed("4"): - local_monsters = [] - local_items = [] - tn.write(b"west\r\n") - area_indexed = False - time.sleep(.25) - if keyboard.is_pressed("6"): - local_monsters = [] - local_items = [] - tn.write(b"east\r\n") - area_indexed = False - time.sleep(.25) - #functions - if keyboard.is_pressed("a"): - time.sleep(.5) - if auto_combat: - auto_combat = False - print("Auto combat off") - else: - auto_combat = True - print("Auto combat on") - #Auto Ion - if keyboard.is_pressed("i"): - time.sleep(.5) - if auto_ion: - auto_ion = False - print("Auto ion off") - else: - auto_ion = True - print("Auto ion on") - #Auto farm - if keyboard.is_pressed("f"): - time.sleep(.5) - if auto_farm: - auto_farm = False - print("Auto farm off") - else: - auto_farm = True - print("Auto farm on") - - #Year limit - if keyboard.is_pressed("y"): - time.sleep(.25) - flush_input() - st = input("Year limit: ") - year_limit = int(st) - - #No action threshhold - if keyboard.is_pressed("n"): - time.sleep(.25) - flush_input() - st = input("No action: ") - na_thresh = int(st) - - #Start combat - if keyboard.is_pressed("c"): - if len(local_monsters) > 0: - combat_start() - time.sleep(.25) - - #Start Combat - if keyboard.is_pressed("c"): - if len(local_monsters) > 0: - combat_start() - time.sleep(.25) - - #look around - if keyboard.is_pressed("5"): - tn.write(b"look ") - time.sleep(.25) - - #meander status - if keyboard.is_pressed("m"): - time.sleep(.5) - if wander: - wander = False - print("Meander off") - else: - wander = True - print("Meander on") - tn.write(b"look\r\n") - - #heal - if keyboard.is_pressed("h"): - tn.write(b"heal\r\n") - heal = True - time.sleep(.25) - - #look around - if keyboard.is_pressed("l"): - area_indexed = False - tn.write(b"look\r\n") - time.sleep(.25) - - #stats - if keyboard.is_pressed("v"): - tn.write(b"stat\r\n") - time.sleep(.25) - - #sell items - if keyboard.is_pressed("s"): - sell_items() - time.sleep(.25) - - #store path select - if keyboard.is_pressed("p") and not in_combat: - time.sleep(.25) - flush_input() - #toss = keyboard.read_key() - st = input("Choose path input: ") - selected_path = int(st) - path_step = 1 - tn.write(b"Starting path..\r\n") - flush_input() - - #read keyboard - if keyboard.is_pressed("k") and not in_combat: - time.sleep(.25) - flush_input() - #toss = keyboard.read_key() - st = input("Keyboard input: ") - tn.write(st.encode('ascii')+b"\r\n") - flush_input() - - #wield weapon - if keyboard.is_pressed("w"): - time.sleep(.25) - tn.write(b"wie nuclear-decay\r\n") - - #drop item - if keyboard.is_pressed("d"): - time.sleep(.25) - flush_input() - #toss = keyboard.read_key() - st = input("drop item: ") - drop_item = "drop " + st - tn.write(drop_item.encode('ascii')+b"\r\n") - - #time travel - if keyboard.is_pressed("t") and not in_combat: - monster_list = [] - time.sleep(.25) - flush_input() - #toss = keyboard.read_key() - st = input("year: ") - year = "travel " + st - tn.write(year.encode('ascii')+b"\r\n") - - if keyboard.is_pressed("x"): - break - -user = input("User name:") -password = input("Password:") -lock_key = input("Lock key:") - -while True: - line = None - line = tn.read_until(b"\n",1) # Read one line - if line.decode('cp1252') == "": - #print("break") - #break - pass - else: - ansi_escape = re.compile(r'\x1B(?:[@-Z\\-_]|\[[0-?]*[ -/]*[@-~])') - result = ansi_escape.sub('', line.decode('cp1252').strip('\n')) - print(result) - if result == "Otherwise type \"new\": ": - tn.write(user.encode('ascii')+b"\r\n") - - if result == "Enter your password: ": - tn.write(password.encode('ascii')+b"\r\n") - - if result == "(N)onstop, (Q)uit, or (C)ontinue?": - tn.write(b"Q\r\n") - - if result == "Make your selection (G,T,F,M,S,? for help, or X to exit): ": - tn.write(b"G\r\n") - - if result == "help, or X to exit): ": - tn.write(b"C\r\n") - - if result == "Select (P,I,H,S,W,X,?): ": - tn.write(b"P\r\n") - - if result == "Select (Bury, 1-5, ?) ": - tn.write(b"4\r\n") - mutants() - break - - \ No newline at end of file