|
You last visited: Today at 08:11
Advertisement
Some Questions
Discussion on Some Questions within the Perfect World forum part of the MMORPGs category.
11/27/2011, 10:04
|
#1
|
elite*gold: 0
Join Date: Jul 2011
Posts: 57
Received Thanks: 8
|
Some Questions
Sup. Got a few questions.
1. I've made a program in C# to read player name/hp/mp/lvl and throw it in a list. However, the info doesn't update until I click the players name. Any way to update the list automatically?
2. I'm having trouble finding the pointer for the current selected target.. How am I supposed to get it? I tried similar methods to getting the list pointers but it didn't work.
3. Can someone list the current pointers / offsets? I currently have hp/maxhp/mp/maxmp/lvl/name.
Any assistance would be greatly appreciated.
|
|
|
11/28/2011, 10:15
|
#2
|
elite*gold: 0
Join Date: Jul 2011
Posts: 57
Received Thanks: 8
|
bump
|
|
|
11/28/2011, 12:45
|
#3
|
elite*gold: 10
Join Date: Sep 2010
Posts: 400
Received Thanks: 234
|
You'd need to find the player / target within the nearby player list / NPC/mob lists to get their info without having them selected. There's loads of info available for this stuff in the  forum, most recently  (start reading from end of linked post).
Cheers.
|
|
|
11/29/2011, 09:43
|
#4
|
elite*gold: 0
Join Date: Jul 2011
Posts: 57
Received Thanks: 8
|
Thanks for the reply.
Is there a way to get the player info for all nearby players WITHOUT sending a select packet with each TID in the nearby list?
And another thing - do you have the pointer for the current selected target ID?
|
|
|
11/29/2011, 09:51
|
#5
|
elite*gold: 10
Join Date: Sep 2010
Posts: 400
Received Thanks: 234
|
Take a look at the GetPlayerList() function that Interest07 posted  . You don't need to send any packets as it's all client side.
I think the target ID offset is still at [[playerBase]+0xB68]
i.e., [[[[baseCall]+0x1C]+0x34]+0xB68]
|
|
|
11/29/2011, 16:24
|
#6
|
elite*gold: 0
Join Date: Jul 2011
Posts: 57
Received Thanks: 8
|
I tried that, same problem as before. The player list contains the names / origins / IDs etc, but it doesn't update the HP/LVL etc until they're selected.
I suppose it doesn't matter that much, as only the current target info will be useful for me. Also, the TID pointer works fine.
Thanks.
|
|
|
11/29/2011, 17:19
|
#7
|
elite*gold: 10
Join Date: Sep 2010
Posts: 400
Received Thanks: 234
|
Oh you're right, I forgot it doesn't update that info or players...
I don't know if there is some sort of 'update player info' packet, separate from the selectTarget packet, but in my head it makes sense that there should be lol. I'll take a little look later this evening if I get a chance and if nobody else gets there first :P
Edit: Ok, just checked. Unfortunately it seems there is no such packet that is used when normally selecting a player, only the selectTarget packet which is responded to with various recv packets containing the player info.
However, I do wonder if there is a player info packet that gets updated separately when duelling / PKing that one might be able to utilise in a non confrontational situation.
I would test this out, but for some reason MHS runs like a pig on Win7 and unfortunately my XP box is buggered at the moment. I might give it a quick try in Olly, but no promises :P
Edit: No luck there either unfortunately. Seems that very few packets are sent during a duel besides attacks / position updates.
|
|
|
11/30/2011, 09:32
|
#8
|
elite*gold: 0
Join Date: Jul 2011
Posts: 57
Received Thanks: 8
|
Okay, thanks for the info.
One more thing. I've tried looking for the D3D EndScene function in order to display info within the game. However, I was unable to find anything useful in the imports. After doing some research, it looks like I need to do some VTable hooking. However, I have no experience with this.
Do you have any suggestions for this?
(Note: this would be done in C++ w/dll injection)
|
|
|
11/30/2011, 09:42
|
#9
|
elite*gold: 10
Join Date: Sep 2010
Posts: 400
Received Thanks: 234
|
Interest07 did exactly this a while ago... Take a look  .
It was a fully working example when he first released it - You should only need to update some of the offsets in structs.h to get it working.
What sort of info are you wanting to display in game? There might be an alternative method :P
|
|
|
11/30/2011, 10:13
|
#10
|
elite*gold: 0
Join Date: Jul 2011
Posts: 57
Received Thanks: 8
|
My goal is to display an in-game overlay containing various info on the selected target. Once that is complete, I will most likely expand it into my own multi-utility to do stuff like control Winamp for example, and other things.
I don't think there's a better way than injecting a DLL and having direct access to the data. It would be faster than calling ReadProcessMemory() over and over from another program too.
Also, I didn't find the source code in that thread.
|
|
|
11/30/2011, 10:25
|
#11
|
elite*gold: 10
Join Date: Sep 2010
Posts: 400
Received Thanks: 234
|
Yeah, DLL injection is probably the best way to to efficient memory access within the client. There are however, different ways of displaying data ingame. I suppose it all depends how much versatility you need from the graphics you wish to display.
I had started working on an in game GUI system whereby you can create your own in game interfaces without using D3D, but I got a bit sidetracked lol. I've gathered most of the info I need, but just never quite finished it - If you're interested, I can pass on some info about it.
Quote:
Originally Posted by boredsauce
Also, I didn't find the source code in that thread.
|
The files are attached at the end of the first post.
|
|
|
11/30/2011, 10:33
|
#12
|
elite*gold: 0
Join Date: Jul 2011
Posts: 57
Received Thanks: 8
|
Quote:
Originally Posted by dumbfck
Yeah, DLL injection is probably the best way to to efficient memory access within the client. There are however, different ways of displaying data ingame. I suppose it all depends how much versatility you need from the graphics you wish to display.
I had started working on an in game GUI system whereby you can create your own in game interfaces without using D3D, but I got a bit sidetracked lol. I've gathered most of the info I need, but just never quite finished it - If you're interested, I can pass on some info about it.
|
Any extra info would be nice. Thanks.
Quote:
Originally Posted by dumbfck
The files are attached at the end of the first post.
|
The only source file there was for an injector, which I already have. The other archives contain binaries.
|
|
|
11/30/2011, 10:39
|
#13
|
elite*gold: 10
Join Date: Sep 2010
Posts: 400
Received Thanks: 234
|
Quote:
Originally Posted by boredsauce
Any extra info would be nice. Thanks.
The only source file there was for an injector, which I already have. The other archives contain binaries.
|
Ahh... I might have acquired his source privately then... I'll ask him if he'd mind publicising some of it.
|
|
|
11/30/2011, 10:45
|
#14
|
elite*gold: 0
Join Date: Jul 2011
Posts: 57
Received Thanks: 8
|
Quote:
Originally Posted by dumbfck
Ahh... I might have acquired his source privately then... I'll ask him if he'd mind publicising it.
|
Yeah, he mentioned posting it but he didn't upload it. Please do, it would be very useful if he posted it.
Thanks.
|
|
|
12/01/2011, 00:00
|
#15
|
elite*gold: 10
Join Date: Sep 2010
Posts: 400
Received Thanks: 234
|
Well... I never actually tried building his source for the d38 stuff, so I thought I'd install the DXSDK. I've now given up with that stupid ****** idea lol. I'm probably just being thick... I installed it, pointed VS at the include / library / etc directories. Some of the header files were present in the installation but a whole bunch were not (the d3dx* files). I added a bunch manually but that just spawned more errors exponentially. I'm not personally interested in using this stuff, so I'm sorry but I'm not going to waste any more rage trying to get the SDK installed.
Interest07 said I could post his sources, but I'm not sure which are which now 'cause it was a long time ago. Hopefully he'll see this and upload the appropriate files :P
Having a really bad day, so I'm going to go and smash my Win7 box to a million pieces now.
Sorry I wasn't much help.
|
|
|
All times are GMT +1. The time now is 08:12.
|
|