[Neues Thema] => UDP zu langsam !?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

ToeB

Betreff: [Neues Thema] => UDP zu langsam !?

BeitragDi, Dez 18, 2007 17:46
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich hab jetzt ein kleines Mini-"UDP-game" gemacht. Nur ist das viel zu langsam und beim Client Blinken die Images immer so ! Warum ist das so ?


Aber hier erstmal der Code: [AUSKLAPPEN]
Graphics 800,600,16,2
SetBuffer BackBuffer()

Global stream,server,Port = 7777,anzahl
Global P_col=10,ID=1,mapName$
Global Jump,fy#
Dim p_IP(p_col)
Dim p_Name$(p_col)
Dim p_Port(p_col)
Dim p_x(p_col)
Dim p_y#(p_col)
Dim p_winkel(p_col)
Dim p_RI(p_col)
Dim SF(90)
Dim W(90)
Dim map(31,23)

SetFont(LoadFont("New Times Roman",13,0,0,0))

Print "(1) => HOST"
Print "(2) => JOIN"
Repeat
If KeyHit(1) Then End
If KeyHit(2) Then Server=1:Exit
If KeyHit(3) Then Server=0:Exit
Forever
If Server = 1
EmpfangPort = 8000
Print ">>> HOST"
Print "Gib bitte deinen Name ein !"
Delay 1000
FlushKeys()
p_name(1) = Input("(>)")
If p_name(1) = "" Then
Print "Du hast keinen Namen eingegeben ! Dein Name ist nun "+Chr(34)+"NoName"+Chr(34)+" !"
p_name(1) = "NoName"
EndIf
Delay 1000
Print "Okay...."
Print "Erstelle ein Spiel ..."
stream = CreateUDPStream(Port)
Delay 1000
If stream = 0 Then Color 255,0,0:Print "Spiel konnte nicht erstellt werden !":Delay 2000:End
Print "Spiel erstellt !"
Print "Warte auf andere Spieler..."
AppTitle "SmILeY FigHTerS -online- (Server)"
FlushKeys()
Repeat
If KeyHit(1) Then End
If RecvUDPMsg(stream) And ReadByte(stream) = 1
If ID < p_col
ID = ID + 1
p_Name(ID) = ReadString(stream)
p_IP(ID) = UDPMsgIP(stream)
p_Port(ID) = UDPMsgPort(stream)
Print p_name(ID)+" ist in dein Spiel eingetreten ! (ID : "+ID+"/IP : "+DottedIP(p_IP(ID))+")"
WriteByte(stream,1)
WriteInt(stream,ID)
WriteString(stream,p_name(1))
SendUDPMsg(stream,p_IP(ID),p_port(ID))
Delay 100
Else
pp = UDPMsgPort(stream)
pp2= UDPMsgIP(stream)
WriteByte stream,p_col+1
SendUDPMsg(stream,pp2,pp)
EndIf
EndIf
Until KeyHit(28)
anzahl = ID
ID = 1
For i = 2 To anzahl
WriteString(stream,"Los")
WriteInt(stream,anzahl)
SendUDPMsg(stream,p_IP(i),p_Port(i))
Next
Else
Print ">>> JOIN"
Print "Gib bitte die HOST-IP ein !"
Delay 1000
FlushKeys()
IpIp$ = Input("(>)")
If IpIp$ = "" Then IpIp$ = "127.0.0.1"
p_IP(1) = INT_IP(IpIp)
Print "Gib bitte deinen Name ein !"
Delay 1000
FlushKeys()
name$ = Input("(>)")
If name$ = "" Then
Print "Du hast keinen Namen eingegeben ! Dein Name ist nun "+Chr(34)+"NoName"+Chr(34)+" !"
name$ = "NoName"
EndIf
Delay 1000
FlushKeys()
Print "Verbinde mit Host ..."
stream = CreateUDPStream()
Delay 1000
If stream = 0 Then Color 255,0,0:Print "Verbindung konnte nicht aufgebaut werden !":Delay 2000:End
WriteByte(stream,1)
WriteString(stream,name$)
SendUDPMsg(stream,p_IP(1),Port)
Print "Warte auf Antwort ..."
Delay 1000
Repeat
If KeyHit(1) Then End
pp = RecvUDPMsg(stream)
Until pp <> 0
pp = ReadByte(stream)
If pp = 1 Then
ID = ReadInt(stream)
p_name(1) = ReadString(stream)
p_IP(1) = UDPMsgIP(stream)
p_name(ID)= name$
ElseIf pp = p_col+1
Color 255,0,0
Print "Zu viele Spieler !"
Delay 2000
End
EndIf
Print "Der Server hat geantwortet !"
Print "Name : "+p_name(1)
Delay 1000
Print "Warte auf Spielstart ..."
Delay 100
AppTitle "SmILeY FigHTerS -online- (Client)"
Repeat
If KeyHit(1) Then End
pp = RecvUDPMsg(stream)
Until pp <> 0 And ReadString(stream) = "Los"
anzahl = ReadInt(stream)
EndIf
Print "Es geht los !"
Print "Lade daten ..."
Smiley = LoadAnimImage("gfx\Smiley.bmp",21,21,0,2):MaskImage Smiley,192,192,192:MidHandle Smiley:TFormFilter 2
Guns = LoadAnimImage("gfx\Guns.bmp",21,41,0,4):MaskImage Guns,180,180,180:MidHandle Guns
TileSet = LoadAnimImage("gfx\TileSet.bmp",25,25,0,3):MaskImage TileSet,255,0,255
BackGround = LoadImage("gfx\Background.bmp")
Pointer = LoadImage("gfx\Pointer.bmp"):MaskImage Pointer,255,0,255
Explosion = LoadAnimImage("gfx\Explosion30x30.bmp",30,30,0,64):MaskImage Explosion,0,0,0
Stuze = LoadAnimImage("gfx\Stutze.bmp",25,25,0,3):MaskImage Stuze,255,0,255
Print "--Figur"
Print "--Waffen"
Delay 100
For i = 0 To 90
   SF(i) = CopyImage(Smiley)
   W(i) = CopyImage(Guns)
   RotateImage SF(i),i*4
   RotateImage W(i),i*4
