Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
01.12.2001, 18:43




(none)

--

zum Seitenanfang zum Seitenende Profil || Suche
001
01.12.2001, 22:08
RockingRolli



IRC scripten ist lustig :)
Aber was soll uns dieser Thread sagen?

--

zum Seitenanfang zum Seitenende Profil || Suche
002
01.12.2001, 23:11




(none)

--

zum Seitenanfang zum Seitenende Profil || Suche
003
01.12.2001, 23:34




(none)

--

zum Seitenanfang zum Seitenende Profil || Suche
004
01.12.2001, 23:47
dp
Administrator


jo

erstmal wegen den commands

.recog
was wird das?
- hat sich grad im chat geklärt.....

.afk
gefällt mir schonmal, zumal dann ätzender nickchange entfallen würde und das mit der message hinterlassen is auch cool wenn der name fällt, man muss dann allerdings jedes packet parsen :\

.seen
jo is klar, man muss halt auf sowas achten hier
silent quit
leprau is now known as silent
silent_ joined
silent is now known as leprau
leprau quit
silent_ is now known as silent

usw ..... da gibts ja genug so hirnfick szenarien, das kann man in so einfachen structs ohne pointer auf andere structs schon garnicht mehr ausdrücken befürchte ich. wobei die .afk funktion irgendwie wichtiger wäre

.time
is klar

ircbot coden is ja schön und gut, aber wenn man prefects src hat, dann hat man definitiv kein bock mehr auf das aussenrum coden, das is so ungefähr wie wenn man ne klausur mit 15 np innem fach das man kein meter rafft hat und die nochmal schreiben will und diese 2. zählt (...)

mir fällt da jetzt atm net mehr zu ein, aber ich hab grad sone idee, ircbots linken
stelle das einfach mal so innen raum, ka was es bringen könnte ..

--

zum Seitenanfang zum Seitenende Profil || Suche
005
02.12.2001, 13:34
feigling



Zitat:
Gumble postete

.recog
.raw
.goto
.part
.quit
.afk
.seen
.time

Nein, tu mir das nicht an, bitte nutzt nicht .quit und .time :)
Die Commands laufen bei meinem auch. Wenn dann einer von uns .quit eingibt, dann fliegen beide Bots raus (was auch wieder lustig wäre) :)
Naja, oder wir machen das so, dass er auch den Namen erkennt, also dass mein Bot nur auf mich reagiert und deiner auf deine Commands, also dass nix passiert, wenn jemand anderes .quit oder so eingibt. Weil bei mir ist es so, wenn irgendjemand .quit eingibt, dann benndet sich der Bot. Dann werde ich den mal so proggen, dass er nur auf mich reagiert und mit .time, da können ja ruhig zwei Bots reagieren :)

[Edit]

Also ich nehme die Befehle:

.enabled // Das ist für .joke und .laber, damit man die Befele abstellen kann, wenn ein User nix besseres zu tun hat, als zwanzig Mal .joke und .laber einzugeben

.disabled // siehe .enabled

.time // Zeigt die Zeit an

.date // Zeigt das Datum an

!Ping // Bot antwortet mit Pong! <- genauso wie der ChanServ

.away // Erstmal nur für mich. Wenn mein Name auftaucht und ich bin away, dann soll der Bot sagen, dass ich nicht da bin. Mal gucken, ob man das dann auch auf die anderen im Chat erweitern kann, wie gumble schon sagte, was aber shr schwer sein dürfte.
Z.B wenn ich erst .afk eingebe, der Bot meinen Namen speichert, ich dann meine Namen ändere und wieder was tippe. Dann ist mein anderer Name immernoch afk :/ Da müsste der Bot dann wieder die UserID auslesen.

.joke // Der Bot erzählt einen Witz. Er sucht sich mit random einen Witz aus und schickt ihn zum Server. <- Mehr als Spaßfaktor gedacht und nicht zum täglichen Gebrauch

.laber // Der Bot sucht sich eine Geschichte aus und erzählt die dann.
z.B. Welches Spiel man gut findet, oder wie die Grafik in den nächsten Jahren aussehen wird. Die Geschichten sind schon fertig und der Bot schickt einfach die Sätze an den Server.

.stop // Das ist dafür, dass man den Befehl .laber wieder ausschalten kann, denn bei .laber erzählt der eine ganze Story durch (16 Sätze). Da das nervig ist, kann man das einfach stoppen

.quit [Message] // Der Bot beendet sich und als Quitmessage wird [Message] genommen

