Register for your free account! | Forgot your password?

You last visited: Today at 03:27

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

 

[Tool] MapItemManager

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Aug 2007
Posts: 71
Received Thanks: 77
[Tool] MapItemManager

Hey,

This is a simple tool that notifies you with a message box (and perhaps sound in the future) when an item of your choice drops.
I made this because there was something like this requested, and I wanted to do some external tool.
It should be undetectable since it only uses only ReadProcessMemory with minimum rights, but as usual, I'm not responsible if you get banned for using it.
It should work for at least a few patches before it needs updating.
I originally made this in C++, but since it needed a GUI I changed to C#.
I might continue the C++ version to add the rest of the GUI and upload it, if I have time and interest.

[How to]
1. Download
2. Extract
3. Run as administrator
4. Log in to Conquer
5. Select your character from the drop down menu
6. Press "Start"
7. Add items you want to get notified for in the list. Write the name in the text box and press "Add".
Make sure the name is in correct case (DragonBall not Dragonball etc) just like it shows up in Conquer.
I was too unskilled at C# to make lowercase comparison
It saves the items you add so you only have to do it once. To delete an item, select it and press "Delete selected".

P.S. I suck at naming stuff and making posts and GUIs, as you can probably see

You must register and activate your account in order to view images.

Changes:
-1.0 Initial release
-1.01 Fixed issue with long names not showing up correctly

Virus scan:
Attached Files
File Type: rar MapItemManagerv1.01.rar (8.6 KB, 553 views)



Freszone is offline  
Thanks
9 Users
Old   #2
 
elite*gold: 0
Join Date: Sep 2013
Posts: 197
Received Thanks: 140
Good job, but somehow I feel that phize deserves some credit


SteveRambo is offline  
Old   #3
 
elite*gold: 0
Join Date: Aug 2007
Posts: 71
Received Thanks: 77
I don't know for what reason though... If I had to give someone credits for this, it would probably be to HexRays for IDA
I've spent plenty of time reversing the client myself.
Wasn't too hard to find the items that are located in a vector that is in CMapItemManager class that is in CGameMap.
And as for the names, I just copy a linked list from CItemData.
Freszone is offline  
Old   #4
 
elite*gold: 0
Join Date: Sep 2013
Posts: 197
Received Thanks: 140
Quote:
Originally Posted by Freszone View Post
I don't know for what reason though... If I had to give someone credits for this, it would probably be to HexRays for IDA
I've spent plenty of time reversing the client myself.
Wasn't too hard to find the items that are located in a vector that is in CMapItemManager class that is in CGameMap.
And as for the names, I just copy a linked list from CItemData.
Wow, sorry, it seems like I jumped the gun on that one. I'm just used to seeing so many retarded leechers here who only release stuff that they steal from others.

This is where I thought you got your information from, but I guess I was wrong .


SteveRambo is offline  
Old   #5
 
elite*gold: 0
Join Date: Aug 2007
Posts: 71
Received Thanks: 77
I see your point, but I can't say I would have seen that thread before.
And the class names are straight from TQ as you might know...

I have currently a lot of spare time so I'm spending it doing **** like this...
I have renamed and reversed loads of functions (made scripts for most), wrote a basic framework for bot ("minor" problems with restrictions ) and stuff.
I won't probably use any of the stuff myself, but I find it a great way of improving my skills, I try to use new techniques in every "project".
My career is going to be in computer science so I care about understanding stuff and not just leeching from someone else.
Sorry for being such a *****, but I just get ****** easily.
Freszone is offline  
Thanks
1 User
Old   #6
 
elite*gold: 0
Join Date: Jun 2014
Posts: 23
Received Thanks: 7
update pls
BestestBooster is offline  
Old   #7
 
elite*gold: 0
Join Date: Sep 2013
Posts: 197
Received Thanks: 140
Quote:
Originally Posted by BestestBooster View Post
update pls
Oh, so you can post now that the tool doesn't work, but you can't even give the creator a "thanks" when it works? Get the **** out.
SteveRambo is offline  
Thanks
3 Users
Old   #8
 
elite*gold: 0
Join Date: Apr 2012
Posts: 52
Received Thanks: 3
Does the tool works?
anger001 is offline  
Old   #9
 
elite*gold: 0
Join Date: Aug 2007
Posts: 71
Received Thanks: 77
Just tested it for a few minutes on the latest patch (5910) and it seemed to be working fine.
If there are some issues that I'm not aware of, please be a bit more specific than "update pls"
Freszone is offline  
Old   #10
 