Next
FreeImage Smiley
FreeImage Guns
Print "--Map"
Delay 100
Read MapName
For y = 0 To 23
   For x = 0 To 31
      Read map(x,y)
   Next
Next
Print "Fertig ! Alle Daten geladen !"
Print "Map : "+MapName
Delay 2500
Timer = MilliSecs()
Repeat
ox = p_x(ID):oy = p_y(ID)
p_winkel(ID) = -ATan2(MouseX()-p_x(ID),MouseY()-p_y(ID))+180
If p_winkel(ID) < 0 Then p_winkel(ID) = 360
If p_winkel(ID) > 360 Then p_winkel(ID) = 0
If p_winkel(ID) => 0 And p_winkel(ID) < 180 Then p_RI(ID) = 0
If p_winkel(ID) => 180 And p_winkel(ID) <= 360 Then p_RI(ID) = 1
If KeyDown(30) Then p_x(ID) = p_x(ID) - 2
If KeyDown(32) Then p_x(ID) = p_x(ID) + 2
If KeyHit(17) And Jump < 2 Then Jump = Jump + 1:fy = 13
If Jump > 0 Then
fy = fy - 0.9
p_y(ID) = p_y(ID) - fy
Else
fy = fy + 0.9
p_y(ID) = p_y(ID) + fy
EndIf
If p_x(ID) <  10 Then p_x(ID) =  10
If p_x(ID) > 790 Then p_x(ID) = 790
For xx = 0 To 31
   For yy = 0 To 23
      DrawImage TileSet,xx*25,yy*25,map(xx,yy)
      If map(xx,yy) > 0
         If RectsOverlap(p_x(1)-10,p_y(1)-12,20,1,xx*25,yy*25,25,25) Then fy = 0:p_y(ID) = oy
         If RectsOverlap(p_x(1)-10,p_y(1)+12,20,1,xx*25,yy*25,25,25) Then Jump = 0:fy = 0:p_y(ID) = oy
         If RectsOverlap(p_x(1)-12,p_y(1)-10,1,20,xx*25,yy*25,25,25) Then p_x(ID) = ox
         If RectsOverlap(p_x(1)+12,p_y(1)-10,1,20,xx*25,yy*25,25,25) Then p_x(ID) = ox   
      EndIf
   Next
Next
For i = 1 To anzahl
DrawImage SF(p_winkel(i)/4),p_x(i),p_y(i),p_RI(i)
DrawImage W(p_winkel(i)/4),p_x(i),p_y(i),p_RI(i)
Color 255,0,0:Text p_x(i),p_y(i)-20,p_name(i),1,0:Color 255,255,255
Next

