Network: WoW Gold | WoW Accounts | MPS Games | FPSowned
MMOwned - World of Warcraft Exploits, Hacks, Bots and Guides
Homepage »      Register »      Hall of Fame »      Ranks And Awards »      Advertise »      Marketplace »
 
Sign up



Do you like this excellent information? Then Donate HERE to remove ads and support the MMOwned community.


Go Back   MMOwned - World of Warcraft Exploits, Hacks, Bots and Guides > World of Warcraft > Bots and Programs > WoW Memory Editing

WoW Memory Editing WoW Memory Editing for learning purposes only.
This section is more advanced than others on MMOwned Read the section specific rules, infractions will be given out if u break them!That is including the expectations! - If you don't meet them then don't post

Reply
 
LinkBack Thread Tools
  #1  
Old 12-01-2008
ShoniShilent is offline.
Master Sergeant
  
 
Join Date: May 2008
Posts: 96
Reputation: 7
Points: 743, Level: 1
Points: 743, Level: 1 Points: 743, Level: 1 Points: 743, Level: 1
Level up: 69%, 157 Points needed
Level up: 69% Level up: 69% Level up: 69%
Activity: 0%
Activity: 0% Activity: 0% Activity: 0%
Pets and NPC's follow paths, can player?

for now, my bot uses strict waypoint paths to move around. i carefully select waypoint locations and space them appropriately to prevent the character from getting stuck on a hill or within a building or beside a cliff, etc. it works pretty well. if the bot is hunting MOBS to kill, it won't attack them if they are further away than a certain distance. however, it would be a nice thing to create some sort of broader 'roaming' type waypoints such that the character could venture further out, etc. or when it died it could get back to it's body without having to make a 'spirit' waypoint path for such a reason.

i have noticed that if you command a pet to stay and then walk (even into buildings) and then command the pet to come to you, it will walk up steps, and go around obstacles to get to you. just as annoying, the enemies will follow you ceaselessly into all kinds of nooks and crannies to get to you. is it possible to somehow send a new x,y,z, coordinate to some sort of function that will create a 'path' that we can get ahold of to use similar to the way NPC's do?

are there any good/suggested threads/sites regarding pathing (or alternate pathing when a character is 'stuck' or is trying to get around obstacles). i am looking for optimization and people who have already found ingenious ways around this, rather than trying to reinvent the wheel.

it would be cool to send an x,y,z coord to some sort of function and then watch your character move to that spot on it's own. i know this is probably a pipe dream-
Reply With Quote


Donate to remove ads, get your "DONATOR title, and get access to the MMOwned community's elite Shoutbawx.

  #2  
Old 12-01-2008
Cypher's Avatar
Cypher is offline.
Kynox's sister's pimp
Legendary User
  
 
Join Date: Apr 2006
Location: ntdll.dll
Posts: 4,180
Nominated 63 Times in 4 Posts
Nominated TOTM/W Award(s): 1
Reputation: 1085
Points: 55,512, Level: 35
Points: 55,512, Level: 35 Points: 55,512, Level: 35 Points: 55,512, Level: 35
Level up: 14%, 3,188 Points needed
Level up: 14% Level up: 14% Level up: 14%
Activity: 43.9%
Activity: 43.9% Activity: 43.9% Activity: 43.9%

So what you're asking for, is the NPCs path generation function?

Thats an interesting question, but unfortunately my answer may be disappointing.

Now, I have NOT looked into this, so I may be wrong, but as far as I am aware, the NPC paths are generated on the server. Would make sense too.

To verify this. I suggest diving into the source code of mangos (huge thanks to all of the devs that work on that project) or another established emulator, and checking.
__________________
[Only registered and activated users can see links. ] Back online!

"Science is interesting, and if you don't agree you can **** off."
[Only registered and activated users can see links. ]

"I can write very coherent things when I try that sound very good" -- Styles
Reply With Quote
  #3  
Old 12-01-2008
UnknOwned's Avatar
UnknOwned is offline.
Elite User
  
 
Join Date: Nov 2006
Posts: 575
Nominated 6 Times in 3 Posts
Reputation: 557
Points: 9,762, Level: 11
Points: 9,762, Level: 11 Points: 9,762, Level: 11 Points: 9,762, Level: 11
Level up: 97%, 38 Points needed
Level up: 97% Level up: 97% Level up: 97%
Activity: 1.5%
Activity: 1.5% Activity: 1.5% Activity: 1.5%

