#RequireAdmin
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <NomadMemory.au3>
Global $fHover = False
Global $fHover_heading = False
Global $fHover_set_button = False
Global $fHover_login_button = False
;~ Load last User settings
$victimID = FileReadLine(@ScriptDir&"\Data\saves\id.dll",1)
$victimName = FileReadLine(@ScriptDir&"\Data\saves\name.dll",1)
$CharPosition = FileReadLine(@ScriptDir&"\Data\saves\position.dll" ,1)
;~ Load last Fast login informations
$CharID = FileReadLine(@ScriptDir&"\Data\saves\fast_login\id .dll",1)
$CharPW = FileReadLine(@ScriptDir&"\Data\saves\fast_login\pw .dll",1)
$CharCODE = FileReadLine(@ScriptDir&"\Data\saves\fast_login\co de.dll",1)
;~ GUI & Stuff
#Region ### START Koda GUI section ### Form=C:\Users\rust_\OneDrive\Desktop\12Sky Lotus - Premium Edition\Data\koda\gui.kxf
$dupe_hack_2020 = GUICreate("12Sky Lotus Dupe Hack by RWH - Premium Edition", 450, 258, 553, 271, -1, BitOR($WS_EX_TOOLWINDOW,$WS_EX_WINDOWEDGE))
GUISetBkColor(0x000000)
$background_logo = GUICtrlCreatePic(@ScriptDir&"\Data\bg\ts_logo_1.jp g", 120, 8, 202, 52)
$group1_settings = GUICtrlCreateGroup("", 16, 64, 137, 185, -1, $WS_EX_TRANSPARENT)
$settings = GUICtrlCreateLabel("Settings", 59, 80, 50, 17)
GUICtrlSetFont(-1, 8, 800, 4, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$char_name = GUICtrlCreateLabel("Char. name:", 27, 104, 72, 14)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$user = GUICtrlCreateLabel("User ID:", 27, 144, 51, 14)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$position_char = GUICtrlCreateLabel("Char. selection:", 27, 184, 93, 14)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$position = GUICtrlCreateCombo($CharPosition, 24, 200, 121, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlSetData(-1, "[none]|1.First character|2.Second character|3.Third character")
$setbutton = GUICtrlCreateButton("Set", 24, 224, 123, 19)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$user_name = GUICtrlCreateCombo($victimName, 24, 120, 121, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
$user_id = GUICtrlCreateCombo($victimid, 24, 160, 121, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlCreateGroup("", -99, -99, 1, 1)
$group2_fastlogin = GUICtrlCreateGroup("", 160, 64, 137, 185)
$fastlogin = GUICtrlCreateLabel("Fast login", 203, 80, 59, 17)
GUICtrlSetFont(-1, 8, 800, 4, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$u_id = GUICtrlCreateLabel("User ID:", 171, 104, 51, 14)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$u_pw = GUICtrlCreateLabel("Password:", 171, 144, 62, 14)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$u_code = GUICtrlCreateLabel("Code:", 171, 184, 37, 14)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$login = GUICtrlCreateButton("Login", 168, 224, 123, 19)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$login_char_id = GUICtrlCreateCombo($CharID, 168, 120, 121, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
$login_char_pw = GUICtrlCreateCombo($CharPW, 168, 160, 121, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
$login_char_code = GUICtrlCreateCombo($CharCODE, 168, 200, 121, 25, BitOR($CBS_DROPDOWN,$CBS_AUTOHSCROLL))
GUICtrlCreateGroup("", -99, -99, 1, 1)
$group3_extras = GUICtrlCreateGroup("", 304, 64, 129, 185)
$save_last_info_1 = GUICtrlCreateLabel("Save the last", 327, 82, 79, 14)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$save_last_info_2 = GUICtrlCreateLabel("user informations.", 327, 98, 104, 17)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
$savebutton = GUICtrlCreateButton("X", 312, 80, 13, 33)
$bypasscode = GUICtrlCreateCheckbox("", 312, 120, 14, 14)
GUICtrlSetState(-1, $GUI_DISABLE)
GUICtrlSetState(-1, $GUI_CHECKED)
$bypasscode_1 = GUICtrlCreateLabel("Bypass code", 328, 120, 76, 14)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetCursor (-1, 2)
$gmmode_1 = GUICtrlCreateCheckbox("", 312, 140, 14, 14)
$gmmode_2 = GUICtrlCreateLabel("GM MODE", 328, 140, 76, 14)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
GUICtrlSetColor(-1, 0xFFFFFF)
GUICtrlSetCursor (-1, 2)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
;~ GUI & Stuff End
;~ Check whether game is started or not, if not close program
$LotusSky = ProcessExists("Lotus-12Sky.exe")
If $LotusSky = 0 Then
MsgBox(16,"Error #1","TwelveSky Lotus isn't started!")
Exit
EndIf
;~ Set window/gui always on top
WinSetOnTop("12Sky Lotus Dupe Hack by RWH - Premium Edition","",1)
While 1
;~ Bypass ID
Global $PID = ProcessExists("Lotus-12Sky.exe") ;~ Check for game..
Global $hOpenGame = _MemoryOpen($PID) ;~ Check for game..
Global $IDbypass = 0x00E5039C ;~ 6-digit code window address
Global $WriteIDbypass = _MemoryWrite($IDbypass, $hOpenGame, "0",'dword') ;~ Remove 6-digit window
_MemoryClose($hOpenGame)
;~ If mouse over savebutton then change data
$aInfo = GUIGetCursorInfo($dupe_hack_2020)
If Not @error Then $idHover = $aInfo[4]
;~ Save button
If $idHover = $savebutton Then
GUICtrlSetData($savebutton,"x")
$fHover_heading = True
Else
If $fHover_heading Then
$fHover_heading = False
GUICtrlSetData($savebutton,"X")
EndIf
;~ Heading_logo
If $idHover = $background_logo Then
ToolTip("USE THIS HACK IN RESOLUTION: 1024x768"&@CRLF&"Thanks for using. Have fun!")
GUICtrlSetImage($background_logo, @ScriptDir&"\Data\bg\ts_logo_2.jpg")
$fHover = True
Else
If $fHover Then
$fHover = False
ToolTip("")
GUICtrlSetImage($background_logo, @ScriptDir&"\Data\bg\ts_logo_1.jpg")
EndIf
;~ Set button
If $idHover = $setbutton Then
GUICtrlSetData($setbutton,"- Set -")
$fHover_set_button = True
Else
If $fHover_set_button Then
$fHover_set_button = False
GUICtrlSetData($setbutton,"Set")
EndIf
;~ Login button
If $idHover = $login Then
GUICtrlSetData($login,"- Login -")
$fHover_login_button = True
Else
If $fHover_login_button Then
$fHover_login_button = False
GUICtrlSetData($login,"Login")
EndIf
EndIf
EndIf
EndIf
EndIf
;~ End Region
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ProcessClose("IDbypass.exe")
Exit
Case $gmmode_1
;~ GM MODE ACTIVATED
If BitAnd(GUICtrlRead($gmmode_1), $GUI_CHECKED) Then
GUICtrlSetState($gmmode_1, $GUI_UNCHECKED)
;~ Check for game..
Global $PID = ProcessExists("Lotus-12Sky.exe")
Global $hOpenGame = _MemoryOpen($PID)
Global $BaseAddress = 0x00400000
Global $StaticOffsetModel = 0x0067F8D4
Global $StaticOffsetName = 0x0069C50C
Global $ReadWeaponName = _memoryread($BaseAddress + $StaticOffsetName, $hOpenGame) + 0x4
Global $ReadWeaponModel = _memoryread($BaseAddress + $StaticOffsetModel, $hOpenGame) + 0x2C
$WriteWeaponName = _MemoryWrite($ReadWeaponName, $hOpenGame, "GAME MASTER [MOD] by RWH®" , 'char[23]')
$WriteWeaponModel = _MemoryWrite($ReadWeaponModel, $hOpenGame, "519" , 'dword')
Global $gamemaster_address = 0x00554913
Global $namehack_1_address = 0x00A9FC70
Global $namehack_2_address = 0x0111ED78
Global $gmaster_address = _MemoryWrite($gamemaster_address, $hOpenGame, "1",'dword')
Global $namehack_1 = _MemoryWrite($namehack_1_address, $hOpenGame, "[GM]Ornn",'char[20]')
Global $namehack_1 = _MemoryWrite($namehack_2_address, $hOpenGame, "[GM]Ornn",'char[20]')
_MemoryClose($hOpenGame)
EndIf
Case $bypasscode
;~ Bypassing ID / Close IDbypass.exe
If BitAnd(GUICtrlRead($BypassCode),$GUI_UNCHECKED) = $GUI_UNCHECKED then
ProcessClose("IDbypass.exe")
EndIf
Case $setbutton
;~ Set Character name & user ID & character position 1/2/3
;~ Change character name & Change user ID
Global $PID = ProcessExists("Lotus-12Sky.exe")
Global $hOpenGame = _MemoryOpen($PID)
Global $1_CharName = 0x00E4B2D8
Global $2_CharName = 0x00E4A300
Global $3_CharName = 0x00E4C2B0
Global $ID = 0x005548C0
;~ Select character position 1/2/3
Global $ReadPosition = GUICtrlRead($position)
If $ReadPosition = "1.First character" Then
Global $WriteID = _MemoryWrite($ID, $hOpenGame, GUICtrlRead($user_id),'char[15]')
Global $WriteName = _MemoryWrite($1_CharName, $hOpenGame, GUICtrlRead($user_name),'char[15]')
EndIf
If $ReadPosition = "2.Second character" Then
Global $WriteID = _MemoryWrite($ID, $hOpenGame, GUICtrlRead($user_id),'char[15]')
Global $WriteName = _MemoryWrite($2_CharName, $hOpenGame, GUICtrlRead($user_name),'char[15]')
EndIf
If $ReadPosition = "3.Third character" Then
Global $WriteID = _MemoryWrite($ID, $hOpenGame, GUICtrlRead($user_id),'char[15]')
Global $WriteName = _MemoryWrite($3_CharName, $hOpenGame, GUICtrlRead($user_name),'char[15]')
EndIf
_MemoryClose($hOpenGame)
Case $savebutton
;~ Saves last entred informations
Global $ReadMyID = GUICtrlRead($user_id)
Global $ReadMyNAME = GUICtrlRead($user_name)
Global $ReadMyCode = GUICtrlRead($login_char_code)
Global $ReadMyLoginID = GUICtrlRead($login_char_id)
Global $ReadMyLoginPW = GUICtrlRead($login_char_pw)
Global $ReadMyPosition = GUICtrlRead($position)
;~ Write my ID
FileDelete(@ScriptDir&"\Data\saves\id.dll")
Sleep(50)
FileWrite(@ScriptDir&"\Data\saves\id.dll",$ReadMyI D)
;~ Write my NAME
FileDelete(@ScriptDir&"\Data\saves\name.dll")
Sleep(50)
FileWrite(@ScriptDir&"\Data\saves\name.dll",$ReadM yNAME)
;~ Write my CODE
FileDelete(@ScriptDir&"\Data\saves\fast_login\code .dll")
Sleep(50)
FileWrite(@ScriptDir&"\Data\saves\fast_login\code. dll",$ReadMyCode)
;~ Write my login_ID
FileDelete(@ScriptDir&"\Data\saves\fast_login\id.d ll")
Sleep(50)
FileWrite(@ScriptDir&"\Data\saves\fast_login\id.dl l",$ReadMyLoginID)
;~ Write my login_PW
FileDelete(@ScriptDir&"\Data\saves\fast_login\pw.d ll")
Sleep(50)
FileWrite(@ScriptDir&"\Data\saves\fast_login\pw.dl l",$ReadMyLoginPW)
;~ Write my Position
FileDelete(@ScriptDir&"\Data\saves\position.dll")
Sleep(50)
FileWrite(@ScriptDir&"\Data\saves\position.dll",$R eadMyPosition)
GUICtrlSetState($savebutton, $GUI_DISABLE)
Case $login
;~ Fast login into your account
Global $ReadID = GUICtrlRead($login_char_id)
Global $ReadPW = GUICtrlRead($login_char_pw)
Global $ReadCODE = GUICtrlRead($login_char_code)
MouseClick("left",683, 405,1,1)
Sleep(500)
MouseClick("right",960, 525,1,1)
Sleep(500)
Send($ReadID)
Sleep(50)
Send("{TAB}")
Send($ReadPW)
Sleep(50)
Send("{ENTER}")
Sleep(500)
MouseClick("left",970, 569,1,1)
Send($ReadCODE)
Sleep(50)
MouseClick("left",972, 630,1,1)
Sleep(100)
Global $ReadPosition = GUICtrlRead($position)
If $ReadPosition = "[none]" Then
EndIf
If $ReadPosition = "1.First character" Then
MouseClick("left",666, 577,1,1)
EndIf
If $ReadPosition = "2.Second character" Then
MouseClick("left",969, 626,1,1)
EndIf
If $ReadPosition = "3.Third character" Then
MouseClick("left",1255, 587,1,1)
EndIf
MouseClick("left",1377, 724,1,1)
EndSwitch
WEnd
|