How to use Microsoft Agents with a Web Site

<<Previous Home Page VB Script and ASP Next>>

Author  

David Costelloe

Language  

VB Script

Operation Systems  

Windows 95, 98 and NT
Example

** Click here to go to David's example page **
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
<!-- These Pages are copyright (c), 1999-2000 Welford-Costelloe Consultants Inc

-->

<head>
<meta http-equiv="Content-Language" content="en-us">
<script LANGUAGE="VBScript">
<!--

Option Explicit
dim Peedy
'* Holds Peedy Object
dim Robby
'* Holds Robby Object
dim Merlin
'* Holds Merlin Object       
dim Genie
'* Holds Genie Object
dim ScrLeft
'* Holds X coordinates
dim ScrTop
'* Holds Y Coordinates
dim GenieRequest
'* Holds Genie Requests
dim MerlinRequest
'* Holds Merlin Requests
dim PeedyRequest
'* Holds Peedy Requests
dim RobbyRequest
'* Holds Robby Requests
dim UserName
'* Holds the Name entered
dim AgentName
'* Used to hold the current AgentName
dim LoadMerlin
'* Holds the load from internet
dim LoadRobby
'* holds the local file ok
dim LoadGenie
'* holds the local file ok
dim LoadPeedy
'* Holds the load from internet
dim ObjName
'* Holds the name ID of the object

Sub MerlinWelcome()
    If Merlin.Visible = False Then
        Merlin.Show
    End If
    ScrLeft = (window.event.screenX - window.event.clientX)
    ScrTop = (window.event.screenY - window.event.clientY)
    Merlin.MoveTo ScrLeft, ScrTop
    Merlin.Play "Explain"
    Merlin.Speak "Hello " & UserName
    Merlin.Speak "My name is \Emp\Merlin."
    Merlin.Speak "and I am your host for today."
    Merlin.Play "Surprised"
    Merlin.Speak "Please check out the newest member \Emp\Peedy!"
    ScrLeft = (window.event.screenX - window.event.clientX) _
        + (Meet_Agents.offsetleft)+ 140
    ScrTop = (window.event.screenY - window.event.clientY) + (Meet_Agents.offsettop)
    Merlin.MoveTo ScrLeft, ScrTop
    Merlin.Play "GestureRight"
    Merlin.Speak "Click the button \Emp\Meet all the agents!"
    Merlin.Play "Wave"
    Merlin.Speak "Thank you once again for visiting."
    Merlin.Speak "Enjoy our site!"
    Merlin.Hide
end sub

Sub MerlinOnly()
    On Error Resume Next
    If Merlin.Visible = False Then
        Merlin.Show
    End If
    Merlin.Speak "One moment Please.."
    ScrLeft = (window.event.screenX - window.event.clientX)
    ScrTop = (window.event.screenY - window.event.clientY)
    Merlin.MoveTo ScrLeft, ScrTop
    Merlin.Get "Animation", "Announce, Pleased,Wave,Explain, GestureDown"
    Status = "Locating Merlin's animations."
    Merlin.Play "Announce"
    Merlin.Speak "Thank you for visiting Welford-Costelloe Consultants Inc Web Site."
    ScrLeft = (window.event.screenX - window.event.clientX) _
        + (FrontPage_Form2.offsetleft) + 140
    ScrTop = (window.event.screenY - window.event.clientY) + (FrontPage_Form2.offsettop)
    Merlin.MoveTo ScrLeft, ScrTop
    Status = "Getting Merlin's next coordinates"
    Merlin.Get "Animation", "GestureLeft"
    Merlin.Play "GestureLeft"
    Merlin.Speak "Please Enter your Name in the text box, " & _
        "and then Click the continue Button!"
    Merlin.Speak "I will Leave, and await your entry."
    Merlin.Hide
    Status = "Done."
end sub

Sub Show_Agents_OnClick()
    On Error Resume Next
    If Merlin.Visible = True Then
        Merlin.StopAll
    End If

    call LoadIntro()
end sub

