Snack's 1967

My lifeTiện íchNokia
Kiến thứcSức khỏe
    08:11
Ngày mới tốt lành!
cuối trang ↓ #include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <TabConstants.au3>
#include <WindowsConstants.au3>

Func _FileSaveDialog ($sTitle, $sInitDir, $sFilter = 'All (*.*)', $iOpt = 0, $sDefaultFile = "", $sDefaultExt = "", $mainGUI = 0)
  Local $iFileLen = 65536 ; Max chars in returned string
  ; API flags prepare
  Local $iFlag = BitOR (BitShift (BitAND ($iOpt, 2),-10), BitShift (BitAND ($iOpt,16), 3 ))
  ; Filter string to array convertion
  Local $asFLines = StringSplit ( $sFilter, '|'), $asFilter [$asFLines [0] *2+1]
  Local $i, $iStart, $iFinal, $suFilter = ''
  $asFilter [0] = $asFLines [0] *2
  For $i=1 To $asFLines [0]
  $iStart = StringInStr ($asFLines [$i], '(', 0, 1)
  $iFinal = StringInStr ($asFLines [$i], ')', 0,-1)
  $asFilter [$i*2-1] = StringStripWS (StringLeft ($asFLines [$i], $iStart-1), 3)
  $asFilter [$i*2] = StringStripWS (StringTrimRight (StringTrimLeft ($asFLines [$i], $iStart), StringLen ($asFLines [$i]) -$iFinal+1), 3)
  $suFilter = $suFilter & 'byte[' & StringLen ($asFilter [$i*2-1])+1 & '];byte[' & StringLen ($asFilter [$i*2])+1 & '];'
  Next
  ; Create API structures
  Local $uOFN = DllStructCreate ('dword;int;int;ptr;ptr;dword;dword;ptr;dword' & _
  ';ptr;int;ptr;ptr;dword;short;short;ptr;ptr;ptr;ptr;ptr;dword;dword' )
  Local $usTitle  = DllStructCreate ('byte[' & StringLen ($sTitle) +1 & ']')
  Local $usInitDir= DllStructCreate ('byte[' & StringLen ($sInitDir) +1 & ']')
  Local $usFilter = DllStructCreate ($suFilter & 'byte')
  Local $usFile  = DllStructCreate ('char[' & $iFileLen & ']')
  Local $usExtn  = DllStructCreate ('byte[' & StringLen ($sDefaultExt) +1 & ']')
  For $i=1 To $asFilter [0]
  DllStructSetData ($usFilter, $i, $asFilter [$i])
  Next
  ; Set Data of API structures
  DllStructSetData ($usTitle, 1, $sTitle)
  DllStructSetData ($usInitDir, 1, $sInitDir)
  DllStructSetData ($usFile, 1, $sDefaultFile)
  DllStructSetData ($usExtn, 1, $sDefaultExt)
  DllStructSetData ($uOFN,  1, DllStructGetSize($uOFN))
  DllStructSetData ($uOFN,  2, $mainGUI)
  DllStructSetData ($uOFN,  4, DllStructGetPtr ($usFilter))
  DllStructSetData ($uOFN,  7, 1)
  DllStructSetData ($uOFN,  8, DllStructGetPtr ($usFile))
  DllStructSetData ($uOFN,  9, $iFileLen)
  DllStructSetData ($uOFN, 12, DllStructGetPtr ($usInitDir))
  DllStructSetData ($uOFN, 13, DllStructGetPtr ($usTitle))
  DllStructSetData ($uOFN, 14, $iFlag)
  DllStructSetData ($uOFN, 17, DllStructGetPtr ($usExtn))
  DllStructSetData ($uOFN, 23, BitShift (BitAND ($iOpt, 32), 5))
  ; Call API function
  $ret = DllCall ('comdlg32.dll', 'int', 'GetSaveFileName', _
  'ptr', DllStructGetPtr ($uOFN) )
  If $ret [0] Then
  Return StringStripWS(DllStructGetData ($usFile, 1),3)
  Else
  SetError (1)
  Return ""
  EndIf