If timer <= MilliSecs() - 30 Then
If Server = 1
For i = 2 To anzahl
For j = 1 To anzahl
WriteInt(stream,p_x(j))
WriteInt(stream,p_y(j))
WriteInt(stream,p_winkel(j))
WriteInt(stream,p_RI(j))
SendUDPMsg(stream,p_IP(i),p_Port(i))
Next
Next
Else
WriteInt(stream,ID)
WriteInt(stream,p_x(ID))
WriteInt(stream,p_y(ID))
WriteInt(stream,p_winkel(ID))
WriteInt(stream,p_RI(ID))
SendUDPMsg(stream,p_IP(1),Port)
EndIf

If RecvUDPMsg(stream) <> 0
If Server = 1 Then
ID = ReadInt(stream)
p_x(ID) = ReadInt(stream)
p_y(ID) = ReadInt(stream)
p_winkel(ID) = ReadInt(stream)
p_RI(ID) = ReadInt(stream)
Else
For i = 1 To anzahl
If i <> ID Then
p_x(i) = ReadInt(stream)
p_y(i) = ReadInt(stream)
p_winkel(i) = ReadInt(stream)
p_RI(i) = ReadInt(stream)
EndIf
Next
EndIf
EndIf

timer = MilliSecs()
EndIf



Flip
Cls
Until KeyHit(1)


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



.MapData

Data "Geometric"
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1


Ich hab echt keine anhnug Shocked ...

thx und mfg Crack93
 

ChristianK

BeitragDi, Dez 18, 2007 23:34
Antworten mit Zitat
Benutzer-Profile anzeigen
Es macht keinen Spaß, sich diesen unformatierten Quellcode durchzulesen. Und ein paar Kommentare wären auch nett. Wink

Zitat:
Ich hab echt keine anhnug Shocked ...

War das eine Frage oder eine Feststellung? Confused
AdvanceLcd
Intel Core 2 Duo 3.2 GHz, 4 GB RAM, GeForce 8800 GTX | MacBook Pro 15,4″ Intel Core 2 Duo 2.4 GHz, 2 GB RAM, GeForce 8600M GT
 

Dreamora

BeitragDi, Dez 18, 2007 23:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Nimm die Delays raus.
Was erwartest du da genau was er tun soll wenn die Anwendung immer wieder für mehrere Sekunden in den Sleep versetzt wird.

UDP ist schnell, schneller wirds nimmer, wenn dir UDP zu langsam ist, würd ich ma so arrogant sein und behaupten, dass du dir erst noch weitere Grundlagen der Netzrprogrammierung aneignen musst, damit du dein Projekt so designen kannst, dass es richtig arbeitet mit Netzwerk. Weil "frame-identische" netzwerk übertragung etc gibts nicht. 30-100ms millisekunden dauerts minimum bis die anderen spieler deine update daten haben (wenn du ein spieler bist)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

The_Nici

BeitragMi, Dez 19, 2007 15:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Das blinken:
UDP-Nachrichten kommen nicht immer an. Deshalb erreicht manchmal auch die Nachricht 0 den Client.
Mach einfach, dass es nur ausliest wenn der instream <>0 ist.

MfG

ToeB

BeitragMi, Dez 19, 2007 16:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Also so :
Code: [AUSKLAPPEN]
If RecvUDPMsg(stream) And stream <> 0 then LeseMessage()


??

thx und mfg Crack93
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

The_Nici

BeitragMi, Dez 19, 2007 16:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Reicht schon wenn du nur RecvUDPMsg abfragst.

ToeB

BeitragMi, Dez 19, 2007 17:35
Antworten mit Zitat
Benutzer-Profile anzeigen
aber das hab ich doch gemacht !

thx und mfg Crack93

[EDIT]

Ich hab das jetzt so gemacht, das wenn der HOST einen Nacjricht vom Client kriegt, das dan eine Variable (p_MSG()) auf 1 gesetzt wird. Diese Variable wird immer an die Clienten mitgeschikt, so können die gucken, ob der Client mit der ID überhaubteinen Nachricht an den HOST geschickt hat...

Hier der Code: [AUSKLAPPEN]
Graphics 800,600,16,2
SetBuffer BackBuffer()

Global stream,server,Port = 7777,anzahl
Global P_col=10,ID=1,mapName$
Global Jump,fy#
Dim p_IP(p_col)
Dim p_Name$(p_col)
Dim p_Port(p_col)
Dim p_x(p_col)
Dim p_y#(p_col)
Dim p_winkel(p_col)
Dim p_RI(p_col)
Dim p_MSG(p_col)
Dim SF(90)
Dim W(90)
Dim map(31,23)

