Guten Abend,
ich möchte hier mein Lan-Script präsentieren . Damit ist es möglich einfach lan bzw multiplayer Spiele zu erstellen und da ich gerade ein multiplayer mit der irrlicht engine mache brauchte ich dieses script. Ich hoffe ihr habt noch Ideen oder verbesserungsvorschläge.
Spoiler anzeigen
#include <Array.au3>
[/autoit] [autoit][/autoit] [autoit]Global Const $Action_Host = 0
Global Const $Action_Join = 1
Global Const $PacketBuffer = 128
[/autoit] [autoit][/autoit] [autoit]Global $Host_Socket
[/autoit] [autoit][/autoit] [autoit]Global $IP_Host = @IPAddress1
[/autoit] [autoit][/autoit] [autoit]Global $Socket
[/autoit] [autoit][/autoit] [autoit]Func _server_start($iAction)
[/autoit] [autoit][/autoit] [autoit]TCPStartUp()
[/autoit] [autoit][/autoit] [autoit]If $iAction = $Action_Host Then
;Erstellt einen Socket
$Host_Socket = TCPListen($IP_Host, 65432, 100)
If $Host_Socket = -1 Then Return 0
;Wartet bis ein User gejoint hat
Do
$Socket = TCPAccept($Host_Socket)
Until $Socket >= 0
Return 1
Else
;Versucht eine Verbindung mit dem Host Server herzustellen
Local $IP_Join = InputBox("IP","Geben sie die Server IP ein")
For $trye = 1 To 10 Step 1
ToolTip("Beitretten... #" & 11 - $trye)
$Socket = TCPConnect($IP_Join, 65432 )
If $Socket <> -1 Then ExitLoop
Sleep(100)
Next
ToolTip("")
Return 1
EndIf
EndFunc
Func _Server_end()
TCPCloseSocket($Socket)
TCPShutdown()
EndFunc
Func _Server_send_receive($idata)
TCPSend($Socket, $idata)
If @error then Return 0
Return TCPRecv($Socket, $PacketBuffer, 1)
EndFunc
Func _create_lan_packet($iarray)
[/autoit] [autoit][/autoit] [autoit]Local $string
[/autoit] [autoit][/autoit] [autoit]For $i = 0 To UBound($iarray) - 1 Step 1
$string &= $iarray[$i] & "*"
Next
Return StringToBinary($String)
EndFunc
Func _decode_lan_packet($ipacket)
Return StringSplit(BinaryToString($ipacket), "*")
EndFunc
[/autoit]