Notice: Any messages purporting to come from this site telling you that your password has expired, or that you need to verify your details, confirm your email, resolve issues, making threats, or asking for money, are
spam. We do not email users with any such messages. If you have lost your password you can obtain a new one by using the
password reset link.
Entire forum
➜ MUSHclient
➜ VBscript
➜ Office Assistant sniplet
Posting of new messages is disabled at present.
Refresh page
Posted by
| Storm Dragon
Denmark (45 posts) Bio
|
Date
| Sat 11 May 2002 02:02 AM (UTC) Amended on Sat 11 May 2002 02:11 AM (UTC) by Storm Dragon
|
Message
|
'--------------------------- START AGENT STUFF -------------------------------------
Dim Agent
Dim Cat
Set Agent = CreateObject("Agent.Control.2")
Agent.Connected = True
Agent.Characters.Load "Cat", "D:\Dokume~1\lensmoor\agent\offcat.acs"
' Load up the character.
' This is where I have my assistant located, might be diffrent with you.
Set Cat = agent.Characters("Cat")
' Make it a bit shorter by assigning actions to "Cat"
Cat.Balloon.FontName = "FixedSys"
' Set font to FixedSys, same as muds usually use
Cat.Balloon.FontSize = 8
' Set the size to 8 (thats my config in any case)
'------------Microsoft being asses about configuring their software-----------------
' in a most complex way so noone can fiddle without doing
' something wrong, hence making it take hours to do this stuff
Cat.Balloon.Style = (Cat.Balloon.Style AND auto-pace) + 1
' Above line removes timer on the text sent to the assistant
' making it blurt it out at once instead of a word at the time
Cat.Balloon.Style = (Cat.Balloon.Style AND &H00FFFFFF) + (4*(2^24))
' This one sets the amounts of lines displayed to 4
Cat.Balloon.Style = (Cat.Balloon.Style AND &HFF00FFFF) + (80*(2^16))
' this one sets the line length to 80 characters
'--------------------------- End ass stuff -----------------------------------------
sub AgentHide() ' I use this for world.disconnects (in the script window)
Cat.Hide ' assistant is spooked and hides
end sub
sub AgentShow() ' I use this for world.connects (in the script window)
Cat.Show ' Show my assistant
end sub
sub AgentSpeak(sentence)
Cat.Think sentence ' This can be Think or Speak
world.deletetimer "BubbleTimer"
world.addtimer "BubbleTimer", 0, 0, 20, "", 5, "AgentHideBubble"
' Make the bubble with text stay for 20 seconds before hiding it
end sub
sub AgentHideBubble (strTriggerName)
Cat.Balloon.Visible = FALSE
' Hide bubble (this erases the text in the bubble as well)
end sub
'--------------------------------- END AGENT STUFF --------------------------------------
sub RelayTell (strTriggerName, trig_line, arrWildCards)
AgentSpeak(trig_line) 'This relays the trigger line to the assistant
' (good for tells and other messages from a mud :))
end sub
| Top |
|
Posted by
| Storm Dragon
Denmark (45 posts) Bio
|
Date
| Reply #1 on Sat 11 May 2002 02:06 AM (UTC) Amended on Sat 11 May 2002 02:36 AM (UTC) by Storm Dragon
|
Message
| I hope you people enjoy it as much as I did making it ;)
have fun..
Addition.. if you use my script please post your comments on it here, what you think of the idea and such.. | Top |
|
Posted by
| Jcet
USA (25 posts) Bio
|
Date
| Reply #2 on Sun 12 May 2002 08:48 AM (UTC) |
Message
| One question, whats it do? |
-Jcet
See no good, hear no good, be no good, kill all good! | Top |
|
Posted by
| Storm Dragon
Denmark (45 posts) Bio
|
Date
| Reply #3 on Sun 12 May 2002 05:48 PM (UTC) |
Message
| Heh.. Well its a com interface to the MS office assistant
(that pesky little thing popping up with help)
with this script you can work in another window and when something from the world is sent to it
it will display it in a nice little bubble on top of everything
I can see it useful in some aspects, but feel free to experiment.. there is more
helpfiles on www.msdn.microsoft.com
on how to program the little bugger.. my script is just a bit that does the initial stuff to it. | Top |
|
Posted by
| StefanWulph
USA (35 posts) Bio
|
Date
| Reply #4 on Mon 13 May 2002 10:49 PM (UTC) |
Message
| Hello..
Uhmm dumb Q.. How do you get it working? I'm guessing you have to have some triggers setup for it.. Yes/No? If yes, what are they? If no then how? Thanks for the more info and nifty script Storm Dragon..
Stefan Wulph
Proud Winfur and FADHD | Top |
|
Posted by
| Storm Dragon
Denmark (45 posts) Bio
|
Date
| Reply #5 on Thu 16 May 2002 10:49 PM (UTC) |
Message
| I included a "sub" for the assistant called RelayTell
you specify that as script in the trigger and it
will send the line that triggered the trigger to the
assistant.. of course there is more information about
what you can do with it.. right now I just use it to relay messages from the world. | Top |
|
Posted by
| Ishnaf
Australia (17 posts) Bio
|
Date
| Reply #6 on Thu 18 Jul 2002 02:51 PM (UTC) |
Message
| just thought i'd say:
good work, its wicked dude :)
i always thought mushclient needed a cat :P |
egads! | Top |
|
Posted by
| Bluedeer
(2 posts) Bio
|
Date
| Reply #7 on Wed 30 Jun 2004 04:24 AM (UTC) |
Message
| I tried the Office Assistant sniplet script and everything went in without a hitch as far as I can tell, but when I close the Mushclient control panel, nothing happens. Typing /cat.show makes the cat pop up, but he doesn't do anything except his normal animations...he doesn't say anything, doesn't read anything, doesn't -do- anything even if something happens on the muck.
Am I doing something wrong? | Top |
|
Posted by
| Flannel
USA (1,230 posts) Bio
|
Date
| Reply #8 on Wed 30 Jun 2004 05:53 AM (UTC) Amended on Wed 30 Jun 2004 05:55 AM (UTC) by Flannel
|
Message
| I believe that snippet only has a subroutine to say things, you still need to set up triggers/aliases/timers/whatever to make the character say anything.
sub RelayTell (strTriggerName, trig_line, arrWildCards)
AgentSpeak(trig_line) 'This relays the trigger line to the assistant
' (good for tells and other messages from a mud :))
end sub
That. If you have a trigger match, and send to that script file, it will say the line. You could easily change it to say whatever youd like. |
~Flannel
Messiah of Rose
Eternity's Trials.
Clones are people two. | Top |
|
Posted by
| Norbert
USA (61 posts) Bio
|
Date
| Reply #9 on Wed 30 Jun 2004 09:22 AM (UTC) |
Message
| a trigger like this would work
<trigger
enabled="y"
group="Cat"
match="* tells you: *"
name="tells"
script="RelayTell"
sequence="100"
other_text_colour="black"
other_back_colour="black"
>
</trigger>
|
Norbert
-Do you know what it's like to fall in the mud and get kicked... in the head... with an iron boot?
Of course you don't, no one does. It never happens
It's a dumb question... skip it.
| Top |
|
Posted by
| Bluedeer
(2 posts) Bio
|
Date
| Reply #10 on Sat 03 Jul 2004 01:33 AM (UTC) |
Message
| I did figure the relaytell part out after a while. However, here's the problems I have with the script...
I can't change how fast the agent reads. It reads fast and its pitch is a little high. I'd like to be able to slow it down and drop the pitch a little bit. I'm fine with the voice.
Also, it only reads so many words. I often have lines that are often multiple lines in length, like a paragraph, but the character only reads so many words at a time, completely omitting the rest of the sentence when it reaches a certain point. Changing some of the line length options didn't help...in fact, at one point, it completely broke. | Top |
|
Posted by
| Flannel
USA (1,230 posts) Bio
|
Date
| Reply #11 on Sat 03 Jul 2004 02:08 AM (UTC) |
Message
| Cat.Balloon.Style = (Cat.Balloon.Style AND auto-pace) + 1
' Above line removes timer on the text sent to the assistant
' making it blurt it out at once instead of a word at the time
The Autopace thing is your initial problem. It makes the agent talk faster when theyre is a lot of words (and faster makes a higher pitch), umm, there are other options. You can actually set all the values, timing, pitch, (and that cut off). Ill... poke around for it, but the autopace is the first thing you need to get rid of I believe.
mIRC lets you set some of these things, if you poke around there you can get a feel for what you can do with the agents with regards to timing, pitch, et al. |
~Flannel
Messiah of Rose
Eternity's Trials.
Clones are people two. | Top |
|
Posted by
| Flannel
USA (1,230 posts) Bio
|
Date
| Reply #12 on Sat 03 Jul 2004 02:43 AM (UTC) |
Message
| http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnoxpta/html/ODC_MSAgent-I.asp
Talks about speed, pauses (inline stuff, search for spd and pau)
http://www.microsoft.com/msagent/dev/default.asp
is some basic stuff, with examples etc. Its a microsoft page though, so dont expect it to give you anything you can really work with...
http://www.codeproject.com/tips/msagentctrl.asp
That ones a bit more helpful.
Just google "MS Agent" Office Or whatnot. Maybe VBS.
Ive actually seen some pretty decent stuff, but it was a while ago, dont have the links. |
~Flannel
Messiah of Rose
Eternity's Trials.
Clones are people two. | Top |
|
Posted by
| MattMc
USA (54 posts) Bio
|
Date
| Reply #13 on Wed 21 Sep 2005 04:09 AM (UTC) |
Message
| Has anyone figured out how to establish two-way communication between the MSAgent and the user? I want to be able to, for example, click on the agent and have it world.sendnoecho, or right click and select something from the menu (I was able to add commands to the menu, but clicking does nothing).
I added the proper subroutines to the script, but it isn't being triggered.
Any advice?
Matt | Top |
|
Posted by
| Shadowfyr
USA (1,788 posts) Bio
|
Date
| Reply #14 on Wed 21 Sep 2005 06:28 PM (UTC) Amended on Wed 21 Sep 2005 06:30 PM (UTC) by Shadowfyr
|
Message
| Try a different language, like Python or Lua. The reason is pretty simple. MS decided that VBScript shouldn't have a way to expose events to the script, unless the object is created in a different way, since the script system was designed for IE. When you use CreateObject is links to all the outgoing commands, but not events, since it has no internal event handler. In something like IE the object are created 'by' IE, then you use a script command to tell IE to tie the event 'DoSomething' to 'sub DoIt'. in the script itself. This is a limitation of JScript, VBScript and possibly PHP.
The solution is to instead use one of the tools in Python or Lua to generate what is called a 'wrapper'. This is basically just a set of definitions, which tell Python or Lua what the internals of the object look like, including events, much the same way that Nick provides a .TLB file you can import into compilers, so they know how to talk to Mushclient. Once you have such a wrapper, you can then create the object and use the internal event system of the script engine. VBScript doesn't even let you define such external links, for security reasons, or you could do things like:
Private Declare Function InternetAttemptConnect Lib "wininet" (ByVal dwReserved As Long) As Long
Private Sub Form_Load()
If InternetAttemptConnect(ByVal 0&) = 0 Then
MsgBox "You can connect to the Internet", vbInformation
Else
MsgBox "You cannot connect to the Internet", vbInformation
End If
End Sub
The critical 'Lib "wininet"' part of the above is not allowed in any MS scripting system, since it would let people bypass security features to talk directly to Windows. Others do support it, which is why they can also tie events, like your added menu items, to the scripts.
Now, in theory, if someone could figure out how to mimic the way IE handles such objects, then you might be able to do it anyway, by ignoring CreateObject and having Mushclient handle the object creation, etc. But since no one really knows how it does what it does (or more specifically can reproduce it), there is no way to do it in the Microsoft based scripts, like VBScript. | Top |
|
The dates and times for posts above are shown in Universal Co-ordinated Time (UTC).
To show them in your local time you can join the forum, and then set the 'time correction' field in your profile to the number of hours difference between your location and UTC time.
46,670 views.
Posting of new messages is disabled at present.
Refresh page
top