'* Declare Variables
Sub LoadIntro()
    If Not Merlin.Visible = True Then   
        Merlin.Show
    End If

    ScrLeft = (window.event.screenX - window.event.clientX)
    ScrTop = (window.event.screenY - window.event.clientY)
    Merlin.MoveTo ScrLeft, ScrTop
    Merlin.Speak "Hello! | Hi There! | Good Day to you! | Its a grand day! " & UserName
    Merlin.Get "Animation","Announce,Blink,Pleased, Explain"
    Merlin.Play "Announce"
    Merlin.Speak "We have good news!"
    Merlin.Play "Pleased"
    Merlin.Speak "I would like to introduce to you all The " & _
        "New Welford-Costelloe Consultants Inc. Web Site."
    Merlin.Play "Blink"
    Merlin.Get "Animation", "Explain"
    Merlin.Play "Explain"
    Merlin.Speak "\Emp\" & UserName & " We have among us\Pau=400\a " & _
        "new, \Emp\ member and Microsoft Agent!"
    Set MerlinRequest = Merlin.Speak ("Joining me now in introducing " & _
        "the group to you\Pau=300\Please Welcome Genie!")
    Genie.Wait MerlinRequest
    Genie.Get "Animation", "Announce, GestureLeft, Blink,Explain"
    Peedy.Get "Animation", "Announce, GestureLeft, " & _
        Blink,Explain,Pleased,GestureDown,Surprised,Wave"
    If Genie.Visible = False Then
        Genie.Show
    End If
    ScrLeft = 0
    ScrTop = 0
    Genie.MoveTo ScrLeft, ScrTop
    Genie.Play "GestureDown"
    Set GenieRequest = Genie.Speak ("Hello Merlin!\Pau=400\ and to you also " & UserName)
    Merlin.Wait GenieRequest
    Merlin.Get "Animation", "GestureUp, Surprised"
    Merlin.Play "GestureUp"
    Merlin.Speak "Hello Genie"
    Set MerlinRequest= Merlin.Play ("Blink")
    Genie.Wait MerlinRequest
    ScrLeft = (window.event.screenX - window.event.clientX)+ 100
    ScrTop = (window.event.screenY - window.event.clientY)
    Genie.MoveTo ScrLeft, ScrTop
    Genie.Get "Animation","GestureUp,Explain,Surprised,Announce, Wave"
    Genie.Play "Announce"
    Genie.Speak UserName & " Welcome to Welford-Costelloe Consultants Inc Web site."
    Genie.Play "Explain"
    Robby.Get "Animation","Blink,Announce,Explain,Pleased,Surprised,Wave"
    Set GenieRequest = Genie.Speak ("I will now introduce to you, \Emp\Robby!")
    Robby.Wait GenieRequest
    If Robby.Visible = False Then
        Robby.Show
    End If
    ScrLeft = 0
    ScrTop = 0
    Robby.MoveTo ScrLeft, ScrTop
    Robby.Play "Announce"
    Set RobbyRequest = Robby.Speak ("Hello Merlin!\Pau=400\and Hello! to you " & UserName)
    Merlin.Wait RobbyRequest
    Robby.Get "Animation","GestureDown"
    Merlin.Play "GestureUp"
    Merlin.Play "Blink"
    Set MerlinRequest = Merlin.Speak ("Good Day Robby.")
    Robby.Wait MerlinRequest
    Robby.Play "GestureDown"
    Set RobbyRequest = Robby.Speak ("and to you Genie, a very good day.")
    Genie.Wait RobbyRequest
    Genie.Play "GestureUp"
    Genie.Play "Blink"
    Set GenieRequest = Genie.Speak ("Thank you very much Robby!.")
    Robby.Wait GenieRequest
    ScrLeft = (window.event.screenX - window.event.clientX) + 200
    ScrTop = (window.event.screenY - window.event.clientY)
    Robby.MoveTo ScrLeft, ScrTop
    Robby.Get "Animation","GestureRight"
    Robby.Play "GestureRight"
    Set RobbyRequest = Robby.Speak ("Genie!\Pau=400\ are we " & _
        "ready to introduce the new member")
    Genie.Wait RobbyRequest
    Genie.Play "Blink"
    Genie.Speak "\Emp\Yes!\Pau=400\Lets introduce to you our \Emp\Newest member!"
    Set GenieRequest = Genie.Speak ("Peedy!")
    Merlin.Get "Animation","Congratulate_2"
    Merlin.Wait GenieRequest
    Robby.Get "Animation","Congratulate"
    Genie.Get "Animation", "Congratulate"
    Set MerlinRequest = Merlin.Play ("Congratulate_2")
    Genie.Wait MerlinRequest
    Set GenieRequest = Genie.Play ("Congratulate")
    Robby.Wait GenieRequest
    Set RobbyRequest = Robby.Play ("Congratulate")
    Peedy.Wait RobbyRequest
    If Peedy.Visible = False Then
        Peedy.Show
    End If
    ScrLeft = 0
    ScrTop = 0
    Peedy.MoveTo ScrLeft, ScrTop
    Peedy.Speak "ah!, Hello " & UserName & "!"
    ScrLeft = (window.event.screenX - window.event.clientX) + 300
    ScrTop = (window.event.screenY - window.event.clientY)
    Peedy.MoveTo ScrLeft, ScrTop
    Peedy.Play "Announce"
    Peedy.Speak "Thank you very much for the \Emp\warm welcome,Merlin,Genie, and Robby."
    Peedy.Speak "\Emp\" & UserName & " It is a pleasure to " & _
        "join this wonderful group!\Pau=500\I am \Emp\honoured!"
    Peedy.Play "Pleased"
    Set PeedyRequest = Peedy.Speak ("And thank you " & UserName & _
        " for visiting Welford-Costelloe Consultants Inc Web Site!")
    Merlin.Wait PeedyRequest
    Set MerlinRequest = Merlin.Speak("Thanks Peedy!, and thanks to you guys for you help.")
    Genie.Wait MerlinRequest
    Set GenieRequest = Genie.Play ("Wave")

    Robby.Wait GenieRequest
    Set RobbyRequest = Robby.Play ("Wave")

    Peedy.Wait RobbyRequest
    Set PeedyRequest = Peedy.Play("Wave")

    Merlin.Wait PeedyRequest
    Merlin.Play "Explain"
    Merlin.Speak "\Pau=900\\Emp\" & UserName & " We hope you " & _
        "have enjoyed us as much as we have enjoyed you."
    Merlin.Speak "Please come back and visit us again."
    Merlin.Play "Wave"
    Merlin.Speak "Feel free to check out the rest of the site. Enjoy!"
    Merlin.Speak "Please check also out free downloads section."
    Peedy.Hide
    Robby.Hide
    Genie.Hide
    Merlin.Hide
    Set Genie = Nothing
    Set Peedy = Nothing
    Set Robby = Nothing
    Set Merlin = Nothing