SetFont(LoadFont("New Times Roman",13,0,0,0))
Print "ONLINE => SmILeY FigHTerS"
Print ""
Print "Lade daten ..."
Smiley = LoadAnimImage("gfx\Smiley.bmp",21,21,0,2):MaskImage Smiley,192,192,192:MidHandle Smiley:TFormFilter 2
Guns = LoadAnimImage("gfx\Guns.bmp",21,41,0,4):MaskImage Guns,180,180,180:MidHandle Guns
TileSet = LoadAnimImage("gfx\TileSet.bmp",25,25,0,3):MaskImage TileSet,255,0,255
BackGround = LoadImage("gfx\Background.bmp")
Pointer = LoadImage("gfx\Pointer.bmp"):MaskImage Pointer,255,0,255
Explosion = LoadAnimImage("gfx\Explosion30x30.bmp",30,30,0,64):MaskImage Explosion,0,0,0
Stuze = LoadAnimImage("gfx\Stutze.bmp",25,25,0,3):MaskImage Stuze,255,0,255
Print "--Figur"
Print "--Waffen"
Delay 100
For i = 0 To 90
   SF(i) = CopyImage(Smiley)
   W(i) = CopyImage(Guns)
   RotateImage SF(i),i*4
   RotateImage W(i),i*4
Next
FreeImage Smiley
FreeImage Guns
Print "--Map"
Delay 100
Read MapName
For y = 0 To 23
   For x = 0 To 31
      Read map(x,y)
   Next
