[AutoIt] Diablo 3 Click To Move, Interaction, Actor Handling. (Version 2) menu

User Tag List

Page 19 of 21 FirstFirst ... 15161718192021 LastLast
Results 271 to 285 of 302
  1. #271
    adrn's Avatar Private
    Reputation
    1
    Join Date
    Aug 2012
    Posts
    4
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Yay I can finally get it working with some of the fixes earlier in the thread. Thanks Unknowned for the script and those who contribute with the fixes!!

    However I'm getting empty $_MonsterNameStringListID and $_GizmoNameStringListID, is this expected because I am in town and just started a fresh game? I tried to run the script when there are some monsters, but still getting empty.

    I could get toon location and the NPC location though, so I am assuming that some offsets are correct. But gold, level and other attributes are False

    Could anyone please confirm these offsets are still valid?

    Global $ofs_MonsterDef = 0x15DBE00 ;0x015DCE00 ;0x15DBE00
    Global $ofs_StringListDef = 0x015E8808 ;0x015E9808
    Global $ofs_ActorDef = 0x15EC108 ;0x015ED108 ;0x15EC108
    Global $ofs_ActorAtrib_Base = 0x15A1EA4 ;0x015A2EA4;0x015A1EA4
    Global $ofs_ObjectManager = 0x15A0BEC ;0x015A1BEC;0x15A0BEC
    Global $ofs_InteractBase = 0x15A0BD4 ;0x015A1BD4;0x15A0BD4
    Thanks a bunch!
    Last edited by adrn; 08-15-2012 at 07:25 AM.

    [AutoIt] Diablo 3 Click To Move, Interaction, Actor Handling. (Version 2)
  2. #272
    adrn's Avatar Private
    Reputation
    1
    Join Date
    Aug 2012
    Posts
    4
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Code:
    global $_MonsterNameStringListID = 0x0000CB35
    $index = _ArraySearch($Object_File_StringList,hex($_MonsterNameStringListID), 0 , 0 , 0 , 1 , 1 , 1)
    is failing for me, but if I use the int representation of 0x0000CB35, it returns the index
    Code:
    $index = _ArraySearch($Object_File_StringList,52021, 0 , 0 , 0 , 1 , 1 , 1)
    This is what I got from IndexSNO
    Code:
    58 Offset: 693829632 SNOid: 52003
    It seems that _MemoryRead returns an int value instead of hex. Is this the root of the problem? If so, how to make _MemoryRead to return the hex value?

    Can someone please help here? Thanks

  3. #273
    adrn's Avatar Private
    Reputation
    1
    Join Date
    Aug 2012
    Posts
    4
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Ahhh that was caused by
    Return BitAnd($v_Value,0xFFFFFFFF)
    it's solved by installing 32bit AutoIt

    Time for more digging ^_^

  4. #274
    siruxx's Avatar Corporal
    Reputation
    1
    Join Date
    Jul 2012
    Posts
    25
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by siklon View Post
    I figured it out, these offsets will return the correct position at all times and no need to click anywhere.

    myoffset is offset of your character in the objectlist
    pos[1] := ReadMemory(exe, myoffset+0xa0, "float")
    pos[2] := ReadMemory(exe, myoffset+0xa4, "float")
    pos[3] := ReadMemory(exe, myoffset+0xa8, "float")

    EDIT: you still need to make sure offsets() is called each time you create a new game.
    hey , but i still have to click somewhere after creating a new game even when i write my coords at the ctm struct after joining a game.
    no one solved this?

  5. #275
    loeal's Avatar Corporal
    Reputation
    1
    Join Date
    Jul 2012
    Posts
    19
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    hi
    First I rarely use English so if you do not understand something please tell me

    I just spent a few hours reading the entire article and I found that there was work that I appreciate very much

    I met some problems in the use

    for example, I got this error (in the indexSNO function)

    Code:
    IndexStringList($Object_File_StringList($index[0])
    IndexStringList($Object_File_StringList(^ERROR
    
    Error: Array variable subscript badly formatted."
    It was initially set using the offset found in other articles, and I was still the same trouble later when I used the function to retrieve the attributes of an actor.

    I solved it by separating the research and pointer declarations.
    A party at the time of the creation of the game, another once I joined the combat zone

    Code:
    ; 1.0.3.100485
    func offsetlist()
    	;//OBJECT MANAGER
    	global $ofs_ObjectManager = 		0x15A0BEC
    	global $ofs__ObjmanagerActorOffsetA = 	0x8b0
    	global $ofs__ObjmanagerActorCount = 	0x108
    	global $ofs__ObjmanagerActorOffsetB = 	0x148
    	global $ofs__ObjmanagerActorLinkToCTM = 0x380
    	global $_ObjmanagerStrucSize = 		0x428	
    d ca
    	global $_itrObjectManagerA =		_MemoryRead($ofs_ObjectManager, $d3, 'ptr')		
    	global $_itrObjectManagerB =		_MemoryRead($_itrObjectManagerA+$ofs__ObjmanagerActorOffsetA, $d3, 'ptr')	
    	global $_itrObjectManagerCount =	$_itrObjectManagerB+$ofs__ObjmanagerActorCount
    	global $_itrObjectManagerC =		_MemoryRead($_itrObjectManagerB+$ofs__ObjmanagerActorOffsetB, $d3, 'ptr')	
    	global $_itrObjectManagerD =		_MemoryRead($_itrObjectManagerC, $d3, 'ptr')	
    	global $_itrObjectManagerE =		_MemoryRead($_itrObjectManagerD, $d3, 'ptr')
    
    	global $ofs_InteractBase =		0x015A1BD4	;0x15A0BD4
    	global $ofs__InteractOffsetA =		0xA8
    	global $ofs__InteractOffsetB = 		0x58
    	global $ofs__InteractOffsetUNK1 = 	0x7F20 ;Set to 777c
    	global $ofs__InteractOffsetUNK2 = 	0x7F44 ;Set to 1 for NPC interaction
    	global $ofs__InteractOffsetUNK3 = 	0x7F7C ;Set to 7546 for NPC interaction, 7545 for loot interaction
    	global $ofs__InteractOffsetUNK4 = 	0x7F80 ;Set to 7546 for NPC interaction, 7545 for loot interaction
    	global $ofs__InteractOffsetMousestate = 0x7F84 ;Mouse state 1 = clicked, 2 = mouse down
    	global $ofs__InteractOffsetGUID = 	0x7F88 ;Set to the GUID of the actor you want to interact with
    	
    	global $_itrInteractA  = _MemoryRead($ofs_InteractBase, $d3, 'ptr')	
    	global $_itrInteractB  = _MemoryRead($_itrInteractA, $d3, 'ptr')	
    	global $_itrInteractC  = _MemoryRead($_itrInteractB, $d3, 'ptr')	
    	global $_itrInteractD  = _MemoryRead($_itrInteractC+$ofs__InteractOffsetA, $d3, 'ptr')	
    	global $_itrInteractE  = $_itrInteractD+$ofs__InteractOffsetB
    
    	$FixSpeed = 				0x20 ;69736
    	$ToggleMove = 				0x34
    	$MoveToXoffset = 			0x40
    	$MoveToYoffset = 			0x44
    	$MoveToZoffset = 			0x48
    	$CurrentX = 				0xA8
    	$CurrentY = 				0xAc
    	$CurrentZ = 				0xb0
    	$RotationOffset =			0x174
    
    	; récupération info personnage (permet de controler si le personnage est en partie )
    	Global $_Myoffset = -1
    	$_CurOffset = $_itrObjectManagerD
    	$_Count = _MemoryRead($_itrObjectManagerCount, $d3, 'int')
    	for $i = 0 to $_Count step +1 
    		if _MemoryRead($_CurOffset+0x4, $d3, 'ptr') = 0x77BC0000 Then
    			$_Myoffset = $_CurOffset
    			ExitLoop
    		EndIf
    		$_CurOffset = $_CurOffset + $_ObjmanagerStrucSize
    	Next
    
    	If $_Myoffset == -1 Then return false
    
    	global $ClickToMoveMain =		_MemoryRead($_Myoffset + $ofs__ObjmanagerActorLinkToCTM, $d3, 'ptr')
    	global $ClickToMoveRotation =		$ClickToMoveMain + $RotationOffset
    	global $ClickToMoveCurX =		$ClickToMoveMain + $CurrentX
    	global $ClickToMoveCurY =		$ClickToMoveMain + $CurrentY
    	global $ClickToMoveCurZ =		$ClickToMoveMain + $CurrentZ
    	global $ClickToMoveToX =		$ClickToMoveMain + $MoveToXoffset
    	global $ClickToMoveToY =		$ClickToMoveMain + $MoveToYoffset
    	global $ClickToMoveToZ =		$ClickToMoveMain + $MoveToZoffset
    	global $ClickToMoveToggle =		$ClickToMoveMain + $ToggleMove
    	global $ClickToMoveFix=			$ClickToMoveMain + $FixSpeed
    
    	;//CameraDef
    	Global $VIewStatic = 			0x015A0BEC
    	Global $DebugFlags =			$VIewStatic + 0x20
    	Global $vftableSubA =			_MemoryRead($VIewStatic, $d3, 'ptr')
    	Global $vftableSubA =			_MemoryRead($vftableSubA + 0x928, $d3, 'ptr')
    	Global $ViewOffset =			$vftableSubA
    
    	Global $Ofs_CameraRotationA =		$ViewOffset + 0x4
    	Global $Ofs_CameraRotationB =		$ViewOffset + 0x8
    	Global $Ofs_CameraRotationC =		$ViewOffset + 0xC
    	Global $Ofs_CameraRotationD =		$ViewOffset + 0x10
    	Global $Ofs_CameraPosX =		$ViewOffset + 0x14
    	Global $Ofs_CameraPosY =		$ViewOffset + 0x18
    	Global $Ofs_CameraPosZ =		$ViewOffset + 0x1C
    	Global $Ofs_CameraFOV =			$ViewOffset + 0x30
    	Global $Ofs_CameraFOVB =		$ViewOffset + 0x30	
    
    	return true
    EndFunc
    
    
    
    Func OffsetListInParty()
    	;//FILE DEFS
    	global $ofs_MonsterDef = 		0x015DBE00	;0x015DCE00
    	global $ofs_StringListDef =		0x015E8808	;0x015E9808	
    	global $ofs_ActorDef =			0x015Ec108	;0x015ED108	
    	
    	global $_defptr = 			0x3c
    	global $_defcount = 			0x10C
    	global $_deflink = 			0x148
    
    	global $_ofs_FileMonster_StrucSize = 	0x50
    
    	global $_ofs_FileActor_LinkToMonster = 	0x6C
    
    	global $_ofs_FileMonster_MonsterType =	0x18
    	global $_ofs_FileMonster_MonsterRace =	0x1C
    	global $_ofs_FileMonster_LevelNormal =	0x44
    	global $_ofs_FileMonster_LevelNightmare = 0x48
    	global $_ofs_FileMonster_LevelHell =	0x4c
    	global $_ofs_FileMonster_LevelInferno =	0x50
    
    	;//GET ACTORATRIB
    	global $ofs_ActorAtrib_Base = 		0x015A2EA4	;0x015A1EA4
    	global $ofs_ActorAtrib_ofs1 = 		0x390
    	global $ofs_ActorAtrib_ofs2 = 		0x2E8
    	global $ofs_ActorAtrib_ofs3 = 		0x148
    	global $ofs_ActorAtrib_Count =	 	0x108 		;0x0 0x0
    
    	global $ofs_ActorAtrib_Indexing_ofs1 = 	0x10
    	global $ofs_ActorAtrib_Indexing_ofs2 = 	0x8
    	global $ofs_ActorAtrib_Indexing_ofs3 = 	0x250
    	global $ofs_ActorAtrib_StrucSize = 	0x180
    	
    	global $ofs_LocalPlayer_HPBARB =	0x34
    	global $ofs_LocalPlayer_HPWIZ =		0x38
    
    	
    	;//GET LOCAL ACTOR STRUC
    	global $ofs_LocalActor_ofs1 = 		0x378		;instead of $ofs_ActorAtrib_ofs2
    	global $ofs_LocalActor_ofs2 = 		0x148
    	global $ofs_LocalActor_Count = 		0x108
    	global $ofs_LocalActor_atribGUID =	0x120
    	global $ofs_LocalActor_StrucSize = 	0x2D0		;0x0 0x0
    
    	global $_ActorAtrib_Base  = _MemoryRead($ofs_ActorAtrib_Base, $d3, 'ptr')	
    	global $_ActorAtrib_1  = _MemoryRead($_ActorAtrib_Base+$ofs_ActorAtrib_ofs1, $d3, 'ptr')
    	global $_ActorAtrib_2  = _MemoryRead($_ActorAtrib_1+$ofs_ActorAtrib_ofs2, $d3, 'ptr')
    	global $_ActorAtrib_3  = _MemoryRead($_ActorAtrib_2+$ofs_ActorAtrib_ofs3, $d3, 'ptr')
    	global $_ActorAtrib_4  = _MemoryRead($_ActorAtrib_3, $d3, 'ptr')
    	global $_ActorAtrib_Count  = $_ActorAtrib_2+$ofs_ActorAtrib_Count
    
    	global $_LocalActor_1  = _MemoryRead($_ActorAtrib_1+$ofs_LocalActor_ofs1, $d3, 'ptr')
    	global $_LocalActor_2  = _MemoryRead($_LocalActor_1+$ofs_LocalActor_ofs2, $d3, 'ptr')
    	global $_LocalActor_3  = _MemoryRead($_LocalActor_2, $d3, 'ptr')
    	global $_LocalActor_Count  = $_LocalActor_1+$ofs_LocalActor_Count
    
    	global $Object_File_StringList = IndexSNO($ofs_StringListDef,0) 		;//THIS LIST IS HUGE, NO NEED TO DO IT MORE OFTEN THAN ONCE =) 
    	$index = _ArraySearch($Object_File_StringList, hex($_MonsterNameStringListID), 0 , 0 , 0 , 1 , 1 , 1)
    	global $StringListDB = IndexStringList($Object_File_StringList[$index][0])	;$StringListDB is debricated in this code
    	$index = _ArraySearch($Object_File_StringList,hex($_GizmoNameStringListID), 0 , 0 , 0 , 1 , 1 , 1)
    	IndexStringList($Object_File_StringList[$index][0])
    
    EndFunc
    So is what I'm having trouble in my variables or is it the only solution?

  6. #276
    GnomBG's Avatar Corporal
    Reputation
    1
    Join Date
    Jul 2012
    Posts
    27
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Ok im been able to to get all items in my bag.
    So my question is how to click/interact on this i want?

    i use $Items = IterateBackpackExtendedWithLvl(0)
    Last edited by GnomBG; 08-18-2012 at 12:03 PM.

  7. #277
    skumi's Avatar Private
    Reputation
    1
    Join Date
    Jul 2012
    Posts
    10
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    loeal,

    first you must check if $index is -1

    you can comment out those 4 lines if you are not using $StringListDB
    Last edited by skumi; 08-18-2012 at 03:40 PM. Reason: cant read...

  8. #278
    loeal's Avatar Corporal
    Reputation
    1
    Join Date
    Jul 2012
    Posts
    19
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    ok thank you I'll watch it

    Another issue concerning these pointers for character attributes pointers does no information (as you noticed ADRN).

    - edit - something wrong in the function

    but I do not really understand the operation of the function to retrieve the attributes associated with him (the structure of pointers actually ^ ^)
    I understand that the info is a binary string (see BITAND orders) but it remains unclear to me

    PS: a small function to locate the character (in the menu or in a combat zone)

    CheckArea( <value of zone> ) return true/false (working in the menu)
    CheckArea() return the value of the zone 0 if we are in the menu

    Code:
    Func CheckArea( $area = -1 )
    	$_CurOffset = $_itrObjectManagerD
    	$_Count = _MemoryRead($_itrObjectManagerCount, $d3, 'int')
    	for $i = 0 to $_Count step +1
    		$_GUID = _MemoryRead($_CurOffset+0x4, $d3, 'ptr')
    		if $_GUID = 0x77BC0000 Then
    			If $area == -1 then
    				return _MemoryRead(_MemoryRead(0x17718C4,$d3,"int")+ 0x810,$d3,"int")
    			Else
    				return $area = _MemoryRead(_MemoryRead(0x17718C4,$d3,"int")+ 0x810,$d3,"int")
    			EndIf
    		EndIf
    		$_CurOffset = $_CurOffset + $_ObjmanagerStrucSize
    c	Next
    
    	if $area == -1 Then return 0
    	return $area = _MemoryRead(_MemoryRead(0x17718C4,$d3,"int")+ 0x810,$d3,"int")
    EndFunc
    Last edited by loeal; 08-19-2012 at 09:20 AM.

  9. #279
    skumi's Avatar Private
    Reputation
    1
    Join Date
    Jul 2012
    Posts
    10
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    loeal,
    ty for the checkare code, gona try that

    about ObjectAtrib, its not working, as i see you supply $GUID as parameter and its never used inside the function
    there are several working functions in the previous pages in this thread

  10. #280
    GnomBG's Avatar Corporal
    Reputation
    1
    Join Date
    Jul 2012
    Posts
    27
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    do anyone knows how to interact with item in the bag which i get by IterateBackpack function in previous pages

    and one more question - is it safe to use multiple times the memory write functions like "MoveToPos" and " PowerUseGUID"?
    Last edited by GnomBG; 08-19-2012 at 01:40 AM.

  11. #281
    Satanbyte's Avatar Member
    Reputation
    1
    Join Date
    Jan 2009
    Posts
    5
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Loeal if you just test the value is différent -1 ... your code work fine ....
    i dont understand you 'rebuild sommes part of code' and when you have an error you dont test the value of your variable.......

  12. #282
    loeal's Avatar Corporal
    Reputation
    1
    Join Date
    Jul 2012
    Posts
    19
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    @ skumi
    ah thank you for GUID, I forgot to remove it.
    I was based on the following function (I would have the tests before simplicer, D)

    Code:
    Func ObjectAttrib($_GUID, $_REQ)
    	$ret = GetAttribute(BitOR($_REQ[0], 0xFFFFF000))
    	$val = _MemoryRead($ret, $d3, $_REQ[1])
    	return $val
    EndFunc
    
    
    
    Func GetAttribute($offset)
    	$CAttribFormula = _MemoryRead($_ActorAtrib_4 + 0x10, $d3, 'ptr')
    	$_418 = _MemoryRead($CAttribFormula + 0x418, $d3, 'ptr')
    	$AttributesMap = _MemoryRead($CAttribFormula + 0x8, $d3, 'ptr')
    	$IndexMask = BitAND($_418, ($offset ^ (BitShift($offset, 0x10))))
    	$_res = ($AttributesMap + 4 * $IndexMask)
    	$result = _MemoryRead($_res, $d3, 'ptr')
    	If $result <> 0 Then
    		While _MemoryRead($result, $d3, 'ptr') <> $offset
    			$result = _MemoryRead($result, $d3, 'ptr')
    			If $result = 0 Then
    				ExitLoop
    			EndIf
    		Wend
    	EndIf
    	return $result
    EndFunc
    i didnt notice the unuse of $GUID ;D

    @ Satanbyte
    I saw that ca gave a value of -1 but I wanted to understand, and I saw that as between variable declarations ca me avoid a crash and consume material resources

  13. #283
    skumi's Avatar Private
    Reputation
    1
    Join Date
    Jul 2012
    Posts
    10
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    loeal,

    another problem i see is
    $IndexMask = BitAND($_418, ($offset ^ (BitShift($offset, 0x10))))

    in autoit operator ^ is for power, and the code must xor the values, right?
    use BitXOR($var1, $var2)
    Last edited by skumi; 08-19-2012 at 01:37 PM.

  14. #284
    loeal's Avatar Corporal
    Reputation
    1
    Join Date
    Jul 2012
    Posts
    19
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    the function I mentioned is not mine, I found this article on several pages before (but I can not remember who: x)

    but I agree with you
    i am using a another function actually iam trying to understand the use of all offset ;D

  15. #285
    awp2004's Avatar Active Member
    Reputation
    34
    Join Date
    Jun 2012
    Posts
    631
    Thanks G/R
    0/4
    Trade Feedback
    2 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    nicely done. I dont understand how you can check for mobs around you. Reading memory??

Similar Threads

  1. Interact problems with Click to move
    By natt_ in forum WoW Memory Editing
    Replies: 3
    Last Post: 09-28-2014, 02:12 PM
  2. [AutoIt] Diablo 3 Click To Move, Interaction, Actor Indexing.
    By UnknOwned in forum Diablo 3 Memory Editing
    Replies: 84
    Last Post: 06-30-2012, 11:59 AM
  3. [Diablo 3] Click to move?
    By diablothree in forum Diablo 3 Memory Editing
    Replies: 3
    Last Post: 01-14-2012, 04:29 AM
  4. Click to move?
    By ashleyww in forum WoW Memory Editing
    Replies: 32
    Last Post: 07-18-2009, 08:48 PM
  5. Click to Move Problem
    By Rival-Fr in forum WoW Memory Editing
    Replies: 5
    Last Post: 07-03-2009, 09:27 AM
All times are GMT -5. The time now is 10:54 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search