-
Member
Hello,
Someone would have the offset PLAYER_SKILL please ,
I can't see my actual level in herbalism .
I program bot to pick up for vanilla
Thank you / Merci d avance
----------------------------------------------------------
I found !! thx
Last edited by excalipop; 05-12-2018 at 04:51 PM.
-
Originally Posted by
excalipop
Hello,
Someone would have the offset PLAYER_SKILL please ,
I can't see my actual level in herbalism .
I program bot to pick up for vanilla
Thank you / Merci d avance
----------------------------------------------------------
I found !!
thx
Btw: ZzukBot_V3/Skills.cs at b7396ebd4a1738928ac3a0200b5b28ea414e06de . Zz9uk3/ZzukBot_V3 . GitHub
Check my blog: https://zzuks.blogspot.com
-
Post Thanks / Like - 1 Thanks
excalipop (1 members gave Thanks to Corthezz for this useful post)
-
Contributor
Been a while since I posted, here is CSimpleCamera.
Can anyone confirm that +4h is m_scene (and what it points to?)
Code:
struct CSimpleCamera
{
int32_t* m_scene; // untested
NTempest::C3Vector m_position;
NTempest::C33Matrix m_facing;
float m_nearZ;
float m_farZ;
float m_fov;
float m_aspect;
virtual double FOV() = 0;
virtual NTempest::C3Vector* Forward(NTempest::C3Vector* result) = 0;
virtual NTempest::C3Vector* Right(NTempest::C3Vector* result) = 0;
virtual NTempest::C3Vector* Up(NTempest::C3Vector* result) = 0;
};
Also, does anyone know how to convert the co-ordinates from WorldToScreen to pixel coords that DirectX can use? Right now I'm doing
Code:
x = static_cast<uint32_t>(viewport.Width * (x / 0.78f));
y = static_cast<uint32_t>(viewport.Height - viewport.Height * (y / 0.625f));
which gives me a result that's accurate enough for my needs in 4:3 but is completely wrong at other resolutions. I'd really like to be able to do this properly
-
Post Thanks / Like - 2 Thanks
-
Contributor
Originally Posted by
Saridormi
Been a while since I posted, here is CSimpleCamera.
Can anyone confirm that +4h is m_scene (and what it points to?)
Code:
struct CSimpleCamera
{
int32_t* m_scene; // untested
NTempest::C3Vector m_position;
NTempest::C33Matrix m_facing;
float m_nearZ;
float m_farZ;
float m_fov;
float m_aspect;
virtual double FOV() = 0;
virtual NTempest::C3Vector* Forward(NTempest::C3Vector* result) = 0;
virtual NTempest::C3Vector* Right(NTempest::C3Vector* result) = 0;
virtual NTempest::C3Vector* Up(NTempest::C3Vector* result) = 0;
};
Also, does anyone know how to convert the co-ordinates from WorldToScreen to pixel coords that DirectX can use? Right now I'm doing
Code:
x = static_cast<uint32_t>(viewport.Width * (x / 0.78f));
y = static_cast<uint32_t>(viewport.Height - viewport.Height * (y / 0.625f));
which gives me a result that's accurate enough for my needs in 4:3 but is completely wrong at other resolutions. I'd really like to be able to do this properly
Fairly sure this has been discussed in an earlier post in this thread:
Code:
00483EE0 CGWorldFrame__GetScreenCoordinates
0041AD80 NDCToDDC
0041ADE0 DDCToNDC
-
Post Thanks / Like - 3 Thanks
-
Contributor
Originally Posted by
danwins
Fairly sure this has been discussed in an earlier post in this thread:
Code:
00483EE0 CGWorldFrame__GetScreenCoordinates
0041AD80 NDCToDDC
0041ADE0 DDCToNDC
Thanks! I'll take a look at those tomorrow.
Fortunately I managed to find the multipliers that I needed so I have perfect World to Screen now
Code:
Vector2i NormaliseScreenCoords(NTempest::C2Vector vec)
{
D3DVIEWPORT9 viewport;
device->GetViewport(&viewport);
// fov modifiers
const auto x_modifier = *reinterpret_cast<float*>(0x832a44);
const auto y_modifier = *reinterpret_cast<float*>(0x832a48);
const auto normalised_x = viewport.Width * (vec.x / x_modifier);
const auto normalised_y = viewport.Height - viewport.Height * (vec.y / y_modifier);
return Vector2i(normalised_x, normalised_y);
}
-
Post Thanks / Like - 2 Thanks
Corthezz,
bone91 (2 members gave Thanks to Saridormi for this useful post)
-
Active Member
Any information regarding Lights Hope anti-cheat?
I had an account banned yesterday, I teleported around the map a lot - Not actually sure what tripped it because I was doing it for ages before it triggered
Also, CTM enabled is at 0x718A630 (byte), 1 to enable, 0 to disable
Last edited by badusername1234; 06-05-2018 at 08:41 AM.
-
Member
hi guys. i want make a program like MultiHack.exe . it can port player to anywhere. first i find player's x y z base address . and i try to change the address.but it not work.
What else do I need to do next to make it work?
-
Contributor
Originally Posted by
badusername1234
Any information regarding Lights Hope anti-cheat?
I had an account banned yesterday, I teleported around the map a lot - Not actually sure what tripped it because I was doing it for ages before it triggered
Also, CTM enabled is at 0x718A630 (byte), 1 to enable, 0 to disable
I'd be extremely surprised if you didn't get detected using a telehack.
Originally Posted by
duanyiemo3
hi guys. i want make a program like MultiHack.exe . it can port player to anywhere. first i find player's x y z base address . and i try to change the address.but it not work.
What else do I need to do next to make it work?
Struct:
Code:
struct CMovementData
{
TSLink moveLink;
TSLink transportLink;
C3Vector m_position;
int m_facing;
int m_pitch;
C3Vector m_groundNormal;
__int64 m_guid;
__int64 m_transportGUID;
int m_moveFlags;
C3Vector m_anchorPosition;
int m_anchorFacing;
int m_anchorPitch;
int m_moveStartTime;
C3Vector m_direction;
C2Vector m_direction2d;
int m_cosAnchorPitch;
int m_sinAnchorPitch;
int m_fallStartTime;
int m_fallStartElevation;
int field_80;
int m_currentSpeed;
int m_walkSpeed;
int m_runSpeed;
int m_runBackSpeed;
int m_swimSpeed;
int m_swimBackSpeed;
int m_turnRate;
int m_jumpVelocity;
CMoveSpline *m_spline;
int some_timestamp;
};
CE Table:
Code:
<?xml version="1.0" encoding="utf-8"?>
<CheatTable CheatEngineTableVersion="26">
<CheatEntries>
<CheatEntry>
<ID>0</ID>
<Description>"ActivePlayer -> MovementData"</Description>
<ShowAsHex>1</ShowAsHex>
<VariableType>4 Bytes</VariableType>
<Address>00C7BCD4</Address>
<Offsets>
<Offset>0</Offset>
<Offset>118</Offset>
<Offset>28</Offset>
<Offset>88</Offset>
</Offsets>
<CheatEntries>
<CheatEntry>
<ID>7</ID>
<Description>"m_position.x"</Description>
<VariableType>Float</VariableType>
<Address>+10</Address>
</CheatEntry>
<CheatEntry>
<ID>1</ID>
<Description>"m_position.y"</Description>
<VariableType>Float</VariableType>
<Address>+14</Address>
</CheatEntry>
<CheatEntry>
<ID>2</ID>
<Description>"m_position.z"</Description>
<VariableType>Float</VariableType>
<Address>+18</Address>
</CheatEntry>
<CheatEntry>
<ID>3</ID>
<Description>"m_facing"</Description>
<VariableType>Float</VariableType>
<Address>+1C</Address>
</CheatEntry>
<CheatEntry>
<ID>33</ID>
<Description>"m_pitch"</Description>
<VariableType>Float</VariableType>
<Address>+20</Address>
</CheatEntry>
<CheatEntry>
<ID>5</ID>
<Description>"m_transportGUID"</Description>
<ShowAsHex>1</ShowAsHex>
<VariableType>8 Bytes</VariableType>
<Address>+38</Address>
</CheatEntry>
<CheatEntry>
<ID>6</ID>
<Description>"m_moveFlags"</Description>
<ShowAsHex>1</ShowAsHex>
<VariableType>4 Bytes</VariableType>
<Address>+40</Address>
</CheatEntry>
<CheatEntry>
<ID>8</ID>
<Description>"m_anchorPosition.x"</Description>
<VariableType>Float</VariableType>
<Address>+44</Address>
</CheatEntry>
<CheatEntry>
<ID>9</ID>
<Description>"m_anchorPosition.y"</Description>
<VariableType>Float</VariableType>
<Address>+48</Address>
</CheatEntry>
<CheatEntry>
<ID>10</ID>
<Description>"m_anchorPosition.z"</Description>
<VariableType>Float</VariableType>
<Address>+4C</Address>
</CheatEntry>
<CheatEntry>
<ID>11</ID>
<Description>"m_anchorFacing"</Description>
<VariableType>Float</VariableType>
<Address>+50</Address>
</CheatEntry>
<CheatEntry>
<ID>12</ID>
<Description>"m_anchorPitch"</Description>
<VariableType>Float</VariableType>
<Address>+54</Address>
</CheatEntry>
<CheatEntry>
<ID>13</ID>
<Description>"m_moveStartTime"</Description>
<ShowAsHex>1</ShowAsHex>
<VariableType>4 Bytes</VariableType>
<Address>+58</Address>
</CheatEntry>
<CheatEntry>
<ID>14</ID>
<Description>"m_direction.x"</Description>
<VariableType>Float</VariableType>
<Address>+5C</Address>
</CheatEntry>
<CheatEntry>
<ID>15</ID>
<Description>"m_direction.y"</Description>
<VariableType>Float</VariableType>
<Address>+60</Address>
</CheatEntry>
<CheatEntry>
<ID>16</ID>
<Description>"m_direction.z"</Description>
<VariableType>Float</VariableType>
<Address>+64</Address>
</CheatEntry>
<CheatEntry>
<ID>17</ID>
<Description>"m_direction2d.x"</Description>
<VariableType>Float</VariableType>
<Address>+68</Address>
</CheatEntry>
<CheatEntry>
<ID>18</ID>
<Description>"m_direction2d.y"</Description>
<VariableType>Float</VariableType>
<Address>+6C</Address>
</CheatEntry>
<CheatEntry>
<ID>19</ID>
<Description>"m_cosAnchorPitch"</Description>
<VariableType>Float</VariableType>
<Address>+70</Address>
</CheatEntry>
<CheatEntry>
<ID>20</ID>
<Description>"m_sinAnchorPitch"</Description>
<VariableType>Float</VariableType>
<Address>+74</Address>
</CheatEntry>
<CheatEntry>
<ID>21</ID>
<Description>"m_fallStartTime"</Description>
<ShowAsHex>1</ShowAsHex>
<VariableType>4 Bytes</VariableType>
<Address>+78</Address>
</CheatEntry>
<CheatEntry>
<ID>22</ID>
<Description>"m_fallStartElevation"</Description>
<VariableType>Float</VariableType>
<Address>+7C</Address>
</CheatEntry>
<CheatEntry>
<ID>23</ID>
<Description>"unk"</Description>
<ShowAsHex>1</ShowAsHex>
<VariableType>4 Bytes</VariableType>
<Address>+80</Address>
</CheatEntry>
<CheatEntry>
<ID>24</ID>
<Description>"m_currentSpeed"</Description>
<VariableType>Float</VariableType>
<Address>+84</Address>
</CheatEntry>
<CheatEntry>
<ID>25</ID>
<Description>"m_walkSpeed"</Description>
<VariableType>Float</VariableType>
<Address>+88</Address>
</CheatEntry>
<CheatEntry>
<ID>26</ID>
<Description>"m_runSpeed"</Description>
<VariableType>Float</VariableType>
<Address>+8C</Address>
</CheatEntry>
<CheatEntry>
<ID>27</ID>
<Description>"m_reverseRunSpeed"</Description>
<VariableType>Float</VariableType>
<Address>+90</Address>
</CheatEntry>
<CheatEntry>
<ID>28</ID>
<Description>"m_swimSpeed"</Description>
<VariableType>Float</VariableType>
<Address>+94</Address>
</CheatEntry>
<CheatEntry>
<ID>29</ID>
<Description>"m_reverseSwimSpeed"</Description>
<VariableType>Float</VariableType>
<Address>+98</Address>
</CheatEntry>
<CheatEntry>
<ID>30</ID>
<Description>"m_turnRate"</Description>
<VariableType>Float</VariableType>
<Address>+9C</Address>
</CheatEntry>
<CheatEntry>
<ID>31</ID>
<Description>"m_jumpsomething"</Description>
<VariableType>Float</VariableType>
<Address>+A0</Address>
</CheatEntry>
<CheatEntry>
<ID>32</ID>
<Description>"unk // m_spline?"</Description>
<VariableType>Float</VariableType>
<Address>+A4</Address>
</CheatEntry>
<CheatEntry>
<ID>34</ID>
<Description>"some_timestamp"</Description>
<ShowAsHex>1</ShowAsHex>
<VariableType>4 Bytes</VariableType>
<Address>+A8</Address>
</CheatEntry>
</CheatEntries>
</CheatEntry>
</CheatEntries>
<UserdefinedSymbols/>
</CheatTable>
As i said above, Expect to be banned trying to teleport this way.
-
Post Thanks / Like - 1 Thanks
Saridormi (1 members gave Thanks to danwins for this useful post)
-
Active Member
Originally Posted by
danwins
I'd be extremely surprised if you didn't get detected using a telehack.
But I don't get detected when I use it for normal teleporting (it's a heartbeat teleporter, not a nub xyz changer) - the detection only happens if I teleport around the map, visiting every town/village
I can teleport huge distances with it and be absolutely fine, it always bans me before I complete full map coverage though... It's as if they have some kind of threshold for strange movements and they've set it ridiculously high to avoid false positives
Last edited by badusername1234; 06-07-2018 at 08:56 AM.
-
Contributor
Originally Posted by
badusername1234
But I don't get detected when I use it for normal teleporting (it's a heartbeat teleporter, not a nub xyz changer) - the detection only happens if I teleport around the map, visiting every town/village
I can teleport huge distances with it and be absolutely fine, it always bans me before I complete full map coverage though... It's as if they have some kind of threshold for strange movements and they've set it ridiculously high to avoid false positives
My immediate guess would be they're tracking area changes. Try teleporting back and forth between points in the same area, and if you don't get banned, try porting between different areas.
-
Active Member
Originally Posted by
Saridormi
My immediate guess would be they're tracking area changes. Try teleporting back and forth between points in the same area, and if you don't get banned, try porting between different areas.
Yeah I actually have a feeling that they're tracking discovery of zones. Makes sense if you think about it, you could detect all explore hacks that way regardless of how each one internally works
-
I recalled something about this from a few months ago so I looked in some chats of mine:
[3:30 AM] Jadd: I noticed that there would be an "UnknownCheat" alert if you teleport into an area trigger or discover part of the map if no moveflags are set in the teleport.
Maybe that helps.
-
Post Thanks / Like - 2 Thanks
-
Contributor
Originally Posted by
Jadd
I recalled something about this from a few months ago so I looked in some chats of mine:
[3:30 AM] Jadd: I noticed that there would be an "UnknownCheat" alert if you teleport into an area trigger or discover part of the map if no moveflags are set in the teleport.
Maybe that helps.
I didn't get that one. Would you indicate me where the player movement flags are exactly checked for cheat?
Here is the trinity github handling the area trigger opcode: TrinityCore/MiscHandler.cpp at master . TrinityCore/TrinityCore . GitHub
Thanks.
-
Contributor
Originally Posted by
tutrakan
Why are you looking at TrinityCore?
-
Contributor
Originally Posted by
Saridormi
Why are you looking at TrinityCore?
because they are all the same:
server/MiscHandler.cpp at master . mangoszero/server . GitHub
there you are. This one was harder to find, but is the same thing.
Guys, i asked a simple question. Don't try to screw all this up please!
Last edited by tutrakan; 06-09-2018 at 03:49 AM.