Next
Print "Fertig ! Alle Daten geladen !"
Print "Map : "+MapName
Delay 2500
Print "(1) => HOST"
Print "(2) => JOIN"
Repeat
If KeyHit(1) Then End
If KeyHit(2) Then Server=1:Exit
If KeyHit(3) Then Server=0:Exit
Forever
If Server = 1
EmpfangPort = 8000
Print ">>> HOST"
Print "Gib bitte deinen Name ein !"
Delay 1000
FlushKeys()
p_name(1) = Input("(>)")
If p_name(1) = "" Then
Print "Du hast keinen Namen eingegeben ! Dein Name ist nun "+Chr(34)+"NoName"+Chr(34)+" !"
p_name(1) = "NoName"
EndIf
Delay 1000
Print "Okay...."
Print "Erstelle ein Spiel ..."
stream = CreateUDPStream(Port)
Delay 1000
If stream = 0 Then Color 255,0,0:Print "Spiel konnte nicht erstellt werden !":Delay 2000:End
Print "Spiel erstellt !"
Print "Warte auf andere Spieler..."
AppTitle "SmILeY FigHTerS -online- (Server)"
FlushKeys()
Repeat
If KeyHit(1) Then End
If RecvUDPMsg(stream) And ReadByte(stream) = 1
If ID < p_col
ID = ID + 1
p_Name(ID) = ReadString(stream)
p_IP(ID) = UDPMsgIP(stream)
p_Port(ID) = UDPMsgPort(stream)
Print p_name(ID)+" ist in dein Spiel eingetreten ! (ID : "+ID+"/IP : "+DottedIP(p_IP(ID))+"/Port : "+p_Port(ID)+")"
WriteByte(stream,1)
WriteInt(stream,ID)
WriteString(stream,p_name(1))
SendUDPMsg(stream,p_IP(ID),p_port(ID))
Delay 100
Else
pp = UDPMsgPort(stream)
pp2= UDPMsgIP(stream)
WriteByte stream,p_col+1
SendUDPMsg(stream,pp2,pp)
EndIf
EndIf
Until KeyHit(28)
anzahl = ID
ID = 1
For i = 2 To anzahl
WriteString(stream,"Los")
WriteInt(stream,anzahl)
For j = 1 To anzahl
WriteString(stream,p_name(j))
Next
SendUDPMsg(stream,p_IP(i),p_Port(i))
Next
Else
Print ">>> JOIN"
Print "Gib bitte die HOST-IP ein !"
Delay 1000
FlushKeys()
IpIp$ = Input("(>)")
If IpIp$ = "" Then IpIp$ = "127.0.0.1"
p_IP(1) = INT_IP(IpIp)
Print "Gib bitte deinen Name ein !"
Delay 1000
FlushKeys()
name$ = Input("(>)")
If name$ = "" Then
Print "Du hast keinen Namen eingegeben ! Dein Name ist nun "+Chr(34)+"NoName"+Chr(34)+" !"
name$ = "NoName"
EndIf
Delay 1000
FlushKeys()
Print "Verbinde mit Host ..."
stream = CreateUDPStream()
Delay 1000
If stream = 0 Then Color 255,0,0:Print "Verbindung konnte nicht aufgebaut werden !":Delay 2000:End
WriteByte(stream,1)
WriteString(stream,name$)
SendUDPMsg(stream,p_IP(1),Port)
Print "Warte auf Antwort ..."
Delay 1000
Repeat
If KeyHit(1) Then End
pp = RecvUDPMsg(stream)
Until pp <> 0
pp = ReadByte(stream)
If pp = 1 Then
ID = ReadInt(stream)
p_name(1) = ReadString(stream)
p_IP(1) = UDPMsgIP(stream)
p_name(ID)= name$
ElseIf pp = p_col+1
Color 255,0,0
Print "Zu viele Spieler !"
Delay 2000
End
EndIf
Print "Der Server hat geantwortet !"
Print "Name : "+p_name(1)
Delay 1000
Print "Warte auf Spielstart ..."
Delay 100
AppTitle "SmILeY FigHTerS -online- (Client)"
Repeat
If KeyHit(1) Then End
pp = RecvUDPMsg(stream)
Until pp <> 0 And ReadString(stream) = "Los"
anzahl = ReadInt(stream)
For i = 1 To anzahl
p_name(i) = ReadString(stream)
Next
EndIf
Print "Es geht los !"
If Server = 1 Then p_MSG(1) = 1
Timer = MilliSecs()
Repeat
ox = p_x(ID):oy = p_y(ID)
p_winkel(ID) = -ATan2(MouseX()-p_x(ID),MouseY()-p_y(ID))+180
If p_winkel(ID) < 0 Then p_winkel(ID) = 360
If p_winkel(ID) > 360 Then p_winkel(ID) = 0
If p_winkel(ID) => 0 And p_winkel(ID) < 180 Then p_RI(ID) = 0
If p_winkel(ID) => 180 And p_winkel(ID) <= 360 Then p_RI(ID) = 1
If KeyDown(30) Then p_x(ID) = p_x(ID) - 2
If KeyDown(32) Then p_x(ID) = p_x(ID) + 2
If KeyHit(17) And Jump < 2 Then Jump = Jump + 1:fy = 13
If Jump > 0 Then
fy = fy - 0.9
p_y(ID) = p_y(ID) - fy
Else
fy = fy + 0.9
p_y(ID) = p_y(ID) + fy
EndIf
If p_x(ID) <  10 Then p_x(ID) =  10
If p_x(ID) > 790 Then p_x(ID) = 790
For xx = 0 To 31
   For yy = 0 To 23
      DrawImage TileSet,xx*25,yy*25,map(xx,yy)
      If map(xx,yy) > 0
         If RectsOverlap(p_x(ID)-10,p_y(ID)-12,20,1,xx*25,yy*25,25,25) Then fy = 0:p_y(ID) = oy
         If RectsOverlap(p_x(ID)-10,p_y(ID)+12,20,1,xx*25,yy*25,25,25) Then Jump = 0:fy = 0:p_y(ID) = oy
         If RectsOverlap(p_x(ID)-12,p_y(ID)-10,1,20,xx*25,yy*25,25,25) Then p_x(ID) = ox
         If RectsOverlap(p_x(ID)+12,p_y(ID)-10,1,20,xx*25,yy*25,25,25) Then p_x(ID) = ox   
      EndIf
   Next
Next
If RecvUDPMsg(stream) <> 0
If ReadAvail(stream)
If Server = 1 Then
ID_ID = ReadInt(stream)
p_x(ID_ID) = ReadInt(stream)
p_y(ID_ID) = ReadInt(stream)
p_winkel(ID_ID) = ReadInt(stream)
p_RI(ID_ID) = ReadInt(stream)
p_MSG(ID_ID) = 1
Else
For i = 1 To anzahl
p_MSG(i) = ReadInt(stream)
If p_MSG(i) = 1
p_x(i) = ReadInt(stream)
p_y(i) = ReadInt(stream)
p_winkel(i) = ReadInt(stream)
p_RI(i) = ReadInt(stream)
EndIf
Next
EndIf
EndIf
EndIf

If timer <= MilliSecs() - 30 Then
If Server = 1
For i = 2 To anzahl
For j = 1 To anzahl
WriteInt(stream,p_MSG(j))
WriteInt(stream,p_x(j))
WriteInt(stream,p_y(j))
WriteInt(stream,p_winkel(j))
WriteInt(stream,p_RI(j))
SendUDPMsg(stream,p_IP(i),p_Port(i))
If j > 1 p_MSG(j) = 0
Next
Next
Else
WriteInt(stream,ID)
WriteInt(stream,p_x(ID))
WriteInt(stream,p_y(ID))
WriteInt(stream,p_winkel(ID))
WriteInt(stream,p_RI(ID))
SendUDPMsg(stream,p_IP(1),Port)
EndIf

