Mushclient and System Access

Posted by Itzie on Sat 05 Dec 2009 02:31 AM — 14 posts, 46,367 views.

Australia #0
Hello!

I am asking this on behalf of a friend, is there a plugin or support for the screenreader System Access for Mushclient anywhere? I know there are things out there for JAWS but my friend wants to stay with System Access.
Australia Forum Administrator #1
I downloaded a copy of System Access to Go, to try to see what would be required, but got a message from my AntiVirus software that it contained the TR/Dropper.Gen trojan.

I am somewhat reluctant to continue investigating this under the circumstances.

According to one web site I visited:

Quote:

It is not possible to extensively configure System Access as with other commercially available screen readers: e.g. no scripting or programming available, no frame or speech windows etc.


This makes it look like scripting (eg. from MUSHclient) is not available.
Australia #2
Well she said it uses cookies but no trojan.

She was under the impression that Mushclient could be configured to work with it.

But thanks for the reply :)
#3
There is a system access plugin available, coded by tspivey and added notepad output ability by myself, press ctrl tab in the world file to see the output.
you can downoad it at
http://mycrap.scrapping.cc/sa.rar
it has 2 extra functionst aht you can use as alises, tts_note and tts_interrupt
you can turn tts on/off using the tts command.
download plugin at
http://mycrap.scrapping.cc/sa.rar
Btw, check out alter aeon http://dentinmud.org
it has blind friendly scripts made by myself which can be downloaded at
http://mycrap.scrapping.cc/mush.exe
hth
Amended on Sat 05 Dec 2009 11:25 AM by Ogomez92
Australia #4
We get a file not found with that link.
#5
Sorry, I had uploaded the file to the wrong place stupid of me. try
http://mycrap.scrapping.cc/samush.rar
should work now
Australia #6
Ok, so she tries to load that plugin but she gets a runtime error.

This is the XML from it -

http://mextli.tomaw.net/~dmwaters/TTS_SA.xml

Just wondering how she would get it loaded. She does go file > plugins > add.

She also doesn't know what to do with the dll file.
USA #7
It -always- helps if you post the runtime error. Is there any chance you could post it for us?

I believe the DLL will need to go in the MUSHclient\lua\ directory. You'll need to change some stuff to make the DLL load properly, though. First, use Ctrl+I, and type this in:

print('"' .. GetWorldID() .. '"')


Then hit run and close the dialog. It should spit out a bunch of letters and numbers, surrounded by quotes. Keep that handy.

Go into File -> Global Preferences -> Lua. Scroll down until you find a line that starts with "local trusted_worlds". Below that line, add this:

[the output from before] = true,


You need to replace the underlined text there with the output from before that I told you to keep handy. It should look something like this (but the string will be different)

["1ec5aac3265e472b97f0c103"] = true,


After that, go the next section starting with "local trusted_plugins", and add this exact line:

["c97ea1385bf01fd29c866716"] = true,


This time, the numbers and letters are from the plugin's ID, which we already know (it's in the XML). Then save and close the properties window. Restart MUSHclient for good measure, and hopefully it should work.
Amended on Sun 03 Jan 2010 10:30 PM by Twisol
Australia Forum Administrator #8
Twisol said:

I believe the DLL will need to go in the MUSHclient\lua\ directory.


I would put the DLL in the same directory as MUSHclient.exe.

Quote:

... she gets a runtime error.


I agree it is much easier to help if you specify the error. Saying "an error" is extremely vague.
USA #9
Nick Gammon said:

Twisol said:

I believe the DLL will need to go in the MUSHclient\lua\ directory.

I would put the DLL in the same directory as MUSHclient.exe.

Ah, you're right; I'm used to require() semantics.
Australia #10
Am sure she would give me the error if she could, but it's not talking right.

I let her know and she'll give that a try.
Australia Forum Administrator #11
More simply, you can try this:

  1. Select File Menu -> Global Preferences -> Lua
  2. Change the first two lines to trust everything:

    
    trust_all_worlds = true -- change to true to trust all the worlds
    trust_all_plugins = true -- change to true to trust all the plugins
    

  3. Make sure "Allow DLLs to be loaded" is checked.
  4. Put the DLL in the same directory as MUSHclient.exe.
  5. Close and re-open the world to force the script space to be reprocessed.

USA #12
That is a lot simpler. It's a pity there's no easier way to toggle trust without compromising security.
Australia Forum Administrator #13
This is the plugin from the link above, cleaned up a bit to make it easier to read.

Template:saveplugin=TTS_SystemAccess
To save and install the TTS_SystemAccess plugin do this:
  1. Copy the code below (in the code box) to the Clipboard
  2. Open a text editor (such as Notepad) and paste the plugin code into it
  3. Save to disk on your PC, preferably in your plugins directory, as TTS_SystemAccess.xml
    • The "plugins" directory is usually under the "worlds" directory inside where you installed MUSHclient.
  4. Go to the MUSHclient File menu -> Plugins
  5. Click "Add"
  6. Choose the file TTS_SystemAccess.xml (which you just saved in step 3) as a plugin
  7. Click "Close"
  8. Save your world file, so that the plugin loads next time you open it.



<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE muclient>
<!-- Saved on Tuesday, December 09, 2008, 2:04 PM -->
<!-- MuClient version 4.37 -->

<!-- Plugin "system_access" generated by Plugin Wizard -->

<muclient>
<plugin
   name="TTS_SystemAccess"
   author="Tyler Spivey"
   id="c97ea1385bf01fd29c866716"
   language="Lua"
   purpose="enables SystemAccess speech"
   save_state="y"
   date_written="2009-11-06 17:00:34"
   requires="4.37"
   version="1.0"
   >

</plugin>

<aliases>
  <alias
   match="tts_stop"
   enabled="y"
   send_to="12"
   sequence="100"
  >
<send>
sa.stop()
</send>
  </alias>
  
  <alias
   match="tts_interrupt *"
   enabled="y"
   send_to="12"
   sequence="100"
  >
  <send>
sa.stop()
sa.say("%1")
</send>
  </alias>
  
<alias
   match="tts_note *"
   enabled="y"
   send_to="12"
   sequence="100"
  >
  <send>
sa.say("%1")
</send>
  </alias>

  <alias
   script="TTSToggle"
   match="tts"
   enabled="y"
   group="TTS"
   omit_from_command_history="y"
   omit_from_log="y"
   omit_from_output="y"
   sequence="100"
  >
  </alias>
  
</aliases>

<script>
<![CDATA[

tts_enabled = true

function OnPluginInstall ()
  assert(package.loadlib("sa.dll", "luaopen_audio"))()
  sa.say("SA plugin initialized")
end

function OnPluginScreendraw(t, log, line)

  AppendToNotepad("output", line .. "\r\n")
  
  if not tts_enabled then
    return
  end --tts off
  
  if t == 0 or   -- output line
     t == 1 then  -- note line
    sa.say(line)
  end -- if
  
end -- function OnPluginScreendraw

function TTSToggle (name, line, wc)

  if tts_enabled then
    tts_enabled = false
    sa.say ("speech off")
  else
    tts_enabled = true
    sa.say ("speech on")
  end -- if
  
end -- function TTSToggle

]]>            
 </script> 
</muclient>