Lich scripting engine: Difference between revisions

From Elanthipedia
Jump to navigation Jump to search
(Added link to script repository page and a couple of links for ruby tutorials.)
No edit summary
Line 8: Line 8:


=== Note ===
=== Note ===
Many users utilize Lich as simply a game-wide chat room for discussion and to get help, while others utilize the Lich-based software suite '''Dependency''' for all their scripting needs. '''Dependency''' is basically interchangeable with '''Lich''', but they are in fact two separate things. Please check out the [[Dependency]] page for more details regarding its use.
Many users utilize Lich as simply a game-wide chat room for discussion and to get help, while others utilize the Lich-based software suite '''DR-Scripts''' for all their scripting needs. '''DR-Scripts''' is basically interchangeable with '''Lich''', but they are in fact two separate things. Please check out the [[Dr-scripts]] page for more details regarding its use.


== Setting Up ==
== Setting Up ==

Revision as of 06:36, 25 June 2018

There are other pages that use the name "Lich." Follow the link for more details.


Understanding Lich

Welcome to Lich! The Lich Engine (Lich) is a Ruby-based scripting engine which was originally designed for the Simutronic’s Game Gemstone. The foundation of Lich is such that it provides a means to automate the gameplay through use of scripts written in the Ruby programming language. Lich is not a Front End (FE), it is a scripting engine that hooks into an FE and communicates through it with the Simutronic’s servers. Currently, the most widely used FE’s for DR with Lich are Wizard, Storm Front, Genie, Profanity, and Frostbite. Some work right out of the box while others require a bit of tweaking, but all have been used successfully for a long time. The base Lich install supports the use of the go2 command, which works just like Genies’ goto. Mapping is supported by the narost script. Narost loads a Ruby-based window that provides a point and click map for traversing around Elanthia. Narost was named after Gemstone’s original mapper, Tsoran (it’s his name backward). Go2 and the narost map database are updated frequently.

This is the foundation of Lich. You can write scripts in Ruby, and place them in the Lich/scripts folder and access them in-game using the semicolon command. Let’s say you write a simple script that removed all your armor and you named it removearmor.lic. You would then use the command “;removearmor” in-game to invoke that script and run it. As you can see, this is very similar to how Genie or SF scripts work with the comma and period invoking. You have access to making all your own scripts by converting SF/Genie scripts to Ruby, etc.

Note

Many users utilize Lich as simply a game-wide chat room for discussion and to get help, while others utilize the Lich-based software suite DR-Scripts for all their scripting needs. DR-Scripts is basically interchangeable with Lich, but they are in fact two separate things. Please check out the Dr-scripts page for more details regarding its use.

Setting Up

Basic Lich instructions are found here[1].

Solving RubyGems Error

Sometimes when installing you can run across issues where a RubyGem error will pop up, for example:


--- Lich: error: Could not find a valid gem 'rest-firebase' (~> 1.1.0) locally or in a repository

Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed


To fix this error:

  • Open up a cmd prompt (WIN_KEY + R, type cmd, press enter)
  • Type cd c:\ruby200\bin to navigate to c:\ruby200\bin
  • Run gem which rubygems to see which directory rubygems is installed in.

Example, your location may vary!

Example rubygem error.png

  • Navigate to the correct directory, and then into the rubygems\ssl_certs folder.

EXAMPLE: C:\YourCorrectPath\rubygems\ssl

Example ruby gem loc.png


  • Obtain the certificate file GlobalSignRootCA.pem [2](right click->save as) to the ssl_certs folder you located above. Make sure it's saved as a .pem file, not a .txt file.
  • Run Lich.

Scripting Example

In the basic script below, once every 10 seconds we check if the spell Regenerate is up, if it isn't, we recast it.

loop do

 if DRSpells.active_spells['Regenerate'].to_i <=0
   stop_script('magic') if Script.running?('magic')
   fput('prep regen')
   waitcastrt?
   fput('cast')
 end
 pause 10

end

Lich Script Repository

https://elanthipedia.play.net/Lich_script_repository

External Ruby Help

http://tryruby.org/levels/1/challenges/0

https://www.codecademy.com/learn/learn-ruby