Lich:Thaumaturge Tome Script: Difference between revisions

The official GemStone IV encyclopedia.
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
This lich script was written with the help of Tysong. It's purpose is to automate the feeding of various types of scrolls to the Thaumature Tome. You will need to have a SCROLLSACK set in variables. You will need to
This lich script was written with the help of Tysong. It's purpose is to automate the feeding of various types of scrolls to the Thaumature Tome. You will need to have a SCROLLSACK set in variables.


<pre{{log2}}>
<pre{{log2}}>
Line 16: Line 16:
def self.feed
def self.feed
waitrt?
waitrt?
result = dothistimeout "put ##{GameObj.left_hand.id} in my jewel tome", 2, /lurches forward and splays its covers before slapping them shut around the|Apparently the tome is full./
result = dothistimeout "put ##{GameObj.left_hand.id} in ##{GameObj.right_hand.id}", 2, /lurches forward and splays its covers before slapping them shut around the|Apparently the tome is full./
if result =~ /Apparently the tome is full./
if result =~ /Apparently the tome is full./
fput "put ##{GameObj.left_hand.id} in #{Vars.scrollsack}"
fput "put ##{GameObj.left_hand.id} in #{Vars.scrollsack}"

Revision as of 17:11, 27 March 2023

This lich script was written with the help of Tysong. It's purpose is to automate the feeding of various types of scrolls to the Thaumature Tome. You will need to have a SCROLLSACK set in variables.

module ThaumaturgeTome
  def self.scroll
    scroll_types = ['scroll', 'parchment', 'paper', 'papyrus', 'vellum', 'palimpsest']
    
    scroll_types.each { |type|
      waitrt?
      result = dothistimeout "get #{type} from #{Vars.scrollsack}", 2, /You slip|Get what/
      return true if result =~ /You slip/
    }
    return false
  end

  def self.feed
    waitrt?
    result = dothistimeout "put ##{GameObj.left_hand.id} in ##{GameObj.right_hand.id}", 2, /lurches forward and splays its covers before slapping them shut around the|Apparently the tome is full./
    if result =~ /Apparently the tome is full./
      fput "put ##{GameObj.left_hand.id} in #{Vars.scrollsack}"
      return false
    elsif result =~ /lurches forward and splays its covers before slapping them shut around the/
      return true
    end
    return false
  end

  def self.main
    loop do
fput "store all" if ( !righthand.nil? ) or ( !lefthand.nil? )
fput "stow all" if ( !righthand.nil? ) or ( !lefthand.nil? )
fput "get jewel tome"
      exit unless self.scroll
      exit unless self.feed
    end
  end
  
  self.main
end

See Also