Es wird nichts gesendet
Übersicht

![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
Habe ja alles neu gecodet...
Wenn ich nun einen Host erstelle,die exe nochmal starte,dann joine,dann nochmal die exe starten und nochmal joine , dann sehe ich zwar in jedem Fenster die anderen aber wenn ich jetzt die zuerst gejointe Figur bewege und dann beim zuletzt gejointen schaue bewegt sie sich nicht...aber beim host wird sie bewegt...ich weiß nicht was ich da falsch gemacht habe oder machen soll... Hier mal der Code: Code: [AUSKLAPPEN] Type player
Field name$ Field ip Field port Field x# Field y# Field z# Field entity# End type Global p.player ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; Graphics3D 800,600,32,2 SetBuffer BackBuffer() Global cam=createcamera() Global block=createcube() EntityParent block,cam PositionEntity block,0,-5,10 PointEntity cam,block boden=createplane() PositionEntity boden,0,-10,0 EntityColor boden,34,22,255 Dim cubes(200) For i=1 To 200 cubes(i)=createcube() EntityColor cubes(i),rnd(1,255),rnd(1,255),rnd(1,255) ScaleEntity cubes(i),rnd(1,10),rnd(1,10),rnd(1,10) PositionEntity cubes(i),rnd(-100,100),-10,rnd(-100,100) next ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; typ$=input("Host=h | Join=j:") Global uname$ Global curname$ Global oldx# Global oldy# Global oldz# Global mhm$ Global msg$ Global tef$ Global tes$ Global stream Global port Global IP Global name3$ If typ$="j" Then pr=Input("Deine Portnummer:") name3$=Input("Dein Name:") port = pr stream=createudpstream() myip$="127.0.0.1" IP=INT_IP(myip$) ;Am Server den Client anmelden. WriteByte(stream,2) ;Dem Server mitteilen das wir neu dazu gekommen sind. WriteString(stream,name3$) ;Unseren Namen mitteilen SenduDpMsg stream,IP,9112 ;UDP Message senden Print port p.player=new player p\ip=ip p\port=port p\name$=name3$ Print "Du hast den Chat betreten =D" End If If typ$="h" port = 9112 stream=createudpstream(port) End If While Not KeyHit(1) If typ$="h" Then updatehost() Else If typ$="j" Then updateclient() End if oldx#=entityx(cam) oldy#=entityy(cam) oldz#=entityz(cam) If KeyDown(200) Then MoveEntity cam,0,0,1 End If If KeyDown(208) Then MoveEntity cam,0,0,-1 End If If KeyDown(205) Then MoveEntity cam,1,0,0 End If If KeyDown(203) Then MoveEntity cam,-1,0,0 End If RenderWorld UpdateWorld Print mhm$ flip Wend Function updatehost() If RecvUDPMsg(stream) <> 0 then from=UDPMsgIP(stream) fromp=udpmsgport(stream) get=readbyte(stream) Select get Case 2 p.player=new player p\ip=from p\port=fromp p\name$=readstring(stream) name3$=p\name$ Print p\name$ +" hat den Chat betreten =)" p\entity=createcube() For p.player=each player If Not p\port=fromp WriteByte(stream,2) ;Dem Server mitteilen das wir neu dazu gekommen sind. WriteString(stream,name3$) ;Unseren Namen mitteilen Writeint(stream,fromp) Writeint(stream,from) sendudpmsg(stream,p\ip,p\port) WriteByte(stream,2) ;Dem Server mitteilen das wir neu dazu gekommen sind. WriteString(stream,p\name$) ;Unseren Namen mitteilen Writeint(stream,p\port) Writeint(stream,p\ip) sendudpmsg(stream,from,fromp) End If Next Case 1 nwmsg$=Readstring(stream) For p.player=each player If fromp=p\port then Print "<"+p\name$+":>"+nwmsg$ End If Next Case 3 For p.player=each player If p\port=fromp Then curname$=p\name$ End If Next For p.player=each player If p\port=fromp then p\x#=readfloat(stream) p\y#=READFLOAT(stream) p\z#=readfloat(stream) PositionEntity p\entity,p\x#,p\y#,p\z# Else WriteByte(stream,3) WriteString(stream,curname$) WriteFloat(stream,readfloat(stream)) WriteFloat(stream,readfloat(stream)) WriteFloat(stream,readfloat(stream)) SendUDPMsg(stream,p\ip,p\port) End If next End Select End if End Function Function updateclient() If EntityX(cam)<>oldx# Or Entityy(cam)<>oldy# Or Entityz(cam)<>oldz# then WriteByte(stream,3) Writefloat(stream,entityx(cam)) ;Unseren Namen mitteilen Writefloat(stream,entityy(cam)) Writefloat(stream,entityz(cam)) SendUDPMsg stream,IP,9112 ;UDP Message senden End If gk=getkey() If gk>0 then tes$=chr$(gk) tef$=tef$+""+tes$ Color 50,50,50 Rect 1,1,600,20,1 Color 255,255,255 Text 1,1,tef$ End If If KeyHit(28) Then msg$=tef$ tef$="" WriteByte(stream,1) ;Dem Server mitteilen das wir neu dazu gekommen sind. WriteString(stream,msg$) ;Unseren Namen mitteilen SendUDPMsg stream,IP,9112 ;UDP Message senden End if If RecvUDPMsg(stream) <> 0 then from=UDPMsgIP(stream) fromp=udpmsgport(stream) get=readbyte(stream) Select get Case 1 nwmsg$=Readstring(stream) For p.player=each player If fromp=p\port then Print nwmsg$ End If Next Case 2 p.player=new player p\name$=readstring(stream) p\port=readint(stream) p\ip=readint(stream) p\entity=createcube() Case 3 uname$=ReadString(stream) For p.player=each player If p\name$=uname$ Then p\x#=readfloat(stream) p\y#=reADfloat(stream) p\z#=readfloat(stream) mhm$= "X:"+p\x#+" Y:"+p\y#+" Z:"+p\z#+" Name:"+p\name$ PositionEntity p\entity,p\x#,p\y#,p\z# End if next End select End if 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 |
||
![]() |
the FR3AK |
![]() Antworten mit Zitat ![]() |
---|---|---|
JA ich weiß Doppelpost^^ aber ich habe das Problem nun gelöst und habe eine letzte frage:
Kann es sein das sie die UDP Messages stauen wenn ich die Anwendung auf einem PC mehrfach starte? Also wenn ich z.B. 2 mal die Anwendung starte ( 1 Host , 1 Join) Und dann die Spieler bewege...das ich dann erst bei dem einen Fenster gucken muss ( das er sich dort bewegt) und dann wird erst beim nächsten die Bewegung gemacht? |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group