Eigener mini bot

Status
Nicht offen für weitere Antworten.

Bitdemon

Grünschnabel
Ich hab gestern abend mir eien eigenen kleinen fun bot gemacht.
Der funktioniert immo so : on 1:TEXT:!blabla:*: /msg $chan du machst blablabla...
Das ist ansich schon ganz in ordnung und auch lustig, aber ich hab noch ein paar fragen.
1. wie kann ich die schriftfarbe der wieder gegebenen schen ändern?
2. dieser bot läuft immo über einen 2. irc clienten. Kann ich den als richtigen Bot umsetzen, also ein extra programm das allein im Hintergrund läuft?
3. er hat noch zusätzliche Funktionen, z.B. eine Uhr, einen würfel roller (script dafür hab ich von eurer seite :) ) und eine funktionen dait ich ihn mit !geh ausmachen kann. hat wer eine idee was da noch reinkann, zum fun haben?
4. Das ich ihn per query anschreibe und er führt irgendeinen Befehl aus, wie geht das?
5. ich hatte gerstern auch schon 2 witzbolde die immer wieder einen befehl engetippt haben, wie kann ich machen, dass der bot einen eigenen flood schutz hat? Soll heißen: wenn jemand meinetwegen 5 Befehle inerhalb von 10 sekunden schreibt, dieser für 1 minute gesperrt ist.

Das wars erstmal, wenn mir noch weitere sachen einfallen, poste ich sie einfach hier mit rein.

mfg Bitdemon
 
Die Schriftfarbe kannst du mit Strg +K + Zahl ändern, z.B. für rote Schrift, Strg +k + 4. DU musst allerdings aufpassen, dass der Channel nicht den mode +c hat, dann wird es nicht in den Chanel gesendet. Außerdem sind Farben in manchen Chans nicht gerne gesehen.

Ein richtiger Bot wär z.b. ein Eggdrop, der dann allerdings nicht auf deinem Windowsrechner läuft...

Zu Punkt 4:
Code:
on 99:TEXT:!join #*:*:{
  /join $2
}
Ich habe mich mit Level 99 geaddet und keinen andern, d.h. der "Bot" nimmt die Befehle nur von mir an. In diesem Fall ist es der "Join-Befehl", mit dem er dann einen Channel joint. Da gibt es halt vieles, was du einsetzen kannst.

Punkt 5:
Code:
on *:TEXT:!page:#meinchannel:{
  if ( !%pageflood ) {
    /notice $nick -=> *meinepage* <=-
    set -u30 %pageflood 1 
  }
}
Das ist z.B. eine Möglichkeit. Wenn jemand den Befehl !page gibt, kann derjenige den Befehl erst wieder nach 30 Sekunden benutzen. Das '-u30' ist die Sekundenanzahl, in diesem Falle 30. Das kannst du halt nach belieben verändern.... und die Befehle und Reaktionen halt auch. Sind nur Beispiele ;)


MfG
 
also dasmit dem User hab ich schon eingebaut (befehl !geh) hatte ich nur nicht mehr dran gedacht. und zu dem punkt 5: Das wäre dan aber nur für den befehle !page, ich hab aber ca 50 befehle im bot integriert.....
 
Dann versuchs mal mit:
Code:
on *:text:*:#channel:{
  if ($1 == befehl1)  { reaktion1 }
  if ($1 == befehl2)  { reaktion2 }
  if ($1 == befehl3)  { reaktion3 }
und so weiter...
}
Den Floodschutz setzt du halt dementsprechend davor.

MfG
 
Zuletzt bearbeitet:
Das hab ich noch nicht ganz verstanden, hier ist mal ein konkretes beispiel von mir:

Code:
on 1:TEXT:hi:*: /msg $chan hi

dazu der flood shutz würde dan wie aussehen? und wie würde dan die 2. version des flood schutzes aussehen?
 
