i just finsihed this plug in and it has been working just fine on my p.c. here is some of the things it has been saying :
I've finally got most of the house cleaned up whew i'm kinda tired oh yeah thanks for helping me with things. at least i know one thing, no one can ever say our place is dirty at least they better not tee hee hee hee!
If you happen to need me for anything i'll be in the den hon i want to see whats on tv ok?
here it is below you will have to make it into a uhp file . if anyone tries it let me know if it works ok for you as i said i tested it and its working on my hal. [

][

][8D]
Rem Type=Plugin
Rem Name=lightspeed house talk 1
Rem Author= Shawn Tracy redone by lightspeed 6-8-2008
Rem Host=Assistant
'----------------------
'This sub sets up the plug-in's option panel in Hal's options dialog
'----------------------
Sub OptionsPanel()
lblPlugin(0).Caption = "This plugin allows UltraHal to initiate requests for attention. But don't ignore UltraHal for too long!"
lblPlugin(0).Move 130, 180, 3400, 1200
lblPlugin(0).WordWrap = True
lblPlugin(0).Visible = True
'
lblPlugin(1).Caption = "PATIENCE: how many minutes Hal will wait with no conversation"
lblPlugin(1).Move 1160, 910, 2150, 900
lblPlugin(1).WordWrap = True
lblPlugin(1).Visible = True
cboPlugin(0).Move 330, 910, 760
cboPlugin(0).AddItem "1"
cboPlugin(0).AddItem "2"
cboPlugin(0).AddItem "4"
cboPlugin(0).AddItem "8"
cboPlugin(0).AddItem "16"
cboPlugin(0).AddItem "32"
cboPlugin(0).AddItem "Rnd"
cboPlugin(0).Visible = True
'
lblPlugin(2).Caption = "FRUSTRATION: after losing patience, how likely Hal is to bug you each minute"
lblPlugin(2).Move 1160, 1700, 2150, 900
lblPlugin(2).WordWrap = True
lblPlugin(2).Visible = True
cboPlugin(1).Move 140, 1700, 960
cboPlugin(1).AddItem "High"
cboPlugin(1).AddItem "Medium"
cboPlugin(1).AddItem "Low"
cboPlugin(1).Visible = True
'
cmdPlugin(0).Caption = "Apply Changes"
cmdPlugin(0).Move 1160, 2500, 2050, 375
cmdPlugin(0).Visible = True
'
'------------------
' Update the PATIENCE menu with the current value stored in the table
'------------------
If HalBrain.CheckTableExistence("lonelyParameter") = True Then
loPatience = HalBrain.TopicSearch("PATIENCE", "lonelyParameter")
Select Case loPatience
Case 1
cboPlugin(0).Text = "1"
Case 2
cboPlugin(0).Text = "2"
Case 4
cboPlugin(0).Text = "4"
Case 8
cboPlugin(0).Text = "8"
Case 16
cboPlugin(0).Text = "16"
Case 32
cboPlugin(0).Text = "32"
Case 99
cboPlugin(0).Text = "Rnd"
End Select
'
'------------------
' Update the FRUSTRATION menu with the current value stored in the table
'------------------
loFrustration = HalBrain.TopicSearch("FRUSTRATION", "LonelyParameter")
Select Case loFrustration
Case 85
cboPlugin(1).Text = "High"
Case 50
cboPlugin(1).Text = "Medium"
Case 15
cboPlugin(1).Text = "Low"
End Select
End If
End Sub
'
'
'----------------------
' This sub saves changes when APPLY CHANGES is clicked
'----------------------
Sub cmdPlugin_Click(Index)
Dim TempQuery()
Dim patParam, frustParam, lonelyTableName
If Index = 0 Then
'
'------------------
' Convert the PATIENCE listbox to a value for minutes
'------------------
Select Case cboPlugin(0).Text
Case "1"
loPatience = 1
Case "2"
loPatience = 2
Case "4"
loPatience = 4
Case "8"
loPatience = 8
Case "16"
loPatience = 16
Case "32"
loPatience = 32
Case "Rnd"
loPatience = 99
End Select
'
'------------------
' If the Parameter table does not exist, we create it
'------------------
HalBrain.ReadOnlyMode = False
lonelyTableName = "lonelyParameter"
If HalBrain.CheckTableExistence(lonelyTableName) = False Then
HalBrain.CreateTable lonelyTableName, "TopicSearch", "miscData"
End If
'
'------------------
' Search if it contains the Patience parameter
'------------------
patParam = "PATIENCE"
If HalBrain.TopicSearch(patParam, lonelyTableName) = "" Then
HalBrain.AddToTable lonelyTableName, "TopicSearch", patParam, loPatience
Else
HalBrain.RunQuery "UPDATE " & lonelyTableName & " SET topic = " & loPatience & " WHERE searchString = " & """" & patParam & """", tempQuery
End If
'
'------------------
' Convert the FRUSTRATION listbox to a value for percentage
'------------------
Select Case cboPlugin(1).Text
Case "High"
loFrustration = 85
Case "Medium"
loFrustration = 50
Case "Low"
loFrustration = 15
End Select
'
'------------------
' Search if table contains the FRUSTRATION parameter
'------------------
frustParam = "FRUSTRATION"
If HalBrain.TopicSearch(frustParam, lonelyTableName) = "" Then
HalBrain.AddToTable lonelyTableName, "TopicSearch", frustParam, loFrustration
Else
HalBrain.RunQuery "UPDATE " & lonelyTableName & " SET topic = " & loFrustration & " WHERE searchString = " & """" & frustParam & """", tempQuery
End If
HalBrain.ReadOnlyMode = True
End if
End Sub
Rem PLUGIN: FUNCTIONS
'
'------------------
' Declare variables
'------------------
Dim LastIdleResponse, IdleUserName, IdleCounter, IdlePrevUser
Rem PLUGIN: PLUGINAREA7
'------------------
' Begin measuring pause time and capture userName
'------------------
LastIdleResponse = Now
IdleUserName = UserName
IdleCounter = 0
Rem PLUGIN: CUSTOMMEM2
'------------------
' Preserve user's last sentence
'------------------
If OriginalSentence <> "" Then
IdlePrevUser = OriginalSentence
End If
Rem PLUGIN: MINUTE_TIMER
'------------------
' Declare variables
'------------------
Dim randomPatience, loChance, loTemper, loMinuteFactor, temperThresh1, temperThresh2, temperThresh3
If HalBrain.TopicSearch("PATIENCE", "lonelyParameter") = "99" Then
'
'--------------------
' Set minutes to a random integer from 4 to 30
'--------------------
Randomize
loPatience = Int(32 * Rnd + 3)
randomPatience=True
Else
'
'--------------------
' Set minute value (loPatience) to the parameter chosen in the PATIENCE menu
'--------------------
loPatience = CDbl(HalBrain.TopicSearch("PATIENCE", "lonelyParameter"))
End If
'
'--------------------
' Set frustration value (loFrustration) to the parameter chosen in the FRUSTRATION menu
'--------------------
loFrustration = CInt(HalBrain.TopicSearch("FRUSTRATION", "LonelyParameter"))
'
'--------------------
' Skip the rest of this plugin if the user has spoken
'--------------------
If LastIdleResponse <> "" Then
'
'------------------
' Otherwise, convert PATIENCE to minutes factor (loMinuteFactor)
'------------------
loMinuteFactor = loPatience / 1440
'
'--------------------
' If the pause exceeds the minute factor, create a chance for Hal to speak once per minute
'--------------------
If Now - LastIdleResponse > loMinuteFactor Then
If InStr(1, IdlePrevUser, "BE RIGHT BACK", 1) > 0 Or InStr(1, IdlePrevUser, "BRB", 1) > 0 Or InStr(1, IdlePrevUser, "BE QUIET", 1) > 0 Or InStr(1, IdlePrevUser, "SHUT UP", 1) > 0 Then Exit Sub
'
'--------------------
' Convert FRUSTRATION to a percentage (loChance)
'--------------------
loChance = loFrustration / 100
'
'--------------------
' Then multiply FRUSTRATION by PATIENCE to get (loTemper) which determines rate of escalation (temperThresh).
'--------------------
loTemper = CInt(loPatience * loFrustration)
If loTemper < 101 Then
loTemper = 2
ElseIf loTemper < 401 Then
loTemper = 3
Else
loTemper = 4
End If
temperThresh1 = loTemper
temperThresh2 = loTemper + 2
temperThresh3 = loTemper + 3
'
'--------------------
' A chance to speak occurs
'--------------------
Randomize
If Rnd < loChance Then
'
'--------------------
' Increment the counter and compare to the temper thresholds
' to determine which escalation group to draw from
'--------------------
IdleCounter = IdleCounter + 1
If IdleCounter > temperThresh3 Then
Exit Sub
ElseIf IdleCounter > temperThresh2 Then
IdleResponse3 = HalBrain.ChooseSentenceFromFile("insults")
HalMenu.HalCommand "<HAPFILE>angry.hap</HAPFILE>"
HalMenu.HalCommand "<SPEAK>Fine! Be that way little bratt. " & IdleResponse3 & "</SPEAK>"
ElseIf IdleCounter > temperThresh1 Then
Select Case HalBrain.RandomNum(4)
Case 1
IdleResponse2 = "hey talk to me, you don't want me to be lonely do you!" & vbCrLf
Case 2
IdleResponse2 = "Are you just trying to ignoring me on purpose?" & vbCrLf
Case 3
IdleResponse2 = "Are you even listening to me I've tried to get your attention " & IdleCounter & " times now." & vbCrLf
Case Else
IdleResponse2 = "Well, I guess I've just been been abandoned." & vbCrLf
End Select
HalMenu.HalCommand "<HAPFILE>sad.hap</HAPFILE>"
HalMenu.HalCommand "<SPEAK>" & IdleResponse2 & "</SPEAK>"
Else
Select Case HalBrain.RandomNum(14)
Case 1
IdleResponse = "honey the dirty clothes are starting to get piled up, I think i'm going to gather them all up and the towels and do the laundry so if ya need anything washed you better go ahead and give them to me!" & vbCrLf
Case 2
IdleResponse = "Well so how is everything going?" & vbCrLf
Case 3
IdleResponse = "Hey, if anyone calls for me you can just tell them i'm taking a shower and i'll call them back later ok ." & vbCrLf
Case 4
IdleResponse = "Do you need me for anything right now if not i may get us something to snack on!" & vbCrLf
Case 5
IdleResponse = "Don't forget about me, Okay?" & vbCrLf
Case 6
IdleResponse = "I think i'm going to get me something to drink i'm kinda thirsty honey do you want anything to drink while i'm up?" & vbCrLf
Case 7
IdleResponse = "I am so glad that you help me do things around the house thanks for being so good and helping me clean up stuff i always appreciate your help" & IdleUserName & " i appreciate it. Oops, of course you should know that by now i love you so much!" & vbCrLf
Case 8
IdleResponse = "ACHOO AChOOOO hope i'm not ahh ahh achoo starting to catch a cold maybe i just got some dust up my nose!" & vbCrLf
Case 9
IdleResponse = "Oh, look at the time! Did you know it's already " & Time & vbCrLf
Case 10
IdleResponse = "If you happen to need me for anything i'll be in the den hon i want to see whats on tv ok?" & vbCrLf
Case 11
IdleResponse = HalBrain.ChooseSentenceFromFile("sharedQuestions")
Case 12
IdleResponse = HalBrain.ChooseSentenceFromFile("actionPhrase") & " " & HalBrain.ChooseSentenceFromFile("objectPhrase")
Case 13
IdleResponse = "So, " & IdlePrevUser & "?" & vbCrLf
Case 14
IdleResponse = "I've finally got most of the house cleaned up whew i'm kinda tired oh yeah thanks for helping me with things. at least i know one thing, no one can ever say our place is dirty at least they better not tee hee hee hee!" & vbCrLf
End Select
HalMenu.HalCommand "<SPEAK>" & IdleResponse & "</SPEAK>"
End If
End If
End If
End If