Quote:
Originally Posted by Cypher View Post
So what you're asking for, is the NPCs path generation function?

Thats an interesting question, but unfortunately my answer may be disappointing.

Now, I have NOT looked into this, so I may be wrong, but as far as I am aware, the NPC paths are generated on the server. Would make sense too.

To verify this. I suggest diving into the source code of mangos (huge thanks to all of the devs that work on that project) or another established emulator, and checking.
Unfortunately most EMU's suck at pathing, mobs flying in the air or walking through objects. I tbh havent seen a EMU yet that does proper pathing for NPC's.

I remember once trying to figure if WoW contained a pathing engine. For example when a warrior uses "Charge" it will smoothly walk around obstacles. However thoes "spell paths" are also generated serverside.
Reply With Quote
  #4  
Old 12-01-2008
Cypher's Avatar
Cypher is offline.
Kynox's sister's pimp
Legendary User
  
 
Join Date: Apr 2006
Location: ntdll.dll
Posts: 4,180
Nominated 63 Times in 4 Posts
Nominated TOTM/W Award(s): 1
Reputation: 1085
Points: 55,512, Level: 35
Points: 55,512, Level: 35 Points: 55,512, Level: 35 Points: 55,512, Level: 35
Level up: 14%, 3,188 Points needed
Level up: 14% Level up: 14% Level up: 14%
Activity: 43.9%
Activity: 43.9% Activity: 43.9% Activity: 43.9%

Quote:
Originally Posted by UnknOwned View Post
Unfortunately most EMU's suck at pathing, mobs flying in the air or walking through objects. I tbh havent seen a EMU yet that does proper pathing for NPC's.

I remember once trying to figure if WoW contained a pathing engine. For example when a warrior uses "Charge" it will smoothly walk around obstacles. However thoes "spell paths" are also generated serverside.

Yes I assumed they would be, but you've brought up another interesting point. Collision and surface detection is clientside. Charge paths ignore whether the surface is walkable or not from the clients point of view (ie if the terrain is too steep etc). So even if you were to find a clientside function that generates spell paths you'd be screwed by things like this anyway.
__________________
[Only registered and activated users can see links. ] Back online!

"Science is interesting, and if you don't agree you can **** off."
[Only registered and activated users can see links. ]

"I can write very coherent things when I try that sound very good" -- Styles
Reply With Quote
  #5  
Old 12-01-2008
ShoniShilent is offline.
Master Sergeant
  
 
Join Date: May 2008
Posts: 96
Reputation: 7
Points: 743, Level: 1
Points: 743, Level: 1 Points: 743, Level: 1 Points: 743, Level: 1
Level up: 69%, 157 Points needed
Level up: 69% Level up: 69% Level up: 69%
Activity: 0%
Activity: 0% Activity: 0% Activity: 0%
thanks guys. it was just a thought. probably it is created server side as you stated.
Reply With Quote
  #6  
Old 12-04-2008
apollo0510 is offline.
Sergeant
  
 
Join Date: Aug 2008
Posts: 39
Reputation: 17
Hi Shoni !

A standard approach to your problem is:

- create a bitmap that is representing the area you are in with a reasonable resolution.
- Each time you experience a collsion (char should move, but it does not move in the correct direction), mark the position in the bitmap.
- Use an optimized floodfill algorithm to search the shortest possible way to your destination. Optimize in a way, that the fill algorithm should try first the best direction (normal floodfill would always start to search in the stupid same direction).
- Optimize the bitmap so that you do not use one bitmap for the whole world. Instead use a tree that divides world space recursively into sectors of reasonable size that finally contain small bitmaps.

This system will learn where to go and where not.

Tricky thing is to teach it how to avoid jumping off the cliffs ^^.

Greetings

Apollo
Reply With Quote
  #7  
Old 12-04-2008
Cypher's Avatar
Cypher is offline.
Kynox's sister's pimp
Legendary User
  
 
Join Date: Apr 2006
Location: ntdll.dll
Posts: 4,180
Nominated 63 Times in 4 Posts
Nominated TOTM/W Award(s): 1
Reputation: 1085
Points: 55,512, Level: 35
Points: 55,512, Level: 35 Points: 55,512, Level: 35 Points: 55,512, Level: 35
Level up: 14%, 3,188 Points needed
Level up: 14% Level up: 14% Level up: 14%
Activity: 43.9%
Activity: 43.9% Activity: 43.9% Activity: 43.9%