end sub

Sub LoadAgents()
    On Error Resume Next
   
'* try to load the agent from the local drive
    Set LoadGenie = Agent.Characters.Load("Genie","Genie.acs")
    Set LoadRobby = Agent.Characters.Load("Robby","Robby.acs")
    Set LoadMerlin = Agent.Characters.Load("Merlin","Merlin.acs")
    Set LoadPeedy = Agent.Characters.Load("Peedy","Peedy.acs")

   
'* ok or not
    If LoadGenie.Status <> 0 Then
       
'* Failed so got to Web
        Set LoadGenie = Agent.Characters.Load("Genie", _
            "http://agent.microsoft.com/agent2/chars/genie/genie.acf")
        Set Genie = Agent.Characters("Genie")
        Status = "Loading Genie from Internet"
        Genie.Get "State","Moving, Speaking, Hiding, Showing"
    Else
       
'* Success
        Set Genie = Agent.Characters("Genie")
        Status = "Loading Genie from Local drive"
    End If
    If LoadRobby.Status <> 0 Then
       
'* Failed so got to Web
        Set LoadRobby = Agent.Characters.Load("Robby", _
            "http://agent.microsoft.com/agent2/chars/robby/robby.acf")
        Set Robby = Agent.Characters("Robby")
        Status = "Loading Robby from Internet"
        Robby.Get "State","Moving, Speaking, Hiding, Showing"
    Else
       
