PDA

View Full Version : Lich & Third Party Client - Problem with Game Output?



LivderaDeralleur
07-03-2017, 09:30 AM
Alright. I've successfully managed to connect Lich to my third party client for people with visual impairments (VIP MUD).

It was exciting to finally be able to enter ;go2 and actually see output!

However, I'm getting some weirdness in the output, which I'm guessing is output from the game that is expecting dialog windows and so forth that don't exist.

Snippet:
robe</right><left>heavy backpack</left><indicator id='IconBLEEDING' visible=''/><indicator id='IconPOISONED' visible=''/><indicator id='IconDISEASED' visible=''/><indicator id='IconSTANDING' visible='y'/><indicator id='IconKNEELING' visible='n'/><indicator id='IconSITTING' visible='n'/><indicator id='IconPRONE' visible='n'/><image id="back" name="Injury1"/><image id="abdomen" name="Injury1"/><image id="chest" name="Injury1"/><compass><dir value='s'/><dir value='sw'/></compass>
<dialogData id='ActiveSpells' clear='t'></dialogData><dialogData id='ActiveSpells'><label id='lblNoSpellsFound' value='No spells found.' top='0' left='0' align='center'/></dialogData>
<prompt time="1499087937">&gt;</prompt>

I tried indicating to Lich to connect via Wizard (thinking maybe the problem was the StormFront stream) but I still seem to be getting this.

Is this even fixable on my end or is this something on my client's end? Kind of sad to get this far and still not be able to use the thing.

Tillmen
07-03-2017, 01:03 PM
All that stuff is used by Stormfront to update various status bars and windows, and used by Lich to make scripts work. Switching to the Wizard stream would just cause a different kind of weirdness. There would be less of it, but it would still be there. You could remove all the weirdness with a script using a DownstreamHook. That might cause conflicts with other scripts using DownstreamHooks, depending on which hook is processed first and what they're doing.

I'll look into adding support for this frontend in Lich 5, but you probably don't want to wait for that.

hello
07-03-2017, 01:08 PM
All that stuff is used by Stormfront to update various status bars and windows, and used by Lich to make scripts work. Switching to the Wizard stream would just cause a different kind of weirdness. There would be less of it, but it would still be there. You could remove all the weirdness with a script using a DownstreamHook. That might cause conflicts with other scripts using DownstreamHooks, depending on which hook is processed first and what they're doing.

I'll look into adding support for this frontend in Lich 5, but you probably don't want to wait for that.

Do you recommend Stormfront or Wizard to use with your program?

Tillmen
07-03-2017, 01:10 PM
No.

Tillmen
07-03-2017, 01:31 PM
Maybe I should elaborate. As far as Lich is concerened, It doesn't matter what frontend you use. If you use the WizardFE, Lich pretends to be Stormfront so it gets all that nice XML, and then translates it to what the WizardFE is expecting. That way you don't have to have a Wizard version of each script.

One difference when using the WizardFE with Lich is that the game might tell you to click something, like to read news, and you'll need to type something instead. It's not always obvious what you need to type, but it's pretty rare that I'm at all interested in what it wants me to click anyway.

Another thing is if you want to use a script that creates Stormfront windows, You'll need to use Stormfront. However, most of those scripts have a second version that uses GTK windows, and will work with any frontend.

Beyond that, it's just personal preference. I don't like clicking on anything while I play, and I don't like the general sluggishness of Stormfront. Plus I like to stay connected long enough that the Stormfront memory leak is annoying. Plus I don't use Windows, so running under Wine or an emulator gets even slower. So, Stormfront would be my last resort. But Stormfront does have plenty going for it, and if you're more interested in those features than I am, go for it.

I don't use the WizardFE anymore either. I use Profanity. But that's not a resonable option for anyone using Windows.

Donquix
07-03-2017, 01:57 PM
Maybe I should elaborate. As far as Lich is concerened, It doesn't matter what frontend you use. If you use the WizardFE, Lich pretends to be Stormfront so it gets all that nice XML, and then translates it to what the WizardFE is expecting. That way you don't have to have a Wizard version of each script.

One difference when using the WizardFE with Lich is that the game might tell you to click something, like to read news, and you'll need to type something instead. It's not always obvious what you need to type, but it's pretty rare that I'm at all interested in what it wants me to click anyway.

Another thing is if you want to use a script that creates Stormfront windows, You'll need to use Stormfront. However, most of those scripts have a second version that uses GTK windows, and will work with any frontend.

Beyond that, it's just personal preference. I don't like clicking on anything while I play, and I don't like the general sluggishness of Stormfront. Plus I like to stay connected long enough that the Stormfront memory leak is annoying. Plus I don't use Windows, so running under Wine or an emulator gets even slower. So, Stormfront would be my last resort. But Stormfront does have plenty going for it, and if you're more interested in those features than I am, go for it.

I don't use the WizardFE anymore either. I use Profanity. But that's not a resonable option for anyone using Windows.

Curious if anyone has messed with trying to get profanity / lich running with either Cygwin or the new Ubuntu subsystem for Win10. I just use a VM.

Tillmen
07-03-2017, 03:42 PM
With Windows 10, they supposedly made the terminal support more than 16 colors, which is the only issue with using Profanity on Windows that I know about. It just looks like crap if it only has 16 colors to work with. So, it might be perfectly fine on Windows 10 without any extra work. I just don't want to encourage people to use Windows, let alone Windows 10.

