PDA

View Full Version : Collection Help


Andrew80k
04-18-2010, 01:09 PM
I'm trying to get the collector/extractor going. They're both "working", but I don't know how well. Could someone that has some more experience with these give me some help analyzing these so I know what to adjust?

This is an extract of the doors in great divide from a collect I did 2 nights ago.


C:\eqemutool\EQEmuTools\eqcollector\Debug\logs>eqextractor.exe -d packetlog-166985978.pf
# Time Stamp is after any known patch, using current (live compat) structs.
# Found zone info: The Great Divide (Greatdivide=greatdivide) (id# 118, instance 0)

Table doors: key (lower(name)=lower('CRATEG') AND lower(zone)=lower('greatdivide') AND abs(pos_x-(-2611.284668))<0.1 AND abs(pos_y-(-2954.919922))<0.1 AND abs
(pos_z-(285.868256))<0.1)
doorid: DB: '25', Live: '26'
doorisopen: DB: '0', Live: '1'
door_param: DB: '0', Live: '102'

Table doors: key (lower(name)=lower('CRATEG') AND lower(zone)=lower('greatdivide') AND abs(pos_x-(-2599.416504))<0.1 AND abs(pos_y-(-2953.454346))<0.1 AND abs
(pos_z-(285.947510))<0.1)
doorid: DB: '24', Live: '25'
doorisopen: DB: '0', Live: '1'
door_param: DB: '0', Live: '102'

Table doors: key (lower(name)=lower('CRATEG') AND lower(zone)=lower('greatdivide') AND abs(pos_x-(-2667.579346))<0.1 AND abs(pos_y-(-2731.697510))<0.1 AND abs
(pos_z-(283.994019))<0.1)
doorid: DB: '23', Live: '24'
doorisopen: DB: '0', Live: '1'
door_param: DB: '0', Live: '102'

Table doors: key (lower(name)=lower('CRATEG') AND lower(zone)=lower('greatdivide') AND abs(pos_x-(-2543.810547))<0.1 AND abs(pos_y-(-2731.051758))<0.1 AND abs
(pos_z-(284.038239))<0.1)
doorid: DB: '22', Live: '23'
doorisopen: DB: '0', Live: '1'
door_param: DB: '0', Live: '102'

Table doors: key (lower(name)=lower('CRATEG') AND lower(zone)=lower('greatdivide') AND abs(pos_x-(-1299.444092))<0.1 AND abs(pos_y-(-3353.996338))<0.1 AND abs
(pos_z-(-149.086197))<0.1)
doorid: DB: '21', Live: '22'
doorisopen: DB: '0', Live: '1'
door_param: DB: '0', Live: '102'

Table doors: key (lower(name)=lower('CRATEG') AND lower(zone)=lower('greatdivide') AND abs(pos_x-(-1918.418335))<0.1 AND abs(pos_y-(-4010.261963))<0.1 AND abs
(pos_z-(35.848389))<0.1)
doorid: DB: '20', Live: '21'
doorisopen: DB: '0', Live: '1'
door_param: DB: '0', Live: '102'

Table doors: key (lower(name)=lower('CRATEG') AND lower(zone)=lower('greatdivide') AND abs(pos_x-(-2677.978516))<0.1 AND abs(pos_y-(-5575.752930))<0.1 AND abs
(pos_z-(-461.781281))<0.1)
doorid: DB: '19', Live: '20'
doorisopen: DB: '0', Live: '1'
door_param: DB: '0', Live: '102'

Table doors: key (lower(name)=lower('CRATEG') AND lower(zone)=lower('greatdivide') AND abs(pos_x-(497.642334))<0.1 AND abs(pos_y-(-6961.246094))<0.1 AND abs(p
os_z-(-685.341675))<0.1)
doorid: DB: '18', Live: '19'
doorisopen: DB: '0', Live: '1'
door_param: DB: '0', Live: '102'

