Sure I can ;)
Sorry, it looks a bit ... un-organized ;)
There's a Notify directly in front of the Repeat/Forever loop. If I don't call Notify there, the loop won't be executed.
; Zeit speichern Local time1 = MilliSecs() ; Stream erstellen Local udp = CreateUDPStream(ServerPort) ; Request in den Stream schreiben WriteByte udp,$FF WriteByte udp,$FF WriteByte udp,$FF WriteByte udp,$FF WriteByte udp,$54 WriteByte udp,$53 WriteByte udp,$6F WriteByte udp,$75 WriteByte udp,$72 WriteByte udp,$63 WriteByte udp,$65 WriteByte udp,$20 WriteByte udp,$45 WriteByte udp,$6E WriteByte udp,$67 WriteByte udp,$69 WriteByte udp,$6E WriteByte udp,$65 WriteByte udp,$20 WriteByte udp,$51 WriteByte udp,$75 WriteByte udp,$65 WriteByte udp,$72 WriteByte udp,$70 WriteByte udp,$00 Local ServerIP% = INT_IP(IP) ; Nachricht an den Server schicken SendUDPMsg(udp,ServerIP,ServerPort) Local found = 0 ; WHEN NOT DOING THIS NOTIFY, ; THE Repeat/Forever LOOP ; WILL NOT BE EXECUTED. Notify "Klappt" Repeat ; Überprüfen ob es einen Timeout gibt If MilliSecs()-time1 > timeout Then Return 1 End If ; Überprüfen ob eine Nachricht eingetroffen ist If RecvUDPMsg(udp) Then ; TServerList Objekt erstellen Local a.TServerList ; Alle TServerList Einträge abfragen For a = Each TServerList ; Wenn es schon einen Eintrag für den ; abzufragenden Server gibt ... If a\IP$ = IP$ And a\Port = ServerPort Then ; found = 1 found = 1 ; -1 lesen a\server\OK = ReadInt(udp) ; Request auslesen a\server\Typ = ReadByte(udp) ; Protokollversion auslesen a\server\Version = ReadByte(udp) ; Hostname lesen a\server\Hostname = ReadZeroTerminatedString(udp) ; Map lesen a\server\Map = ReadZeroTerminatedString(udp) ; Spielverzeichnis lesen a\server\GameDirectory = ReadZeroTerminatedString(udp) ; Spielname lesen a\server\GameDescription = ReadZeroTerminatedString(udp) ; Spiel ID lesen a\server\AppID = ReadShort(udp) ; Anzahl der Spieler lesen a\server\NumPlayers = ReadByte(udp) ; MaxSpieler lesen a\server\MaxPlayers = ReadByte(udp) ; Anzahl der Bots lesen a\server\NumOfBots = ReadByte(udp) ; Server-Typ lesen a\server\Dedicated = ReadByte(udp) ; OS lesen a\server\OS = ReadByte(udp) ; Password lesen a\server\Password = ReadByte(udp) ; Server secure ? a\server\Secure = ReadByte(udp) ; Spielversion lesen a\server\GameVersion = ReadZeroTerminatedString(udp) ; Gerade gelesene Daten in die Felder eintragen SetGadgetText(txtGame,a\server\GameDescription) SetGadgetText(txtHost,a\server\Hostname) SetGadgetText(txtMap,a\server\Map) SetGadgetText(txtSpieler,a\server\NumPlayers + " von " + a\server\MaxPlayers) If a\server\NumOfBots = 0 Then SetGadgetText(txtBots,"Keine Bots") Else SetGadgetText(txtBots,a\server\NumOfBots + " Bots") End If If Chr(a\server\OS) = "l" Then SetGadgetText(txtOS,"Linux") ElseIf Chr(a\server\OS) = "w" Then SetGadgetText(txtOS,"Windows") End If If Chr(a\server\Dedicated) = "d" Then SetGadgetText(txtTyp,"Dedicated") ElseIf Chr(a\server\Dedicated) = "l" Then SetGadgetText(txtTyp,"Listen") ElseIf Chr(a\server\Dedicated) = "h" Then SetGadgetText(txtTyp,"HLTV") End If End If Next Forever
Sorry, it looks a bit ... un-organized ;)
There's a Notify directly in front of the Repeat/Forever loop. If I don't call Notify there, the loop won't be executed.