Jump to content

Recommended Posts

Posted

1. Where does Warden exist? client or server? if server, can you show me some class about it?

http://getmangos.eu/community/topic/16244/warden-the-definitive-anticheat-system/

2. indoor/outdoor and area entry detection is for what?I have so few knowledge about it.

certain spells can only be cast outdoors

area entry contains extended information about a part of the map, see the structs defined in DBCStructure.h (most is only relevant client-side)

Posted

Mounts spells can't be used indoors, and others I don't know off the top of my head

Heightmaps tell the server where the ground is. This is useful so that monsters can walk on the ground and aren't up flying around in the air.

All code under src/game/vmap/, including BIH and intersection, is used for collision and lookups in a 3d space

For a explanation of the collision system and heightmaps, read this thread. We can't really make it much simpler than that, it is very technical... you will just have to read the code and do some research in order to understand (google, wikipedia, etc)

  • 41 years later...
Posted

Now I'm learning mangos,but I have some trouble.

1. How the server knows the player's height(value z)?

2. There is a function named Map::GetHeight.and I want to know when to use it.

3. The Class of RandomMovementGenerator is for what?

Posted

1. Client sends movement packets with X,Y and Z coordinates, orientation and various movement flags

2. When you want to know ground level at some X and Y coordinate

3. For random movement (npc idle movement, fear, disorient)

Posted

to herhong

first, Thank you!

1. I know that Client sends movement packets to server, but i need to know whether the info is correct. I mean that It may be sent by plug-in.The server need to check?

2. When the player walk accross the fence, Does the server check whether it can cross?

3. there is a function named Map::GetAreaInfo, it is for what? whether it check the value of z?

If anyone have more information about collision on server, Tell me! Thank you.

Posted

Generally you can't know if movement info is "correct" because the player is free to move within the physical simulation the client does. You neither have the necessary data precision nor the CPU power (for high populations at least) to double-check every single player movement against all cheating possibilities server side, that's one reason why Warden exists.

Of course some cheating can be caught, but from what i know, Blizzard does not do much server side either, they rely on Warden to detect memory editing, patched client binaries and data files.

Map::GetAreaInfo() obviously gets information about the area :P

Just look where it gets used, it's related to indoor/outdoor and area entry detection.

When to use intersectPoint()? You probably won't...it's a low-level function to find current WMO you're in, if any.

Posted
Generally you can't know if movement info is "correct" because the player is free to move within the physical simulation the client does. You neither have the necessary data precision nor the CPU power (for high populations at least) to double-check every single player movement against all cheating possibilities server side, that's one reason why Warden exists.

Of course some cheating can be caught, but from what i know, Blizzard does not do much server side either, they rely on Warden to detect memory editing, patched client binaries and data files.

Map::GetAreaInfo() obviously gets information about the area :P

Just look where it gets used, it's related to indoor/outdoor and area entry detection.

When to use intersectPoint()? You probably won't...it's a low-level function to find current WMO you're in, if any.

1. Where does Warden exist? client or server? if server, can you show me some class about it?

2. indoor/outdoor and area entry detection is for what?I have so few knowledge about it.

Thank you for your help!

Posted
certain spells can only be cast outdoors

area entry contains extended information about a part of the map, see the structs defined in DBCStructure.h (most is only relevant client-side)

what doea certain spells mean? For example?

Posted

thanks.

There is a question I asked and no one has answered.

When the player walk accross the fence, Does the server check whether it can cross?It needs intersectRay?

And I have a new question here.

There is a function named UpdateGroundPositionZ. It is for what? Check the players' z-position?

Now my biggest question is that

I know intersectRay and intersectPoint is used in GetHeight, GetAeraInfo, GetLocationInfo and maybe other place. Now I want to know where is the other place? I think GetAeraInfo and GetLocationInfo

is to check whether the player is indoor.If the player is indoor, then some spells like Mounts are not allowed to use. Am I wrong?

And if the player is standing on a box or a building, the function named GetHeight will do intersectRay but not calculate the height only by the heightmap in order to find the real height of the player. Am I wrong?

Heightmaps tell the server where the ground is. This is useful so that monsters can walk on the ground and aren't up flying around in the air.

I think Only the heighmaps are not enough. If the monsters are in a buliding, how to calculate their height?

Posted

vmaps are not used to make sure players don't walk through objects - Lynx3d said as much earlier.

They are used to determine line of sight for spell casts.

vmaps also determine the height of the geometry when a player is on a box, building, etc. Look in GridMap.cpp, at TerrainInfo::GetHeight - both vmaps and heightmaps are used.

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use