hi,
Ich bin gerade dabei einen multiplayer für das spiel Oblivion zu schreiben. ingame klapt auch alles nur bei der daten übertragung hängts grade
zum test wollte ich die spieler position aus einer ini auslesen und senden nur leider kommen von 6 gesendeten koordinaten nur eine an... und zwar PosX (siehe script)
Client
Spoiler anzeigen
TCPStartup()
[/autoit] [autoit][/autoit] [autoit]$SO = TCPConnect("192.168.2.103", 65432)
If $SO = -1 Then
MsgBox(0,"Error","Verbinden fehlgeschlagen")
Exit
Else
While 1
$PosX = IniRead("C:\Users\Geithe\Documents\My Games\Oblivion\Pluggy\User Files\PlayerPos.ini","Position","PosX","NONE")
$PosY = IniRead("C:\Users\Geithe\Documents\My Games\Oblivion\Pluggy\User Files\PlayerPos.ini","Position","PosY","NONE")
$PosZ = IniRead("C:\Users\Geithe\Documents\My Games\Oblivion\Pluggy\User Files\PlayerPos.ini","Position","PosZ","NONE")
$RotaX = IniRead("C:\Users\Geithe\Documents\My Games\Oblivion\Pluggy\User Files\PlayerPos.ini","Position","RotaX","NONE")
$RotaY = IniRead("C:\Users\Geithe\Documents\My Games\Oblivion\Pluggy\User Files\PlayerPos.ini","Position","RotaY","NONE")
$RotaZ = IniRead("C:\Users\Geithe\Documents\My Games\Oblivion\Pluggy\User Files\PlayerPos.ini","Position","RotaZ","NONE")
TCPSend($SO,"PosX||" & $PosX)
TCPSend($SO,"PosY||" & $PosY)
TCPSend($SO,"PosZ||" & $PosZ)
TCPSend($SO,"RotaX||" & $RotaX)
TCPSend($SO,"RotaY||" & $RotaY)
TCPSend($SO,"RotaZ||" & $RotaZ)
WEnd
EndIf
TCPShutdown()
[/autoit]Server
Spoiler anzeigen
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Show Pos", 397, 187)
$Group1 = GUICtrlCreateGroup("Pos", 8, 8, 185, 169)
$Label1 = GUICtrlCreateLabel("Pos X", 32, 40, 32, 17)
$Label2 = GUICtrlCreateLabel("Pos Y", 32, 80, 32, 17)
$Label3 = GUICtrlCreateLabel("Pos Z", 32, 120, 32, 17)
$Label7 = GUICtrlCreateLabel("Label7", 82, 40, 98, 17)
$Label8 = GUICtrlCreateLabel("Label8", 82, 80, 98, 17)
$Label9 = GUICtrlCreateLabel("Label9", 82, 120, 98, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group2 = GUICtrlCreateGroup("Rota", 200, 8, 185, 169)
$Label4 = GUICtrlCreateLabel("Rota X", 224, 40, 37, 17)
$Label5 = GUICtrlCreateLabel("Rota Y", 224, 80, 37, 17)
$Label6 = GUICtrlCreateLabel("Rota Z", 224, 120, 37, 17)
$Label10 = GUICtrlCreateLabel("Label10", 270, 40, 98, 17)
$Label11 = GUICtrlCreateLabel("Label11", 270, 80, 98, 17)
$Label12 = GUICtrlCreateLabel("Label12", 270, 120, 98, 17)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
TCPStartup()
$ip = "192.168.2.103" ;Server IP (seine eigene)
$port = 65432
$socket = TCPListen($ip,$port)
$PosX = "NONE"
$PosY = "NONE"
$PosZ = "NONE"
$RotaX = "NONE"
$RotaY = "NONE"
$RotaZ = "NONE"
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
TCPShutdown()
Exit
EndSwitch
$con = TCPAccept($socket)
If $con >= 0 Then
$rec = ""
$rec &= TCPRecv($con,256)
$APos = StringSplit($rec,"||",0)
If Not @error Then
If $APos[1] = "PosX" Then
$PosX = $APos[3]
ElseIf $APos[1] = "PosY" Then
$PosY = $APos[3]
ElseIf $APos[1] = "PosZ" Then
$PosZ = $APos[3]
ElseIf $APos[1] = "RotaX" Then
$RotaX = $APos[3]
ElseIf $APos[1] = "RotaY" Then
$RotaY = $APos[3]
ElseIf $APos[1] = "RotaZ" Then
$RotaZ = $APos[3]
EndIf
EndIf
EndIf
GUICtrlSetData($Label7,$PosX)
GUICtrlSetData($Label8,$PosY)
GUICtrlSetData($Label9,$PosZ)
GUICtrlSetData($Label10,$RotaX)
GUICtrlSetData($Label11,$RotaY)
GUICtrlSetData($Label12,$RotaZ)
WEnd
TCPShutdown()
ini
Spoiler anzeigen
auserdem sendet es die PosX auch nur ein mal
help plz