Problem mit erneutem Joinen von UDP-Spielen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Apprauuuu

Betreff: Problem mit erneutem Joinen von UDP-Spielen

BeitragFr, Aug 25, 2006 23:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!

Also ich habe ein ziemliches Problem mit meinem UDP-basierenden Spiel LOL³Fighters....
Das ist ja so,
dass durch ne Lobby ein Spieler die IP eines Spielers,
der ein Spiel geöffnet hat erhält und dann halt joint....

Das alles funktioniert auch wunderbar!
Nur wenn ein Spiel gespielt wurde und wieder beide Spieler in die Lobby kommen (der UPD-Stream der beiden Clients wird wieder geschlossen, da die Lobby über nen Server mit TCP läuft) und man noch einmal ein Spiel des selben Hosters joinen will, macht der Probleme....
(da passiert gar nichts mehr bzw. der Spieler kann nicht mehr joinen, da der Hoster einfach keine Nachricht von dem Joiner bekommt...)


Hier mal der Code für das Erstellen des Hosts:


Code: [AUSKLAPPEN]

stream=CreateUDPStream(6112)            
If check_stream()=0 Then menue_lobby()                        
port=UDPStreamPort(stream)                                                            



Und hier der Code zum joinen: (Ip des Hosts schon bekannt):

Code: [AUSKLAPPEN]

port=6112                                    
stream=CreateUDPStream()
port2=UDPStreamPort(stream)         
name$ = namenseingabe$                                 
WriteByte stream, 0                        
WriteLine stream, name$                     
WriteInt stream, ipint(ip$)                  
SendUDPMsg (stream, ipint(ip$), port)         
timer=MilliSecs()                        
Repeat                                 
   If MilliSecs()-timer > timeout*1500 Then                     
      menue_lobby()                        
   EndIf                              
   If RecvUDPMsg(stream) Then               
      If ReadAvail(stream) Then            
         If ReadByte(stream)=1 Then         
            id=ReadByte(stream)            
            pl_ip(id)=ReadInt(stream)
            pl_port(id)=port2            
            Exit                     
         EndIf                        
      EndIf                           
   EndIf                              
Forever


Am Ende eines Spiels benutze ich dann einfach den Befehl "Closeudpstream"

Aber wie gesagt funktioniert das alles beim zweiten mal nicht mehr, weil immer noch der stream belegt ist oder keine Ahnung warum!
Ich hoffe mir kann hier einer helfen...

PS: Wenn ich das offline teste, dann funzt das alles...
Arbeitsstand:
Umprogrammierung von LOL³Warriors und LOL³Fighters in Bmax...
LOL³Fighters wird spielerisch noch mal ordentlich aufpoliert, um es Ligatauglich zu machen (zumindest für private Funligen von mir ^^)

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group