|
|
 |
 |
 |
 |
|
 |
 |
|
 |
 |
|
 |
|
Development::Development Forum for development topics and for those interested in EQEMu development. (Not a support forum) |

11-29-2007, 01:20 PM
|
 |
Hill Giant
|
|
Join Date: Jun 2006
Location: New York City
Posts: 180
|
|
Awesome!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!
I've wanted to see some solid work on this for quite a while.
Excellent job.
Now we need some Windows binaries 
|

11-29-2007, 02:23 PM
|
Developer
|
|
Join Date: Feb 2004
Location: UK
Posts: 1,540
|
|
Quote:
Originally Posted by Zandig
Now we need some Windows binaries 
|
I have yet to have any feedback from anyone who has actually said they have compiled and tried this code. If I find time over the weekend, I'll install the necessary software on a Windows box to make some binaries for you to try it out.
Last edited by Derision; 11-29-2007 at 10:27 PM..
|

11-29-2007, 02:53 PM
|
Administrator
|
|
Join Date: Sep 2006
Posts: 1,348
|
|
Do you have any idea where the crash in question occurs in the code?
Corrupt or not there's probably safe-checks that can be put in place to prevent it if we know where it's at.
|

11-29-2007, 03:28 PM
|
Developer
|
|
Join Date: Feb 2004
Location: UK
Posts: 1,540
|
|
Quote:
Originally Posted by KLS
Do you have any idea where the crash in question occurs in the code?
Corrupt or not there's probably safe-checks that can be put in place to prevent it if we know where it's at.
|
Hi KLS,
No crashes occur because I copied the check from:
bool Map::LineIntersectsNode( NodeRef node_r, VERTEX p1, VERTEX p2, VERTEX *result, FACE **on)
which is called by the LOS checking code
Code:
unsigned long *cfl = mFaceLists + _node->faces.offset;
for(i = 0; i < _node->faces.count; i++) {
if(*cfl > m_Faces)
continue; //watch for invalid lists, they seem to happen
The if(*cfl > m_Faces) checks for the corrupt data that I saw in the eastwastes.map file. I assume this check was put in by FNW when that code was written.
I put the same check in the FindBestZ code to avoid the crash there, so there is nothing else required (other than maybe fixing the program that generates the .map files (azone?).
|

11-29-2007, 04:44 PM
|
Discordant
|
|
Join Date: May 2005
Location: Smith Falls, Ontario, Canada
Posts: 283
|
|
if this does work and stops the mobs from hopping all we need now is the actuallt pathing in "apath" figured out. I have been looking at it for awhile now and I am not making any heads or tails on it and I gave up about a mnth ago figuring it was hopeless.
__________________
Rojadruid
Innoruuk Server [legit]
Server Admin.
Server Status: UP
|

11-29-2007, 05:40 PM
|
Administrator
|
|
Join Date: Sep 2006
Posts: 1,348
|
|
Yeah it would be azone that generates them, alright I'll look at it when I take a look at the other stuff posted on the forums in the next couple days.
|
 |
|
 |

11-29-2007, 05:42 PM
|
Developer
|
|
Join Date: Jul 2004
Posts: 773
|
|
Nice. I have comitted a cleaned up version of this code.... hopefully it still works. I disabled the two old options by default in features.h, but enabled the new "fix-at-load-time" feature, as it seems like a good compromise.
My only real concern about this is the somewhat arbitrary nature of a lot of the constants in there... 10, 20, 45, etc... We might want to either make them a rule, so people can easily change them, or else put some serious thought into deciding on good universal values...
My last thought is that if this in fact turns out to be a rock solid fix for the z hopping problem, then we should prolly take it one step further. One of the things I was trying to accomplish with apathing was to be able to load, fix, and then re-save the pathing data into the database... this way we only consume the CPU time once... it shouldent be all that hard to accomplish, the big concern is how to be sure that it is actually producing the right data... we dont want to run it against the official dbs unless we are quite sure it isnt going to mangle a bunch of paths... one challenge with stuff like this is trying to figure out how to detect such failues... as in most cases the mobs are then just way under the ground, and nobody will ever notice (unless its a named mob).... just a thought.
-FNW
|
 |
|
 |

11-29-2007, 05:56 PM
|
Discordant
|
|
Join Date: Jun 2005
Posts: 286
|
|
I'm excited about this but man... I've already designed a large part of my DB with grids that won't make npc's go through hills. So much work! At least this will make the rest of my work much easier.
__________________
-Croup (the rogue)
Creator of Pandemic (PvP-Racewars)
|

11-29-2007, 02:54 PM
|
 |
Administrator
|
|
Join Date: Jul 2003
Location: Massachusetts
Posts: 708
|
|
Http://www.rogean.com/Zone-BestZ.exe
Haven't tested it myself. Test it out and let me know how it works out. If it looks good I'll commit to code.
__________________
EQEmulator Developer / Administrator
|

11-30-2007, 03:35 AM
|
 |
Hill Giant
|
|
Join Date: Jun 2006
Location: New York City
Posts: 180
|
|
Quote:
Originally Posted by Rogean
|
Tested various zones and it looks really good so far.
Hopping is gone.
What a sweet fix!
|

12-01-2007, 04:05 AM
|
Sarnak
|
|
Join Date: Jan 2003
Location: Grand Rapids, MI
Posts: 90
|
|
Pathing Fix
I have created a wiki page listing the new rules required for the pathing Z fix.
Krusher
|
 |
|
 |

12-01-2007, 06:13 AM
|
 |
Discordant
|
|
Join Date: Oct 2003
Location: The Shire
Posts: 474
|
|
to make the rules work(or to even compile properly).. need to add them to the rulesys..
Code:
--- ruletypes.h 2007/11/14 06:13:36 1.11
+++ ruletypes.h 2007/12/01 18:11:14 1.12
@@ -84,6 +84,17 @@
RULE_BOOL (NPC, UseItemBonusesForNonPets, true)
RULE_CATEGORY_END()
+RULE_CATEGORY( Map )
+RULE_BOOL ( Map, FixPathingZAtWaypoints, false )
+RULE_BOOL ( Map, FixPathingZWhenMoving, false )
+RULE_BOOL ( Map, FixPathingZOnSendTo, false )
+RULE_BOOL ( Map, FixPathingZWhenLoading, false )
+RULE_REAL ( Map, FixPathingZMaxDeltaSendTo, 20.0 )
+RULE_REAL ( Map, FixPathingZMaxDeltaLoading, 20.0 )
+RULE_REAL ( Map, FixPathingZMaxDeltaMoving, 20.0 )
+RULE_REAL ( Map, FixPathingZMaxDeltaWaypoint, 20.0 )
+RULE_CATEGORY_END()
+
#undef RULE_CATEGORY
#undef RULE_INT
#undef RULE_REAL
Code:
--- waypoints.cpp 2007/11/30 19:06:27 1.6
+++ waypoints.cpp 2007/12/01 18:11:14 1.7
@@ -31,6 +31,7 @@
#include "parser.h"
#include "StringIDs.h"
#include "../common/MiscFunctions.h"
+#include "../common/rulesys.h"
#include "features.h"
static inline float ABS(float x) {
Edit:: im not sure if this was already added to the nightly builds or not.. but it wasnt in cvs.
__________________
Nug Blazers - ServerOP / founder
^^comming... later!
www.nugblazers.com
Last edited by Cripp; 12-01-2007 at 02:16 PM..
|
 |
|
 |

12-04-2007, 05:32 AM
|
 |
Hill Giant
|
|
Join Date: Jun 2006
Location: New York City
Posts: 180
|
|
Quote:
Originally Posted by fathernitwit
OK, by popular demand (aka one dude who cant build), I reworked this stuff to be runtime configurable using the rules system.
|
Quote:
Originally Posted by krusher
I have created a wiki page listing the new rules required for the pathing Z fix.
Krusher
|
Thanks all.
Tested with 0.7.0-1068 and it works a treat.
|

12-04-2007, 10:59 AM
|
Discordant
|
|
Join Date: Jun 2005
Posts: 286
|
|
Thanks guys, really excited about this new feature.
__________________
-Croup (the rogue)
Creator of Pandemic (PvP-Racewars)
|
Thread Tools |
|
Display Modes |
Hybrid Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -4. The time now is 04:36 PM.
|
|
 |
|
 |
|
|
|
 |
|
 |
|
 |