timer = MilliSecs()
EndIf

For i = 1 To anzahl
DrawImage SF(p_winkel(i)/4),p_x(i),p_y(i),p_RI(i)
DrawImage W(p_winkel(i)/4),p_x(i),p_y(i),p_RI(i)
Color 255,0,0:Text p_x(i),p_y(i)-20,p_name(i),1,0:Color 255,255,255
Next

Flip
Cls
Until KeyHit(1)


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



.MapData

Data "Geometric"
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1


Troztdem kann iwie nur der HOST alle Daten fehlerfrei erkennen, der CLIENT aber net .... Warum ?

thx und mfg Crack93
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!
 

Dreamora

BeitragDo, Dez 20, 2007 9:22
Antworten mit Zitat
Benutzer-Profile anzeigen
Könntest du den Code endlich formatieren?
Falls nicht, möchte ich dich bitten, dass du dich alleine damit auseinander setzt, der grauselcode ist definitiv nicht akzeptabel bie der Länge des Codes
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

ToeB

BeitragDo, Dez 20, 2007 10:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay okay.... Hier hab ich mit mal 10 minuten beschäftigt :
Code: [AUSKLAPPEN]
Graphics 800,600,16,2
SetBuffer BackBuffer()

Global stream,server,Port = 7777,anzahl
Global P_col=10,ID=1,mapName$
Global Jump,fy#
Dim p_IP(p_col)
Dim p_Name$(p_col)
Dim p_Port(p_col)
Dim p_x(p_col)
Dim p_y#(p_col)
Dim p_winkel(p_col)
Dim p_RI(p_col)
Dim p_MSG(p_col)
Dim SF(90)
Dim W(90)
Dim map(31,23)

SetFont(LoadFont("New Times Roman",13,0,0,0))
Print "ONLINE => SmILeY FigHTerS"
Print ""
Print "Lade daten ..."
Print "--Images ..."
Delay 100
   Smiley = LoadAnimImage("gfx\Smiley.bmp",21,21,0,2):MaskImage Smiley,192,192,192:MidHandle Smiley:TFormFilter 2
   Guns = LoadAnimImage("gfx\Guns.bmp",21,41,0,4):MaskImage Guns,180,180,180:MidHandle Guns
   TileSet = LoadAnimImage("gfx\TileSet.bmp",25,25,0,3):MaskImage TileSet,255,0,255
   BackGround = LoadImage("gfx\Background.bmp")
   Pointer = LoadImage("gfx\Pointer.bmp"):MaskImage Pointer,255,0,255
   Explosion = LoadAnimImage("gfx\Explosion30x30.bmp",30,30,0,64):MaskImage Explosion,0,0,0
   Stuze = LoadAnimImage("gfx\Stutze.bmp",25,25,0,3):MaskImage Stuze,255,0,255
Print "--Figur"
Print "--Waffen"
Delay 100
   For i = 0 To 90
      SF(i) = CopyImage(Smiley)
      W(i) = CopyImage(Guns)
      RotateImage SF(i),i*4
      RotateImage W(i),i*4
   Next
   FreeImage Smiley
   FreeImage Guns
Print "--Map"
Delay 100
   Read MapName
   For y = 0 To 23
      For x = 0 To 31
         Read map(x,y)
      Next
   Next
Print "Fertig ! Alle Daten geladen !"
Print "Map : "+MapName
Delay 2500
Print "(1) => HOST"
Print "(2) => JOIN"

Repeat

If KeyHit(1) Then End
If KeyHit(2) Then Server=1:Exit
If KeyHit(3) Then Server=0:Exit

Forever


