Lanmenü proplem
Übersicht

JanKBetreff: Lanmenü proplem |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Also ich wollte ein Lanmenü Programmieren.
Nur leider funktioniert es nich so ganz ![]() Fehler: Also wenn ich erst den Clientmodus auf einem beliebigen PC starte und dann die IP des Servers eintrage(!der Server is noch net Online!) und ich dann erst den Server starte, dann passt alles. Doch wenn ich in der RICHTIGEN Reihenfolge mache gehts net ![]() --------------------------------- Ich hoff ihr kapiert den Fehler^^ Hier der Code Code: [AUSKLAPPEN] ;Neues Menü ;----------------------------------[-Haupteinstellungen-]------------------------------- Global Sc_high = 768 ;|->Bildschirm höhe Global Sc_breit = 1024 ;|->Bildschirmbreite GRAPHICS Sc_breit,Sc_high,32,1 ;| Setbuffer Backbuffer() ;| ;--------------------------------------------------------------------------------------- ;---------------------------------[-Variabeln-]----------------------------------------- CONST NAMETYPE = 1 ;|->Die Constanten für den Nachrichten Code Type Client Field IP,Normip Field Name$ End Type Global Client.Client = New Client Global Modus ;|->Modus 0 = Host; Modus 1 = Client Type Server Field Name$ Field Normip$,IP End Type Global Server.Server = New Server Dim Port(1) ;|->Nr 0 = Server port; 1 = Client Port(0) = 9000 :Port(1) = 8000 Global Netstream ;|->Der Stream der auch im Spiel verwendet wird Global Hintergrund = Loadimage("Hintergrund.png") Global Testvar ;-------------------------------------------------------------------------------------- ;--------------------------------[-Modus auswahl-]------------------------------;| Print "1 drücken, um ein Spiel zu hosten" ;| Print "2 drücken, um einem Spiel beizutreten" ;| Repeat ;| If Keyhit(2) then Modus = 0 : Exit ;|->Modus auf 1 setzen und schleife verlassen If Keyhit(3) Then Modus = 1 :Exit ;|->Modus auf 2 und Schleife verlassen Forever ;| ;-------------------------------------------------------------------------------;| Flushkeys Select Modus Case 0 ;--------------[-Hauptschleife für 0 Modus-]------------- Netstream = CreateUDPStream(Port(Modus)) ;|Stream erstellen Server\Name$ = Input("Bitte einen Nickname eingeben: ") ;|Nickname eintragen Takt=CreateTimer(50) Repeat Cls Menuemalen() Nachrichtenempfangen() Listplayers() Sendstatus() Text 400,400,Rnd(2,200) Flip Waittimer(Takt) Until Keyhit(1) End ;-------------------------------------------------------- Case 1 ;--------------[-Hauptschleife für 1 Modus-]------------- Netstream = CreateUDPStream(Port(Modus)) ;|Stream erstellen Client\Name$ = Input("Bitte einen Nickname eingeben: ") ;|Nickname eintragen Server\Normip$ = Input("Bitte geben sie jetzt die Serverip ein: ") Server\IP = IntegerIP(Server\Normip$) Takt=CreateTimer(50) Repeat Cls Menuemalen() Nachrichtenempfangen() Listplayers() Sendstatus() Flip Waittimer(Takt) Until Keyhit(1) End End SElect ;-------------------------------------------------------- ;-----------------------[-Functionen-]------------------------ Function Menuemalen() Drawimage Hintergrund,0,0 ;|Hintergrund malen Text 100,200,"Modus: "+ Modus Text 100,220,"Port: " + Port(Modus) End Function ;******************************** Function Nachrichtenempfangen() Select Modus Case 0 Nachricht = RecvUDPMsg(Netstream) If Nachricht <> 0 then If Len(Client\Name$) = 0 then ;|->Wenn die Client Ip is nich 0 N_Type = Readbyte(Netstream) Select N_Type Case 1 ;|->Spieler name Client\Name$ = Readstring$(Netstream) Case 2 End End Select else Client\IP =UDPMSGIP (Netstream) End if End if Case 1 Nachricht = RecvUDPMsg(Netstream) Text 40,40, Nachricht If Nachricht <> 0 then N_Type = Readbyte(Netstream) Select N_Type Case NAMETYPE ;|->Spieler name Server\Name$ = Readstring$(Netstream) End Select End if End SElect End Function ;******************************** Function Listplayers() Select Modus Case 0 Text 10,270,Server\Name$ + "-" text 10,330,Client\Name$ + "-" Case 1 text 10,270,Server\Name$ + "-" Text 10,330,Client\Name$ + "-" End Select End Function ;******************************** Function Sendstatus() ;Function in der später alles übertragen wird z.B. Spieler Typ usw. Select Modus Case 0 Writebyte (Netstream,NAMETYPE) Writestring(Netstream,Server\Name$) SendUDPMsg Netstream,Client\IP,Port(1) Case 1 Writebyte (Netstream,NAMETYPE) Writestring(Netstream,Client\Name$) SendUDPMsg Netstream,Server\IP,Port(0) End Select End Function ;********************************* Function IntegerIP(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 |
||
Ich habe keine Zeit, mich zu beeilen.
The Pollux Conflict || The Pollux Renegades || Lipstick-live.de |
JanK |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
ok habs scho ![]() |
||
Ich habe keine Zeit, mich zu beeilen.
The Pollux Conflict || The Pollux Renegades || Lipstick-live.de |
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group