Ich hab mir auch überlegt, auf hallo, hi, cu, n8, re und so weiter zu antworten, aber das Problem fängt ja schon an, dass der Bot immer auf hi reagiert, wenn es irgendwo in der Message ist, also auch bei history, himmel, hinten. Oder bei re -> rechts, regen ...

Und das nervt dann. Oder auch, wenn dann andere hi sagen, dann sagt der Bot zwanzig mal hi, weil er auch auf die hi's der anderen reagiert.
Deshalb habe ich das wieder rausgenommen. Vielleicht mache ich es wieder rein, wenn ich weiß, wie ich feststellen kann, dass nur hi im Satz ist und kein himmel, oder so und dann darf der hi nur alle 30 sec sagen, damit nicht so ein Echo entsteht.

Außerdem ist es auch ein Problem, wenn ich meinen Nick von feigling zu feigling|away ändern würde, denn wenn der Bot nur auf den Namen feigling reagiert, dann ist das auch Mist, also muss der nicht den Namen auslesen, sondern die Userid.

Noch ein Problem ist, dass manche Sachen, so wie .joke .time und so nur über Notice geschickt werden dürfen und nicht an den ganzen Channel, weil das bestimmt auch nerven würde. Aber das ist ja ein kleineres Problem. Man schickt einfach anstatt
Senddata('PRIVMSG ' + channel + ' :'+ datetostr(date)); <- fürs datum, das ist jetzt Delphi Code, kein C-Code

dann wo PRIVMSG steht, dort NOTICE reinsetzt. Da ist aber wieder das Problem, dass man den Usernamen haben muss (oder die UserID, weiß ich im Moment nicht), also muss man das wieder vorher herausfinden.

Naja, das ist alles nicht so einfach, aber ich bin erstmal froh, dass ich überhaupt einen Bot hinbekommen habe, der auf die Pings vom Server reagiert und dass ich jetzt keine Pingtimeouts mehr bekommen :)

Ich hoffe mal, dass das Forum hier diesen schön eingerückten Text annimmt :)

--


Dieser Beitrag wurde am 02.12.2001 um 14:21 von feigling bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
006
02.12.2001, 16:45




(none)

--

zum Seitenanfang zum Seitenende Profil || Suche
007
02.12.2001, 21:47
Another1



*offtopic* dartcoden, rofl */offtopic*

--

Another1

...relaxing..atm =)
... und Schweiz suckt!

zum Seitenanfang zum Seitenende Profil || Suche
008
03.12.2001, 20:52
Prefect



Hmm, vielleicht sollte ich meinen Bot wirklich mal irgendwo uploaden :)

Zu dem multiplen .quit: Ihr solltet den Bot entweder so schreiben, daß er Commands nur als Private Message akzeptiert (verhindert Abuse). Wenn Ihr für gewisse Funktionalität unbedingt Channelcommands braucht solltet Ihr das entsprechende Prefix konfigurierbar machen. Wenn der Bot flexibel genug aufgebaut ist dauert das nicht einmal eine Minute ;)

Das mit dem seen ist in der Tat ein interessantes Problem (unsere Mathelehrerin würde jetzt "lustig" sagen, weil ja alle extrem schweren Aufgaben lustig sind).
Natürlich kann man QUIT/JOIN/NICK usw. tracken, aber ein sturer Algorithmus läßt sich leicht austricksen. Da betritt man halt Bereiche die schwer Richtung KI gehen. Folgende Überlegung:

Man strukturiert die Welt von IRC in:
- universe_t U - das Universum, in dem der Bot ist, also quasi der Channel
- action_t A - alles, was passiert (also Messages, Modechanges, Join/Part, ...)
- body_t B - ein eindeutig identifizierbares Wesen mit konstantem Nick!ident@host; eine Inkarnation einer E
- entity_t E - ein Wesen auf einer höheren Ebene, das in mehreren Inkarnationen (Bodies, Körpern) in das Universum kommt. Eine Entity hat keinen festen Namen, aber einen oder mehrere bevorzugte Namen, unter denen sie bekannt ist.

Im praktischen Beispiel wäre dann z.B. U == #thewall.de. Wir haben dann z.B. die Entity, die darthpaul repräsentiert hat mehrere Bodies, z.B. darthpaul von 14:57 bis 15:13, afk von 15:13 bis 15:30 und dp von 17:15 bis 18:23.