LivderaDeralleur
07-03-2017, 07:45 PM
All that stuff is used by Stormfront to update various status bars and windows, and used by Lich to make scripts work. Switching to the Wizard stream would just cause a different kind of weirdness. There would be less of it, but it would still be there. You could remove all the weirdness with a script using a DownstreamHook. That might cause conflicts with other scripts using DownstreamHooks, depending on which hook is processed first and what they're doing.

I'll look into adding support for this frontend in Lich 5, but you probably don't want to wait for that.

Thanks for the input Tillmen - that is pretty much what I was expecting was happening.

I don't seem to get the same weirdness when connecting directly to the StormFront or Wizard streams - not sure if it is being stripped out somehow in that way or what is happening differently.

And yeah - my thought was I could make some triggers in VIP MUD and pre-emptively gag some of that stuff, though the only issue would be some of the items where actual text I want to display is surrounded by some of the garbage. I'll have to fiddle with it a bit.

And a note if you're looking for things to update for the next version of Lich:
- The Lich GUI, as it is now, is not accessible with a screen reader (IE Freedom Scientific's JAWS, though I imagine the same for NVDA or Window-Eyes.)
- Seems to be accessible with a keyboard (I can tab to things) but the screen reader does not announce what it is tabbing to.
- Not sure if this is a case of the elements not being labelled properly or if JAWS is not getting proper access to the MSAA information behind the scenes.
- Thus, I had to have my sighted husband help me fill out the quick login form initially so I could then use the command prompt (--login <character name>).

Khariz
07-03-2017, 10:58 PM
I think its sweet that VIP MUD exists at all. And that Tillmen is willing to implement adding support. I freaking love text based games and I'm so happy people continue to work to keep them viable. Thanks for all that everyone does for that. Genuinely.

LivderaDeralleur
07-05-2017, 04:22 PM
Update on my progress on this.

I've managed to squelch 3-4 of the lines of game XML on my end - mainly the ones that were firing every so often in the background. (Basically a trigger and a gagline.) It has made the game output a bit less weird and a bit easier to read/listen to.

Currently the biggest issues are:
- the <a exist="#" noun="blah"></a> that surrounds anything that would be clickable in SF.
- The <popBold> for what I am assuming is monster bolded content.

I'm currently trawling through the scripting language documentation for VIP MUD to see if there is any easy way to strip these things out but keep the content it is surrounding.

If anyone has any ideas on how to do this with a Lich script that won't mess up other Lich scripts, I'm all ears.

I haven't yet tried to go hunting or anything - I've only setup my side account Cleric as a tester of sorts.

I did have a moment of glee in using ';go2 bank'. (;go2 is mainly what I wanted to set Lich up for!)

Is there a list of room numbers somewhere for different hunting grounds? I won't be able to use maps to find room numbers, so was hoping I could ;go2 <insert creature name>' and it'd take me there.

Khariz
07-05-2017, 04:46 PM
If you use ;bestiary and search for a level range or monster there, it will tell you the name of the area the monster resides. And then you can use ;go2 or ;narost to get there.

LivderaDeralleur
07-05-2017, 05:00 PM
If you use ;bestiary and search for a level range or monster there, it will tell you the name of the area the monster resides. And then you can use ;go2 or ;narost to get there.

Alright - I see the output for ;bestiary is something like this:
(25) Krolvin warfarer [Living, Corporeal]
Link: https://gswiki.play.net/mediawiki/index.php/Krolvin_warfarer
Areas: Abandoned Mine, Sea Caves, Krolvin Ship, Old Mine Road


But there is no real list of room numbers for these places.

Does ';go2 Abandoned Mine' work? (I really can't try right now due to my Lich test character being weighed down with junk ATM. Heh.)

Khariz
07-05-2017, 05:29 PM
Yes ;go2 is very flexible. You can use it to go to any word in any room including the title of the room

LivderaDeralleur
07-05-2017, 06:07 PM
This is going to be so useful to me once I figure out how to strip all this junk output.

There is a replace function in VIP MUD I am trying to leverage, though it seems to have issues with quotation marks showing up in the search string. Bah.

LivderaDeralleur
07-05-2017, 06:41 PM
Just in case there happens to be another blind player further down the line that may need this.

These triggers clean up the stuff around the ;lnet channel chatter:
#trigger {*pushStream id="thoughts"*} {
#var output %0;
#gagline;
#var posEnd {%pos("/>", @output)};
#say {%delete(@output, 1, @posEnd)}
}

#trigger {*<popStream/>} {#gagline}

Nearly got the thing for cleaning up the <a exists ... etc. stuff, too.

LivderaDeralleur
09-22-2017, 06:00 PM
Because it'd be nice to have use of go2 for the upcoming EG - anyone have any ideas for a script that could strip this garbage XML output in a downstream hook that Tillman was talking about? Preferably without messing up ;go2.

I'm going to see about doing some more squelching work on my end tonight, but VIP MUD's scripting language only goes so far.

kutter
09-24-2017, 04:42 PM
I am pretty sure there is at least one other vision impaired player because I was helping them a while back giving directions to all the forges in the lands, mind you I did not recommend forging, because it is a life sucking task from which there is no escape, but I still told them where they were, I will go back and see if I can find out who it was.

And kudos to you for your innovation and Tillmens aptitude and willingness to help us all out with all he does.