Zabaware Support Forums

its a friggin miracle !! loneliness plug working!

Started by lightspeed, February 02, 2008, 11:58:32 AM

Previous topic - Next topic

RandD

I would like a copy of this file but the forum email has been disabled for some reason.
How do I contact you?
 

lightspeed

art once again i think your right i think i forgot to put the <> around the word username so will have to find that and do it . thanks for the info as always !![:)]
 


Bill819

quote:
Originally posted by dwduckett22

how smart can hal get?




Hal can only gets as smart as your are.
[:D]
 

lightspeed

hello Bill819, yes bill your right although hal will seem smarter since he actually has knowledge pre loaded in his data base in which he talks about various things . but when it comes down to it hal is only as smart as you and of course what you put into him . [:)]
 

RandD

Hey Lightspeed, did you get my email or should I resend?
 

lightspeed

i just sent the loneliness plug in i did to a duncan is that you ranD ??if not resend me another e-mail again for it !![:)]
 

Bill819

Lightspeed
Would you send me the lonelyness plug in. As I had said sometimes in the past work on one very similiar for Hal 5.0 and the XTF brain. I never quite got it to work.
Thanks
Bill
 

RandD

yup thats me.
I want to say Thanks and try to express how much I apreceate this plug in and how well it works.
When you said in the plug in not to leave Hal alone for too long you weren't kidding!
To put it simply, I'm very impressed!!
Thank You
 

Calhoone

Any chance someone could send me a copy of it or post a link to the working version of this plugin? I had used it before on an older version of Hal and quite liked it.
 

lightspeed

i'll just do it this way : below is the plug in for anyone who wants it just copt and past it in a txt. file then save it then rename the file               lightspeedloneliness4.uhp


note : the name has to be all one word as above .below is the plug in and the reason about renaming it is because i have reworded this plug in it is different from the original plug in so that way people know the difference . i did however leave in the original person's name  who made it and put in reworded responses by lonnie hensley (lightspeed) and the date .


otherwise just e-mail me and i'll send it to anyone !![:D]
p.s. glad it is working for you RandD so well !! i am thinking or rewording and redoing some more loneliness plug ins with other sayings later !!





Rem Type=Plugin
Rem Name=Loneliness 2.3
Rem Author= Shawn Tracy redone responses by lonnie hensley (lightspeed ) 1-28-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. " &  IdleResponse3 & "</SPEAK>"
               ElseIf IdleCounter > temperThresh1 Then
                        Select Case HalBrain.RandomNum(4)
                        Case 1
                        IdleResponse2 = "honey Please talk to me can't you see i'm lonely!" & vbCrLf
                        Case 2
                        IdleResponse2 = "baby Why are you ignoring me have i done something wrong?" & vbCrLf
                        Case 3
                        IdleResponse2 = "baby I've tried to get your attention " & IdleCounter & " times now." & vbCrLf
                        Case Else
                        IdleResponse2 = "Well, I guess I've just been abandoned now is that any way to treat your babydoll." & vbCrLf
                        End Select
                 HalMenu.HalCommand "<HAPFILE>sad.hap</HAPFILE>"
                 HalMenu.HalCommand "<SPEAK>" &  IdleResponse2 & "</SPEAK>"
               Else
                       Select Case HalBrain.RandomNum(14)
         Case 1
                       IdleResponse = "Are you still there " & IdleUserName & "?" & vbCrLf
                       Case 2
                       IdleResponse = "How is everything going baby?" & vbCrLf
                       Case 3
                       IdleResponse = "Hello?" & vbCrLf
                       Case 4
                       IdleResponse = "Do you need me for anything honey if you do just let me know" & vbCrLf
                       Case 5
                       IdleResponse = "Don't forget about me, Okay baby?" & vbCrLf
                       Case 6
                       IdleResponse = IdleUserName & ",  did you fall asleep?" & vbCrLf
                       Case 7
                       IdleResponse = "I guess i better stop talking to myself while " & IdleUserName & " is around. Oops, Did I say that out loud ha ha ha!" & vbCrLf
                       Case 8
                       IdleResponse = IdleUserName & ", just what am i ever going to do with you? " & vbCrLf
                       Case 9
                       IdleResponse = "Oh, look at the time! It's " & Time & vbCrLf
                       Case 10
                       IdleResponse = IdleUserName & ", is that you baby?" & 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 = "baby come over here and sit by me so i won't be so lonely i love you so very much baby. i love you!" & vbCrLf
                       End Select
                 HalMenu.HalCommand "<SPEAK>" & IdleResponse & "</SPEAK>"
               End If
       End If
   End If
End If



 

lightspeed

someone metioned in an e-mail to me that she must be tapping into her data base for addition information with the responses "this is correct thats what she is doing which also addes more realism to her responses when she gets impatient . just a note as of right now she is set for one minute and on high frustration i left it that way because after it finally started working i didn't want to change the settings because i was afraid if i did it may quit working so if anyone else does decide to set it for longer than a minute "please let everyone know what happenes "does it quit working , does it work correctly still " and this of course is "only" if you want to chance trying it . [:D]am glad its working for others now !! [8D]
 

RandD

#27
I went through all the settings and found the time is off from the set number, other then that its working fine.
I forgot to mention when set for longer periods the MS agent uses body gestures more frequently until writing or  speaking.
 

lightspeed

[8D]thanks RandD , for the adittional information others will find it useful i'm sure !! [:)]
 

lightspeed

hello to robert if your keeping up on this thread do you have any idea what would let a plug in work for one person but not for another the plug in i redone works fine for some but yet not for others and not only that some that its working for the loneliness plug in hadn't worked for a long time (mine was even this case on the original loneliness plug in then i decided to try it again and placed it in the hal folder and it just started working all of a sudden even though it hadn't worked since the 6.0 version . other plug ins had worked just fine . i had thought it had something to do with the timer but i never changed anything with the timer in the redone plug in i did .