Das Hauptproblem ist dabei: wie verknüpft man mehrere Bodies B(1...n) zu einer Entity E. In manchen Fällen ist diese Zuordnung im Idealfall eindeutig machbar, z.B. bei einem direkten Nickchange. Sobald aber jemand das Universum verläßt und wieder erscheint, muß man irgendwie mit Fuzzylogic arbeiten. Wichtige Hinweise sind dabei Nick, Ident, Host, Userinfo, aber auch Muster, die sich in den mit dem Body verknüpften Actions zeigen. Im Fallbeispiel:

Wenn ein Body mit Nick == dp von ChanServ geoppt wird, dann ist das ein gutes Indiz dafür, daß es sich dabei um die selbe Entity handelt, die vorher schon mit der gleichen Ident, aber dem Nick dp^afk im Universum war.

Das nur mal so als Gedanke.

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
009
03.12.2001, 22:21
TheTinySteini



Denkfehler! =)
Denn du kannst universe_t nicht mehrfach instanzieren! Oder kennst du zufällig nen Plural von Universum? Auch wenn Universen logisch klingt, ist es faktisch falsch, denn Universum heißt afaik so viel wie "das Einzigartige" (die Lateiner unter uns mögen mich korrigieren)... ebensowenig wie man einzig steigern kann kann man nen Plural davon bilden.
Aber das eigentlich nur so nebenbei ;-)

Achja, unser Mathelehrer würde übrigens weder "interessant" noch "lustig" sagen, sondern "spannend".

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy

zum Seitenanfang zum Seitenende Profil || Suche
010
04.12.2001, 07:04
Tron



[klugscheiss]
ich weiss zwar nicht worum's g'rade geht, aber korrigieren tu' ich dich gerne, TTS (;

universum heisst ganz schlicht ... Weltall
verwandt mit
universitas: die Geamtheit
und
universalis: gesamt, ganz

du verwechselst das wahrscheinlich mit
unicus: einzigartig
woher auch das schoene englische wort 'unique' stammt
[/klugscheiss]
*G*

--

'KEINE PANIK' - aus der Triologie in fuenf Baenden von Douglas Adams

'FÜR DEINN FERD' - aus 'Gevatter Tod' von Terry Pratchett

zum Seitenanfang zum Seitenende Profil || Suche
011
04.12.2001, 12:53
TheTinySteini



Gut, dann so...

Aber auch ein Plural von Gesamtheit macht keinen Sinn, oder? Das Universum im heutigen Sprachgebrauch "Weltall" heißt, is mir natürlich völlig klar - ich bin ja nicht blöde ;-) Aber es geht eben um den Wortstamm.

Nichtsdestotrotz ist es ziemlich OT, also.. hm... lassen wir das =)

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy

zum Seitenanfang zum Seitenende Profil || Suche
012
04.12.2001, 17:44
Prefect



Kritik ist gut, konstruktive Kritik ist besser. Wenn du einen besseren Benennungsvorschlag hast, sag ihn halt ;p

Übrigens sind subtile Heapcorruptionbugs mit Out-of-bounds-Indizierung oder so böse. Ganz besonders wenn sie 7000+ Zeilen Code haben, um sich zu verstecken :/

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
013
05.12.2001, 13:03
TheTinySteini



room_t?
chatroom_t?
space_t?
tnu_t (this is not universe_t)?
playground_t?
galaxy_t?

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy

zum Seitenanfang zum Seitenende Profil || Suche
014
05.12.2001, 17:47
Prefect



space_t ist noch am besten, allerdings hört sich das so leer an. tnu_t ist kreativ aber unverständlich. [chat]room_t ist schlecht, weil's so IRC-spezifisch ist. playground_t hört sich nach Kindergarten an. galaxy_t betont die Abgeschlossenheit des Systems nicht.

Wir wärs mit continuum_t? ;)

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
015
05.12.2001, 18:14
TheTinySteini



Mach es Microsoftig (lang und ohne vernünftige Aussage):
Quellcode:
MyVeryOwnRulingIRCRootNodeWhichContainsManyNiceVars_t

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy

zum Seitenanfang zum Seitenende Profil || Suche
016
05.12.2001, 19:53
Another1



environment_t

--

Another1

...relaxing..atm =)
... und Schweiz suckt!

zum Seitenanfang zum Seitenende Profil || Suche
017
06.12.2001, 14:28
Prefect



Quellcode:
struct __tagMSUNIVERSE {
  DWORD dwFlags;
  DWORD dwMeaning;
  LONG lTime;
  DWORD dwReserved1;
  OLESTR lpQuestion;
  DWORD dwFlags2;
};
typedef struct __tagMSUNIVERSE MSUNIVERSE, *LPMSUNIVERSE;

