Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > Final Fantasy XIV
You last visited: Today at 04:56

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Amateur FFXIV EXP/GRINDING Bot with autoit

Discussion on Amateur FFXIV EXP/GRINDING Bot with autoit within the Final Fantasy XIV forum part of the MMORPGs category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Oct 2006
Posts: 11
Received Thanks: 1
Amateur FFXIV EXP/GRINDING Bot with autoit

Hi folks, (and please excuse my average english)

I've made a little bot for final fantasy XIV, based on autoit and pixel detection (easy to set up), and i would appreciate any feedback on it. Just made a querty version but i don't know if it will work well on these keyboards.

Basically the bot's features are :

* Watch out for HP and MP.
* Self Healing and almost unkillable
* Uses buffs, abilites and weapon skills (you can configure it)
* User interface to configure the keys you want to use on your keyboard (Attack key, heal key, weapon skill key, refresh MP key, two different buff keys to randomly use buffs like protect or shock spikes (you chose the ability you want to use)
* Almost unstoppable : The bot uses the mini-map to look for obstacles and bypasses. It also checks your position to make sure you’re not blocked.

I explain everything on the bot's page :

Enjoy
Dok33 is offline  
Thanks
1 User
Old 01/16/2011, 16:19   #2
 
elite*gold: 0
Join Date: Oct 2006
Posts: 198
Received Thanks: 184
Quote:
Originally Posted by Dok33 View Post
Hi folks, (and please excuse my average english)

I've made a little bot for final fantasy XIV, based on autoit and pixel detection (easy to set up), and i would appreciate any feedback on it. Just made a querty version but i don't know if it will work well on these keyboards.

Basically the bot's features are :

* Watch out for HP and MP.
* Self Healing and almost unkillable
* Uses buffs, abilites and weapon skills (you can configure it)
* User interface to configure the keys you want to use on your keyboard (Attack key, heal key, weapon skill key, refresh MP key, two different buff keys to randomly use buffs like protect or shock spikes (you chose the ability you want to use)
* Almost unstoppable : The bot uses the mini-map to look for obstacles and bypasses. It also checks your position to make sure you’re not blocked.

I explain everything on the bot's page :

Enjoy
check this... should help you a lot...

HP Current:
Base: ffxivgame.exe+0x00D16358
Offset: 0x65

HP Maximum:
Base: ffxivgame.exe+0x00D16358
Offset: 0x75

AutoIt Sample:

Func playermaxhp()
OPENAIONMEMORY()
$STATICOFFSET = Dec("00D0BCE8")
Global $PID
Global $CUROFFSET[1]
$CUROFFSET[0] = 0
$BASEADDR = _MEMORYMODULEGETBASEADDRESS($PID, "ffxivgame.exe")
$FINALADDR = "0x" & Hex($BASEADDR + $STATICOFFSET)
$MEMTEST = _MEMORYREAD($FINALADDR, $OPENMEM)
$MEMTEST = _MEMORYREAD($MEMTEST + 0x75, $OPENMEM)
Return $MEMTEST
EndFunc
Chefes is offline  
Thanks
2 Users
Old 01/16/2011, 16:29   #3
 
elite*gold: 0
Join Date: Oct 2006
Posts: 11
Received Thanks: 1
i've been searching for this for hours, gonna have a look at this now if it works hell yeah it's gonna be something different, thank you.
Any informations or link about how to get the base offset and the pointers ? I tried it myself but in the end it always end up having the memory adress and the pointer related to it exactly the same value. It all leads to the same memory region.
Dok33 is offline  
Old 01/16/2011, 17:27   #4
 
elite*gold: 0
Join Date: Oct 2006
Posts: 198
Received Thanks: 184
Quote:
Originally Posted by Dok33 View Post
i've been searching for this for hours, gonna have a look at this now if it works hell yeah it's gonna be something different, thank you.
Any informations or link about how to get the base offset and the pointers ? I tried it myself but in the end it always end up having the memory adress and the pointer related to it exactly the same value. It all leads to the same memory region.
This one has been static for a while... once you have the HP location... - 0x65 and search for that
adress in CE... a green one should show up ;D

some of my memstuff... at the end the imported stuff of Nomad Mem UDF...

How do you handel the target reading?

You have to update the mem adress in belows Sample !! .. CT File on page 2

Code:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;
;;;;;   FFXIV Adjusted Memory Functions  (Offsets Hardcoded .... temp till all is running
;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

Func playerxpos()                                                                  ; Player Y pos
	OPENAIONMEMORY()
	$STATICOFFSET = Dec("00D0A36C")
	Global $PID
	Global $CUROFFSET[1]
	$CUROFFSET[0] = 0
	$BASEADDR = _MEMORYMODULEGETBASEADDRESS($PID, "ffxivgame.exe")
	$FINALADDR = "0x" & Hex($BASEADDR + $STATICOFFSET)
	$MEMTEST = _MEMORYREAD($FINALADDR, $OPENMEM)
	$MEMTEST = _MEMORYREAD($MEMTEST + 0x154, $OPENMEM)
	$MEMTEST = _MEMORYREAD($MEMTEST + 0x18, $OPENMEM)
	$MEMTEST = _MEMORYREAD($MEMTEST + 0x10, $OPENMEM, "Float")
;~ 	MsgBox( 0 , "foeget" , $MEMTEST )
	Return $MEMTEST
EndFunc

Func playerzpos()                                                                  ; Player Y pos
	OPENAIONMEMORY()
	$STATICOFFSET = Dec("00D0A36C")
	Global $PID
	Global $CUROFFSET[1]
	$CUROFFSET[0] = 0
	$BASEADDR = _MEMORYMODULEGETBASEADDRESS($PID, "ffxivgame.exe")
	$FINALADDR = "0x" & Hex($BASEADDR + $STATICOFFSET)
	$MEMTEST = _MEMORYREAD($FINALADDR, $OPENMEM)
	$MEMTEST = _MEMORYREAD($MEMTEST + 0x154, $OPENMEM)
	$MEMTEST = _MEMORYREAD($MEMTEST + 0x18, $OPENMEM)
	$MEMTEST = _MEMORYREAD($MEMTEST + 0x14, $OPENMEM, "Float")
;~ 	MsgBox( 0 , "foeget" , $MEMTEST )
	Return $MEMTEST
EndFunc

Func playerypos()                                                                  ; Player Y pos
	OPENAIONMEMORY()
	$STATICOFFSET = Dec("00D0A36C")
	Global $PID
	Global $CUROFFSET[1]
	$CUROFFSET[0] = 0
	$BASEADDR = _MEMORYMODULEGETBASEADDRESS($PID, "ffxivgame.exe")
	$FINALADDR = "0x" & Hex($BASEADDR + $STATICOFFSET)
	$MEMTEST = _MEMORYREAD($FINALADDR, $OPENMEM)
	$MEMTEST = _MEMORYREAD($MEMTEST + 0x154, $OPENMEM)
	$MEMTEST = _MEMORYREAD($MEMTEST + 0x18, $OPENMEM)
	$MEMTEST = _MEMORYREAD($MEMTEST + 0x18, $OPENMEM, "Float")
;~ 	MsgBox( 0 , "foeget" , $MEMTEST )
	Return $MEMTEST
EndFunc

 ; Angel of the Player 360° / 2 :)   ....  0 - 180   and -180 - 0
Func playerrotation()
;~ 	Return MEMREADDLL($playerrotation, "float")
	OPENAIONMEMORY()
	$STATICOFFSET = Dec("00D09274")
	Global $PID
	Global $CUROFFSET[1]
	$CUROFFSET[0] = 0
	$BASEADDR = _MEMORYMODULEGETBASEADDRESS($PID, "ffxivgame.exe")
	$FINALADDR = "0x" & Hex($BASEADDR + $STATICOFFSET)
	$MEMTEST = _MEMORYREAD($FINALADDR, $OPENMEM)
	$MEMTEST = _MEMORYREAD($MEMTEST + 0x40  , $OPENMEM)
	$MEMTEST = _MEMORYREAD($MEMTEST + 0x64  , $OPENMEM )
	$MEMTEST = _MEMORYREAD($MEMTEST + 0x1A4 , $OPENMEM )
	$MEMTEST = _MEMORYREAD($MEMTEST         , $OPENMEM )
	$MEMTEST = _MEMORYREAD($MEMTEST + 0x10  , $OPENMEM )
	$camx = _MEMORYREAD($MEMTEST    + 0x030 , $OPENMEM, "Float")
	$camy = _MEMORYREAD($MEMTEST    + 0x038 , $OPENMEM, "Float")
;~ 	MsgBox( 0 , "cy" ,  $camy )
	$playerxcoord = playerxpos()
	$playerycoord = playerypos()
;~ 	$playerzcoord = playerzpos()
	$diffy = round( $camy - $playerycoord,6)
	$diffx = round($camx - $playerxcoord,6)
	$Steigung = $diffy/ $diffx
	$pi = 3.14159265358979
	$RADZUGRAD = 180 / $pi
	$GRAD = atan( $Steigung ) * $RADZUGRAD
    $GRAD = 90  - $GRAD

if      $diffy > 0 and $diffx > 0 Then
		$GRAD = 90 - $GRAD +270
		Return $GRAD
ElseIf  $diffy < 0 and $diffx < 0 Then
		$grad =   180 - $GRAD
		Return   $GRAD
ElseIf  $diffy > 0 and $diffx < 0 Then
		$grad = ( 180 - $GRAD )
		Return $GRAD
ElseIf  $diffy < 0 and $diffx > 0 Then
		$grad =  (180 - $GRAD ) +180
		Return $GRAD
EndIf
EndFunc

Func playermaxhp()
	OPENAIONMEMORY()
	$STATICOFFSET = Dec("00D0BCE8")
	Global $PID
	Global $CUROFFSET[1]
	$CUROFFSET[0] = 0
	$BASEADDR = _MEMORYMODULEGETBASEADDRESS($PID, "ffxivgame.exe")
	$FINALADDR = "0x" & Hex($BASEADDR + $STATICOFFSET)
	$MEMTEST = _MEMORYREAD($FINALADDR, $OPENMEM)
	$MEMTEST = _MEMORYREAD($MEMTEST + 0x75, $OPENMEM)
	Return $MEMTEST
EndFunc
Func playerCurrectHp()
	OPENAIONMEMORY()
	$STATICOFFSET = Dec("00D0BCE8")
	Global $PID
	Global $CUROFFSET[1]
	$CUROFFSET[0] = 0
	$BASEADDR = _MEMORYMODULEGETBASEADDRESS($PID, "ffxivgame.exe")
	$FINALADDR = "0x" & Hex($BASEADDR + $STATICOFFSET)
	$MEMTEST = _MEMORYREAD($FINALADDR, $OPENMEM)
	$MEMTEST = _MEMORYREAD($MEMTEST + 0x65, $OPENMEM)
	Return $MEMTEST
EndFunc

Func playerCurrectMpPercent()
	$VAL = playerCurrectMana()
	$PVAL = ($VAL * 100) / playerMaxMana()
	Return Round($PVAL)
EndFunc

Func playerCurrectHpPercent()
	$VAL = playerCurrectHp()
	$PVAL = ($VAL * 100) / playerMaxHP()
	Return Round($PVAL)
EndFunc

Func playerCurrectMana()
	OPENAIONMEMORY()
	$STATICOFFSET = Dec("00D0BCE8")
	Global $PID
	Global $CUROFFSET[1]
	$CUROFFSET[0] = 0
	$BASEADDR = _MEMORYMODULEGETBASEADDRESS($PID, "ffxivgame.exe")
	$FINALADDR = "0x" & Hex($BASEADDR + $STATICOFFSET)
	$MEMTEST = _MEMORYREAD($FINALADDR, $OPENMEM)
	$MEMTEST = _MEMORYREAD($MEMTEST + 0x85, $OPENMEM)
	Return $MEMTEST
EndFunc

func playerMaxMana()
	OPENAIONMEMORY()
	$STATICOFFSET = Dec("00D0BCE8")
	Global $PID
	Global $CUROFFSET[1]
	$CUROFFSET[0] = 0
	$BASEADDR = _MEMORYMODULEGETBASEADDRESS($PID, "ffxivgame.exe")
	$FINALADDR = "0x" & Hex($BASEADDR + $STATICOFFSET)
	$MEMTEST = _MEMORYREAD($FINALADDR, $OPENMEM)
	$MEMTEST = _MEMORYREAD($MEMTEST + 0x87, $OPENMEM)
	Return $MEMTEST
endfunc

















;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;,,,,,,,     Nomad Mem add   ,,,;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

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], "uint", "OpenProcess", "uint", $IV_DESIREDACCESS, "uint", $IV_INHERITHANDLE, "uint", $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], "uint", "ReadProcessMemory", "uint", $AH_HANDLE[1], "uint", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "uint", DllStructGetSize($V_BUFFER), "uint", "")
	If Not @error Then
		Local $V_VALUE = DllStructGetData($V_BUFFER, 1)
		Return $V_VALUE
	Else
		SetError(6)
		Return 0
	EndIf
