Dim AgentControl Dim Merlin Dim UsedChars Dim MerlinID Dim MerlinACS Dim MerlinLoaded Dim HideReq Dim Req Dim ScriptComplete Dim MerlinLeftX, MerlinCenterX, MerlinRightX Dim MerlinTopY, MerlinCenterY, MerlinBottomY UsedChars = "Merlin" MerlinID = "Merlin" MerlinACS = "merlin.acs" MerlinLoaded = False ScriptComplete = False Call Main Function IsAgentInstalled() On Error Resume Next If ScriptEngineMajorVersion < 2 Then IsAgentInstalled = False Else Set AgentControl = WScript.CreateObject("Agent.Control.2", "AgentControl_") IsAgentInstalled = (Not AgentControl Is Nothing) End If End Function Sub Main() On Error Resume Next If Not IsAgentInstalled() Then Exit Sub End If AgentControl.Connected = True MerlinLoaded = LoadLocalChar(MerlinID, MerlinACS) If Not MerlinLoaded Then MerlinLoaded = LoadLocalChar(MerlinID, "") End If If MerlinLoaded Then Call SetCharObj Call AgentIntro Else Call LoadError End If End Sub Function LoadLocalChar(ByVal CharID, ByVal CharACS) On Error Resume Next If CharACS = "" Then AgentControl.Characters.Load CharID, CharACS Else AgentControl.Characters.Load CharID, CharACS End If If Err = 0 Then LoadLocalChar = True Exit Function End If LoadLocalChar = False End Function Sub SetCharObj() On Error Resume Next Set Merlin = AgentControl.Characters(MerlinID) Merlin.LanguageID = &H409 End Sub Sub AgentControl_RequestComplete(ByVal RequestObject) On Error Resume Next If RequestObject <> EndReq Then Else If Not Merlin.Visible Then ScriptComplete = True Else End If End If If RequestObject <> HideReq Then Else AgentControl.Characters.Unload MerlinID ScriptComplete = True End If End Sub Sub LoadError() Dim strMsg strMsg = "Error Loading Character: " & MerlinID strMsg = strMsg & Chr(13) & Chr(13) & "This Microsoft Agent Script requires the character(s):" strMsg = strMsg & Chr(13) & UsedChars MsgBox strMsg, 48 End Sub Sub AgentControl_Click(ByVal CharacterID, ByVal Button, ByVal Shift, ByVal X, ByVal Y) End Sub Sub AgentControl_DblClick(ByVal CharacterID, ByVal Button, ByVal Shift, ByVal X, ByVal Y) On Error Resume Next Merlin.StopAll If Not MerlinID.HasOtherClients Then If Merlin.Visible Then Set HideReq = Merlin.Hide() Else AgentControl.Characters.Unload MerlinID ScriptComplete = True End If End If End Sub Sub GetScreenPositions() On Error Resume Next Dim ScreenWidth Dim ScreenHeight ScreenWidth = 0 ScreenHeight = 0 If ScreenWidth = 0 Or ScreenHeight = 0 Then ScreenWidth = 800 ScreenHeight = 600 End If MerlinCenterX = ScreenWidth \ 2 - Merlin.Width \ 2 MerlinRightX = ScreenWidth - Merlin.Width MerlinCenterY = ScreenHeight \ 2 - Merlin.Height \ 2 MerlinBottomY = ScreenHeight - Merlin.Height End Sub Sub InitAgentCommands() Merlin.Commands.RemoveAll Merlin.Commands.Caption = "MASH Menu" Merlin.Commands.Add "ACO", "Advanced Character Options", "Advanced Character Options" Merlin.Commands.Add "Exit", "Exit", "Exit" End Sub Sub AgentControl_Command(ByVal UserInput) On Error Resume Next Dim BadConfidence BadConfidence = 10 If (UserInput.Confidence <= -40) Then ' Bad Recognition Exit Sub ElseIf (UserInput.Alt1Name <> "") And Abs(Abs(UserInput.Alt1Confidence) - Abs(UserInput.Confidence)) < BadConfidence Then ' Bad Confidence - too close to another command Exit Sub ElseIf (UserInput.Alt2Name <> "") And Abs(Abs(UserInput.Alt2Confidence) - Abs(UserInput.Confidence)) < BadConfidence Then ' Bad Confidence - too close to another command Exit Sub Else ' High Confidence Select Case UserInput.Name Case "ACO" AgentControl.PropertySheet.Visible = True End Select If UserInput.Name = "Exit" Then Set HideReq = Merlin.Hide() End If End If End Sub Sub AgentControl_Bookmark(ByVal BookmarkID) On Error Resume Next End Sub Sub AgentIntro() On Error Resume Next Call GetScreenPositions Call InitAgentCommands Merlin.Show Merlin.Width = 205 Merlin.Height = 205 Merlin.GestureAt MerlinCenterX, MerlinCenterY Merlin.Play "DoMagic1" Merlin.Think "Убей меня сцуко!!!!!!!!!" Set EndReq = Merlin.Speak("\mrk=999999999\") Do WScript.Sleep 1000 Loop Until ScriptComplete End Sub