[39dll] IRC-Verbindung und Joinen

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • [39dll] IRC-Verbindung und Joinen

      Hallo ich erkläre euch heute was IRC ist und wie man es mit der 39dll verwenden kann.

      Was ist "IRC"?
      IRC ist die Abkürzung für Internet Relay Chat, ein Internet Protokoll. Ein Protokoll ist ein Anweisung was wie und wo gemacht werden muss, z.B. ist HTTP eins.
      Diese Protokoll wird für einen Chat verwenden der Text basiert ist also im Prinzip so:
      <name> text
      <name> text
      Der Vorteil ist aber das diese Chats in channels(Räumen) stattfinden, das kennt ihr bestimmt von dem GM-D Chat der nur ein IRC-Client ist der zu irc://irc.euirc.net/#game_maker verbindet.

      Wie verwende ich IRC?
      Da IRC Text basiert ist müssen wir die Befehle wie in Batch senden. Ein Befehl sieht so aus(sagt im channel #game_maker Hallo!!):

      Quellcode

      1. PRIVMSG #game_maker :Hallo !!


      Verbindung und "Anmeldung":
      Um überhaupt eine Verbindung zu bekommen müssen wir einen bestimmten Port an-"verbinden" das ist bei euIRC irgendwas zwischen 6660 und 6669. Wir benutzen 6660, das hat bei mir immer funktioniert. Der Verbindungsaufbau wäre:

      GML-Quellcode

      1. dllinit(0,1,1);
      2. global.server=tcpconnect("irc.euirc.net",6660,1) //Erstet Argument ist IP/Server, zweites der Port
      3. setformat(global.server,1,chr(10)) //Da IRC Text basiert ist müssen wir den Modus/das Format ändern auf 1 (Text) und als drittes Argument das Ende von einer Nachricht angeben

      Nun haben wir eine Verbindung, müssen uns aber noch "anmelden" (siehe: netsplit.de/crimson/node27.html :(

      GML-Quellcode

      1. clearbuffer();
      2. writechars("USER h1235tut bla * henrik1235 tut"); //Wenn wir joinen ergibt das bei den anderen: nick(dazu kommen wir später) (h1235tut@hostname) hat #channel betretten (bei Chatzilla)
      3. sendmessage(global.server);

      Um uns nun einen Nick zu geben (ist wie der /nick Befehl) dann heißen wir nun mr42:

      GML-Quellcode

      1. clearbuffer();
      2. writechars("NICK mr42");
      3. sendmessage(global.server);

      Nun sendet der Server was doch wie bekommen wir das raus?:

      GML-Quellcode

      1. var size,text;
      2. size=receivemessage(global.server);
      3. if (size>0)
      4. {
      5. text=readchars(bytesleft()) //Liest alle Zeichen ein
      6. }

      Jetzt müssen wir aber was mit text machen? Am besten wir lassen ihn anzeigen. Am Anfang sendet wahrscheinlich der Server seine MOTD (Message of the day), das können wir eigenlich ignorieren(auser bei Bots sollte man schauen ob der Server überhaupt Bots zulässt). Damit will ich mich eigentlich nicht beschäftigen, denn das könnt ihr in einer Dokumention nachlesen. (Wenn ihr trotzdem Fragen habt fragt mich)
      Dieser Code joint einfach einen Channel sagt hallo und geht wieder:

      GML-Quellcode

      1. clearbuffer();
      2. writechars("JOIN #henrik");
      3. sendmessage(global.server);
      4. clearbuffer();
      5. writechars("PRIVMSG #henrik :hallo");
      6. sendmessage(global.server);
      7. clearbuffer();
      8. writechars("QUIT "); //Verlässt alle Channels und zerstört die Verbindung von Client zu Server(ist das selbe wie /quit)
      9. sendmessage(global.server);

      Das würde ich in einen Alarm machen damit das vom Server empfängen wird, denn nach dem USER und NICK Befehl kommt schon die MOTD.

      Example

      Mfg henrik1235

      Ps.:Ich würde euch nicht empfehlen mit einen Bot in #game_maker zu joinen die mögen die nicht :P . Man kann auch andere IRC Server an"verbinden" wie iirc.ffm.de.euirc.net(gehört noch zum euIRC) oder irc.esper.net und man muss die PINGs beantworteten (gesendet wird PING <irgendwas>) und man muss PONG <irgendwas> senden.
      wupto.net/ Nicht meine Seite!
      We love Koalas.

      GM-D-Spam-o-Meter: 32%

      Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von henrik1235 ()

    • Brauche Hilfe um etwas zu finden

      Ich dachte es passt am besten in diesen Post...

      Ich suche etwas, um IRC in meine Spiele einzubauen. IRC, weil es spieleübergreifen und auch auf der Homepage funktionieren soll und sich IRC hier als bekanntes und relativ fortschrittliches Chatsystem anbietet.
      Ich hab auch henrik1235's Tutorial angetestet, allersings müsste man da noch sehr viel machen, bevor man es professionell nutzen könnte. Es gibt bereits Gmirc von lukesterspy das in der Version 2.0 hier zu finden ist. Allerdings sind die Links down. Ich kann mich aus irgend einem Grund (vermutlich ein Problem mit AOL EMails) nicht im gmc Forum anmelden, so dass ich auch nicht suchen oder jemanden anschreiben kann. Ich konnte lukesterspy über Umwege eine Email schreiben, allerdings hab ich bisher keine Antwort bekommen. Ich hab auch an einigen anderen Orten gesucht, konnte aber nur eine veraltete Version ohne Source Code finden...

      Screenshot:


      Nun meine Bitte an euch alle:

      wenn jemand zufällig die nötigen Dateien hat, oder die Möglichkeit hat sie zu finden, dann würde ich mich sehr darüber freuen.
      Oder wenn ihr etwas anderes, vergleichbares kennt, mir es zu zeigen.

      Im Notfall kann ich auch komplett eigenes Chatsystem schreiben, aber IRC wäre schon edler, da gerade auf HPs sehr einfach einzubauen und von einer Vielzahl an Programmen ansprechbar.

      PS.
      Ich arbeite an zwei Spielen, einem Denkspiel, das ich sehr groß aufziehen werde (fast fertig) und einem Asteroids mit sehr besonderer selbstlernenden KI, die ich hoffentlich spätestens in der Sommerferienzeit veröffentlichen werde.
      Für das Asteroids brauche ich allerdings die Möglichkeit txt Dateien zu schreiben, um ein vielfaches schneller, als der GM 6 dies kann. Falls ihr hierzu eine DLL kennt, wäre ich auch sehr dankbar (hab selbst noch nicht lange gesucht).
    • Ich melde mich mal kurz, ich hab vor 3 Wochen ein IRC Client Example gebastelt, leider hab ich es nicht geschafft es zu kommentieren, da ich das nie mache.^^ Es gibt eine Nicklist und Nachrichten über JOIN,PART und QUIT. Man kann mehrere Tabs also Channels offen haben, nachteil ich hab keine Kommandos eingebaut (auser /join und /nick). :P Man kann aber Zeug an den Server senden, wenn man im Server Log ist. Und scrollen gibt es auch. Ich glaube es gibt noch paar Bugs, aber naja. Hier ist die .gmk:
      henrik1235.bplaced.net/upload/data/ircclient_example.zip .
      MfG Henrik1235
      wupto.net/ Nicht meine Seite!
      We love Koalas.

      GM-D-Spam-o-Meter: 32%
    • Ganz nette Sache, wenn auch noch nicht viel geht, aber ich hatte mich schon selbst daran gewagt.
      Siehe meinen Open Source IRC "Client", den ich im Forum schon zur Verfügung gestellt habe:

      Screenshot:
      Vielleicht hilft dir das auch weiter, falls du noch an deinem weiter arbeiten willst.
    • Vielleicht hilft dir das auch weiter, falls du noch an deinem weiter arbeiten willst.
      Ich arbeite nicht mehr dran, ich habe ja schließlich schon einen IRC-Client. Kann deiner eigentlich "Multichannels"? Solltest du bei mir abgucken, wenn du das nicht hast :P Vielleicht baue ich noch MODE und KICK ein. Mal sehen.
      wupto.net/ Nicht meine Seite!
      We love Koalas.

      GM-D-Spam-o-Meter: 32%
    • Es wäre noch leicht um Multichannels erweiterbar, aber meiner ist ja als einfach Chat zum einbauen in ein Spiel gedacht und nicht direkt als "Client". Aber bekomm erstmal die Schriftfarben hin... ;)
    • Benutzer online 1

      1 Besucher