3D Udp Pos Sendus Variablus
Übersicht

morszeckGastBetreff: 3D Udp Pos Sendus Variablus |
![]() Antworten mit Zitat |
|
---|---|---|
HIOPsy! leuts ich hab n prob!
also habe n chat geproggt leider nur für zwei player: [auch schon local getestet der funzt!] Code: [AUSKLAPPEN] Global Host_Name$, Joiner_Name$ Global Joiner_Sende_Stream, Joiner_Sende_Port, Joiner_Empfangs_Port, Joiner_Empfangs_Stream Global Host_Sende_Stream, Host_Sende_Port, Host_Empfangs_Port, Host_Empfangs_Stream Global Amt, Amt_Name$ Global Empfangs_stream, Sende_Stream, Port, User_IP Global x, momentane_eingabe$ Type zeile Field zeile_text$ Field treihe Field farbe End Type Global zeile Global reihe = 30 Type Personen Field Personen_Name$ Field Personen_Anzahl End Type Global Personen Graphics 640,480,16,2 Print "UDP Chat" Print "(H)osten (auf User warten, der sich mit dir verbinden will)" Print "(J)oinen (mit wartetenden User verbinden)" Strich() While Not option > 0 If KeyHit(35) Then FlushKeys():Hosten: option = 1 If KeyHit(36) Then FlushKeys():Joinen: option = 2 Wend FlushKeys() SetBuffer BackBuffer() ;HAUPTSCHLEIFE While Not KeyHit(1) Cls Text_Update() Update_empfangen() schreiben() Flip Wend End ;_________________________ Function Hosten() Print "Hosting:" Host_Name$ = Input$("Dein Name:") Host_Empfangs_Port=2000:Host_Empfangs_Stream=CreateUDPStream(Host_Empfangs_Port) Host_Sende_Port=3000:Host_Sende_Stream=CreateUDPStream();3000) P.Personen = New Personen P\Personen_Name$ = Host_Name$ + " [HOST]" P\Personen_Anzahl = P\Personen_Anzahl + 1 .Warte_User Print "Bitte warten!!" While Not RecvUDPMsg(Host_Empfangs_Stream) Flip Wend IP = UDPMsgIP(Host_Empfangs_Stream) Joiner_Name$=ReadString$(Host_Empfangs_Stream) Print Joiner_Name$ + " will sich mit ihnen verbinden!" Print "(E)rlauben oder (K)icken?" While Not Erlaubniss_Antowort >0 If KeyHit(18) Then Antwort$ = Host_Name$ Erlaubniss_Antowort = 1 P.Personen = New Personen P\Personen_Name$ = Joiner_Name$ P\Personen_Anzahl = P\Personen_Anzahl + 1 End If If KeyHit(37) Antwort$ = "Keine Erlaubnis": Erlaubniss_Antowort = 2:strich():Goto Warte_User Wend WriteString Host_Sende_Stream, Antwort$ SendUDPMsg Host_Sende_Stream,IP ,Host_Sende_Port Strich() Amt = 1 ; 1 = Hosten || 2 = Joinen Amt_Name$ = Host_Name$ Empfangs_stream = Host_Empfangs_stream Sende_Stream = Host_Sende_Stream User_IP = IP Port = Host_Sende_Port End Function ;_________________________ Function Joinen() Print "Joining:" Joiner_Name$ = Input$("Dein Name:") Host_IP$ = Input("Host-IP:") IP= INT_IP(Host_IP$) If Host_IP$ = "127.0.0.1" Then Joiner_Empfangs_Port=3000: Joiner_Empfangs_Stream = CreateUDPStream(Joiner_Empfangs_Port) Joiner_Sende_Port=2000:Joiner_Sende_Stream=CreateUDPStream() Else Joiner_Empfangs_Port=3000: Joiner_Empfangs_Stream = CreateUDPStream(Joiner_Empfangs_Port) Joiner_Sende_Port=2000: Joiner_Sende_Stream=CreateUDPStream(Joiner_Sende_Port) EndIf If Joiner_Empfangs_Stream = 0 Then End P.Personen = New Personen P\Personen_Name = Joiner_Name$ P\Personen_Anzahl = P\Personen_Anzahl + 1 Print "Streams wurde erstellt!" WriteString Joiner_Sende_Stream, Joiner_Name$ SendUDPMsg Joiner_Sende_Stream,IP ,Joiner_Sende_Port Print "Warte auf Antwort des Host´s" While Not RecvUDPMsg(Joiner_Empfangs_Stream) Flip Wend Erlaubnis_Antwort$=ReadString$(Joiner_Empfangs_Stream) Print Erlaubnis_Antwort$ If Erlaubnis_Antwort$ = "Keine Erlaubnis" Then Print "Der Host erlaubt Ihnen nicht sich mit ihm zu verbinden": FlushKeys(): WaitKey(): End;K Else Host_Name$ = Erlaubnis_Antwort$ Print "Sie sind nun mit "+ Host_Name$ + " verbunden!";E P.Personen = New Personen P\Personen_Name$ = Host_Name$ + " [HOST]" P\Personen_Anzahl = P\Personen_Anzahl + 1 EndIf Strich() Amt = 2 ; 1 = Hosten || 2 = Joinen Amt = 1 Amt_Name$ = Joiner_Name$ Empfangs_stream = Joiner_Empfangs_stream Sende_Stream = Joiner_Sende_Stream User_IP = IP Port = Joiner_Sende_Port End Function ;_________________________ Function INT_IP(IP$) 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 Strich() Color 255,0,0 Print "-----------------------------------------------------------------------------------" Color 255, 255, 255 End Function ;_________________________ Function Text_Update() For P.Personen = Each personen d = d + 1 If d = 1 Then personent$ = p\personen_name$ If d = 2 Then personent$ = personent$ + " gegen " + p\personen_name$ Next If Amt = 1 Then Amt_Bezeichnung$ = "HOST" If Amt = 2 Then Amt_Bezeichnung$ = "Joiner" Text 0, 5, "Es spielen zur Zeit " + Personent$ Text 0, 15 ,"______________________________________________________________________________" Text 0, 16 ,"______________________________________________________________________________" Text 0, 440, "-------------------------------------------------------------------------------------" For z.zeile = Each zeile If z\farbe = 1 Then Color 255,0,0 If z\farbe = 2 Then Color 0,0,255 Text 1,z\treihe, z\zeile_text$ Next For z.zeile = Each zeile If z\treihe => 150 Then zeile_aufschieben: Exit Next End Function ;_________________________ Function schreiben() x = GetKey() If X > 31 momentane_eingabe$ = momentane_eingabe$ + Chr(x) anzahl = Len(momentane_eingabe$) If anzahl => 25 Then momentane_eingabe$ = LSet$(momentane_eingabe$, anzahl -1) If x = 8 Then If Not momentane_eingabe$ = "" Then momentane_eingabe$ = LSet$(momentane_eingabe$, anzahl -1) EndIf EndIf If x = 13 Then WriteLine Sende_Stream, "[" +CurrentTime$() + "] " + Amt_Name$ + ": " + momentane_eingabe$ SendUDPMsg Sende_Stream, User_IP ,Port zeile_speichern("[" +CurrentTime$() + "] " + Amt_Name$ + ": " + momentane_eingabe$, 1 ): momentane_eingabe$ = "" EndIf Color 100,100,100: Text 5, 460, "Message: " Color 255,0,0: Text 100,460, momentane_eingabe$ Color 0,255,0 End Function ;_________________________ Function Update_empfangen() If RecvUDPMsg(Empfangs_stream) nachr$=ReadLine$(Empfangs_stream) zeile_speichern(nachr$, 2) EndIf End Function ;_________________________ Function zeile_speichern(speicher_text$, f) z.zeile = New zeile z\farbe = f z\zeile_Text$ = speicher_text$ reihe = reihe + 15 z\treihe = reihe End Function Function zeile_aufschieben() z.zeile = First zeile Delete z.zeile For z.zeile = Each zeile z\treihe = z\treihe - 15 Next reihe = reihe - 15 End Function so jetzt wollte ich noch 2 spheres reinhängen und bewegen und etc ihr wisst schon also hab ichs so erweitert: Global Host_Name$, Joiner_Name$ Global Joiner_Sende_Stream, Joiner_Sende_Port, Joiner_Empfangs_Port, Joiner_Empfangs_Stream Global Host_Sende_Stream, Host_Sende_Port, Host_Empfangs_Port, Host_Empfangs_Stream Global Amt, Amt_Name$ Global Empfangs_stream, Sende_Stream, Port, User_IP Global x, momentane_eingabe$ Global ka$ = Chr$(187) ; << Global kz$ = Chr$(171) Global Joiner_Pivot, Joiner_Spieler, Joiner_Camera_Pivot, Joiner_Camera Global Host_Pivot, Host_Spieler, Host_Camera_Pivot, Host_Camera Type zeile Field zeile_text$ Field treihe Field farbe End Type Global zeile Global reihe = 30 Type Personen Field Personen_Name$ Field Personen_Anzahl End Type Global Personen Graphics 640,480,16,2 Print "UDP Chat" Print "(H)osten (auf User warten, der sich mit dir verbinden will)" Print "(J)oinen (mit wartetenden User verbinden)" Strich() While Not option > 0 If KeyHit(35) Then FlushKeys():Hosten: option = 1 If KeyHit(36) Then FlushKeys():Joinen: option = 2 Wend FlushKeys() SetBuffer BackBuffer() ;HAUPTSCHLEIFE While Not KeyHit(1) Cls ; 3D Functionen Tast_Update() schreiben(1) RenderWorld() UpdateWorld() ; 2D Zeuch [Text etc.] Update_empfangen() schreiben(0) Text_Update() Flip Wend End ;_________________________ Function Hosten() Print "Hosting:" Host_Name$ = Input$("Dein Name:") Host_Empfangs_Port=2000:Host_Empfangs_Stream=CreateUDPStream(Host_Empfangs_Port) Host_Sende_Port=3000:Host_Sende_Stream=CreateUDPStream();3000) P.Personen = New Personen P\Personen_Name$ = Host_Name$ P\Personen_Anzahl = P\Personen_Anzahl + 1 .Warte_User Print "Bitte warten!!" While Not RecvUDPMsg(Host_Empfangs_Stream) Flip Wend IP = UDPMsgIP(Host_Empfangs_Stream) Joiner_Name$=ReadString$(Host_Empfangs_Stream) Print Joiner_Name$ + " will sich mit ihnen verbinden!" Print "(E)rlauben oder (K)icken?" While Not Erlaubniss_Antowort >0 If KeyHit(18) Then Antwort$ = Host_Name$ Erlaubniss_Antowort = 1 P.Personen = New Personen P\Personen_Name$ = Joiner_Name$ P\Personen_Anzahl = P\Personen_Anzahl + 1 End If If KeyHit(37) Antwort$ = "Keine Erlaubnis": Erlaubniss_Antowort = 2:strich():Goto Warte_User Wend WriteString Host_Sende_Stream, Antwort$ SendUDPMsg Host_Sende_Stream,IP ,Host_Sende_Port Strich() Amt = 1 ; 1 = Hosten || 2 = Joinen Amt_Name$ = Host_Name$ Empfangs_stream = Host_Empfangs_stream Sende_Stream = Host_Sende_Stream User_IP = IP Port = Host_Sende_Port ;3D Voreinstellungen Graphics3D 640,480 ;Spieler(Ich) (Jetzt) Host Host_Pivot = CreatePivot() Host_Spieler = CreateSphere(20,Host_Pivot) PositionEntity Host_Spieler, 1,0,0 EntityColor Host_Spieler, 255,0,0 ; Host = Rot Host_Camera_Pivot = CreatePivot(Host_Pivot) Host_Camera = CreateCamera(Host_Camera_Pivot) PositionEntity Host_camera,0,2,-5 ;Gegner (Jetzt) Joiner Joiner_Pivot = CreatePivot() Joiner_Spieler = CreateSphere(20,Joiner_Pivot) PositionEntity Joiner_Spieler, -1,0,0 EntityColor Joiner_Spieler, 0,0,255 ; Joiner = Blau End Function ;_________________________ Function Joinen() Print "Joining:" Joiner_Name$ = Input$("Dein Name:") Host_IP$ = Input("Host-IP:") IP= INT_IP(Host_IP$) If Host_IP$ = "127.0.0.1" Then Joiner_Empfangs_Port=3000: Joiner_Empfangs_Stream = CreateUDPStream(Joiner_Empfangs_Port) Joiner_Sende_Port=2000:Joiner_Sende_Stream=CreateUDPStream() Else Joiner_Empfangs_Port=3000: Joiner_Empfangs_Stream = CreateUDPStream(Joiner_Empfangs_Port) Joiner_Sende_Port=2000: Joiner_Sende_Stream=CreateUDPStream(Joiner_Sende_Port) EndIf If Joiner_Empfangs_Stream = 0 Then End P.Personen = New Personen P\Personen_Name = Joiner_Name$ P\Personen_Anzahl = P\Personen_Anzahl + 1 Print "Streams wurde erstellt!" WriteString Joiner_Sende_Stream, Joiner_Name$ SendUDPMsg Joiner_Sende_Stream,IP ,Joiner_Sende_Port Print "Warte auf Antwort des Host´s" While Not RecvUDPMsg(Joiner_Empfangs_Stream) Flip Wend Erlaubnis_Antwort$=ReadString$(Joiner_Empfangs_Stream) Print Erlaubnis_Antwort$ If Erlaubnis_Antwort$ = "Keine Erlaubnis" Then Print "Der Host erlaubt Ihnen nicht sich mit ihm zu verbinden": FlushKeys(): WaitKey(): End;K Else Host_Name$ = Erlaubnis_Antwort$ Print "Sie sind nun mit "+ Host_Name$ + " verbunden!";E P.Personen = New Personen P\Personen_Name$ = Host_Name$ P\Personen_Anzahl = P\Personen_Anzahl + 1 EndIf Strich() Amt = 2 ; 1 = Hosten || 2 = Joinen Amt = 1 Amt_Name$ = Joiner_Name$ Empfangs_stream = Joiner_Empfangs_stream Sende_Stream = Joiner_Sende_Stream User_IP = IP Port = Joiner_Sende_Port ;3D Voreinstellungen Graphics3D 640,480 ;Spieler(Ich) (Jetzt) Joiner Joiner_Pivot = CreatePivot() Joiner_Spieler = CreateSphere(20,Joiner_Pivot) PositionEntity Joiner_Spieler, -1,0,0 EntityColor Joiner_Spieler, 0,0,255 ; Joiner = Blau Joiner_Camera_Pivot = CreatePivot(Joiner_Pivot) Joiner_Camera = CreateCamera(Joiner_Camera_Pivot) PositionEntity Joiner_camera,0,2,-5 ;Gegner (Jetzt) Host Host_Pivot = CreatePivot() Host_Spieler = CreateSphere(20,Host_Pivot) PositionEntity Host_Spieler, 1,0,0 EntityColor Host_Spieler, 255,0,0 ; Host = Rot End Function ;_________________________ Function INT_IP(IP$) 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 Strich() Color 255,0,0 Print "-----------------------------------------------------------------------------------" Color 255, 255, 255 End Function ;_________________________ Function Text_Update() For P.Personen = Each personen d = d + 1 If d = 1 Then personent$ = p\personen_name$ If d = 2 Then personent$ = ka$ + personent$ + kz$ + " gegen " + ka$ + p\personen_name$ + kz$ Next If Amt = 1 Then Amt_Bezeichnung$ = "HOST" If Amt = 2 Then Amt_Bezeichnung$ = "Joiner" Text 0, 5, "Es spielen zur Zeit " + Personent$ Text 0, 15 ,"______________________________________________________________________________" Text 0, 16 ,"______________________________________________________________________________" Text 0, 440, "-------------------------------------------------------------------------------------" For z.zeile = Each zeile If z\farbe = 1 Then Color 255,0,0 If z\farbe = 2 Then Color 0,0,255 Text 1,z\treihe, z\zeile_text$ Next For z.zeile = Each zeile If z\treihe => 150 Then zeile_aufschieben: Exit Next End Function ;_________________________ Function schreiben(pos) If pos = 1 Then If amt = 1 WriteByte Sende_Stream, 1 WriteFloat Sende_Stream,EntityX#(Host_Spieler) SendUDPMsg Sende_Stream, User_IP, Port WriteByte Sende_Stream, 2 WriteFloat Sende_Stream,EntityY#(Host_Spieler) SendUDPMsg Sende_Stream, User_IP, Port WriteByte Sende_Stream, 3 WriteFloat Sende_Stream,EntityZ#(Host_Spieler) SendUDPMsg Sende_Stream, User_IP, Port ElseIf amt = 2 Then WriteByte Sende_Stream, 1 WriteFloat Sende_Stream,EntityX#(Joiner_Spieler) SendUDPMsg Sende_Stream, User_IP, Port WriteByte Sende_Stream, 2 WriteFloat Sende_Stream,EntityY#(Joiner_Spieler) SendUDPMsg Sende_Stream, User_IP, Port WriteByte Sende_Stream, 3 WriteFloat Sende_Stream,EntityZ#(Joiner_Spieler) SendUDPMsg Sende_Stream, User_IP, Port EndIf EndIf x = GetKey() If X > 31 momentane_eingabe$ = momentane_eingabe$ + Chr(x) anzahl = Len(momentane_eingabe$) If anzahl => 40 Then momentane_eingabe$ = LSet$(momentane_eingabe$, anzahl -1) If x = 8 Then If Not momentane_eingabe$ = "" Then momentane_eingabe$ = LSet$(momentane_eingabe$, anzahl -1) EndIf EndIf If x = 13 Then WriteLine Sende_Stream, "[" +CurrentTime$() + "] " + Amt_Name$ + ": " + momentane_eingabe$ SendUDPMsg Sende_Stream, User_IP ,Port zeile_speichern("[" +CurrentTime$() + "] " + Amt_Name$ + ": " + momentane_eingabe$, 1 ): momentane_eingabe$ = "" EndIf Color 100,100,100: Text 5, 460, "Message: " Color 255,0,0: Text 80,460, momentane_eingabe$ Color 0,255,0 End Function ;_________________________ Function Update_empfangen() If RecvUDPMsg(Empfangs_stream) byte = ReadByte(Empfangs_stream) If amt = 1 Then If byte = 1 Then floatpos# = ReadFloat#(Empfangs_stream) PositionEntity Host_Spieler, floatpos#, EntityY#(Host_spieler), EntityZ#(Host_Spieler) ElseIf byte = 2 floatpos# = ReadFloat#(Empfangs_stream) PositionEntity Host_Spieler, EntityX#(Host_Spieler), floatpos#, EntityZ#(Host_Spieler) ElseIf byte = 3 Then floatpos# = ReadFloat#(Empfangs_stream) PositionEntity Host_Spieler, EntityX#(Host_Spieler), EntityY#(Host_Spieler), Floatpos# EndIf ElseIf amt = 2 If byte = 1 Then floatpos# = ReadFloat#(Empfangs_stream) PositionEntity Joiner_Spieler, floatpos#, EntityY#(Joiner_spieler), EntityZ#(Joiner_Spieler) ElseIf byte = 2 floatpos# = ReadFloat#(Empfangs_stream) PositionEntity Joiner_Spieler, EntityX#(Joiner_Spieler), floatpos#, EntityZ#(Joiner_Spieler) ElseIf byte = 3 Then floatpos# = ReadFloat#(Empfangs_stream) PositionEntity Joiner_Spieler, EntityX#(Joiner_Spieler), EntityY#(Joiner_Spieler), Floatpos# EndIf EndIf nachr$=ReadLine$(Empfangs_stream) zeile_speichern(nachr$, 2) EndIf End Function ;_________________________ Function zeile_speichern(speicher_text$, f) z.zeile = New zeile z\farbe = f z\zeile_Text$ = speicher_text$ reihe = reihe + 15 z\treihe = reihe End Function Function zeile_aufschieben() z.zeile = First zeile Delete z.zeile For z.zeile = Each zeile z\treihe = z\treihe - 15 Next reihe = reihe - 15 End Function ;____________________ Function Tast_Update() ;Cursor: ;Vor If KeyDown(200) Then If amt = 1 Then MoveEntity Host_Spieler,0,0,0.1 ElseIf amt = 2 MoveEntity Joiner_Spieler,0,0,0.1 EndIf EndIf ;Zurück If KeyDown(208) Then If amt = 1 Then MoveEntity Host_Spieler,0,0,-0.1 ElseIf amt = 2 MoveEntity Joiner_Spieler,0,0,-0.1 EndIf EndIf ;Links If KeyDown(203) Then If amt = 1 Then MoveEntity Host_Spieler,-0.1,0,0 ElseIf amt = 2 MoveEntity Joiner_Spieler,-0.1,0,0 EndIf EndIf ;Rechts If KeyDown(205) Then If amt = 1 Then MoveEntity Host_Spieler,0.1,0,0 ElseIf amt = 2 MoveEntity Joiner_Spieler,0.1,0,0 EndIf EndIf End Function und der scheiss funzt net so n ***** naja ihr seid hoffentlich so nett und gibt euer bestes ^^ will euch zwar net zutrauen den code zu studieren aba n blick könntet ihr ja für mcih scho druff werfe oda?? also wär escht geil wenn mir jemand helfe könne!! hiopsy CYBER Froginus |
||
konstantin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Da ich wirklich keine Lust habe den Code komplett zu durchstöbern, aber wie sieht das aus: Wo ist der Fehler? Runtime-Error oder was? Beschreib mal. | ||
![]() |
DCSieger des B2D Retro Wettbewerb / Aug 04 |
![]() Antworten mit Zitat ![]() |
---|---|---|
Kannst du das Problem nicht irgendwie mehr eingrenzen? Keiner wird sich so viel Code durchlesen! Und verwende überall beim Code die Codetags - so blickt da ja keiner durch ![]() |
||
Core i5 4670K | 4 x 3,40 GHZ | 16 GB Ram | GeForce GTX 960 | HTC Vive | Win 10 Pro
www.UnrealSoftware.de | www.StrandedOnline.de | www.CS2D.com | www.CarnageContest.com | www.Stranded3.com |
morszeckGast |
![]() Antworten mit Zitat |
|
---|---|---|
...ich dachte irhr testet es einfach!!! | ||
konstantin |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Sorry, aber das ist zu viel verlangt, da hat hier keiner Lust zu. Definiere dein Problem, ggf. Screenshots und zeige die CDodestelle an der es nicht funktioniert. | ||
morszeckGast |
![]() Antworten mit Zitat |
|
---|---|---|
?!? versteh ich nicht! das prob ist dass dass das senden von den positionsdaten nicht funzt! ihr könnt doch einfach in BB kopiren und einmal durchlaufen lassen!!
kommt kein fehler aber geht trotzdem net ;( |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group