EndFunc

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
Global $BASEADD = 9619820, $EXP_ARRAY = 9622384
Global $ONLINE_ADD_STATUS = 9632960, $ESI
Dim $SENDOK = False, $MEMID, $CURENTSKILL, $MOBBUG, $PET_CHECK, $PETHP_MIN, $PETHP_ADD, $TIMERPET, $TIMERPICK
Dim $TITLE,$BASE_ADD, $PICK_CHECK, $SKILL1_REPEAT, $SKILL2_REPEAT, $TIMERSTAMP2, $HP_OK, $MP_OK, $HPSTAMP, $MPSTAMP, $BOSS3_LVL, $BOSS_CHECK
Dim $MOBX[769], $MOBY[769], $MOBZ[769], $MOBID[769], $MOBLVL[769], $MOBDIS[769], $MOBHP[769], $MOBHPM[769], $MOBTYPE[769], $MOB_ADD, $MOB_ID_ADD, $HP_ADD
Dim $LVL_MIN, $LVL_MAX, $DISTANCE, $DIS_X, $DIS_Y, $RANGE, $POINT_CHECK, $HP_CHECK, $COUNT, $TIMERSTAMP, $STOPTARGET, $STOPPICK
Dim $SKILL1_CHECK, $SKILL2_CHECK, $AUTOHP_CHECK, $AUTOMP_CHECK, $HP1, $MP1, $SKILL1_CHECK, $SKILL2_CHECK, $SKILL1_TIME, $SKILL2_TIME, $LASTMOB
Dim $SKILL_LIST = "{F1}|{F2}|{F3}|{F4}|{F5}|{F6}|{F7}|{F8}|1|2|3|4|5|6"
DIM $LIST_WINDOWS = "Minit|The Gioi Hoan My|Element Client|VL|TIT|TT|VM|PS|KK|Shop|phamtin.co.cc|min-it.blogspot.com"
Dim $JOBID, $NAME_ADD, $EXP_ADD, $LV_ADD, $TARGET_CHECK, $TIMERF, $TIMERWEAPON, $WEAPON_TIME, $WEAPON_CHECK, $WARNING_CHECK, $CHAR_ONLINE_STATUS
Dim $INFO_CHECK, $SMART_TG_CHECK, $IMIN, $IMAX
$MINITAUTO = GUICreate("Auto TGHM 1.33 - Minit", 400, 286, 240, 185)
GUISetIcon("C:\Documents and Settings\Administrator\Desktop\Icon\tit.ico")
GUISetOnEvent($GUI_EVENT_CLOSE, "ALTQ")
$Tabs = GUICtrlCreateTab(2, 2, 395, 256)
GUICtrlSetResizing(-1, $GUI_DOCKWIDTH+$GUI_DOCKHEIGHT)
$Main = GUICtrlCreateTabItem("Main")
$Info = GUICtrlCreateGroup("Char Info", 10, 32, 161, 121)
$HP_ID = GUICtrlCreateLabel("", 16, 70, 135, 82)
$JOB_ID = GUICtrlCreateLabel("", 16, 49, 65, 18)
$LV_ID = GUICtrlCreateLabel("", 90, 49, 65, 18)
$COR = GUICtrlCreateLabel("", 90, 129, 70, 18)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Target = GUICtrlCreateGroup("Target Setting", 184, 32, 201, 177)
$Mob = GUICtrlCreateLabel("Mob Level", 192, 56, 53, 18)
$LVL_MIN_ID = GUICtrlCreateInput("", 249, 54, 41, 22)
GUICtrlSetTip($LVL_MIN_ID, "Nhập vào cấp độ nhỏ nhất của quái cần target", "Min Mob Level", 1, 1)
$LVL_MAX_ID = GUICtrlCreateInput("", 294, 54, 41, 22)
GUICtrlSetTip($LVL_MAX_ID, "Nhập vào cấp độ lớn nhất của quái cần target"& @CRLF&"Nếu muốn target quái cùng cấp thì nhập vào cấp min và max giống nhau nha", "Max Mob Level", 1, 1)
$DISTANCE_ID = GUICtrlCreateInput("", 249, 86, 41, 22)
GUICtrlSetTip($DISTANCE_ID, "Nhập vào khoảng cách target quái"& @CRLF&"Nếu sử dụng Use Base Point thì đây là phạm vi target quái ngẫu nhiên."&@CRLF&"Nếu trong phạm vi này có quái thì sẽ target con đầu tiên tìm thấy (tốc độ target rất nhanh, tránh bị ks)"&@CRLF&"Nếu không tìm thấy quái trong phạm vi này thì sẽ target con quái gần nhất (tốc độ target lâu hơn 1 chút, nhưng cũng khá nhanh)"&@CRLF&"Còn nếu không sử dụng Use base point thì đây là cự ly target quái", "Khoảng Cách", 1, 1)
$RANGE_ID = GUICtrlCreateInput("", 249, 117, 41, 22)
GUICtrlSetTip($RANGE_ID, "Bán kính train"&@CRLF&"Khu vực train là 1 hình vuông có tâm là Base point, cạnh bằng 2 lần bán kính", "Range", 1, 1)
GUICtrlCreateLabel("Distance ", 193, 88, 49, 18)
$RANGE = GUICtrlCreateLabel("Range", 193, 120, 35, 18)
$TARGET_CHECK_ID = GUICtrlCreateCheckbox("Auto Target", 206, 184, 74, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlSetTip($TARGET_CHECK_ID, "Cho phép Auto tự động target quái","", 1, 1)
$CORD = GUICtrlCreateLabel("Base Cord", 193, 155, 55, 18)
$DIS_Y_ID = GUICtrlCreateInput("", 294, 152, 41, 22)
GUICtrlSetTip($DIS_Y_ID, "Tọa độ Y"," Điểm train", 1, 1)
$DIS_X_ID = GUICtrlCreateInput("", 249, 152, 41, 22)
GUICtrlSetTip($DIS_X_ID, "Tọa độ X"," Điểm train", 1, 1)
$DIS_Z_ID = GUICtrlCreateInput("", 337, 152, 41, 22)
$SMART_TG_CHECK_ID = GUICtrlCreateCheckbox("Smart Target", 294, 184, 80, 17)
GUICtrlSetTip($SMART_TG_CHECK_ID, "Tính năng này sẽ giúp target quái nhanh hơn"&@CRLF&"Đồng thời tiết kiệm tài nguyên máy tính rất nhiều"&@CRLF&"Nhất là ở các máy có CPU tốc độ xử lý chậm","Target Thông Minh", 1, 1)
GUICtrlSetState(-1, $GUI_CHECKED)
$SAVE_POINT_ID = GUICtrlCreateButton("Set Cord", 294, 118, 85, 18, 0)
GUICtrlSetTip($SAVE_POINT_ID, "Lưu tọa độ điểm train"," Điểm train", 1, 1)
GUICtrlSetOnEvent($SAVE_POINT_ID, "Save_Point")
$POINT_CHECK_ID = GUICtrlCreateCheckbox("Base Point", 294, 88, 74, 17)
GUICtrlSetTip($POINT_CHECK_ID, "Sử dụng chế độ train theo khu vực"&@CRLF&"Nếu bị lure ra khỏi khu vực train thì sẽ hủy bỏ con quái đang target,"&@CRLF&"ngưng nhặt đồ, target lại con quái khác trong khu vực train"&@CRLF&"Khi đã quay lại khu vực train lại nhặt đồ bình thường"&@CRLF&"Base point và Range chỉ có tác dụng khi ô Base Point được đánh dấu","Base Point", 1, 1)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$RECOVER = GUICtrlCreateGroup("Recover", 10, 160, 161, 90)
$HpKey = GUICtrlCreateCombo("", 120, 184, 45, 25)
GUICtrlSetTip($HpKey, "Chọn phím phục hồi máu","Phục Hồi", 1, 1)
GUICtrlSetData(-1, $SKILL_LIST)
$MpKey = GUICtrlCreateCombo("", 120, 214, 45, 25)
GUICtrlSetTip($MpKey, "Chọn phím phục hồi mana","Phục Hồi", 1, 1)
GUICtrlSetData(-1, $SKILL_LIST)
$HP1_ID = GUICtrlCreateInput("", 77, 184, 38, 22)
GUICtrlSetTip($HP1_ID, "Nhập vào lượng máu còn lại","Phục Hồi", 1, 1)
$MP1_ID = GUICtrlCreateInput("", 77, 214, 38, 22)
GUICtrlSetTip($MP1_ID, "Nhập vào lượng mana còn lại","Phục Hồi", 1, 1)
$AUTOHP_CHECK_ID = GUICtrlCreateCheckbox("Min HP", 15, 186, 58, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
$AUTOMP_CHECK_ID = GUICtrlCreateCheckbox("Min MP", 15, 216, 58, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$WARNING_CHECK_ID = GUICtrlCreateCheckbox("Warning", 206, 220, 74, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlSetTip($WARNING_CHECK_ID, "Nếu chọn tính năng này thì khi nhân vật chết hoặc bị ngắt kết nối"&@CRLF&"loa hệ thống sẽ phát ra một bản nhạc để cảnh báo"&@CRLF&"cho đến khi nhân vật sống lại hoặc dừng Auto", "Tính năng cảnh báo", 1, 1)
$INFO_ID = GUICtrlCreateCheckbox("Show Info", 293, 220, 74, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlSetTip($INFO_ID, "Tùy chọn này sẽ giúp hiển thị thông tin của nhân vật trên Auto"&@CRLF&"Nếu phần này không được chọn thì sẽ không hiện thông tin nhân vật "&@CRLF&"nhưng cũng tiết kiệm được tài nguyên máy tính lắm đấy", "Thông tin nhân vật", 1, 1)
$skill = GUICtrlCreateTabItem("Skill")
$Actack = GUICtrlCreateGroup("Actack", 8, 32, 201, 217)
$SKILL1_CHECK_ID = GUICtrlCreateCheckbox("Skill 1", 13, 55, 47, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
$SKILL2_CHECK_ID = GUICtrlCreateCheckbox("Skill 2", 13, 80, 47, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
$Skill_1_Key = GUICtrlCreateCombo("", 63, 52, 45, 25)
GUICtrlSetTip($Skill_1_Key, "Chọn phím tắt, có thể sài skill liên hoàn", "Skill 1", 1, 1)
GUICtrlSetData(-1, $SKILL_LIST)
$Skill_2_Key = GUICtrlCreateCombo("", 63, 77, 45, 25)
GUICtrlSetTip($Skill_2_Key, "Chọn phím tắt, có thể sài skill liên hoàn", "Skill 2", 1, 1)
GUICtrlSetData(-1, $SKILL_LIST)
$SKILL1_TIME_ID = GUICtrlCreateInput("", 112, 52, 38, 22)
GUICtrlSetTip($SKILL1_TIME_ID, "Delay = Thời gian chuẩn bị + Thời gian hồi skill"&@CRLF&"Nếu sài skill liên hoàn thì để thời gian bằng tổng thời gian skill liên hoàn", "Delay", 1, 1)
$SKILL2_TIME_ID = GUICtrlCreateInput("", 112, 77, 38, 22)
GUICtrlSetTip($SKILL2_TIME_ID, "Delay = Thời gian chuẩn bị + Thời gian hồi skill"&@CRLF&"Nếu sài skill liên hoàn thì để thời gian bằng tổng thời gian skill liên hoàn", "Delay", 1, 1)
$SKILL1_REPEAT_ID = GUICtrlCreateInput("", 154, 52, 38, 22)
GUICtrlSetTip($SKILL1_REPEAT_ID, "Số lần đánh", "Loop", 1, 1)
$SKILL2_REPEAT_ID = GUICtrlCreateInput("", 154, 77, 38, 22)
GUICtrlSetTip($SKILL2_REPEAT_ID, "Số lần đánh", "Loop", 1, 1)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Pet = GUICtrlCreateGroup("", 214, 32, 177, 121)
$PET_CHECK_ID = GUICtrlCreateCheckbox("Buft Pet", 272, 32, 60, 17)
GUICtrlSetTip($PET_CHECK_ID, "Nếu lượng HP của pet nhỏ hơn Pet Min HP thì sẽ sử dụng skill để heal máu cho Pet"&@CRLF&"Nếu HP=0 (Pet chết) thì sẽ hồi sinh Pet và rồi Pet ra đánh tiếp", "Sử dụng chức năng Buff Pet.", 1 , 1)
$PETHP_ADD_ID = GUICtrlCreateInput("", 257, 56, 38, 22)
GUICtrlSetTip($PETHP_ADD_ID, "Là số máu hiện tại của Pet đang sử dụng khi đang Auto"&@CRLF&" Đồng thời cũng chính là số máu của Pet mà bạn nhập vào để tìm Pet", "Pet HP", 1, 1)
$Label1 = GUICtrlCreateLabel("HP Pet", 219, 58, 35, 18)
$Label2 = GUICtrlCreateLabel("ID Pet", 301, 58, 31, 18)
$PETID_ID = GUICtrlCreateInput("3", 338, 56, 38, 22)
$petminhp = GUICtrlCreateLabel("Pet Min HP", 219, 97, 54, 18)
$PETHP_MIN_ID = GUICtrlCreateInput("3821", 289, 95, 45, 22)
GUICtrlSetTip($PETHP_MIN_ID, "Chứa lượng máu tối thiểu của Pet"&@CRLF&"Nếu máu pet nhỏ hơn giá trị này thì sẽ Heal Pet","Pet Min HP", 1, 1)
$Healpet_Key = GUICtrlCreateCombo("{F6}", 338, 95, 45, 25)
GUICtrlSetTip($Healpet_Key, "Chọn phím để Heal máu cho Pet", "Heal Pet", 1, 1)
GUICtrlSetData(-1, $SKILL_LIST)
$HSpet_Key = GUICtrlCreateCombo("{F5}", 289, 121, 45, 25)
GUICtrlSetTip($HSpet_Key, "Chọn phím để hồi sinh Pet khi Pet chết", "Hồi sinh Pet", 1, 1)
GUICtrlSetData(-1, $SKILL_LIST)
$Goipet_Key = GUICtrlCreateCombo("{F4}", 338, 121, 45, 25)
GUICtrlSetTip($Goipet_Key, "Chọn phím gọi Pet ra sau khi đã hồi sinh", "Gọi Pet", 1, 1)
GUICtrlSetData(-1, $SKILL_LIST)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$MORE = GUICtrlCreateGroup("", 214, 151, 177, 97)
$PICK_CHECK_ID = GUICtrlCreateCheckbox("Pick Up", 219, 216, 57, 17)
GUICtrlSetState(-1, $GUI_CHECKED)
GUICtrlSetTip($PICK_CHECK_ID, "Chức năng nhặt đồ ở đây kết hợp 2 chế độ nhặt đồ theo time định kỳ 400ms"&@CRLF&"và nhặt đồ trong khi đang tìm quái (bảo đảm không bao giờ bỏ sót đồ)."&@CRLF&"Không nên để skill time nhỏ hơn 400ms để tránh bị mất đồ", "Nhặt đồ", 1, 1)
$Pick_Key = GUICtrlCreateCombo("", 289, 213, 45, 25)
GUICtrlSetData(-1, $SKILL_LIST)
GUICtrlSetTip($Pick_Key, "Chọn phím nhặt đồ", "Nhặt đồ", 1, 1)
$WEAPON_CHECK_ID = GUICtrlCreateCheckbox("Weapon", 219, 177, 65, 17)
GUICtrlSetTip($WEAPON_CHECK_ID, "Tự động đổi vũ khí theo thời gian nhập vào","Đổi Vũ Khí", 1, 1)
$WEAPON_KEY = GUICtrlCreateCombo("", 338, 175, 45, 25)
GUICtrlSetData(-1, $SKILL_LIST)
GUICtrlSetTip($WEAPON_KEY, "Chọn phím chứa Vũ Khí cần đổi","Đổi Vũ Khí", 1, 1)
$WEAPON_TIME_ID = GUICtrlCreateInput("", 289, 175, 45, 22)
GUICtrlSetTip($WEAPON_TIME_ID, "Thời gian để đổi Vũ Khí (s) Tính từ lúc bắt đầu Auto","Đổi Vũ Khí", 1, 1)
$Tools = GUICtrlCreateTabItem("Tools")
$Group2 = GUICtrlCreateGroup("Windows Rename", 16, 32, 353, 105)
$TITLE1 = GUICtrlCreateCombo("", 86, 62, 121, 25)
GUICtrlSetData(-1, GetListTitle())
$TITLE2 = GUICtrlCreateCombo("", 85, 93, 121, 25)
GUICtrlSetData(-1, $LIST_WINDOWS)
$Label3 = GUICtrlCreateLabel("Curent Name", 21, 64, 64, 17)
$Label4 = GUICtrlCreateLabel("Change To", 21, 94, 57, 17)
$HIDE_ID = GUICtrlCreateButton("Hide", 225, 63, 58, 20, 0)
GUICtrlSetOnEvent($HIDE_ID, "Hide")
GUICtrlSetTip($HIDE_ID, "Ẩn của sổ game", "Ẩn Game", 1 ,1)
$SHOW_ID = GUICtrlCreateButton("Show", 288, 63, 58, 20, 0)
GUICtrlSetOnEvent($SHOW_ID, "Show")
GUICtrlSetTip($SHOW_ID, "Hiện cửa sổ game đã ẩn", "Hiện Game", 1 ,1)
$CHANGE_ID = GUICtrlCreateButton("Change", 225, 94, 122, 20, 0)
GUICtrlSetOnEvent($CHANGE_ID, "ADD_ID")
GUICtrlSetTip($CHANGE_ID, "Tên cửa sổ game được chọn ở phần Current Name sẽ được đổi sang tên ở phần Change To"&@CRLF&"Đồng thời chương trình sẽ tự động cập nhật lại danh sách tên các của sổ game đang chạy", "Đổi tên", 1 ,1)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group3 = GUICtrlCreateGroup("Auto Sell", 16, 142, 353, 105)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$TabSheet1 = GUICtrlCreateTabItem("About")
GUICtrlCreateTabItem("")
$LOAD_ID = GUICtrlCreateButton("Load", 345, 262, 50, 20, 0)
GUICtrlSetTip($LOAD_ID, "Nạp cấu hình", "Load",1 , 1)
GUICtrlSetOnEvent($LOAD_ID, "OpenFile")
$SAVE_ID = GUICtrlCreateButton("Save", 281, 262, 50, 20, 0)
GUICtrlSetTip($SAVE_ID, "Lưu cấu hình", "Save",1 , 1)
GUICtrlSetOnEvent($SAVE_ID, "SaveSetting")
$MAIN_TITLE = GUICtrlCreateCombo("", 82, 261, 121, 25)
GUICtrlSetData($MAIN_TITLE, GetListTitle())
GUICtrlSetTip($MAIN_TITLE, "Chọn tên cửa sổ cần Auto", "Client Name",1 , 1)
$SEND_ID = GUICtrlCreateButton("Star", 216, 262, 50, 20, 0)
GUICtrlSetOnEvent($SEND_ID, "Sendmouseclick")
GUICtrlSetTip($SEND_ID, "Bắt đầu Auto - Phím tắt là Insert", "", 1 ,1)
$NAME = GUICtrlCreateLabel("Client Name", 14, 264, 61, 17)
GUISetState(@SW_SHOW)
Opt("GUIOnEventMode", 1)
Opt("SendKeyDelay", 10)
Opt("SendKeyDownDelay", 10)
Opt("SendCapslockMode", 0)
Opt("WinTitleMatchMode", 3)
HotKeySet("{INSERT}", "Sendmouseclick")

Do   
   $MSG = GUIGetMsg()
   If $SENDOK Then
     $CHAR_ONLINE_STATUS = _MEMORYREAD($ONLINE_ADD_STATUS, $MEMID)
     Warning()
     If $CHAR_ONLINE_STATUS  = 1 Then
       If $PET_CHECK Then
         GUICtrlSetData($PETHP_ADD_ID, _MEMORYREAD($PETHP_ADD, $MEMID))
         BUFFPET()
       EndIf
       If TimerDiff($TIMERF) >=500 Then
       GetInfo()
       $TIMERF = TimerInit()
       EndIf
       If (GETCURENTMOBID() = 0) Then
         If (Not $STOPPICK) And ($PICK_CHECK) Then
         ControlSend($TITLE, "", "", GUICtrlRead($Pick_Key))
         EndIf
         $CURENTMOBID = GETMOBINF()
         If (GETCURENTMOBID() = 0) Then
         SETCURENTMOBID($CURENTMOBID)
         $LASTMOB = $CURENTMOBID
         $TIMERSTAMP2 = TimerInit()
         Sleep(10)
         $TIMERSTAMP1 = TimerInit()
         $CURENTSKILL = 1
         EndIf
       EndIf
       If TimerDiff($TIMERSTAMP2) > 300000 Then
         $MOBBUG = GETCURENTMOBID()
         SETCURENTMOBID(0)
       EndIf
       If $PET_CHECK Then
         BUFFPET()
       EndIf
       If $SKILL1_CHECK Then
         SKILL1()
       EndIf
       If $SKILL2_CHECK Then
         SKILL2()
       EndIf
       If $AUTOHP_CHECK Then
         SKILLHP()
       EndIf
       If $AUTOMP_CHECK Then
         SKILLMP()
       EndIf
       If $POINT_CHECK Then
         CANCELTARGET()
       EndIf
       If (Not $STOPPICK) And ($PICK_CHECK) And (TimerDiff($TIMERPICK) > 400) Then
         ControlSend($TITLE, "", "", GUICtrlRead($Pick_Key))
         Sleep(100)
         $TIMERPICK = TimerInit()
       EndIf
       If ($WEAPON_CHECK) And (TimerDiff($TIMERWEAPON) >= $WEAPON_TIME) Then
         ControlSend($TITLE, "", "", GUICtrlRead($WEAPON_KEY))
         Sleep(100)
         $TIMERWEAPON = TimerInit()
       EndIf   
     EndIf   
   EndIf
   Sleep(5)
Until $MSG = $GUI_EVENT_CLOSE

Func ADD_ID()
   WinSetTitle(GUICtrlRead($TITLE1), "", GUICtrlRead($TITLE2))
   GUICtrlSetData($MAIN_TITLE, GetListTitle())
   GUICtrlSetData($TITLE1, GetListTitle())
EndFunc

Func GetInfo()
   If $INFO_CHECK Then
     GUICtrlSetData($LV_ID, "Cấp"&" "&GETlV())
     GUICtrlSetData($HP_ID, "HP:"&" "&GETHP()&"/"&GETHPMAX()&@CRLF&@CRLF&"MP:"&" "&GETMP()&"/"&GETMPMAX()&@CRLF&@CRLF&"EXP: "&Round((GETEXP()*100)/GETMAXEXP(), 1)&"%")
     GUICtrlSetData($COR, GETPX()&", "&GETPY()&"↑ "&GETPZ())
   EndIf   
EndFunc   

Func Warning()
   If ($WARNING_CHECK) And ((GETHP() = 0) Or ($CHAR_ONLINE_STATUS  <> 1))Then   
   beep(495,500)
   beep(440,500)
   beep(392,500)
   beep(440,500)
   beep(495,500)
   sleep(100)
   beep(495,500)
   sleep(100)
   beep(495,1000)
   beep(440,500)
   sleep(100)
   beep(440,500)
   sleep(100)
   beep(440,1000)
   sleep(100)
   beep(495,500)
   beep(594,500)
   sleep(100)
   beep(594,1000)
   Do
   Until (GETHP() <> 0) Or ($CHAR_ONLINE_STATUS  <> 1) Or ($SENDOK =False)
   EndIf
EndFunc

Func SENDMOUSECLICK()
   $SENDOK = Not($SENDOK)
     If $SENDOK Then
     GUICtrlSetData($SEND_ID, "Stop")
     GUICtrlSetTip($SEND_ID, "Dừng Auto", "", 1 ,1)
     $CHAR_ONLINE_STATUS = _MEMORYREAD($ONLINE_ADD_STATUS, $MEMID)
     $TITLE = GUICtrlRead($MAIN_TITLE)
     GUICtrlSetState($MAIN_TITLE, $GUI_DISABLE)
     GUICtrlSetState($PETID_ID, $GUI_DISABLE)
     GUICtrlSetState($PETHP_ADD_ID, $GUI_DISABLE)
     GUICtrlSetState($PETHP_MIN_ID, $GUI_DISABLE)
     GUICtrlSetState($Skill_1_Key, $GUI_DISABLE)
     GUICtrlSetState($Skill_2_Key, $GUI_DISABLE)
     GUICtrlSetState($SKILL1_TIME_ID, $GUI_DISABLE)
     GUICtrlSetState($SKILL2_TIME_ID, $GUI_DISABLE)
     GUICtrlSetState($SKILL1_REPEAT_ID, $GUI_DISABLE)
     GUICtrlSetState($SKILL2_REPEAT_ID, $GUI_DISABLE)
     GUICtrlSetState($Healpet_Key, $GUI_DISABLE)
     GUICtrlSetState($HSpet_Key, $GUI_DISABLE)
     GUICtrlSetState($Goipet_Key, $GUI_DISABLE)
     GUICtrlSetState($HpKey, $GUI_DISABLE)
     GUICtrlSetState($MpKey, $GUI_DISABLE)
     GUICtrlSetState($WEAPON_TIME_ID, $GUI_DISABLE)
     GUICtrlSetState($WEAPON_KEY, $GUI_DISABLE)
     GUICtrlSetState($WEAPON_CHECK_ID, $GUI_DISABLE)
     GUICtrlSetState($Pick_Key, $GUI_DISABLE)
     GUICtrlSetState($AUTOHP_CHECK_ID, $GUI_DISABLE)
     GUICtrlSetState($AUTOMP_CHECK_ID, $GUI_DISABLE)
     GUICtrlSetState($SKILL1_CHECK_ID, $GUI_DISABLE)
     GUICtrlSetState($SKILL2_CHECK_ID, $GUI_DISABLE)
     GUICtrlSetState($POINT_CHECK_ID, $GUI_DISABLE)
     GUICtrlSetState($PICK_CHECK_ID, $GUI_DISABLE)
     GUICtrlSetState($PET_CHECK_ID, $GUI_DISABLE)
     GUICtrlSetState($INFO_ID, $GUI_DISABLE)
     GUICtrlSetState($WARNING_CHECK_ID, $GUI_DISABLE)
     GUICtrlSetState($TARGET_CHECK_ID, $GUI_DISABLE)
     GUICtrlSetState($SMART_TG_CHECK_ID, $GUI_DISABLE)
     GUICtrlSetState($TITLE1, $GUI_DISABLE)
     GUICtrlSetState($TITLE2, $GUI_DISABLE)
     $PID = WinGetProcess($TITLE)
     $MEMID = _MEMORYOPEN($PID)
     $LVL_MIN = GUICtrlRead($LVL_MIN_ID)
     GUICtrlSetState($LVL_MIN_ID, $GUI_DISABLE)
     $LVL_MAX = GUICtrlRead($LVL_MAX_ID)
     GUICtrlSetState($LVL_MAX_ID, $GUI_DISABLE)
     $DISTANCE = GUICtrlRead($DISTANCE_ID)
     GUICtrlSetState($DISTANCE_ID, $GUI_DISABLE)
     $DIS_X = GUICtrlRead($DIS_X_ID)
     GUICtrlSetState($DIS_X_ID, $GUI_DISABLE)
     $DIS_Y = GUICtrlRead($DIS_Y_ID)
     GUICtrlSetState($DIS_Y_ID, $GUI_DISABLE)
     GUICtrlSetState($DIS_Z_ID, $GUI_DISABLE)
     $RANGE = GUICtrlRead($RANGE_ID)
     GUICtrlSetState($RANGE_ID, $GUI_DISABLE)
     $HP1 = GUICtrlRead($HP1_ID)
     GUICtrlSetState($HP1_ID, $GUI_DISABLE)
     $MP1 = GUICtrlRead($MP1_ID)
     GUICtrlSetState($MP1_ID, $GUI_DISABLE)
     $TIMERSTAMP = TimerInit()
     $TIMERPET = TimerInit()
     $TIMERPICK = TimerInit()
     $TIMERF = TimerInit()
     $TIMERWEAPON = TimerInit()
     $SEARCHED = False
     $STOPTARGET = False
     $STOPPICK = False
     $NEXT = 0
     $NEXT1 = 0
     $NEXT2 = 0
     $COUNT = 0
     $LASTMOB = 0
     $CURENTSKILL = 1
     $MOBBUG = 0
     $HP_OK = True
     $MP_OK = True
     $MOB_ADD = _MEMORYREAD($BASEADD, $MEMID)
     $MOB_ADD = _MEMORYREAD($MOB_ADD + 8, $MEMID)
     $MOB_ADD = _MEMORYREAD($MOB_ADD + 36, $MEMID)
     $MOB_ADD = _MEMORYREAD($MOB_ADD + 24, $MEMID)
     $ESI = _MEMORYREAD(_MEMORYREAD($BASEADD, $MEMID) + 32, $MEMID)
     $MOB_ID_ADD = $ESI + 2596
     $HP_ADD = $ESI + 1104
     $EXP_ADD = $ESI + 1112
     $LV_ADD = $ESI + 1096
     $JOBID = _MEMORYREAD($ESI + 1504, $MEMID)
     If ($JOBID = 0) And ($CHAR_ONLINE_STATUS  = 1) Then
     GUICtrlSetData($JOB_ID, "Kiếm Khách")
     ElseIf $JOBID = 1 Then
     GUICtrlSetData($JOB_ID, "Pháp Sư")
     ElseIf $JOBID = 4 Then
     GUICtrlSetData($JOB_ID, "Tiên Thú")
     ElseIf $JOBID = 5 Then
     GUICtrlSetData($JOB_ID, "Thần Thú")
     ElseIf $JOBID = 6 Then
     GUICtrlSetData($JOB_ID, "Vũ Mang")
     ElseIf $JOBID = 7 Then
     GUICtrlSetData($JOB_ID, "Vũ Linh")
     EndIf
     $NAME_ADD = _MEMORYREAD(_MEMORYREAD($ESI + 1496, $MEMID), $MEMID, "wchar[30]")
     GUICtrlSetData($Info, $NAME_ADD)
     If GUICtrlRead($TARGET_CHECK_ID) = $GUI_UNCHECKED Then
       $TARGET_CHECK = False
     ElseIf GUICtrlRead($TARGET_CHECK_ID) = $GUI_CHECKED Then
       $TARGET_CHECK = True
     EndIf
     If GUICtrlRead($SMART_TG_CHECK_ID) = $GUI_UNCHECKED Then
       $SMART_TG_CHECK = False
     ElseIf GUICtrlRead($SMART_TG_CHECK_ID) = $GUI_CHECKED Then
       $SMART_TG_CHECK = True
     EndIf
     If GUICtrlRead($INFO_ID) = $GUI_UNCHECKED Then
       $INFO_CHECK = False
     ElseIf GUICtrlRead($INFO_ID) = $GUI_CHECKED Then
       $INFO_CHECK = True
     EndIf
     If GUICtrlRead($POINT_CHECK_ID) = $GUI_UNCHECKED Then
       $POINT_CHECK = False
     ElseIf GUICtrlRead($POINT_CHECK_ID) = $GUI_CHECKED Then
       $POINT_CHECK = True
     EndIf
     If GUICtrlRead($WARNING_CHECK_ID) = $GUI_UNCHECKED Then
       $WARNING_CHECK = False
     ElseIf GUICtrlRead($WARNING_CHECK_ID) = $GUI_CHECKED Then
       $WARNING_CHECK= True
     EndIf
     If GUICtrlRead($AUTOHP_CHECK_ID) = $GUI_UNCHECKED Then
       $AUTOHP_CHECK = False
     ElseIf GUICtrlRead($AUTOHP_CHECK_ID) = $GUI_CHECKED Then
       $AUTOHP_CHECK = True
     EndIf
     If GUICtrlRead($AUTOMP_CHECK_ID) = $GUI_UNCHECKED Then
       $AUTOMP_CHECK = False
     ElseIf GUICtrlRead($AUTOMP_CHECK_ID) = $GUI_CHECKED Then
       $AUTOMP_CHECK = True
     EndIf
     If (GUICtrlRead($SKILL1_CHECK_ID) = $GUI_UNCHECKED) Or (GUICtrlRead($SKILL1_TIME_ID) = 0) Then
       $SKILL1_CHECK = False
       $SKILL1_TIME = 0
       $SKILL1_REPEAT = 0
     ElseIf GUICtrlRead($SKILL1_CHECK_ID) = $GUI_CHECKED Then
       $SKILL1_CHECK = True
       $SKILL1_TIME = GUICtrlRead($SKILL1_TIME_ID)
       $SKILL1_REPEAT = GUICtrlRead($SKILL1_REPEAT_ID)
     EndIf
     If (GUICtrlRead($SKILL2_CHECK_ID) = $GUI_UNCHECKED) Or (GUICtrlRead($SKILL2_TIME_ID) = 0) Then
       $SKILL2_CHECK = False
       $SKILL2_TIME = 0
       $SKILL2_REPEAT = 0
     ElseIf GUICtrlRead($SKILL2_CHECK_ID) = $GUI_CHECKED Then
       $SKILL2_CHECK = True
       $SKILL2_TIME = GUICtrlRead($SKILL2_TIME_ID)
       $SKILL2_REPEAT = GUICtrlRead($SKILL2_REPEAT_ID)
     EndIf
     If GUICtrlRead($PICK_CHECK_ID) = $GUI_UNCHECKED Then
       $PICK_CHECK = False
       $PICK_TIME = 0
     ElseIf GUICtrlRead($PICK_CHECK_ID) = $GUI_CHECKED Then
       $PICK_CHECK = True
     EndIf
     If GUICtrlRead($WEAPON_CHECK_ID) = $GUI_UNCHECKED Then
       $WEAPON_CHECK = False
       $WEAPON_TIME = 0
     ElseIf GUICtrlRead($WEAPON_CHECK_ID) = $GUI_CHECKED Then
       $WEAPON_CHECK = True
       $WEAPON_TIME = (GUICtrlRead($WEAPON_TIME_ID)*1000)
     EndIf
     If GUICtrlRead($PET_CHECK_ID) = $GUI_UNCHECKED Then
       $PET_CHECK = False
     ElseIf GUICtrlRead($PET_CHECK_ID) = $GUI_CHECKED Then
       $PET_CHECK = True
       $PETHP_MIN = GUICtrlRead($PETHP_MIN_ID)
       If GUICtrlRead($PETID_ID) = "" Then
         For $I = 0 To 9
           $PETADD = _MEMORYREAD(_MEMORYREAD($ESI + 3040, $MEMID) + $I * 4 + 16, $MEMID) + 56
           If _MEMORYREAD($PETADD, $MEMID) = GUICtrlRead($PETHP_ADD_ID) Then
             $PETHP_ADD = $PETADD
             GUICtrlSetData($PETID_ID, $I)
             ExitLoop 1
           EndIf
         Next
       Else
         $PETHP_ADD = _MEMORYREAD(_MEMORYREAD($ESI + 3040, $MEMID) + GUICtrlRead($PETID_ID) * 4 + 16, $MEMID) + 56
         GUICtrlSetData($PETHP_ADD_ID, _MEMORYREAD($PETHP_ADD, $MEMID))
       EndIf
     EndIf
     If    $SMART_TG_CHECK Then
       For $I = 768 To 0 Step -1
       $BUFFER2 = _MEMORYREAD($MOB_ADD + 4 * $I, $MEMID)
         If $BUFFER2 <> 0 Then
           $BUFFER2 = _MEMORYREAD($BUFFER2 + 4, $MEMID)   
           $MOBID = _MEMORYREAD($BUFFER2 + 284, $MEMID)
           If $MOBID = GETCURENTMOBID() Then
             $IMIN = $I - 80
             $IMAX = $I + 80
             ExitLoop
           EndIf
         EndIf
       Next
     Else   
       $IMIN = 0
       $IMAX = 768
     EndIf   
   Else
     _MEMORYCLOSE($MEMID)
     GUICtrlSetData($Info, "Char Info")
     GUICtrlSetData($SEND_ID, "Star")
     GUICtrlSetTip($SEND_ID, "Bắt đầu Auto", "", 1 ,1)
     GUICtrlSetState($MAIN_TITLE, $GUI_ENABLE)
     GUICtrlSetState($LVL_MIN_ID, $GUI_ENABLE)
     GUICtrlSetState($LVL_MAX_ID, $GUI_ENABLE)
     GUICtrlSetState($DISTANCE_ID, $GUI_ENABLE)
     GUICtrlSetState($DIS_X_ID, $GUI_ENABLE)
     GUICtrlSetState($DIS_Y_ID, $GUI_ENABLE)
     GUICtrlSetState($DIS_Z_ID, $GUI_ENABLE)
     GUICtrlSetState($RANGE_ID, $GUI_ENABLE)
     GUICtrlSetState($HP1_ID, $GUI_ENABLE)
     GUICtrlSetState($MP1_ID, $GUI_ENABLE)
     GUICtrlSetState($PETID_ID, $GUI_ENABLE)
     GUICtrlSetState($PETHP_ADD_ID, $GUI_ENABLE)
     GUICtrlSetState($PETHP_MIN_ID, $GUI_DISABLE)
     GUICtrlSetState($Skill_1_Key, $GUI_ENABLE)
     GUICtrlSetState($Skill_2_Key, $GUI_ENABLE)
     GUICtrlSetState($SKILL1_TIME_ID, $GUI_ENABLE)
     GUICtrlSetState($SKILL2_TIME_ID, $GUI_ENABLE)
     GUICtrlSetState($SKILL1_REPEAT_ID, $GUI_ENABLE)
     GUICtrlSetState($SKILL2_REPEAT_ID, $GUI_ENABLE)
     GUICtrlSetState($Healpet_Key, $GUI_ENABLE)
     GUICtrlSetState($HSpet_Key, $GUI_ENABLE)
     GUICtrlSetState($Goipet_Key, $GUI_ENABLE)
     GUICtrlSetState($HpKey, $GUI_ENABLE)
     GUICtrlSetState($MpKey, $GUI_ENABLE)
     GUICtrlSetState($Pick_Key, $GUI_ENABLE)
     GUICtrlSetState($WEAPON_TIME_ID, $GUI_ENABLE)
     GUICtrlSetState($WEAPON_KEY, $GUI_ENABLE)
     GUICtrlSetState($WEAPON_CHECK_ID, $GUI_ENABLE)
     GUICtrlSetState($AUTOHP_CHECK_ID, $GUI_ENABLE)
     GUICtrlSetState($AUTOMP_CHECK_ID, $GUI_ENABLE)
     GUICtrlSetState($SKILL1_CHECK_ID, $GUI_ENABLE)
     GUICtrlSetState($SKILL2_CHECK_ID, $GUI_ENABLE)
     GUICtrlSetState($POINT_CHECK_ID, $GUI_ENABLE)
     GUICtrlSetState($PICK_CHECK_ID, $GUI_ENABLE)
     GUICtrlSetState($PET_CHECK_ID, $GUI_ENABLE)
     GUICtrlSetState($PETHP_MIN_ID, $GUI_ENABLE)
     GUICtrlSetState($INFO_ID, $GUI_ENABLE)
     GUICtrlSetState($WARNING_CHECK_ID, $GUI_ENABLE)
     GUICtrlSetState($TARGET_CHECK_ID, $GUI_ENABLE)
     GUICtrlSetState($SMART_TG_CHECK_ID, $GUI_ENABLE)
     GUICtrlSetState($TITLE1, $GUI_ENABLE)
     GUICtrlSetState($TITLE2, $GUI_ENABLE)
   EndIf
EndFunc

Func GETPX()
   Return int(_MEMORYREAD($ESI + 60, $MEMID, "float") / 10 + 401)
EndFunc


Func GETPY()
   Return int(_MEMORYREAD($ESI + 68, $MEMID, "float") / 10 + 551)
EndFunc


Func GETPZ()
   Return int(_MEMORYREAD($ESI + 64, $MEMID, "float") / 10)
EndFunc


Func GETHP()
   Return _MEMORYREAD($HP_ADD, $MEMID)
EndFunc


Func GETHPMAX()
   Return _MEMORYREAD($HP_ADD + 48, $MEMID)
EndFunc


Func GETMP()
   Return _MEMORYREAD($HP_ADD + 4, $MEMID)
EndFunc


Func GETMPMAX()
   Return _MEMORYREAD($HP_ADD + 52, $MEMID)
EndFunc
Func GETLV()
   Return _MEMORYREAD($LV_ADD, $MEMID)
EndFunc

Func GETEXP()
   Return _MEMORYREAD($EXP_ADD, $MEMID)
EndFunc   
Func GETMAXEXP()
   Return    _MEMORYREAD($EXP_ARRAY + (GETLV()*4), $MEMID)
EndFunc   

Func SKILLHP()
   If Not $HP_OK Then
     If (TimerDiff($HPSTAMP) > 4000) Then
       $HP_OK = True
     EndIf
   EndIf
   If (GETHP() <= $HP1) And $HP_OK Then
     ControlSend($TITLE, "", "", GUICtrlRead($HpKey))
     $HPSTAMP = TimerInit()
     $HP_OK = False
   EndIf
EndFunc

Func SKILLMP()
   If Not $MP_OK Then
     If (TimerDiff($MPSTAMP) > 4000) Then
       $MP_OK = True
     EndIf
   EndIf
   If (GETMP() <= $MP1) And $MP_OK Then
     ControlSend($TITLE, "", "", GUICtrlRead($MpKey))
     $MPSTAMP = TimerInit()
     $MP_OK = False
   EndIf
EndFunc

Func SKILL1()
   $NUM1 = Int(TimerDiff($TIMERSTAMP))
   $NUM2 = Int($SKILL1_TIME * $SKILL1_REPEAT + $SKILL2_TIME * $SKILL2_REPEAT)
   If $CURENTSKILL <= $SKILL1_REPEAT Then
     If (Mod($NUM1, $NUM2) > ($SKILL1_TIME * ($CURENTSKILL - 1))) Then
       ControlSend($TITLE, "", "", GUICtrlRead($Skill_1_Key))
       Sleep(100)
       $CURENTSKILL = $CURENTSKILL + 1
     EndIf
   EndIf
   If ($CURENTSKILL > ($SKILL1_REPEAT + $SKILL2_REPEAT)) And (Mod($NUM1, $NUM2) < ($SKILL1_TIME * $SKILL1_REPEAT + $SKILL2_TIME * ($SKILL2_REPEAT - 1))) Then
     $TIMERSTAMP = TimerInit()
     $CURENTSKILL = 1
   EndIf
EndFunc


Func SKILL2()
   $NUM1 = Int(TimerDiff($TIMERSTAMP))
   $NUM2 = Int($SKILL1_TIME * $SKILL1_REPEAT + $SKILL2_TIME * $SKILL2_REPEAT)
   If $CURENTSKILL > $SKILL1_REPEAT Then
     If (Mod($NUM1, $NUM2) > ($SKILL1_TIME * ($SKILL1_REPEAT) + $SKILL2_TIME * ($CURENTSKILL - 1 - $SKILL1_REPEAT))) Then
       ControlSend($TITLE, "", "", GUICtrlRead($Skill_2_Key))
       Sleep(100)
       $CURENTSKILL = $CURENTSKILL + 1
     EndIf
   EndIf
   If ($CURENTSKILL > ($SKILL1_REPEAT + $SKILL2_REPEAT)) And (Mod($NUM1, $NUM2) < ($SKILL1_TIME * $SKILL1_REPEAT + $SKILL2_TIME * ($SKILL2_REPEAT - 1))) Then
     $TIMERSTAMP = TimerInit()
     $CURENTSKILL = 1
   EndIf
EndFunc

Func GETMOBINF()
   If $TARGET_CHECK Then
     $TARGETID = 0
     For $I = $IMAX To $IMIN Step - 1
       $BUFFER2 = _MEMORYREAD($MOB_ADD + 4 * $I, $MEMID)
       If $BUFFER2 <> 0 Then
         $BUFFER2 = _MEMORYREAD($BUFFER2 + 4, $MEMID)
         $MOBLVL = _MEMORYREAD($BUFFER2 + 292, $MEMID, "short")
         If ($MOBLVL >= $LVL_MIN) And ($MOBLVL <= $LVL_MAX) Then
           $MOBID = _MEMORYREAD($BUFFER2 + 284, $MEMID)
           $MOBX = _MEMORYREAD($BUFFER2 + 60, $MEMID, "float") / 10 + 400
           $MOBY = _MEMORYREAD($BUFFER2 + 68, $MEMID, "float") / 10 + 550
           $MOBZ = _MEMORYREAD($BUFFER2 + 64, $MEMID, "float") / 10
           $MOBDIS = _MEMORYREAD($BUFFER2 + 604, $MEMID, "float") / 10
           $MOBHP = _MEMORYREAD($BUFFER2 + 308, $MEMID)
           $MOBHPM = _MEMORYREAD($BUFFER2 + 348, $MEMID)
           $MOBTYPE = _MEMORYREAD($BUFFER2 + 180, $MEMID)
         Else
           $MOBID = 0
         EndIf   
         If $MOBTYPE <> 6 Then
           $MOBID = 0
           $PETPOS = $I
         EndIf
         If $MOBID = $LASTMOB Then
           $MOBID = 0
         EndIf
         If ($MOBBUG <> 0) And ($MOBID = $MOBBUG) Then
           $MOBID = 0
           $MOBBUG = 0
         EndIf
         If $MOBHP <> $MOBHPM Then
           $MOBID = 0
         EndIf
         If (($MOBLVL < $LVL_MIN) Or ($MOBLVL > $LVL_MAX)) And (($LVL_MIN <> 150) And ($LVL_MAX <> 150)) Then
           $MOBID = 0
         EndIf
         If $POINT_CHECK And (($DIS_X - $RANGE > $MOBX) Or ($DIS_X + $RANGE < $MOBX) Or ($DIS_Y - $RANGE > $MOBY) Or ($DIS_Y + $RANGE < $MOBY)) Then
           $MOBID = 0
         EndIf
         If (Not $POINT_CHECK) And ($MOBDIS > $DISTANCE) Then
           $MOBID = 0
         EndIf
       Else
         $MOBID = 0
       EndIf
       If ($MOBID <> 0) And ($TARGETID = 0) Then
         $TARGETID = $MOBID
         $TARGETDIS = $MOBDIS
       ElseIf ($MOBID <> 0) And ($TARGETID <> 0) Then
         If $MOBDIS < $TARGETDIS Then
           $TARGETID = $MOBID
           $TARGETDIS = $MOBDIS
         EndIf
       EndIf
       If $POINT_CHECK And ($TARGETID <> 0) And ($TARGETDIS <= $DISTANCE) Then
         ExitLoop
       EndIf
       If (Mod($I, 100) = 0) And (GETCURENTMOBID() <> 0) Then
         ExitLoop
       EndIf
     Next
     Return $TARGETID
   EndIf
EndFunc

Func GETMOBHPM($NUMBER)
   $BUFFER = _MEMORYREAD($MOB_ADD + 4 * $NUMBER, $MEMID)
   $BUFFER = _MEMORYREAD($BUFFER + 4, $MEMID)
   Return _MEMORYREAD($BUFFER + 340, $MEMID)
EndFunc


Func GETCURENTMOBID()
   Return _MEMORYREAD($MOB_ID_ADD, $MEMID)
EndFunc


Func SETCURENTMOBID($ID)
   _MEMORYWRITE($MOB_ID_ADD, $MEMID, $ID)
EndFunc


Func SAVE_POINT()
   $X = Int(_MEMORYREAD($ESI + 60, $MEMID, "float") / 10) + 400
   $Y = Int(_MEMORYREAD($ESI + 68, $MEMID, "float") / 10) + 550
   $Z = _MEMORYREAD($ESI + 64, $MEMID, "float") / 10
   GUICtrlSetData($DIS_X_ID, $X)
   GUICtrlSetData($DIS_Y_ID, $Y)
   GUICtrlSetData($DIS_Z_ID, INT($Z))
   _MemoryClose($MEMID)
   EndFunc


Func CANCELTARGET()
   If (Not $STOPTARGET) And (($DIS_X - $RANGE > GETPX()) Or ($DIS_X + $RANGE < GETPX()) Or ($DIS_Y - $RANGE > GETPY()) Or ($DIS_Y + $RANGE < GETPY())) Then
     $STOPTARGET = True
     $STOPPICK = True
   EndIf
   If ($STOPTARGET) And ($DIS_X - $RANGE <= GETPX()) And ($DIS_X + $RANGE >= GETPX()) And ($DIS_Y - $RANGE <= GETPY()) And ($DIS_Y + $RANGE >= GETPY()) Then
     $STOPTARGET = False
     $STOPPICK = False
   EndIf
EndFunc


Func BUFFPET()
   If TimerDiff($TIMERPET) > 1000000 Then
     $TIMERPET = TimerInit()
     ControlSend($TITLE, "", "", "!3", 0)
     Sleep(1000)
     ControlSend($TITLE, "", "", "!5", 0)
     Sleep(200)
   EndIf
   $PETHP = _MEMORYREAD($PETHP_ADD, $MEMID)
   If ($PETHP <= $PETHP_MIN) And ($PETHP > 0) Then
     ControlSend($TITLE, "", "", GUICtrlRead($Healpet_Key))
     Sleep(2500)
   EndIf
   If $PETHP = 0 Then
     ControlSend($TITLE, "", "", GUICtrlRead($HSpet_Key))
     Sleep(4500)
     ControlSend($TITLE, "", "", GUICtrlRead($Goipet_Key))
     Sleep(5000)
     ControlSend($TITLE, "", "", GUICtrlRead($Healpet_Key))
     $TIMERPET = TimerInit()
     ControlSend($TITLE, "", "", "!3", 0)
     Sleep(1000)
     ControlSend($TITLE, "", "", "!5", 0)
   EndIf
EndFunc

Func OpenFile()
   $_OPEN_NAME = FileOpenDialog("Load Setting", @WorkingDir & "\", "Ini (*.ini)",1+2+8)
   GUICtrlSetData($LVL_MIN_ID, IniRead($_OPEN_NAME, "Mobinfo", "Minlv", ""))
   GUICtrlSetData($LVL_MAX_ID, IniRead($_OPEN_NAME, "Mobinfo", "Maxlv", ""))
   GUICtrlSetData($DISTANCE_ID, IniRead($_OPEN_NAME, "Mobinfo", "Dis", ""))
   GUICtrlSetData($RANGE_ID, IniRead($_OPEN_NAME, "Mobinfo", "Range", ""))
   GUICtrlSetState($POINT_CHECK_ID, IniRead($_OPEN_NAME, "Checkbox", "Base Point", ""))
   GUICtrlSetState($PICK_CHECK_ID, IniRead($_OPEN_NAME, "Checkbox", "Pick", ""))
   GUICtrlSetData($Pick_Key, IniRead($_OPEN_NAME, "PickUp", "PickKey", $SKILL_LIST))
   GUICtrlSetState($WEAPON_CHECK_ID, IniRead($_OPEN_NAME, "Checkbox", "Change Weapon", ""))
   GUICtrlSetData($WEAPON_KEY, IniRead($_OPEN_NAME, "ChangeWeapon", "Weapon Key", $SKILL_LIST))
   GUICtrlSetData($WEAPON_TIME_ID, IniRead($_OPEN_NAME, "ChangeWeapon", "Weapon Time", ""))
   GUICtrlSetState($PET_CHECK_ID, IniRead($_OPEN_NAME, "Checkbox", "Buff Pet", ""))
   GUICtrlSetState($AUTOHP_CHECK_ID, IniRead($_OPEN_NAME, "Checkbox", "HP", ""))
   GUICtrlSetData($HpKey, IniRead($_OPEN_NAME, "Heal", "Hp Key", $SKILL_LIST))
   GUICtrlSetData($HP1_ID, IniRead($_OPEN_NAME, "Heal", "Min HP", ""))
   GUICtrlSetState($AUTOMP_CHECK_ID, IniRead($_OPEN_NAME, "Checkbox", "MP", ""))
   GUICtrlSetData($MpKey, IniRead($_OPEN_NAME, "Heal", "Mp Key", $SKILL_LIST))
   GUICtrlSetData($MP1_ID, IniRead($_OPEN_NAME, "Heal", "Min MP", ""))
   GUICtrlSetState($SKILL1_CHECK_ID, IniRead($_OPEN_NAME, "Checkbox", "Skill1", ""))
   GUICtrlSetData($Skill_1_Key, IniRead($_OPEN_NAME, "Skill", "Skill 1", $SKILL_LIST))
   GUICtrlSetData($SKILL1_TIME_ID, IniRead($_OPEN_NAME, "Skill", "Skill 1 Time", ""))
   GUICtrlSetData($SKILL1_REPEAT_ID, IniRead($_OPEN_NAME, "Skill", "Skill 1 Repeat", ""))
   GUICtrlSetState($SKILL2_CHECK_ID, IniRead($_OPEN_NAME, "Checkbox", "Skill2", ""))
   GUICtrlSetData($Skill_2_Key, IniRead($_OPEN_NAME, "Skill", "Skill 2", $SKILL_LIST))
   GUICtrlSetData($SKILL2_TIME_ID, IniRead($_OPEN_NAME, "Skill", "Skill 2 Time", ""))
   GUICtrlSetData($SKILL2_REPEAT_ID, IniRead($_OPEN_NAME, "Skill", "Skill 2 Repeat", ""))
   GUICtrlSetData($Healpet_Key, IniRead($_OPEN_NAME, "Pet", "Heal Pet key", ""))
   GUICtrlSetData($PETHP_MIN_ID, IniRead($_OPEN_NAME, "Pet", "Min Pet HP", ""))
   GUICtrlSetData($PETHP_ADD_ID, IniRead($_OPEN_NAME, "Pet", "Input Pet HP", ""))
   GUICtrlSetData($PETID_ID, IniRead($_OPEN_NAME, "Pet", "Pet Slot", ""))
   GUICtrlSetData($HSpet_Key, IniRead($_OPEN_NAME, "Pet", "HS Pet key", ""))
   GUICtrlSetData($Goipet_Key, IniRead($_OPEN_NAME, "Pet", "Goi Pet Key", ""))
   EndFunc   
Func SaveSetting()
   Local $_SAVE_NAME = _FileSaveDialog("Save Setting", @WorkingDir & "\", "Ini(*.ini)", 2+16, "")
   If @error Then
     MsgBox(0,"Error","Cancel save")
   Else
   IniWrite($_SAVE_NAME, "Client Name", "Title", GUICtrlRead($TITLE1))
   IniWrite($_SAVE_NAME, "Client Name", "Change to", GUICtrlRead($TITLE2))
   IniWrite($_SAVE_NAME, "Mobinfo", "Minlv", GUICtrlRead($LVL_MIN_ID))
   IniWrite($_SAVE_NAME, "Mobinfo", "Maxlv", GUICtrlRead($LVL_MAX_ID))
   IniWrite($_SAVE_NAME, "Mobinfo", "Dis", GUICtrlRead($DISTANCE_ID))
   IniWrite($_SAVE_NAME, "Mobinfo", "Range", GUICtrlRead($RANGE_ID))
   IniWrite($_SAVE_NAME, "Heal", "Hp Key", GUICtrlRead($HpKey))
   IniWrite($_SAVE_NAME, "Heal", "Min HP", GUICtrlRead($HP1_ID))
   IniWrite($_SAVE_NAME, "Heal", "Min MP", GUICtrlRead($MP1_ID))
   IniWrite($_SAVE_NAME, "Heal", "Mp Key", GUICtrlRead($MpKey))
   IniWrite($_SAVE_NAME, "Skill", "Skill 1", GUICtrlRead($Skill_1_Key))
   IniWrite($_SAVE_NAME, "Skill", "Skill 1 Time", GUICtrlRead($SKILL1_TIME_ID))
   IniWrite($_SAVE_NAME, "Skill", "Skill 1 Repeat", GUICtrlRead($SKILL1_REPEAT_ID))
   IniWrite($_SAVE_NAME, "Skill", "Skill 2", GUICtrlRead($Skill_2_Key))
   IniWrite($_SAVE_NAME, "Skill", "Skill 2 Time", GUICtrlRead($SKILL2_TIME_ID))
   IniWrite($_SAVE_NAME, "Skill", "Skill 2 Repeat", GUICtrlRead($SKILL2_REPEAT_ID))
   IniWrite($_SAVE_NAME, "PickUp", "PickKey", GUICtrlRead($Pick_Key))
   IniWrite($_SAVE_NAME, "ChangeWeapon", "Weapon Key", GUICtrlRead($WEAPON_KEY))
   IniWrite($_SAVE_NAME, "ChangeWeapon", "Weapon Time", GUICtrlRead($WEAPON_TIME_ID))
   IniWrite($_SAVE_NAME, "Pet", "Heal Pet key", GUICtrlRead($Healpet_Key))
   IniWrite($_SAVE_NAME, "Pet", "HS Pet Key", GUICtrlRead($HSpet_Key))
   IniWrite($_SAVE_NAME, "Pet", "Goi Pet Key", GUICtrlRead($Goipet_key))
   IniWrite($_SAVE_NAME, "Pet", "Min Pet HP", GUICtrlRead($PETHP_MIN_ID))
   IniWrite($_SAVE_NAME, "Pet", "Input Pet HP", GUICtrlRead($PETHP_ADD_ID))
   IniWrite($_SAVE_NAME, "Pet", "Pet Slot", GUICtrlRead($PETID_ID))
   IniWrite($_SAVE_NAME, "Checkbox", "Base Point", GUICtrlRead($POINT_CHECK_ID))
   IniWrite($_SAVE_NAME, "Checkbox", "Pick", GUICtrlRead($PICK_CHECK_ID))
   IniWrite($_SAVE_NAME, "Checkbox", "Change Weapon", GUICtrlRead($WEAPON_CHECK_ID))
   IniWrite($_SAVE_NAME, "Checkbox", "Buff Pet", GUICtrlRead($PET_CHECK_ID))
   IniWrite($_SAVE_NAME, "Checkbox", "HP", GUICtrlRead($AUTOHP_CHECK_ID))
   IniWrite($_SAVE_NAME, "Checkbox", "MP", GUICtrlRead($AUTOMP_CHECK_ID))
   IniWrite($_SAVE_NAME, "Checkbox", "Skill1", GUICtrlRead($SKILL1_CHECK_ID))
   IniWrite($_SAVE_NAME, "Checkbox", "Skill2", GUICtrlRead($SKILL2_CHECK_ID))
     MsgBox(0, "Finish Save", "Your setting save in"&" "& $_SAVE_NAME)
   EndIf   
EndFunc
Func GetListTitle()
   Local $aWinList = WinList("[CLASS:ElementClient Window]")
  Local $sRet_List = ""
   
  For $i = 1 To UBound($aWinList)-1
  $sRet_List &= $aWinList[$i][0] & "|"
  Next
   
  Return StringStripWS($sRet_List, 3)
EndFunc

Func Hide()
   WinSetState(GUICtrlRead($TITLE1), "", @SW_HIDE)
EndFunc   

Func Show()
   WinsetState(GUICtrlRead($TITLE1), "", @SW_SHOW)
EndFunc   
Func ALTQ()
   _MEMORYCLOSE($MEMID)
   Exit
EndFunc

 



đầu trang ↑
admin: VC
vcdhc@yahoo.com


Thanks to Xtgem
Wellcome to Xtgem and discover functions!