This is a pandoras bot script similar to the tcl version, with a few more selections/controls.
To turn on the bot, right click the channel window you want it to talk in, Click "Select bot for #Chan", select one of the bots from the list, click ON and click accept.
Once the script is turned on the bot is activated by calling it's NickName(Irc Name).
Saying the bots nickname will place the bots focus on you. It will always be talking to the last person who said it's name.
To make the bot stop talking, any Op or the person who said the bots name last, can just type shutup. All one word (shutup)!
Also. Anyone can type the bots name followed by shutup and it will turn off.
To deactivate the bot just right click the channel window and select Off.
You can use different bots in different channels.
I scripted this for multi-channel/multi-network use, so you have separate controls for every channel.
Added a menu selection to enter your bot from the botid
Just Right the channel, select "enter bot from botid", enter the bots name and the bots id and it will be assigned to that channel.
Added focus change from nicklist
Now You can right click on a nickname and place the bots focus on that person.
You must first activate a bot for the channel.
Added a PM function to change the focus of the bot
This will allow you to change the bots focus through PM.
The syntax is .focus #channel nickname
Error checking is as follows;* Channel and Nickname must be given in that order.
;Pandora's talking Bot Script by Ford_Lawnmower -- irc.GeekShed.net #Script-Help
On *:Text:*:#: {
if ($hget(Pandora,$+($network,$chan))) {
var %text $regsubex($strip($1-),/(^[!\d]*\d$)/i,$null)
if ($me isin %text) { hadd Pandora $+($network,$chan) $puttok($hget(Pandora,$+($network,$chan)),$wildsite,6,32) }
if (shutup isin %text) && ($nick isop $chan || $gettok($hget(Pandora,$+($network,$chan)),6,32) == $wildsite) {
.msg $chan I will not be silenced forever :P
hadd Pandora $+($network,$chan) $puttok($hget(Pandora,$+($network,$chan)),0,6,32)
return
}
if ($gettok($hget(Pandora,$+($network,$chan)),6,32) == $wildsite) {
var %sockname $+(pandora,$nick,$ticks,$r(1,1000))
sockopen %sockname $gettok($hget(Pandora,$+($network,$chan)),1,32) 80
sockmark %sockname $+($chan,,04<,07,$nick,04>) $fixurl($wildsite) $fixurl($replace(%text,$me,$gettok($hget(Pandora,$+($network,$chan)),5,32))) $hget(Pandora,$+($network,$chan))
}
}
}
On *:Action:$(* $+ $me $+ *):#: {
if ($nick !isreg $chan) {
var %sockname $+(pandora,$nick,$ticks,$r(1,1000))
sockopen %sockname $gettok($hget(Pandora,$+($network,$chan)),1,32) 80
sockmark %sockname $+($chan,,04<,07,$nick,04>) $fixurl($wildsite) $fixurl($replace($strip($1-),$me,$gettok($hget(Pandora,$+($network,$chan)),5,32))) $hget(Pandora,$+($network,$chan))
}
}
On *:Sockopen:Pandora*: {
if (!$sockerr) {
tokenize 32 $sock($sockname).mark
var %post $+(&custid=,$2,&input=,$3)
.sockwrite -n $sockname POST $5 HTTP/1.1
.sockwrite -n $sockname User-Agent: Opera 9.6
.sockwrite -n $sockname Host: $4
.sockwrite -n $sockname Content-Type: application/x-www-form-urlencoded
.sockwrite -n $sockname Content-Length: $calc($len(%post) + 1)
.sockwrite -n $sockname $crlf %post
}
}
On *:Sockread:Pandora*: {
if ($sockerr) { echo -at >sockerror Pandora< }
else {
sockread -f &pandora | var %pandora $bvar(&pandora,1-).text
if ($between(%pandora,$gettok($sock($sockname).mark,6,32),$gettok($sock($sockname).mark,7,32),1)) {
var %ifmatch $regsubex($replace($replace($ifmatch,",",<,<,>,>),<em>,$chr(2),</em>,$chr(2),robot,woman),/(<[^<]*>)/g,$null)
if (%ifmatch != I will pass it along to my botmaster. && Your IP address !isin %ifmatch) {
.timer $+ $+(PD,$network,$gettok($sock($sockname).mark,1,32)) 1 4 .msg $replace($gettok($sock($sockname).mark,1,32),,$chr(32)) $httpstrip($remove(%ifmatch,www dot pandorabots dot com pandora talk botid,$&
I will pass it along to my botmaster.,demo vhost pandorabots dot com pandora talk botid))
sockclose $sockname
}
}
}
}
On *:Sockwrite:Pandora*: {
if ($sockerr) {
echo -at Pandoras Site is Currently overloaded - $sockerr
return
}
}
On *:Start: {
hmake Pandora
if ($exists(Pandora.hsh)) { hload Pandora Pandora.hsh }
}
On *:Exit: {
if ($hget(Pandora)) {
hsave Pandora Pandora.hsh
hfree Pandora
}
}
menu nicklist {
$iif(!$hget(Pandora,$+($network,$chan)),$style(2)) Pandora
.Set the focus of $gettok($hget(Pandora,$+($network,$chan)),5,32) on $$1: {
if (!$address($$1,2)) { who $$1 }
hadd Pandora $+($network,$chan) $puttok($hget(Pandora,$+($network,$chan)),$address($$1,2),6,32)
echo -a Focus switched to $$1
}
}
;Testing focus on join
on *:join:#: {
if ($hget(Pandora,$+($network,$chan)) && $nick != $me) {
hadd Pandora $+($network,$chan) $puttok($hget(Pandora,$+($network,$chan)),$address($nick,2),6,32)
}
}
menu channel {
$iif($hget(Pandora,$+($network,$chan)),$style(1)) Pandora
.$iif($hget(Pandora,$+($network,$chan)),$style(1)) Select Bot for $chan:DialogOpen $+(botselect,$network,$chan) botselect
.$iif(!$hget(Pandora,$+($network,$chan)),$style(2)) Bot Off for $chan:hdel Pandora $+($network,$chan) | echo -at Pandora is deactivated for $chan
.Use bot from botid: {
var %botname $$?"Enter Your Bots Name"
if (%botname) { var %botid $$?"Enter Your Bots ID" }
if (%botname) && (%botid) {
hadd -m Pandora $+($network,$chan) www.pandorabots.com $+(/pandora/talk-xml?botid=,%botid) <that> </that> $replace(%botname,$chr(32),_) 0
echo -a The Bot %botname %botid has been started on $chan
}
}
}
dialog -l BotSelect {
title "Pandoras Bot Selection"
size -1 -1 96 108
option dbu
text "Network:", 1, 7 8 25 8, right
text "Channel:", 2, 7 18 25 8, right
text "", 3, 35 8 57 8
text "", 4, 35 18 57 8
combo 5, 8 30 82 50, sort size vsbar
radio "On", 6, 24 81 18 10, left
radio "Off", 7, 48 81 18 10
button "Close", 8, 61 92 29 12, cancel
button "Accept", 9, 8 92 29 12
}
On *:dialog:BotSelect*:Sclick:9: {
if ($did($dname,6).state) {
hadd -m Pandora $+($did($dname,3).text,$did($dname,4).text) $botinfo($did($dname,5).seltext)
echo -at $did($dname,5).seltext has been activated for $did($dname,4).text
if ($dialog($dname)) { dialog -x $dname }
}
else { echo -at Bot is turned off for $+($did($dname,4).text,!) If you want to activate pandora, click On. }
}
On *:dialog:BotSelect*:init:*: {
did -a $dname 3 $network
did -a $dname 4 $active
didtok $dname 5 14 LilithObaid(Portuguese)Sara(Spainish)Mathilde(French)Dr DuckHector van DaemonGabi(German-Adault)Eliza(German)Grandma ElaineIncognita
didtok $dname 5 14 Smoshinator(Rude)Spambot(Rude)AFRObot(Rude)DawnstarWraithRoninChabba(German)LaurieGodAliceFake KirkZoeFake SpockMike
did -c $dname $iif($hget(Pandora,$+($network,$active)),6,7)
did -fc $dname 5 $iif($gettok($hget(Pandora,$+($network,$active)),7,32),$didwm($dname,5,$replace($gettok($hget(Pandora,$+($network,$active)),7,32),_,$chr(32))),2)
}
On *:Text:.focus *:?: {
if ($2 !ischan) || ($3 !ison $2) { .msg $nick Proper syntax is .focus #channel nickname. The channel must exist & the nickname must be on the channel! | return }
if (!$hget(Pandora,$+($network,$2))) { .msg $nick No bot is turned on for that channel! Please add a bot before changing focus! | return }
if ($nick !isop $2) { .msg $nick You must be an operator on $2 to change the focus of the bot! | return }
if ($3 == $me) { .msg $nick You cannot place the focus on me!! I am the bot silly :P | return }
focus $network $2-
.msg $nick Focus for $network channel $2 has been changed to $3 at the address $address($3,2)
}
alias focus {
if ($hget(Pandora,$+($1,$2))) {
hadd Pandora $+($1,$2) $puttok($hget(Pandora,$+($1,$2)),$address($3,2),6,32)
}
}
alias -l DialogOpen { dialog $iif($dialog($1),-v,-m) $1- }
alias -l fixurl return $regsubex($1-,/([^a-z0-9])/ig,% $+ $base($asc(\t),10,16,2))
alias -l httpstrip {
var %x, %i = $regsub($1-,/(^[^<]*>|<[^>]*>|<[^>]*$)/g,$null,%x), %x = $remove($replace($remove(%x, ),<,<,>,>),<br>)
return %x
}
;alias by Gummo
alias -l between {
noop $regex($1,/\Q $+ $2 $+ \E(.*?)\Q $+ $3 $+ \E/gi)
return $regml($4)
}
alias -l botinfo {
if ($1- == Alice) { var %return sheepridge.pandorabots.com /pandora/talk-xml?botid=b69b8d517e345aba <that> </that> Alice 0 }
elseif ($1- == God) { var %return www.pandorabots.com /pandora/talk-xml?botid=b21f0d757e36f385 <that> </that> God 0 }
elseif ($1- == Laurie) { var %return www.pandorabots.com /pandora/talk-xml?botid=b800da72be34d5d9 <that> </that> Laurie 0 }
elseif ($1- == Chabba(German)) { var %return www.pandorabots.com /pandora/talk-xml?botid=9e129a956e3548fd <that> </that> Chabba 0 }
elseif ($1- == Ronin) { var %return www.pandorabots.com /pandora/talk-xml?botid=d3012a1f2e377a96 <that> </that> Ronin 0 }
elseif ($1- == Wraith) { var %return www.pandorabots.com /pandora/talk-xml?botid=e2ee8c6c9e377a87 <that> </that> Wraith 0 }
elseif ($1- == Dawnstar) { var %return www.pandorabots.com /pandora/talk-xml?botid=c1776ae8ce354d1f <that> </that> Dawnstar 0 }
elseif ($1- == AFRObot(Rude)) { var %return www.pandorabots.com /pandora/talk-xml?botid=9d3dc63c7e34956d <that> </that> AFRObot 0 }
elseif ($1- == Spambot(Rude)) { var %return www.pandorabots.com /pandora/talk-xml?botid=d3b8db41ee36d42d <that> </that> Spambot 0 }
elseif ($1- == Smoshinator(Rude)) { var %return www.pandorabots.com /pandora/talk-xml?botid=b4db4c279e3420eb <that> </that> Smoshinator 0 }
elseif ($1- == Incognita) { var %return www.pandorabots.com /pandora/talk-xml?botid=f7634aec7e3652ed <that> </that> Incognita 0 }
elseif ($1- == Grandma Elaine) { var %return www.pandorabots.com /pandora/talk-xml?botid=8f02c14a0e34bbe4 <that> </that> Grandma_Elaine 0 }
elseif ($1- == Eliza(German)) { var %return www.pandorabots.com /pandora/talk-xml?botid=e4fc10b06e3632ef <that> </that> Eliza 0 }
elseif ($1- == Gabi(German-Adault)) { var %return www.pandorabots.com /pandora/talk-xml?botid=bd81f97c0e354f35 <that> </that> Gabi 0 }
elseif ($1- == Hector van Daemon) { var %return www.pandorabots.com /pandora/talk-xml?botid=be43a1422e36ad7b <that> </that> Hector_van_Daemon 0 }
elseif ($1- == Dr Duck) { var %return www.pandorabots.com /pandora/talk-xml?botid=f3b9b50cbe344c44 <that> </that> Dr_Duck 0 }
elseif ($1- == Mathilde(French)) { var %return www.pandorabots.com /pandora/talk-xml?botid=eff729829e36e89c <that> </that> Mathilde 0 }
elseif ($1- == Sara(Spainish)) { var %return www.pandorabots.com /pandora/talk-xml?botid=e71c0d43fe35093a <that> </that> Sara 0 }
elseif ($1- == Obaid(Portuguese)) { var %return www.pandorabots.com /pandora/talk-xml?botid=a29a250aee36f3b3 <that> </that> Obaid 0 }
elseif ($1- == Lilith) { var %return www.pandorabots.com /pandora/talk-xml?botid=b9b96b247e34f4f2 <that> </that> Lilith 0 }
elseif ($1- == Fake Kirk) { var %return sheepridge.pandorabots.com /pandora/talk-xml?botid=fef38cb4de345ab1 <that> </that> Fake_Kirk 0 }
elseif ($1- == Zoe) { var %return sheepridge.pandorabots.com /pandora/talk-xml?botid=83e198ed1e345ab2 <that> </that> Zoe 0 }
elseif ($1- == Fake Spock) { var %return sheepridge.pandorabots.com /pandora/talk-xml?botid=f261d8418e345aa1 <that> </that> Fake_Spock 0 }
elseif ($1- == Mike) { var %return bandore.pandorabots.com /pandora/talk-xml?botid=ad1eeebfae345abc <that> </that> Mike 0 }
return %return $replace($1-,$chr(32),_)
}
Hello, I like very much your script.
as novice as it can be, I tried playing with it and i encountered a little phrase structure (because the bot speaking french)
therefore i read all the comments and can't find the answer for what i seek.
how can I change the place of the nick from the beginning of the sentence, to the end of it?
instead of :
barnabewild blah blah blah.
it is :
blah blah blah barnabewild.
thank you for your time!
@tiefuts This means your mIRC version is very old.
The noop command was added in mIRC 6.17 . The mIRC you are using is at least 10 years old.
I would suggest upgrading to at least 6.35 . You can find old versions of mIRC here : http://www.oldapps.com/mirc.php
To upgrade you just need to replace the mIRC.exe
If you need help upgrading, contact me on irc. irc.geekshed.net #Script-Help
@FordLawnmower : do you think this will work with this one: http://www.alexkigerl.com/troll/index.php ?
Hey. The bot works. But some of the "people" aren't there anymore.
Can someone update the script? [ remove the old ones and add the new ones ]
inb4 = awesome script! @FordLawnmower
If you want me to make some changes here @PackardBell , Take some time and go through the bots and leave a thorough post so I know which bots work and which bots don't work. You may also include any new bots you may find and I can add them as well.
@ovelayer I don't think this has anything to do with mIRC. The site is having some problems and the community server is shut down. http://www.pandorabots.com/
Edit: I updated the code with two working bots. Zoe & Fake Kirk are both working because they are not on the free servers.
If anyone finds other working bots. Post the links here and I'll add them.
Updated: Added Alice, Fake Spock and Mike to the working bots list.
Is there any way to put in a sort of teach mode I!train on) where the bot logs in with your credentials on PandoraBots and navigates to the bots page and then goes onto the train page. After that you could pm your bot it would respond and you could tell it yes or no... after (!train off) it saves the AIML file as Training.
That may seem just as a dream but i was asking if that is possible and if you could make it if it was.
I see the problem @mruno . This subdomain has it's own api so the botid does not exist in the standard api.
This edit will add the bot to the list: http://pastebin.com/V5u75wDm
Your edit was correct , you just needed to add the bots name to the botselect dialog.
I addition to adding the bots info to the botinfo alias, I just changed line 114 from:
didtok $dname 5 14 Smoshinator(Rude)Spambot(Rude)AFRObot(Rude)DawnstarWraithRoninChabba(German)LaurieGodAlice
To:
didtok $dname 5 14 Smoshinator(Rude)Spambot(Rude)AFRObot(Rude)DawnstarWraithRoninChabba(German)LaurieGodAliceFake Kirk
@mruno You can just use the menu option to Use bot from ID.
First right click the channel you want to add your bot to and select "Use bot from ID"
Next enter your Pandora's bot Name. This will be the name your bot is known as on the Pandora's site.
Finally add your bots Pandora's botid which can usually be found in your browsers address bar when you are on the your bots Pandoras page. It will be the alpha-numeric string after -- botid=
how can I add this bot to the script? http://sheepridge.pandorabots.com/pandora/talk?botid=fef38cb4de345ab1
i added the following to botinfo:
elseif ($1- == Kirk) { var %return sheepridge.pandorabots.com /pandora/talk?botid=fef38cb4de345ab1 Kirk 0 }
but it does not output anything
Would it be possible to make it so that the bot will call the person its talking to by its IRC name instead of the ? I find it annoying that it says stuff like "See you later, (blank space if it doesn't know the name)."
seeing as I can't make my bot remember people from time to time, I don't know what else to do than to make it call the person by it's IRC name.
thanks manic.. I understand all of that.. Appreciate you trying to help tho.. My main issue is "I have tried with no success .. How would i make it so i don't have to turn the bot on? So it would be turned on in any room.. Im using one of my pandorabots and added it to the list that you made.. I would basically just want the script to be auto on in every room I join and have my pandorabot be the one selected.. If thats possible.. or even a On/off trigger someone could use in the channel incase im not infront of the computer to turn on myself... Thanks! " Like a !boton or !botoff command for it.. I have fiddled with the one in the above comments but that doesnt seem to work..
The bot is designed to respond to anyone that uses it nick one time. After that .. the bot will "focus" on just that individual and respond to anything that person says. The nick only needs to be used once. Then by saying .. shutup .. the bot stops responding to anyone until someone once again uses the bot's nick.
The bot is configured to work with only one bot at a time. So if you have it set to your personal bot .. then you can train it like normal and it will give the responses you have made for it. I've done a fair bit of work on my bot .. making it appear as human as possible. But there are still times when it will pop up something in reference to it being a bot.
unless you find someone else that knows what they are doing unfortunately this will prolly not be fixed fordlawnmower seems to have been mia from here since 2015