-
Active Member
Detection of veins of ore and grass
Hello to all,
I make a bot to collect resources in WoW 3.3.5a.
And I ask for help from you because I can't figure it out
At the moment I have already implemented some features.
I have
Record and play routes
Automatic combat system
List of mobs to attack
And much more
But I can't figure out how to see the ore and grass nodes, what type of these objects
I built an object manager using the EnumVisibleObjects functions and
GetObjectByGUID
When I stand near ore or grass,
The object manager returns the following types for me: 1,2,3,4,5
Which type is ore or grass?
And one more question
Why the EnumVisibleObjects function returns only types 1,2,3,4,5
how to get types 6,7
dynamic object and a corpse?
Thanks in advance to everyone who answers
-
Contributor
Originally Posted by
Hrap
Why the EnumVisibleObjects function returns only types 1,2,3,4,5
how to get types 6,7
dynamic object and a corpse?
EnumVisibleObjects
-
Active Member
I have an object manager built on cyclical sorting of objects, but it returns the same objects as EnumVisibleObjects
Code:
WowObject* getAll(WowObject* Objects, int *Count)
{
int CurentObject = 0;
int OldObj;
unsigned int ClientConnection = Read<unsigned int>(StaticClientConnection);
unsigned int ObjectManager = Read<unsigned int>(ClientConnection + ObjectManagerOffset);
unsigned int FirstObject = Read<unsigned int>(ObjectManager + FirstObjectOffset);
Objects = AddAray(Objects, CurentObject);
Objects[CurentObject].oBaseAddress = FirstObject;
while (Objects[CurentObject].oBaseAddress != 0 && Objects[CurentObject].oBaseAddress % 2 == 0)
{
Objects[CurentObject].oType = Read<short>(Objects[CurentObject].oBaseAddress + Type);
Objects[CurentObject].oGuid = GetObjectGuidByBase(Objects[CurentObject].oBaseAddress);
Objects[CurentObject].oFieldsAddress = Read<unsigned int>(Objects[CurentObject].oBaseAddress + Fields);
if (Objects[CurentObject].oType == 1)
{
}
if (Objects[CurentObject].oType == 2)
{
}
if (Objects[CurentObject].oType == 3)
{
}
if (Objects[CurentObject].oType == 4)
{
}
if (Objects[CurentObject].oType == 5)
{
}
if (Objects[CurentObject].oType == 6)
{
}
if (Objects[CurentObject].oType == 7)
{
}
//
CurentObject++;
Objects = AddAray(Objects, CurentObject);
Objects[CurentObject].oBaseAddress = Read<unsigned int>(Objects[CurentObject - 1].oBaseAddress + NextObjectOffset);
}
*Count = CurentObject;
return Objects;
}
He also does not return types 6,7
I'm trying to solve this problem for the second week and can't figure it out.
but what interests me most of all is the type of ore and grass
In the end, it is a visible object, which means that it must be in the object manager
Last edited by Hrap; 10-26-2018 at 07:20 PM.
-
Contributor
I'm guessing that your code is outdated and the way you are retrieving the object type is wrong, perhaps try checking the display id for the mining/herb node until you find it and then determine where/how the type is stored.
-
Active Member
thank you.
I will try to search using a display id.
the code seems to work at 3,3,5
At least all the types of objects found correspond to the types that I see.
except mining / herb
-
Active Member
Learned to find ore and grass nodes
They have type 5 GameObject
I now have another problem; I cannot find the offset for the GameObject position.
I searched at forum and google and found nothing
Can anyone tell me how to determine the position of the object?
Is this only possible with VMT?
or is there another way?
-
I think you need to work a bit on your searching, or be more patient with it. There are many available sources of information for old builds like this, for example this old dump thread. ([WoW][3.3.5.12340] Info Dump Thread)
I haven't touched 3.3.5 since it was relevant, but GameObjects have their positional data stored elsewhere than say Units. Looking through that thread it seems to be X = objectAddess + 0xE8, with Y and Z following directly after that.
-
Post Thanks / Like - 1 Thanks
Hrap (1 members gave Thanks to h42 for this useful post)
-
Active Member
-
Active Member
it turned out that the answer was on the last page 
I am ashamed that I did not find it myself and spent your time
in the future I promise to be more attentive
-
Post Thanks / Like - 1 Thanks
h42 (1 members gave Thanks to Hrap for this useful post)
-
Active Member
There was another question, although not much
What is the best way to implement key taps?
I use now
PostMessage(HWND, WM_KEYDOWN, vk, lParam);
PostMessage(HWND, WM_KEYUP, vk, lParam);
recently discovered an unpleasant feature.
When a window loses focus, keystrokes stop working
Is there a way to implement a keypress with wow?
Sorry for the off-topic question.
Last edited by Hrap; 11-04-2018 at 01:19 PM.