Jump to content
BLKoldSUN

IRC BOT - Inteligent

Recommended Posts

Posted

Salut. Am citit cateva postari pe forum legate de boti IRC si majoritatea erau fie in PHP sau alt limbaj de programare. Nu stiu pe cati dintre voi ii intereseaza mIRC-ul, dar m-am gandit ca unora le-ar fi de folos.

Acum 4 luni vroiam un BOT inteligent dar nu am gasit asa ceva... am gasit doar un TCL vechi, Alice - inteligenta artificiala, numai ca acel bot era praf. Eh, tocmai din acest motiv m-am gandit sa fac eu unul simplu si placut. totodata sa stiti ca-l puteti personaliza dupa cum doriti, insa pentru asta trebuie sa aveti cateva cunostinte despre MSL (mirc scripting language).

Iata codul:

ModFun -> este folder

mesajecanal.txt, intrebari_nick.txt, actiune.txt -> sunt fisiere in notepad

on *:text:*:#:{

set %bt.rand $rand(1,3) ;;se face un random de la 1 la 3

if ( %bt.rand == 1) { ;; daca randomul are valoarea 1

inc %20 ;; se va incrementa variabila 20

if (%20 == 20) { ;; daca variabila 20 va avea valoarea 20 (numarul de randuri tastate pe chat pe canal)

msg # $read(ModFun/mesajecanal.txt) ;; atunci robotul va scrie un mesaj pe canal

unset %20 ;; se reseteaza variabila 20

unset %bt.rand ;; se reseteaza randomul

}

}

if ( %bt.rand == 2) { ;; daca randomul a luat valoarea 2

inc %10 ;; se incrementeaa variabila 10

if (%10 == 10) { ;; daca variabila 10 are valoarea 10 (10 randuri tastate)

/ame $read(ModFun/actiune.txt) ;; robotul va da un mesaj global pe chat ca sa descrie o actiune

unset %10 ;; se va reseta variabila 10

unset %bt.rand ;; se va reseta randomul

}

}

if ( %bt.rand == 3) { ;; daca randomul va lua valoarea 3

set %nume_random $nick(#,$r(1,$nick(#,0))) ;; setam o variabila externa cu un nume aleator de pe chat

inc %15 ;; se incrementeaza variabila 15

if (%15 == 15) ;; daca variabila 15 are valoare 15 (15 randuri tastate pe chat)

if (%nume_random == $nick(#,$r(1,$nick(#,0)))) { ;; daca variabila are numele aleator ales mai devreme

/ame $nick(#,$r(1,$nick(#,0))) $read(ModFun/intrebari_nick.txt) ;; robotul va da un mesaj pentru acel nick ales mai sus aleator

unset %15 ;; se reseteaza variabila

unset %bt.rand ;; se reseteaza randomul

}

}

}

Care este ideea acelor randomuri?

Practic, fiecare random determina modalitatea de raspuns a robotului pe un canal astfel:

a) la random 1 - robotul va avea un mod de a scrie pe chat

B) la random 2 - robotul va scrie mesaj global pe toate canalele pe care se afla

c) la random 3 - robotul va alege la intamplare un nickname d epe chat caruia ii va scrie un mesaj

Mesajele le puteti scrie voi in fisierele txt.

Robotul il puteti personaliza si imbunatatii astfel:

- dupa ce s-a facut evenimentul "on *:text:*:#:{" (cand cineva scrie ceva pe chat, textul sau sa fie scris automat intr-un fisier .txt), asa cum este codul de mai jos:

on *:text:*:#:{

write -n ModFun/ $+ $nick

}

Adica, atunci cand cineva scrie pe chat ceva, robotul automat inregistreaza acea propozitie intr-un fisier numit precum numele nickname-ului.

Dupa asta, unde scrie: "msg # $read(ModFun/mesajecanal.txt)" se poate modifica in:

msg # $read(ModFun/ $+ $nick )

Adica, in loc sa scrie un mesaj prescris de tine in fisierul mesaje.txt, el va scrie pe canal exact ce a scris un utilizator in urma cu "n" timp.

------------------------------------

Sunt multe posibilitati de a modifica acest robot, insa eu unul l-am perfectionat asa de mult incat pe chat lumea se cearta cu "ea" si nu isi dau seama ce este defapt. Credeti-ma ca m-am amuzat copios.

Bafta, si sper ca unora o sa le fie de folos.

Posted
Frumos, dar nu as putea spune ca Intelligent din moment ce el raspunde cu ce au scris altii si nu la subiect.

Adevarat, tocmai din acest motiv am spus ca poate fi personalizat dupa cum doreste fiecare.

De exemplu, daca doresti ca botul sa raspunda asemanator cu ceea ce un user tasteaza, se poate utiliza:

on 1:text:*:#: {

if (*buna* isin $1-) && ($me isin $1-) { msg # $nick $read(ModFun/ $+ $nick $+ ,w,buna) }

elseif (*ce faci* isin $1-) && ($me isin $1-) { msg # $nick $read(ModFun/ $+ $nick $+ ,w,ce faci) }

else { halt }

}

In acest fel, putem face robotul sa raspunde asemanator cerintelor interlocutorului :D, dar prefer sa nu dau toate codurile pentru ca aici fiecare trebuie sa aprofundeze si sa invete. :P

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...