EndFunc

Func MemWriteDLL($offset, $data)
	$StaticOffset = Dec($offset)
	Global $pid
	Global $CUROffset[1]
	$CUROffset[0] = 0
	$baseADDR = _MemoryModuleGetBaseAddress($pid, "ffxivgame.exe")
	$finalADDR = "0x" & Hex($baseADDR + $StaticOffset)

	_MemoryWrite($finalADDR, $openmem, $data, "float")
	Return
EndFunc   ;==>MemWriteDLL


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], "uint", "WriteProcessMemory", "uint", $AH_HANDLE[1], "uint", $IV_ADDRESS, "ptr", DllStructGetPtr($V_BUFFER), "uint", DllStructGetSize($V_BUFFER), "uint", "")
	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], "uint", "CloseHandle", "uint", $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 _MEMORYMODULEGETBASEADDRESS($IPID, $SMODULE)
	If Not ProcessExists($IPID) Then Return SetError(1, 0, 0)
	If Not IsString($SMODULE) Then Return SetError(2, 0, 0)
	Local $PSAPI = DllOpen("psapi.dll")
	Local $HPROCESS
	Local $PERMISSION = BitOR(2, 1024, 8, 16, 32)
	If $IPID > 0 Then
		Local $HPROCESS = DllCall("kernel32.dll", "ptr", "OpenProcess", "dword", $PERMISSION, "uint", 0, "dword", $IPID)
		If $HPROCESS[0] Then
			$HPROCESS = $HPROCESS[0]
		EndIf
	EndIf
	Local $MODULES = DllStructCreate("ptr[1024]")
	Local $ACALL = DllCall($PSAPI, "uint", "EnumProcessModules", "ptr", $HPROCESS, "ptr", DllStructGetPtr($MODULES), "dword", DllStructGetSize($MODULES), "dword*", 0)
	If $ACALL[4] > 0 Then
		Local $IMODNUM = $ACALL[4] / 4
		Local $ATEMP
		For $I = 1 To $IMODNUM
			$ATEMP = DllCall($PSAPI, "dword", "GetModuleBaseNameW", "ptr", $HPROCESS, "ptr", Ptr(DllStructGetData($MODULES, 1, $I)), "wstr", "", "dword", 260)
			If $ATEMP[3] = $SMODULE Then
				DllClose($PSAPI)
				Return Ptr(DllStructGetData($MODULES, 1, $I))
			EndIf
		Next
	EndIf
	DllClose($PSAPI)
	Return SetError(-1, 0, 0)