Table doors: key (lower(name)=lower('CRATEG') AND lower(zone)=lower('greatdivide') AND abs(pos_x-(1277.562866))<0.1 AND abs(pos_y-(-5437.032715))<0.1 AND abs(
pos_z-(-451.943024))<0.1)
doorid: DB: '17', Live: '18'
doorisopen: DB: '0', Live: '1'
door_param: DB: '0', Live: '102'

Table doors: key (lower(name)=lower('CRATEG') AND lower(zone)=lower('greatdivide') AND abs(pos_x-(2081.307129))<0.1 AND abs(pos_y-(-1645.961792))<0.1 AND abs(
pos_z-(138.220749))<0.1)
doorid: DB: '15', Live: '16'
doorisopen: DB: '0', Live: '1'
door_param: DB: '0', Live: '141'

Table doors: key (lower(name)=lower('CRATEG') AND lower(zone)=lower('greatdivide') AND abs(pos_x-(-208.746796))<0.1 AND abs(pos_y-(-8314.549805))<0.1 AND abs(
pos_z-(-961.998047))<0.1)
doorid: DB: '13', Live: '14'
doorisopen: DB: '0', Live: '1'
door_param: DB: '0', Live: '132'

Table doors: key (lower(name)=lower('CRATEG') AND lower(zone)=lower('greatdivide') AND abs(pos_x-(-119.718590))<0.1 AND abs(pos_y-(-28.786388))<0.1 AND abs(po
s_z-(273.494965))<0.1)
doorid: DB: '12', Live: '13'
doorisopen: DB: '0', Live: '1'
door_param: DB: '0', Live: '144'

Table doors: key (lower(name)=lower('CRATEG') AND lower(zone)=lower('greatdivide') AND abs(pos_x-(-93.149178))<0.1 AND abs(pos_y-(-59.676701))<0.1 AND abs(pos
_z-(86.189499))<0.1)
doorid: DB: '7', Live: '8'
doorisopen: DB: '0', Live: '1'
door_param: DB: '0', Live: '132'

Table doors: key (lower(name)=lower('CRATEG') AND lower(zone)=lower('greatdivide') AND abs(pos_x-(-102.937157))<0.1 AND abs(pos_y-(579.855896))<0.1 AND abs(po
s_z-(801.956543))<0.1)
doorid: DB: '5', Live: '6'
doorisopen: DB: '0', Live: '1'
door_param: DB: '0', Live: '128'

Table doors: key (lower(name)=lower('CRATEG') AND lower(zone)=lower('greatdivide') AND abs(pos_x-(-122.731667))<0.1 AND abs(pos_y-(579.880798))<0.1 AND abs(po
s_z-(801.977722))<0.1)
doorid: DB: '3', Live: '4'
doorisopen: DB: '0', Live: '1'
door_param: DB: '0', Live: '129'

Table doors: key (lower(name)=lower('CRATEG') AND lower(zone)=lower('greatdivide') AND abs(pos_x-(-87.578232))<0.1 AND abs(pos_y-(581.041626))<0.1 AND abs(pos
_z-(801.978333))<0.1)
doorid: DB: '2', Live: '3'
doorisopen: DB: '0', Live: '1'
door_param: DB: '0', Live: '128'

Table doors: key (lower(name)=lower('CRATEG') AND lower(zone)=lower('greatdivide') AND abs(pos_x-(-97.035271))<0.1 AND abs(pos_y-(-24.373505))<0.1 AND abs(pos
_z-(272.095734))<0.1)
doorid: DB: '26', Live: '1'
doorisopen: DB: '0', Live: '1'
door_param: DB: '0', Live: '143'

Table doors: key (lower(name)=lower('CRATEG') AND lower(zone)=lower('greatdivide') AND abs(pos_x-(-114.308617))<0.1 AND abs(pos_y-(-25.197958))<0.1 AND abs(po
s_z-(271.132477))<0.1)
doorid: DB: '1', Live: '2'
doorisopen: DB: '0', Live: '1'
door_param: DB: '0', Live: '143'