Quote:
Originally Posted by apollo0510 View Post
Hi Shoni !

A standard approach to your problem is:

- create a bitmap that is representing the area you are in with a reasonable resolution.
- Each time you experience a collsion (char should move, but it does not move in the correct direction), mark the position in the bitmap.
- Use an optimized floodfill algorithm to search the shortest possible way to your destination. Optimize in a way, that the fill algorithm should try first the best direction (normal floodfill would always start to search in the stupid same direction).
- Optimize the bitmap so that you do not use one bitmap for the whole world. Instead use a tree that divides world space recursively into sectors of reasonable size that finally contain small bitmaps.

This system will learn where to go and where not.

Tricky thing is to teach it how to avoid jumping off the cliffs ^^.

Greetings

Apollo

Much better than that would be a navmesh generated either by hand or automatically generated with a tool, then using a pathfinding algorithm on that data to get where you want.

OpenBot for example uses a (poorly implemented) hand-generated navmesh. PPather for Glider uses a (very poorly implemented) automatically generated navmesh.
__________________
[Only registered and activated users can see links. ] Back online!

"Science is interesting, and if you don't agree you can **** off."
[Only registered and activated users can see links. ]

"I can write very coherent things when I try that sound very good" -- Styles
Reply With Quote
  #8  
Old 12-04-2008
apollo0510 is offline.
Sergeant
  
 
Join Date: Aug 2008
Posts: 39
Reputation: 17
Hi Cypher !

True, for long distance travel, a navigation mesh ist the most compact and precise form you can have. But that navmesh wont hinder your toon to hopelessly get stuck somewhere thats not described in the mesh. navigation can only be as good as the mesh is.

Personally I think a combination of a mesh describing secure travel routes combined with a self learning collision map is the best solution.

If you try to send your toon to the next town with only the collision map method, it would try all kind of idiotic ways, before it finally would find a way through the walls of the town.

On the other way, your travel mesh would not help a bit if your toon is automatically hunting, and it is again and again stupidly running against that little tree in its way.

Greetings

Apollo
Reply With Quote
  #9  
Old 12-04-2008
Cypher's Avatar
Cypher is offline.
Kynox's sister's pimp
Legendary User
  
 
Join Date: Apr 2006
Location: ntdll.dll
Posts: 4,180
Nominated 63 Times in 4 Posts
Nominated TOTM/W Award(s): 1
Reputation: 1085
Points: 55,512, Level: 35
Points: 55,512, Level: 35 Points: 55,512, Level: 35 Points: 55,512, Level: 35
Level up: 14%, 3,188 Points needed
Level up: 14% Level up: 14% Level up: 14%
Activity: 43.9%
Activity: 43.9% Activity: 43.9% Activity: 43.9%

Quote:
Originally Posted by apollo0510 View Post
Hi Cypher !

True, for long distance travel, a navigation mesh ist the most compact and precise form you can have. But that navmesh wont hinder your toon to hopelessly get stuck somewhere thats not described in the mesh. navigation can only be as good as the mesh is.

Personally I think a combination of a mesh describing secure travel routes combined with a self learning collision map is the best solution.

If you try to send your toon to the next town with only the collision map method, it would try all kind of idiotic ways, before it finally would find a way through the walls of the town.

On the other way, your travel mesh would not help a bit if your toon is automatically hunting, and it is again and again stupidly running against that little tree in its way.

Greetings

Apollo
To address your points:

