 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
Westbeam

Anmeldungsdatum: 22.12.2009 Beiträge: 760
|
Verfasst am: 02.12.2012, 13:21 Titel: TSNE_Play SendMSG Problem |
|
|
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?  |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 02.12.2012, 14:01 Titel: |
|
|
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 |
|
 |
Westbeam

Anmeldungsdatum: 22.12.2009 Beiträge: 760
|
Verfasst am: 02.12.2012, 14:19 Titel: |
|
|
Ohja, tatsächlich. Danke.  |
|
Nach oben |
|
 |
Westbeam

Anmeldungsdatum: 22.12.2009 Beiträge: 760
|
Verfasst am: 23.02.2013, 15:25 Titel: |
|
|
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 |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 23.02.2013, 15:28 Titel: |
|
|
versuch mal stat "chattext" ein "nachricht"
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 |
|
 |
Westbeam

Anmeldungsdatum: 22.12.2009 Beiträge: 760
|
Verfasst am: 23.02.2013, 15:33 Titel: |
|
|
Tut mir Leid, ich habe den Code nur kurz abgeschrieben, in meinem Code steht auch "nachricht", statt "chattext".
Funktioniere, du doofer Chat.  |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 23.02.2013, 15:35 Titel: |
|
|
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 |
|
 |
Westbeam

Anmeldungsdatum: 22.12.2009 Beiträge: 760
|
Verfasst am: 23.02.2013, 15:48 Titel: |
|
|
Mit dem neuen TSNEPlay kommen die Nachrichten auch beim Client an, nur im Server sehe ich sie nicht.  |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 23.02.2013, 15:52 Titel: |
|
|
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 |
|
 |
Westbeam

Anmeldungsdatum: 22.12.2009 Beiträge: 760
|
Verfasst am: 23.02.2013, 15:56 Titel: |
|
|
Code: | netzwerk = TSNEPlay_CreateServer(10, 1234, "Server", "", @TSNEPlay_ConnectionState, _
@TSNEPlay_Player_Connected, @TSNEPlay_Player_Disconnected, @TSNEPlay_Message, @TSNEPlay_Move, _
@TSNEPlay_Data) |
|
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 23.02.2013, 15:59 Titel: |
|
|
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 |
|
 |
Westbeam

Anmeldungsdatum: 22.12.2009 Beiträge: 760
|
Verfasst am: 23.02.2013, 16:00 Titel: |
|
|
Ist ja nicht so schlimm, Hauptsache der Client empfängt die Nachrichten.
Ich danke dir. |
|
Nach oben |
|
 |
ThePuppetMaster

Anmeldungsdatum: 18.02.2007 Beiträge: 1839 Wohnort: [JN58JR]
|
Verfasst am: 25.02.2013, 05:32 Titel: |
|
|
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 |
|
 |
|
|
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.
|
|