BLKoldSUN Posted September 6, 2012 Report Posted September 6, 2012 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 foldermesajecanal.txt, intrebari_nick.txt, actiune.txt -> sunt fisiere in notepadon *: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 la random 2 - robotul va scrie mesaj global pe toate canalele pe care se aflac) la random 3 - robotul va alege la intamplare un nickname d epe chat caruia ii va scrie un mesajMesajele 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. Quote
encrypted Posted September 6, 2012 Report Posted September 6, 2012 chiar mai foloseste mircu cineva in zilele astea? Quote
the wolf Posted September 6, 2012 Report Posted September 6, 2012 Frumos, dar nu as putea spune ca Intelligent din moment ce el raspunde cu ce au scris altii si nu la subiect. Quote
BLKoldSUN Posted September 6, 2012 Author Report Posted September 6, 2012 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 , dar prefer sa nu dau toate codurile pentru ca aici fiecare trebuie sa aprofundeze si sa invete. Quote