Table doors: key (lower(name)=lower('CRATEG') AND lower(zone)=lower('greatdivide') AND abs(pos_x-(-103.645096))<0.1 AND abs(pos_y-(-25.799742))<0.1 AND abs(po
s_z-(272.595734))<0.1)
doorid: DB: '4', Live: '5'
doorisopen: DB: '0', Live: '1'
door_param: DB: '0', Live: '143'

Table doors: key (lower(name)=lower('CRATEG') AND lower(zone)=lower('greatdivide') AND abs(pos_x-(-106.211403))<0.1 AND abs(pos_y-(-58.607117))<0.1 AND abs(po
s_z-(86.189499))<0.1)
doorid: DB: '6', Live: '7'
doorisopen: DB: '0', Live: '1'
door_param: DB: '0', Live: '132'

Table doors: key (lower(name)=lower('CRATEG') AND lower(zone)=lower('greatdivide') AND abs(pos_x-(-115.519295))<0.1 AND abs(pos_y-(-57.415585))<0.1 AND abs(po
s_z-(86.189499))<0.1)
doorid: DB: '8', Live: '9'
doorisopen: DB: '0', Live: '1'
door_param: DB: '0', Live: '132'

Table doors: key (lower(name)=lower('CRATEG') AND lower(zone)=lower('greatdivide') AND abs(pos_x-(-215.405594))<0.1 AND abs(pos_y-(-8312.791016))<0.1 AND abs(
pos_z-(-959.657959))<0.1)
doorid: DB: '9', Live: '10'
doorisopen: DB: '0', Live: '1'
door_param: DB: '0', Live: '132'

Table doors: key (lower(name)=lower('CRATEG') AND lower(zone)=lower('greatdivide') AND abs(pos_x-(-193.273926))<0.1 AND abs(pos_y-(-8314.860352))<0.1 AND abs(
pos_z-(-958.916016))<0.1)
doorid: DB: '10', Live: '11'
doorisopen: DB: '0', Live: '1'
door_param: DB: '0', Live: '132'

Table doors: key (lower(name)=lower('CRATEG') AND lower(zone)=lower('greatdivide') AND abs(pos_x-(-201.689316))<0.1 AND abs(pos_y-(-8310.907227))<0.1 AND abs(
pos_z-(-960.748047))<0.1)
doorid: DB: '11', Live: '12'
doorisopen: DB: '0', Live: '1'
door_param: DB: '0', Live: '132'

Table doors: key (lower(name)=lower('THURGTRANS200') AND lower(zone)=lower('greatdivide') AND abs(pos_x-(2080.364502))<0.1 AND abs(pos_y-(-1647.892090))<0.1
AND abs(pos_z-(139.470749))<0.1)
doorid: DB: '16', Live: '17'
door_param: DB: '0', Live: '-1'

Table doors: key (lower(name)=lower('POKTELE500') AND lower(zone)=lower('greatdivide') AND abs(pos_x-(-1811.420044))<0.1 AND abs(pos_y-(14.553705))<0.1 AND
abs(pos_z-(389.439423))<0.1)
doorid: DB: '77', Live: '78'
door_param: DB: '0', Live: '77'

Table doors: key (lower(name)=lower('MINIPOM200') AND lower(zone)=lower('greatdivide') AND abs(pos_x-(-202.179947))<0.1 AND abs(pos_y-(-8267.140625))<0.1 AND
abs(pos_z-(-956.248535))<0.1)
doorid: DB: '14', Live: '15'
door_param: DB: '0', Live: '4'