Pregenerated meshes (if implemented well) should pretty much never get lost or stuck, the rare cases they do can be addressed with a basic collision and climb hack (nothing obvious, just so you don't get caught on signs that pop up or tiny little hills).

If your navmesh is generated by hand it should be recording new points into the mesh as it travels and so would be able to find its way back anyway if it wandered off the beaten path.

Also, the fact you think that a mesh would be mutually exclusive to good collision detection that doesn't rely on what is basically glorified pixel scanning makes me question your methodology.

GameObjects can be detected by enumerating the linked object list, worldobjects by reading the data from the ADTs. If your both is written well it should be able to detect most obstacles, and even if you didn't do that a collision hack is easy to do and possible to implement in a way undetectable by warden (in its current state).

Futhermore, even if you didn't want to do memory reading for collision detection, a simple "i'm at point xyz and am stuck, i'm going to try and avoid the obstacle, moving backwards, strafing, trying again, etc" would get you out with the same accuracy as your 'bitmap method' while allowing you to blacklist the point on your mesh and save the new connections for next time. Basically, a well-generated navmesh coupled with a well-written bot can for the most part 'take care of itself'.
__________________
[Only registered and activated users can see links. ] Back online!

"Science is interesting, and if you don't agree you can **** off."
[Only registered and activated users can see links. ]

"I can write very coherent things when I try that sound very good" -- Styles
Reply With Quote
  #10  
Old 12-04-2008
apollo0510 is offline.
Sergeant
  
 
Join Date: Aug 2008
Posts: 39
Reputation: 17
Quote:
Originally Posted by Cypher View Post
To address your points:

Pregenerated meshes (if implemented well) should pretty much never get lost or stuck, the rare cases they do can be addressed with a basic collision and climb hack (nothing obvious, just so you don't get caught on signs that pop up or tiny little hills).

If your navmesh is generated by hand it should be recording new points into the mesh as it travels and so would be able to find its way back anyway if it wandered off the beaten path.

Also, the fact you think that a mesh would be mutually exclusive to good collision detection that doesn't rely on what is basically glorified pixel scanning makes me question your methodology.

GameObjects can be detected by enumerating the linked object list, worldobjects by reading the data from the ADTs. If your both is written well it should be able to detect most obstacles, and even if you didn't do that a collision hack is easy to do and possible to implement in a way undetectable by warden (in its current state).

Futhermore, even if you didn't want to do memory reading for collision detection, a simple "i'm at point xyz and am stuck, i'm going to try and avoid the obstacle, moving backwards, strafing, trying again, etc" would get you out with the same accuracy as your 'bitmap method' while allowing you to blacklist the point on your mesh and save the new connections for next time. Basically, a well-generated navmesh coupled with a well-written bot can for the most part 'take care of itself'.

Hi Cypher.

You are right, if you consider Glider to do intelligent farming. What you are talking about is a bot that follows exactly a given path. I hate to see bots running around like that. It is so obvious that they are botting.

I am throwing my toons into the wilderness and tell them:

Farm everthing you can in a given radius from this safe spot with some rules:
- There are objects on a blacklist that you have to keep distance from
- Keep actively a distance from elites.
- Keep actively a distance from groups of mobs.
- Kill red targets first, then yellow ones.
- Kill nearest targets first.
- Run away from hostile players.

The result looks very natural. In no way is this toon running in a circle.

I have to admit, that I am not (yet) so deeply into the WoW engine, that I can detect obstacles from memory reading. That would of course help a lot.
But there are twoo things that identify a toon immediately as a farmbot:
- running on a (small ) defined path in a circle.
- doing the same mistake again and again.

But, hey, why should we all have the same aproach ?

Greetings

Apollo


Edit: I cannot help but make a note on your suggestion to create a self learning mesh. Did you try that ? You must prevent the mesh from degeneration, the new meshpoints must make sense, that seems very complicated to me. And as a second note, I tried in the past to work around collision with random evasive manouvers. The problem was always - sooner or later the char found a way out, but it looked so stupid, especially when it was blocked from more than one side (like facing into the corner of two walls).

Last edited by apollo0510; 12-04-2008 at 05:01 PM.
Reply With Quote
  #11  
Old 12-04-2008
Cypher's Avatar
Cypher is offline.
Kynox's sister's pimp
Legendary User
  
 
Join Date: Apr 2006
Location: ntdll.dll
Posts: 4,180
Nominated 63 Times in 4 Posts
Nominated TOTM/W Award(s): 1
Reputation: 1085
Points: 55,512, Level: 35
Points: 55,512, Level: 35 Points: 55,512, Level: 35 Points: 55,512, Level: 35
Level up: 14%, 3,188 Points needed
Level up: 14% Level up: 14% Level up: 14%
Activity: 43.9%
Activity: 43.9% Activity: 43.9% Activity: 43.9%

Quote:
Originally Posted by apollo0510 View Post
Hi Cypher.

You are right, if you consider Glider to do intelligent farming. What you are talking about is a bot that follows exactly a given path. I hate to see bots running around like that. It is so obvious that they are botting.

I am throwing my toons into the wilderness and tell them:

Farm everthing you can in a given radius from this safe spot with some rules:
- There are objects on a blacklist that you have to keep distance from
- Keep actively a distance from elites.
- Keep actively a distance from groups of mobs.
- Kill red targets first, then yellow ones.
- Kill nearest targets first.
- Run away from hostile players.

The result looks very natural. In no way is this toon running in a circle.

I have to admit, that I am not (yet) so deeply into the WoW engine, that I can detect obstacles from memory reading. That would of course help a lot.
But there are twoo things that identify a toon immediately as a farmbot:
- running on a (small ) defined path in a circle.
- doing the same mistake again and again.

But, hey, why should we all have the same aproach ?

Greetings

Apollo
No, that is NOT what I'm talking about.

Do you have any idea what a navmesh is? The whole point of a navmesh is you use a pathfinding algorithm to get wherever you need to go DYNAMICALLY. There are no set paths, they are generated on the fly. You are obviously thinking of waypoints which are VERY different.

Please go pick up a book on game ai programming or pathfinding/navigation.
__________________
[Only registered and activated users can see links. ] Back online!

"Science is interesting, and if you don't agree you can **** off."
[Only registered and activated users can see links. ]

"I can write very coherent things when I try that sound very good" -- Styles
Reply With Quote
  #12  
Old 12-04-2008
luciferc's Avatar
luciferc is offline.
Contributor
  
 
Join Date: Jul 2008
Location: Node #23
Posts: 316
Reputation: 89
Points: 3,570, Level: 5
Points: 3,570, Level: 5 Points: 3,570, Level: 5 Points: 3,570, Level: 5
Level up: 97%, 30 Points needed
Level up: 97% Level up: 97% Level up: 97%
Activity: 0.7%
Activity: 0.7% Activity: 0.7% Activity: 0.7%

Just an Idea.

Get a Private server just an empty one that has all the game objects on it.

Then do a speedhack and get your Bot to make a perfect nav-mesh but even at those speeds would take a while :O.
Reply With Quote
  #13  
Old 12-04-2008
apollo0510 is offline.
Sergeant
  
 
Join Date: Aug 2008
Posts: 39
Reputation: 17
Quote:
Originally Posted by Cypher View Post
No, that is NOT what I'm talking about.
Please go pick up a book on game ai programming or pathfinding/navigation.

oops. *starts searching*

Edit: Ok. I see what you call navmesh. Hehe. Sure that is much better than the pixel approach. Use big dynamic triangles in 3d space instead of pixels .. and here you go. Sorry for assuming you were talking about waypoints.

Last edited by apollo0510; 12-04-2008 at 06:44 PM.
Reply With Quote
  #14  
Old 12-04-2008
Shynd's Avatar
Shynd is offline.
Contributor
  
 
Join Date: May 2008
Posts: 387
Reputation: 87
Points: 906, Level: 2
Points: 906, Level: 2 Points: 906, Level: 2 Points: 906, Level: 2
Level up: 2%, 494 Points needed
Level up: 2% Level up: 2% Level up: 2%
Activity: 0.9%
Activity: 0.9% Activity: 0.9% Activity: 0.9%

You load the map and all obstacles into your program, then use like an A* or Djikstra (spelling?) algorithm to dynamically find the shortest (or easiest) path between two or more points. That, I believe, is what Cypher is talking about. Instead of creating a huge database of waypoints, you create paths as needed.
Reply With Quote
  #15  
Old 12-05-2008
Cypher's Avatar
Cypher is offline.
Kynox's sister's pimp
Legendary User
  
 
Join Date: Apr 2006
Location: ntdll.dll
Posts: 4,180
Nominated 63 Times in 4 Posts
Nominated TOTM/W Award(s): 1
Reputation: 1085
Points: 55,512, Level: 35
Points: 55,512, Level: 35 Points: 55,512, Level: 35 Points: 55,512, Level: 35
Level up: 14%, 3,188 Points needed
Level up: 14% Level up: 14% Level up: 14%
Activity: 43.9%
Activity: 43.9% Activity: 43.9% Activity: 43.9%

Quote:
Originally Posted by Shynd View Post
You load the map and all obstacles into your program, then use like an A* or Djikstra (spelling?) algorithm to dynamically find the shortest (or easiest) path between two or more points. That, I believe, is what Cypher is talking about. Instead of creating a huge database of waypoints, you create paths as needed.
DINGDINGDINGDING!

We have a winner!
__________________
[Only registered and activated users can see links. ] Back online!

"Science is interesting, and if you don't agree you can **** off."
[Only registered and activated users can see links. ]

"I can write very coherent things when I try that sound very good" -- Styles
Reply With Quote
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are On



All times are GMT -4. The time now is 09:38 PM.




Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.3.1

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493