[TUT]Camera/Character Position

09/09/2010 13:53 afkguy#1
It took me a while to figure out the camera location addresses because at first I thought they would be angles relative to your character position, in fact they are positions relative to the map.

This is a small tutorial on how to find the addresses for your character position and the camera position. If you do not know how to use CE this tutorial will be of no use to you (go learn that first).

First lets find your character X position

1. Load into your town map by using a return scroll
2. Orient the camera so your facing the top of the map
3. Search Float for unknown initial value
4. Move to the right and search for increased value
5. Move to the left and search for decreased value
6. Don't move. Search for unchanged value a few times until the list is smaller
7. Use a return scroll (places you back at center)
8. Search for "Same as first scan"
9. Repeat steps 4 5 6 and 7 until your list is very short
10. Use return scroll and compare the addresses to 0.00 or something very close
11. Freeze addresses and go back into the game to check if you found the correct one. Freezing will disallow your character moving in that direction.

To find your characters Y position follow the same procedure except instead of moving right for increased value move up, and down for decreased value.

To find your cameras X position:

1. Orient your camera facing the top of the map
2. Search Float for unknown initial value
3. Move your camera to the right (look left)
4. Search for increased value
5. Move your camera to the left (look right)
6. Search for decreased value
7. Dont move. Search for unchanged value several times to shorten the list
8. Repeat steps 3 through 6 (and sometimes 7) until your list is very short
9. Once you have a good idea of what addy it might be freeze it, go into the game and try to move your camera. If it acts funny like its trying not to move then you found it

To find your camera Y positon:
Repeat the steps for X Cam position except start by orienting your camera facing the left of the map.

To find your camera Z position:
Repeat steps for X Cam position except move the camera up (look down) for increased value and down(look up) for decreased.

How to orient your camera facing "north" in code:
NOTE: 140 is about as far away from your character as the camera "wants" to go. This probably can be changed by altering the zoom level.

Set your camera position to CharacterY-140 and CharacterX. This will cause the camera to be "below" your characters Y and directly on its X, facing the top of the map.

What is this for?
Now SkyBot has two Move Grind modes. One uses these addresses, one does not. The new mode allows SkyBot to move around in a given area.

With this new stuff SkyBot will now search for mobs within its area when not being attacked (rather than stand like a doof). The moments it makes are 100% random except for them being restricted to a certain area. SkyBot will also randomly choose to move for no reason.

I'm going to post a video of my new Move Grind in a couple days. It's kinda eerie how real it looks now. For example it will be attacking a group of like 8 monsters and when it gets down to 2 or 3 it will move and gather more. How ridiculously real is that?!?

Oh in case anybody wants to fiddle with teleporting or whatever here are the current addresses I just mentioned:

Char X = 0x0110669b
Char Y = 0x011066a3
Cam X = 0x0056e478
Cam Y = 0x0056e480

I didn't get any Z coords cuz I don't need them.
09/09/2010 14:27 Mega Byte#2
Very nice dude :), found it out partly a while ago but didnt bother checking into it as it seemed weird as you said its relative to map not character.. that would explain why i ws like what! when i was meddling with it haha :)

Thanks for the TUT.
09/10/2010 02:03 afkguy#3
With these same methods you will also find the "Camera Focus Position". Which is where the camera wants to point to.

By default this position follows your character around, so if you change the X/Y/Z of the camera it will always turn to face the character. If you change the camera focus position it will always turn to face that spot.

For example if you put the camera focus position in the center of town, no matter where you moved the camera would always be looking in that direction.

You can also position the XYZ of the camera somewhere, and position the focus near that spot as well. When you do this your character will walk out of the screen, no longer attached to the camera. You could for instance place the XYZ of the camera up high (increasing the zoom level is required for placing it farther than about 140 from the camera focus position (or maybe its being restricted by the character im not sure)) on the map, and then freeze the camera focus position in the center of the map. Now you can see the whole map and move your character around without moving the camera :D

If you wanted you could also off set the CamFocPos to the left or right of where-ever your character currently is, effectively creating a cool slanted view. You could do it so instead of your character being centered on your screen its slightly off to one direction. If you change the CamFocPos forward or backward of CurCharPos you can adjust the tilt. Which means if you move your camera (using mouse in game) up and down you will have a sharper or duller "fish eye" movement. If you move the CamFocPos up or down (Z axis) from CurCharPos when moving camera in game instead of the focus being centered on the center of your body you could make it centered on your feet or your head, or higher then your head or whatever.

I think the ideal CamFocPos would be slightly up and to the right. PLacing your character slightly to the left (clears your view going straight) and making the focus about where your head is.

NOTE: Do not take screenshots if your camera is adjusted... also btw blax you should remove that little message on the bottom right of the screen that says your using blax's trainer... quite a few ppl got banned because they forgot it was there in their SS they posted online.

HINT: This is for all you programmers out there.... use your imagination...
If you can move the camera anywhere you want you allow for all sorts of crazy shit. For example (i might put this in skybot) make a hotkey that jumps the camera to a certain position, lets say in yangok looking at the enemies portal, or on the Y form. You now can monitor the situation without moving. You could program camera locations for stones and everything. Imagine... now you have the ability to look anywhere on the current map without moving. You could also add a hotkey/button to jump to the current location of the camera. This way you can have a look at where your going to teleport before you do. Decreasing the chance of getting caught to about 0%. Also it would be a super easy way to get into the action, catch up to someone, hurry to help a friend, get their before they do, or whatever.

In fact you could allow the user to move the camera around the map freely if you wanted....

EDIT:
Okay to make things clear here are the 3 parts you need to control the camera and/or your character. Each part has 3 addresses you need.

Current Character Position (CurCharPos)
X axis
Y axis
Z axis

Current Camera Position (CurCamPos)
X axis
Y axis
Z axis

Camera Focus Position (CamFocPos)
X axis
Y axis
Z axis

All can be found using the methods above.