If Server = 1

      Print ">>> HOST"
      Print "Gib bitte deinen Name ein !"
      
   Delay 1000
   FlushKeys()
   
      p_name(1) = Input("(>)")
      
   If p_name(1) = "" Then
      Print "Du hast keinen Namen eingegeben ! Dein Name ist nun "+Chr(34)+"NoName"+Chr(34)+" !"
      p_name(1) = "NoName"
   EndIf
   
   Delay 1000
   
      Print "Okay...."
      Print "Erstelle ein Spiel ..."
   
   stream = CreateUDPStream(Port)
   Delay 1000
   
   If stream = 0 Then Color 255,0,0:Print "Spiel konnte nicht erstellt werden !":Delay 2000:End
   
      Print "Spiel erstellt !"
      Print "Warte auf andere Spieler..."
   AppTitle "SmILeY FigHTerS -online- (Server)"
   
   FlushKeys()
   
   Repeat
   
      If KeyHit(1) Then End
      If RecvUDPMsg(stream) And ReadByte(stream) = 1
         If ID < p_col
            ID = ID + 1
            p_Name(ID) = ReadString(stream)
            p_IP(ID) = UDPMsgIP(stream)
            p_Port(ID) = UDPMsgPort(stream)
               Print p_name(ID)+" ist in dein Spiel eingetreten ! (ID : "+ID+"/IP : "+DottedIP(p_IP(ID))+"/Port : "+p_Port(ID)+")"
            WriteByte(stream,1)
            WriteInt(stream,ID)
            WriteString(stream,p_name(1))
            SendUDPMsg(stream,p_IP(ID),p_port(ID))
            Delay 100
         Else
            pp = UDPMsgPort(stream)
            pp2= UDPMsgIP(stream)
            WriteByte stream,p_col+1
            SendUDPMsg(stream,pp2,pp)
         EndIf
      EndIf
      
   Until KeyHit(28)
   anzahl = ID
   ID = 1
   For i = 2 To anzahl
   
      WriteString(stream,"Los")
      WriteInt(stream,anzahl)
      For j = 1 To anzahl
         WriteString(stream,p_name(j))
      Next
      SendUDPMsg(stream,p_IP(i),p_Port(i))
      
   Next
   
   
Else

      Print ">>> JOIN"
      Print "Gib bitte die HOST-IP ein !"
      
   Delay 1000
   FlushKeys()
   
      IpIp$ = Input("(>)")
      
   If IpIp$ = "" Then IpIp$ = "127.0.0.1"
   p_IP(1) = INT_IP(IpIp)
   
       Print "Gib bitte deinen Name ein !"
   
   Delay 1000
   FlushKeys()
   
   name$ = Input("(>)")
   If name$ = "" Then
   
   Print "Du hast keinen Namen eingegeben ! Dein Name ist nun "+Chr(34)+"NoName"+Chr(34)+" !"
      name$ = "NoName"
   EndIf
   
   Delay 1000
   FlushKeys()
   
      Print "Verbinde mit Host ..."
   
   stream = CreateUDPStream()
   
   Delay 1000
   
   If stream = 0 Then Color 255,0,0:Print "Verbindung konnte nicht aufgebaut werden !":Delay 2000:End
   
   WriteByte(stream,1)
   WriteString(stream,name$)
   SendUDPMsg(stream,p_IP(1),Port)
   
      Print "Warte auf Antwort ..."
      
   Delay 1000
   
   Repeat
   
      If KeyHit(1) Then End
      pp = RecvUDPMsg(stream)
      
   Until pp <> 0
   
   pp = ReadByte(stream)
   If pp = 1 Then
      
      ID = ReadInt(stream)
      p_name(1) = ReadString(stream)
      p_IP(1) = UDPMsgIP(stream)
      p_name(ID)= name$
         
   ElseIf pp = p_col+1
      
      Color 255,0,0
      Print "Zu viele Spieler !"
      Delay 2000
      End
         
   EndIf
   
      Print "Der Server hat geantwortet !"
      Print "Name : "+p_name(1)
      
   Delay 1000
   
      Print "Warte auf Spielstart ..."
      
   Delay 100
   
   AppTitle "SmILeY FigHTerS -online- (Client)"
   
   Repeat
   
      If KeyHit(1) Then End
      pp = RecvUDPMsg(stream)
      
   Until pp <> 0 And ReadString(stream) = "Los"
   
   anzahl = ReadInt(stream)      
   
   For i = 1 To anzahl
      p_name(i) = ReadString(stream)
   Next
   
EndIf

   Print "Es geht los !"
   
   Timer = MilliSecs()
   