EndFunc
Func SETPRIVILEGE($PRIVILEGE, $BENABLE)
	Const $nTOKEN_ADJUST_PRIVILEGES = 32
	Const $nTOKEN_QUERY = 8
	Const $nSE_PRIVILEGE_ENABLED = 2
	Local $HTOKEN, $SP_AUXRET, $SP_RET, $HCURRPROCESS, $NTOKENS, $NTOKENINDEX, $PRIV
	$NTOKENS = 1
	$LUID = DllStructCreate("dword;uint")
	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", "uint", "OpenProcessToken", "hwnd", $HCURRPROCESS[0], "uint", BitOR($nTOKEN_ADJUST_PRIVILEGES, $nTOKEN_QUERY), "uint_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", "uint", "LookupPrivilegeValue", "str", "", "str", $PRIV, "ptr", DllStructGetPtr($LUID))
			If $RET[0] Then
				If $BENABLE Then
					DllStructSetData($TOKEN_PRIVILEGES, 2, $nSE_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", "uint", "AdjustTokenPrivileges", "hwnd", $HTOKEN, "uint", 0, "ptr", DllStructGetPtr($TOKEN_PRIVILEGES), "uint", DllStructGetSize($NEWTOKEN_PRIVILEGES), "ptr", DllStructGetPtr($NEWTOKEN_PRIVILEGES), "uint_ptr", 0)
		$F = DllCall("kernel32.dll", "uint", "GetLastError")
	EndIf
	$NEWTOKEN_PRIVILEGES = 0
	$TOKEN_PRIVILEGES = 0
	$LUID = 0
	If $SP_AUXRET[0] = 0 Then Return 0
	$SP_AUXRET = DllCall("kernel32.dll", "uint", "CloseHandle", "hwnd", $HTOKEN)
	If Not $RET[0] And Not $SP_AUXRET[0] Then Return 0
	Return $RET[0]
EndFunc


Func ProcessGetWindow($PId)
    If IsNumber($PId) = 0 Or ProcessExists(ProcessGetName($PId)) = 0 Then
        SetError(1)
    Else

        Local $WinList = WinList()
        Local $i = 1
        Local $WindowTitle = ""

        While $i <= $WinList[0][0] And $WindowTitle = ""
            If WinGetProcess($WinList[$i][0], "") = $PId Then
                $WindowTitle = $WinList[$i][0]
            Else
                $i = $i + 1
            EndIf
        WEnd

        Return $WindowTitle
    EndIf
EndFunc   ;==>ProcessGetWindow

Func ProcessGetId($Process)
    If IsString($Process) = 0 Then
        SetError(2)
    ElseIf ProcessExists($Process) = 0 Then
        SetError(1)
    Else

        Local $PList = ProcessList($Process)
        Local $i
        Local $PId[$PList[0][0] + 1]

        $PId[0] = $PList[0][0]

        For $i = 1 To $PList[0][0]
            $PId[$i] = $PList[$i][1]
        Next

        Return $PId
    EndIf
EndFunc   ;==>ProcessGetId

Func ProcessGetName($PId)
    If IsNumber($PId) = 0 Then
        SetError(2)
    ElseIf $PId > 9999 Then
        SetError(1)
    Else

        Local $PList = ProcessList()
        Local $i = 1
        Local $ProcessName = ""

        While $i <= $PList[0][0] And $ProcessName = ""
            If $PList[$i][1] = $PId Then
                $ProcessName = $PList[$i][0]
            Else
                $i = $i + 1
            EndIf
        WEnd

        Return $ProcessName
    EndIf
EndFunc   ;==>ProcessGetName
Chefes is offline  
Thanks
1 User
Old 01/16/2011, 20:59   #5
 
antonbb's Avatar
 
elite*gold: 0
Join Date: Nov 2007
Posts: 64
Received Thanks: 2
Thanks for sharing Dok33. The bot looks great. Need help with the HP adress please, I don't really understand. I'm going to follow this project.
antonbb is offline  
Old 01/17/2011, 16:50   #6
 
elite*gold: 0
Join Date: Oct 2006
Posts: 11
Received Thanks: 1
Thanks to chefes i'm gonna look in the upcoming days (still busy at the moment with work >_<) at the memory stuff and it seems like i won't have too many difficulties making it work with memory only, so you won't need to get yourself the memory adress of the HP.

That beeing said, if you still want to try the current version, i suggest you to look for "cheat engine" on youtube, it's really easy to find that adress and you'll find nice tutorials there (it doesn't take more than 30 secs to get it).

If you still have trouble with getting the adress i'll be posting a little "how to"
Dok33 is offline  
Old 01/17/2011, 17:15   #7
 
antonbb's Avatar
 
elite*gold: 0
Join Date: Nov 2007
Posts: 64
Received Thanks: 2
Yes, thanks to Chefes too Yes, I have looked at Youtube for tutorials on Cheat Engine but there isn't a tutorial over there for FFXIV? I have tried to run the bot without the adresses but it didn't work very well. My character did target mobs but it didn't go to the mob and attacked. But it's because I don't have the HP adress or what? Thanks!
antonbb is offline  
Old 01/17/2011, 17:23   #8
 
elite*gold: 0
Join Date: Oct 2006
Posts: 11
Received Thanks: 1
Indeed what the bot does is when it finds the desired target (blue mobs or green mobs as you chose in the ui) it's supposed to lock it with the * key of your numpad and then run towards the mob for 5.5 seconds. If it doesn't do this and keep target things around you i means that the pixel detection isn't working.

Actually the bot does look for the little pearl's color in the target box to attack or not a mob. I suggest you to check the following point :

- Are your windows desktop and Final Fantasy XIV in 1280*768 ? Is FFXIV configured in WINDOWED mode ?

I also suggest you to place the action bar at the top of the screen.
Dok33 is offline  
Old 01/17/2011, 17:28   #9
 
elite*gold: 0
Join Date: Oct 2006
Posts: 11
Received Thanks: 1
For cheat engine what i do is :

Once Final Fantasy XIV attached to CE :

1) I look in game what is my current HP, let's say it's 654
2) I type 654 in the input box and hit "first scan" button
3) Then i switch weapon to switch classes, so my HP goes up to 720
4) Wait in game to get back your maximum HP back and switch back to CE and type 720 in the input box and hit "next scan". You will have to memory values or so in the left bar, one is your current HP and the other your max HP, generally the current HP always ends up with "CD". Get this adress and paste it to the bot
Dok33 is offline  
Old 01/17/2011, 17:40   #10
 
