Quantcast

Jump to content


Photo

Altador Plot Autocompleter


  • This topic is locked This topic is locked
304 replies to this topic

#276 scarbunnies

scarbunnies
  • 78 posts

Posted 04 September 2015 - 02:37 PM

I used this program all the time before. The problem occurred today that I can't use it anymore. When I opened the file, it quickly closed the program within one second. How to fix it? 

Thanks



#277 Ghartun

Ghartun
  • 233 posts


Users Awards

Posted 04 September 2015 - 08:50 PM

I used this program all the time before. The problem occurred today that I can't use it anymore. When I opened the file, it quickly closed the program within one second. How to fix it? 

Thanks

I have a problem too, mine is closing after "setting your NP to 431".



#278 Neox76

Neox76
  • 14 posts

Posted 09 September 2015 - 03:08 AM

There are no outputs, the console keeps being black... maybe because I'm using windows 10 ?



#279 ninjaweeb

ninjaweeb
  • 91 posts


Users Awards

Posted 16 November 2015 - 12:29 PM

Worked for me! :) Manually had to do the NP part, but that wasn't a big deal at all. Also had to restart at flipping the switches, but after that it was very quick until it was finished. THANK YOU 



#280 MysteryMunch

MysteryMunch
  • 53 posts


Users Awards

Posted 06 June 2016 - 11:41 AM

This isn't working for me either. I have Windows 7. The program opens, displays some kind of error message, then closes. I can't read the error message because it closes too quickly.



#281 GetJinxed

GetJinxed
  • Reckless Cheater

  • 1423 posts


Users Awards

Posted 06 June 2016 - 11:52 AM

This isn't working for me either. I have Windows 7. The program opens, displays some kind of error message, then closes. I can't read the error message because it closes too quickly.

 

On the folder you have the program at do the following : Hold your Shift key and right click and choose "open command window here" then drag the program to the command line window and run it. That way you can see the error it throws

 

Also make sure you're running this script here : http://www.neocodex....r/#entry1729690

 

It still works but you may need to run it a few times as it will get some errors when completing the whole plot


Edited by GetJinxed, 06 June 2016 - 11:54 AM.


#282 MysteryMunch

MysteryMunch
  • 53 posts


Users Awards

Posted 09 June 2016 - 08:12 AM


C:\Users\Username\Documents\Neo Folder>"C:\Users\Username\Documents\Neo Folder\altador.e
xe"
C:/Users/Username/AppData/Local/Temp/ocr1A0B.tmp/src/altador.rb:4:in `eval': (eval):
1: syntax error, unexpected '<' (SyntaxError)
<!DOCTYPE html>
 ^
(eval):2: syntax error, unexpected '<'
<html lang=en>
 ^
(eval):3: syntax error, unexpected '<'
  <meta charset=utf-8>
   ^
(eval):4: syntax error, unexpected '<'
  <meta name=viewport content="i...
   ^
(eval):4: syntax error, unexpected tIDENTIFIER, expecting keyword_do or '{' or '
('
  <meta name=viewport content="initial-scale=1, minimum-sc...
                             ^
(eval):5: syntax error, unexpected '<'
  <title>Error 404 (Not Found)!!1</title>
   ^
(eval):5: syntax error, unexpected tINTEGER, expecting keyword_do or '{' or '('
  <title>Error 404 (Not Found)!!1</title>
                  ^
        from C:/Users/Username/AppData/Local/Temp/ocr1A0B.tmp/src/altador.rb:4:in `<
main>'

C:\Users\Username\Documents\Neo Folder>

Well, that doesn't tell me much... but at least I can read it now.


Edited by MysteryMunch, 09 June 2016 - 08:12 AM.


#283 GetJinxed

GetJinxed
  • Reckless Cheater

  • 1423 posts


Users Awards

Posted 09 June 2016 - 08:58 AM

C:\Users\Username\Documents\Neo Folder>"C:\Users\Username\Documents\Neo Folder\altador.e
xe"
C:/Users/Username/AppData/Local/Temp/ocr1A0B.tmp/src/altador.rb:4:in `eval': (eval):
1: syntax error, unexpected '<' (SyntaxError)
<!DOCTYPE html>
 ^
(eval):2: syntax error, unexpected '<'
<html lang=en>
 ^
(eval):3: syntax error, unexpected '<'
  <meta charset=utf-8>
   ^
(eval):4: syntax error, unexpected '<'
  <meta name=viewport content="i...
   ^
(eval):4: syntax error, unexpected tIDENTIFIER, expecting keyword_do or '{' or '
('
  <meta name=viewport content="initial-scale=1, minimum-sc...
                             ^
(eval):5: syntax error, unexpected '<'
  <title>Error 404 (Not Found)!!1</title>
   ^
(eval):5: syntax error, unexpected tINTEGER, expecting keyword_do or '{' or '('
  <title>Error 404 (Not Found)!!1</title>
                  ^
        from C:/Users/Username/AppData/Local/Temp/ocr1A0B.tmp/src/altador.rb:4:in `<
