dragon-realms / dr-lich Goto Github PK
View Code? Open in Web Editor NEWFork (https://github.com/matt-lowe/Lich) of Lich (https://lichproject.org/) for proofing DR related changes
Fork (https://github.com/matt-lowe/Lich) of Lich (https://lichproject.org/) for proofing DR related changes
2018-08-25 20:59:13: info: Lich 4.6.44
2018-08-25 20:59:13: info: Ruby 2.0.0
2018-08-25 20:59:13: info: i386-mingw32
Oops. Posted by accident here. Please close.
test
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.
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.
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.
[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.]
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.
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)
Line 550 in 81fb8e4
rescue LoadError, Gtk::InitError => e
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.
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).
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.
The match for successful moves is a little to greedy, as it matches the text from retreating, see further details in the following issue.
You almost make it to the top of the rock face before losing your grip!
The ground approaches you at an alarming rate! SPLAT!
Latest Lich = 4.6.54
We're based off of 4.6.49
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.
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:\WINDOWS\system32>
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:
We assume current user is already on the fork.
If those are all good then I think we can submit the modified bootstrap.lic to dr-scripts. When thats merged, get this merged!
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?
The port number is 11324.
[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
.
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.
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.
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!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.