antonbb's Avatar
 
elite*gold: 0
Join Date: Nov 2007
Posts: 64
Received Thanks: 2
Thanks for the guides. Really helpful Yes, my resolution is 1280*768 on pc and FFXIV. I got window mode. No required graphic settings? Thx alot!

Edit: I tried to run the bot now. But he brings up the command window (Emotes and signs) and press sit. and sometimes stand up again. Kinda weird :P
antonbb is offline  
Old 01/17/2011, 17:47   #11
 
elite*gold: 0
Join Date: Oct 2006
Posts: 11
Received Thanks: 1
If it still doesn't work i won't be able to help without you to help me.

If you have the time, could you check with the Autoit Window Info tool (installed automatically with autoit) the coordinates of the exact center of the "blue bead" in the target box (X,Y) and its color in hexadecimal.

I use a square detection (pixelsearch) and not a punctual pixel and has tolerance on the color used so it's supposed to work everywhere (that's what i tought)...

Thank you
Dok33 is offline  
Old 01/17/2011, 18:18   #12
 
elite*gold: 0
Join Date: Oct 2006
Posts: 198
Received Thanks: 184
...

people should reset their window positions (ingame) in the options... i think
that should help so it reads the color from the right position...

for the people havign cheatengine troubles... use this file...


How to find the adress needed for this bot...

