Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

TSNE_Play SendMSG Problem

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Westbeam



Anmeldungsdatum: 22.12.2009
Beiträge: 760

BeitragVerfasst am: 02.12.2012, 13:21    Titel: TSNE_Play SendMSG Problem Antworten mit Zitat

Hay

Ich habe hier einen kleinen Client und einen Server mit TSNE_Play geschaffen. Der Client soll dem Server pro Schleifendurchlauf die Koordinaten des Spielers senden. Beim Server kommen die Daten allerdings nicht an. Die Schleife des Clients sieht so aus:
Code:
Do
   Sleep 1,1
   If playermove=1 Then 'Bewegt sich der Spieler?
      'Wenn ja, dann Koordinaten senden
      TSNEPlay_SendMSG(0,Str(EntityX(cam)))
      TSNEPlay_SendMSG(0,Str(EntityY(cam)))
      TSNEPlay_SendMSG(0,Str(EntityZ(cam)))
   End If
Loop Until Inkey=Chr(27)

EntityX,EntityY und EntityZ sind die Koordinaten des Spielers.

Der Server sieht so aus:
Code:
netzwerk = TSNEPlay_CreateServer(10, 1234, "Server", "", @TSNEPlay_ConnectionState, _
           @TSNEPlay_Player_Connected, @TSNEPlay_Player_Disconnected, @TSNEPlay_Message, @TSNEPlay_Move, _
           @TSNEPlay_Data)
If netzwerk <> TSNEPlay_NoError Then Print "[ERROR] "; TSNEPlay_Desc_GetGuruCode(netzwerk): End -1

Dim As TSNEPlay_State_Enum TState, TStateL
Dim tot As Double = Timer() + 10

Do Until Inkey=Chr(27)
   TState = TSNEPlay_Connection_GetState
   If TStateL <> TState Then
    TStateL = TState
    Select Case TState
      Case TSNEPlay_State_Disconnected, TSNEPlay_State_Ready: Exit Do
    End Select
   End If
   Sleep 1,1
   If tot < Timer() Then Exit Do
Loop

TState = TSNEPlay_Connection_GetState
If TState <> TSNEPlay_State_Ready Then
   Print "Verbindung zum Server fehlgeschlagen!"
   End -1
Else
   Print "Verbindung erfolgreich"
End If

Do
  Sleep 1,1
Loop Until Inkey = Chr(27)

Sobald der Client die Daten sendet, gibt der Server in der Schleife allerdings nur "Nachricht von : " aus. Die Sub, welche die Datenwiedergabe ausgeben tut, sieht beim Server so aus:

Code:
Sub TSNEPlay_Message(Byval von As Uinteger, Byval nachricht As String,Byval typ As TSNEPlay_MessageType_Enum)
  Print "Nachricht von "&": "&nachricht
End Sub

Eigentlich sollte die Nachricht "Nachricht von : 0" heißen. Die Koordinaten kommen leider nicht beim Server an. Weiß da jemand Rat? lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 02.12.2012, 14:01    Titel: Antworten mit Zitat

du missverstehst das commando.

TSNEPlay_SendMSG ist da um >Nachrichten< zu senden. Sprich, realen Text .. PN, Messages, Spieler-Kommunikation, chat, ...

zum übertragung von koordinaten gibt es da ein

Code:
Function TSNEPlay_SendMove(V_ToPlayerID as UInteger, V_NewPositonX as Double = 0, V_NewPositonY as Double = 0, V_NewPositonZ as Double = 0, ByVal V_SubData as UInteger = 0) as TSNEPlay_GURUCode


hier kommen dann auch die daten über das:
Code:

Sub TSNEPlay_Move(ByVal V_FromPlayerID as UInteger, ByVal V_ToPlayerID as UInteger, ByVal V_NewPositionX as Double, ByVal V_NewPositionY as Double, ByVal V_NewPositionZ as Double, ByVal V_SubData as UInteger)
'Print "[BEWEGUNG]   Von PlayerID:"; V_FromPlayerID; "   Fuer PlayerID:"; V_ToPlayerID; "   Position (X/Y/Z):"; V_NewPositionX; " "; V_NewPositionY; " "; V_NewPositionZ; "   SubData:"; V_SubData
End Sub


an.


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Westbeam



Anmeldungsdatum: 22.12.2009
Beiträge: 760

BeitragVerfasst am: 02.12.2012, 14:19    Titel: Antworten mit Zitat