main>'

C:\Users\Username\Documents\Neo Folder>

Well, that doesn't tell me much... but at least I can read it now.

 

 

Copy this code and save it as altador.rb

#!/usr/bin/env ruby
require 'cgi'
require 'net/http'

class Array #nitrowuzhear #cellos #hashtag
  def +(other) 
    (0...self.size).map { |i| self[i] + other[i] }
  end 
end

def get(url)
  sleep Delay
  Conn.get(url, Headers).body
end

def post(url, data = {})
  sleep Delay
  data = data.is_a?(String) ? data : data.zip.flatten(1).map { |e| e * '=' } * '&'
  Conn.post(url, data, Headers)
end

def plot(which, spellbook = false)
  data = get STAR_DATA
  coords = data.split(':')[0].split('|').map { |d| d.split(',')[0..1].map &:to_i }
  map = {
    'sleeper'   => [[0, 0], [40, -30], [80, -60], [120, -60], [160, -30], [200, 0]],
    'dreamer'   => [[0, 0], [60, -20], [120, 0], [130, 40], [190, 60], [110, -90]],
    'rise'      => [[0, 0], [20, 60], [80, 80], [160, 0], [140, -60], [80, -80]],
    'farmer'    => [[0, 0], [140, -30], [10, -80], [120, -60], [160, -70], [80, 60]],
    'dancer'    => [[0, 0], [60, -30], [120, 0], [0, 140], [60, 170], [120, 140]],
    'wave'      => [[0, 0], [50, 70], [170, 40], [200, 0], [190, -90], [140, -10]],
    'gladiator' => [[0, 0], [70, 30], [140, 0], [40, -120], [70, -140], [100, -120]],
    'collector' => [[0, 0], [10, -50], [100, -130], [100, 10], [190, -50], [200, 0]],
    'thief'     => [[0, 0], [40, 40], [20, -40], [40, -80], [-50, -10], [-60, 120]],
    'gatherer'  => [[0, 0], [40, -70], [-30, -140], [10, -200], [110, -170], [120, -90]],
    'protector' => [[0, 0], [-70, 0], [70, 0], [0, -70], [0, 70], [-130, 90]],
    'hunter'    => [[0, 0], [10, -140], [120, -60], [160, -190], [170, -20], [200, 0]]
  }
  connect = {
    'sleeper'   => [[0, 1], [1, 2], [3, 4], [4, 5]],
    'dreamer'   => [[0, 1], [1, 2], [2, 3], [3, 4], [5]],
    'rise'      => [[0, 1], [1, 2], [3, 4], [4, 5]],
    'farmer'    => [[0, 1], [1, 5], [1, 4], [2, 3], [3, 4]],
    'dancer'    => [[0, 1], [1, 2], [3, 4], [4, 5]],
    'wave'      => [[0, 1], [1, 2], [2, 3], [3, 4], [4, 5]],
    'gladiator' => [[0, 1], [1, 2], [2, 5], [3, 4], [4, 5], [0, 3]],
    'collector' => [[0, 1], [0, 3], [2, 3], [3, 5], [4, 5]],
    'thief'     => [[0, 1], [0, 2], [0, 4], [1, 5], [2, 3], [4, 5]],
    'gatherer'  => [[0, 1], [2, 3], [2, 5], [3, 4], [4, 5]],
    'protector' => [[0, 1], [0, 2], [0, 3], [0, 4], [1, 3], [1, 4], [2, 3], [2, 4], [5]],
    'hunter'    => [[0, 1], [0, 4], [1, 2], [1, 3], [2, 4], [3, 4], [4, 5]]
  }
  found = coords.map do |c|
    (seek = map[which].map { |m| m + c }).all? { |k| coords.include? k } ? seek : nil
  end.compact[0]

  x = found.map { |f| f[0] }.reduce(:+).abs
  x = x.to_s.split(//).map(&:to_i).reduce(:+) if x > 99
  y = found.map { |f| f[1] }.reduce(:+).abs
  y = y.to_s.split(//).map(&:to_i).reduce(:+) if y > 99
  return [x, y] if spellbook

  qs = connect[which].map { |e| [e, e.reverse].uniq }.flatten(1).map do |c|
    c.map { |i| found[i] * ',' } * ';'
  end * '|'
  get PLOT_DATA + CGI.escape(qs)
end

username = (print 'Username: '; gets.chomp)
password = (print 'Password: '; gets.chomp)
puts "\nProxy is of the form #.#.#.#:#, leave blank for none."
proxy = (print 'Proxy: '; gets.chomp)
puts "\nYou should use your actual User-Agent if playing on your own IP address."
puts 'Using Chrome 32.0 (Windows) user agent.'
user_agent = "Mozilla/5.0 (Windows NT 6.2; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1667.0 Safari/537.36"
puts "\nHow long should the program wait (in seconds) between requests?"
puts 'Currently delay is 2 seconds to make it look more legit. You can use 0, but >=2 is recommended.'
Delay = 2

if proxy.empty?
  Conn = Net::HTTP.start('www.neopets.com')
else
  Conn = Net::HTTP::Proxy(*proxy.split(':')).start('www.neopets.com')
end

Headers = {'User-Agent' => user_agent.empty? ? 'Mozilla/5.001 (windows; U; NT4.0; en-US; rv:1.0) Gecko/25250101' : user_agent}
resp = post '/login.phtml', 'username' => username, 'password' => password
cookie = resp.get_fields('Set-Cookie').map { |c| c.split(';')[0] } * ';'
Headers['Cookie'] = cookie

ARCHIVES    = '/altador/archives.phtml'
ARCHIVIST   = '/altador/archives.phtml?archivist=1'
BANK        = '/process_bank.phtml'
BASEMENT    = '/altador/hallofheroes.phtml?basement=1'
CLOUDS      = '/altador/clouds.phtml'
COLOSSEUM   = '/altador/colosseum.phtml'
COUNCIL     = '/altador/council.phtml'
DOCKS       = '/altador/docks.phtml'
DONNY       = '/winter/brokentoys.phtml'
FARM        = '/altador/farm.phtml'
GET_BOOK    = '/altador/archives.phtml?archivist=1&get_book=1&acpcont=1'
GET_ROCK    = '/altador/quarry.phtml?get_rock=1&acpcont=1'
HALL        = '/altador/hallofheroes.phtml'
JANITOR     = '/altador/hallofheroes.phtml?janitor=1'
PETPET      = '/altador/petpet.phtml?ppheal=1'
PLOT_DATA   = '/altador/astro.phtml?star_submit='
PUSH_BUTTON = '/altador/hallofheroes.phtml?janitor=1&push_button=1'
QUARRY      = '/altador/quarry.phtml'
SHOP        = '/objects.phtml?type=shop&obj_type='
STAIRS      = '/altador/hallofheroes.phtml?stairs=1'
STAR_DATA   = '/altador/astro.phtml?get_star_data=1'
TOMB        = '/altador/tomb.phtml'
VIEW_STATUE = '/altador/hallofheroes.phtml?view_statue_id='
WALL        = '/altador/wall.phtml'

step_finder = {
  'begin'          => "I'm Finneus",
  'get_book'       => "perhaps there's a book",
  'replace_book'   => "stabilise this table",
  'get_oil'        => "would someone print",
  'join_astro'     => "opened?  What a marvel!",
  'sleeper_act'    => "you've joined the Astronomy Club",
  'sleeper_plot'   => "front of that old tomb?",
  'dreamer_act'    => "Her eyes, in fact?",
  'dreamer_plot'   => "floating in the clouds?",
  'rise_act'       => "seems to concern Psellia",
  'rise_plot'      => "conspires to bring us wisdom",
  'farmer_act'     => "Ah, Siyana.",
  'farmer_plot'    => "in a pattern of wheat",
  'dancer_act'     => "bringing us foodstuffs",
  'dancer_plot'    => "underground dancing establishment",
  'wave_act'       => "those dancing ruffians",
  'wave_plot'      => "And the waves, too",
  'gladiator_act'  => "revealed by the sea",
  'gladiator_plot' => "on a drinking vessel?",
  'collector_act'  => "And found at the Colosseum",
  'collector_plot' => "an item relating to money",
  'thief_act'      => "suspected: Gordos",
  'thief_plot'     => "my poor Meepit plushie",
  'find_petpet'    => "constellation found on a dagger",
  'gatherer_act'   => "What a poor little Vaeolus!",
  'gatherer_plot'  => "get back to his owner",
  'protector_act'  => "Gatherer, protector of Petpets",
  'protector_plot' => "someone with nothing to hide",
  'open_ceiling'   => "we come to Jerdana",
  'basement'       => "We may as well get this over with.",
  'hunter_act'     => "probably isn't in the same",
  'hunter_plot'    => "but simple physical mechanics",
  'book_of_ages'   => "each of the twelve Heroes",
  'spellbook'      => "I'd overlooked that drawing of",
  'finish'         => "well-deserved vacation"
}

puts 'Determining your current step...'
status = get(ARCHIVIST)[/<IMG.+?altador.+?DIV><BR>(.+?)<cen/, 1]
steps = step_finder.keys
current = steps.find { |s| status.include? step_finder[s] }
steps.shift steps.index(current)

while step = steps.shift
  case step
  when 'begin'
    post "#{PUSH_BUTTON}&acpcont=1"
    puts 'Pushed button.'

  when 'get_book'
    post GET_BOOK
    puts 'Got book.'

  when 'replace_book'
    post GET_BOOK
    post GET_ROCK
    puts 'Got rock.'
    post GET_BOOK
    puts 'Replaced book.'

  when 'get_oil'
    puts 'Finding the oil...'
    get HALL
    html = get JANITOR
    unless html[/put some on the button/]
      get PUSH_BUTTON
      statue, oil_link = rand(1..12), nil
      puts "Refreshing statue #{statue}..."
      until (oil_link = html[/action='(.+?soh=.+?)'/, 1])
        html = get "#{VIEW_STATUE}#{statue}"
      end
      get oil_link
    end
    puts 'Oiled the statue.'
    get PUSH_BUTTON
    post "#{PUSH_BUTTON}&acpcont=1"

  when 'join_astro'
    post ARCHIVES, 'board' => 6, 'join_club' => 1
    puts 'Joined the Astronomy Club.'

  when 'sleeper_act'
    html = get TOMB
    get html[/href="([^<>]+?thv=.+?)"/, 1]
    puts 'Activated the Sleeper constellation.'
    get ARCHIVIST

  when 'sleeper_plot'
    plot 'sleeper'
    puts 'Plotted the Sleeper constellation.'

  when 'dreamer_act'
    html = get CLOUDS
    get html[/href="([^<>]+?chv=.+?)"/, 1]
    puts 'Activated the Dreamer constellation.'
    get ARCHIVIST

  when 'dreamer_plot'
    plot 'dreamer'
    puts 'Plotted the Dreamer constellation.'

  when 'rise_act'
    html = get TOMB
    get html[/href="([^<>]+?acvhv=.+?)"/, 1]
    html = get "#{VIEW_STATUE}11"
    html = get html[/href="([^<>]+?vwhv=.+?)"/, 1]
    get html[/href="([^<>]+?rhv=.+?)"/, 1]
    puts 'Activated the First to Rise constellation.'
    get ARCHIVIST

  when 'rise_plot'
    plot 'rise'
    puts 'Plotted the First to Rise constellation.'

  when 'farmer_act'
    html = get FARM
    html = get html[/href="([^<>]+?windmill=.+?)"/, 1]
    html = get html[/href="([^<>]+?umhv=.+?)"/, 1]
    html = get html[/href="([^<>]+?vfhv=.+?)"/, 1]
    get html[/href="([^<>]+?wfhv=.+?)"/, 1]
    puts 'Activated the Farmer constellation.'
    get ARCHIVIST

  when 'farmer_plot'
    plot 'farmer'
    puts 'Plotted the Farmer constellation.'

  when 'dancer_act'
    html = get "#{ARCHIVES}?board=7"
    get html[/href="([^<>]+?swhv=.+?)"/, 1]
    puts 'Activated the Dancer constellation.'
    get ARCHIVIST

  when 'dancer_plot'
    plot 'dancer'
    puts 'Plotted the Dancer constellation.'

  when 'wave_act'
    html = get DOCKS
    get html[/href="([^<>]+?wchv=.+?)"/, 1]
    puts 'Activated the Wave constellation.'
    get ARCHIVIST

  when 'wave_plot'
    plot 'wave'
    puts 'Plotted the Wave constellation.'

  when 'gladiator_act'
    get "#{ARCHIVES}?board=6"
    puts 'Got a broken astrolabe.'
    html = get DONNY
    get (url = html[/href="([^<>]+?repair_id=.+?)"/, 1])
    post DONNY, 'repair_id' => url.split('=')[1], 'confirm' => 1
    puts 'Fixed the broken astrolabe.'

    html = get COLOSSEUM
    puts 'Finding the Punch Club Grarrl...'
    links = html.scan(/href="([^<>]+?pchv=.+?)"/).flatten.shuffle
    html, arch = '487738fe33.gif', 0
    while html.include? '487738fe33.gif'
      puts "Trying arch ##{arch += 1}..."
      html = get($punch_club = links.pop)
    end
    puts 'Found him! Going to Punch Club...'
    html = get "#{$punch_club}&pc_go=1"
    bowls, found = html.scan(/punch1=(.+?)"/), nil
    puts '27 bowl combinations, this might take a bit...'
    found = nil
    [*(0..26)].shuffle.each_with_index do |n, c|
      puts "Trying combination ##{c + 1}..."
      qs, perm = [], [n / 9, n / 3 % 3, n % 3].map { |i| bowls[i] }
      perm.each_with_index { |p, i| qs << "punch#{i + 1}=#{p[0]}"}
      html = get "#{$punch_club}&pc_go=1&#{qs * '&'}"
      break if (found = html[/href="([^<>]+?gchv=.+?)"/, 1])
    end
    html = get found
    get html[/href="([^<>]+?olhv=.+?)"/, 1]
    puts 'Activated the Gladiator constellation... finally.'
    get ARCHIVIST

  when 'gladiator_plot'
    plot 'gladiator'
    puts 'Plotted the Gladiator constellation.'

  when 'collector_act'
    found = nil
    (94..96).each do |id|
      html = get "#{SHOP}#{id}"
      cur = html[/inventory.phtml">(.+?)</, 1].gsub(/[^\d]/, '').to_i
      amount = html[/at <b>(.+?)%</, 1].gsub('.', '').to_i
      if cur != amount
      	puts "You have #{cur} NP right now."
        puts "Setting your NP to #{amount}..."
        post BANK, 'type' => (cur < amount ? 'withdraw' : 'deposit'), 'amount' => (cur - amount).abs
      end
      html = get "#{SHOP}#{id}"
      break if (found = html[/href="([^<>]+?gohv=.+?)"/, 1])
    end
    get found
    puts 'Activated the Collector constellation.'
    get ARCHIVIST

  when 'collector_plot'
    plot 'collector'
    puts 'Plotted the Collector constellation.'

  when 'thief_act'
    puts 'Lots of jumping around for the Meepit part, might take a bit...'
    get "#{ARCHIVES}?lclenny=1"
    html = get ARCHIVIST
    html = get html[/href="([^<>]+?distract=.+?)"/, 1]
    get html[/href="([^<>]+?steal=.+?)"/, 1]
    get "#{ARCHIVES}?lclenny=1"
    html = get ARCHIVES
    html = get html[/href="([^<>]+?goarch=.+?)"/, 1]
    3.times { html = get html[/href="([^<>]+?cmhv=.+?)"/, 1] }
    html = get (url = html[/href="([^<>]+?closet=.+?)"/, 1])
    post ARCHIVES, 'closet' => url.split('=')[-1], 'hide_box' => 1
    html = get ARCHIVIST
    html = get html[/href="([^<>]+?distract=.+?)"/, 1]
    get html[/href="([^<>]+?steal=.+?)"/, 1]
    html = get "#{ARCHIVES}?lclenny=1&acpcont=1"
    get html[/href="([^<>]+?rdhv=.+?)"/, 1]
    puts 'Activated the Thief constellation.'
    get ARCHIVIST

  when 'thief_plot'
    plot 'thief'
    puts 'Plotted the Thief constellation.'
    get "#{ARCHIVES}?board=7"

  when 'find_petpet'
    puts 'Looking for the Vaeolus...'
    [FARM, DOCKS, QUARRY].each do |loc|
      found = get(loc)[/href="([^<>]+?pphv=.+?)"/, 1]
      get("/altador/#{found}") if found
    end
    get ARCHIVIST

  when 'gatherer_act'
    puts 'Vaeolus-curing time.'
    get PETPET
    html = get "#{ARCHIVES}?board=5"
    if (url = html[/href="([^<>]+?bmhv=.+?)"/, 1])
      get "#{url}&acpcont=1"
      puts 'Got medicine.'
    end
    if $punch_club
      puts 'Remembered Punch Club arch from last time.'
    else
      html = get COLOSSEUM
      puts 'Gotta find the Punch Club arch...'
      links = html.scan(/href="([^<>]+?pchv=.+?)"/).flatten.shuffle
      html, arch = '487738fe33.gif', 0
      while html.include? '487738fe33.gif'
        puts "Trying arch ##{arch += 1}..."
        html = get($punch_club = links.pop)
      end
      puts 'Found it!'
    end
    html = get "#{$punch_club}&pc_go=1"
    if (url = html[/href="([^<>]+?sphv=.+?)"/, 1])
      get "#{url}&acpcont=1"
      puts 'Got blueberry pie.'
    end
    tomb = get(TOMB)[/href="([^<>]+?tehv=.+?)"/, 1]
    html, i = 'dc697034c4.gif', 0
    puts 'Refreshing at the blob...'
    while html.include? 'dc697034c4.gif'
      html = get tomb
      if (i += 1) > 35
        have_bandage = true
        puts 'I guess you already have it.'
        break
      end
    end
    unless have_bandage
      html = get (url = html[/href="([^<>]+?gbhv=.+?)"/, 1])
      puts "Got bandage."
      get "#{url}&acpcont=1"
    end
    html = get PETPET
    until html.include? 'b1022d8a5a.gif'
      act = html[/act_(.)/, 1]
      links = html.split('300"')[1].split('<c')[0].scan(/href="(.+?)"/).flatten
      html = get (url = links['bacd'.index(act)])
      puts case act
        when 'a' then 'Bandaged the Vaeolus.'
        when 'b' then 'Fed the Vaeolus.'
        when 'c' then 'Medicated the Vaeolus.'
        else 'Waited for the Vaeolus.'
      end
      delay = 60 - html[/ns = (\d+)/, 1].to_i
      puts "Sleeping for #{delay} seconds..."
      sleep delay
      puts "after sleep"
      html = get html.split('300"')[1].split('<c')[0].scan(/href="(.+?)"/).flatten[-1]
    end
    get html[/href="([^<>]+?pchv=.+?)"/, 1]
    puts 'Activated the Gatherer constellation.'
    get "#{ARCHIVES}?board=6"
    get ARCHIVIST

  when 'gatherer_plot'
    plot 'gatherer'
    puts 'Plotted the Gatherer constellation.'

  when 'protector_act'
    html = get QUARRY
    html = get WALL
    html = get html[/href="([^<>]+?sdhv=.+?)"/, 1]
    html = get(url = html[/href="([^<>]+?tnhv=.+?)"/, 1])
    get "#{url}&acpcont=1"
    get FARM
    switches, i = %w[r1v1 r1v2 r2v3 r2v4 r2s1 r3s2 r3s3 r3s4], 0
    puts 'Gonna throw a whole bunch of switches, this will take a while...'
    until html.include? '611538397c.gif'
      s, i = switches.sample, i + 1
      html = get "/altador/plant.phtml?room=#{s[1]}&act=#{s}"
      puts '.' * (i / 10) if i % 10 == 0
    end
    puts 'Done throwing switches.'
    html = get WALL
    html = get html[/href="([^<>]+?sdhv=.+?)"/, 1]
    html = get html[/href="([^<>]+?tnhv=.+?)"/, 1]
    html = get html[/href="([^<>]+?olhv=.+?)"/, 1]
    puts 'Activated the Protector constellation.'
    get ARCHIVIST

  when 'protector_plot'
    resp = plot 'protector'
    puts 'Plotted the Protector constellation.'

  when 'open_ceiling'
    html = get STAIRS
    trip = html[/"trip" value="(.+?)"/, 1]
    html = post(HALL, 'trip' => trip).body
    get html[/href="([^<>]+?hohv=.+?)"/, 1]
    puts 'Opened the roof.'
    get ARCHIVIST

  when 'basement'
    get JANITOR
    get BASEMENT
    puts 'Activated the basement.'

  when 'hunter_act'
    html = get QUARRY
    if (url = html[/href="([^<>]+?brhv=.+?)"/, 1])
      html = get url
      post QUARRY, 'brhv' => url.split('=')[1], 'go_buy_rock' => 1
      puts 'Bought a rock.'
    end
    get JANITOR
    get "#{BASEMENT}&gear=0"
    get HALL
    get "#{BASEMENT}&gear=0"
    html = get QUARRY
    if (url = html[/href="([^<>]+?trhv=.+?)"/, 1])
      html = get url
      html = get html[/href="([^<>]+?srhv=.+?)"/, 1]
      html = get html[/href="([^<>]+?gthv=.+?)"/, 1]
      puts 'Got another rock. You so silly, JubJubs.'
    end
    html = get "#{ARCHIVES}?board=1"
    html = get "#{ARCHIVES}?board=1&circus=1"
    html = get "#{ARCHIVES}?board=1&juggle=1"
    html = get QUARRY
    if (url = html[/href="([^<>]+?jjhv=.+?)"/, 1])
      html = get url
      post QUARRY, 'jjhv' => url.split('=')[1], 'r3hv' => html[/"r3hv" value="(.+?)"/, 1]
      puts 'Got the third rock.'
    end
    puts "Time to jam some gears."
    begin
      html, offset, gears = '', 0, [*(0..9)].shuffle
      until html[/MAP/]
        gear = gears.pop
        get "#{BASEMENT}&gear=#{gear}"
        html = get PUSH_BUTTON
        if html[/stupid rocks and such/]
          puts 'The Janitor reset the roof. Trying again...'
          raise ArgumentError
        end
        moved = html[/_r(\d+)_/, 1].to_i / 5
        if (4..6) === moved - offset
          offset += moved
          puts "Gear #{gear} was a success."
        else
          puts "We don't need gear #{gear}."
          get "#{BASEMENT}&gear=#{gear}"
        end
      end
    rescue ArgumentError
      retry
    end
    get html[/href="([^<>]+?olhv=.+?)"/, 1]
    puts 'Activated the Hunter constellation.'

  when 'hunter_plot'
    plot 'hunter'
    puts 'Plotted the Hunter constellation.'

  when 'book_of_ages'
    html = get "#{ARCHIVIST}&examine_book=1&view_page=53"
    get html[/href="([^<>]+?dfhv=.+?)"/, 1]
    puts "Clicked the Darkest Faerie's flame hands."
    get ARCHIVIST

  when 'spellbook'
    html = get ARCHIVES
    html = get html[/href="([^<>]+?goarch=.+?)"/, 1]
    url = html[/href="([^<>]+?cmhv=.+?)"/, 1]
    x, y = plot 'sleeper', true
    html = get url.gsub(/arcx=\d+&arcy=\d+/, "arcx=#{x}&arcy=#{y}")
    puts 'Found your archive room, now to find the book...'
    links, i = html.scan(/href="([^<>]+?read_book=.+?)"/).flatten.shuffle, 0
    until html[/52,143/]
      puts "Trying book ##{i += 1}..."
      html = get(data = links.pop)
    end
    puts 'Found it! Casting spell #29884...'
    resp = post ARCHIVES, "#{data.split('?')[1]}&spell_id=29884"
    html = get "#{VIEW_STATUE}6"
    html = get html[/href="([^<>]+?necklace=.+?)"/, 1]
    puts 'Placed the necklace!'
    post COUNCIL, 'ephv' => html[/\?ephv=(.+?)'/, 1]

  when 'finish'
    html = get COUNCIL
    get html[/href="([^<>]+?prhv=.+?)"/, 1]
    puts 'Mission complete! We hope you enjoyed your stay.'
    gets
  end
end 

Try running this one. Credits to ortin :3



#284 MysteryMunch

MysteryMunch
  • 53 posts


Users Awards

Posted 10 June 2016 - 01:34 AM

That worked much better, thanks. It still craps out at the point where you're pressing all the levers, though.Is it supposed to get to the point of having 500 dots on the screen? I thought there were only 256 combinations possible.



#285 GetJinxed

GetJinxed
  • Reckless Cheater

  • 1423 posts


Users Awards

Posted 10 June 2016 - 05:05 AM

That worked much better, thanks. It still craps out at the point where you're pressing all the levers, though.Is it supposed to get to the point of having 500 dots on the screen? I thought there were only 256 combinations possible.

 

Ah no idea :p As long as it works i'm fine  :lol2:



#286 MysteryMunch

MysteryMunch
  • 53 posts


Users Awards

Posted 10 June 2016 - 05:54 AM

Yup, it works. I went back in and reset the levers to off manually, tried it again, and it worked fine this time, printing out only one dot. Does the program set all the levers to "off" before it starts trying combinations? If not, it might miss some.



#287 GetJinxed

GetJinxed
  • Reckless Cheater

  • 1423 posts


Users Awards

Posted 10 June 2016 - 06:02 AM

I'm not sure but if it fails you can just re-run the program without any manual input :p It eventually will find the combination



#288 MysteryMunch

MysteryMunch
  • 53 posts


Users Awards

Posted 10 June 2016 - 08:17 AM

Hm. What makes me think it might miss some combinations is that the initial lever settings are random, and if you turn all the levers to "On", Altador will flood. So if it starts at a random combination and just tries all the combinations in turn, then whatever combinations are after the "1111 1111" won't get tried since the flooding resets the levers. If it starts at "0000 0000", then that won't happen because "1111 1111" will be last on the list.

Anyways, easily fixed by manually setting the levers. Am still quite satisfied.



#289 neobo

neobo
  • 229 posts


Users Awards

Posted 07 July 2016 - 06:25 PM

 I thought there were only 256 combinations possible.

Its not crashing for me, but yesterday it ran switches for more than an hour. Hoping it will get it today, if not maybe I'll have to try myself. 256 combos, that would be 256  lines of dots right?

 

So I waited for my 256 lines of dots and nada. Used these from maragrace.blogspot and TDN and got it in under 2 mins


Edited by neobo, 07 July 2016 - 09:50 PM.


#290 Yoshiowner

Yoshiowner
  • 13 posts

Posted 20 January 2017 - 12:59 PM

The program dont work and the download link of the script is broken. Fix that please.



#291 Grimley

Grimley
  • The greatest trick the Devil ever pulled was convincing the world he didn't exist

  • 3840 posts


Users Awards

Posted 28 May 2017 - 07:36 PM

No longer works, there is nothing at inkheart.googlecode.com (referenced in the script) to access.

 

Just letting you know so that you can perhaps :locked:  this thread unless a functional update is made.



#292 Strategist

Strategist
  • Sadmin

  • 10012 posts


Users Awards

Posted 28 May 2017 - 08:47 PM

Yup, agreed, topic is no longer useful. Until an updated script is made available, this thread will remain :locked:



#293 Strategist

Strategist
  • Sadmin

  • 10012 posts


Users Awards

Posted 29 May 2017 - 09:45 PM

Good news people, @neobo has the original working version and will host it for us all to download again if we need to. Thread is now unlocked.



#294 Futurama

Futurama
  • The Teacher.

  • 3772 posts


Users Awards

Posted 30 May 2017 - 02:05 PM

Good news people, @neobo has the original working version and will host it for us all to download again if we need to. Thread is now unlocked.

 

 

 

I like the idea of them re-hosting it....makes a shell account look better if you complete it :D Thanks!



#295 neobo

neobo
  • 229 posts


Users Awards

Posted 03 June 2017 - 03:09 PM

Ok, first time hosting. I used the plot completer last year, then it had to be modified with ruby. I'm not sure what you'll need to do, but it worked on my other PC today (fyi it crashed at the switches). Please PM me if its not working.

 

https://www.mediafir...grgyuf6k331rdh3

 

https://www.mediafir...4g2dyegimzgxbc9

 

And you'll need an app called ruby


Edited by neobo, 03 June 2017 - 10:13 PM.


#296 Futurama

Futurama
  • The Teacher.

  • 3772 posts


Users Awards

Posted 03 June 2017 - 06:50 PM

Ok, first time hosting. I used the plot completer last year, then it had to be modified with ruby. I'm not sure what you'll need to do, but it worked on my other PC today (fyi it crashed at the switches). Please PM me if its not working.

 

https://www.mediafir...grgyuf6k331rdh3

 

https://www.mediafir...4g2dyegimzgxbc9

 

 

Guessing the 2nd file needs to be in a folder with the first file? @neobo

 

 

 

-edit-

 

nvm, figured it out, it was fun trying to understand how to install Ruby.

 

 

 

It crashes after about 10 minutes of straight use, but all you need to do is open it back up, so no big deal, almost done doing the whole plot already too :D



#297 neobo

neobo
  • 229 posts


Users Awards

Posted 03 June 2017 - 10:12 PM

 

-edit-

 

nvm, figured it out, it was fun trying to understand how to install Ruby.

 

It crashes after about 10 minutes of straight use, but all you need to do is open it back up, so no big deal, almost done doing the whole plot already too :D

 

Did you get past switches in the tower? I think I'll have to manually do that.


Edited by neobo, 03 June 2017 - 10:12 PM.


#298 Futurama

Futurama
  • The Teacher.

  • 3772 posts


Users Awards

Posted 04 June 2017 - 07:18 AM

Did you get past switches in the tower? I think I'll have to manually do that.

 

 

 

It completed the whole plot for me. I just had to restart it after it crashed every time and it started back up perfectly. @neobo



#299 Keil

Keil
  • Above Average Mediocrity

  • 6591 posts


Users Awards

Posted 04 June 2017 - 07:37 AM

I know from my own experience, I only needed to restart the ruby file twice to get through the switches part. The ruby file in the end completed the plot for me and I'm happy with it.

#300 zex

zex
  • 224 posts


Users Awards

Posted 05 June 2017 - 08:59 AM

Just ran this last night. I manually did the water plant, but otherwise worked flawlessly. :)




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users