Guest User

Untitled

a guest
Jan 26th, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.11 KB | None | 0 0
  1. USERNAME = 'NAOUSERNAME'
  2. PASSWORD = 'NAOPASSWORD'
  3.  
  4. import pexpect, traceback, sys, time
  5.  
  6. def scum(n):
  7. try:
  8. #n = pexpect.spawn('nethack')
  9. print "BEGIN"
  10. r = n.expect(['Shall I pick', 'Restoring save file', 'Too many hacks', 'stale' ])
  11. print "START STATE", r
  12. if r == 4:
  13. n.send('p')
  14. return False
  15. if r == 3:
  16. print "Game in progress."
  17. time.sleep(11)
  18. n.sendline('#quit')
  19. n.send('nnn')
  20. n.sendline('')
  21. return False
  22. if r == 2:
  23. print "Too many locks."
  24. sys.exit(-1)
  25. if r == 1:
  26. print "Attempting to kill running game"
  27. n.sendline('#quit')
  28. n.send('nnn')
  29. n.sendline('')
  30. return False
  31. n.send('nwgm')
  32. print "SENT CHARACTER"
  33. n.expect('Go bravely')
  34. print "GO BRAVELY"
  35. n.sendline('')
  36. n.expect('welcome to')
  37. print "WELCOME"
  38. n.send('i')
  39. print "REQUEST INVENTORY"
  40. r = n.expect([r'(ring of polymorph$)|(wand of polymorph)', r'(ring of polymorph control)', r'.*smoky.*', r'\(end\)'], timeout=1)
  41. print "Results: ", r
  42. if r != 3:
  43. return True
  44. n.sendline(' ')
  45. n.sendline('#quit')
  46. #n.send('nnnn')
  47. n.send('y')
  48. n.send('n')
  49. n.send('n')
  50. n.send('n')
  51. n.sendline('')
  52. return False
  53. except SystemExit:
  54. sys.exit(-1)
  55. except KeyboardInterrupt:
  56. sys.exit(-1)
  57. except:
  58. traceback.print_exc()
  59. n.interact()
  60.  
  61. if __name__ == '__main__':
  62. i = False
  63. c = 0
  64. n = pexpect.spawn('telnet nethack.alt.org')
  65. n.setecho(True)
  66. n.logfile = open('startscum.log', 'w')
  67. #n.logfile = sys.stdout
  68. n.expect('=>')
  69. n.send('l')
  70. n.expect('Please enter your username')
  71. n.sendline(USERNAME)
  72. n.expect('Please enter your password')
  73. n.sendline(PASSWORD)
  74. n.expect('=>')
  75. n.send('p')
  76. time.sleep(0.1)
  77. #scum(n)
  78. #n.interact()
  79. #sys.exit(-1)
  80. while not i:
  81. c = c + 1
  82. print "Scum try: ", c
  83. i = scum(n)
  84.  
  85. if i:
  86. print "Scum successful!"
  87. sys.exit(1)
  88. else:
  89. print "RESTARTING GAME EXPECTING PROMPT"
  90. n.expect('=>')
  91. print "PROMPT FOUND SENDING p"
  92. n.send('p')
  93. time.sleep(0.1)
Add Comment
Please, Sign In to add comment