Table doors: key (lower(name)=lower('EWGNTHOUSE200') AND lower(zone)=lower('greatdivide') AND abs(pos_x-(-483.856354))<0.1 AND abs(pos_y-(-6113.299805))<0.1
AND abs(pos_z-(-567.681091))<0.1)
doorid: DB: '?', Live: '27'
heading: DB: '?', Live: '384.000000'
opentype: DB: '?', Live: '55'
doorisopen: DB: '?', Live: '0'
door_param: DB: '?', Live: '-1'
incline: DB: '?', Live: '0'
size: DB: '?', Live: '50'

Table doors: key (lower(name)=lower('CAMPFIRE2') AND lower(zone)=lower('greatdivide') AND abs(pos_x-(-489.431946))<0.1 AND abs(pos_y-(-6103.714355))<0.1 AND
abs(pos_z-(-560.790588))<0.1)
doorid: DB: '?', Live: '28'
heading: DB: '?', Live: '5.000000'
opentype: DB: '?', Live: '55'
doorisopen: DB: '?', Live: '0'
door_param: DB: '?', Live: '-1'
incline: DB: '?', Live: '9'
size: DB: '?', Live: '100'

Andrew80k
04-19-2010, 03:46 PM
Well, I did some more collection yesterday using my Ranger (level 85 SoD T5) and did some more with the extractor. Doors seem to be right on. I'm hoping to do some more testing on my server tonight. Spawns will still need some work. Though I did get some results back for spawns it's not quite what I was expecting and I don't think it's quite right. I still think I'm not quite there with the opcodes as the set I have looks like it's from February but I can't tell for sure. Still a lot of structure work, but it looks like the collector itself isn't too bad. Needs a couple of updates, but for the most part works ok. Have to do more work to the extractor to figure out where the collector is for sure though.

trevius
04-19-2010, 08:53 PM
That is some excellent news, Andrew80k! I imagine spawns may be a bit of a pain due to them using variable sized structs now, but at least we have the new struct info they use in the SoD patch files.

If you can get the tools on the SVN, and if others can get them compiled and running as well, maybe we can all pitch in to get them working with Live. It will probably take some minor maintenance every patch or so to fix opcodes here and there and probably some structs from time to time, but nothing major as long as it is kept up with when needed.

As for getting the correct opcodes, that is really easy. For collectors, we really only need a very few opcodes to be correct anyway, so they are easy to maintain. If you have a gmail account, I have something I can share with you that might be useful for ya. Send me a PM with the gmail address and I will shoot the info over to you.

Doors alone are quite an awesome thing to have working from the collectors, as they are a major pain to do manually, and are never perfectly right when done manually. Spawns, and objects will be great to have as well. Pathing would be nice at some point, but it is quite a pain to collect from what I hear, and can always be added manually if needed. For outdoor zones, we can probably just use the RandomRoam quest plugin for NPCs that just roam in outdoor open areas, which will save a lot of content building time.

Thanks for working on this BTW. It sounds like you are making some nice progress :D

Andrew80k
04-20-2010, 11:45 AM
Well now I have the extractor all torn up trying to fix the spawn structures so I can get them going. My priority is doors and spawns, including ground spawns, and spawn pathing. I think the doors are ok. I'll need to do a bit more testing but it looks good so far. It looks to me like it does the collecting of the paths and from what I could tell from the little bit I have the extractor actually pulls the paths out ok as well. I haven't validated that part yet as the spawn structure is too funky to be of use at this point. I'll post more as I have more to post. Once I get it at least halfway useful and validated, I'll put what I have on the SVN. erde did a lot of good work on it to get it going and that is really helping.

steve
05-02-2010, 09:40 AM
Any further progress on this? Eager to help collect when it's ready!

Andrew80k
05-02-2010, 11:54 AM
Actually, the collector is pretty good. Until I get the extractor fixed though, I can't tell for certain how good it is. The extractor works partially and pulls some of the objects fairly well. Others not so much. I'm currently working on getting the spawn structure fixed. I don't have any idea how long it will take me as I'm still learning how it works. I try to work on it a little every day, so we'll see.