#define UNIVERSE_FLAGS_CREATED 0x00000001
#define UNIVERSE_FLAGS_COPYRIGHTED 0x00000002
#define UNIVERSE_FLAGS_RULED_BY_MICROSOFT 0x00000004
...

cu,
Prefect

--

Widelands - Gemütliche Aufbaustrategie, Free Software
Noch ein Blog - Lerne, wie die Welt wirklich ist, aber vergiss niemals, wie sie sein sollte.

zum Seitenanfang zum Seitenende Profil || Suche
018
08.12.2001, 15:07




(none)

--

zum Seitenanfang zum Seitenende Profil || Suche
019
11.12.2001, 20:30
feigling



Also ich hab folgendes Problem.
Ich wollte meinen Bot so ähnlich wie den ChanServ proggen, also dass er auch die User erkennt und dann op. Dafür habe ich dann den Befehl !addop. Dann soll er die Infos über den User speichern und wenn er connected, vergleichen.
nur habe ich da Probleme:

den nick kann ich nicht vergleichen, da man einfach durch nickchange
jeden nick annehmen kann und somit wäre es ja Schwachsinn, einen Bot zu coden, wenn jemand nur seinen nick wechseln muss, um op zu werden.
Also habe ich mir gedacht, nimm doch einfach die Hostmask. Ich glaube, dieses heißt doch Hostmask, oder ?

feigling@Ace07.pppool.de

Ok, nur das Problem ist hierbei, dass die sich bei jedem Connecten ändert, ist also einmal bei mir : feigling@Ace07.pppool.de, dann wieder
feigling@A1fb1.pppool.de. Ok, dachte ich mir, nimm einfach die Sachen vor dem A also erst vergleichen feigling@A und danach das, was nach dem Punkt ist -> .pppool.de. Da überlege ich aber gerade, ob man dass nicht fälschen kann ? Klar, man trägt einfach bei USERID feigling ein, aber kann man denn .pppool.de irgendwie fälschen/ ändern ?

Ich bräuchte also einen oder am Besten zwei Werte, die sich nicht ändern, die man aber auch nicht mal eben irgendwo in seinem ChatClient einstellen kann.

Was ich mich auch frage. Wie macht das der ChanServ ?
Was speichert der von einem ?
Der muss ja irgendwas von mir speichern, was sich nicht ändert oder macht der das irgendwie, dadurch dass man da ein Kennwort sendet, dass der dann die Hostmask von mir bei feigling speichert und wenn ich wieder deconnecte, dass der dann die Hostmask wieder löscht,um sie dann wieder zu beschreiben ?

Ich könnte das natürlich so machen, wäre auch die beste Möglichkeit, dadurch dass ich dann durch die message die Hostmaske bekomme und sie dann für die zeit, die der User online ist, speichern. Das ist aber alles sehr kompliziert. Würde ich zwar proggen können,
aber gibt es da vielleicht ne einfachere Möglichkeit, ich brauche ja nur zwei feste Werte, die der User aber nicht so einstellen könnte ?

Ich hoffe mal, dass ihr mir helfen könnt.

--

zum Seitenanfang zum Seitenende Profil || Suche
020
11.12.2001, 21:33
Another1



also, channy (ja, ... ähhm .. channy (chanserv) und ich, wir kennen uns .. näher ... *ähem*) speichert einfach die hostmask, so, und dann muss man sich aber noch durch nen passwort authen, beim kleinen bruder dem authserv. Also letztendlich identifiziert der einen durch Passwort und hostmask (wobei der statische teil der mask genommen wird, weil sonst ... jo geht nit)
... so nu ugh ich muss ins bett, n8 all =)

--

Another1

...relaxing..atm =)
... und Schweiz suckt!

zum Seitenanfang zum Seitenende Profil || Suche
021
11.12.2001, 22:01
feigling



jo, n8 a1 :)
ok, ich werde das dann auch so ähnlich machen. Wird das beste sein, sich dann auch noch mit nem passwort anzumelden.
Is zwar sehr schwierig, aber nicht unlösbar :)

--

zum Seitenanfang zum Seitenende Profil || Suche
022
29.12.2001, 23:57




(none)

--

zum Seitenanfang zum Seitenende Profil || Suche
023
21.03.2002, 20:31




(none)

--


Dieser Beitrag wurde am 21.03.2002 um 20:38 von Gumble bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche