Register for your free account! | Forgot your password?

Go Back   elitepvpers > MMORPGs > 4Story > 4Story Hacks, Bots, Cheats & Exploits
You last visited: Today at 16:10

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

Advertisement



[Open Source]HC Farmbot by Logtetsch[Release]

Discussion on [Open Source]HC Farmbot by Logtetsch[Release] within the 4Story Hacks, Bots, Cheats & Exploits forum part of the 4Story category.

Reply
 
Old   #1
 
Logtetsch's Avatar
 
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
[Open Source]HC Farmbot by Logtetsch[Release]

Abend,

ich machs schnell und fass mich kurz. Da ich das Interesse verloren habe an dem Hack/ Bot weiter zu arbeiten, werde ich die Source releasen. Ich habe lediglich den Link zu meinem FTP- Server entfernt, sodass ihr den Versionschecker entfernen müsst, um den Hack zu benutzen.

Außerdem enthält der Bot noch extern eingebundene Includedateien wie
Code:
#include <DownloadUpdate.au3>
#include <ThanksChecker.au3>
#include <CheckThanks.au3>
#include <Pointer.au3>
Die "Pointer.au3" findet ihr im Internet und auch in einem meiner Threads.
Den Rest werde ich hier nicht mit einbinden, da das noch alte UDF's sind, die nicht von mir sind.

Die Source ist ein reines Labyrinth und Krebs in meinen Augen. Ich weiß selber nichtmehr wie ich damit klar gekommen bin. Solltet ihr Spaß dran haben, könnt ihr den Hack modifizieren und releasen, allerdings möchte ich, dass mein Name irgendwo vorkommt.

Source
Code:
;Autor: Logtetsch

#RequireAdmin

if ProcessExists ("TClient.exe") = false Then
	MsgBox (48,"Error","Cannot find 4Story!")
	Exit
EndIf

#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <DownloadUpdate.au3>
#include <ThanksChecker.au3>
#include <CheckThanks.au3>
#include <Pointer.au3>
#Include <GuiListView.au3>
#include <crypt.au3>
#Include <Timers.au3>

Global $OrginalFileMD5[2]
$OrginalFileMD5[0] = "0x23AC07E7498B8D358F44270CD93A4F90"
$OrginalFileMD5[1] = "0x6E0DB382B733E05408EA6BF2CFB557B7"

#region Abfragen
Global Const $szTitle = "Logtetsch [EG] Free Edition Farm/ -Levelbot 7.1.1"

Const $szDatabaseURL = "Mein alter FTP Server um nach neuen Versionen zu prüfen"
Const $szData = BinaryToString(InetRead($szDatabaseURL))

Const $szVersion = _StringBetween($szData, '[ver]','[/ver]')
Const $szStatus = _StringBetween($szData, '[Off]','[/Off]')
Const $szThread = _StringBetween($szData, "[url]","[/url]")
Const $szMessage = _StringBetween($szData, "[msg]","[/msg]")

if Not (IsArray($szVersion) And IsArray($szStatus) And IsArray($szThread) And IsArray($szMessage)) Then
	MsgBox (48,"Error","Cannot find Database. Mainserver is probably offline!")
	Exit
EndIf


If $szStatus[0] <> 0 Then
	MsgBox (48,"Error","Bot is offline at the moment!")
	Exit
EndIf


if $szVersion[0] <> $szTitle Then
	MsgBox (64,"Information","A new version was found! Download will start in a few seconds.",5)
	_DownloadUpdate("http://logtetschdatabase.1x.de/Bot[EG].rar","Bot[EG].rar")
	exit
EndIf


if $szMessage[0] <> "" Then MsgBox (64,"Information",$szMessage[0])
#endregion



Global $4StoryData


Local $ReadPath = RegRead ("HKEY_CURRENT_USER\Software\4StoryPath", "Path")
if @error Then
	_4StoryPath()
Else
	$4StoryData = $ReadPath
EndIf

Local $ReadPath = RegRead ("HKEY_CURRENT_USER\Software\4StoryPath", "Path")
if @error Then
	_4StoryPath()
Else
	$4StoryData = $ReadPath
EndIf

#region Pointer
Const $szProcessName = "TClient.exe"


Const $dwBaseAddress = 0x006EFFFC
Const $dwChatModuleAddress = 0x6F11CC

Const $nOffset_Invincile[4] = [0, 0x680, 0x1F4, 0x434]
Const $nOffset_Shop[3] 		= [0, 0x318, 0x128]
Const $nOffset_Chat[4] 		= [0, 0x1E4, 0x118, 0x2B8]

Const $nOffset_Zoom[3]      = [0, 0x16D0, 0x188]

Const $nOffset_Skill[3] 	= [0, 0xAA8, 0x45C]

Const $nOffset_Gold[3]		= [0, 0xAA8, 0xB48]
Const $nOffset_Silber[3]	= [0, 0xAA8, 0xB4C]
Const $nOffset_Bronze[3]	= [0, 0xAA8, 0xB50]

Const $nOffset_CharX1[4] 	= [0, 0x334, 0x1D0, 0x84]
Const $nOffset_CharX2[4] 	= [0, 0x680, 0x1F4, 0x44]
Const $nOffset_CharY1[4] 	= [0, 0x328, 0x204, 0x8C]
Const $nOffset_CharY2[4] 	= [0, 0x680, 0x1F4, 0x4C]
Const $nOffset_CharZ1[4] 	= [0, 0x328, 0x204, 0x88]
Const $nOffset_CharZ2[4] 	= [0, 0x680, 0x1F4, 0x48]
Const $nOffset_CharView[2] 	= [0, 0x881028]
Const $nOffset_CharTilt[2] 	= [0, 0x8817BE]