'* Success
        Set Robby = Agent.Characters("Robby")
        Status = "Loading Robby from Local Drive"
    End If
    If LoadMerlin.Status <> 0 Then
       
'* Failed so got to Web
        Set LoadMerlin = Agent.Characters.Load("Merlin", _
            "http://agent.microsoft.com/agent2/chars/merlin/merlin.acf")
        Set Merlin = Agent.Characters("Merlin")
        Status = "Loading Merlin from Internet"
        Merlin.Get "State","Moving, Speaking, Hiding, Showing"   
    Else
       
'* Success
        Set Merlin = Agent.Characters("Merlin")
        Status = "Loading Merlin from Local Drive"
    End If
    If LoadPeedy.Status <> 0 Then
       
'* Failed so got to Web
        Set LoadPeedy = Agent.Characters.Load("Peedy", _
            "http://agent.microsoft.com/agent2/chars/peedy/peedy.acf")
        Set Peedy = Agent.Characters("Peedy")
        Status = "Loading Peedy from Internet"
        Peedy.Get "State","Moving, Speaking, Hiding, Showing"
    Else
       
'* Success
        Set Peedy = Agent.Characters("Peedy")
        Status = "Loading Peedy from Local Drive"
    End If

end sub

Sub Agent_RequestComplete(ByVal Request)
   
end sub

Sub Btn_UserName_OnClick()
    On Error Resume Next
    UserName = lcase(FrontPage_Form2.txtUserName.Value)
    If UserName = "" then
        Merlin.Speak "OK, I will adjust our speech pattern to use no name!."
        UserName = ""
    End If
    If MerlinLoaded = False then
        Merlin.Show
        MerlinLoaded = True
    End if
    call MerlinWelcome()
end sub

Function FIndObjectCord(ByVal ele)
   
' Function provided by Nathan Dickerson
   
' Learning Microsoft Agent
    Dim xX, yY, TempHold
    Set TempHold = ObjName
    Do Until TempHold.TagName = "BODY"
        Set TempHold = TempHold.offsetParent
        xX = xX + TempHold.offsetLeft + TempHold.ClientLeft
        yY = yY + TempHold.offsetTop + TempHold.ClientTop
    Loop
    ScrLeft = fakescreenleft + ObjName.clientLeft + ObjName.offsetLeft _
        - document.body.scrollLeft + xX
    ScrTop = fakescreentop + ObjName.clientTop + ObjName.offsetTop - document.body.scrollTop + yY
End Function

Sub window_onUnload()
    On Error Resume Next
    If Merlin.Visible = True Then
        Merlin.Hide
    End If
    If Genie.Visible = true Then
        Genie.Hide
    End If
    If Robby.Visible = true Then
        Robby.Hide
    End If
    If Peedy.Visible = True Then
        Peedy.Hide
    End If
    Set Merlin = Nothing
    Set Genie = Nothing
    Set Robby = Nothing
    Set Peedy = Nothing
    Set GenieRequest = Nothing
    Set RobbyRequest = Nothing
    Set MerlinRequest = Nothing
    Set PeedyRequest = Nothing
    Agent.Connected = False
end sub

Sub window_onLoad()
    On Error Resume Next
    call LoadAgents()
    call MerlinOnly()
end sub
-->
</script>

<OBJECT classid="clsid:D45FD31B-5C6E-11D1-9EC1-00C04FD7081F"
height=1 id=Agent style="LEFT: 0px; TOP: 0px"
    width=1>
    <PARAM NAME="_cx" VALUE="847">
    <PARAM NAME="_cy" VALUE="847"></OBJECT><OBJECT
    classid="clsid:B8F2846E-CE36-11D0-AC83-00C04FD97575"
    id=TruVoice
    CODEBASE="#VERSION=6,0,0,0">
