Page 1 of 1

ChatBot

Posted: Tue Jan 01, 2013 1:09 pm
by Scrap
Hello.
Does anyone have any similar bot?
You whisper "hello", bot them "hi" or "hello"
You whisper "bot", then bot them "no" or "Get out!"
You whisper "pick them up", bot them "ok" or "try"
You whisper "to join the guild?", Bot them "no" or "step into diamonds for 1000"
You whisper, "Go away," bot "no!" or "*******************"
The point is made.
Can anyone share such a wonderful thing?

Re: ChatBot

Posted: Tue Jan 01, 2013 2:30 pm
by Ego95
This is a nice idea. The only thing I have thought about until now is a userfunction that can answer other people but this is impossible. Just to check for a few keywords is a much better idea.

This does not exist but it would not really hard to make it. Maybe you can start with lisas madman addon. The only things that have to get changed are to set more than one keyword and the action that will be done. Ok, to make it more realistic other things have to be added. For example, no one can type while moving and no one can type a sentence in 1 second, so it has to wait a few seconds, maybe do 1-3 jumpfs after it.

But I can't do anything like this so someone else has to do this.

AlterEgo95

Re: ChatBot

Posted: Tue Jan 01, 2013 4:27 pm
by lisa
Creating an addon would be the way to go with this, I did think about it many many many moons ago( a while ago) but replying ilogically would make you seem like more of a bot than anything.

Let's just say you set a response to "guild" and "bot"

<Random character> "Hi, my guild is awesome"
<Bot> "I don't want to join your guild"
<Random character> "I never asked if you wanted to join my guild"
<Bot> "I don't want to join your guild"
<Random character> "Stop with the join guild chat, sheeesh"
<Bot> "I don't want to join your guild"
<Random character> "Why don't you bother to loot the mysterious bags??"
<Bot> "I am not a bot, go away"
<Random character> "You sure sound like a bot"
<Bot> "I am not a bot, go away"
<Random character> "Haha you are a bot"
<Bot> "I am not a bot, go away"

Notice it responded to "bother" because it has "bot" in the word.

At the end of the day the solution I came up with was to "respond" in another language that most people wouldn't know, just don't do this on a character you actually use to chat in world or even zone chat as people may know you speak the same language as them.

Re: ChatBot

Posted: Tue Jan 01, 2013 7:41 pm
by grande
This is something I've thought about quite a bit but like most things LUA/Scripting I just haven't mustered the time/motivation to put more effort into it. I think there exists already extensive framework to implement. Such as Lisa's GM Detect. To me, this makes me think of AI and is just a few RNG and extendable table implements away from achieving AI.

I'm surprised at how little RNG is actually used. I should use it more often really. But if it can pull from a table based on outcome of RNG, say 500*math.random(8) or variants thereof then the responses can become less predictable dependent on the quality of the table and complexity of the math used. The other tricky parts would be to eliminate table values that have already been used so that we don't sound "bottish" repeating the same dribble over and over.

So as this dialogue goes back and forth the aim is always the same: WE DON'T WANT TO BE BOTHERED, SO PLZ MOVE ON. So, to that end this application should also reach our limit (maybe after five whispers/tells) at which point we would say something like, "Hey pal, it's pretty obvious you are harrassing me. I'm screen shotting this, putting you on ignore and reporting you. GLTU." Of course then you'd want about 20 variation of that and the same process for elimination mentioned above.

Now about adding to the table which would really add to the "self-aware" AI capability.. Okay, maybe far fetched but... maybe not to much. Initially it could be a simple parrot function as in mocking someone when they use poor communication such as foul language or possible insults. So for example we have another table that includes all sorts of possible insult values, "bot, loser, life, suck, fck, you," (notice "you" is commonly followed up or preceded by some insult)... Now when the key word is detected the bot would capture up to so many words before and after the key word and repeat it back to the sender with something added to the end like, "seriously?"

Wish we could all get together for a wine and cheese party and hammer something like this out lol. I have mediocre scripting knowledge so getting the true knowledge owners here along with some !! brainstorming from lesser bees like me would be awesome. But I'm so busy with work/study.. and moving again pretty soon (georgia to alaska...) Any how, it's a very compelling idea this chat bot thing. If done thoughtfully it can be very useful.

Oh wait, there's more.. what if it's someone that is a friend? Of course a separate table is needed for that. And also to detect if that name is dropped such as, "hey man, what's wrong with you, this is James.. don't be a d!ck!" To which some response comes, "oh, **James** lol, had no idea...err sorry man, let me hit you back in a few"

Re: ChatBot

Posted: Wed Jan 02, 2013 4:28 am
by Scrap
Does anyone do something like this?
Or tell me how to do this.

Re: ChatBot

Posted: Wed Jan 02, 2013 4:49 am
by Jandrana
Perhaps it would be possible to adapt "Eliza" and make a LUA implementation. Maybe there is already one?

For all that do not know Eliza:

en.wikipedia.org/wiki/ELIZA

Just stumbled over a successor of Eliza, called ALICE:

http://www.alicebot.org/


Edit: Yes, there seems to be a simple Eliza implementation in LUA: http://lua-users.org/wiki/SciteElizaClassic

Re: ChatBot

Posted: Wed Jan 02, 2013 10:59 am
by grande
Wow, this "http://lua-users.org/wiki/SciteElizaClassic" is pretty straight forward. I would change a lot of it and would still want to implement some limits. Such as a goodbye message and ignore statement when someone gets to the point of harrassing. And of course I struggle with implementation... this would just go into the addon/userfunction folder and then be called from an /onload, or even could be added to a default profile /onload portion right?

Oh yeah, and delays would be needed. Should be random delays in response.

