Chat für 2 Leute per UDP
Übersicht

![]() |
TimBoBetreff: Chat für 2 Leute per UDP |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hi Community
so stelle jetz das erste mal ein Code hier rein. bin noch ein Boon und benötige ein ingamechat und als übung habe ich das hier programmiert Code: [AUSKLAPPEN] ;Task erster I-Net Versuch ;von TimBo ;11.03.2008 - 15.03.2008 ;für School Total War alias Konter Strike Graphics 1024, 768, 24, 2 AppTitle "Internet Versuche" SetBuffer BackBuffer() timer = CreateTimer(70) Global empfangs_stream = CreateUDPStream(8000) ;erstellt ein UDP Stream mit dem Port 8000 Global nummer Global text1$ Type message ;die Nachrichten, die Angezeigt werden, sind als Types gespeichert Field nummer ;der Rang der Nachricht Field msg$ ;der Text selbst Field r, g, b ;hier die Farbwerte End Type Global name$ = Input("Gebe deinen Name ein! ") ;hier gibt man seinen Namen an Global farbe$ = Input("Gebe Farbe ein! (von 0-7) ") ;hier gibt man seine eigene Farbe an Global ipadresse$ = "255.255.255.255" ;hier ip adresse seines partners eingeben... kann man auch mit Input machen ^^ ;hier die Farbenvorlagen Select farbe$ Case 0 farbe$ = "000000000" Case 1 farbe$ = "255000000" Case 2 farbe$ = "000255000" Case 3 farbe$ = "255255000" Case 4 farbe$ = "000000255" Case 5 farbe$ = "000255255" Case 6 farbe$ = "255000255" Case 7 farbe$ = "255255255" End Select Global localrot ;die eigenen Farben, die man eingestellt hat Global localgruen Global Localblau Repeat empfangen() ;erst wird empfangen und der Stream freigeräumt If KeyHit(28) ;wenn man Enter drückt If tippen = 1 ;und man bereits was eingibt, Senden(text1$) ;dann sendet er das Eingegebene tippen = 0 ;und man schreibt nichts mehr Else ;wenn nicht FlushKeys: tippen = 1 : text1$ = "" ;kann man eine neue Nachricht schreiben EndIf EndIf If tippen = True Then Eingabe() : Color 255, 255, 255 :Text(10, 10, "> " + text1$+"_") WaitTimer (timer) Flip:Cls Forever Function IntegerIP(IP$) ;siehe BlitzBase.de A1 = Int(Left(IP$,Instr(IP$,".")-1)) : IP$ = Right(IP$,Len(IP$)-Instr(IP$,".")) A2 = Int(Left(IP$,Instr(IP$,".")-1)) : IP$ = Right(IP$,Len(IP$)-Instr(IP$,".")) A3 = Int(Left(IP$,Instr(IP$,".")-1)) : IP$ = Right(IP$,Len(IP$)-Instr(IP$,".")) A4 = Int(IP$) Return (A1 Shl 24) + (A2 Shl 16) + (A3 Shl 8 ) + A4 End Function Function Senden(Zeichensatz$) WriteString empfangs_stream,name$+": "+Zeichensatz+farbe$ ;hier sendet man seinen Namen: das geschriebene und dann den rgb code (siehe ganz oben) SendUDPMsg (empfangs_stream, IntegerIP(ipadresse$), 8000) m.message = New message ;neue Message m\msg$ = name$+": "+Zeichensatz$+farbe$ ;inhalt der message farben$ = Right(m\msg$, 9) ;Farbe ist ja in der message schon enthalten also wird sie ausgelesen m\r = Left(farben$, 3) ;und in rgb aufgeteilt m\g = Mid(farben, 4, 3) m\b = Right(farben$, 3) anzahlstellen = Len(m\msg$) m\msg$ = Left(m\msg$, anzahlstellen-9) ;hier wird der rgb code weg gemacht, damit man ihn nicht sieht m\nummer = nummer ;der Rang wird festgelegt nummer = nummer +1;die nächste Nachricht ist ein Rang iefer End Function Function Eingabe() taste = GetKey() Select Taste Case 8 If Len(text1$) > 0 Then text1$ = Left$(text1$, Len(text1$)-1 ) ;bei backspace wird ein ascii zeichen gelöscht Case 0 Default If Len(text1)<80 ;wenn man noch keine 80 zeichen geschrieben hat text1$ = text1$ + Chr$(Taste) ;hier wird der nächste buchstabe angefügt EndIf End Select End Function Function empfangen() IP_Adresse = RecvUDPMsg(empfangs_stream) If IP_Adresse <> 0 ;wenn eine Nachricht eintrifft m.message = New message ;wird ein neuer Nachrichtentype erstellt m\msg$ = ReadString(empfangs_stream) ;so wie beim senden farben$ = Right(m\msg$, 9) m\r = Left(farben$, 3) m\g = Mid(farben, 4, 3) m\b = Right(farben$, 3) anzahlstellen = Len(m\msg$) m\msg$ = Left(m\msg$, anzahlstellen-9) m\nummer = nummer nummer = nummer +1 EndIf For m.message = Each message ;hier werden Nachrichten mit ihrer Farbe angezeigt Color m\r, m\g, m\b Text 100, 100+m\nummer*20, "< " + m\msg$ Next If nummer > 20 Then ;wenn man schon 20 nachrichten auf dem Monitor hat wird alles eins aufgerückt m.message = First message Delete m.message nummer = nummer -1 For m.message = Each message m\nummer = m\nummer -1 Next EndIf End Function dabei hat mit Silver_Knee sehr unter die Arme gegriffen ![]() würde mich über Feedback freuen ![]() mit freundlichen Grüßen Intel Core 2 Quad |
||
- Zuletzt bearbeitet von TimBo am So, März 23, 2008 0:02, insgesamt einmal bearbeitet
![]() |
AMY |
![]() Antworten mit Zitat ![]() |
---|---|---|
Habs mal kurz ausprobiert weil ich sowas auch ganz ut gebrauchen kann, und habe festgestellt das bei der farbe cyan (5) die meldung nicht ganz ankommt. Da fehlen immer die letzten 3 zeichen. Bei Rot ist alles in Ordnung. Habe die anderen Farben nicht ausprobiert. Sonst aber ganz gut. | ||
Projekte: www.amyscbi.de
I never comment my sourcecode. What's HARD to write must be HARD to read! |
![]() |
TimBo |
![]() Antworten mit Zitat ![]() |
---|---|---|
Bug Fixed ^^ | ||
mfg Tim Borowski // CPU: Ryzen 2700x GPU: Nvidia RTX 2070 OC (Gigabyte) Ram: 16GB DDR4 @ 3000MHz OS: Windows 10
Stolzer Gewinner des BCC 25 & BCC 31 hat einen ersten Preis in der 1. Runde beim BWInf 2010/2011 & 2011/12 mit BlitzBasic erreicht. |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group