Const $nOffset_MobX[3] = [0, 0x754, 0x84]
Const $nOffset_MobY[3] = [0, 0x754, 0x8C]
Const $nOffset_MobZ[3] = [0, 0x754, 0x88]

Const $nOffset_InventarOpen[3] 	= [0, 0x2E8, 0x128]
Const $nOffset_InventarX[3] 	= [0, 0x2E8, 0x15C]
Const $nOffset_InventarY[3] 	= [0, 0x2E8, 0x160]
Const $nOffset_ItemCount[4]		= [0, 0x2E8, 0x1D4, 0x10]
#endregion

#Region ### START Koda GUI section ### Form=C:\Users\Marco\Desktop\Marco\Hacks\Projekt Free\Second Projekt\Forms\Botform.kxf

$Form1 = GUICreate($szTitle, 407, 580, 192, 114)
$m_Menu = GUICtrlCreateMenu ("Options")
$m_LevelMenu = GUICtrlCreateMenu ("TCD-File Settings (Levelbot)")
$m_PatchTCD = GUICtrlCreateMenuItem ("Patch files",$m_LevelMenu)
$m_UnpachTCD = GUICtrlCreateMenuItem ("Unpatch files",$m_LevelMenu)
$m_Menu1 = GUICtrlCreateMenuItem ("Check", $m_Menu)
$m_MenuInfo = GUICtrlCreateMenu ("Info")
$m_EarnCheck = GUICtrlCreateMenuItem ("Earn check", $m_MenuInfo)
$grp_Position = GUICtrlCreateGroup("Positions", 5, 5, 395, 330)
$lvw_Position = GUICtrlCreateListView("X|Y|Z|Mobs|Tilt|View", 20, 30, 365, 225, BitOR($LVS_NOSORTHEADER, $LVS_SHOWSELALWAYS, $LVS_SINGLESEL, $LVS_REPORT))
GUICtrlSendMsg(-1, $LVM_SETEXTENDEDLISTVIEWSTYLE, 0, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES))
For $i = 0 To 5
	GUICtrlSendMsg(-1, $LVM_SETCOLUMNWIDTH, $i, 75)