1. Login to FFXIV
2. Load CE and attach to FFXIV
3. Open the file you can download here with CE

Write down the adress you see (like this)


Cheers and have fun botting
Attached Files
File Type: zip FFXIV-Offsets-31.12.2010.zip (730 Bytes, 100 views)
Chefes is offline  
Thanks
2 Users
Old 01/17/2011, 18:36   #13
 
antonbb's Avatar
 
elite*gold: 0
Join Date: Nov 2007
Posts: 64
Received Thanks: 2
Quote:
Originally Posted by Dok33 View Post
If it still doesn't work i won't be able to help without you to help me.

If you have the time, could you check with the Autoit Window Info tool (installed automatically with autoit) the coordinates of the exact center of the "blue bead" in the target box (X,Y) and its color in hexadecimal.

I use a square detection (pixelsearch) and not a punctual pixel and has tolerance on the color used so it's supposed to work everywhere (that's what i tought)...

Thank you
Window:
Position -6, -10
Size 1286, 800
Style 0x94CA0000
ExStyle 0x00000100
Handle 0x00980286

Mouse:
Position 748,561
Cursor ID 0
Color 0x1E6591

Thank you for helping, I post it all cause I didn't really know lol
antonbb is offline  
Old 01/17/2011, 18:51   #14
 
elite*gold: 0
Join Date: Oct 2006
Posts: 11
Received Thanks: 1
Thanks a lot chefes, i'm on it right now and will be releasing a new version based on memory in the upcoming days.

@antonbb : I have these values :
Mouse:
Position 748,561

That explains a lot of things... ^^
I suggest you to wait for the next version you won't have to do all this stuff. Thanks for trying anyway.
Dok33 is offline  
Old 01/17/2011, 18:56   #15
 
antonbb's Avatar
 
elite*gold: 0
Join Date: Nov 2007
Posts: 64
Received Thanks: 2
Dok33: Yeah, it's probably better to wait instead. I'm going to follow you're progress. Thanks for the help

Chefes: Thanks for the help
antonbb is offline  
Reply

Tags
bot, exp, ffxiv, final fantasy xiv


Similar Threads Similar Threads
ffxiv bot or ffxiv hacks?
07/26/2015 - Final Fantasy XIV - 40 Replies
is there any ffxiv bot around? I'm also interested in ffxiv hacks, something like mr. argus or mr. rabbit would be nice, please reply in this thread or contact me through pm. I'm also interested to help you people to develop a ffxiv bot or ffxiv hacks.



All times are GMT +2. The time now is 04:56.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.