This site works best with JavaScript enabled. Please enable JavaScript to get the best experience from this site.
What steps will reproduce the problem? 1. Record any raid. 2. Go and export to CTRT string. 3. Open in notepad and notice that there are more <key#> entries in the <join>,<leave> objects than there should be.
What is the expected output? What do you see instead? In the <join> <leave> objects of the xml document there should at a maximum be 40 entries (assuming you are recording a 40man raid), right now for a 10 man raid there can be upwards of 30-50 <key> pairs in both <join><leave> which makes the string almost useless due to the amount of manual editing that has to go into fixing this.
What version of the product are you using? Latest SVN.
Here is what a proper <join> <leave> pair should look like, note I trimmed it just for illustration purposes:
<Join> <key1> <player>Ebalusmgo</player> <race>Scourge</race> <class>MAGE</class> <sex>2</sex> <level>80</level> <time>09/26/09 14:18:08</time> </key1> <key2> <player>Galenhawke</player> <race>Orc</race> <class>WARLOCK</class> <sex>2</sex> <level>80</level> <time>09/26/09 14:18:20</time> </key2> <key3> <player>Peaz</player> <race>BloodElf</race> <class>PALADIN</class> <sex>3</sex> <level>80</level> <time>09/26/09 14:18:08</time> </key3> <key4> <player>Phrenic</player> <race>Troll</race> <class>SHAMAN</class> <sex>3</sex> <level>80</level> <time>09/26/09 14:18:08</time> </key4> <key5> <player>Pushurluck</player> <race>BloodElf</race> <class>PALADIN</class> <sex>2</sex> <level>80</level> <time>09/26/09 14:18:08</time> </key5> </Join> <Leave> <key1> <player>Ebalusmgo</player> <time>09/26/09 14:52:52</time> </key1> <key2> <player>Galenhawke</player> <time>09/26/09 14:52:52</time> </key2> <key3> <player>Peaz</player> <time>09/26/09 14:52:52</time> </key3> <key4> <player>Phrenic</player> <time>09/26/09 14:52:52</time> </key4> <key5> <player>Pushurluck</player> <time>09/26/09 14:52:52</time> </key5> </Leave>
And this is what MagicDKP export produces for the same 5 man event:
<Join> <key1> <player>Ebalusmgo</player> <race>Unknown</race> <class>MAGE</class> <sex>0</sex> <level>80</level> <time>09/26/09 14:18:08</time> </key1> <key2> <player>Galenhawke</player> <race>Unknown</race> <class>DEATHKNIGHT</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key2> <key3> <player>Peaz</player> <race>Unknown</race> <class>PALADIN</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key3> <key4> <player>Phrenic</player> <race>Unknown</race> <class>Shaman</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key4> <key5> <player>Pushurluck</player> <race>Unknown</race> <class>PRIEST</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key5> <key6> <player>Ebalusmgo</player> <race>Unknown</race> <class>MAGE</class> <sex>0</sex> <level>80</level> <time>09/26/09 14:18:08</time> </key6> <key7> <player>Galenhawke</player> <race>Unknown</race> <class>DEATHKNIGHT</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key7> <key8> <player>Peaz</player> <race>Unknown</race> <class>PALADIN</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key8> <key9> <player>Phrenic</player> <race>Unknown</race> <class>Shaman</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key9> <key10> <player>Pushurluck</player> <race>Unknown</race> <class>PRIEST</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key10>09/25/2009 19:46:10</time> </Join> <Leave> <key1> <player>Ebalusmgo</player> <time>09/26/09 14:52:52</time> </key1> <key2> <player>Galenhawke</player> <time>09/26/09 14:52:52</time> </key2> <key3> <player>Peaz</player> <time>09/26/09 14:52:52</time> </key3> <key4> <player>Phrenic</player> <time>09/26/09 14:52:52</time> </key4> <key5> <player>Pushurluck</player> <time>09/26/09 14:52:52</time> </key5> <key6> <player>Ebalusmgo</player> <time>09/26/09 14:52:52</time> </key6> <key7> <player>Galenhawke</player> <time>09/26/09 14:52:52</time> </key7> <key8> <player>Peaz</player> <time>09/26/09 14:52:52</time> </key8> <key9> <player>Phrenic</player> <time>09/26/09 14:52:52</time> </key9> <key10> <player>Pushurluck</player> <time>09/26/09 14:52:52</time> </key10> </Leave>
And the join/leave entries can really grow to whatever numbers without rhyme or reason. For example I have a parse from a 25man raid from last night and this is what the full file looks like:
<RaidInfo> <key>09/25/2009 19:27:08</key> <start>09/25/2009 19:27:08</start> <end>09/25/2009 21:13:23</end> <zone>Ulduar</zone> <BossKills> <key1> <name>Ulduar</name> <time>09/25/2009 19:49:10</time> <attendees> <key1> <name>disenchant</name> </key1> <key2> <name>Kenric</name> </key2> <key3> <name>Extravagant</name> </key3> <key4> <name>Hagel</name> </key4> <key5> <name>Veriana</name> </key5> <key6> <name>Tr�th</name> </key6> <key7> <name>Nobovis</name> </key7> <key8> <name>Tjthed�de</name> </key8> <key9> <name>Peaz</name> </key9> <key10> <name>Ebalusmgo</name> </key10> <key11> <name>Uneak</name> </key11> <key12> <name>Phrenic</name> </key12> <key13> <name>Chei</name> </key13> <key14> <name>Pushurluck</name> </key14> <key15> <name>Scolbu</name> </key15> <key16> <name>Elfshine</name> </key16> <key17> <name>Symi</name> </key17> <key18> <name>Tauntra</name> </key18> <key19> <name>Bakugami</name> </key19> <key20> <name>Docclara</name> </key20> <key21> <name>Yuksick</name> </key21> <key22> <name>Zayownage</name> </key22> <key23> <name>Melodiya</name> </key23> <key24> <name>Slientnight</name> </key24> <key25> <name>Aelmin</name> </key25> <key26> <name>Shinnyting</name> </key26> </attendees> </key1> <key2> <name>Wipe - Freya #1</name> <time>09/25/2009 20:34:08</time> <attendees> <key1> <name>Slientnight</name> </key1> <key2> <name>Kenric</name> </key2> <key3> <name>Extravagant</name> </key3> <key4> <name>Hagel</name> </key4> <key5> <name>Veriana</name> </key5> <key6> <name>Tr�th</name> </key6> <key7> <name>Nobovis</name> </key7> <key8> <name>Tjthed�de</name> </key8> <key9> <name>Peaz</name> </key9> <key10> <name>Ebalusmgo</name> </key10> <key11> <name>Uneak</name> </key11> <key12> <name>Phrenic</name> </key12> <key13> <name>Chei</name> </key13> <key14> <name>Pushurluck</name> </key14> <key15> <name>Scolbu</name> </key15> <key16> <name>Symi</name> </key16> <key17> <name>Tauntra</name> </key17> <key18> <name>Elfshine</name> </key18> <key19> <name>Docclara</name> </key19> <key20> <name>Yuksick</name> </key20> <key21> <name>Zayownage</name> </key21> <key22> <name>Melodiya</name> </key22> <key23> <name>Bakugami</name> </key23> <key24> <name>Aelmin</name> </key24> <key25> <name>Shinnyting</name> </key25> <key26> <name>Masalar</name> </key26> <key27> <name>Graynsquirel</name> </key27> </attendees> </key2> <key3> <name>Freya</name> <time>09/25/2009 20:53:17</time> <attendees> <key1> <name>Slientnight</name> </key1> <key2> <name>Kenric</name> </key2> <key3> <name>Extravagant</name> </key3> <key4> <name>Hagel</name> </key4> <key5> <name>Veriana</name> </key5> <key6> <name>Tr�th</name> </key6> <key7> <name>Nobovis</name> </key7> <key8> <name>Tjthed�de</name> </key8> <key9> <name>Peaz</name> </key9> <key10> <name>Ebalusmgo</name> </key10> <key11> <name>Uneak</name> </key11> <key12> <name>Phrenic</name> </key12> <key13> <name>Chei</name> </key13> <key14> <name>Pushurluck</name> </key14> <key15> <name>Scolbu</name> </key15> <key16> <name>Symi</name> </key16> <key17> <name>Tauntra</name> </key17> <key18> <name>Elfshine</name> </key18> <key19> <name>Docclara</name> </key19> <key20> <name>Yuksick</name> </key20> <key21> <name>Zayownage</name> </key21> <key22> <name>Melodiya</name> </key22> <key23> <name>Bakugami</name> </key23> <key24> <name>Aelmin</name> </key24> <key25> <name>Shinnyting</name> </key25> <key26> <name>Masalar</name> </key26> <key27> <name>Graynsquirel</name> </key27> </attendees> </key3> </BossKills> <Join> <key1> <player>disenchant</player> <race/> <class/> <sex>0</sex> <level>0</level> <time>09/25/2009 19:46:10</time> </key1> <key2> <player>Kenric</player> <race>Unknown</race> <class>DEATHKNIGHT</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key2> <key3> <player>Extravagant</player> <race>Unknown</race> <class>PALADIN</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key3> <key4> <player>Hagel</player> <race>Unknown</race> <class>WARRIOR</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key4> <key5> <player>Veriana</player> <race>Unknown</race> <class>PRIEST</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key5> <key6> <player>Tr�th</player> <race>Unknown</race> <class>PALADIN</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key6> <key7> <player>Nobovis</player> <race>Unknown</race> <class>WARRIOR</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key7> <key8> <player>Tjthed�de</player> <race>Unknown</race> <class>PALADIN</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key8> <key9> <player>Peaz</player> <race>Unknown</race> <class>PALADIN</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key9> <key10> <player>Ebalusmgo</player> <race>Unknown</race> <class>MAGE</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key10> <key11> <player>Uneak</player> <race>Unknown</race> <class>PALADIN</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key11> <key12> <player>Phrenic</player> <race>Unknown</race> <class>SHAMAN</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key12> <key13> <player>Chei</player> <race>Unknown</race> <class>ROGUE</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key13> <key14> <player>Pushurluck</player> <race>Unknown</race> <class>PALADIN</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key14> <key15> <player>Scolbu</player> <race>Unknown</race> <class>WARLOCK</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key15> <key16> <player>Elfshine</player> <race>Unknown</race> <class>MAGE</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key16> <key17> <player>Symi</player> <race>Unknown</race> <class>MAGE</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key17> <key18> <player>Tauntra</player> <race>Unknown</race> <class>WARRIOR</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key18> <key19> <player>Bakugami</player> <race>Unknown</race> <class>SHAMAN</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key19> <key20> <player>Docclara</player> <race>Unknown</race> <class>PRIEST</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key20> <key21> <player>Yuksick</player> <race>Unknown</race> <class>PALADIN</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key21> <key22> <player>Zayownage</player> <race>Unknown</race> <class>WARLOCK</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key22> <key23> <player>Melodiya</player> <race>Unknown</race> <class>PRIEST</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key23> <key24> <player>Slientnight</player> <race>Unknown</race> <class>PRIEST</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key24> <key25> <player>Aelmin</player> <race>Unknown</race> <class>DRUID</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key25> <key26> <player>Shinnyting</player> <race>Unknown</race> <class>PRIEST</class> <sex>0</sex> <level>80</level> <time>09/25/2009 19:46:10</time> </key26> <key27> <player>Slientnight</player> <race>Unknown</race> <class>PRIEST</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:31:08</time> </key27> <key28> <player>Kenric</player> <race>Unknown</race> <class>DEATHKNIGHT</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:31:08</time> </key28> <key29> <player>Extravagant</player> <race>Unknown</race> <class>PALADIN</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:31:08</time> </key29> <key30> <player>Hagel</player> <race>Unknown</race> <class>WARRIOR</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:31:08</time> </key30> <key31> <player>Veriana</player> <race>Unknown</race> <class>PRIEST</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:31:08</time> </key31> <key32> <player>Tr�th</player> <race>Unknown</race> <class>PALADIN</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:31:08</time> </key32> <key33> <player>Nobovis</player> <race>Unknown</race> <class>WARRIOR</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:31:08</time> </key33> <key34> <player>Tjthed�de</player> <race>Unknown</race> <class>PALADIN</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:31:08</time> </key34> <key35> <player>Peaz</player> <race>Unknown</race> <class>PALADIN</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:31:08</time> </key35> <key36> <player>Ebalusmgo</player> <race>Unknown</race> <class>MAGE</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:31:08</time> </key36> <key37> <player>Uneak</player> <race>Unknown</race> <class>PALADIN</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:31:08</time> </key37> <key38> <player>Phrenic</player> <race>Unknown</race> <class>SHAMAN</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:31:08</time> </key38> <key39> <player>Chei</player> <race>Unknown</race> <class>ROGUE</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:31:08</time> </key39> <key40> <player>Pushurluck</player> <race>Unknown</race> <class>PALADIN</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:31:08</time> </key40> <key41> <player>Scolbu</player> <race>Unknown</race> <class>WARLOCK</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:31:08</time> </key41> <key42> <player>Symi</player> <race>Unknown</race> <class>MAGE</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:31:08</time> </key42> <key43> <player>Tauntra</player> <race>Unknown</race> <class>WARRIOR</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:31:08</time> </key43> <key44> <player>Elfshine</player> <race>Unknown</race> <class>MAGE</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:31:08</time> </key44> <key45> <player>Docclara</player> <race>Unknown</race> <class>PRIEST</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:31:08</time> </key45> <key46> <player>Yuksick</player> <race>Unknown</race> <class>PALADIN</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:31:08</time> </key46> <key47> <player>Zayownage</player> <race>Unknown</race> <class>WARLOCK</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:31:08</time> </key47> <key48> <player>Melodiya</player> <race>Unknown</race> <class>PRIEST</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:31:08</time> </key48> <key49> <player>Bakugami</player> <race>Unknown</race> <class>SHAMAN</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:31:08</time> </key49> <key50> <player>Aelmin</player> <race>Unknown</race> <class>DRUID</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:31:08</time> </key50> <key51> <player>Shinnyting</player> <race>Unknown</race> <class>PRIEST</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:31:08</time> </key51> <key52> <player>Masalar</player> <race>Unknown</race> <class>HUNTER</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:31:08</time> </key52> <key53> <player>Graynsquirel</player> <race>Unknown</race> <class>HUNTER</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:31:08</time> </key53> <key54> <player>Slientnight</player> <race>Unknown</race> <class>PRIEST</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:50:17</time> </key54> <key55> <player>Kenric</player> <race>Unknown</race> <class>DEATHKNIGHT</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:50:17</time> </key55> <key56> <player>Extravagant</player> <race>Unknown</race> <class>PALADIN</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:50:17</time> </key56> <key57> <player>Hagel</player> <race>Unknown</race> <class>WARRIOR</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:50:17</time> </key57> <key58> <player>Veriana</player> <race>Unknown</race> <class>PRIEST</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:50:17</time> </key58> <key59> <player>Tr�th</player> <race>Unknown</race> <class>PALADIN</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:50:17</time> </key59> <key60> <player>Nobovis</player> <race>Unknown</race> <class>WARRIOR</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:50:17</time> </key60> <key61> <player>Tjthed�de</player> <race>Unknown</race> <class>PALADIN</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:50:17</time> </key61> <key62> <player>Peaz</player> <race>Unknown</race> <class>PALADIN</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:50:17</time> </key62> <key63> <player>Ebalusmgo</player> <race>Unknown</race> <class>MAGE</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:50:17</time> </key63> <key64> <player>Uneak</player> <race>Unknown</race> <class>PALADIN</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:50:17</time> </key64> <key65> <player>Phrenic</player> <race>Unknown</race> <class>SHAMAN</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:50:17</time> </key65> <key66> <player>Chei</player> <race>Unknown</race> <class>ROGUE</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:50:17</time> </key66> <key67> <player>Pushurluck</player> <race>Unknown</race> <class>PALADIN</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:50:17</time> </key67> <key68> <player>Scolbu</player> <race>Unknown</race> <class>WARLOCK</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:50:17</time> </key68> <key69> <player>Symi</player> <race>Unknown</race> <class>MAGE</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:50:17</time> </key69> <key70> <player>Tauntra</player> <race>Unknown</race> <class>WARRIOR</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:50:17</time> </key70> <key71> <player>Elfshine</player> <race>Unknown</race> <class>MAGE</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:50:17</time> </key71> <key72> <player>Docclara</player> <race>Unknown</race> <class>PRIEST</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:50:17</time> </key72> <key73> <player>Yuksick</player> <race>Unknown</race> <class>PALADIN</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:50:17</time> </key73> <key74> <player>Zayownage</player> <race>Unknown</race> <class>WARLOCK</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:50:17</time> </key74> <key75> <player>Melodiya</player> <race>Unknown</race> <class>PRIEST</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:50:17</time> </key75> <key76> <player>Bakugami</player> <race>Unknown</race> <class>SHAMAN</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:50:17</time> </key76> <key77> <player>Aelmin</player> <race>Unknown</race> <class>DRUID</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:50:17</time> </key77> <key78> <player>Shinnyting</player> <race>Unknown</race> <class>PRIEST</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:50:17</time> </key78> <key79> <player>Masalar</player> <race>Unknown</race> <class>HUNTER</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:50:17</time> </key79> <key80> <player>Graynsquirel</player> <race>Unknown</race> <class>HUNTER</class> <sex>0</sex> <level>80</level> <time>09/25/2009 20:50:17</time> </key80> </Join> <Leave> <key1> <player>disenchant</player> <time>09/25/2009 19:52:10</time> </key1> <key2> <player>Kenric</player> <time>09/25/2009 19:52:10</time> </key2> <key3> <player>Extravagant</player> <time>09/25/2009 19:52:10</time> </key3> <key4> <player>Hagel</player> <time>09/25/2009 19:52:10</time> </key4> <key5> <player>Veriana</player> <time>09/25/2009 19:52:10</time> </key5> <key6> <player>Tr�th</player> <time>09/25/2009 19:52:10</time> </key6> <key7> <player>Nobovis</player> <time>09/25/2009 19:52:10</time> </key7> <key8> <player>Tjthed�de</player> <time>09/25/2009 19:52:10</time> </key8> <key9> <player>Peaz</player> <time>09/25/2009 19:52:10</time> </key9> <key10> <player>Ebalusmgo</player> <time>09/25/2009 19:52:10</time> </key10> <key11> <player>Uneak</player> <time>09/25/2009 19:52:10</time> </key11> <key12> <player>Phrenic</player> <time>09/25/2009 19:52:10</time> </key12> <key13> <player>Chei</player> <time>09/25/2009 19:52:10</time> </key13> <key14> <player>Pushurluck</player> <time>09/25/2009 19:52:10</time> </key14> <key15> <player>Scolbu</player> <time>09/25/2009 19:52:10</time> </key15> <key16> <player>Elfshine</player> <time>09/25/2009 19:52:10</time> </key16> <key17> <player>Symi</player> <time>09/25/2009 19:52:10</time> </key17> <key18> <player>Tauntra</player> <time>09/25/2009 19:52:10</time> </key18> <key19> <player>Bakugami</player> <time>09/25/2009 19:52:10</time> </key19> <key20> <player>Docclara</player> <time>09/25/2009 19:52:10</time> </key20> <key21> <player>Yuksick</player> <time>09/25/2009 19:52:10</time> </key21> <key22> <player>Zayownage</player> <time>09/25/2009 19:52:10</time> </key22> <key23> <player>Melodiya</player> <time>09/25/2009 19:52:10</time> </key23> <key24> <player>Slientnight</player> <time>09/25/2009 19:52:10</time> </key24> <key25> <player>Aelmin</player> <time>09/25/2009 19:52:10</time> </key25> <key26> <player>Shinnyting</player> <time>09/25/2009 19:52:10</time> </key26> <key27> <player>Slientnight</player> <time>09/25/2009 20:37:08</time> </key27> <key28> <player>Kenric</player> <time>09/25/2009 20:37:08</time> </key28> <key29> <player>Extravagant</player> <time>09/25/2009 20:37:08</time> </key29> <key30> <player>Hagel</player> <time>09/25/2009 20:37:08</time> </key30> <key31> <player>Veriana</player> <time>09/25/2009 20:37:08</time> </key31> <key32> <player>Tr�th</player> <time>09/25/2009 20:37:08</time> </key32> <key33> <player>Nobovis</player> <time>09/25/2009 20:37:08</time> </key33> <key34> <player>Tjthed�de</player> <time>09/25/2009 20:37:08</time> </key34> <key35> <player>Peaz</player> <time>09/25/2009 20:37:08</time> </key35> <key36> <player>Ebalusmgo</player> <time>09/25/2009 20:37:08</time> </key36> <key37> <player>Uneak</player> <time>09/25/2009 20:37:08</time> </key37> <key38> <player>Phrenic</player> <time>09/25/2009 20:37:08</time> </key38> <key39> <player>Chei</player> <time>09/25/2009 20:37:08</time> </key39> <key40> <player>Pushurluck</player> <time>09/25/2009 20:37:08</time> </key40> <key41> <player>Scolbu</player> <time>09/25/2009 20:37:08</time> </key41> <key42> <player>Symi</player> <time>09/25/2009 20:37:08</time> </key42> <key43> <player>Tauntra</player> <time>09/25/2009 20:37:08</time> </key43> <key44> <player>Elfshine</player> <time>09/25/2009 20:37:08</time> </key44> <key45> <player>Docclara</player> <time>09/25/2009 20:37:08</time> </key45> <key46> <player>Yuksick</player> <time>09/25/2009 20:37:08</time> </key46> <key47> <player>Zayownage</player> <time>09/25/2009 20:37:08</time> </key47> <key48> <player>Melodiya</player> <time>09/25/2009 20:37:08</time> </key48> <key49> <player>Bakugami</player> <time>09/25/2009 20:37:08</time> </key49> <key50> <player>Aelmin</player> <time>09/25/2009 20:37:08</time> </key50> <key51> <player>Shinnyting</player> <time>09/25/2009 20:37:08</time> </key51> <key52> <player>Masalar</player> <time>09/25/2009 20:37:08</time> </key52> <key53> <player>Graynsquirel</player> <time>09/25/2009 20:37:08</time> </key53> <key54> <player>Slientnight</player> <time>09/25/2009 20:56:17</time> </key54> <key55> <player>Kenric</player> <time>09/25/2009 20:56:17</time> </key55> <key56> <player>Extravagant</player> <time>09/25/2009 20:56:17</time> </key56> <key57> <player>Hagel</player> <time>09/25/2009 20:56:17</time> </key57> <key58> <player>Veriana</player> <time>09/25/2009 20:56:17</time> </key58> <key59> <player>Tr�th</player> <time>09/25/2009 20:56:17</time> </key59> <key60> <player>Nobovis</player> <time>09/25/2009 20:56:17</time> </key60> <key61> <player>Tjthed�de</player> <time>09/25/2009 20:56:17</time> </key61> <key62> <player>Peaz</player> <time>09/25/2009 20:56:17</time> </key62> <key63> <player>Ebalusmgo</player> <time>09/25/2009 20:56:17</time> </key63> <key64> <player>Uneak</player> <time>09/25/2009 20:56:17</time> </key64> <key65> <player>Phrenic</player> <time>09/25/2009 20:56:17</time> </key65> <key66> <player>Chei</player> <time>09/25/2009 20:56:17</time> </key66> <key67> <player>Pushurluck</player> <time>09/25/2009 20:56:17</time> </key67> <key68> <player>Scolbu</player> <time>09/25/2009 20:56:17</time> </key68> <key69> <player>Symi</player> <time>09/25/2009 20:56:17</time> </key69> <key70> <player>Tauntra</player> <time>09/25/2009 20:56:17</time> </key70> <key71> <player>Elfshine</player> <time>09/25/2009 20:56:17</time> </key71> <key72> <player>Docclara</player> <time>09/25/2009 20:56:17</time> </key72> <key73> <player>Yuksick</player> <time>09/25/2009 20:56:17</time> </key73> <key74> <player>Zayownage</player> <time>09/25/2009 20:56:17</time> </key74> <key75> <player>Melodiya</player> <time>09/25/2009 20:56:17</time> </key75> <key76> <player>Bakugami</player> <time>09/25/2009 20:56:17</time> </key76> <key77> <player>Aelmin</player> <time>09/25/2009 20:56:17</time> </key77> <key78> <player>Shinnyting</player> <time>09/25/2009 20:56:17</time> </key78> <key79> <player>Masalar</player> <time>09/25/2009 20:56:17</time> </key79> <key80> <player>Graynsquirel</player> <time>09/25/2009 20:56:17</time> </key80> </Leave> <Loot> <key1> <ItemName>Pendant of Focused Energies</ItemName> <ItemID>45539:0:0:0:0:0:0:0:80</ItemID> <Icon>Interface\Icons\INV_Jewelry_Necklace_40</Icon> <Class>Armor</Class> <SubClass>Miscellaneous</SubClass> <Color>ffa335ee</Color> <Count>1</Count> <Player>Veriana</Player> <Costs>4</Costs> <Time>09/25/2009 19:49:10</Time> <Zone>Ulduar</Zone> <Boss>Ulduar</Boss> <Note><![CDATA[ - Zone: Ulduar - Boss: Ulduar - 4 DKP]]></Note> </key1> <key2> <ItemName>Shoulders of Misfortune</ItemName> <ItemID>45543:0:0:0:0:0:0:0:80</ItemID> <Icon>Interface\Icons\INV_Shoulder_101</Icon> <Class>Armor</Class> <SubClass>Mail</SubClass> <Color>ffa335ee</Color> <Count>1</Count> <Player>disenchant</Player> <Costs>0</Costs> <Time>09/25/2009 19:49:10</Time> <Zone>Ulduar</Zone> <Boss>Ulduar</Boss> <Note><![CDATA[ - Zone: Ulduar - Boss: Ulduar - 0 DKP]]></Note> </key2> <key3> <ItemName>Legplates of the Wayward Conqueror</ItemName> <ItemID>45653:0:0:0:0:0:0:0:80</ItemID> <Icon>Interface\Icons\INV_Pants_Plate_17</Icon> <Class>Miscellaneous</Class> <SubClass>Junk</SubClass> <Color>ffa335ee</Color> <Count>1</Count> <Player>Uneak</Player> <Costs>6</Costs> <Time>09/25/2009 19:49:10</Time> <Zone>Ulduar</Zone> <Boss>Ulduar</Boss> <Note><![CDATA[ - Zone: Ulduar - Boss: Ulduar - 6 DKP]]></Note> </key3> <key4> <ItemName>Legplates of the Wayward Vanquisher</ItemName> <ItemID>45655:0:0:0:0:0:0:0:80</ItemID> <Icon>Interface\Icons\INV_Pants_Plate_17</Icon> <Class>Miscellaneous</Class> <SubClass>Junk</SubClass> <Color>ffa335ee</Color> <Count>1</Count> <Player>Slientnight</Player> <Costs>6</Costs> <Time>09/25/2009 19:49:10</Time> <Zone>Ulduar</Zone> <Boss>Ulduar</Boss> <Note><![CDATA[ - Zone: Ulduar - Boss: Ulduar - 6 DKP]]></Note> </key4> <key5> <ItemName>Leggings of the Lifetender</ItemName> <ItemID>45482:0:0:0:0:0:0:0:80</ItemID> <Icon>Interface\Icons\INV_Pants_Leather_28</Icon> <Class>Armor</Class> <SubClass>Leather</SubClass> <Color>ffa335ee</Color> <Count>1</Count> <Player>disenchant</Player> <Costs>0</Costs> <Time>09/25/2009 19:49:10</Time> <Zone>Ulduar</Zone> <Boss>Ulduar</Boss> <Note><![CDATA[ - Zone: Ulduar - Boss: Ulduar - 0 DKP]]></Note> </key5> <key6> <ItemName>Frostweave Cloth</ItemName> <ItemID>33470:0:0:0:0:0:0:0:80</ItemID> <Icon>Interface\Icons\INV_Fabric_Soulcloth</Icon> <Class>Trade Goods</Class> <SubClass>Cloth</SubClass> <Color>ffffffff</Color> <Count>1</Count> <Player>disenchant</Player> <Costs>0</Costs> <Time>09/25/2009 20:34:08</Time> <Zone>Ulduar</Zone> <Boss>Wipe - Freya #1</Boss> <Note><![CDATA[ - Zone: Ulduar - Boss: Wipe - Freya #1 - 0 DKP]]></Note> </key6> <key7> <ItemName>Frostweave Cloth</ItemName> <ItemID>33470:0:0:0:0:0:0:0:80</ItemID> <Icon>Interface\Icons\INV_Fabric_Soulcloth</Icon> <Class>Trade Goods</Class> <SubClass>Cloth</SubClass> <Color>ffffffff</Color> <Count>1</Count> <Player>disenchant</Player> <Costs>0</Costs> <Time>09/25/2009 20:53:17</Time> <Zone>Ulduar</Zone> <Boss>Freya</Boss> <Note><![CDATA[ - Zone: Ulduar - Boss: Freya - 0 DKP]]></Note> </key7> </Loot> </RaidInfo>
There should have been only at most 27 join/leaves (2 ppl were on the waiting list). Can you provide a little more documentation on the export function, i have been trying to see if I can fix it on my own, but with no lua experience and no knowledge of the design of the addon its proving to be a futile effort.
HeadCount produces a perfect string (yes I know you will probably say use headcount then, but I really like your addon and it makes my life of running my guild 100000 easier, so if I dont have to run 3 different addons just to accomplish the same thing that MagicDKP can...) and here is the relevant part of their export code:
-- Export a given raid in EQdkp format -- @param raid The raid -- @return string Returns the exported EQdkp string function HeadCount:exportEQdkp(raid) assert(raid, "Unable to export the raid into EQdkp format because the raid is nil.") local raidStartTime = raid:retrieveStartingTime() -- raid start time local raidEndTime = raid:retrieveEndingTime() -- raid end time local exportString = "<RaidInfo>" exportString = exportString .. "<key>" .. HeadCount:getEQdkpDateTimeAsString(raidStartTime) .. "</key>" exportString = exportString .. "<start>" .. HeadCount:getEQdkpDateTimeAsString(raidStartTime) .. "</start>" exportString = exportString .. "<end>" .. HeadCount:getEQdkpDateTimeAsString(raidEndTime) .. "</end>" local zone = raid:getZone() -- raid zone local difficulty = raid:getDifficulty() -- raid difficulty local convertedZone = HeadCount:convertToEQdkpZoneName(zone, difficulty) if (convertedZone) then exportString = exportString .. "<zone>" .. convertedZone .. "</zone>" end local orderedPlayerList = raid:retrieveOrderedPlayerList("Name", true, true, true, false, false, true) exportString = exportString .. "<PlayerInfos>" for k,v in ipairs(orderedPlayerList) do local race = v:getRace() local sex = v:getSex() exportString = exportString .. "<key" .. k .. ">" exportString = exportString .. "<name>" .. v:getName() .. "</name>" if (race) then exportString = exportString .. "<race>" .. race .. "</race>" else exportString = exportString .. "<race></race>" end if (v:getGuild()) then exportString = exportString .. "<guild>" .. v:getGuild() .. "</guild>" end if (sex) then exportString = exportString .. "<sex>" .. v:getSex() .. "</sex>" else exportString = exportString .. "<sex></sex>" end if (v:getFileName()) then -- new internal class name reference exportString = exportString .. "<class>" .. v:getFileName() .. "</class>" else -- backwards compatibility class name reference local convertedClassName = HeadCount:convertToEQdkpClassName(v:getClassName()) exportString = exportString .. "<class>" .. convertedClassName .. "</class>" end if (v:getLevel() > 0) then exportString = exportString .. "<level>" .. v:getLevel() .. "</level>" else exportString = exportString .. "<level>" .. HeadCount.DEFAULT_LEVEL .. "</level>" end exportString = exportString .. "</key" .. k .. ">" end exportString = exportString .. "</PlayerInfos>" -- <BossKills> -- <key1><name>%bossname%</name><time>%date%</time><attendees><key1><name>%playername1%</name><name>%playername2%</name></key1></attendees></key1> -- <key2><name>%bossname%</name><time>%date%</time><attendees><key1><name>%playername1%</name><name>%playername2%</name></key1></attendees></key2> -- </BossKills> exportString = exportString .. "<BossKills>" if (raid:getBossList()) then -- boss list is present local orderedBossList = raid:retrieveOrderedBossList() for k,v in ipairs(orderedBossList) do exportString = exportString .. "<key" .. k .. ">" exportString = exportString .. "<name>" .. v:getName() .. "</name>" exportString = exportString .. "<time>" .. HeadCount:getEQdkpDateTimeAsString(v:getActivityTime()) .. "</time>" exportString = exportString .. "<attendees>" local attendeeList = v:getPlayerList() for attendeeIndex,attendeeName in ipairs(attendeeList) do exportString = exportString .. "<key" .. attendeeIndex .. ">" exportString = exportString .. "<name>" .. attendeeName .. "</name>" exportString = exportString .. "</key" .. attendeeIndex .. ">" end exportString = exportString .. "</attendees>" exportString = exportString .. "</key" .. k .. ">" end end exportString = exportString .. "</BossKills>" if (convertedZone) then exportString = exportString .. "<note><![CDATA[ - Zone: " .. convertedZone .. "]]></note>" else exportString = exportString .. "<note></note>" end exportString = exportString .. "<Join>" for k,v in ipairs(orderedPlayerList) do local race = v:getRace() local sex = v:getSex() exportString = exportString .. "<key" .. k .. ">" exportString = exportString .. "<player>" .. v:getName() .. "</player>" if (race) then exportString = exportString .. "<race>" .. race .. "</race>" else exportString = exportString .. "<race></race>" end if (v:getFileName()) then -- new internal class name reference exportString = exportString .. "<class>" .. v:getFileName() .. "</class>" else -- backwards compatibility class name reference local convertedClassName = HeadCount:convertToEQdkpClassName(v:getClassName()) exportString = exportString .. "<class>" .. convertedClassName .. "</class>" end if (sex) then exportString = exportString .. "<sex>" .. sex .. "</sex>" else exportString = exportString .. "<sex></sex>" end if (v:getLevel() > 0) then exportString = exportString .. "<level>" .. v:getLevel() .. "</level>" else exportString = exportString .. "<level>" .. HeadCount.DEFAULT_LEVEL .. "</level>" end exportString = exportString .. "<time>" ..HeadCount:getEQdkpDateTimeAsString(v:retrieveStartingTime()) .. "</time>" exportString = exportString .. "</key" .. k .. ">" end exportString = exportString .. "</Join>" exportString = exportString .. "<Leave>" for k,v in ipairs(orderedPlayerList) do exportString = exportString .. "<key" .. k .. ">" exportString = exportString .. "<player>" .. v:getName() .. "</player>" exportString = exportString .. "<time>" .. HeadCount:getEQdkpDateTimeAsString(v:retrieveEndingTime()) .. "</time>" exportString = exportString .. "</key" .. k .. ">" end exportString = exportString .. "</Leave>" exportString = exportString .. "<Loot>" for k,v in ipairs(raid:getLootList()) do exportString = exportString .. "<key" .. k .. ">" local lootName = v:getName() if (lootName) then exportString = exportString .. "<ItemName>" .. lootName .. "</ItemName>" end local lootId = v:getItemId() if (lootId) then exportString = exportString .. "<ItemID>" .. lootId .. "</ItemID>" end local textureIcon = v:retrieveTextureIcon() if (textureIcon) then exportString = exportString .. "<Icon>" .. textureIcon .. "</Icon>" end local lootItemType = v:getItemType() if (lootItemType) then exportString = exportString .. "<Class>" .. lootItemType .. "</Class>" end local lootItemSubType = v:getItemSubType() if (lootItemSubType) then exportString = exportString .. "<SubClass>" .. lootItemSubType .. "</SubClass>" end local lootColor = v:retrieveColor() if (lootColor) then exportString = exportString .. "<Color>" .. lootColor .. "</Color>" end exportString = exportString .. "<Count>" .. v:getQuantity() .. "</Count>" exportString = exportString .. "<Player>" .. v:getPlayerName() .. "</Player>" local lootCost = v:getCost() if (not lootCost) then lootCost = 0 end exportString = exportString .. "<Costs>" .. lootCost .. "</Costs>" exportString = exportString .. "<Time>" .. HeadCount:getEQdkpDateTimeAsString(v:getActivityTime()) .. "</Time>" local noteElementContent = "<![CDATA[" local lootNote = v:getNote() if ((lootNote) and (HeadCount:isString(lootNote))) then -- loot note is present noteElementContent = noteElementContent .. lootNote end local lootZone = v:getZone() -- ignore for now, difficulty should be determined when loot zone is determined if (convertedZone) then -- loot zone present noteElementContent = noteElementContent .. " - Zone: " .. convertedZone -- add to note exportString = exportString .. "<Zone>" .. convertedZone .. "</Zone>" else exportString = exportString .. "<Zone />" end local lootSource = v:getSource() if (lootSource) then -- loot source present noteElementContent = noteElementContent .. " - Boss: " .. lootSource -- add to note exportString = exportString .. "<Boss>" .. lootSource .. "</Boss>" else exportString = exportString .. "<Boss />" end noteElementContent = noteElementContent .. " - " .. lootCost .. " DKP]]>" -- add cost to note exportString = exportString .. "<Note>" .. noteElementContent .. "</Note>" exportString = exportString .. "</key" .. k .. ">" end exportString = exportString .. "</Loot>" exportString = exportString .. "</RaidInfo>" return exportString end -- Gets the date and time as a EQdkp string -- @param activityTime The activity time. -- @return string Returns the display date and time as a EQdkp string function HeadCount:getEQdkpDateTimeAsString(activityTime) local dateTimeString = nil if (activityTime) then local currentSeconds = activityTime:getUTCDateTimeInSeconds() -- UTC date and time in seconds local displayTimezoneDifferenceInSeconds = HeadCount:GetTimezone() * 60 * 60 -- seconds currentSeconds = currentSeconds + displayTimezoneDifferenceInSeconds -- display time in seconds local displayDateTime = date("*t", currentSeconds) assert(displayDateTime.year >= 1000, "HeadCount does not support low-value years.") local millenium = math.floor(displayDateTime.year / 1000) local year = displayDateTime.year - (millenium * 1000) dateTimeString = string.format("%02d", displayDateTime.month) .. "/" .. string.format("%02d", displayDateTime.day) .. "/" .. string.format("%02d", year) .. " " .. string.format("%02d", displayDateTime.hour) .. ":" .. string.format("%02d", displayDateTime.min) .. ":" .. string.format("%02d", displayDateTime.sec) end return dateTimeString end -- Converts the zone name to a zone name with a difficulty label if applicable. -- @param zone The zone name. -- @param difficulty The difficulty level -- @return string Returns the converted zone name or the zone name if no conversion could be made function HeadCount:convertToEQdkpZoneName(zone, difficulty) local convertedZone = nil local isDifficultyLabelEnabled = HeadCount:IsEQDKPDifficultyEnabled() if (zone) then -- zone is valid local isDifficultyLabelValid = (difficulty) and (HeadCount.INSTANCES[zone]) and (HeadCount.INSTANCES[zone].players[difficulty]) and (isDifficultyLabelEnabled) if (isDifficultyLabelValid) then -- difficulty is valid -- zone is in the supported instances list -- zone is a heroic-enabled raid -- EQdkp difficulty label is enabled if (HeadCount.INSTANCES[zone].hasMultiDifficulty) then convertedZone = zone .. " (" .. HeadCount.INSTANCES[zone].players[difficulty] .. ")" else convertedZone = zone end else -- converted zone is the zone name convertedZone = zone end end return convertedZone end -- Converts the class name to an EQdkp class name -- @param className The class name. -- @return string Returns the EQdkp class name function HeadCount:convertToEQdkpClassName(className) local convertedClassName = "" if (className) then local trimmedClassName = string.gsub(className, "%s", "") -- trim all whitespace (leading, internal, trailing) convertedClassName = string.upper(trimmedClassName) -- convert the string to uppercase end return convertedClassName end
Joins and leaves are only tracked when that option is enabled and it's only used in the MagicDKP export format as far as I recall. Join/leave with ctrt simply adds them for each event. I am not playing WoW anymore so unless someone else provides a patch or takes over maintenance of the addon it's unfortunately unlikely to be fixed.
any chance you can provide some documentation on the mods? right now its really hard to follow some of your logic :/
To post a comment, please login or register a new account.