Chat Problem
Übersicht

MatheBetreff: Chat Problem |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo Leute,
ich hab mich gestern den Ganzen Tag am Datenaustausch im Netz gespielt. Jetzt hab ich leider ein Problem der Client empfängt keine Nachrichten...... ich stell man den kompletten Code hierein... hab noch ein weiteres Probleme, wenn das Dim Feld Inhalt(15) komplett voll ist sollten alle Werte wieder auf 0 zurück gesetzt werden das Funktioniert leider nicht? Ich hoffe dass ihr mir helfen könnt mfg. Code: [AUSKLAPPEN] AppTitle "Server - Client [ProX]" Graphics 400,300,32,2 SetBuffer BackBuffer() Global timer = CreateTimer(30) ; Variablen Global XMaus,YMaus, Aktion, NetGame_Started, Name$, IP$, Host_Modus%, Server$, Nachricht$,I%, Darf_S%,Chat_Player Dim Inhalt$(15) ; Fonts Login() ; MainSchleife Repeat Cls WaitTimer(timer) ; Menue Zeichnen Menu_Z() Menu_Aktivieren() Aktion() Header_a() Flip Until KeyHit(1) Function Menu_Z() Host_NetChat$ = "Chat Hosten" Join_NetChat$ = "Chat Beitreten" End_Server_Client$ = "Chat Beenden" ; Text_Schreiben_Umranden Color 255,255,255 Text 400/2 - StringWidth(Host_NetChat)/2, 100, Host_NetChat Color 63,218,145 Rect 400/2 - StringWidth(Join_NetChat)/2-5, 100 - StringHeight(Join_NetChat), StringWidth(Join_NetChat)+10, 2*StringHeight(Join_NetChat) + StringHeight(Join_NetChat),0 Color 255,255,255 Text 400/2 - StringWidth(Join_NetChat)/2, 150, Join_NetChat Color 63,218,145 Rect 400/2 - StringWidth(Join_NetChat)/2-5, 150 - StringHeight(Join_NetChat), StringWidth(Join_NetChat)+10, 2*StringHeight(Join_NetChat) + StringHeight(Join_NetChat),0 Color 255,255,255 Text 400/2 - StringWidth(End_Server_Client$)/2, 200, End_Server_Client Color 63,218,145 Rect 400/2 - StringWidth(Join_NetChat)/2-5, 200 - StringHeight(Join_NetChat), StringWidth(Join_NetChat)+10, 2*StringHeight(Join_NetChat) + StringHeight(Join_NetChat),0 End Function Function Menu_Aktivieren() Join_NetChat$ = "Chat Beitreten" XMaus = MouseX() YMaus = MouseY() ; Umranden_Farbe_Ändern If XMaus <= 400/2 - StringWidth(Join_NetChat)/2-5 + StringWidth(Join_NetChat)+10 And XMaus >= 400/2 - StringWidth(Join_NetChat)/2-5 And YMaus <= 100 - StringHeight(Join_NetChat) + 2*StringHeight(Join_NetChat) + StringHeight(Join_NetChat) And YMaus >= 100 - StringHeight(Join_NetChat) Then Color 231,118,50 Rect 400/2 - StringWidth(Join_NetChat)/2-5, 100 - StringHeight(Join_NetChat), StringWidth(Join_NetChat)+10, 2*StringHeight(Join_NetChat) + StringHeight(Join_NetChat),0 EndIf If XMaus <= 400/2 - StringWidth(Join_NetChat)/2-5 + StringWidth(Join_NetChat)+10 And XMaus >= 400/2 - StringWidth(Join_NetChat)/2-5 And YMaus <= 150 - StringHeight(Join_NetChat) + 2*StringHeight(Join_NetChat) + StringHeight(Join_NetChat) And YMaus >= 150 - StringHeight(Join_NetChat) Then Color 231,118,50 Rect 400/2 - StringWidth(Join_NetChat)/2-5, 150 - StringHeight(Join_NetChat), StringWidth(Join_NetChat)+10, 2*StringHeight(Join_NetChat) + StringHeight(Join_NetChat),0 EndIf If XMaus <= 400/2 - StringWidth(Join_NetChat)/2-5 + StringWidth(Join_NetChat)+10 And XMaus >= 400/2 - StringWidth(Join_NetChat)/2-5 And YMaus <= 200 - StringHeight(Join_NetChat) + 2*StringHeight(Join_NetChat) + StringHeight(Join_NetChat) And YMaus >= 200 - StringHeight(Join_NetChat) Then Color 231,118,50 Rect 400/2 - StringWidth(Join_NetChat)/2-5, 200 - StringHeight(Join_NetChat), StringWidth(Join_NetChat)+10, 2*StringHeight(Join_NetChat) + StringHeight(Join_NetChat),0 EndIf ; Drauf_Klicken If MouseDown(1) And XMaus <= 400/2 - StringWidth(Join_NetChat)/2-5 + StringWidth(Join_NetChat)+10 And XMaus >= 400/2 - StringWidth(Join_NetChat)/2-5 And YMaus <= 100 - StringHeight(Join_NetChat) + 2*StringHeight(Join_NetChat) + StringHeight(Join_NetChat) And YMaus >= 100 - StringHeight(Join_NetChat) Then Aktion = 1 EndIf If MouseDown(1) And XMaus <= 400/2 - StringWidth(Join_NetChat)/2-5 + StringWidth(Join_NetChat)+10 And XMaus >= 400/2 - StringWidth(Join_NetChat)/2-5 And YMaus <= 150 - StringHeight(Join_NetChat) + 2*StringHeight(Join_NetChat) + StringHeight(Join_NetChat) And YMaus >= 150 - StringHeight(Join_NetChat) Then Aktion = 2 EndIf If MouseDown(1) And XMaus <= 400/2 - StringWidth(Join_NetChat)/2-5 + StringWidth(Join_NetChat)+10 And XMaus >= 400/2 - StringWidth(Join_NetChat)/2-5 And YMaus <= 200 - StringHeight(Join_NetChat) + 2*StringHeight(Join_NetChat) + StringHeight(Join_NetChat) And YMaus >= 200 - StringHeight(Join_NetChat) Then Aktion = 3 EndIf End Function Function Aktion() If Aktion = 1 And NetGame_Started = 0 Then Chat_Nr = HostNetGame(Name$) Chat_Player = CreateNetPlayer(Name$) Host_Modus = 1 Select Chat_Nr Case 1 Text 0,0, "NetzwerkChat konnte nicht gestartet werden" Case 2 Text 0,0, "NetzwerkChat wurde gestartet" End Select Flip Delay 500 NetGame_Started = 1 Chat() EndIf If Aktion = 2 Then IP_Server_Q() Join_Server() Chat() EndIf If Aktion = 3 Then End Aktion = 0 Return End Function Function Login() Name$ = Input("ChatName/ServerName: ") End Function Function IP_Server_Q() If Host_Modus = 0 Then Locate 0,0 Server$ = Input("ServerName: ") IP$ = Input("IP-Adresse: ") EndIf If Host_Modus = 1 Then Server$ = Name$ IP$ = "127.0.0.1" EndIf End Function Function Join_Server() If Hostmodus = 0 Then Join_Nr = JoinNetGame(Server,IP) Select Join_Nr Case 0 Text 0,0, "NetzwerkChat konnte nicht beigetreten werden" Case 1 Text 0,0, "NetzwerkChat beigetreten" End Select Flip Delay 500 Cls EndIf End Function Function Chat() Repeat Cls WaitTimer(timer) Nachricht() ; Der Chat / Nachricht Schicken If KeyHit(28) Then Inhalt(I) = Name$ + " --> " + Nachricht : I = I + 1 SendNetMsg 1, Nachricht, Chat_Player, 0 : Nachricht = "" EndIf While RecvNetMsg() = 1 Select NetMsgType() Case 100 Inhalt(I) = "ChatTeilnehmer " + NetPlayerName$(NetMsgFrom()) + " beigetreten" : I = I + 1 Case 101 Inhalt(I) = "Ein ChatTeilnehmer hat den Chat verlassen" : I = I + 1 Case 102 Inhalt(I) = "Host ausgetreten" : I = I + 1 Case 200 Inhalt(I) = "Verbindung abgebrochen" : I = I + 1 Default Inhalt(I) = NetPlayerName$(NetMsgFrom()) + " --> " + NetMsgData$() : I = I + 1 End Select Wend Text_Schreiben() Flip Until KeyHit(1) End Function Function Nachricht() Tasten_D = GetKey() If Darf_S = 0 And Tasten_D <= 256 And Tasten_D >= 32 Then Nachricht = Nachricht + Chr(Tasten_D) EndIf If Len(Nachricht) >= 40 Then Darf_S = 1 If Len(Nachricht) <= 40 Then Darf_S = 0 Color 255,255,255 Rect 0,270,400,30,0 Color 248,33,87 Text 0,280, Nachricht Return End Function Function Text_Schreiben() For Ix = 0 To 15 If Inhalt(Ix) > 0 Or Inhalt(Ix) > "" Then Text 0, Ix*15, Inhalt(Ix) Next If I = 15 Then Inhalt(I) = " " I = 0 EndIf End Function Function Header_a() AppTitle "Server_Client [ProX] --> " + Name End Function |
||
Windoof nein DANKE => ArchLinux ![]() |
Tritium |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Zu dem Array-Problem:
Code: [AUSKLAPPEN] If I = 15 Then
Inhalt(I) = " " I = 0 EndIf Das kann so nicht funktionieren. Zum einen setzt Du mit Inhalt(I) = " " nur den 15. Eintrag auf leer, da I in dem Moment immer 15 ist. Lass I in einer Schleife durchlaufen, damit es sich ändert. Übrigens wird Dein Array-Eintrag im Moment nicht leer, sondern voller Leerzeichen. Schreib "", und nicht " ", um den Eintrag vollständig zu leeren. |
||
Mathe |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hmmmmm..... okey danke das hab ich ganz übersehen... nur das die Nachrichten nicht ankommen das versteh ich nicht
aber trotzdem schon mal danke mfg. |
||
Windoof nein DANKE => ArchLinux ![]() |
Mathe |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
hat keiner eine Idee an was es liegen kann ![]() könnte es sein das Nachrichten die Verschickt werden nicht in eine Function weggeschickt werden können ![]() Hoffe auf Hilfe mfg. Matthias |
||
Windoof nein DANKE => ArchLinux ![]() |
Mathe |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Habe jetzt meinen Fehler gefunden...
als ich eine NetzwerkChat beitreten wollte hab ich vergessen einen NetPlayer zu generiere .... mfg. Matthias |
||
Windoof nein DANKE => ArchLinux ![]() |
Gast |
![]() Antworten mit Zitat |
|
---|---|---|
Achja, es ist hier nicht wirklich gern gesehn, wenn man einen TripplePost macht... | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group