Repeat
   ox = p_x(ID):oy = p_y(ID)
   p_winkel(ID) = -ATan2(MouseX()-p_x(ID),MouseY()-p_y(ID))+180
   
   If p_winkel(ID) < 0 Then p_winkel(ID) = 360
   If p_winkel(ID) > 360 Then p_winkel(ID) = 0
   If p_winkel(ID) => 0 And p_winkel(ID) < 180 Then p_RI(ID) = 0
   If p_winkel(ID) => 180 And p_winkel(ID) <= 360 Then p_RI(ID) = 1
   
   If KeyDown(30) Then p_x(ID) = p_x(ID) - 2
   If KeyDown(32) Then p_x(ID) = p_x(ID) + 2
   
   If KeyHit(17) And Jump < 2 Then Jump = Jump + 1:fy = 13
   
   If Jump > 0 Then
      fy = fy - 0.9
      p_y(ID) = p_y(ID) - fy
   Else
      fy = fy + 0.9
      p_y(ID) = p_y(ID) + fy
   EndIf
   
   If p_x(ID) <  10 Then p_x(ID) =  10
   If p_x(ID) > 790 Then p_x(ID) = 790
   
   For xx = 0 To 31
      For yy = 0 To 23
         DrawImage TileSet,xx*25,yy*25,map(xx,yy)
         If map(xx,yy) > 0
            If RectsOverlap(p_x(ID)-10,p_y(ID)-12,20,1,xx*25,yy*25,25,25) Then fy = 0:p_y(ID) = oy
            If RectsOverlap(p_x(ID)-10,p_y(ID)+12,20,1,xx*25,yy*25,25,25) Then Jump = 0:fy = 0:p_y(ID) = oy
            If RectsOverlap(p_x(ID)-12,p_y(ID)-10,1,20,xx*25,yy*25,25,25) Then p_x(ID) = ox
            If RectsOverlap(p_x(ID)+12,p_y(ID)-10,1,20,xx*25,yy*25,25,25) Then p_x(ID) = ox   
         EndIf
      Next
   Next
   
   
   
   
   For i = 1 To anzahl
      DrawImage SF(p_winkel(i)/4),p_x(i),p_y(i),p_RI(i)
      DrawImage W(p_winkel(i)/4),p_x(i),p_y(i),p_RI(i)
      Color 255,0,0:Text p_x(i),p_y(i)-20,p_name(i),1,0:Color 255,255,255
   Next
   
   Flip
   Cls
   
Until KeyHit(1)


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



.MapData

Data "Geometric"
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 1,1,1,1,1,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,1,1,1,1,1
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,1,1,0,0,0,0,0,1,1,1,1,1,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Data 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1


(Ich hatte aber schon das senden und empfangen von Nachrichten rausgenommen,weil ich das nochmal von anfang an machen muss Wink )

thx und mfg Crack93
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

ToeB

BeitragDo, Dez 20, 2007 13:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Sry wegen Doppelpost :
Habs gelöst ! Es lag an folgender Zeile :
Code: [AUSKLAPPEN]
      If timer <= MilliSecs() - 30 Then
      If Server = 1
         For i = 2 To anzahl
            For j = 1 To anzahl
               WriteInt(stream,p_MSG(j))
               WriteInt(stream,p_x(j))
               WriteInt(stream,p_y(j))
               WriteInt(stream,p_winkel(j))
               WriteInt(stream,p_RI(j))
               SendUDPMsg(stream,p_IP(i),p_Port(i)) ;<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
            Next
         Next
      Else
         WriteInt(stream,ID)
         WriteInt(stream,p_x(ID))
         WriteInt(stream,p_y(ID))
         WriteInt(stream,p_winkel(ID))
         WriteInt(stream,p_RI(ID))
         SendUDPMsg(stream,p_IP(1),Port)
      EndIf
      timer = MilliSecs()
   EndIf


Es hätte so heißen müssen :

Code: [AUSKLAPPEN]
   If timer <= MilliSecs() - 30 Then
      If Server = 1
         For i = 2 To anzahl
            For j = 1 To anzahl
               WriteInt(stream,p_MSG(j))
               WriteInt(stream,p_x(j))
               WriteInt(stream,p_y(j))
               WriteInt(stream,p_winkel(j))
               WriteInt(stream,p_RI(j))
            Next
            SendUDPMsg(stream,p_IP(i),p_Port(i))
         Next
      Else
         WriteInt(stream,ID)
         WriteInt(stream,p_x(ID))
         WriteInt(stream,p_y(ID))
         WriteInt(stream,p_winkel(ID))
         WriteInt(stream,p_RI(ID))
         SendUDPMsg(stream,p_IP(1),Port)
      EndIf
      timer = MilliSecs()
   EndIf


mfg Crack93
Religiöse Kriege sind Streitigkeiten erwachsener Männer darum, wer den besten imaginären Freund hat.
Race-Project - Das Rennspiel der etwas anderen Art
SimpleUDP3.0 - Neuste Version der Netzwerk-Bibliothek
Vielen Dank an dieser Stelle nochmal an Pummelie, welcher mir einen Teil seines VServers für das Betreiben meines Masterservers zur verfügung stellt!

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group