And of course I would completely rewrite all the scripted responses in my own character. That is the fun part once the mechanics are done

Other prospects: Perl's Chatbot-Eliza...sure there are others too like you mention above

jah jah, this is looking nice: http://search.cpan.org/~jnolan/Chatbot- ... t/Eliza.pm

Re: ChatBot

Posted: Thu Jan 03, 2013 8:07 am
by Scrap
We can also solve the problem another way.
Sometimes bot say "jump if not a bot." After receiving a whisper, the client makes a sound, it can be changed to jump.
The bot can put silence that he could not communicate (and hence the answering machine and do not need to be).
How you such an idea?

Re: ChatBot

Posted: Thu Jan 03, 2013 1:03 pm
by BlubBlab
No what you need to do is let the bot memorize the disscussion an alter the answer from each point bevor.
What do you have then is a graph (math) basicly this is a neural network (computer science).

This way you can change the flow of a disscussion.
example:
Player:Hi are you a bot?
Bot: No I am not( L1[x])
Player:Are you sure?
Bot: Like I said yes i do (L1[x]->follow(L1[x])[x])
Player:But your move seems strange
Bot: Shout up you go to BL(L1[x]->follow(L1[x])[x]->follow(L2[x])[x] --L2=follow(L1[x])[x]
Player: Are you crazy?
Bot:""(L1[x]->follow(L1[x])[x]->follow(L2[x])[x]->follow(L3[x])[x]
...

But this has the limit of the situation of which you can forseen

Re: ChatBot

Posted: Fri Jan 04, 2013 5:23 am
by Jandrana
If people ask you, whether you are a bot, then your script is bad. This mostly happens when you
are running against obstacles or are doing things for an unusual amount of time.
These situations should be avoided. If running in the open world, I think the current logic to
detect if you are running against an obstacle is reacting to slow. This looks suspicious.

What also looks suspicious if you are running a small waypoint path in a short amount of time.
People will notice that your char is visiting the same spots all the time -> bot.

I was thinking to extend the waypoint format with a "deviation" factor for each waypoint.
This deviation factor could be used to randomize the waypoint coordinates a bit and make
the waypoints look less botish. If the deviation is not specified, it works like it does currently.

Things that happened to me:

random people whisper to me with something like that "hey, lets kill XXX together. let's make a group."

people send group invites, without any wisper - if you decline and don't say anything, they get
suspicious.

If you are a priest or a druid, it happend to me that people ask for resurrection.

If there are people that know your char, you might get wispers "wanna go to instance XXX".
Of course you might be afk, but if there are indications that you are not afk, they might
get suspicious too.

Re: ChatBot

Posted: Fri Jan 04, 2013 8:22 am
by rock5
Jandrana wrote:people send group invites, without any wisper - if you decline and don't say anything, they get
suspicious.
I don't believe that. If people ask me to group without asking me if I'm interested why would I bother saying something when I decline? I think most people, who ask others to join a party without saying anything first, don't expect a reply if they decline.

Re: ChatBot

Posted: Fri Jan 04, 2013 9:20 am
by lisa
It may be because I have a better knowledge of bots than most players but I can spot a bot a mile away and no auto response code would make me change my mind, I never whisper them anyway, I just chuckle to myself and keep doing what I was doing lol

Re: ChatBot

Posted: Fri Jan 04, 2013 9:30 am
by grande
Jandrana wrote:... This mostly happens when you
are running against obstacles or are doing things for an unusual amount of time.
These situations should be avoided. If running in the open world, I think the current logic to
detect if you are running against an obstacle is reacting to slow. This looks suspicious.

What also looks suspicious if you are running a small waypoint path in a short amount of time.
People will notice that your char is visiting the same spots all the time -> bot.
...
All valid points regarding bot usage in general BUT this thread is more focused on the concept of a ChatBot.

Even with a perfect WP and normal time use there will still be pesky groupies/wannabes/whatever that love nothing more than to harrass and annoy and to me that's where a chat bot can help. Again, it gets to the concept level and to me it's a matter thought quality to produce a useful tool.

The idea is to keep an eye on the prize/goal/bottom line which so far is to entertain harrassers long enough to come back to them when you feel like it.

Once the end result is kept in mind, things like neural networks which may seem overly complicated can actually be simplified to meet the very simple and basic goal of the tool.

Re: ChatBot

Posted: Fri Jan 04, 2013 10:17 am
by Jandrana
All valid points regarding bot usage in general BUT this thread is more focused on the concept of a ChatBot.

Even with a perfect WP and normal time use there will still be pesky groupies/wannabes/whatever that love nothing more than to harrass and annoy and to me that's where a chat bot can help.
Depends what you like to achieve. I don't think a chat bot will help in these situations. I think it is already too late, if somebody is whispering and accusing you running a bot. The best reaction would be to play a sound warning, so you can intervene manually. Avoid using this char in the region he was detected for several days, maybe even longer.

I think the time to develop a chat bot should better be invested into removing the weaknesses of the current bot, your scripts. Sure it would be nice to have something that can react on a whisper, but if it is not extremely "intelligent" (which is a huge project on it's own) you will make it look like a bot even more. Just my humble opinion.

Re: ChatBot

Posted: Fri Jan 04, 2013 12:34 pm
by BlubBlab
Yeah Lisa is right but also true is that a chatbot is something nice to have.
I thought about it of my own I think the main reason why I can see bots so easily is they move in point.
Player dont do that by the way industrial robots dont do that either if not nessecary.
I mentioned it bevor they use fly-over-point the math beyond this is not easy(called Überschleifkugel in german) I tried the last days to dumb it down still in progress

(sry for my bad english)