Yea men.. I found the source..
If anyone can fix the problem that the program stuck at the end of the bar many ppl will be very happy I think :D
I tried to run the script and I allways got an disconnect..
Tried both the script and the normal Fuse program..
Code:
#include <GUIConstants.au3>
#include <GUIListView.au3>
#include <EditConstants.au3>
#include <String.au3>
;Zeug
$wintitel = "Fuse-O-Mat v1.1"
$fusen = False
$fertig = True
$alle = false
;Load from Ini
$alchemy_packet = IniRead("settings.ini","opcodes","alchemy","")
$result_packet = IniRead("settings.ini","opcodes","result","")
$invupdate_packet = IniRead("settings.ini","opcodes","inventory_update","")
$slotclean_packet = IniRead("settings.ini","opcodes","slot_clean","")
;GUI
$fenster = GUICreate(""&$wintitel,300,400)
GUICtrlCreateLabel("Fuse bis +",20,20)
$plus_combo = GUICtrlCreateCombo("01",75,18,40,20)
GUICtrlSetData(-1, "02|03|04|05|06|07|08|09|10")
$start_btn = GUICtrlCreateButton("Start",20,50,100,40)
GUICtrlCreateLabel("Elexiere übrig: ",20,100)
$elexiere_box = GUICtrlCreateInput("n/a",150,100,30,20,$ES_ReadOnly)
GUICtrlCreateLabel("Lucky Powder übrig: ",20,120)
$powder_box = GUICtrlCreateInput("n/a",150,120,30,20,$ES_ReadOnly)
$leiste = GUICtrlCreateProgress(20,150,260,20)
$liste = GUICtrlCreateListView("Log",10,180,280,210)
_GUICtrlListView_SetColumnWidth($liste,0,250)
$header = HWnd(_GUICtrlListView_GetHeader($liste))
ControlDisable($fenster, "", $header)
GUICtrlCreateListViewItem(@HOUR&":"&@MIN&":"&@SEC&" - Tool gestartet...",$liste)
GUISetState()
WinSetOnTop(""&$wintitel,"",1);
;connect to phCOnnector
TCPStartUp()
$socket = TCPConnect("127.0.0.1", 22580)
If $socket > 0 then
GUICtrlCreateListViewItem(@HOUR&":"&@MIN&":"&@SEC&" - Connected to phConnector...",$liste)
_GUICtrlListView_Scroll($liste,0,20)
Else
GUICtrlCreateListViewItem(@HOUR&":"&@MIN&":"&@SEC&" - Connection Error!!!",$liste)
_GUICtrlListView_Scroll($liste,0,20)
Sleep(1000)
Exit
EndIf
While 1
$recv = ReadPacket()
$msg = GUIGetMsg()
If $recv<>"" then
$size = Dec(StringMid($recv, 3, 2) & StringMid($recv, 1, 2))
$opcode = StringMid($recv, 7, 2) & StringMid($recv, 5, 2)
$data = StringMid($recv, 13)
BeginParse($data, $size)
;If $opcode = "B150" then ;Alchemy Result
If $opcode = $result_packet then
$ok = ParseByte() ;->01
if $ok= "01" then
$dummy = ParseByte() ;->02
$dummy = ParseByte() ;->01
$iPos = ParseByte() ;->11
$dummy = ParseDWord() ; 00 00 00 00
$iId = ParseDWord() ;
Global $plus = ParseByte() ;->01
GUICtrlCreateListViewItem(@HOUR&":"&@MIN&":"&@SEC&" - Item ist +"&$plus, $liste)
_GUICtrlListView_Scroll($liste,0,20)
If $plus = GUICtrlRead($plus_combo) then
GUICtrlCreateListViewItem(@HOUR&":"&@MIN&":"&@SEC&" - Gewünsches + erreicht!", $liste)
_GUICtrlListView_Scroll($liste,0,20)
GUICtrlSetData($start_btn, "Start")
$fusen = False
EndIf
GUICtrlSetData($leiste,0)
$fertig = True
Else
GUICtrlCreateListViewItem(@HOUR&":"&@MIN&":"&@SEC&" - Error Packet entdeckt! Gestopped.", $liste)
_GUICtrlListView_Scroll($liste,0,20)
GUICtrlSetData($leiste,0)
GUICtrlSetData($start_btn, "Start")
$fusen = False
EndIF
EndIf
;If $opcode = "3040" then ;Inventar Update
If $opcode = $invupdate_packet then
$iPos = ParseByte() ;->Inv. Pos.
$dummy = ParseByte() ;->kp
$iCount = ParseWord() ;->Anzahl
If $iPos = "0E" Then GUICtrlSetData($elexiere_box, Dec($iCount))
If $iPos = "0F" Then GUICtrlSetData($powder_box, Dec($iCount))
EndIf
;If $opcode = "B034" then ;Slot clean
If $opcode = $slotclean_packet then
$ok = ParseByte() ;->01
$type = ParseByte() ;->0F
if ($ok="01") and ($type="0F") then
$iPos = ParseByte() ;->0E
If $iPos = "0E" Then
$fusen = false
$fertig = True
GUICtrlSetData($elexiere_box, "0")
GUICtrlCreateListViewItem(@HOUR&":"&@MIN&":"&@SEC&" - Elexiere alle!",$liste)
_GUICtrlListView_Scroll($liste,0,20)
EndIf
If $iPos = "0F" Then
$fusen = false
$fertig = true
GUICtrlSetData($start_btn, "Start")
GUICtrlSetData($powder_box, "0")
GUICtrlCreateListViewItem(@HOUR&":"&@MIN&":"&@SEC&" - Lucky Powder alle!",$liste)
_GUICtrlListView_Scroll($liste,0,20)
EndIf
EndIf
EndIf
EndIf
Switch $msg
Case $GUI_Event_Close
ExitLoop
Case $start_btn
If $fusen = FALSE Then
$fusen = True
GUICtrlCreateListViewItem(@HOUR&":"&@MIN&":"&@SEC&" - Tool gestartet",$liste)
_GUICtrlListView_Scroll($liste,0,20)
GUICtrlSetData($start_btn, "Stopp")
EndIf
EndSwitch
If $fusen = True And $fertig = True then
$fertig = false
GUICtrlCreateListViewItem(@HOUR&":"&@MIN&":"&@SEC&" - Am fusen...", $liste)
_GUICtrlListView_Scroll($liste,0,20)
;InjectPacket("7150", "0203030D0E0F")
InjectPacket($alchemy_packet, "0203030D0E0F")
GUICtrlSetData($leiste,20)
sleep(900)
GUICtrlSetData($leiste,40)
sleep(900)
GUICtrlSetData($leiste,60)
sleep(900)
GUICtrlSetData($leiste,80)
sleep(900)
GUICtrlSetData($leiste,100)
EndIf
WEnd
;Read & Inject --------------------------------------------------------------------------------------------------------
Func ReadPacket()
$recv = Hex(Binary(TCPRecv($socket, 2)))
If $recv = "" Then
Return ""
Else
$size = Dec(StringMid($recv, 3, 2) & StringMid($recv, 1, 2))
$recv &= Hex(Binary(TCPRecv($socket, $size+4)))
Return $recv
EndIf
EndFunc
Func InjectPacket($opcode, $data, $security = "0100")
$size = Hex(StringLen($data) / 2, 4)
$size = StringMid($size, 3, 2) & StringMid($size, 1, 2)
$opcode = StringMid($opcode, 3, 2) & StringMid($opcode, 1, 2)
$packet = _HexToString($size & $opcode & $security & $data)
TCPSend($socket, $packet)
EndFunc
;Parser ----------------------------------------------------------------------------------------------------------------
Func BeginParse($buffer, $size)
Global $globalParseIndex = 1
Global $globalParseSize = $size
Global $globalParseBuffer = $buffer
EndFunc
Func ParseByte()
$result = StringMid($globalParseBuffer, $globalParseIndex, 2)
$globalParseIndex = $globalParseIndex + 2
return $result
EndFunc
Func ParseWord()
$low = ParseByte()
$hi = ParseByte()
return $hi & $low
EndFunc
Func ParseDword()
$low = ParseWord()
$hi = ParseWord()
return $hi & $low
EndFunc
Func ParseQWord()
$low = ParseDword()
$hi = ParseDword()
return $hi & $low
EndFunc
Func ParseAscii($length)
$result = StringMid($globalParseBuffer, $globalParseIndex, $length * 2)
$globalParseIndex = $globalParseIndex + ($length * 2)
$len = StringLen($result)
$strResult = ""
For $i = 1 to $len Step 2
$strResult = $strResult & Chr(Dec(StringMid($result, $i, 2)))
Next
return $strResult
EndFunc