Ohja, tatsächlich. Danke. lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Westbeam



Anmeldungsdatum: 22.12.2009
Beiträge: 760

BeitragVerfasst am: 23.02.2013, 15:25    Titel: Antworten mit Zitat

Jetzt brauche ich allerdings wirklich SendMSG für meinen Chat. Die Nachricht kommt beim Server nie an, lediglich die Information von wem die Nachricht stammt. Der Code vom Server dafür
Code:
Sub TSNEPlay_Message(Byval von As Uinteger, Byval nachricht As String,Byval typ As TSNEPlay_MessageType_Enum)
  Print "Nachricht von " & von & ": " & nachricht
End Sub

erzeugt die Ausgabe "Nachricht von 2:"
Der Code vom Client
Code:
Sub TSNEPlay_Message(Byval von As Uinteger, Byval nachricht As String,Byval typ As TSNEPlay_MessageType_Enum)
   Draw String (10,10),Str(von)+": "+nachricht
End Sub

erzeugt die Ausgabe "2:"

Zum Senden der Nachricht nutze ich den Code hier:
Code:
TSNEPlay_SendMsg(0,chattext)


Zuletzt bearbeitet von Westbeam am 23.02.2013, 15:33, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 23.02.2013, 15:28    Titel: Antworten mit Zitat

versuch mal stat "chattext" ein "nachricht" Zunge rausstrecken

Code:
Sub TSNEPlay_Message(Byval von As Uinteger, Byval nachricht As String,Byval typ As TSNEPlay_MessageType_Enum)
   Draw String (10,10),Str(von)+": "+nachricht
End Sub



MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Westbeam



Anmeldungsdatum: 22.12.2009
Beiträge: 760

BeitragVerfasst am: 23.02.2013, 15:33    Titel: Antworten mit Zitat

Tut mir Leid, ich habe den Code nur kurz abgeschrieben, in meinem Code steht auch "nachricht", statt "chattext". zwinkern

Funktioniere, du doofer Chat. neutral
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 23.02.2013, 15:35    Titel: Antworten mit Zitat

schau mal pls, ob du die aktuelle tsneplay hast... in der alten gabs da n fehler bei textnachrichten mit einer lenge von <= 4.

aber, du kannst es mit
TSNEPlay_SendMsg(0, "TESTTEST")
versuchen. wenn das geht, aber
TSNEPlay_SendMsg(0, "ABC")
nicht, dann hast du noch ne alte version mit diesem Bug.


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Westbeam



Anmeldungsdatum: 22.12.2009
Beiträge: 760

BeitragVerfasst am: 23.02.2013, 15:48    Titel: Antworten mit Zitat

Mit dem neuen TSNEPlay kommen die Nachrichten auch beim Client an, nur im Server sehe ich sie nicht. neutral
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 23.02.2013, 15:52    Titel: Antworten mit Zitat

also, wenn Move und data ereignisse beim localem clienten (server-client) ankommen, dann sollte das msg auch ankommen. Wenn nicht, dann stimmt was nicht mit dem pointer auf die empfangs-structur.

kannst du mal deine "TSNEPlay_CreateServer()" posten?


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Westbeam



Anmeldungsdatum: 22.12.2009
Beiträge: 760

BeitragVerfasst am: 23.02.2013, 15:56    Titel: Antworten mit Zitat

Code:
netzwerk = TSNEPlay_CreateServer(10, 1234, "Server", "", @TSNEPlay_ConnectionState, _
           @TSNEPlay_Player_Connected, @TSNEPlay_Player_Disconnected, @TSNEPlay_Message, @TSNEPlay_Move, _
           @TSNEPlay_Data)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 23.02.2013, 15:59    Titel: Antworten mit Zitat

hmmmm .... kurios ... normaler weise sollte das schon funzen.
muss ich mir mal genauer ansehen.

PS: netzwerk is der Return GuruCode vom funktionsaufruf.


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Westbeam



Anmeldungsdatum: 22.12.2009
Beiträge: 760

BeitragVerfasst am: 23.02.2013, 16:00    Titel: Antworten mit Zitat

Ist ja nicht so schlimm, Hauptsache der Client empfängt die Nachrichten. zwinkern
Ich danke dir.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 25.02.2013, 05:32    Titel: Antworten mit Zitat

Noch als Anmerkung. Eine "0" am Ende hat Westbeam's Problem gelöst.

Code:

..., @TSNEPlay_Move, @TSNEPlay_Data, 0)



MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz