phpBB Forum

It is currently Wed 23. May 2012, 17:45

All times are UTC + 1 hour

Forum rules


Hello dearest user and welcome to our EQDKP-Plus support forum.

Please read the following rules and terms before posting anything! Failure in doing so will result in being ignored or being banned. Posting in our boards means you have read, understood and accepted those rules.

English Board Rules – Click here



Post new topic Reply to topic  [ 21 posts ]  Go to page 1, 2, 3  Next
Author Message
Offline
 Post subject: Other Logs/Strings than CTRT
PostPosted: Wed 4. Mar 2009, 15:22 
Core-Developer
User avatar

Joined: Tue 11. Mar 2008, 13:26
Posts: 2298
The Raidlogimport Plugin is theoretically able to parse and Strings and Logs of all types and create a raid out of it.
But I need these Strings and Logs from you, to include theses formats into the plugin. If you have such material, please send it to me and I will see if i can use it. It would be nice if you send at least 3-5 examples.


Never write unrequested PMs to me! - Schreibt mir nie unaufgefordert PNs!
ImageImage



Top
 Profile  
 
Offline
 Post subject: Re: Other Logs/Strings than CTRT
PostPosted: Wed 11. Mar 2009, 23:55 
User avatar

Joined: Mon 17. Dec 2007, 10:57
Posts: 41
I wonder if you change th output format from the newer ctrt versions from mldkp to their own format. Do you get more information then? Or is it just a different format with the same infos?



Top
 Profile  
 
Offline
 Post subject: Re: Other Logs/Strings than CTRT
PostPosted: Thu 12. Mar 2009, 00:55 
Core-Developer
User avatar

Joined: Tue 11. Mar 2008, 13:26
Posts: 2298
they are the same infos, just in another format ;)


Never write unrequested PMs to me! - Schreibt mir nie unaufgefordert PNs!
ImageImage



Top
 Profile  
 
Offline
 Post subject: Re: Other Logs/Strings than CTRT
PostPosted: Wed 22. Apr 2009, 15:00 

Joined: Sun 29. Mar 2009, 22:31
Posts: 5
Tryed headcount? would be nice if raid-log-import supported that!
Code:
<RaidInfo><key>04/20/09 17:57:17</key><start>04/20/09 17:57:17</start><end>04/20/09 23:15:33</end><PlayerInfos><key1><name>Akori</name><race>Draenei</race><guild>Gief Epix</guild><sex>3</sex><class>SHAMAN</class><level>80</level></key1><key2><name>Azaghâl</name><race>Dwarf</race><guild>Gief Epix</guild><sex>2</sex><class>PALADIN</class><level>80</level></key2><key3><name>Azle</name><race>Draenei</race><guild>Gief Epix</guild><sex>3</sex><class>PRIEST</class><level>80</level></key3><key4><name>Bingobot</name><race>Draenei</race><guild>Gief Epix</guild><sex>2</sex><class>SHAMAN</class><level>80</level></key4><key5><name>Bitteliten</name><race>Dwarf</race><guild>Gief Epix</guild><sex>2</sex><class>HUNTER</class><level>80</level></key5><key6><name>Báwls</name><race>Draenei</race><guild>Gief Epix</guild><sex>3</sex><class>WARRIOR</class><level>80</level></key6><key7><name>Chitastic</name><race>Human</race><guild>Gief Epix</guild><sex>3</sex><class>MAGE</class><level>80</level></key7><key8><name>Crystalblue</name><race></race><sex></sex><class></class><level>80</level></key8><key9><name>Daxwax</name><race>NightElf</race><guild>Gief Epix</guild><sex>2</sex><class>WARRIOR</class><level>80</level></key9><key10><name>Dregard</name><race></race><sex></sex><class></class><level>80</level></key10><key11><name>Eleríon</name><race>Draenei</race><guild>Gief Epix</guild><sex>2</sex><class>SHAMAN</class><level>80</level></key11><key12><name>Firenz</name><race>Dwarf</race><guild>Gief Epix</guild><sex>3</sex><class>PALADIN</class><level>80</level></key12><key13><name>Førstehjelp</name><race></race><sex></sex><class></class><level>80</level></key13><key14><name>Isabella</name><race></race><sex></sex><class></class><level>80</level></key14><key15><name>Isildwen</name><race>NightElf</race><guild>Gief Epix</guild><sex>3</sex><class>ROGUE</class><level>80</level></key15><key16><name>Jarlaxle</name><race>NightElf</race><guild>Gief Epix</guild><sex>2</sex><class>ROGUE</class><level>80</level></key16><key17><name>Kajà</name><race></race><sex></sex><class></class><level>80</level></key17><key18><name>Katyr</name><race>NightElf</race><guild>Gief Epix</guild><sex>2</sex><class>HUNTER</class><level>80</level></key18><key19><name>Kithil</name><race></race><sex></sex><class></class><level>80</level></key19><key20><name>Leviandan</name><race></race><sex></sex><class></class><level>80</level></key20><key21><name>Lómarandil</name><race>NightElf</race><guild>Gief Epix</guild><sex>2</sex><class>DRUID</class><level>80</level></key21><key22><name>Maaria</name><race>Human</race><guild>Gief Epix</guild><sex>3</sex><class>WARLOCK</class><level>80</level></key22><key23><name>Mannybianco</name><race>Dwarf</race><guild>Gief Epix</guild><sex>3</sex><class>HUNTER</class><level>80</level></key23><key24><name>Mavvi</name><race>Draenei</race><guild>Gief Epix</guild><sex>3</sex><class>SHAMAN</class><level>80</level></key24><key25><name>Myrah</name><race>Gnome</race><guild>Gief Epix</guild><sex>3</sex><class>WARRIOR</class><level>80</level></key25><key26><name>Pedrsn</name><race>Draenei</race><guild>Gief Epix</guild><sex>3</sex><class>SHAMAN</class><level>80</level></key26><key27><name>Skjegget</name><race>Dwarf</race><guild>Gief Epix</guild><sex>2</sex><class>WARRIOR</class><level>80</level></key27><key28><name>Starkisaurus</name><race>Draenei</race><guild>Gief Epix</guild><sex>3</sex><class>PALADIN</class><level>80</level></key28><key29><name>Tafsern</name><race>Dwarf</race><guild>Gief Epix</guild><sex>2</sex><class>HUNTER</class><level>80</level></key29><key30><name>Tiwaz</name><race></race><sex></sex><class></class><level>80</level></key30><key31><name>Triggi</name><race>Dwarf</race><guild>Gief Epix</guild><sex>2</sex><class>HUNTER</class><level>80</level></key31><key32><name>Vibah</name><race>Human</race><guild>Gief Epix</guild><sex>3</sex><class>MAGE</class><level>80</level></key32><key33><name>Yotsuba</name><race>Gnome</race><guild>Gief Epix</guild><sex>3</sex><class>WARLOCK</class><level>80</level></key33><key34><name>Zhenya</name><race>Human</race><guild>Gief Epix</guild><sex>3</sex><class>DEATHKNIGHT</class><level>80</level></key34><key35><name>Zortax</name><race></race><sex></sex><class></class><level>80</level></key35></PlayerInfos><BossKills><key1><name>Yogg-Saron</name><time>04/20/09 23:05:18</time><attendees><key1><name>Akori</name></key1><key2><name>Azaghâl</name></key2><key3><name>Azle</name></key3><key4><name>Bingobot</name></key4><key5><name>Bitteliten</name></key5><key6><name>Báwls</name></key6><key7><name>Chitastic</name></key7><key8><name>Crystalblue</name></key8><key9><name>Daxwax</name></key9><key10><name>Dregard</name></key10><key11><name>Eleríon</name></key11><key12><name>Firenz</name></key12><key13><name>Førstehjelp</name></key13><key14><name>Isabella</name></key14><key15><name>Isildwen</name></key15><key16><name>Jarlaxle</name></key16><key17><name>Kajà</name></key17><key18><name>Katyr</name></key18><key19><name>Kithil</name></key19><key20><name>Leviandan</name></key20><key21><name>Lómarandil</name></key21><key22><name>Maaria</name></key22><key23><name>Mannybianco</name></key23><key24><name>Mavvi</name></key24><key25><name>Myrah</name></key25><key26><name>Pedrsn</name></key26><key27><name>Skjegget</name></key27><key28><name>Starkisaurus</name></key28><key29><name>Tafsern</name></key29><key30><name>Tiwaz</name></key30><key31><name>Triggi</name></key31><key32><name>Vibah</name></key32><key33><name>Yotsuba</name></key33><key34><name>Zhenya</name></key34><key35><name>Zortax</name></key35></attendees></key1></BossKills><note></note><Join><key1><player>Akori</player><race>Draenei</race><class>SHAMAN</class><sex>3</sex><level>80</level><time>04/20/09 17:57:17</time></key1><key2><player>Azaghâl</player><race>Dwarf</race><class>PALADIN</class><sex>2</sex><level>80</level><time>04/20/09 17:57:17</time></key2><key3><player>Azle</player><race>Draenei</race><class>PRIEST</class><sex>3</sex><level>80</level><time>04/20/09 18:07:30</time></key3><key4><player>Bingobot</player><race>Draenei</race><class>SHAMAN</class><sex>2</sex><level>80</level><time>04/20/09 18:01:28</time></key4><key5><player>Bitteliten</player><race>Dwarf</race><class>HUNTER</class><sex>2</sex><level>80</level><time>04/20/09 17:57:17</time></key5><key6><player>Báwls</player><race>Draenei</race><class>WARRIOR</class><sex>3</sex><level>80</level><time>04/20/09 17:57:17</time></key6><key7><player>Chitastic</player><race>Human</race><class>MAGE</class><sex>3</sex><level>80</level><time>04/20/09 17:57:17</time></key7><key8><player>Crystalblue</player><race></race><class></class><sex></sex><level>80</level><time>04/20/09 18:38:40</time></key8><key9><player>Daxwax</player><race>NightElf</race><class>WARRIOR</class><sex>2</sex><level>80</level><time>04/20/09 17:59:02</time></key9><key10><player>Dregard</player><race></race><class></class><sex></sex><level>80</level><time>04/20/09 17:59:02</time></key10><key11><player>Eleríon</player><race>Draenei</race><class>SHAMAN</class><sex>2</sex><level>80</level><time>04/20/09 17:57:40</time></key11><key12><player>Firenz</player><race>Dwarf</race><class>PALADIN</class><sex>3</sex><level>80</level><time>04/20/09 17:57:17</time></key12><key13><player>Førstehjelp</player><race></race><class></class><sex></sex><level>80</level><time>04/20/09 18:06:08</time></key13><key14><player>Isabella</player><race></race><class></class><sex></sex><level>80</level><time>04/20/09 17:58:57</time></key14><key15><player>Isildwen</player><race>NightElf</race><class>ROGUE</class><sex>3</sex><level>80</level><time>04/20/09 17:57:17</time></key15><key16><player>Jarlaxle</player><race>NightElf</race><class>ROGUE</class><sex>2</sex><level>80</level><time>04/20/09 17:57:17</time></key16><key17><player>Kajà</player><race></race><class></class><sex></sex><level>80</level><time>04/20/09 18:01:23</time></key17><key18><player>Katyr</player><race>NightElf</race><class>HUNTER</class><sex>2</sex><level>80</level><time>04/20/09 17:59:02</time></key18><key19><player>Kithil</player><race></race><class></class><sex></sex><level>80</level><time>04/20/09 17:59:00</time></key19><key20><player>Leviandan</player><race></race><class></class><sex></sex><level>80</level><time>04/20/09 17:59:07</time></key20><key21><player>Lómarandil</player><race>NightElf</race><class>DRUID</class><sex>2</sex><level>80</level><time>04/20/09 17:57:17</time></key21><key22><player>Maaria</player><race>Human</race><class>WARLOCK</class><sex>3</sex><level>80</level><time>04/20/09 17:58:15</time></key22><key23><player>Mannybianco</player><race>Dwarf</race><class>HUNTER</class><sex>3</sex><level>80</level><time>04/20/09 17:57:17</time></key23><key24><player>Mavvi</player><race>Draenei</race><class>SHAMAN</class><sex>3</sex><level>80</level><time>04/20/09 17:57:17</time></key24><key25><player>Myrah</player><race>Gnome</race><class>WARRIOR</class><sex>3</sex><level>80</level><time>04/20/09 17:59:48</time></key25><key26><player>Pedrsn</player><race>Draenei</race><class>SHAMAN</class><sex>3</sex><level>80</level><time>04/20/09 17:57:17</time></key26><key27><player>Skjegget</player><race>Dwarf</race><class>WARRIOR</class><sex>2</sex><level>80</level><time>04/20/09 17:57:17</time></key27><key28><player>Starkisaurus</player><race>Draenei</race><class>PALADIN</class><sex>3</sex><level>80</level><time>04/20/09 17:57:17</time></key28><key29><player>Tafsern</player><race>Dwarf</race><class>HUNTER</class><sex>2</sex><level>80</level><time>04/20/09 18:01:54</time></key29><key30><player>Tiwaz</player><race></race><class></class><sex></sex><level>80</level><time>04/20/09 21:21:10</time></key30><key31><player>Triggi</player><race>Dwarf</race><class>HUNTER</class><sex>2</sex><level>80</level><time>04/20/09 17:57:17</time></key31><key32><player>Vibah</player><race>Human</race><class>MAGE</class><sex>3</sex><level>80</level><time>04/20/09 17:57:17</time></key32><key33><player>Yotsuba</player><race>Gnome</race><class>WARLOCK</class><sex>3</sex><level>80</level><time>04/20/09 17:58:20</time></key33><key34><player>Zhenya</player><race>Human</race><class>DEATHKNIGHT</class><sex>3</sex><level>80</level><time>04/20/09 18:31:31</time></key34><key35><player>Zortax</player><race></race><class></class><sex></sex><level>80</level><time>04/20/09 20:59:28</time></key35></Join><Leave><key1><player>Akori</player><time>04/20/09 23:15:33</time></key1><key2><player>Azaghâl</player><time>04/20/09 23:15:33</time></key2><key3><player>Azle</player><time>04/20/09 23:15:14</time></key3><key4><player>Bingobot</player><time>04/20/09 23:13:57</time></key4><key5><player>Bitteliten</player><time>04/20/09 23:15:33</time></key5><key6><player>Báwls</player><time>04/20/09 23:13:06</time></key6><key7><player>Chitastic</player><time>04/20/09 23:15:33</time></key7><key8><player>Crystalblue</player><time>04/20/09 18:38:40</time></key8><key9><player>Daxwax</player><time>04/20/09 23:15:33</time></key9><key10><player>Dregard</player><time>04/20/09 17:59:02</time></key10><key11><player>Eleríon</player><time>04/20/09 23:15:33</time></key11><key12><player>Firenz</player><time>04/20/09 23:15:33</time></key12><key13><player>Førstehjelp</player><time>04/20/09 18:06:08</time></key13><key14><player>Isabella</player><time>04/20/09 17:58:57</time></key14><key15><player>Isildwen</player><time>04/20/09 23:13:06</time></key15><key16><player>Jarlaxle</player><time>04/20/09 23:13:01</time></key16><key17><player>Kajà</player><time>04/20/09 18:01:23</time></key17><key18><player>Katyr</player><time>04/20/09 23:15:33</time></key18><key19><player>Kithil</player><time>04/20/09 17:59:02</time></key19><key20><player>Leviandan</player><time>04/20/09 17:59:07</time></key20><key21><player>Lómarandil</player><time>04/20/09 23:15:21</time></key21><key22><player>Maaria</player><time>04/20/09 23:15:33</time></key22><key23><player>Mannybianco</player><time>04/20/09 20:57:36</time></key23><key24><player>Mavvi</player><time>04/20/09 23:15:33</time></key24><key25><player>Myrah</player><time>04/20/09 23:15:33</time></key25><key26><player>Pedrsn</player><time>04/20/09 23:15:33</time></key26><key27><player>Skjegget</player><time>04/20/09 23:15:33</time></key27><key28><player>Starkisaurus</player><time>04/20/09 23:12:48</time></key28><key29><player>Tafsern</player><time>04/20/09 23:15:33</time></key29><key30><player>Tiwaz</player><time>04/20/09 21:21:10</time></key30><key31><player>Triggi</player><time>04/20/09 23:15:33</time></key31><key32><player>Vibah</player><time>04/20/09 23:13:06</time></key32><key33><player>Yotsuba</player><time>04/20/09 23:15:33</time></key33><key34><player>Zhenya</player><time>04/20/09 23:13:11</time></key34><key35><player>Zortax</player><time>04/20/09 20:59:28</time></key35></Leave><Loot><key1><ItemID>45038</ItemID><Icon>InterfaceIconsINV_Misc_QuestionMark</Icon><Count>1</Count><Player>Starkisaurus</Player><Costs>0</Costs><Time>04/20/09 23:05:34</Time><Zone /><Boss>Yogg-Saron</Boss><Note><![CDATA[ - Boss: Yogg-Saron - 0 DKP]]></Note></key1><key2><ItemID>45523</ItemID><Icon>InterfaceIconsINV_Misc_QuestionMark</Icon><Count>1</Count><Player>Isildwen</Player><Costs>25</Costs><Time>04/20/09 23:06:13</Time><Zone /><Boss>Yogg-Saron</Boss><Note><![CDATA[ - Boss: Yogg-Saron - 25 DKP]]></Note></key2><key3><ItemID>45530</ItemID><Icon>InterfaceIconsINV_Misc_QuestionMark</Icon><Count>1</Count><Player>Pedrsn</Player><Costs>25</Costs><Time>04/20/09 23:06:55</Time><Zone /><Boss>Yogg-Saron</Boss><Note><![CDATA[ - Boss: Yogg-Saron - 25 DKP]]></Note></key3><key4><ItemID>45658</ItemID><Icon>InterfaceIconsINV_Misc_QuestionMark</Icon><Count>1</Count><Player>Chitastic</Player><Costs>25</Costs><Time>04/20/09 23:07:32</Time><Zone /><Boss>Yogg-Saron</Boss><Note><![CDATA[ - Boss: Yogg-Saron - 25 DKP]]></Note></key4><key5><ItemID>45658</ItemID><Icon>InterfaceIconsINV_Misc_QuestionMark</Icon><Count>1</Count><Player>Lómarandil</Player><Costs>25</Costs><Time>04/20/09 23:07:44</Time><Zone /><Boss>Yogg-Saron</Boss><Note><![CDATA[ - Boss: Yogg-Saron - 25 DKP]]></Note></key5></Loot></RaidInfo>



Top
 Profile  
 
Offline
 Post subject: Re: Other Logs/Strings than CTRT
PostPosted: Wed 22. Apr 2009, 15:07 
Moderator
User avatar

Joined: Thu 6. Mar 2008, 16:32
Posts: 4317
Location: Remshalden
HeadCount has an eqdkp xml string format ;) But we try to get the authors to support the special eqdkp plus format, too.

But you may use it right away, now :)


ImageImage



Top
 Profile  
 
Offline
 Post subject: Re: Other Logs/Strings than CTRT
PostPosted: Fri 24. Apr 2009, 04:50 

Joined: Wed 26. Nov 2008, 19:18
Posts: 48
As discussed here:
plugin-raidlogimport-ctrt-f519/raidlogimport-0534-support-thread-t25927.html#36717

Seems that the latest CT_RaidTracker isn't working correctly with RaidLogImport... ? :(
-Seph



Top
 Profile  
 
Offline
 Post subject: Re: Other Logs/Strings than CTRT
PostPosted: Fri 24. Apr 2009, 08:48 
Moderator
User avatar

Joined: Thu 6. Mar 2008, 16:32
Posts: 4317
Location: Remshalden
I don't think eris changed anything in the string code. Look in your other post and send the demanded files.


ImageImage



Top
 Profile  
 
Offline
 Post subject: Re: Other Logs/Strings than CTRT
PostPosted: Fri 24. Apr 2009, 15:35 
Core-Developer
User avatar

Joined: Tue 11. Mar 2008, 13:26
Posts: 2298
check the options, most likely the xml-output changed to the default again, if not, i need the string, because for me 1.7.6 works


Never write unrequested PMs to me! - Schreibt mir nie unaufgefordert PNs!
ImageImage



Top
 Profile  
 
Offline
 Post subject: Re: Other Logs/Strings than CTRT
PostPosted: Sat 25. Apr 2009, 05:28 

Joined: Wed 26. Nov 2008, 19:18
Posts: 48
Changing the output format to somethign else, saving, then changing it back and saving it DID fix it for me. Thanks.
-Seph



Top
 Profile  
 
Offline
 Post subject: Re: Other Logs/Strings than CTRT
PostPosted: Mon 14. Dec 2009, 02:31 

Joined: Mon 28. Sep 2009, 23:09
Posts: 4
Hello, not sure if this is the right forum...please move if it is the wrong place to post this.
Anyway,
I am testing on a localhost at the moment so I have not entered a link in my signature.
I am trying to get this working for EQ1....and 99% of it is working.
The raid parse is where I have a problem.



Basically the raid importer is very confusing for my Officers to get use to....it is still geared mostly for wow raid imports....Many of the steps are redundant for EQ1.
If you could just click off all the options not needed for EQ1 it would be so nice!
Just need a place to paste the raid dump, then parse it, then select an event for the raid and click "submit raid"
Then you could use the "Add items to this raid" or in the admin panel use the Add Items feature.

I was wondering if there were a way to remove everything not needed for EQ1 raid imports?
There is no need for the other steps for EQ1.

Or I was wondering if the following code can be implemented to add and parse EQ1 raids through the Add Raid feature in the EQdkp-plus admin panel.


Everquest puts out a text file to use for adding raids into a dkp system.
Nothing fancy at all...just a .txt file


This is a raid dump from in-game:
Code:
1   playername   85   Warrior   Raid Leader   
1   playername   85   Bard      
1   playername   85   Beastlord      
1   playername   85   Paladin      
1   playername   85   Cleric      
1   playername   85   Rogue      
2   playername   85   Bard   Group Leader   
2   playername   85   Rogue      
2   playername   85   Rogue      
2   playername   85   Monk      
2   playername   85   Shaman      
2   playername   85   Rogue      
3   playername   85   Shadow Knight   Group Leader   
3   playername   85   Paladin      
3   playername   85   Warrior      
3   playername   85   Cleric      
3   playername   85   Cleric      
3   playername   83   Shadow Knight      
4   playername   85   Monk   Group Leader   
4   playername   85   Rogue      
4   playername   85   Monk      
4   playername   85   Berserker      
4   playername   85   Shaman      
4   playername   85   Ranger      
5   playername   85   Paladin   Group Leader   
5   playername   85   Magician      
5   playername   85   Wizard      
5   playername   85   Enchanter      
5   playername   85   Wizard      
5   playername   85   Druid      
6   playername   85   Warrior   Group Leader   
6   playername   85   Cleric      
6   playername   85   Enchanter      
6   playername   85   Rogue      
6   playername   85   Ranger      
6   playername   85   Paladin      
7   playername   85   Warrior   Group Leader   
7   playername   85   Druid      
7   playername   84   Druid      
7   playername   85   Warrior      
7   playername   85   Warrior      
7   playername   85   Rogue      


I replaced the real player names with "playername" to protect those that may not wish their in-game names to be posted on a public forum.
I would love to switch to EQdkp-plus if the above text file can be parsed.

.

This is the parse_Everquest file from eqdkp:

Code:
<?php
/******************************
 * EQdkp
 * Copyright 2002-2003
 * Licensed under the GNU GPL.  See COPYING for full terms.
 * ------------------
 * parse_Everquest.php
 * Began: Sat March 05 2005
 *
 * $Id: parse_Everquest.php 46 2007-06-19 07:29:11Z tsigo $
 *
 ******************************/
 
define('EQDKP_INC', true);
define('IN_ADMIN', true);
$eqdkp_root_path = './../';
include_once($eqdkp_root_path . 'common.php');

class Parse_Log extends EQdkp_Admin
{
    function parse_log()
    {
        global $db, $eqdkp, $user, $tpl, $pm;
        global $SID;
       
        parent::eqdkp_admin();
       
        $this->assoc_buttons(array(
            'parse' => array(
                'name'    => 'parse',
                'process' => 'process_parse',
                'check'   => 'a_raid_'),
            'form' => array(
                'name'    => '',
                'process' => 'display_form',
                'check'   => 'a_raid_'))
        );
    }
   
    // ---------------------------------------------------------
    // Process Parse
    // ---------------------------------------------------------
    function process_parse()
    {


   /* New EQ format for /who

[Fri Apr 29 20:45:08 2005] Logging to 'eqlog.txt' is now *ON*.
[Fri Apr 29 20:45:09 2005] Players on EverQuest:
[Fri Apr 29 20:45:09 2005] ---------------------------
[Fri Apr 29 20:45:09 2005] [63 Warlock (Necromancer)] Volac (Dark Elf) <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [66 Maestro (Bard)] Willowwhisper (Wood Elf) <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [ANONYMOUS] Premus  <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [65 Storm Warden (Druid)] Whispering (Wood Elf) <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [65 Prophet (Shaman)] Cuzak (Troll) <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [64 Virtuoso (Bard)] Case (Half Elf) <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [ANONYMOUS] Aspenelder  <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [67 Forest Stalker (Ranger)] Hatteras (Wood Elf) <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [67 Archon (Cleric)] Kelee (High Elf) <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [66 Storm Warden (Druid)] Branson (Wood Elf) <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [66 Overlord (Warrior)] Damilex (Human) <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [66 Lord Protector (Paladin)] Hafgun (Human) <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [54 Primalist (Beastlord)] Sistakitty (Vah Shir) <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [66 Arch Convoker (Magician)] Torgen (High Elf) <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [63 Phantasmist (Enchanter)] Merlinycus (Erudite) <Aurora Spirits>
[Fri Apr 29 20:45:09 2005] [66 Forest Stalker (Ranger)] Xlifex (Wood Elf) <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [ANONYMOUS] Misser  <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [70 Scourge Knight (Shadow Knight)] Grosbras (Ogre) <Shadows of Doom>
[Fri Apr 29 20:45:09 2005] [70 Herald (Bard)] Anjagi (Fire Elemental) <Guild>


*/
        global $db, $eqdkp, $user, $tpl, $pm;
        global $SID;

   $usable_date = "/([a-zA-Z]{3}) ([a-zA-Z]{3}) ([0-9]{2}) ([0-9]{2})\:([0-9]{2})\:([0-9]{2}) ([0-9]{4})/";
       
        $channel_members  = '';
        $line             = '';
        $valid_date_found = false;
       
        $log_file = explode("\n", $_POST['log']);
        $log_file = str_replace('&lt;', '<', str_replace('&gt;', '>', $log_file));
        $log_file = str_replace('Shadow Knight', 'Shadow_Knight', $log_file);
        $line_count = sizeof($log_file);
       
        // Go through each line and
        //      - Check for/get a valid member in the /who
        //      - Check if there's a valid date we can use
        //      - Check for/get valid members from /list <channel>

        $log_date = array();
        session_start(); // Hold our array of name => class/level/race
        for ( $i = 0; $i < $line_count; $i++ )
        {
            $line = '';
            if ( (isset($_POST['findall'])) || (strpos($log_file[$i], '<')) )
            {
                $member_name = $this->line_parse($log_file[$i]);

                // Make sure that each member's name is properly capitalized
                $mname = strtolower(preg_replace('/[[:space:]]/i', ' ', $member_name));
                $member_name = ucwords($mname);

                if ( trim($member_name) != '')
                {
                    $member_names[] = $member_name;
                }
            }
           
            // Check if there's a usable date/time in this string
            if ( preg_match( $usable_date , $log_file[$i], $pre_log_date) )
            {
                if ( isset($pre_log_date[0]) )
                {
                    $log_date = $pre_log_date;
                }
                $valid_date_found = true;
            }
             
            // Check if the log contains channel information we can use
            if (preg_match("/Channel (.+)\(([0-9]{1,5})\) members\:/", $log_file[$i], $num_members))
            {
                $first_chan_line = ($i+1);
                $channel_lines = (($num_members[2] % 10) == 0) ? $num_members[2] / 10 : floor($num_members[2] / 10) + 1;
                $last_chan_line = ($i + $channel_lines + 1);
                for ( $j = $first_chan_line; $j < $last_chan_line; $j++ )
                {
                    $line = preg_replace("/\[[A-Za-z]{3} [A-Za-z]{3} [0-9]{2} [0-9]{2}\:[0-9]{2}\:[0-9]{2} [0-9]{4}\]/", '', $log_file[$j]);
                    $line = preg_replace("/[^A-Za-z\,[:space:]]/", '', $line);
                    if ($j != $channel_lines)
                    {
                        $line = str_replace("\n", ', ', $line);
                    }
                    $channel_members .= $line;
                }
            }

   if (isset ($log_file[$i]) ) {
      $line_to_read = str_replace("\t", ' ', $log_file[$i]);
   }

   if (preg_match("/^[0-9]{1,2} (.+) ([0-9]{1,2}) ([a-z A-Z]+)/", $line_to_read, $raid_line))
     {
      $memberName  = $raid_line[1];
      $memberLevel = $raid_line[2];
      $memberClass = $raid_line[3];
           $line = preg_replace("/ Group Leader/", '', $memberClass);
           $line = preg_replace("/ Raid Leader/", '', $line);
      $memberClass = $line;

      if ( $memberClass == 'Shadow' ) {
      $memberClass = 'Shadow Knight';
      }

      if ( !($this->original_class($memberClass) == "")) {
      $memberClass = $this->original_class($memberClass);
     }
           
      $_SESSION[$memberName] = array(
       'name'  => $memberName,
       'race'  => 'Unknown',
       'level' => $memberLevel,
       'class' => $memberClass,
      );

      // add member's name to the array
      $member_names[] = $memberName;


     }


      } // for ... log_file

       
        // If there were channel members, join the two arrays
        if ( !empty($channel_members) )
        {
            $channel_members = explode(', ', $channel_members);
            $member_names = array_merge($member_names, $channel_members);
        }
       
        if ( $valid_date_found )
        {
            $date['mo'] = $log_date[2];
            $date['d']  = $log_date[3];
            $date['y']  = $log_date[7];
            $date['h']  = $log_date[4];
            $date['mi'] = $log_date[5];
            $date['s']  = $log_date[6];
        }
        else
        {
            $date['mo'] = date('M');
            $date['d']  = date('d');
            $date['y']  = date('Y');
            $date['h']  = date('h');
            $date['mi'] = date('i');
            $date['s']  = date('s');
        }
       
        // Process the member_names array: replaces spaces, make it unique, sort it and reset it
        if ( (isset($member_names)) && (is_array($member_names)) )
        {
            $name_count = sizeof($member_names);
        }
        else
        {
            $name_count = 0;
            $member_names = array();
        }
       
        for ( $i = 0; $i < $name_count; $i++ )
        {
            $member_names[$i] = str_replace(' ', '', $member_names[$i]);
        }
        $member_names = array_unique($member_names);
        sort($member_names);
        reset($member_names);
       
        $tpl->assign_vars(array(
            'S_STEP1'         => false,
            'L_FOUND_MEMBERS' => sprintf($user->lang['found_members'], $line_count, sizeof($member_names)),
            'L_LOG_DATE_TIME' => $user->lang['log_date_time'],
            'L_LOG_ADD_DATA'  => $user->lang['log_add_data'],
           
            'FOUND_MEMBERS' => implode("\n", $member_names),
            'MO'            => $this->M_to_n($date['mo']),
            'D'             => $date['d'],
            'Y'             => $date['y'],
            'H'             => $date['h'],
            'MI'            => $date['mi'],
            'S'             => $date['s'])
        );
       
        $eqdkp->set_vars(array(
            'page_title'        => sprintf($user->lang['title_prefix'], $eqdkp->config['guildtag'], $eqdkp->config['dkp_name']).': '.$user->lang['parselog_title'],
            'gen_simple_header' => true,
            'template_file'     => 'admin/parse_Everquest.html',
            'display'           => true)
        );
    }
   
    // ---------------------------------------------------------
    // Process helper methods
    // ---------------------------------------------------------
    function line_parse($log_line)
    {
        global $db, $eqdkp, $user;
        static $member_ranks = array();
       
        $log_line = stripslashes($log_line);
       
        // Build a clean array of guildtags we might be looking for
        $parsetags = explode("\n", $eqdkp->config['parsetags']);
        foreach ( $parsetags as $k => $v )
        {
            $parsetags[$k] = trim(stripslashes($v));
        }
       
        // Cache the member name / member rank info
        if ( @sizeof($member_ranks) == 0 )
        {
            $sql = 'SELECT r.rank_name, m.member_name
                    FROM ' . MEMBER_RANKS_TABLE . ' r, ' . MEMBERS_TABLE . ' m
                    WHERE (r.rank_id = m.member_rank_id)
                    ORDER BY m.member_name';
            $result = $db->query($sql);
            while ( $row = $db->fetch_record($result) )
            {
                $member_ranks[ $row['member_name'] ] = 'r_' . str_replace(' ', '_', trim($row['rank_name']));
            }
            $db->free_result($result);
        }
       
        $name_check = false;
        $role_check = true;
        $rank_check = true;

   /* New EQ /who format
[Fri Apr 29 20:45:08 2005] Logging to 'eqlog.txt' is now *ON*.
[Fri Apr 29 20:45:09 2005] Players on EverQuest:
[Fri Apr 29 20:45:09 2005] ---------------------------
[Fri Apr 29 20:45:09 2005] [63 Warlock (Necromancer)] Volac (Dark Elf) <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [66 Maestro (Bard)] Willowwhisper (Wood Elf) <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [ANONYMOUS] Premus  <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [65 Storm Warden (Druid)] Whispering (Wood Elf) <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [65 Prophet (Shaman)] Cuzak (Troll) <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [64 Virtuoso (Bard)] Case (Half Elf) <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [ANONYMOUS] Aspenelder  <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [67 Forest Stalker (Ranger)] Hatteras (Wood Elf) <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [67 Archon (Cleric)] Kelee (High Elf) <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [66 Storm Warden (Druid)] Branson (Wood Elf) <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [66 Overlord (Warrior)] Damilex (Human) <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [66 Lord Protector (Paladin)] Hafgun (Human) <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [54 Primalist (Beastlord)] Sistakitty (Vah Shir) <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [66 Arch Convoker (Magician)] Torgen (High Elf) <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [63 Phantasmist (Enchanter)] Merlinycus (Erudite) <Aurora Spirits>
[Fri Apr 29 20:45:09 2005] [66 Forest Stalker (Ranger)] Xlifex (Wood Elf) <Storm Rider Rebellion>
[Fri Apr 29 20:45:09 2005] [ANONYMOUS] Misser  <Storm Rider Rebellion>
   */
       
        // Date
        $pattern  = "/\[[a-zA-Z]{3} [a-zA-Z]{3} [0-9]{2} [0-9]{2}\:[0-9]{2}\:[0-9]{2} [0-9]{4}\]";
        // AFK
        $pattern .= ".*(AFK )?";
        // Level / Class (if findall or findrole is set, we can check for ANONYMOUS people, too)
        // $pattern .= ( (isset($_POST['findall'])) || (isset($_POST['findrole'])) ) ? "\[(ANONYMOUS|([0-9]{1,2})(.+))\]" : "\[([0-9]{1,2})(.+)\]";
        $pattern .= ( (isset($_POST['findall'])) || (isset($_POST['findrole'])) ) ? "\[(ANONYMOUS|([0-9]{1,2})(.+) (.+))\]" : "\[([0-9]{1,2})(.+) (.+)\]";
        // Name
        $pattern .= " ([A-Za-z]{1,})";
        // Race
        $pattern .= "( \(.*\))?";
        // Guild (ignored if we're finding EVERYONE in the log, regardless of tag)
        if ( !isset($_POST['findall']) )
        {
            $guildtag_sep = '';
            $pattern .= ".*\<(";
            foreach ( $parsetags as $guildtag )
            {
                if ( isset($_POST[str_replace(' ', '_', $guildtag)]) )
                {
                    $pattern .= $guildtag_sep . $guildtag;
                    $guildtag_sep = '|';
                }
            }
            $pattern .= ")\>";
        }
        $pattern .= '/';
       
        if ( preg_match($pattern, $log_line, $log_parsed) )
        {
            // 0 = full string
            // 1 = AFK?
            // 2 = ANONYMOUS | 'XX Class (archtype)'
            // 3 = Level
            // 4 = Class
            // 5 = (Archtype)
       // 6 = Name
            // 7 = (Race)

       $log_parsed[5] = str_replace('_', ' ', $log_parsed[5]);
            $name  = trim($log_parsed[6]);
            $level = trim($log_parsed[3]);
            $class = trim($log_parsed[4]);
            $race  = ( isset($log_parsed[7]) ) ? trim(str_replace(')', '', str_replace('(', '', $log_parsed[7]))) : '';
            $archtype  = ( isset($log_parsed[5]) ) ? trim(str_replace(')', '', str_replace('(', '', $log_parsed[5]))) : '';

       if ( $archtype == 'Shadow' ) {
        $archtype = 'Shadow Knight';
       }
   
       if ( isset($log_parsed[2]) && ($log_parsed[2] == 'ANONYMOUS')) {

      $class = "Unknown";
      $archtype = "Unknown";
      $race = "Unknown";
      $level = '1';
          
      $log_parsed[2] = 'Unknown' ;

       }
      
   
            if ( !isset($_POST['findrole']) )
            {
                if ( (isset($log_parsed[2])) && ($log_parsed[2] == 'ANONYMOUS') )
                {
                    $role_check = false;
                }
            }
         
            if ( (isset($log_parsed[6])) && ($log_parsed[6] != '') )
            {
                $name_check = true;
            }
           
            // Check if we're including this member's rank
            if ( isset($member_ranks[$name]) )
            {
                // If POST[r_<rank_name>] isn't set, we're ignoring this member
                if ( !isset($_POST[ $member_ranks[$name] ]) )
                {
                    $rank_check = false;
                }
            }
           
            if ( ($name_check) && ($role_check) && ($rank_check) )
            {
                $_SESSION[$name] = array(
                    'name'  => $name,
                    'level' => $level,
                    'class' => $archtype,
                    'race'  => $race);
                   
                return $log_parsed[6];
            }
        }
        return false;
    }
   
    function M_to_n($m)
    {
        switch($m)
        {
            case 'Jan':
                return '01';
                break;
            case 'Feb':
                return '02';
                break;
            case 'Mar':
                return '03';
                break;
            case 'Apr':
                return '04';
                break;
             case 'May':
                return '05';
                break;
             case 'Jun':
                return '06';
                break;
             case 'Jul':
                return '07';
                break;
             case 'Aug':
                return '08';
                break;
             case 'Sep':
                return '09';
                break;
             case 'Oct':
                return '10';
                break;
             case 'Nov':
                return '11';
                break;
             case 'Dec':
                return '12';
                break;
        }
    }
   
    function original_class($class)
    {
        $classes = array(
            'Bard'          => array('Bard','Minstrel','Troubadour','Virtuoso','Maestro'),
            'Beastlord'     => array('Beastlord','Primalist','Animist','Savage Lord','Feral Lord'),
            'Berserker'     => array('Berserker','Brawler','Vehement','Rager','Fury'),
            'Cleric'        => array('Cleric','Vicar','Templar','High Priest','Archon'),
            'Druid'         => array('Druid','Wanderer','Preserver','Hierophant','Storm Warden'),
            'Enchanter'     => array('Enchanter','Illusionist','Beguiler','Phantasmist','Coercer'),
            'Magician'      => array('Magician','Elementalist','Conjurer','Arch Mage','Arch Convoker'),
            'Monk'          => array('Monk','Disciple','Master','Grandmaster','Transcendent'),
            'Necromancer'   => array('Necromancer','Heretic','Defiler','Warlock','Arch Lich'),
            'Paladin'       => array('Paladin','Cavalier','Knight','Crusader','Lord Protector'),
            'Ranger'        => array('Ranger','Pathfinder','Outrider','Warder','Hunter','Forest Stalker'),
            'Rogue'         => array('Rogue','Rake','Blackguard','Assassin','Deceiver'),
            'Shadow Knight' => array('Scourge Knight','Shadow Knight','Reaver','Revenant','Grave Lord','Dread Lord'),
            'Shaman'        => array('Shaman','Mystic','Luminary','Oracle','Prophet'),
            'Warrior'       => array('Warrior','Champion','Myrmidon','Warlord','Overlord'),
            'Wizard'        => array('Wizard','Channeler','Evoker','Sorcerer','Arcanist')
        );
       
        foreach ( $classes as $k => $v)
        {
            if ( in_array($class, $v) )
            {
                return $k;
            }
        }
       
        return false;
    }
   
    // ---------------------------------------------------------
    // Display form
    // ---------------------------------------------------------
    function display_form()
    {
        global $db, $eqdkp, $user, $tpl, $pm;
        global $SID;
       
        $log_columns = ( preg_match("/Mozilla\/4\.[1-9]{1}.+/", $_SERVER['HTTP_USER_AGENT']) ) ? '50' : '90';
       
        // Options to parse
        $options = array(
            0 => array(
                'CBNAME'    => 'findall',
                'CBVALUE'   => '1',
                'CBCHECKED' => '',
                'OPTION'    => $user->lang['log_find_all']),
            1 => array(
                'CBNAME'    => 'findrole',
                'CBVALUE'   => '1',
                'CBCHECKED' => ' checked="checked"',
                'OPTION'    => 'Include Roleplay')
        );
       
        // Guildtags to parse
        if ( !empty($eqdkp->config['parsetags']) )
        {
            $parsetags = explode("\n", $eqdkp->config['parsetags']);
            foreach ( $parsetags as $index => $guildtag )
            {
                $tagoptions[] = array(
                    'CBNAME'    => str_replace(' ', '_', trim($guildtag)),
                    'CBVALUE'   => '1',
                    'CBCHECKED' => ' checked="checked"',
                    'OPTION'    => '&lt;' . trim($guildtag) . '&gt;');
            }
            $options = array_merge($options, $tagoptions);
        }
       
        foreach ( $options as $row )
        {
            $tpl->assign_block_vars('options_row', $row);
        }
       
        // Member tags to parse
        // Find out how many members have each rank
        $rank_counts = array();
        $sql = 'SELECT member_rank_id, count(member_rank_id) as count
                FROM ' . MEMBERS_TABLE . '
                GROUP BY member_rank_id';
        $result = $db->query($sql);
        while ( $row = $db->fetch_record($result) )
        {
            $rank_counts[ $row['member_rank_id'] ] = $row['count'];
        }
        $db->free_result($result);
       
        $ranks = array();
        $sql = 'SELECT rank_id, rank_name, rank_prefix, rank_suffix
                FROM ' . MEMBER_RANKS_TABLE . '
                ORDER BY rank_name';
        $result = $db->query($sql);
        while ( $row = $db->fetch_record($result) )
        {
            // Make sure there's not a guildtag with the same name as the rank
            if ( !in_array($row['rank_name'], $options) )
            {
                $rank_count = ( isset($rank_counts[ $row['rank_id'] ]) ) ? $rank_counts[ $row['rank_id'] ] : 0;
                $format = ( $rank_count == 1 ) ? $user->lang['x_members_s'] : $user->lang['x_members_p'];
               
                $ranks[] = array(
                    'CBNAME'    => 'r_' . str_replace(' ', '_', trim($row['rank_name'])),
                    'CBVALUE'   => intval($row['rank_id']),
                    'CBCHECKED' => ' checked="checked"',
                    'OPTION'    => $user->lang['rank'] . ': ' . (( empty($row['rank_name']) ) ? '(None)' : $row['rank_prefix'] . $row['rank_name'] . $row['rank_suffix'])
                                   . ' <span class="small">(' . sprintf($format, $rank_count) . ')</span>');
            }
        }
        $db->free_result($result);
       
        foreach ( $ranks as $row )
        {
            $tpl->assign_block_vars('ranks_row', $row);
        }
       
        $tpl->assign_vars(array(
            'F_PARSE_LOG'    => 'parse_Everquest.php' . $SID,
           
            'S_STEP1'        => true,
            'L_PASTE_LOG'    => $user->lang['paste_log'],
            'L_OPTIONS'      => $user->lang['options'],
            'L_PARSE_LOG'    => $user->lang['parse_log'],
            'L_CLOSE_WINDOW' => $user->lang['close_window'],
           
            'LOG_COLS' => $log_columns)
        );
       
        $eqdkp->set_vars(array(
            'page_title'        => sprintf($user->lang['title_prefix'], $eqdkp->config['guildtag'], $eqdkp->config['dkp_name']).': '.$user->lang['parselog_title'],
            'gen_simple_header' => true,
            'template_file'     => 'admin/parse_Everquest.html',
            'display'           => true)
        );
    }
}

$parse_log = new Parse_Log;
$parse_log->process();
?>



Thank you for your time and a great looking system.
I hope to implement EQdkp+ very soon if possible


Testing on Localhost
Eqdkp-plus v6.3.5
Raid-Log-Importer v0.5.5.3
Php v5.2.9
Webhost- Localhost ....once I go live, it will be Ipowerweb.com



Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 21 posts ]  Go to page 1, 2, 3  Next

All times are UTC + 1 hour


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  

(C) The EQdkp-Plus Developer Team
EQdkp Plus Template by Ramon Kaes