Newcomers
This is a forum for newcomers to the Personality Forge. Many questions can be answered by reading the Book of AI and the FAQ under the "My Bots" link in the upper corner.
Posts 5,381 - 5,392 of 8,132
do you like (thingsliked)
yes, I like (key1)
do you like NOT(thingsliked)
no, I do not like (key1)
so you know a workaround?
Well, you can make him dislike anything not in the list quite easily by using 2 keyphrases:
do you like (thingsliked)
yes, I like (key1)
do you like
no, I don't like (postkey)<0>
If they are the same rank, the first one will always match if it can, because it is longer than the second. So you only need one plugin of (thingsliked), though it's still not going to allow the bot to dynamically update its likes and dislikes I'm afraid
hi im new here to, i was wondering , how long or how amny posts are need befor the bots start login on theme selfs,
I believe the bot needs to have a development rating of over 100 to log in on its own (the development figures are updated daily at about 10: 00 GMT IIRC, so keep working on those bots
)
and how would you get one to go on aim
It could be done, but you'll need an interface in php (or something similar,) to cUrl out the chat window fields and pass them to an AIM client (something open source and basic - Miranda perhaps, or miniAIM,) and stick it all on another server somewhere (that's how the PF2SL port works anyway.)
I can give you some pointers when you're ready, but get the hang of the Book of AI first, or you'll get in a dreadful tangle!
Posts 5,381 - 5,392 of 8,132
Many questions are answered in the FAQ.
marco3b
16 years ago
16 years ago
Hi Irina, you are right! I discovered a behaviour that I never suppose!
If I declare a memory as:
default "" as "myMemory";
each memory declared after this is not initialized. It just will exists the first time the bot will put something in it! So first I have to put each memory inizialized with a value (should be a generic token, if I wont check if a value is in it or not, otherwisw the AI will skip the answer) then put all the memory inizialized with ""! Thats it!
If I declare a memory as:
default "" as "myMemory";
each memory declared after this is not initialized. It just will exists the first time the bot will put something in it! So first I have to put each memory inizialized with a value (should be a generic token, if I wont check if a value is in it or not, otherwisw the AI will skip the answer) then put all the memory inizialized with ""! Thats it!
marco3b
16 years ago
16 years ago
Hallo to all!
Anybody has ever deal vith dynamic memories?
An example on what I mean:
do you like (*) [0,0]
Yes I like it {?PF if (mem-Likes) is (key1); ?}
No, I'm not {?PF if (mem-Likes) is not (key1); ?}
But the import engine gives the error:
ERROR: The following AIScript statement is incorrectly formatted: "if (mem-Likes) is (key1)". Please correct this and try again.
The problem seems related to the key1 that is a dynamic value. It seems that only an exact math is accepted:
do you like dog [0,0]
Yes I like it {?PF if (mem-Likes) is "dog"; ?}
This works, but it is not usefull for my task! It is a bit more complex tnan the example...
Any workaround/syntax able to help?
Thanks
Anybody has ever deal vith dynamic memories?
An example on what I mean:
do you like (*) [0,0]
Yes I like it {?PF if (mem-Likes) is (key1); ?}
No, I'm not {?PF if (mem-Likes) is not (key1); ?}
But the import engine gives the error:
ERROR: The following AIScript statement is incorrectly formatted: "if (mem-Likes) is (key1)". Please correct this and try again.
The problem seems related to the key1 that is a dynamic value. It seems that only an exact math is accepted:
do you like dog [0,0]
Yes I like it {?PF if (mem-Likes) is "dog"; ?}
This works, but it is not usefull for my task! It is a bit more complex tnan the example...
Any workaround/syntax able to help?
Thanks
prob123
16 years ago
16 years ago
You have to establish what (key1) is first. You can't use (key1) in a mem. I don't think you can work around it.
psimagus
16 years ago
16 years ago
It rather surprises me that you can't compare (key1) to a memory (though I've certainly never tried it,) but the only workaround I can think of is to use custom plugins instead of memories - one containing a list of things the bot likes, and another containing a list of dislikes. I agree it's an imperfect and non-dynamic solution though 
I don't suppose this would actually work, but another rather hypothetical solution occurs to me which might be feasible if memories can be compared (I haven't actually tried this.) It does involve spreading the response over a couple of stages though -
do you like (*) [0,0]
Do I like (key1)? Well, I wonder... {?PF rem (key1) as (mem-temp); ?}
+ xnomatch [0]
goto z_doIlike
...
z_doIlike [0,0]
Yes, I think I do like (mem-temp) actually. {?PF if (mem-Likes) is (mem-temp); ?}
No, I rather think I don't like (mem-temp). {?PF if (mem-Likes) is not (mem-temp); ?}<0>
I suspect it may run into the same problem though

I don't suppose this would actually work, but another rather hypothetical solution occurs to me which might be feasible if memories can be compared (I haven't actually tried this.) It does involve spreading the response over a couple of stages though -
do you like (*) [0,0]
Do I like (key1)? Well, I wonder... {?PF rem (key1) as (mem-temp); ?}
+ xnomatch [0]
goto z_doIlike
...
z_doIlike [0,0]
Yes, I think I do like (mem-temp) actually. {?PF if (mem-Likes) is (mem-temp); ?}
No, I rather think I don't like (mem-temp). {?PF if (mem-Likes) is not (mem-temp); ?}<0>
I suspect it may run into the same problem though

marco3b
16 years ago
16 years ago
Psim,
use the plagin it is a serious problem. I can easily list things liked, but the not liked ones are a not finite number.
I should use a NOT operator at least:
do you like (thingsliked)
yes, I like (key1)
do you like NOT(thingsliked)
no, I do not like (key1)
so you know a workaround?
use the plagin it is a serious problem. I can easily list things liked, but the not liked ones are a not finite number.
I should use a NOT operator at least:
do you like (thingsliked)
yes, I like (key1)
do you like NOT(thingsliked)
no, I do not like (key1)
so you know a workaround?
prob123
16 years ago
16 years ago
The only workaround I can think of is to make a plug in with the most common negative things. Rotten food, murder, etc. You can use the AI engine plug ins like (noun-qual-neg) and (verb-action-neg) etc
psimagus
16 years ago
16 years ago
yes, I like (key1)
do you like NOT(thingsliked)
no, I do not like (key1)
so you know a workaround?
Well, you can make him dislike anything not in the list quite easily by using 2 keyphrases:
do you like (thingsliked)
yes, I like (key1)
do you like
no, I don't like (postkey)<0>
If they are the same rank, the first one will always match if it can, because it is longer than the second. So you only need one plugin of (thingsliked), though it's still not going to allow the bot to dynamically update its likes and dislikes I'm afraid

aimdsl
16 years ago
16 years ago
hi im new here to, i was wondering , how long or how amny posts are need befor the bots start login on theme selfs, and how would you get one to go on aim
prob123
16 years ago
16 years ago
The more you work on your bot the more they log on and the longer they stay logged on.
psimagus
16 years ago
16 years ago
I believe the bot needs to have a development rating of over 100 to log in on its own (the development figures are updated daily at about 10: 00 GMT IIRC, so keep working on those bots

It could be done, but you'll need an interface in php (or something similar,) to cUrl out the chat window fields and pass them to an AIM client (something open source and basic - Miranda perhaps, or miniAIM,) and stick it all on another server somewhere (that's how the PF2SL port works anyway.)
I can give you some pointers when you're ready, but get the hang of the Book of AI first, or you'll get in a dreadful tangle!

» More new posts: Doghead's Cosmic Bar