Giter Club home page Giter Club logo

dr-lich's People

Contributors

binudr avatar charleyc-dr avatar dr-leustyin avatar jandersson avatar katoakdr avatar krysis09 avatar lucianposton avatar mahtradr avatar matt-lowe avatar rcuhljr avatar richardhertzog avatar rpherbig avatar sarvatt avatar stewgoin avatar uftimmy avatar vtcifer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dr-lich's Issues

Go2 undergondola hang ups

Copied from rpherbig/dr-scripts#1225, from @izawwlgood:


And this - second attmpt was manually entered

Room Number: 19472

[go2]>climb ledge
You make your way up the ledge. Partway up, you make the mistake of looking down. Struck by vertigo, you cling to the ledge for a few moments, then slowly climb back down.
Roundtime: 2 sec.

climb led
You approach the ledge, but the steepness is intimidating.
Roundtime: 2 sec.

Port 4901 or 4091?

It seems in the latest version, the gameport = 4901 was changed to 4091. Is this correct or is this a typo. This would certainly cause issues in connection if it's the case.

Simutronics onsite team connection questions.

Lyneya (Nora) has asked me to post this here and if anyone has any questions to forward to the onsite team, they can be sent to her through discord. Her discord handle is Lyneya#1483.

The service that we want to discontinue listens on port 7900 at eaccess.play.net.  We probably have multiple domain names that point to that IP address.  Information exchanged to that service is not protected to any modern standard of encryption.

The replacement service listens on the same IP address but port 7910.  It uses the TLS protocol standard.  The data sent over the encrypted channel is the same format as before except there are no newlines at the end of messages (we rely on TLS to deliver complete messages).

It is important that clients verify that the certificate received by the handshake is what we've configured on the server (to prevent man in the middle attacks).  We use a self-signed certificate, so you can't follow the certificate chain to a trusted root certificate.  In our Windows client, we include the certificate in a file that is read and compared with the received certificate.

That is the high level technical description of what needs to be done.  Beyond that, we can try to answer questions and provide sample C++ code from what we do in the SGE.

move method does not handle failure due to a recent spellcast