Der Floodschutz könnte dann so aussehen:
Code:
on 1:TEXT:hi:*:{ if ( !%hiflood ) { msg $chan hi | set -u30 %hiflood 1 } }
Halt immer darauf achten, dass du jede { wieder schließt. Ist n beliebter Fehler :)


Die zweite Version in meinem letzten Post war nur eine Vereinfachung. Da kann man dann viele Befehle in einem Script zusammenfassen...


Bei der zweiten version wäre das:
Code:
on *:text:*:#meinchannel:{ if ( !%testflood ) {
  if ($1 == befehl1)  { reaktion1 }
  if ($1 == befehl2)  { reaktion2 }
  if ($1 == befehl3)  { reaktion3 }
und so weiter...
    set -u30 %testflood 1 
  }
}

Der Nachteil daran ist, dass man nur einen Befehl eingeben kann, dann warten muss. Der "Bot" sperrt dann sozusagen alle Befehle, nicht nur den speziellen, der bereits gebraucht wurde. Das kann man aber leicht ändern. Das solltest du mit Hilfe des ersten Floodschutzes alleine schaffen ;) Wenn nicht, einfach melden :)

MfG
 
Bitdemon hat gesagt.:
2. dieser bot läuft immo über einen 2. irc clienten. Kann ich den als richtigen Bot umsetzen, also ein extra programm das allein im Hintergrund läuft?

Du kannst mIRC theoretisch in den Systray minimieren, mehr Möglichkeiten hast du an sich nicht.

Bitdemon hat gesagt.:
4. Das ich ihn per query anschreibe und er führt irgendeinen Befehl aus, wie geht das?

Ja. Einfach ein "on text"-Event mit dem Ziel "?" welches für Queries steht:

Code:
on 1:text:hallo:?:msg $nick Auch dir hallo, $nick

Bitdemon hat gesagt.:
5. ich hatte gerstern auch schon 2 witzbolde die immer wieder einen befehl engetippt haben, wie kann ich machen, dass der bot einen eigenen flood schutz hat? Soll heißen: wenn jemand meinetwegen 5 Befehle inerhalb von 10 sekunden schreibt, dieser für 1 minute gesperrt ist.

Mit deinen momentanen Scripting-Erfahrungen ist es relativ schwierig eine korrekte Anti-Flood Funktion zu integrieren. Lies dich am besten über IF-Abfragen (/help /if), wie Squax sie genutzt hat, ein.

Dein Problem wäre theoret. wie folgt lösbar:

Code:
inc -u10 %antiflood. [ $+ [ $nick ] ]
if (%antiflood. [ $+ [ $nick ] ] > 9) { ignore -u60 $nick | halt }
[...]Hier kommt dein restlicher Scriptkram hinein[...]

Achja: Versuche bitte dich mehr an unsere Netiquette in Bezug auf Groß-/Kleinschreibung sowie die deutsche Grammatik zu halten - Du erleichterst damit nur anderen und Dir die Lösung deines Problems, da die Fragestellung besser erkennbar ist.
 
Squax hat gesagt.:
Ein richtiger Bot wär z.b. ein Eggdrop, der dann allerdings nicht auf deinem Windowsrechner läuft...

Warum läuft ein Eggdrop nicht auf nem Windowsrechner?
Ist es nicht so, dass Eggdrop sich immer minimiert und man
den erstmal dazu bringen muss, dass er für eine bestimmte
Zeit geöffnet bleibt?
 
Ein Eggdrop kann auch auf einem Windows-Rechner laufen, ist aber dann ein sog. Windrop. Deine weitere Fragestellung kann ich leider nicht verstehen.
 
Ein Eggdrop läuft deswegen nicht auf einem Windows Rechner weil er nur auf einem Linux System läuft.
Für das andere gibts wie schon erwähnt wurde Windrop.

Gruß
Funghi
 
Status
Nicht offen für weitere Antworten.
Zurück