Wiederholtes Senden von Nachrichten
Übersicht

![]() |
ZaPBetreff: Wiederholtes Senden von Nachrichten |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hiho!
Ich habe ein kleines Testprogramm gemacht, was eine Netzwerkverbindung zwischen Host und Client herstellen soll. Das ganze läuft über DirectPlay und dem WHO IS? prinzip (Wenn jemand sich den Spiel anschliesst, sendet er "WHOIS" und bekommt von allen auf dem Server "IMHERE" zurückgesendet, so bekomme ich leicht die IDs ^^.) Funktioniert alles, nur dass die WHOIS Nachricht immerwieder versendet wird, und ich kann mir nicht erklären wieso... Hier der Code, man kann das Programm testweise 2mal starten: (Die variable MPGS heißt ausgeschrieben "MultiPlayerGameStarted") Code: [AUSKLAPPEN] Graphics 320,200,16 SetBuffer = BackBuffer() MyID=Rnd(10000,99999) CurYText = 0 MPGS = 0 MyFont = LoadFont("Arial", 12) NPLAYERS = 0 While Not KeyDown(1) ;Flip If CurYText > 15*12 CurYText = 0 FreeFont(MyFont) MyFont = LoadFont("Arial", 12) EndIf If KeyDown(36) If JoinNetGame("test","localhost") = 1 MPGS = 1 CreateNetPlayer("client" + MyID) NPLAYERS = NPLAYER+1 SendNetMsg(100,"_WHOIS",MyID,0,1) SetFont MyFont Text 0,CurYText,"NetAktivity: game joined, sending WHOIS..." CurYText = CurYText + 12 EndIf EndIf If KeyDown(35) If HostNetGame("test") = 2 MPGS = 1 CreateNetPlayer("host") NPLAYERS = NPLAYER+1 SetFont MyFont Text 0,CurYText,"NetAktivity: game hosted." CurYText = CurYText + 12 EndIf EndIf If KeyDown(47) SetFont MyFont Text 0,CurYText,"Debug: MPlayerGameStarted = " + MPGS CurYText = CurYText + 12 EndIf If MPGS <> 0 If RecvNetMsg() Then msgFrom = NetMsgFrom() msgFromName$ = NetPlayerName(msgFrom) If NetMsgType() = 100 CreateNetPlayer(msgFromName$) NPLAYERS = NPLAYER+1 SendNetMsg(Rnd(1,99),"_IMHERE",MyID,msgFrom,1) SetFont MyFont Text 0,CurYText,"NetAktivity: " + msgFromName$ + " joined." CurYText = CurYText + 12 EndIf If NetMsgData$() = "_IMHERE" CreateNetPlayer(msgFromName$) NPLAYERS = NPLAYER+1 SetFont MyFont Text 0,CurYText,"NetAktivity: A player has been detected." CurYText = CurYText + 12 EndIf EndIf EndIf Wend StopNetGame() End |
||
Starfare: Worklog, Website (download) |
![]() |
Smokie |
![]() Antworten mit Zitat ![]() |
---|---|---|
änder keydown(36) ma zu keyhit(36) um, dann sollte es gehen.
Grüße SMokie |
||
M-Soft Studios Mit selbst gemachtem Forum!!!
Unbequem lebt's sich schwer. Musik macht erst Spaß, wenn man sie mit 2,8 facher Geschwindigkeit hört Zuletzt bearbeitet von Smokie am Fr Jan 01, 1888 51:58 PM, insgesamt 1000-mal bearbeitet |
![]() |
ZaP |
![]() Antworten mit Zitat ![]() |
---|---|---|
Nein, das Problem besteht weiterhin.. | ||
Starfare: Worklog, Website (download) |
![]() |
ZaP |
![]() Antworten mit Zitat ![]() |
---|---|---|
Weiß denn niemand eine Antwort? | ||
Starfare: Worklog, Website (download) |
Dreamora |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Doppelposting = trash, das hier ist eine ausnahme
DirectPlay hat seine Maken und ist für ein Spiel ohnehin nicht zu gebrauchen. Es ist von daher kaum jemand hier der dir mit diesem recht nutzlosen Teil von Blitz helfen kann fürchte ich. Nutz GNet oder sonst etwas, was UDP nutzt. Kannst auch KNetLib nehmen (suche im newsboard) |
||
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen. |
![]() |
ZaP |
![]() Antworten mit Zitat ![]() |
---|---|---|
mehr wollte ich nicht wissen =), danke. | ||
Starfare: Worklog, Website (download) |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group