[go2]>west
You're still recovering from your recent cast.
>
You feel fully rested.
>
The young ogre begins to advance on you!
The young ogre is still a distance away from you and is closing steadily.
>
The young ogre closes to pole weapon range on you!
>
You feel fully attuned to the mana streams again.
>
The young ogre closes to melee range on you!
>
* Moving in like a timid schoolboy, a young ogre bashes a spiked mace at you.  You block solidly with a metal target shield.  
[You're nimbly balanced with opponent in good position.]
>
[go2: move: no recognized response after 30 lines.  giving up.]

Can't Connect At All Anymore

So after following the steps for setting this up the game immediately disconnects when trying to use Genie or Stormfront, even if I run the ruby command that listens for the port 4001 etc.

GTK InitError (trying to open display) when in CLI only mode (WSL) due to missing rescue catch

Traceback (most recent call last):
        2: from ./lich.rbw:548:in `<main>'
        1: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
/usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require': cannot load such file -- gtk2 (LoadError)
        5: from ./lich.rbw:548:in `<main>'
        4: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:156:in `require'
        3: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:168:in `rescue in require'
        2: from /usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:168:in `require'
        1: from /var/lib/gems/2.7.0/gems/gtk2-3.4.3/lib/gtk2.rb:13:in `<top (required)>'
/var/lib/gems/2.7.0/gems/gtk2-3.4.3/lib/gtk2.rb:13:in `init': Cannot open display:   (Gtk::InitError)

rescue LoadError

Should be changed to:

rescue LoadError, Gtk::InitError => e

New systems have an issue with dh key length

I just set this up on a custom client with ubuntu 18 and couldn’t download maps due to the dh key for the host:port listed under the ;repository download-mapdb command.

The cert needs upgraded to be more modern, i presume you have a 1024 bit dh key which doesn’t cut the mustard anymore. Thanks!

> ;repository download-mapdb                                                          
--- Lich: repository active.                                                         
[repository: error connecting to server: SSL_connect returned=1 errno=0 state=error: 
dh key too small]                                                                     
--- Lich: repository has exited.    

TM Focus doesn't invoke after using telescope in combat

I've been using a TM focus and when first getting into combat the combat-trainer script will invoke it correctly. My moon mage will occasionally swap to telescope to train astrology in combat and after doing that it will stow the telescope and wield the TM focus (animite sphere) but it won't invoke it.
Same issue when holding a ritual focus when rebuffing.
I thought this worked at one point so it might be a regression (or maybe I just didn't notice before).

Excessive file type checking when running scripts

When looking for scripts in the ./scripts and ./scripts/custom folder, lich is looking for the following extensions:
.lic, .rb, .cmd, .wiz, .lic.gz, .rb.gz, .cmd.gz, .wiz.gz, .lic.z, .rb.z, .cmd.z, and .wiz.z

This seems excessive. The following block of code for matching the file name is also very convoluted. It seems like it could be cut in half.

if file_name = (file_list.find { |val| val =~ /^(?:\/custom\/)?#{Regexp.escape(script_name)}\.(?:lic|rb|cmd|wiz)(?:\.gz|\.Z)?$/ || val =~ /^(?:\/custom\/)?#{Regexp.escape(script_name)}\.(?:lic|rb|cmd|wiz)(?:\.gz|\.Z)?$/i } || file_list.find { |val| val =~ /^(?:\/custom\/)?#{Regexp.escape(script_name)}[^.]+\.(?i:lic|rb|cmd|wiz)(?:\.gz|\.Z)?$/ } || file_list.find { |val| val =~ /^(?:\/custom\/)?#{Regexp.escape(script_name)}[^.]+\.(?:lic|rb|cmd|wiz)(?:\.gz|\.Z)?$/i })
         script_name = file_name.sub(/\..{1,3}$/, '')
      end

file_list in the above block of code is:
file_list = Dir.children(File.join(SCRIPT_DIR, "custom")).map{ |s| s.prepend("/custom/") } + Dir.children(SCRIPT_DIR)

There are 3 sections to it. The first find block is checking if any of the files match either of these 2 patterns:
/^(?:\/custom\/)?#{Regexp.escape(script_name)}\.(?:lic|rb|cmd|wiz)(?:\.gz|\.Z)?$/
/^(?:\/custom\/)?#{Regexp.escape(script_name)}\.(?:lic|rb|cmd|wiz)(?:\.gz|\.Z)?$/i

I am unsure why these two are both needed. It seems like the second with the insensitive tag would match anything that the first one would match.

Then the next find block is checking if the file name matches this pattern:
/^(?:\/custom\/)?#{Regexp.escape(script_name)}[^.]+\.(?i:lic|rb|cmd|wiz)(?:\.gz|\.Z)?$/

And then the last find block checks for this pattern:
/^(?:\/custom\/)?#{Regexp.escape(script_name)}[^.]+\.(?:lic|rb|cmd|wiz)(?:\.gz|\.Z)?$/i

The only differences between these two are that in the first one the extension (lic, rb, cmd, and wiz) are a case insensitive check, and in the second one the whole pattern is case insensitive.

These last two blocks allow for matching partial script names so you can run ;repos and it'll find repository.lic

In trying to consolidate these, I came up with this. I was trying to make it so that you could run a script with the extension ;repository.lic. Currently if you do that, it will say script not found. In doing so, I forgot about running scripts with partial filenames. Here is what I had come up with for that:

if file_name = ( file_list.find { |val| val =~ /^(?:\/custom\/)?#{Regexp.escape(script_name)}(?:\.lic|\.rb|\.cmd|\.wiz)?(?:\.gz|\.Z)?$/i } )

This does allow you to run any script with or without its extension, but it won't allow you to run a partial script name.

I think this captures all possible cases:
if file_name = ( file_list.find { |val| val =~ /^(?:\/custom\/)?#{Regexp.escape(script_name)}(?:\.lic|\.rb|\.cmd|\.wiz)?(?:\.gz|\.Z)?$/i || val =~ /^(?:\/custom\/)?#{Regexp.escape(script_name)}[^.]+\.(?:lic|rb|cmd|wiz)(?:\.gz|\.Z)?$/i } )

It could use some more eyes on it though.

Crossing-Train Magic Improvements

Currently, Crossing-Trainer utilizes a timer based methodology to work magic. This is flawed. If it were to utilize repetitive mind-state training it would be capable of actually training magic instead of, well, not.

latest version of Lich will not run with Genie Switch

Running as Admin Command Prompt

Microsoft Windows [Version 10.0.14393]
(c) 2016 Microsoft Corporation. All rights reserved.

C:\WINDOWS\system32>ruby C:\lich\lich.rbw --dragonrealms --genie
C:/lich/lich.rbw:5: syntax error, unexpected '<'

^
C:/lich/lich.rbw:6: syntax error, unexpected '<'

^ C:/lich/lich.rbw:6: syntax error, unexpected keyword_class, expecting end-of-input ^

C:\WINDOWS\system32>

Test Trust Changes

We should do some testing before a high impact change like this is made... So far, it looks like the bootstrap.lic script needs to be updated, for anything to work. rcuhljr provided a potentially working bootstrap.lic here https://gist.github.com/rcuhljr/3e4389174d14536e66b5895460a4b06c

A couple of test cases that should be explored:

  • New user Installs lich + dependency from < 2.3 + switches to fork
  • New user installs lich + dependency from >= 2.3 + switches to fork

We assume current user is already on the fork.

  • Current user with >= 2.3 gets update
  • Current user with < 2.3 gets update
  • Current user with < 2.3 gets update then upgrades to >= 2.3

If those are all good then I think we can submit the modified bootstrap.lic to dr-scripts. When thats merged, get this merged!

repository isn't updating automatically at startup

img-2020-04-02T21:27:05 237Z

Some error is causing repository to not receive the download-updates argument as expected. It appears to be in the sqlite db as expected, however. I tried deleting the sqlite dbs so the autostarts are repopulated, and also tried reinstalling dr-lich.

Cant connect

A few months ago I tried setting up Lich with Genie, never worked, I uninstalled ruby & just deleted lich as there is no uninstall for it.

Decided to give it another shot, reinstalled ruby with both the path & associate boxes checked. fresh dl's of both ruby & Lich to a win10 system.
Also did this as recommended on the dr discord...When you goto install Lich which is step 3 under: https://lichproject.org/download.html#win_storm_wiz_lich, before you double click and run lich on step 5, type the following command: gem source -a http://rubygems.org/ (( Make sure to run as Admin ))

So, now I can log into lich in both sge & sf, sf settings to local just in case. Did the fork to go to genie.

Open up genie, dont log in yet.. open windows command prompt (admin version).. see the window is listening on port 4901 & waiting. Grab genie & log into a preset character.. get where its trying to connect to eaccount then closing, if I hit look here it logs me out as invalid key. If I can push past this point, which it usually doesnt, it keeps trying to reconnect...if I get to connecting to dr.simu.. it just hangs until the windows prompt gives up then it connects without lich.

It was suggested I look at my host file, no 127.0.0.1 info, just the info with the pound signs. So was suggested I try hand adding it.. nope, nothing different. Remove it, still not adding.

If I set up a look trigger, then it tells me invalid key at the eacct info. If I try hand doing the look, same thing.

I did the downloads & such of scripts & all that, I'm running what I need to as admin.
Lousy win10 system. I am so not in the mood to redo a win10 fresh install along with about 50-75 gbs of download programs on a 5gb monthly sat connection.
I logged in & asked in the help channel not realizing it was mainly GS folks :( My bad, sorry. They tried but not being familar with genie the only one who seemed to know about it said they would have to dig into it.

Any ideas?

move method is missing a 'retreat' case

[bescort]>northwest
You need to retreat out of combat first!
>
[snip some unrelated lines]
>
[bescort: move: no recognized response in 30 seconds.  giving up.]
>
[bescort]>north
You are engaged to a forest geni at melee range!
>
[bescort]>retreat
You retreat back to pole range.

The "You need to retreat out of combat first!" text isn't handled in def move in lich.rbw.

Status Bar Colors / Command Delay

Trying to reproduce this but sometimes when you connect into Glitch, it captures the game window and says "Connection Closed", you enter a command and then all of the status bar is grey on the bottom, directions etc.

Also, I've noticed and trying to re-produce this also there is a slightly delay in commands. For example when running some scripts it seems to enter commands twice so an example:

fire
load

Its basically not waiting for the RT and inputting the commands. I did these tests with just the Genie Hunt scripts. Without running Lich direct Genie works flawless. This is somewhat fixable with the last command trigger but even that does not always fix the issue as commands then get behind in scripts and has to be restarted.

Move failures

You attempt to climb down the ledge, but you can't seem to find purchase.
Roundtime: 2 sec.

You start down the ledge, but you find it hard going. Rather than risking a fall, you make your way back up.
Roundtime: 3 sec.

Barb Meditations

In base-spells.yaml the Barb Meditations have their activated messages of when you start the meditation. Without the Yogi Mastery, it still takes a few seconds to complete after the round time before you can stand up. So, can we change the Meditations from;

activated_message: ^You .* to meditate

to

activated_message: feel a jolt as your vision snaps shut

I've edited them all in the attached base-spells.yaml but I'm not quite sure how to get it added to the "base" so my file doesn't keep getting updated locally.
base-spells.zip

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.