elite*gold: 0
Join Date: Mar 2014
Posts: 219
Received Thanks: 25
Um, tried it worked fine for me too...
Wolfy. is offline  
Old   #11
 
elite*gold: 0
Join Date: Apr 2009
Posts: 133
Received Thanks: 93
Quote:
Originally Posted by SteveRambo View Post
Wow, sorry, it seems like I jumped the gun on that one. I'm just used to seeing so many retarded leechers here who only release stuff that they steal from others.

This is where I thought you got your information from, but I guess I was wrong .
It is possible he used that thread for the offsets but he used patterns to find the base pointers, which is not mentioned in that post.

I have massive respect for phize and other users who post there code and apps for free and in general help the community. So i say phize deserves credit. XD
nicolastyler is offline  
Old   #12
 
elite*gold: 0
Join Date: Aug 2007
Posts: 71
Received Thanks: 77
Code:
#pragma once

//////////////////////////////////////////////////////////////////////////////////////////
//       Item entries are located in a vector. This vector is found at					//
//       CGameMap:: + 0x8C (0x7C + 0x10) which points to the first item					//
//       of the vector. Last item is pointed by CGameMap:: + 0x90 (0x7C + 0x14).		//
//		 To find the offsets, search for "3dgamemap\\mapitemmanager.cpp" in IDA.		//
//       Total amount of items in this vector can be calculated as follows:				//
//																						//
//	items.size()																		//
//	{                                                                                   //
//		return (items.end() - items.begin()) / 4;										//
//	}																					//
//																						//
//	where items.end() = pointer to last item and items.begin() = pointer to first item  //
//																						//
//////////////////////////////////////////////////////////////////////////////////////////

#pragma pack(push, 1)
struct ItemEntry
{
	unsigned long uid;
	unsigned long id;
	unsigned long x;
	unsigned long y;
};
#pragma pack(pop)

//Example usage

DWORD size = (mr_.Read<DWORD>(pLastItem_) - mr_.Read<DWORD>(pFirstItem_)) / 4;
for(DWORD i = 0; i < size; ++i)
	ItemEntry item = mr_.Read<ItemEntry>(mr_.Read<DWORD>(mr_.Read<DWORD>(pFirstItem_) + i * 4));
There you go, for free and you can do anything you want to. I can't be bothered to post my IDB here since you would just tell me it's leeched from someone, clearly it is.
Freszone is offline  
Old   #13
 
elite*gold: 0
Join Date: Apr 2009
Posts: 133
Received Thanks: 93
I assumed your app was made in C#, is it not?

some similar C# code:
Code:
private static Dictionary<int, string> item_names = new Dictionary<int, string>();

private struct ItemEntry
{
    public uint uid;
    public uint id;
    public uint x;
    public uint y;

    public override string ToString()
    {
        return item_names[Convert.ToInt32(id)] + " X:" + x.ToString() + " Y:" + y.ToString();
    }
}

//Example usage

private void getItems(Process process)
{
    HashSet<int> hashSet = new HashSet<int>();
    List<int> list = new List<int>();
    list.Add(memoryManager.ReadInt32(pFirstEntry));
    list.Add(memoryManager.ReadInt32(pFirstEntry + 4));
    list.Add(memoryManager.ReadInt32(pFirstEntry + 8));
    while (list.Count > 0)
    {
        int num1 = list[0];
        list.Remove(num1);
        hashSet.Add(num1);
        for (int index = 0; index < 3; ++index)
        {
            int num2 = memoryManager.ReadInt32(num1 + index * 4);
            if (!hashSet.Contains(num2))
                list.Add(num2);
        }
        int index1 = memoryManager.ReadInt32(num1 + 12);
        if (index1 != 0)
        {
            int nCount = memoryManager.ReadInt32(num1 + 40);
            string str = string.Empty;
            if (nCount <= 15)
                str = memoryManager.ReadString(num1 + 24, nCount);
            else
                str = memoryManager.ReadString(memoryManager.ReadInt32(num1 + 24), nCount);
            item_names[index1] = str;
        }
    }
}
nicolastyler is offline  
Old   #14
 
elite*gold: 0
Join Date: Dec 2010
Posts: 5
Received Thanks: 0
Not working?
Tale99 is offline  
Old   #15
 
elite*gold: 0
Join Date: Mar 2012
Posts: 1
Received Thanks: 0
pleas reload hack


hatemtiger is offline  
Reply



« Previous Thread | Next Thread »



All times are GMT +1. The time now is 03:27.


Powered by vBulletin®
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Abuse
Copyright ©2017 elitepvpers All Rights Reserved.