</OBJECT>
<meta name="VI60_defaultClientScript" content="VBScript">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Just For Fun</title>
<META name="description" content="Custom Software Development">
<META name="keywords" content="Software,Visual Basic,Protect
VB, Free Files,Free Downloads,Welford-Costelloe,Costelloe">
<meta name="Microsoft Theme" content="neon 000, default">
<meta name="Microsoft Border" content="b">
</head>

<body bgcolor="#000000" text="#FFFFFF" link="#CCFF66"
vlink="#00FFFF" alink="#FFCC33"><!--msnavigation--><table border="0"
cellpadding="0" cellspacing="0" width="100%"><tr><!--msnavigation--><td
valign="top"><!--mstheme--><font face="Verdana, Arial, Helvetica">
<p align=" center">
&nbsp;

<p align="center"><img border="0" src="images/welford-costelloe%20logo.gif" width="384" height="96">
<p align="center"><!--webbot bot="Navigation" S-Type="global"
S-Orientation="horizontal" S-Rendering="graphics" B-Include-Home="TRUE"
B-Include-Up="TRUE" U-Page S-Target startspan --><a href="./"><img
src="_derived/home_cmp_neon000_gbtn.gif" width="95" height="20"
border="0" alt="Home" align="middle"></a> <a href="what's_new.htm"><img
src="_derived/up_cmp_neon000_gbtn.gif" width="95" height="20" border="0"
alt="Up" align="middle"></a><!--webbot bot="Navigation" endspan i-checksum="60096" --></p>
<!--msthemeseparator--><p align="center"><img src="_themes/neon/neodrule.gif" width="600" height="10"></p>
<h3 align="center"><!--mstheme--><font color="#FFFF99">Just
For Fun!<!--mstheme--></font></h3>

<form METHOD="POST" NAME="Meet_Agents">
<div align="center"><center><p><input TYPE="button"
VALUE="Meet All The Agents" NAME="Show_Agents"> </p>
</center></div>
</form>
<strong>

<p align="left" style="margin-left: 77px; margin-right:
77px"><font color="#FF0080">Note:</font><font color="#FFFF00">
</font><font color="#8000FF">For first time users - As
Merlin calls the animations from
the internet, due to Internet traffic you may need to wait. <em>Merlin</em>
will announce to you when he is ready to leave, until
then please be patient while the
animations are downloaded.</font></p>

<!--webbot BOT="GeneratedScript" PREVIEW=" " startspan
--><script Language="VBScript"><!--

function FrontPage_Form2_onsubmit()
    Set theForm = document.FrontPage_Form2

    checkOK = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz&#402;&#352
;&#338;&#381;&#353;&#339;&#382;&#376;ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâ
ãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ"
        + " "+ Chr(8) + Chr(10) + Chr(12) + Chr(13)
    checkStr = theForm.txtUserName.value
    allValid = True
    For i = 1 to len(checkStr)
        ch = Mid(checkStr, i, 1)
        If (InStr(checkOK, ch) = 0) Then
            allValid = False
            Exit For
        End If
    Next
    If (Not allValid) Then
        MsgBox "Please enter only letter and whitespace characters
            in the ""User Name"" field.", 0, "Validation Error"
        theForm.txtUserName.focus()
        FrontPage_Form2_onsubmit = False
        Exit Function
    End If
    FrontPage_Form2_onsubmit = True
End Function
--></script><!--webbot BOT="GeneratedScript" endspan --><form
METHOD="POST" name="FrontPage_Form2">
<p align="center"><font color="#00FFFF">Enter your name:</font><font color="#FF0080">
<!--webbot bot="Validation" S-Display-Name="User Name" S-Data-Type="String"
B-Allow-Letters="TRUE" B-Allow-WhiteSpace="TRUE" --><input
TYPE="text" SIZE="20" ID="EnterName" NAME="txtUserName"> &nbsp;
<input TYPE="button" VALUE="Continue" NAME="Btn_UserName"> </font></strong></p>
</form>
<strong><font color="#FF0080">

<p align="left">&nbsp;
<!--msthemeseparator--><p align="center"><img src="_themes/neon/neodrule.gif" width="600" height="10"></p>
<p align="left">&nbsp;</font></strong>