Source vom Patch 20 Trainer

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Source vom Patch 20 Trainer

      Nun ich hab lange überlegt ob ich das machen soll es ist einfach nur Billig aber ich machs trotzdem weil viele Leute nach einer solchen Source suchen um überhaupt ein Bot zu entwickeln, ich weis viele werden es verachten und ich wusste auch nicht ob ichs Im Autoit oder Im S4 Bereich tuen sollte. Es ist soll nur als Vorlage gedacht sein, es ist billig Decompiled doch es funktioniert!
      Alle Credits zu DarkGer!'s
      "Source"
      #RequireAdmin
      #Region
      #AutoIt3Wrapper_Icon=Bilder&Icons\icon.ico
      #EndRegion
      Func _ARRAYADD(ByRef $AVARRAY, $VVALUE)
      If Not IsArray($AVARRAY) Then Return SetError(1, 0, -1)
      If UBound($AVARRAY, 0) <> 1 Then Return SetError(2, 0, -1)
      Local $IUBOUND = UBound($AVARRAY)
      ReDim $AVARRAY[$IUBOUND + 1]
      $AVARRAY[$IUBOUND] = $VVALUE
      Return $IUBOUND
      EndFunc
      Func _ARRAYBINARYSEARCH(Const ByRef $AVARRAY, $VVALUE, $ISTART = 0, $IEND = 0)
      If Not IsArray($AVARRAY) Then Return SetError(1, 0, -1)
      If UBound($AVARRAY, 0) <> 1 Then Return SetError(5, 0, -1)
      Local $IUBOUND = UBound($AVARRAY) - 1
      If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND
      If $ISTART < 0 Then $ISTART = 0
      If $ISTART > $IEND Then Return SetError(4, 0, -1)
      Local $IMID = Int(($IEND + $ISTART) / 2)
      If $AVARRAY[$ISTART] > $VVALUE Or $AVARRAY[$IEND] < $VVALUE Then Return SetError(2, 0, -1)
      While $ISTART <= $IMID And $VVALUE <> $AVARRAY[$IMID]
      If $VVALUE < $AVARRAY[$IMID] Then
      $IEND = $IMID - 1
      Else
      $ISTART = $IMID + 1
      EndIf
      $IMID = Int(($IEND + $ISTART) / 2)
      WEnd
      If $ISTART > $IEND Then Return SetError(3, 0, -1)
      Return $IMID
      EndFunc
      Func _ARRAYCOMBINATIONS(ByRef $AVARRAY, $ISET, $SDELIM = "")
      If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)
      If UBound($AVARRAY, 0) <> 1 Then Return SetError(2, 0, 0)
      Local $IN = UBound($AVARRAY)
      Local $IR = $ISET
      Local $AIDX[$IR]
      For $I = 0 To $IR - 1
      $AIDX[$I] = $I
      Next
      Local $ITOTAL = __ARRAY_COMBINATIONS($IN, $IR)
      Local $ILEFT = $ITOTAL
      Local $ARESULT[$ITOTAL + 1]
      $ARESULT[0] = $ITOTAL
      Local $ICOUNT = 1
      While $ILEFT > 0
      __ARRAY_GETNEXT($IN, $IR, $ILEFT, $ITOTAL, $AIDX)
      For $I = 0 To $ISET - 1
      $ARESULT[$ICOUNT] &= $AVARRAY[$AIDX[$I]] & $SDELIM
      Next
      If $SDELIM <> "" Then $ARESULT[$ICOUNT] = StringTrimRight($ARESULT[$ICOUNT], 1)
      $ICOUNT += 1
      WEnd
      Return $ARESULT
      EndFunc
      Func _ARRAYCONCATENATE(ByRef $AVARRAYTARGET, Const ByRef $AVARRAYSOURCE, $ISTART = 0)
      If Not IsArray($AVARRAYTARGET) Then Return SetError(1, 0, 0)
      If Not IsArray($AVARRAYSOURCE) Then Return SetError(2, 0, 0)
      If UBound($AVARRAYTARGET, 0) <> 1 Then
      If UBound($AVARRAYSOURCE, 0) <> 1 Then Return SetError(5, 0, 0)
      Return SetError(3, 0, 0)
      EndIf
      If UBound($AVARRAYSOURCE, 0) <> 1 Then Return SetError(4, 0, 0)
      Local $IUBOUNDTARGET = UBound($AVARRAYTARGET) - $ISTART, $IUBOUNDSOURCE = UBound($AVARRAYSOURCE)
      ReDim $AVARRAYTARGET[$IUBOUNDTARGET + $IUBOUNDSOURCE]
      For $I = $ISTART To $IUBOUNDSOURCE - 1
      $AVARRAYTARGET[$IUBOUNDTARGET + $I] = $AVARRAYSOURCE[$I]
      Next
      Return $IUBOUNDTARGET + $IUBOUNDSOURCE
      EndFunc
      Func _ARRAYCREATE($V_0, $V_1 = 0, $V_2 = 0, $V_3 = 0, $V_4 = 0, $V_5 = 0, $V_6 = 0, $V_7 = 0, $V_8 = 0, $V_9 = 0, $V_10 = 0, $V_11 = 0, $V_12 = 0, $V_13 = 0, $V_14 = 0, $V_15 = 0, $V_16 = 0, $V_17 = 0, $V_18 = 0, $V_19 = 0, $V_20 = 0)
      Local $AV_ARRAY[21] = [$V_0, $V_1, $V_2, $V_3, $V_4, $V_5, $V_6, $V_7, $V_8, $V_9, $V_10, $V_11, $V_12, $V_13, $V_14, $V_15, $V_16, $V_17, $V_18, $V_19, $V_20]
      ReDim $AV_ARRAY[@NumParams]
      Return $AV_ARRAY
      EndFunc
      Func _ARRAYDELETE(ByRef $AVARRAY, $IELEMENT)
      If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)
      Local $IUBOUND = UBound($AVARRAY, 1) - 1
      If Not $IUBOUND Then
      $AVARRAY = ""
      Return 0
      EndIf
      If $IELEMENT < 0 Then $IELEMENT = 0
      If $IELEMENT > $IUBOUND Then $IELEMENT = $IUBOUND
      Switch UBound($AVARRAY, 0)
      Case 1
      For $I = $IELEMENT To $IUBOUND - 1
      $AVARRAY[$I] = $AVARRAY[$I + 1]
      Next
      ReDim $AVARRAY[$IUBOUND]
      Case 2
      Local $ISUBMAX = UBound($AVARRAY, 2) - 1
      For $I = $IELEMENT To $IUBOUND - 1
      For $J = 0 To $ISUBMAX
      $AVARRAY[$I][$J] = $AVARRAY[$I + 1][$J]
      Next
      Next
      ReDim $AVARRAY[$IUBOUND][$ISUBMAX + 1]
      Case Else
      Return SetError(3, 0, 0)
      EndSwitch
      Return $IUBOUND
      EndFunc
      Func _ARRAYDISPLAY(Const ByRef $AVARRAY, $STITLE = "Array: ListView Display", $IITEMLIMIT = -1, $ITRANSPOSE = 0, $SSEPARATOR = "", $SREPLACE = "|", $SHEADER = "")
      If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)
      Local $IDIMENSION = UBound($AVARRAY, 0), $IUBOUND = UBound($AVARRAY, 1) - 1, $ISUBMAX = UBound($AVARRAY, 2) - 1
      If $IDIMENSION > 2 Then Return SetError(2, 0, 0)
      If $SSEPARATOR = "" Then $SSEPARATOR = Chr(124)
      If _ARRAYSEARCH($AVARRAY, $SSEPARATOR, 0, 0, 0, 1) <> -1 Then
      For $X = 1 To 255
      If $X >= 32 And $X <= 127 Then ContinueLoop
      Local $SFIND = _ARRAYSEARCH($AVARRAY, Chr($X), 0, 0, 0, 1)
      If $SFIND = -1 Then
      $SSEPARATOR = Chr($X)
      ExitLoop
      EndIf
      Next
      EndIf
      Local $VTMP, $IBUFFER = 64
      Local $ICOLLIMIT = 250
      Local $IONEVENTMODE = Opt("GUIOnEventMode", 0), $SDATASEPARATORCHAR = Opt("GUIDataSeparatorChar", $SSEPARATOR)
      If $ISUBMAX < 0 Then $ISUBMAX = 0
      If $ITRANSPOSE Then
      $VTMP = $IUBOUND
      $IUBOUND = $ISUBMAX
      $ISUBMAX = $VTMP
      EndIf
      If $ISUBMAX > $ICOLLIMIT Then $ISUBMAX = $ICOLLIMIT
      If $IITEMLIMIT < 1 Then $IITEMLIMIT = $IUBOUND
      If $IUBOUND > $IITEMLIMIT Then $IUBOUND = $IITEMLIMIT
      If $SHEADER = "" Then
      $SHEADER = "Row "
      For $I = 0 To $ISUBMAX
      $SHEADER &= $SSEPARATOR & "Col " & $I
      Next
      EndIf
      Local $AVARRAYTEXT[$IUBOUND + 1]
      For $I = 0 To $IUBOUND
      $AVARRAYTEXT[$I] = "[" & $I & "]"
      For $J = 0 To $ISUBMAX
      If $IDIMENSION = 1 Then
      If $ITRANSPOSE Then
      $VTMP = $AVARRAY[$J]
      Else
      $VTMP = $AVARRAY[$I]
      EndIf
      Else
      If $ITRANSPOSE Then
      $VTMP = $AVARRAY[$J][$I]
      Else
      $VTMP = $AVARRAY[$I][$J]
      EndIf
      EndIf
      $VTMP = StringReplace($VTMP, $SSEPARATOR, $SREPLACE, 0, 1)
      $AVARRAYTEXT[$I] &= $SSEPARATOR & $VTMP
      $VTMP = StringLen($VTMP)
      If $VTMP > $IBUFFER Then $IBUFFER = $VTMP
      Next
      Next
      $IBUFFER += 1
      Local Const $_ARRAYCONSTANT_GUI_DOCKBORDERS = 102
      Local Const $_ARRAYCONSTANT_GUI_DOCKBOTTOM = 64
      Local Const $_ARRAYCONSTANT_GUI_DOCKHEIGHT = 512
      Local Const $_ARRAYCONSTANT_GUI_DOCKLEFT = 2
      Local Const $_ARRAYCONSTANT_GUI_DOCKRIGHT = 4
      Local Const $_ARRAYCONSTANT_GUI_EVENT_CLOSE = -3
      Local Const $_ARRAYCONSTANT_LVIF_PARAM = 4
      Local Const $_ARRAYCONSTANT_LVIF_TEXT = 1
      Local Const $_ARRAYCONSTANT_LVM_GETCOLUMNWIDTH = (4096 + 29)
      Local Const $_ARRAYCONSTANT_LVM_GETITEMCOUNT = (4096 + 4)
      Local Const $_ARRAYCONSTANT_LVM_GETITEMSTATE = (4096 + 44)
      Local Const $_ARRAYCONSTANT_LVM_INSERTITEMW = (4096 + 77)
      Local Const $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE = (4096 + 54)
      Local Const $_ARRAYCONSTANT_LVM_SETITEMW = (4096 + 76)
      Local Const $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT = 32
      Local Const $_ARRAYCONSTANT_LVS_EX_GRIDLINES = 1
      Local Const $_ARRAYCONSTANT_LVS_SHOWSELALWAYS = 8
      Local Const $_ARRAYCONSTANT_WS_EX_CLIENTEDGE = 512
      Local Const $_ARRAYCONSTANT_WS_MAXIMIZEBOX = 65536
      Local Const $_ARRAYCONSTANT_WS_MINIMIZEBOX = 131072
      Local Const $_ARRAYCONSTANT_WS_SIZEBOX = 262144
      Local Const $_ARRAYCONSTANT_TAGLVITEM = "int Mask;int Item;int SubItem;int State;int StateMask;ptr Text;int TextMax;int Image;int Param;int Indent;int GroupID;int Columns;ptr pColumns"
      Local $IADDMASK = BitOR($_ARRAYCONSTANT_LVIF_TEXT, $_ARRAYCONSTANT_LVIF_PARAM)
      Local $TBUFFER = DllStructCreate("wchar Text[" & $IBUFFER & "]"), $PBUFFER = DllStructGetPtr($TBUFFER)
      Local $TITEM = DllStructCreate($_ARRAYCONSTANT_TAGLVITEM), $PITEM = DllStructGetPtr($TITEM)
      DllStructSetData($TITEM, "Param", 0)
      DllStructSetData($TITEM, "Text", $PBUFFER)
      DllStructSetData($TITEM, "TextMax", $IBUFFER)
      Local $IWIDTH = 640, $IHEIGHT = 480
      Local $HGUI = GUICreate($STITLE, $IWIDTH, $IHEIGHT, Default, Default, BitOR($_ARRAYCONSTANT_WS_SIZEBOX, $_ARRAYCONSTANT_WS_MINIMIZEBOX, $_ARRAYCONSTANT_WS_MAXIMIZEBOX))
      Local $AIGUISIZE = WinGetClientSize($HGUI)
      Local $HLISTVIEW = GUICtrlCreateListView($SHEADER, 0, 0, $AIGUISIZE[0], $AIGUISIZE[1] - 26, $_ARRAYCONSTANT_LVS_SHOWSELALWAYS)
      Local $HCOPY = GUICtrlCreateButton("Copy Selected", 3, $AIGUISIZE[1] - 23, $AIGUISIZE[0] - 6, 20)
      GUICtrlSetResizing($HLISTVIEW, $_ARRAYCONSTANT_GUI_DOCKBORDERS)
      GUICtrlSetResizing($HCOPY, $_ARRAYCONSTANT_GUI_DOCKLEFT + $_ARRAYCONSTANT_GUI_DOCKRIGHT + $_ARRAYCONSTANT_GUI_DOCKBOTTOM + $_ARRAYCONSTANT_GUI_DOCKHEIGHT)
      GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_LVS_EX_GRIDLINES, $_ARRAYCONSTANT_LVS_EX_GRIDLINES)
      GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT, $_ARRAYCONSTANT_LVS_EX_FULLROWSELECT)
      GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_SETEXTENDEDLISTVIEWSTYLE, $_ARRAYCONSTANT_WS_EX_CLIENTEDGE, $_ARRAYCONSTANT_WS_EX_CLIENTEDGE)
      Local $AITEM
      For $I = 0 To $IUBOUND
      If GUICtrlCreateListViewItem($AVARRAYTEXT[$I], $HLISTVIEW) = 0 Then
      $AITEM = StringSplit($AVARRAYTEXT[$I], $SSEPARATOR)
      DllStructSetData($TBUFFER, "Text", $AITEM[1])
      DllStructSetData($TITEM, "Item", $I)
      DllStructSetData($TITEM, "SubItem", 0)
      DllStructSetData($TITEM, "Mask", $IADDMASK)
      GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_INSERTITEMW, 0, $PITEM)
      DllStructSetData($TITEM, "Mask", $_ARRAYCONSTANT_LVIF_TEXT)
      For $J = 2 To $AITEM[0]
      DllStructSetData($TBUFFER, "Text", $AITEM[$J])
      DllStructSetData($TITEM, "SubItem", $J - 1)
      GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_SETITEMW, 0, $PITEM)
      Next
      EndIf
      Next
      $IWIDTH = 0
      For $I = 0 To $ISUBMAX + 1
      $IWIDTH += GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_GETCOLUMNWIDTH, $I, 0)
      Next
      If $IWIDTH < 250 Then $IWIDTH = 230
      $IWIDTH += 20
      If $IWIDTH > @DesktopWidth Then $IWIDTH = @DesktopWidth - 100
      WinMove($HGUI, "", (@DesktopWidth - $IWIDTH) / 2, Default, $IWIDTH)
      GUISetState(@SW_SHOW, $HGUI)
      While 1
      Switch GUIGetMsg()
      Case $_ARRAYCONSTANT_GUI_EVENT_CLOSE
      ExitLoop
      Case $HCOPY
      Local $SCLIP = ""
      Local $AICURITEMS[1] = [0]
      For $I = 0 To GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_GETITEMCOUNT, 0, 0)
      If GUICtrlSendMsg($HLISTVIEW, $_ARRAYCONSTANT_LVM_GETITEMSTATE, $I, 2) Then
      $AICURITEMS[0] += 1
      ReDim $AICURITEMS[$AICURITEMS[0] + 1]
      $AICURITEMS[$AICURITEMS[0]] = $I
      EndIf
      Next
      If Not $AICURITEMS[0] Then
      For $SITEM In $AVARRAYTEXT
      $SCLIP &= $SITEM & @CRLF
      Next
      Else
      For $I = 1 To UBound($AICURITEMS) - 1
      $SCLIP &= $AVARRAYTEXT[$AICURITEMS[$I]] & @CRLF
      Next
      EndIf
      ClipPut($SCLIP)
      EndSwitch
      WEnd
      GUIDelete($HGUI)
      Opt("GUIOnEventMode", $IONEVENTMODE)
      Opt("GUIDataSeparatorChar", $SDATASEPARATORCHAR)
      Return 1
      EndFunc
      Func _ARRAYFINDALL(Const ByRef $AVARRAY, $VVALUE, $ISTART = 0, $IEND = 0, $ICASE = 0, $IPARTIAL = 0, $ISUBITEM = 0)
      $ISTART = _ARRAYSEARCH($AVARRAY, $VVALUE, $ISTART, $IEND, $ICASE, $IPARTIAL, 1, $ISUBITEM)
      If @error Then Return SetError(@error, 0, -1)
      Local $IINDEX = 0, $AVRESULT[UBound($AVARRAY)]
      Do
      $AVRESULT[$IINDEX] = $ISTART
      $IINDEX += 1
      $ISTART = _ARRAYSEARCH($AVARRAY, $VVALUE, $ISTART + 1, $IEND, $ICASE, $IPARTIAL, 1, $ISUBITEM)
      Until @error
      ReDim $AVRESULT[$IINDEX]
      Return $AVRESULT
      EndFunc
      Func _ARRAYINSERT(ByRef $AVARRAY, $IELEMENT, $VVALUE = "")
      If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)
      If UBound($AVARRAY, 0) <> 1 Then Return SetError(2, 0, 0)
      Local $IUBOUND = UBound($AVARRAY) + 1
      ReDim $AVARRAY[$IUBOUND]
      For $I = $IUBOUND - 1 To $IELEMENT + 1 Step -1
      $AVARRAY[$I] = $AVARRAY[$I - 1]
      Next
      $AVARRAY[$IELEMENT] = $VVALUE
      Return $IUBOUND
      EndFunc
      Func _ARRAYMAX(Const ByRef $AVARRAY, $ICOMPNUMERIC = 0, $ISTART = 0, $IEND = 0)
      Local $IRESULT = _ARRAYMAXINDEX($AVARRAY, $ICOMPNUMERIC, $ISTART, $IEND)
      If @error Then Return SetError(@error, 0, "")
      Return $AVARRAY[$IRESULT]
      EndFunc
      Func _ARRAYMAXINDEX(Const ByRef $AVARRAY, $ICOMPNUMERIC = 0, $ISTART = 0, $IEND = 0)
      If Not IsArray($AVARRAY) Or UBound($AVARRAY, 0) <> 1 Then Return SetError(1, 0, -1)
      If UBound($AVARRAY, 0) <> 1 Then Return SetError(3, 0, -1)
      Local $IUBOUND = UBound($AVARRAY) - 1
      If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND
      If $ISTART < 0 Then $ISTART = 0
      If $ISTART > $IEND Then Return SetError(2, 0, -1)
      Local $IMAXINDEX = $ISTART
      If $ICOMPNUMERIC Then
      For $I = $ISTART To $IEND
      If Number($AVARRAY[$IMAXINDEX]) < Number($AVARRAY[$I]) Then $IMAXINDEX = $I
      Next
      Else
      For $I = $ISTART To $IEND
      If $AVARRAY[$IMAXINDEX] < $AVARRAY[$I] Then $IMAXINDEX = $I
      Next
      EndIf
      Return $IMAXINDEX
      EndFunc
      Func _ARRAYMIN(Const ByRef $AVARRAY, $ICOMPNUMERIC = 0, $ISTART = 0, $IEND = 0)
      Local $IRESULT = _ARRAYMININDEX($AVARRAY, $ICOMPNUMERIC, $ISTART, $IEND)
      If @error Then Return SetError(@error, 0, "")
      Return $AVARRAY[$IRESULT]
      EndFunc
      Func _ARRAYMININDEX(Const ByRef $AVARRAY, $ICOMPNUMERIC = 0, $ISTART = 0, $IEND = 0)
      If Not IsArray($AVARRAY) Then Return SetError(1, 0, -1)
      If UBound($AVARRAY, 0) <> 1 Then Return SetError(3, 0, -1)
      Local $IUBOUND = UBound($AVARRAY) - 1
      If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND
      If $ISTART < 0 Then $ISTART = 0
      If $ISTART > $IEND Then Return SetError(2, 0, -1)
      Local $IMININDEX = $ISTART
      If $ICOMPNUMERIC Then
      For $I = $ISTART To $IEND
      If Number($AVARRAY[$IMININDEX]) > Number($AVARRAY[$I]) Then $IMININDEX = $I
      Next
      Else
      For $I = $ISTART To $IEND
      If $AVARRAY[$IMININDEX] > $AVARRAY[$I] Then $IMININDEX = $I
      Next
      EndIf
      Return $IMININDEX
      EndFunc
      Func _ARRAYPERMUTE(ByRef $AVARRAY, $SDELIM = "")
      If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)
      If UBound($AVARRAY, 0) <> 1 Then Return SetError(2, 0, 0)
      Local $ISIZE = UBound($AVARRAY), $IFACTORIAL = 1, $AIDX[$ISIZE], $ARESULT[1], $ICOUNT = 1
      For $I = 0 To $ISIZE - 1
      $AIDX[$I] = $I
      Next
      For $I = $ISIZE To 1 Step -1
      $IFACTORIAL *= $I
      Next
      ReDim $ARESULT[$IFACTORIAL + 1]
      $ARESULT[0] = $IFACTORIAL
      __ARRAY_EXETERINTERNAL($AVARRAY, 0, $ISIZE, $SDELIM, $AIDX, $ARESULT, $ICOUNT)
      Return $ARESULT
      EndFunc
      Func _ARRAYPOP(ByRef $AVARRAY)
      IF (Not IsArray($AVARRAY)) Then Return SetError(1, 0, "")
      If UBound($AVARRAY, 0) <> 1 Then Return SetError(2, 0, "")
      Local $IUBOUND = UBound($AVARRAY) - 1, $SLASTVAL = $AVARRAY[$IUBOUND]
      If Not $IUBOUND Then
      $AVARRAY = ""
      Else
      ReDim $AVARRAY[$IUBOUND]
      EndIf
      Return $SLASTVAL
      EndFunc
      Func _ARRAYPUSH(ByRef $AVARRAY, $VVALUE, $IDIRECTION = 0)
      IF (Not IsArray($AVARRAY)) Then Return SetError(1, 0, 0)
      If UBound($AVARRAY, 0) <> 1 Then Return SetError(3, 0, 0)
      Local $IUBOUND = UBound($AVARRAY) - 1
      If IsArray($VVALUE) Then
      Local $IUBOUNDS = UBound($VVALUE)
      IF ($IUBOUNDS - 1) > $IUBOUND Then Return SetError(2, 0, 0)
      If $IDIRECTION Then
      For $I = $IUBOUND To $IUBOUNDS Step -1
      $AVARRAY[$I] = $AVARRAY[$I - $IUBOUNDS]
      Next
      For $I = 0 To $IUBOUNDS - 1
      $AVARRAY[$I] = $VVALUE[$I]
      Next
      Else
      For $I = 0 To $IUBOUND - $IUBOUNDS
      $AVARRAY[$I] = $AVARRAY[$I + $IUBOUNDS]
      Next
      For $I = 0 To $IUBOUNDS - 1
      $AVARRAY[$I + $IUBOUND - $IUBOUNDS + 1] = $VVALUE[$I]
      Next
      EndIf
      Else
      If $IDIRECTION Then
      For $I = $IUBOUND To 1 Step -1
      $AVARRAY[$I] = $AVARRAY[$I - 1]
      Next
      $AVARRAY[0] = $VVALUE
      Else
      For $I = 0 To $IUBOUND - 1
      $AVARRAY[$I] = $AVARRAY[$I + 1]
      Next
      $AVARRAY[$IUBOUND] = $VVALUE
      EndIf
      EndIf
      Return 1
      EndFunc
      Func _ARRAYREVERSE(ByRef $AVARRAY, $ISTART = 0, $IEND = 0)
      If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)
      If UBound($AVARRAY, 0) <> 1 Then Return SetError(3, 0, 0)
      Local $VTMP, $IUBOUND = UBound($AVARRAY) - 1
      If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND
      If $ISTART < 0 Then $ISTART = 0
      If $ISTART > $IEND Then Return SetError(2, 0, 0)
      For $I = $ISTART To Int(($ISTART + $IEND - 1) / 2)
      $VTMP = $AVARRAY[$I]
      $AVARRAY[$I] = $AVARRAY[$IEND]
      $AVARRAY[$IEND] = $VTMP
      $IEND -= 1
      Next
      Return 1
      EndFunc
      Func _ARRAYSEARCH(Const ByRef $AVARRAY, $VVALUE, $ISTART = 0, $IEND = 0, $ICASE = 0, $IPARTIAL = 0, $IFORWARD = 1, $ISUBITEM = -1)
      If Not IsArray($AVARRAY) Then Return SetError(1, 0, -1)
      If UBound($AVARRAY, 0) > 2 Or UBound($AVARRAY, 0) < 1 Then Return SetError(2, 0, -1)
      Local $IUBOUND = UBound($AVARRAY) - 1
      If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND
      If $ISTART < 0 Then $ISTART = 0
      If $ISTART > $IEND Then Return SetError(4, 0, -1)
      Local $ISTEP = 1
      If Not $IFORWARD Then
      Local $ITMP = $ISTART
      $ISTART = $IEND
      $IEND = $ITMP
      $ISTEP = -1
      EndIf
      Switch UBound($AVARRAY, 0)
      Case 1
      If Not $IPARTIAL Then
      If Not $ICASE Then
      For $I = $ISTART To $IEND Step $ISTEP
      If $AVARRAY[$I] = $VVALUE Then Return $I
      Next
      Else
      For $I = $ISTART To $IEND Step $ISTEP
      If $AVARRAY[$I] == $VVALUE Then Return $I
      Next
      EndIf
      Else
      For $I = $ISTART To $IEND Step $ISTEP
      If StringInStr($AVARRAY[$I], $VVALUE, $ICASE) > 0 Then Return $I
      Next
      EndIf
      Case 2
      Local $IUBOUNDSUB = UBound($AVARRAY, 2) - 1
      If $ISUBITEM > $IUBOUNDSUB Then $ISUBITEM = $IUBOUNDSUB
      If $ISUBITEM < 0 Then
      $ISUBITEM = 0
      Else
      $IUBOUNDSUB = $ISUBITEM
      EndIf
      For $J = $ISUBITEM To $IUBOUNDSUB
      If Not $IPARTIAL Then
      If Not $ICASE Then
      For $I = $ISTART To $IEND Step $ISTEP
      If $AVARRAY[$I][$J] = $VVALUE Then Return $I
      Next
      Else
      For $I = $ISTART To $IEND Step $ISTEP
      If $AVARRAY[$I][$J] == $VVALUE Then Return $I
      Next
      EndIf
      Else
      For $I = $ISTART To $IEND Step $ISTEP
      If StringInStr($AVARRAY[$I][$J], $VVALUE, $ICASE) > 0 Then Return $I
      Next
      EndIf
      Next
      Case Else
      Return SetError(7, 0, -1)
      EndSwitch
      Return SetError(6, 0, -1)
      EndFunc
      Func _ARRAYSORT(ByRef $AVARRAY, $IDESCENDING = 0, $ISTART = 0, $IEND = 0, $ISUBITEM = 0)
      If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)
      Local $IUBOUND = UBound($AVARRAY) - 1
      If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND
      If $ISTART < 0 Then $ISTART = 0
      If $ISTART > $IEND Then Return SetError(2, 0, 0)
      Switch UBound($AVARRAY, 0)
      Case 1
      __ARRAYQUICKSORT1D($AVARRAY, $ISTART, $IEND)
      If $IDESCENDING Then _ARRAYREVERSE($AVARRAY, $ISTART, $IEND)
      Case 2
      Local $ISUBMAX = UBound($AVARRAY, 2) - 1
      If $ISUBITEM > $ISUBMAX Then Return SetError(3, 0, 0)
      If $IDESCENDING Then
      $IDESCENDING = -1
      Else
      $IDESCENDING = 1
      EndIf
      __ARRAYQUICKSORT2D($AVARRAY, $IDESCENDING, $ISTART, $IEND, $ISUBITEM, $ISUBMAX)
      Case Else
      Return SetError(4, 0, 0)
      EndSwitch
      Return 1
      EndFunc
      Func __ARRAYQUICKSORT1D(ByRef $AVARRAY, ByRef $ISTART, ByRef $IEND)
      If $IEND <= $ISTART Then Return
      Local $VTMP
      IF ($IEND - $ISTART) < 15 Then
      Local $VCUR
      For $I = $ISTART + 1 To $IEND
      $VTMP = $AVARRAY[$I]
      If IsNumber($VTMP) Then
      For $J = $I - 1 To $ISTART Step -1
      $VCUR = $AVARRAY[$J]
      IF ($VTMP >= $VCUR And IsNumber($VCUR)) OR (Not IsNumber($VCUR) And StringCompare($VTMP, $VCUR) >= 0) Then ExitLoop
      $AVARRAY[$J + 1] = $VCUR
      Next
      Else
      For $J = $I - 1 To $ISTART Step -1
      IF (StringCompare($VTMP, $AVARRAY[$J]) >= 0) Then ExitLoop
      $AVARRAY[$J + 1] = $AVARRAY[$J]
      Next
      EndIf
      $AVARRAY[$J + 1] = $VTMP
      Next
      Return
      EndIf
      Local $L = $ISTART, $R = $IEND, $VPIVOT = $AVARRAY[Int(($ISTART + $IEND) / 2)], $FNUM = IsNumber($VPIVOT)
      Do
      If $FNUM Then
      WHILE ($AVARRAY[$L] < $VPIVOT And IsNumber($AVARRAY[$L])) OR (Not IsNumber($AVARRAY[$L]) And StringCompare($AVARRAY[$L], $VPIVOT) < 0)
      $L += 1
      WEnd
      WHILE ($AVARRAY[$R] > $VPIVOT And IsNumber($AVARRAY[$R])) OR (Not IsNumber($AVARRAY[$R]) And StringCompare($AVARRAY[$R], $VPIVOT) > 0)
      $R -= 1
      WEnd
      Else
      WHILE (StringCompare($AVARRAY[$L], $VPIVOT) < 0)
      $L += 1
      WEnd
      WHILE (StringCompare($AVARRAY[$R], $VPIVOT) > 0)
      $R -= 1
      WEnd
      EndIf
      If $L <= $R Then
      $VTMP = $AVARRAY[$L]
      $AVARRAY[$L] = $AVARRAY[$R]
      $AVARRAY[$R] = $VTMP
      $L += 1
      $R -= 1
      EndIf
      Until $L > $R
      __ARRAYQUICKSORT1D($AVARRAY, $ISTART, $R)
      __ARRAYQUICKSORT1D($AVARRAY, $L, $IEND)
      EndFunc
      Func __ARRAYQUICKSORT2D(ByRef $AVARRAY, ByRef $ISTEP, ByRef $ISTART, ByRef $IEND, ByRef $ISUBITEM, ByRef $ISUBMAX)
      If $IEND <= $ISTART Then Return
      Local $VTMP, $L = $ISTART, $R = $IEND, $VPIVOT = $AVARRAY[Int(($ISTART + $IEND) / 2)][$ISUBITEM], $FNUM = IsNumber($VPIVOT)
      Do
      If $FNUM Then
      WHILE ($ISTEP * ($AVARRAY[$L][$ISUBITEM] - $VPIVOT) < 0 And IsNumber($AVARRAY[$L][$ISUBITEM])) OR (Not IsNumber($AVARRAY[$L][$ISUBITEM]) And $ISTEP * StringCompare($AVARRAY[$L][$ISUBITEM], $VPIVOT) < 0)
      $L += 1
      WEnd
      WHILE ($ISTEP * ($AVARRAY[$R][$ISUBITEM] - $VPIVOT) > 0 And IsNumber($AVARRAY[$R][$ISUBITEM])) OR (Not IsNumber($AVARRAY[$R][$ISUBITEM]) And $ISTEP * StringCompare($AVARRAY[$R][$ISUBITEM], $VPIVOT) > 0)
      $R -= 1
      WEnd
      Else
      WHILE ($ISTEP * StringCompare($AVARRAY[$L][$ISUBITEM], $VPIVOT) < 0)
      $L += 1
      WEnd
      WHILE ($ISTEP * StringCompare($AVARRAY[$R][$ISUBITEM], $VPIVOT) > 0)
      $R -= 1
      WEnd
      EndIf
      If $L <= $R Then
      For $I = 0 To $ISUBMAX
      $VTMP = $AVARRAY[$L][$I]
      $AVARRAY[$L][$I] = $AVARRAY[$R][$I]
      $AVARRAY[$R][$I] = $VTMP
      Next
      $L += 1
      $R -= 1
      EndIf
      Until $L > $R
      __ARRAYQUICKSORT2D($AVARRAY, $ISTEP, $ISTART, $R, $ISUBITEM, $ISUBMAX)
      __ARRAYQUICKSORT2D($AVARRAY, $ISTEP, $L, $IEND, $ISUBITEM, $ISUBMAX)
      EndFunc
      Func _ARRAYSWAP(ByRef $VITEM1, ByRef $VITEM2)
      Local $VTMP = $VITEM1
      $VITEM1 = $VITEM2
      $VITEM2 = $VTMP
      EndFunc
      Func _ARRAYTOCLIP(Const ByRef $AVARRAY, $ISTART = 0, $IEND = 0)
      Local $SRESULT = _ARRAYTOSTRING($AVARRAY, @CR, $ISTART, $IEND)
      If @error Then Return SetError(@error, 0, 0)
      Return ClipPut($SRESULT)
      EndFunc
      Func _ARRAYTOSTRING(Const ByRef $AVARRAY, $SDELIM = "|", $ISTART = 0, $IEND = 0)
      If Not IsArray($AVARRAY) Then Return SetError(1, 0, "")
      If UBound($AVARRAY, 0) <> 1 Then Return SetError(3, 0, "")
      Local $SRESULT, $IUBOUND = UBound($AVARRAY) - 1
      If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND
      If $ISTART < 0 Then $ISTART = 0
      If $ISTART > $IEND Then Return SetError(2, 0, "")
      For $I = $ISTART To $IEND
      $SRESULT &= $AVARRAY[$I] & $SDELIM
      Next
      Return StringTrimRight($SRESULT, StringLen($SDELIM))
      EndFunc
      Func _ARRAYTRIM(ByRef $AVARRAY, $ITRIMNUM, $IDIRECTION = 0, $ISTART = 0, $IEND = 0)
      If Not IsArray($AVARRAY) Then Return SetError(1, 0, 0)
      If UBound($AVARRAY, 0) <> 1 Then Return SetError(2, 0, 0)
      Local $IUBOUND = UBound($AVARRAY) - 1
      If $IEND < 1 Or $IEND > $IUBOUND Then $IEND = $IUBOUND
      If $ISTART < 0 Then $ISTART = 0
      If $ISTART > $IEND Then Return SetError(5, 0, 0)
      If $IDIRECTION Then
      For $I = $ISTART To $IEND
      $AVARRAY[$I] = StringTrimRight($AVARRAY[$I], $ITRIMNUM)
      Next
      Else
      For $I = $ISTART To $IEND
      $AVARRAY[$I] = StringTrimLeft($AVARRAY[$I], $ITRIMNUM)
      Next
      EndIf
      Return 1
      EndFunc
      Func _ARRAYUNIQUE($AARRAY, $IDIMENSION = 1, $IBASE = 0, $ICASE = 0, $VDELIM = "|")
      Local $IUBOUNDDIM
      If $VDELIM = "|" Then $VDELIM = Chr(1)
      If Not IsArray($AARRAY) Then Return SetError(1, 0, 0)
      If Not $IDIMENSION > 0 Then
      Return SetError(3, 0, 0)
      Else
      $IUBOUNDDIM = UBound($AARRAY, 1)
      If @error Then Return SetError(3, 0, 0)
      If $IDIMENSION > 1 Then
      Local $AARRAYTMP[1]
      For $I = 0 To $IUBOUNDDIM - 1
      _ARRAYADD($AARRAYTMP, $AARRAY[$I][$IDIMENSION - 1])
      Next
      _ARRAYDELETE($AARRAYTMP, 0)
      Else
      If UBound($AARRAY, 0) = 1 Then
      Dim $AARRAYTMP[1]
      For $I = 0 To $IUBOUNDDIM - 1
      _ARRAYADD($AARRAYTMP, $AARRAY[$I])
      Next
      _ARRAYDELETE($AARRAYTMP, 0)
      Else
      Dim $AARRAYTMP[1]
      For $I = 0 To $IUBOUNDDIM - 1
      _ARRAYADD($AARRAYTMP, $AARRAY[$I][$IDIMENSION - 1])
      Next
      _ARRAYDELETE($AARRAYTMP, 0)
      EndIf
      EndIf
      EndIf
      Local $SHOLD
      For $ICC = $IBASE To UBound($AARRAYTMP) - 1
      If Not StringInStr($VDELIM & $SHOLD, $VDELIM & $AARRAYTMP[$ICC] & $VDELIM, $ICASE) Then $SHOLD &= $AARRAYTMP[$ICC] & $VDELIM
      Next
      If $SHOLD Then
      $AARRAYTMP = StringSplit(StringTrimRight($SHOLD, StringLen($VDELIM)), $VDELIM, 1)
      Return $AARRAYTMP
      EndIf
      Return SetError(2, 0, 0)
      EndFunc
      Func __ARRAY_EXETERINTERNAL(ByRef $AVARRAY, $ISTART, $ISIZE, $SDELIM, ByRef $AIDX, ByRef $ARESULT, ByRef $ICOUNT)
      If $ISTART == $ISIZE - 1 Then
      For $I = 0 To $ISIZE - 1
      $ARESULT[$ICOUNT] &= $AVARRAY[$AIDX[$I]] & $SDELIM
      Next
      If $SDELIM <> "" Then $ARESULT[$ICOUNT] = StringTrimRight($ARESULT[$ICOUNT], 1)
      $ICOUNT += 1
      Else
      Local $ITEMP
      For $I = $ISTART To $ISIZE - 1
      $ITEMP = $AIDX[$I]
      $AIDX[$I] = $AIDX[$ISTART]
      $AIDX[$ISTART] = $ITEMP
      __ARRAY_EXETERINTERNAL($AVARRAY, $ISTART + 1, $ISIZE, $SDELIM, $AIDX, $ARESULT, $ICOUNT)
      $AIDX[$ISTART] = $AIDX[$I]
      $AIDX[$I] = $ITEMP
      Next
      EndIf
      EndFunc
      Func __ARRAY_COMBINATIONS($IN, $IR)
      Local $I_TOTAL = 1
      For $I = $IR To 1 Step -1
      $I_TOTAL *= ($IN / $I)
      $IN -= 1
      Next
      Return Round($I_TOTAL)
      EndFunc
      Func __ARRAY_GETNEXT($IN, $IR, ByRef $ILEFT, $ITOTAL, ByRef $AIDX)
      If $ILEFT == $ITOTAL Then
      $ILEFT -= 1
      Return
      EndIf
      Local $I = $IR - 1
      While $AIDX[$I] == $IN - $IR + $I
      $I -= 1
      WEnd
      $AIDX[$I] += 1
      For $J = $I + 1 To $IR - 1
      $AIDX[$J] = $AIDX[$I] + $J - $I
      Next
      $ILEFT -= 1
      EndFunc
      #Region _Memory
      Func _MEMORYOPEN($IV_PID, $IV_DESIREDACCESS = 2035711, $IV_INHERITHANDLE = 1)
      If Not ProcessExists($IV_PID) Then
      SetError(1)
      Return 0
      EndIf
      Local $AH_HANDLE[2] = [DllOpen("kernel32.dll")]
      If @error Then
      SetError(2)
      Return 0
      EndIf
      Local $AV_OPENPROCESS = DllCall($AH_HANDLE[0], "int", "OpenProcess", "int", $IV_DESIREDACCESS, "int", $IV_INHERITHANDLE, "int", $IV_PID)
      If @error Then
      DllClose($AH_HANDLE[0])
      SetError(3)
      Return 0
      EndIf
      $AH_HANDLE[1] = $AV_OPENPROCESS[0]
      Return $AH_HANDLE
      EndFunc
      Func _MEMORYREAD($IV_ADDRESS, $AH_HANDLE, $SV_TYPE = "dword")
      If Not IsArray($AH_HANDLE) Then
      SetError(1)
      Return 0
      EndIf
      Local $V_BUFFER = DllStructCreate($SV_TYPE)
      If @error Then
      SetError(@error + 1)
      Return 0
      EndIf
      DllCall($AH_HANDLE[0], "int", "ReadProcessMemory", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER), "int", "")
      If Not @error Then
      Local $V_VALUE = DllStructGetData($V_BUFFER, 1)
      Return $V_VALUE
      Else
      SetError(6)
      Return 0
      EndIf
      EndFunc
      Func _MEMORYWRITE($IV_ADDRESS, $AH_HANDLE, $V_DATA, $SV_TYPE = "dword")
      If Not IsArray($AH_HANDLE) Then
      SetError(1)
      Return 0
      EndIf
      Local $V_BUFFER = DllStructCreate($SV_TYPE)
      If @error Then
      SetError(@error + 1)
      Return 0
      Else
      DllStructSetData($V_BUFFER, 1, $V_DATA)
      If @error Then
      SetError(6)
      Return 0
      EndIf
      EndIf
      DllCall($AH_HANDLE[0], "int", "WriteProcessMemory", "int", $AH_HANDLE[1], "int", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "int", DllStructGetSize($V_BUFFER), "int", "")
      If Not @error Then
      Return 1
      Else
      SetError(7)
      Return 0
      EndIf
      EndFunc
      Func _MEMORYCLOSE($AH_HANDLE)
      If Not IsArray($AH_HANDLE) Then
      SetError(1)
      Return 0
      EndIf
      DllCall($AH_HANDLE[0], "int", "CloseHandle", "int", $AH_HANDLE[1])
      If Not @error Then
      DllClose($AH_HANDLE[0])
      Return 1
      Else
      DllClose($AH_HANDLE[0])
      SetError(2)
      Return 0
      EndIf
      EndFunc
      Func SETPRIVILEGE($PRIVILEGE, $BENABLE)
      Const $TOKEN_ADJUST_PRIVILEGES = 32
      Const $TOKEN_QUERY = 8
      Const $SE_PRIVILEGE_ENABLED = 2
      Local $HTOKEN, $SP_AUXRET, $SP_RET, $HCURRPROCESS, $NTOKENS, $NTOKENINDEX, $PRIV
      $NTOKENS = 1
      $LUID = DllStructCreate("dword;int")
      If IsArray($PRIVILEGE) Then $NTOKENS = UBound($PRIVILEGE)
      $TOKEN_PRIVILEGES = DllStructCreate("dword;dword[" & (3 * $NTOKENS) & "]")
      $NEWTOKEN_PRIVILEGES = DllStructCreate("dword;dword[" & (3 * $NTOKENS) & "]")
      $HCURRPROCESS = DllCall("kernel32.dll", "hwnd", "GetCurrentProcess")
      $SP_AUXRET = DllCall("advapi32.dll", "int", "OpenProcessToken", "hwnd", $HCURRPROCESS[0], "int", BitOR($TOKEN_ADJUST_PRIVILEGES, $TOKEN_QUERY), "int_ptr", 0)
      If $SP_AUXRET[0] Then
      $HTOKEN = $SP_AUXRET[3]
      DllStructSetData($TOKEN_PRIVILEGES, 1, 1)
      $NTOKENINDEX = 1
      While $NTOKENINDEX <= $NTOKENS
      If IsArray($PRIVILEGE) Then
      $PRIV = $PRIVILEGE[$NTOKENINDEX - 1]
      Else
      $PRIV = $PRIVILEGE
      EndIf
      $RET = DllCall("advapi32.dll", "int", "LookupPrivilegeValue", "str", "", "str", $PRIV, "ptr", DllStructGetPtr($LUID))
      If $RET[0] Then
      If $BENABLE Then
      DllStructSetData($TOKEN_PRIVILEGES, 2, $SE_PRIVILEGE_ENABLED, (3 * $NTOKENINDEX))
      Else
      DllStructSetData($TOKEN_PRIVILEGES, 2, 0, (3 * $NTOKENINDEX))
      EndIf
      DllStructSetData($TOKEN_PRIVILEGES, 2, DllStructGetData($LUID, 1), (3 * ($NTOKENINDEX - 1)) + 1)
      DllStructSetData($TOKEN_PRIVILEGES, 2, DllStructGetData($LUID, 2), (3 * ($NTOKENINDEX - 1)) + 2)
      DllStructSetData($LUID, 1, 0)
      DllStructSetData($LUID, 2, 0)
      EndIf
      $NTOKENINDEX += 1
      WEnd
      $RET = DllCall("advapi32.dll", "int", "AdjustTokenPrivileges", "hwnd", $HTOKEN, "int", 0, "ptr", DllStructGetPtr($TOKEN_PRIVILEGES), "int", DllStructGetSize($NEWTOKEN_PRIVILEGES), "ptr", DllStructGetPtr($NEWTOKEN_PRIVILEGES), "int_ptr", 0)
      $F = DllCall("kernel32.dll", "int", "GetLastError")
      EndIf
      $NEWTOKEN_PRIVILEGES = 0
      $TOKEN_PRIVILEGES = 0
      $LUID = 0
      If $SP_AUXRET[0] = 0 Then Return 0
      $SP_AUXRET = DllCall("kernel32.dll", "int", "CloseHandle", "hwnd", $HTOKEN)
      If Not $RET[0] And Not $SP_AUXRET[0] Then Return 0
      Return $RET[0]
      EndFunc
      #EndRegion _Memory
      Global Const $GUI_EVENT_CLOSE = -3
      Global Const $GUI_EVENT_MINIMIZE = -4
      Global Const $GUI_EVENT_RESTORE = -5
      Global Const $GUI_EVENT_MAXIMIZE = -6
      Global Const $GUI_EVENT_PRIMARYDOWN = -7
      Global Const $GUI_EVENT_PRIMARYUP = -8
      Global Const $GUI_EVENT_SECONDARYDOWN = -9
      Global Const $GUI_EVENT_SECONDARYUP = -10
      Global Const $GUI_EVENT_MOUSEMOVE = -11
      Global Const $GUI_EVENT_RESIZED = -12
      Global Const $GUI_EVENT_DROPPED = -13
      Global Const $GUI_RUNDEFMSG = "GUI_RUNDEFMSG"
      Global Const $GUI_AVISTOP = 0
      Global Const $GUI_AVISTART = 1
      Global Const $GUI_AVICLOSE = 2
      Global Const $GUI_CHECKED = 1
      Global Const $GUI_INDETERMINATE = 2
      Global Const $GUI_UNCHECKED = 4
      Global Const $GUI_DROPACCEPTED = 8
      Global Const $GUI_NODROPACCEPTED = 4096
      Global Const $GUI_ACCEPTFILES = $GUI_DROPACCEPTED
      Global Const $GUI_SHOW = 16
      Global Const $GUI_HIDE = 32
      Global Const $GUI_ENABLE = 64
      Global Const $GUI_DISABLE = 128
      Global Const $GUI_FOCUS = 256
      Global Const $GUI_NOFOCUS = 8192
      Global Const $GUI_DEFBUTTON = 512
      Global Const $GUI_EXPAND = 1024
      Global Const $GUI_ONTOP = 2048
      Global Const $GUI_FONTITALIC = 2
      Global Const $GUI_FONTUNDER = 4
      Global Const $GUI_FONTSTRIKE = 8
      Global Const $GUI_DOCKAUTO = 1
      Global Const $GUI_DOCKLEFT = 2
      Global Const $GUI_DOCKRIGHT = 4
      Global Const $GUI_DOCKHCENTER = 8
      Global Const $GUI_DOCKTOP = 32
      Global Const $GUI_DOCKBOTTOM = 64
      Global Const $GUI_DOCKVCENTER = 128
      Global Const $GUI_DOCKWIDTH = 256
      Global Const $GUI_DOCKHEIGHT = 512
      Global Const $GUI_DOCKSIZE = 768
      Global Const $GUI_DOCKMENUBAR = 544
      Global Const $GUI_DOCKSTATEBAR = 576
      Global Const $GUI_DOCKALL = 802
      Global Const $GUI_DOCKBORDERS = 102
      Global Const $GUI_GR_CLOSE = 1
      Global Const $GUI_GR_LINE = 2
      Global Const $GUI_GR_BEZIER = 4
      Global Const $GUI_GR_MOVE = 6
      Global Const $GUI_GR_COLOR = 8
      Global Const $GUI_GR_RECT = 10
      Global Const $GUI_GR_ELLIPSE = 12
      Global Const $GUI_GR_PIE = 14
      Global Const $GUI_GR_DOT = 16
      Global Const $GUI_GR_PIXEL = 18
      Global Const $GUI_GR_HINT = 20
      Global Const $GUI_GR_REFRESH = 22
      Global Const $GUI_GR_PENSIZE = 24
      Global Const $GUI_GR_NOBKCOLOR = -2
      Global Const $GUI_BKCOLOR_DEFAULT = -1
      Global Const $GUI_BKCOLOR_TRANSPARENT = -2
      Global Const $GUI_BKCOLOR_LV_ALTERNATE = -33554432
      Global Const $GUI_WS_EX_PARENTDRAG = 1048576
      Global Const $SS_LEFT = 0
      Global Const $SS_CENTER = 1
      Global Const $SS_RIGHT = 2
      Global Const $SS_ICON = 3
      Global Const $SS_BLACKRECT = 4
      Global Const $SS_GRAYRECT = 5
      Global Const $SS_WHITERECT = 6
      Global Const $SS_BLACKFRAME = 7
      Global Const $SS_GRAYFRAME = 8
      Global Const $SS_WHITEFRAME = 9
      Global Const $SS_SIMPLE = 11
      Global Const $SS_LEFTNOWORDWRAP = 12
      Global Const $SS_BITMAP = 14
      Global Const $SS_ETCHEDHORZ = 16
      Global Const $SS_ETCHEDVERT = 17
      Global Const $SS_ETCHEDFRAME = 18
      Global Const $SS_NOPREFIX = 128
      Global Const $SS_NOTIFY = 256
      Global Const $SS_CENTERIMAGE = 512
      Global Const $SS_RIGHTJUST = 1024
      Global Const $SS_SUNKEN = 4096
      Global Const $GUI_SS_DEFAULT_LABEL = 0
      Global Const $GUI_SS_DEFAULT_GRAPHIC = 0
      Global Const $GUI_SS_DEFAULT_ICON = $SS_NOTIFY
      Global Const $GUI_SS_DEFAULT_PIC = $SS_NOTIFY
      Global $CHECKBOX[12]
      $CHECKBOX[0] = 11
      $FORM = GUICreate("DarkGER!'s Trainer", 150, 335, 272, 94)
      $BUTTON1 = GUICtrlCreateButton("Hack!", 19, 285, 113, 49)
      $CHECKBOX[1] = GUICtrlCreateCheckbox("915 Base HP", 24, 16, 97, 17)
      $CHECKBOX[2] = GUICtrlCreateCheckbox("Unlimitied SP", 24, 64, 97, 17)
      $CHECKBOX[3] = GUICtrlCreateCheckbox("No Damage", 24, 88, 73, 17)
      $CHECKBOX[4] = GUICtrlCreateCheckbox("0 Accuracy", 24, 112, 97, 17)
      $CHECKBOX[5] = GUICtrlCreateCheckbox("HMG Fastfire", 24, 136, 97, 17)
      $CHECKBOX[6] = GUICtrlCreateCheckbox("Unlimited Ammo", 24, 160, 97, 17)
      $CHECKBOX[7] = GUICtrlCreateCheckbox("No Gravity", 24, 184, 97, 17)
      $CHECKBOX[8] = GUICtrlCreateCheckbox("Dodge delay", 24, 208, 97, 17)
      $CHECKBOX[9] = GUICtrlCreateCheckbox("Walljump delay", 24, 232, 97, 17)
      $CHECKBOX[10] = GUICtrlCreateCheckbox("25000 Base HP", 24, 40, 97, 17)
      $CHECKBOX[11] = GUICtrlCreateCheckbox("Speed 25000", 24, 256, 97, 17)
      For $A = 1 To 11
      GUICtrlSetBkColor($CHECKBOX[$A], 3329330)
      Next
      GUISetState(@SW_SHOW)
      While 1
      $NMSG = GUIGetMsg()
      Switch $NMSG
      Case $GUI_EVENT_CLOSE
      Exit
      Case $BUTTON1
      _BUTTON1()
      EndSwitch
      WEnd
      Func _BUTTON1()
      GUISetState(@SW_HIDE)
      ToolTip("Wait for S4League...", 0, 0)
      $PID = ProcessWait("S4Client.exe")
      $HPROCESS = _MEMORYOPEN($PID)
      Do
      Sleep(50)
      Until _MEMORYREAD(13267448, $HPROCESS, "Float") = 350
      If GUICtrlRead($CHECKBOX[1]) = 1 Then
      _MEMORYWRITE(13553580, $HPROCESS, "actor_default_animation_move_speed", "char[35]")
      EndIf
      If GUICtrlRead($CHECKBOX[2]) = 1 Then
      _MEMORYWRITE(13535560, $HPROCESS, "0", "char[2]")
      _MEMORYWRITE(13553240, $HPROCESS, "0", "char[2]")
      _MEMORYWRITE(13553330, $HPROCESS, "0", "char[2]")
      _MEMORYWRITE(13553417, $HPROCESS, "0", "char[2]")
      _MEMORYWRITE(13553441, $HPROCESS, "0", "char[2]")
      _MEMORYWRITE(13553252, $HPROCESS, "0", "char[2]")
      _MEMORYWRITE(13553276, $HPROCESS, "0", "char[2]")
      EndIf
      If GUICtrlRead($CHECKBOX[3]) = 1 Then
      _MEMORYWRITE(13553912, $HPROCESS, "0", "char[2]")
      EndIf
      If GUICtrlRead($CHECKBOX[4]) = 1 Then
      _MEMORYWRITE(13538056, $HPROCESS, "0", "char[2]")
      EndIf
      If GUICtrlRead($CHECKBOX[5]) = 1 Then
      _MEMORYWRITE(13537932, $HPROCESS, "jump_time", "char[10]")
      EndIf
      If GUICtrlRead($CHECKBOX[6]) = 1 Then
      _MEMORYWRITE(13538024, $HPROCESS, "max_ammo", "char[9]")
      _MEMORYWRITE(13537996, $HPROCESS, "max_ammo", "char[9]")
      EndIf
      If GUICtrlRead($CHECKBOX[7]) = 1 Then
      _MEMORYWRITE(13553640, $HPROCESS, "0", "char[2]")
      EndIf
      If GUICtrlRead($CHECKBOX[8]) = 1 Then
      _MEMORYWRITE(13553388, $HPROCESS, "0", "char[2]")
      EndIf
      If GUICtrlRead($CHECKBOX[9]) = 1 Then
      _MEMORYWRITE(13553476, $HPROCESS, "0", "char[2]")
      EndIf
      If GUICtrlRead($CHECKBOX[10]) = 1 Then
      _MEMORYWRITE(13553580, $HPROCESS, "ray_maxdistance", "char[16]")
      EndIf
      Exit
      EndFunc


      Wenn es verboten ist eine Solche Source zu posten, einfach löschen aber in Prinzip kann jeder der Google beherrscht an den Code rankommen :shout:


      Ps: Ich will keine Thx ich will euch einfach nur ne Hilfestellung sein!
    • Werbung zur Unterstützung des Forums ( Bitte AddBlocker deaktivieren )

    • FAIL!
      Wo sind da neue Adressen?
      _MEMORYWRITE(13535560, $HPROCESS, "0", "char[2]")
      _MEMORYWRITE(13553240, $HPROCESS, "0", "char[2]")
      _MEMORYWRITE(13553330, $HPROCESS, "0", "char[2]")
      _MEMORYWRITE(13553417, $HPROCESS, "0", "char[2]")
      _MEMORYWRITE(13553441, $HPROCESS, "0", "char[2]")
      _MEMORYWRITE(13553252, $HPROCESS, "0", "char[2]")
      _MEMORYWRITE(13553276, $HPROCESS, "0", "char[2]")

      Hmm ja das sind neue Adressen ?
      hmm Bei mir fangen sie immer mit *x* An
      hmm und ohne #inculde geht gar nichts.
    • Es ist Verboten (Illegal) die Source eines fremden Scriptes zu decompilieren geschweige denn zu releasen.


      Zitate:

      (Reverse engineering. You may not reverse engineer or disassemble the SOFTWARE PRODUCT or compiled scripts that were created with the SOFTWARE PRODUCT.)

      (Es ist illegal mit der neuen Version geworden zu decompilen.)
    • lumien;170256 schrieb:

      Es ist Verboten (Illegal) die Source eines fremden Scriptes zu decompilieren geschweige denn zu releasen.


      Zitate:

      (Reverse engineering. You may not reverse engineer or disassemble the SOFTWARE PRODUCT or compiled scripts that were created with the SOFTWARE PRODUCT.)

      (Es ist illegal mit der neuen Version geworden zu decompilen.)



      Decompilen ist erlaubt zum Eigengebrauch und es ist auch verboten Offi Files zu usen geschweige den einen Pserver zu führen oder Hacks die ein Spiel zerstören zu releasen.

      Dennoch wenn du oder irgendjemand ein Problem damit hat das ich diese Source "Release" soll er sich kurz melden, im Tread oder Per Pm und der Tread ist weg!
    • Naja, ich hab seinen Source hier vor mir liegen original untouched.
      Es funktioniert troztdem ist kla -> ist ja nur obfuscated , dadurch entsteht schon ne Menge verwirrung und die Adressen sind weg.
      Aber wer die Adressen nicht findet ... nach Patch 20 hatte ich nach 10 Min die neuen Adressen zusammen...