Next
$btn_AddPosition = GUICtrlCreateButton("Add position", 20, 260, 110, 25)
$btn_DeletePosition = GUICtrlCreateButton("Delete postition", 135, 260, 110, 25)
$btn_DeleteAllPosition = GUICtrlCreateButton("Clear all", 275, 260, 110, 25)
$btn_LoadList = GUICtrlCreateButton("Load list", 20, 300, 110, 25)
$btn_SaveList = GUICtrlCreateButton("Save list", 135, 300, 110, 25)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$grp_Settings = GUICtrlCreateGroup("Settings", 5, 340, 395, 140)
$chb_Invincible = GUICtrlCreateCheckbox("Invincible", 20, 365, 97, 17)
GUICtrlSetFont (-1, 8.5, 400, 4)
$chb_Skillfreeze = GUICtrlCreateCheckbox ("Skillfreeze | Recomment for levelbot", 125, 365, 200, 17)
GUICtrlSetFont (-1, 8.5, 400, 4)
$chb_Autosell = GUICtrlCreateCheckbox("Autosell", 20, 390, 97, 17)
$chb_Repetitions = GUICtrlCreateCheckbox("Repetitions", 20, 415, 97, 17)
$inp_Autosell = GUICtrlCreateInput("20", 125, 385, 36, 21, BitOR ($ES_CENTER, $ES_NUMBER))
GUICtrlSetState (-1, $GUI_DISABLE)
$inp_Repetitions = GUICtrlCreateInput("999", 125, 415, 36, 21, BitOR ($ES_CENTER, $ES_NUMBER))
GUICtrlSetState (-1, $GUI_DISABLE)
$lbl_Autosell = GUICtrlCreateLabel("Standart 20", 175, 390, 206, 12)
$lbl_Repetitions = GUICtrlCreateLabel("Set repetitions.", 175, 420, 206, 12)
$chb_Spotwait = GUICtrlCreateCheckbox("Set Spotwait", 20, 440, 97, 17)
$inp_Spotwait = GUICtrlCreateInput("7", 125, 440, 36, 21, BitOR ($ES_CENTER, $ES_NUMBER))
GUICtrlSetState (-1, $GUI_DISABLE)
$lbl_Spotwait = GUICtrlCreateLabel("Standart = 7 seconds", 175, 445, 211, 12)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$grp_Bot = GUICtrlCreateGroup("Settings2", 5, 490, 395, 70)
$btn_Farm_Bot = GUICtrlCreateCheckbox("Farmbot", 305, 515, 70, 25)
$btn_Lvl_Bot = GUICtrlCreateCheckbox ("Levelbot",225, 515, 70, 25)
$btn_Information = GUICtrlCreateButton("Information", 15, 515, 95, 25)
$btn_Credits = GUICtrlCreateButton("Credits", 120, 515, 95, 25)
GUICtrlCreateGroup("", -99, -99, 1, 1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###

Global $gGold = 0, $gSilber = 0, $gBronze = 0
Global $vGold = 0, $vSilber = 0, $vBronze = 0

Global $lv_Standitem = 0

Global $lw_Handle = GUICtrlGetHandle ($lvw_Position)
Global $ProcessID = 0, $Handle = 0, $nSkill

While Sleep (10)
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

		Case $m_Menu1
			$Handle = _MemoryOpen ($ProcessID)
			Local $ReadTx = _MemoryPointerRead($dwBaseAddress, $Handle, $nOffset_InventarX)
			Local $ReadTy = _MemoryPointerRead($dwBaseAddress, $Handle, $nOffset_InventarY)
			MsgBox (0,"",$ReadTx[1])
			MsgBox (0,"",$ReadTy[1])
			if not @error Then
				if IsArray ($Handle) Then
					MsgBox (0,"Information - Check","There are no errors!")
				Else
					MsgBox (48,"Information - Check","Errorcode: 5" & @LF &"No Array!" & @LF & "Please contact me with the errorcode!")
				EndIf
			Else
				MsgBox (48,"Information -Check","Errorcode: 2" &  @LF &"No Array!" & @LF & "Please contact me with the errorcode!")
			EndIf

		Case $chb_Skillfreeze
			if $ProcessID > 0 Then
				if IsArray ($Handle) Then
					Local $SkillRead = _MemoryPointerRead ($dwBaseAddress, $Handle, $nOffset_Skill, "WORD")
					if IsArray ($SkillRead) Then
						if $SkillRead[1] > 0 Then
							$nSkill = $SkillRead[1]
						EndIf
					EndIf
				EndIf
			EndIf

		Case $chb_Spotwait
			if GUICtrlRead ($chb_Spotwait) = $GUI_CHECKED Then
				GUICtrlSetState ($inp_Spotwait, $GUI_ENABLE)
			Else
				GUICtrlSetState ($inp_Spotwait, $GUI_DISABLE)
			EndIf

		Case $m_EarnCheck
			MsgBox (64,"Info","You earned " & $gGold & " rune " & $gSilber & " luna " & $gBronze & " bronze ")

		Case $btn_Information
			MsgBox (64,"Information","Your Version: " & $szTitle)

		Case $btn_Credits
			MsgBox (64,"Information","A very big thanks to KDeluxe for his help!" & @LF & "Credits: KDeluxe" & @LF & "www.elitepvpers.com/forum/4Story" )

		Case $btn_AddPosition
			_AddPosition()

		Case $btn_DeletePosition
			_GUICtrlListView_DeleteItemsSelected($lvw_Position)

		case $btn_LoadList
			Local $f_File, $f_FileOpen, $f_FileItem
			$f_File = FileOpenDialog ("Load list",@ScriptDir, "(*.*)", 3)
			$f_FileOpen = FileOpen ($f_File)
			if $f_FileOpen <> -1 Then
				While True
					$f_FileItem = FileReadLine ($f_FileOpen)
					if @error then ExitLoop
					GUICtrlCreateListViewItem ($f_FileItem, $lvw_Position)
				WEnd
				FileClose ($f_FileOpen)
			EndIf

		case $btn_SaveList
			Local $f_File, $f_FileOpen, $f_FileItem, $lv_ItemCount, $sHanle, $lv_Item
			$f_File = FileSaveDialog ("Save list",@ScriptDir,"Text (*.txt)", 2)
			$sHanle = GUICtrlGetHandle ($lvw_Position)
			$lv_ItemCount = _GUICtrlListView_GetItemCount ($sHanle)
			$f_FileOpen = FileOpen ($f_File, 2)
			For $i = 0 to $lv_ItemCount - 1
				$lv_Item = _GUICtrlListView_GetItemTextString($sHanle, $i)
				FileWriteLine ($f_FileOpen, $lv_Item)
			Next
			FileClose ($f_FileOpen)

		case $btn_DeleteAllPosition
			if MsgBox (52,"Information","Are you sure you want delete all items?") = 6 then _GUICtrlListView_DeleteAllItems($lvw_Position)

		Case $chb_Autosell
			If GUICtrlRead($chb_Autosell) == $GUI_CHECKED Then
				GUICtrlSetState($inp_Autosell, $GUI_ENABLE)
			Else
				GUICtrlSetState($inp_Autosell, $GUI_DISABLE)
			EndIf

		Case $chb_Repetitions
			If GUICtrlRead($chb_Repetitions) == $GUI_CHECKED Then
				GUICtrlSetState ($inp_Repetitions, $GUI_ENABLE)
			Else
				GUICtrlSetState ($inp_Repetitions, $GUI_DISABLE)
			EndIf


		Case $m_PatchTCD
			if ProcessExists ("TClient.exe") Then
				if MsgBox (52,"Error","4Story must be closed to patch the files! Do you want restart 4Story?") = 6 Then ProcessClose ("TClient.exe")
			EndIf

			Do
				Sleep (100)
			Until ProcessExists ("TClient.exe") = False

			FileCopy (@ScriptDir & "\Data\PatchTCD\TSkill.tcd", $4StoryData & "\Tcd\", 1)
			FileCopy (@ScriptDir & "\Data\PatchTCD\TMon.tcd", $4StoryData & "\Tcd\",1)

			if not @error Then
				MsgBox (64,"Info","Successfully patched!")
			EndIf

			Run ($4StoryData & "\4Story.exe")



		Case $m_UnpachTCD
			if ProcessExists ("TClient.exe") Then
				if MsgBox (52,"Error","4Story must be closed to patch the files! Do you want close 4Story?") = 6 Then ProcessClose ("TClient.exe")
			EndIf

			Do
				Sleep (100)
			Until ProcessExists ("TClient.exe") = False

			FileCopy (@ScriptDir & "\Data\OrginalTCD\TSkill.tcd", $4StoryData & "\Tcd\",1)
			FileCopy (@ScriptDir & "\Data\OrginalTCD\TMon.tcd", $4StoryData & "\Tcd\",1)

			if not @error Then
				MsgBox (64,"Info","Successfully patched!")
			EndIf

			Run ($4StoryData & "\4Story.exe")

			Exit

		Case $chb_Invincible
			if GUICtrlRead ($chb_Invincible) == $GUI_CHECKED Then
				if IsArray ($Handle) Then
				_MemoryPointerWrite ($dwBaseAddress, $Handle, $nOffset_Invincile, 0)
		EndIf
			EndIf

	EndSwitch

	if $ProcessID = 0 Then
		$ProcessID = ProcessExists ("TClient.exe")
		if $ProcessID = 0 then
			MsgBox (48,"Error","Cannot open TClient.exe")
		Else
			$Handle = _MemoryOpen ($ProcessID)
			if not IsArray ($Handle) Then
				MsgBox (48,"Error","Cannot open memory")
			EndIf
		EndIf
	EndIf


	if GUICtrlRead ($btn_Farm_Bot) == $GUI_CHECKED Then
		GUICtrlSetState ($btn_Lvl_Bot, $GUI_DISABLE)
		Local $CheckFileMon = _Crypt_HashFile ($4StoryData & "\Tcd\TMon.tcd", $CALG_MD5)
		Local $CheckFileSkill = _Crypt_HashFile ($4StoryData & "\Tcd\TSkill.tcd", $CALG_MD5)
		if $CheckFileMon <> $OrginalFileMD5[0] Or $CheckFileSkill <> $OrginalFileMD5[1] Then
			MsgBox (48,"Error","Cannot find original .tcd files! Please use the unpatch button!")
			GUICtrlSetState ($btn_Farm_Bot, $GUI_UNCHECKED)
		Else
			_FBot()
		EndIf
		if @error Then
			MsgBox (48,"Error","Cannot run the botfunction!")
		EndIf
	Else
		GUICtrlSetState ($btn_Lvl_Bot, $GUI_ENABLE)
	EndIf



	if GUICtrlRead ($btn_Lvl_Bot) == $GUI_CHECKED Then
		Local $lv_ItemCount = _GUICtrlListView_GetItemCount (GUICtrlGetHandle ($lvw_Position))
		if $lv_ItemCount > 0 Then
			GUICtrlSetState ($btn_Farm_Bot, $GUI_DISABLE)
			_LBot()
		Else
			MsgBox (48,"Error","Cannot find position!")
			GUICtrlSetState ($btn_Lvl_Bot, $GUI_UNCHECKED)
			GUICtrlSetState ($btn_Farm_Bot, $GUI_ENABLE)
		EndIf
		if @error Then
			MsgBox (48,"Error","Cannot run the botfunction!")
		EndIf
	Else
		GUICtrlSetState ($btn_Farm_Bot, $GUI_ENABLE)
	EndIf



	if $ProcessID = 0 Then
		$ProcessID = ProcessExists ("TClient.exe")
		if $ProcessID > 0 Then
			$Handle = _MemoryOpen ($ProcessID)
		EndIf
	EndIf

	if GUICtrlRead ($chb_Skillfreeze) == $GUI_CHECKED Then
		if $ProcessID > 0 Then
			if IsArray ($Handle) Then
				if $nSkill > 0 Then
					_MemoryPointerWrite ($dwBaseAddress, $Handle, $nOffset_Skill, $nSkill, "WORD")
				EndIf
			EndIf
		EndIf
	EndIf


WEnd



Func _AddPosition()
	if IsArray ($Handle) Then
		$rData_Mobs = InputBox ("Add mobs","How many mobs stay here?")
		if not @error Then
			$rData_CharX = _MemoryPointerRead($dwBaseAddress, $Handle, $nOffset_CharX1, "float")
			$rData_CharY = _MemoryPointerRead($dwBaseAddress, $Handle, $nOffset_CharY1, "float")
			$rData_CharZ = _MemoryPointerRead($dwBaseAddress, $Handle, $nOffset_CharZ1, "float")
			$rData_CharT = _MemoryPointerRead($dwBaseAddress, $Handle, $nOffset_CharTilt)
			$rData_CharV = _MemoryPointerRead($dwBaseAddress, $Handle, $nOffset_CharView)
			if IsArray ($rData_CharX) and IsArray ($rData_CharY) and IsArray ($rData_CharZ) and IsArray ($rData_CharT) and IsArray ($rData_CharV) Then
				GUICtrlCreateListViewItem(	Round($rData_CharX[1], 2) & "|" & _
											Round($rData_CharY[1], 2) & "|" & _
											Round($rData_CharZ[1], 2) & "|" & _
											$rData_Mobs & "|" & _
											$rData_CharT[1] & "|" & _
											$rData_CharV[1], $lvw_Position)
			Else
				MsgBox (48,"Error","Errorcode : ArrayP" & @LF & "Please contact the support with these errorcode!")
			EndIf
		EndIf
	Else
		MsgBox (48,"Error","Could not open process!")
EndIf
EndFunc

Func _InventoryCheck()

if GUICtrlRead ($chb_Autosell) == $GUI_CHECKED Then
	if IsArray ($Handle) Then
		$rData_Inventory = _MemoryPointerRead($dwBaseAddress, $Handle, $nOffset_ItemCount)
		if IsArray ($rData_Inventory) Then
			If $rData_Inventory[1] = 16 Then
				_Autosell()
			EndIf
		EndIf
	EndIf
EndIf

EndFunc

Func _Autosell()

if IsArray ($Handle) Then
	$Sleep = GUICtrlRead($inp_Autosell)

	ControlSend ("4Story_GSP","","","ö")
	Sleep (10)

	$a_ReadInventar = _MemoryPointerRead ($dwBaseAddress, $Handle, $nOffset_InventarOpen)
	if IsArray ($a_ReadInventar) Then
		if $a_ReadInventar[1] = 0 Then
			ControlSend ("4Story_GSP","","","i")
		EndIf
	EndIf
	_MemoryPointerWrite($dwBaseAddress, $Handle, $nOffset_Shop, 1)

	$t_init = TimerInit()
	While 1
		if TimerDiff ($t_init) >= $Sleep then ExitLoop
	WEnd

	Local $Gold = _MemoryPointerRead ($dwBaseAddress, $Handle, $nOffset_Gold, "DWORD")
	Local $Silber = _MemoryPointerRead ($dwBaseAddress, $Handle, $nOffset_Silber, "DWORD")
	Local $Bronze = _MemoryPointerRead ($dwBaseAddress, $Handle, $nOffset_Bronze, "DWORD")

	if IsArray ($Gold) And IsArray ($Silber) and IsArray ($Bronze) Then
		$vGold = $Gold[1]
		$vSilber = $Silber[1]
		$vBronze = $Bronze[1]
	EndIf

	$ReadTx = _MemoryPointerRead($dwBaseAddress, $Handle, $nOffset_InventarX)
	$ReadTy = _MemoryPointerRead($dwBaseAddress, $Handle, $nOffset_InventarY)

	$pause = GUICtrlRead ($inp_Autosell)

	if IsArray ($ReadTx) and IsArray ($ReadTy) Then

				ControlClick ("4Story_GSP","","","left",2,$ReadTx[1] + 21, $ReadTy[1] + 50)
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")  ;Slot Nummer 1

				ControlClick ("4Story_GSP","","","left",2,$ReadTx[1] + 56, $ReadTy[1] + 50)
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")   ;Slot Nummer 2

				ControlClick ("4Story_GSP","","","left",2,$ReadTx[1] + 91, $ReadTy[1] + 50)
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")   ;Slot Nummer 3

				ControlClick ("4Story_GSP","","","left",2,$ReadTx[1] + 126, $ReadTy[1] + 50)
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")   ;Slot Nummer 4

				ControlClick ("4Story_GSP","","","left",2,$ReadTx[1] + 21, $ReadTy[1] + 85)
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")   ;Slot Nummer 5

				ControlClick ("4Story_GSP","","","left",2,$ReadTx[1] + 56, $ReadTy[1] + 85)
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")   ;Slot Nummer 6

				ControlClick ("4Story_GSP","","","left",2,$ReadTx[1] + 91, $ReadTy[1] + 85)
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")   ;Slot Nummer 7

				ControlClick ("4Story_GSP","","","left",2,$ReadTx[1] + 126, $ReadTy[1] + 85)
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")   ;Slot Nummer 8

				ControlClick ("4Story_GSP","","","left",2,$ReadTx[1] + 21, $ReadTy[1] + 120)
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")   ;Slot Nummer 9

				ControlClick ("4Story_GSP","","","left",2,$ReadTx[1] + 56, $ReadTy[1] + 120)
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")  ;Slot Nummer 10

				ControlClick ("4Story_GSP","","","left",2,$ReadTx[1] + 91, $ReadTy[1] + 120)
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")   ;Slot Nummer 11

				ControlClick ("4Story_GSP","","","left",2,$ReadTx[1] + 126, $ReadTy[1] + 120)
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")   ;Slot Nummer 12

				ControlClick ("4Story_GSP","","","left",2,$ReadTx[1] + 21, $ReadTy[1] + 155)
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")   ;Slot Nummer 13

				ControlClick ("4Story_GSP","","","left",2,$ReadTx[1] + 56, $ReadTy[1] + 155)
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")   ;Slot Nummer 14

				ControlClick ("4Story_GSP","","","left",2,$ReadTx[1] + 91, $ReadTy[1] + 155)
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")  ;Slot Nummer 15

				ControlClick ("4Story_GSP","","","left",2,$ReadTx[1] + 126, $ReadTy[1] + 155)
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")
				Sleep ($pause)
				ControlSend("4Story_GSP", "", "", "{ENTER}")   ;Slot Nummer 16
				Sleep (25)

		$rData_ChatActive = _MemoryPointerRead ($dwChatModuleAddress, $Handle, $nOffset_Chat)
		if IsArray ($rData_ChatActive) Then
			if $rData_ChatActive[1] == 1 Then
				ControlSend("4Story_GSP", "", "", "{ENTER}")
			EndIf
		EndIf

		_MemoryPointerWrite($dwBaseAddress, $Handle, $nOffset_InventarOpen, 0)
		_MemoryPointerWrite($dwBaseAddress, $Handle, $nOffset_Shop, 0)

	Return SetError(0, "", True)

	EndIf

	Local $sGold = _MemoryPointerRead ($dwBaseAddress, $Handle, $nOffset_Gold, "DWORD")
	Local $sSilber = _MemoryPointerRead ($dwBaseAddress, $Handle, $nOffset_Silber, "DWORD")
	Local $sBronze = _MemoryPointerRead ($dwBaseAddress, $Handle, $nOffset_Bronze, "DWORD")

	if IsArray ($sGold) And IsArray ($sSilber) and IsArray ($sBronze) Then
		Local $nBronze = $sBronze[1] - $vBronze[1]
		if $nBronze <= 0 Then
			$gBronze += 1000
			$gSilber += 1
		Else
			$gBronze += $nBronze
		EndIf

		Local $nSilber = $sSilber[1] - $vSilber[1]
		if $nSilber <= 0 Then
			$gSilber += 1000
			$gGold += 1
		Else
			$gSilber += $nSilber
		EndIf

		Local $nGold = $sGold[1] - $vGold[1]
	EndIf

EndIf

EndFunc

Func _FBot()

_InventoryCheck()

$Handle = _MemoryOpen ($ProcessID)
if IsArray ($Handle) Then

	Local $G = _MemoryPointerRead ($dwBaseAddress, $Handle, $nOffset_Gold, "DWORD")
	Local $S = _MemoryPointerRead ($dwBaseAddress, $Handle, $nOffset_Silber, "DWORD")
	Local $B = _MemoryPointerRead ($dwBaseAddress, $Handle, $nOffset_Bronze, "DWORD")

	$aGold = $G[1]
	$aSilber = $S[1]
	$aBronze = $B[1]

	Local $i_ItemCount = _GUICtrlListView_GetItemCount($lw_Handle) -1

	if $i_ItemCount > 0 then
		$gr_Repetitions = GUICtrlRead ($inp_Repetitions) - 1

		if $gr_Repetitions <> 0 Then

		For $i_a = 0 to $gr_Repetitions

			For $i_b = $lv_Standitem to $i_ItemCount

				if GUICtrlRead ($btn_Farm_Bot) == $GUI_UNCHECKED then ExitLoop

				$lv_Standitem = $i_b

				#region Porten
				$i_ItemSelect = _GUICtrlListView_GetItemTextArray($lw_Handle, $i_b)

				if $i_ItemSelect[0] > 0 Then

				_MemoryPointerWrite ($dwBaseAddress, $Handle, $nOffset_CharX1, $i_ItemSelect[1], "float")
				_MemoryPointerWrite ($dwBaseAddress, $Handle, $nOffset_CharX2, $i_ItemSelect[1], "float")
				_MemoryPointerWrite ($dwBaseAddress, $Handle, $nOffset_CharY1, $i_ItemSelect[2], "float")
				_MemoryPointerWrite ($dwBaseAddress, $Handle, $nOffset_CharY2, $i_ItemSelect[2], "float")
				_MemoryPointerWrite ($dwBaseAddress, $Handle, $nOffset_CharZ1, $i_ItemSelect[3], "float")
				_MemoryPointerWrite ($dwBaseAddress, $Handle, $nOffset_CharZ2, $i_ItemSelect[3], "float")

				EndIf
				#endregion

				_MemoryPointerWrite ($dwBaseAddress, $Handle, $nOffset_Zoom, 1194713344, "DWORD")

				#region Selecten und töten

				Local $Mobspeicher[$i_ItemSelect[4]]
				Local $Mobspeicherzaehler = 0
				Local $t_init = TimerInit()

				While $Mobspeicherzaehler <> $i_ItemSelect[4]

					if GUICtrlRead ($btn_Farm_Bot) == $GUI_CHECKED then
					Else
						ExitLoop
					EndIf


					if TimerDiff ($t_init) >= 3500 Then	ExitLoop

					ControlSend ("4Story_GSP","","","{TAB}")
					$Readmob = _MemoryPointerRead ($dwBaseAddress, $Handle, $nOffset_MobX, "float")

					if IsArray ($Readmob) Then

						if $Readmob[1] > 0 then

							Local $aToString = _ArrayToString ($Mobspeicher,"")

							If not StringInStr($aToString,$Readmob[1]) Then

								$Mobspeicher[$Mobspeicherzaehler] = $Readmob[1]
								$Mobspeicherzaehler = $Mobspeicherzaehler + 1

								_MemoryPointerWrite ($dwBaseAddress, $Handle, $nOffset_MobX, 0, "float")
								_MemoryPointerWrite ($dwBaseAddress, $Handle, $nOffset_MobY, 0, "float")
								_MemoryPointerWrite ($dwBaseAddress, $Handle, $nOffset_MobZ, 0, "float")

								$t_initW = TimerInit ()
								While 1
									if TimerDiff ($t_initW) >= 30 then ExitLoop
								WEnd

							EndIf

						EndIf

					EndIf

				WEnd
				#endregion

					if GUICtrlRead ($btn_Farm_Bot) == $GUI_CHECKED then
					Else
						ExitLoop
					EndIf

				if $Mobspeicherzaehler > 0 Then

				#region Einsammeln
					Local $Mobeinsammelzaehler = 0
					Local $Totmobspeicher[$Mobspeicherzaehler]
					Local $ADZ = 0
					Local $Address[$Mobspeicherzaehler]
					Local $chb_sptstatus = 0

					if GUICtrlRead ($chb_Spotwait) == $GUI_CHECKED Then
						$i_timerE = TimerInit()
						$chb_sptstatus = 1
					EndIf

					While $Mobeinsammelzaehler <> $Mobspeicherzaehler

						if GUICtrlRead ($btn_Farm_Bot) == $GUI_CHECKED then
						Else
							ExitLoop
						EndIf

						if $chb_sptstatus = 1 then
							if TimerDiff ($i_timerE) >= (GUICtrlRead ($inp_Spotwait) * 1000) then
								ExitLoop
							EndIf
						EndIf

						Sleep (300)

						_InventoryCheck()

						ControlSend ("4Story_GSP","","","x")
						Local $Readmob2 = _MemoryPointerRead ($dwBaseAddress, $Handle, $nOffset_MobX, "float")

						if IsArray ($Readmob2) Then

							if $Readmob2[1] > 0 Then

								Local $aToString2 = _ArrayToString ($Totmobspeicher, "")
								Local $aToString3 = _ArrayToString ($Address, "")

								if Not StringInStr($aToString2, $Readmob2[1]) then

									if Not StringInStr ($aToString3, $Readmob2[0]) Then

										$Totmobspeicher[$Mobeinsammelzaehler] = $Readmob2[1]
										$Address[$ADZ] = $Readmob2[0]

										$ReadCharX = _MemoryPointerRead ($dwBaseAddress, $Handle, $nOffset_CharX1, "float")
										$ReadCharY = _MemoryPointerRead ($dwBaseAddress, $Handle, $nOffset_CharY1, "float")
										$ReadCharZ = _MemoryPointerRead ($dwBaseAddress, $Handle, $nOffset_CharZ1, "float")

										$ReadmobX = _MemoryPointerWrite ($dwBaseAddress, $Handle, $nOffset_MobX, $ReadCharX[1],"float")
										$ReadmobY = _MemoryPointerWrite ($dwBaseAddress, $Handle, $nOffset_MobY, $ReadCharY[1],"float")
										$ReadmobZ = _MemoryPointerWrite ($dwBaseAddress, $Handle, $nOffset_MobZ, $ReadCharZ[1],"float")

										Sleep (50)

										ControlSend ("4Story_GSP","","","z")

										$Mobeinsammelzaehler = $Mobeinsammelzaehler + 1
										$ADZ = $ADZ + 1

										_InventoryCheck()

									EndIf

								EndIf

							EndIf

						EndIf

					WEnd

					if GUICtrlRead ($btn_Farm_Bot) == $GUI_CHECKED then
					Else
						ExitLoop
					EndIf

					_InventoryCheck()

				Else

				EndIf
				#endregion


			Next

			if GUICtrlRead ($btn_Farm_Bot) == $GUI_UNCHECKED then ExitLoop

			$lv_Standitem = 0

		Next

		EndIf

	EndIf

EndIf

EndFunc

Func _LBot()

if IsArray ($Handle) Then

	Local $repetitions = GUICtrlRead ($inp_Repetitions) -1
	Local $Spawnwait = GUICtrlRead ($inp_Spotwait) -1

	if $repetitions > 0 And $Spawnwait > 0 Then


		Local $ItemCount = _GUICtrlListView_GetItemCount (GUICtrlGetHandle ($lvw_Position)) -1
			if $ItemCount > 0 Then

				For $i = 0 to $repetitions
					if GUICtrlRead ($btn_Lvl_Bot) == $GUI_CHECKED Then
					Else
						ExitLoop
					EndIf


					For $j = 0 to $ItemCount
						if GUICtrlRead ($btn_Lvl_Bot) == $GUI_CHECKED Then
						Else
							ExitLoop
						EndIf

						Local $Pos = _GUICtrlListView_GetItemTextArray (GUICtrlGetHandle ($lvw_Position), $j)

						if $Pos[0] > 0 Then

							_MemoryPointerWrite ($dwBaseAddress, $Handle, $nOffset_CharX1, $Pos[1], "float")
							_MemoryPointerWrite ($dwBaseAddress, $Handle, $nOffset_CharX2, $Pos[1], "float")
							_MemoryPointerWrite ($dwBaseAddress, $Handle, $nOffset_CharY1, $Pos[2], "float")
							_MemoryPointerWrite ($dwBaseAddress, $Handle, $nOffset_CharY2, $Pos[2], "float")
							_MemoryPointerWrite ($dwBaseAddress, $Handle, $nOffset_CharZ1, $Pos[3], "float")
							_MemoryPointerWrite ($dwBaseAddress, $Handle, $nOffset_CharZ2, $Pos[3], "float")

						EndIf

						Local $Timer = TimerInit()

						While Sleep (10)

						if GUICtrlRead ($btn_Lvl_Bot) == $GUI_CHECKED Then
						Else
								ExitLoop
						EndIf

						if TimerDiff ($Timer) >= $Spawnwait * 1000 Then
							ExitLoop
						EndIf

						Send ("1")

							Local $Timer2 = TimerInit()

							While Sleep (10)

								if GUICtrlRead ($btn_Lvl_Bot) == $GUI_CHECKED Then
								Else
									ExitLoop
								EndIf

								if TimerDiff ($Timer2) >= 2100 Then ExitLoop

							WEnd

						WEnd


					Next


				Next


			EndIf

		EndIf

EndIf


EndFunc

Func _4StoryPath()
	MsgBox(64,"Info","Please select your 4Story folder!")
	Local $4StoryPath = FileSelectFolder("","")
	if not @error Then
		RegWrite ("HKEY_CURRENT_USER\Software\4StoryPath", "Path", "REG_MULTI_SZ", $4StoryPath)
	EndIf
EndFunc
Logtetsch is offline  
Thanks
21 Users
Old 08/17/2013, 16:57   #2
 
elite*gold: 0
Join Date: Oct 2012
Posts: 41
Received Thanks: 12
Wie lernt man soetwas zu erstellen??
[LORKs]Devil is offline  
Thanks
1 User
Old 08/17/2013, 18:38   #3
 
elite*gold: 0
Join Date: Mar 2009
Posts: 7,260
Received Thanks: 33,147
Mit Lust, Zeit und einer Suchmaschine, kein Scherz.
KDeluxe is offline  
Thanks
5 Users
Old 08/18/2013, 19:17   #4
 
Logtetsch's Avatar
 
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
Ebenfalls verweise ich auch nochmal hierhin:
Logtetsch is offline  
Thanks
2 Users
Old 11/08/2013, 16:22   #5
 
elite*gold: 0
Join Date: May 2013
Posts: 20
Received Thanks: 1
ist der bot fertig?
DaRk-_-xSHaDoWs is offline  
Thanks
1 User
Old 11/08/2013, 20:23   #6
 
Logtetsch's Avatar
 
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
Die Source ist fast 1:1 aus dem Orginal. Um ihn zum Laufen zu bekommen, musst du entsprechende Abfragen, die nach der Gültigkeit des Bots prüfen, entfernen.
Logtetsch is offline  
Thanks
1 User
Old 11/09/2013, 19:39   #7
 
elite*gold: 0
Join Date: Jun 2013
Posts: 10
Received Thanks: 1
Und wie benutze ich dies nun ?
und danke!
moerlixx is offline  
Thanks
1 User
Old 11/10/2013, 12:57   #8
 
Logtetsch's Avatar
 
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
AutoIt anyway?
Logtetsch is offline  
Thanks
1 User
Old 11/11/2013, 01:22   #9
 
jendriii's Avatar
 
elite*gold: 0
Join Date: Oct 2010
Posts: 94
Received Thanks: 93
Ist das fur 4story DE oder EG?
jendriii is offline  
Thanks
1 User
Old 11/11/2013, 16:12   #10
 
Logtetsch's Avatar
 
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
4Story EG, wobei ich mir nicht sicher bin, ob das noch funktioniert.
Logtetsch is offline  
Thanks
1 User
Old 11/21/2013, 10:59   #11
 
Hurt Locker's Avatar
 
elite*gold: 171
Join Date: Nov 2012
Posts: 10,419
Received Thanks: 2,845
wie alt ist die source?
Hurt Locker is offline  
Thanks
1 User
Old 11/21/2013, 13:21   #12
 
Logtetsch's Avatar
 
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
Grob gesagt über 1 Jahr.
Logtetsch is offline  
Thanks
1 User
Old 12/01/2013, 11:06   #13
 
erudite's Avatar
 
elite*gold: 338
Join Date: Aug 2010
Posts: 533
Received Thanks: 201
Hat noch jemand das .txt File für Narwashi?

Also die ganzen Positionen usw.

Wäre super.

Danke
erudite is offline  
Thanks
1 User
Old 02/19/2014, 23:43   #14
 
elite*gold: 0
Join Date: Feb 2013
Posts: 21
Received Thanks: 2
hey, lot of work here clearly. I am the noobest of newbs and I would like to learn but don't know where to begin. I see the source above but where do I put it? Like what program....do I have to create the program.....I don't know how far away I am but I do have time. ty for reading.
Cartridge16 is offline  
Thanks
1 User
Old 02/20/2014, 16:27   #15
 
Logtetsch's Avatar
 
elite*gold: 192
Join Date: May 2009
Posts: 2,227
Received Thanks: 3,262
I've wrote this bot with AutoIt. AutoIt is a script language which is very easy to handle.
I'm sure you will find some good stuff in google, if you want to start scripting with AutoIt.
Logtetsch is offline  
Thanks
1 User
Reply


Similar Threads Similar Threads
[Release]Open Source AutoIt Farmbot/Killbot
01/11/2015 - Shaiya Hacks, Bots, Cheats & Exploits - 44 Replies
German English News DE 29.03.2013 | 13:13 : Version 2 hinzugefügt! (Mehrere Slots + alle Server) 14.01.2013 | 16:51 : Source-Code in den Thread eingefügt.
[RELEASE] [OPEN SOURCE] CE 5.5 Pointer to AutoIt Source-Code
02/13/2011 - AutoIt - 6 Replies
Habe heute erst gemerkt, dass es hier eine AutoIt Sektion gibt xD also poste ich mal mein Programm mit rein. Funktionsweise: 1. in CE Rechtsklick auf den Pointer und auf "Copy" klicken 2. in meinem Programm auf "Code generieren" klicken 3. In euer Scite gehen und einfügen Hier ist der Source Code vom Programm:



All times are GMT +2. The time now is 16:10.


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.