PWI - Auto Set Camera View - HELP!

05/31/2011 21:29 -Dutchman-#1
Hello Guys and Gals!

Im working on a PWI ad-on (Managed c++) that will auto set the camera view behind the player. So that whenever you make a turn, you will always look "forward". (like dragging the rightmousebutton, or like using [a] and [d] when enabled in the game menu[u])

Using Cheat Engine i have located the variable for the camera view.
North = 0 to 360, clockwise. Look for a 'float' value type.
(tip: use 'Freeze/unfreeze minimap' and look for 'in between' values!)

The problem i have is: I CAN NOT FINE THE POINTER(S) !?!?!?!?!
(pointer offsets)

ANYbody pls come up with something...... :rolleyes:

Gr. the Dutchman
06/01/2011 08:48 Interest07#2
Did you check whether they are in the player struct? Any additional info?
06/01/2011 16:05 -Dutchman-#3
Additional info.... oeh... uhmm.... well i pretty much explained everything...

Im trying to locate the basse address + offsets for the 'camera-variable' using Cheat Engine.

The variable is a float, with a value between 0 and 360..... starting with North.

I know how to work with cheat engine.... I got the new offsets for HP and Mana, target, x, y and z coords..... all no problem....

is just that..... when i DO find the variable for cameraview..
..and i scan for 'what writes' it DOES give me a match.... and a hex value the pointer should have...

however, when i do a new scan on the pointervalue... it is showing me 0 results........
06/01/2011 16:09 Sᴡoosh#4
Ive tried this some time ago, and found the data (its in char struct,one is rad notation and the other deg, 4 byte float). But the values are read only... editing them doesnt have any effect to me. Only camera distance seems to be read/write... but maybe I was just to dumb, quite possible to.
06/01/2011 18:56 Interest07#5
If it only gets written to it won't be a particularly interesting variable to change I'd say :)
06/04/2011 18:28 -Dutchman-#6
Quote:
Originally Posted by Interest07 View Post
If it only gets written to it won't be a particularly interesting variable to change I'd say :)
I dont care that it only gets written to!! I want the offsets!!
WHY DO PEOPLE POST MESSAGES IN 'MY' THREAD THAT DOES NOT BUILD TO A SOLUTION OF THE STATED QUESTION?

If i have the value, i know how many pixels my mouse has to move to set the view to 'north'. (while holding right mouse button).

It might not be an 'elegant' solution, but i dont care as long as it works.....

So again...... anybody who can help on getting me the offsets???
06/04/2011 18:36 -Dutchman-#7
Quote:
Originally Posted by 2981611 View Post
Ive tried this some time ago, and found the data (its in char struct,one is rad notation and the other deg, 4 byte float). But the values are read only... editing them doesnt have any effect to me. Only camera distance seems to be read/write... but maybe I was just to dumb, quite possible to.
And did you manage to get the offets? I'm looking for them...
I dont care that its read-only; all i need is to read the value...

thnx
06/05/2011 08:21 Interest07#8
Well, I asked if it was in the player struct, which it is. The reason I asked is this: If you know the value is located in a particular struct, finding the offset is a simple matter of subtraction. In this case it was located in the player struct ([[[[base] + 0x1C] + 0x34] + 0x0])

So you set the value for that in CheatEngine. Then you do the regular stuff to find the address for what you're looking. You subtract from that address the address of the player struct and voila: you have your offset.

Try +0x898 or 0x894. Both will point to a float between 0 and 360 that change as you turn the screen.
06/05/2011 11:06 -Dutchman-#9
Quote:
Originally Posted by Interest07 View Post
Well, I asked if it was in the player struct, which it is. The reason I asked is this: If you know the value is located in a particular struct, finding the offset is a simple matter of subtraction. In this case it was located in the player struct ([[[[base] + 0x1C] + 0x34] + 0x0])

So you set the value for that in CheatEngine. Then you do the regular stuff to find the address for what you're looking. You subtract from that address the address of the player struct and voila: you have your offset.

Try +0x898 or 0x894. Both will point to a float between 0 and 360 that change as you turn the screen.
Thanx again for your time. Its appreciated.
It took me a while to understand what you meant, but i got it now.

With your system i managed to get the last offeset:
Base + 0x1C + 0x34 + 0x0 + 0x119E600C
This does NOT work when reloading..... hence, more offsets are needed.

Have you actually tried to get the offsets the 'normal' way?
You will understand my problem a lot better.... as you WONT be able to get he offsets.....I DO have the variable located, and i can read its value.
What i CANT do, is get the pointers thru 'what writes'....
06/05/2011 11:21 Interest07#10
Oo

I mean:

Base + 0x1C + 0x34 + 0x894 or 0x898

And yes, I have tested it (exited client, started another, logged in with a different account / character just to be sure)


Look at this image:

[Only registered and activated users can see links. Click Here To Register...]


First you locate the current address of the Camera Angle in degrees (as float). This you appear to have no trouble with.

In this case it is 0x114D13E8

Then, you check where the player struct pointer points to:

0x114D0B50

Hmmm those look awfully close, the camera angle is prolly in the player struct. Let's see how far from the start it is: 0x114D13E8 - 0x114D0B50 = 0x898

Let's test this:

[Only registered and activated users can see links. Click Here To Register...]


And now in a different client:

[Only registered and activated users can see links. Click Here To Register...]

Yup, still working :)


Doing it the regular way won't work like this exactly, because the value is not accessed directly from the player struct, but via intermediate pointers causing some unnecesary complexity. It's the same with the move counter (which is actually located quite close to this value)
06/07/2011 09:38 Interest07#11
I suppose that worked then?
06/09/2011 12:53 -Dutchman-#12
Quote:
Originally Posted by Interest07 View Post
Oo

I mean:

Base + 0x1C + 0x34 + 0x894 or 0x898
Oohhhhhhhhhhhhhhhhhhhhh....... ok....

I feel guilty about the amount of effort you put in.. thanx a lot..
The trick worked for me :D.

I understand now that the camera angle is NOT retreivable by 'normal' ways of using C.E.

This makes me wonder about its usabillity for me, as i will be dependent on other people providing me the real-base + player struct info when the client performs an update.

Again, thank you VERY much....
06/15/2011 11:45 Interest07#13
Well, the offset will only change about once per patch, and most likely will be +4, +8, or +C ... +30 or so. Not that much effort to simply try out yourself. Don't need to actuall manually find the offset for the users, they can simply try increasing the offset by 4 until it works :)