So, I've been very idly looking at coding an EPGP implementation for DKPMon/Bidder. Yes, I know the people who came up with EPGP maintain their own addon implementation, but as that only syncs across the players guild and the author has no intention of creating something more flexible it's completely useless for my purposes. The raiders in my guild are currently spread across 4-5 different raid forces, each of which in turn contain members from multiple guilds, the concepts of guild and raid group don't really overlap much on my dear server, and I digress.
Brief system summary: EPGP has the raid arbitrarily award members Effort Points as it sees fit, arbitrarily award item winners Gear Points for gear taken and on any given item the bidding player whose EP/GP is the highest wins.
Now, I'm not exactly an expert programmer - mostly familliar with doing physical simulations and approximations in Matlab rather than working with more abstract data structures like this - but far as I can tell from checking the docs and lua DKPmon generally operates assuming points spent are subtracted from points earned to arrive at a dkp value. Here, points earned are instead effectively divided by points spent to arrive at a dkp value, which isn't quite supported by the DKPmon backend. I've got three choices, listed here in inverse order of preference...
1: Stick to one raid = one pool. Do a really, really ugly hack to arrive at EP/GP by messing around with db.spent & db.earned.
2: Use two pools per raid, one for EP and one for GP. Create a bloated mess of a DKP system addon that juggles both.
3: Nag at you, dear author, to pretty please implement db.GetPointsEarned(bidname,pool) and db.GetPointsSpent(bidname,pool), then write a proper implementation. :)
I guess basically what I'd like to know is if adding functions to get earned and spent is doable in the back end and if using those as a basis for an implementation is a reasonable approach? Or d'you think I'm barking up the wrong tree here and should go about this some other way?
Also, small side note: as mentioned I and my guildmates raid in quite a variety of raid groups and I notice DKPmon can be used to sync over guild and not just raid. If multiple raid groups within the guild started using DKPmon could these syncs get messy? I'm guessing we'd get a few entries for people in other raid groups entered into our database, would that also mean that we could potentially edit those entries and later sync our edits into the other groups' databases?
<snip>
3: Nag at you, dear author, to pretty please implement db.GetPointsEarned(bidname,pool) and db.GetPointsSpent(bidname,pool), then write a proper implementation. :)
Done, done, and done. As with pretty much all my drycoded stuff, it's untested but should work just fine.
You now have:
DKPmon.PointsDB:GetEarned(name, pool)
and
DKPmon.PointsDB:GetSpent(name, pool)
Also, small side note: as mentioned I and my guildmates raid in quite a variety of raid groups and I notice DKPmon can be used to sync over guild and not just raid. If multiple raid groups within the guild started using DKPmon could these syncs get messy? I'm guessing we'd get a few entries for people in other raid groups entered into our database, would that also mean that we could potentially edit those entries and later sync our edits into the other groups' databases?
DKPmon doesn't do anything over guild comm channels for precisely this reason; I figured there'd be raiding alliances still, even with a 25-person raid cap. So, all syncing is done via the hidden addon comm channel for raids. If each of your multiple raids are 100% disjoint -- that is each raid has a separate point pool, and each player has a different DKP amount in each raid -- then things can get messy if you're not careful; since I only use the player's name to index their point totals, you could mess stuff up if you sync different raids together. But, you can just use different sync passwords for each raid to hopefully remove that possibility. If the DKP totals for each raid are not disjoint, then just have the multiple raid leaders joint the same raid at some point and do a sync -- everything'll be nice and up to date after that.
edit (May 1): Wasn't thinking... the standby check is done over guild channels. So, you might run into problems with standby points in a multiguild raid.
I've been reading through the thread and the site and i love what you're doing. I used to use Rise and Shine DKP manager but it's been discontinued and i'm looking to use this instead. However i can't make heads or tails on 2 things or so:
[EDIT]
Oke got the add ons working but came across two more probs ;p
How do i get the Zero Sum Auction to work properly? It doesn't seem to deduct/distribute the points properly. And if i use the point dialogue to award points it awards it to all plays instead of the one i selected (this maybe because of the amend pool function?)
Also how do i get rid of the variables currently stored after testing?
I've been reading through the thread and the site and i love what you're doing. I used to use Rise and Shine DKP manager but it's been discontinued and i'm looking to use this instead. However i can't make heads or tails on 2 things or so:
[EDIT]
Oke got the add ons working but came across two more probs ;p
How do i get the Zero Sum Auction to work properly? It doesn't seem to deduct/distribute the points properly. And if i use the point dialogue to award points it awards it to all plays instead of the one i selected (this maybe because of the amend pool function?)
Also how do i get rid of the variables currently stored after testing?
Brena
How is the zero sum auction not working properly for you? Can you give me a step-by-step of what you're doing, what you expect to see at the end, and what you're actually getting?
To delete saved information after you've been playing around, just delete the saved variables file for DKPmon (<WoW folder>\WTF\<account name>\SavedVariables\DKPmon.lua).
Well people bid on an item, i close the auction, assign the item to the winner and this is where it get's fuzzy. What am i supposed to do after this to make sure the raid get's the proper points ? I tried the adding the console points but not sure if that has the proper effect cause i get some weird numbers
Well people bid on an item, i close the auction, assign the item to the winner and this is where it get's fuzzy. What am i supposed to do after this to make sure the raid get's the proper points ? I tried the adding the console points but not sure if that has the proper effect cause i get some weird numbers
Unfortunately "I get weird numbers" doesn't point me towards where the error might be. ex: If you have 1 item worth 100 points that was won, and 4 people in the raid does each player get 25 points? If not, what are they getting?
For the zero-sum auction modules, the steps for loot distribution are:
1) Open bidding
2) Close bidding
3) Pick your winners
4) Select "Announce winners"
5) Distribute the items to the winners
6) Select "Deduct points" -- this step tells the zero-sum part of the module how many points were distributed as loot.
7) Go to the award frame; you should now have the option of selecting the points that you just distributed -- it'll be the name of the boss that dropped the stuff, or "Console" if you were using the "/dkp biditem" command.
8 ) Select the players in the raid/standby that are to receive points.
9) Click the button to award points.
10) Bask in a job well done. :-)
Today in Karazhan I get disconnected from the server _every_ time I try to broadcast the Database to my officers.
Been using DKPmon for more than a month, first time I have this problem.
Only thing that is different is that I'm masterlooter and assistant, instead of being raidleader and masterlooter as usual.
I have latest standing versions, as have my guild and other officers.
Edit: I have no idea how to help you debug this thing as I get no error message whatsoever.
When I click "Broadcast database" I get disconnected.
Today in Karazhan I get disconnected from the server _every_ time I try to broadcast the Database to my officers.
Been using DKPmon for more than a month, first time I have this problem.
Only thing that is different is that I'm masterlooter and assistant, instead of being raidleader and masterlooter as usual.
I have latest standing versions, as have my guild and other officers.
Edit: I have no idea how to help you debug this thing as I get no error message whatsoever.
When I click "Broadcast database" I get disconnected.
<cry> It's one of 2 things:
1) There was a change to the AceComm library that fubar'd things.
2) Blizzard has altered the number of messages you can send before you're considered to be spamming; you're disconnected from the server when they decide that you're spamming too many messages.
I just looked through the commit logs for AceComm, and there's nothing in there that makes me think that it's (1). The last change to AceComm was Apr 28 (last Saturday), and it seems to be an innocent change.
My money's on (2). If you'd like to test it, you can play with the values of ChatThrottleLib.MAX_CPS and ChatThrottleLib.BURST in your local AceComm-2.0.lua. If you make them really low (I dunno, half them or something) do the disconnects go away?
I'll try that, but I'm running my addons embedded.. so to be sure I'd have to edit all 7 addons that use AceComm
(as I'm not sure which instance remains loaded).
Anyway, I'll test and get back to you.
Btw, being raidleader or assistant made no difference (I'm sure you already knew it's irrelevant).
Also the disconnect happens regardless who initiates the sync.
If someone else selects "Initiate Database Synchronization" I still get disconnected the moment I agree to send my DB over.
So, I've been very idly looking at coding an EPGP implementation for DKPMon/Bidder.
How is your work coming along as I really would love to have this plugin.
Was thinking of writing it myself as EPGP is what we want in our raidgroup but cant use due to different guilds.
There is no "after".
If I try to broadcast database I get disconnected, others don't get the prompt.
If another "initiates sync" I get disconnected when I accept the request, again no one gets my database.
There is no "after".
If I try to broadcast database I get disconnected, others don't get the prompt.
If another "initiates sync" I get disconnected when I accept the request, again no one gets my database.
Sorry for the long delay, I'm in the middle of candidacy exams so my schedule's been a bit whacky. I tried out a broadcast on the Deathwing server the other day, and unfortunately, it worked fine. :-/ Have you had any luck with playing with the AceComm parameters that I mentioned earlier?
Apologies for not getting back to you.
It is going to be one of those bugs that are hard to track down, I don't think you should bother with it.
The disconnects only happened with a specific database.
Next raid another couple items dropped and the database changed.
Next attempt to transmit worked fine, all I can guess at is that there was some problem with the stream transmitted.
Now as I didn't like having the only copy of the database when I was having the disconnection problem I had made a csv export and attached that on my guild forum for other officers to get and do an import.
For that week and with that specific database the disconnects happened with 100% consistency.
Since the database changed I haven't had the problem :$.
If you want to pursue this further I could PM you the csv export... but I don't think it's worth the trouble.
The AceComm parameters were after all irrelevant.
(changing them to half the value didn't help while I had the "problematic" DB, and after DB changed I have no problem with the original throttling)
How is your work coming along as I really would love to have this plugin.
Was thinking of writing it myself as EPGP is what we want in our raidgroup but cant use due to different guilds.
Err, honestly not sure :)
I've basically rewritten the FCZS-plugins to do basic EPGP - no methods for decay yet, the rest of the logic is in - however whenever I actually try to call self:GetEarned() or self:GetSpent() rather than self:GetPlayerPoints() I'm told the method cannot be found. Currently trying figure out why, but my knowledge of inheritance in ace is weak and I am lazy, so work is sorta stalled. Hopefully I'll get there, but I'm definitely not going to post a schedule ...
Edit: Attaching code, in case anyone feels compelled to work on it. Lines 163, 308 and 309 in DKPmon_EPGP's epgp.lua-file need to be modified to use GetEarned and GetSpent and then convinced to work as they should and that's about it.
How is your work coming along as I really would love to have this plugin.
Was thinking of writing it myself as EPGP is what we want in our raidgroup but cant use due to different guilds.
Err, honestly not sure :)
I've basically rewritten the FCZS-plugins to do basic EPGP - no methods for decay yet, the rest of the logic is in - however whenever I actually try to call self:GetEarned() or self:GetSpent() rather than self:GetPlayerPoints() I'm told the method cannot be found. Currently trying figure out why, but my knowledge of inheritance in ace is weak and I am lazy, so work is sorta stalled. Hopefully I'll get there, but I'm definitely not going to post a schedule ...
Edit: Attaching code, in case anyone feels compelled to work on it. Lines 163, 308 and 309 in DKPmon_EPGP's epgp.lua-file need to be modified to use GetEarned and GetSpent and then convinced to work as they should and that's about it.
You have 2 options:
1) Change "self:GetEarned()" and "self:GetSpent()" to "DKPmon.PointsDB:GetEarned()" and "DKPmon.PointsDB:GetSpent()" respectively. The module's base class has a function called "GetPlayerPoints()" that just calls "DKPmon.PointsDB:GetPlayerPoints()" -- which is why you can call it with "self:" instead; no such functions exist for ":GetEarned()" and ":GetSpent()".
2) Add a function, like so, to your plugin and just leave all of the ":GetPlayersPoints()" calls in the FCZS module untouched. Take a look in "DKPmon/DKPSystems/baseclass.lua" to see the interface for a module -- including the couple of supplied base functions.
function DKPmon_EPGP.prototype:GetPlayerPoints(name, pool)
return DKPmon.PointsDB:GetSpent() / DKPmon.PointsDB:GetEarned()
end
Since there's no readme file in the php folder of the dkpmon_eqdkp I am assuming the php file to export into game is put into the eqdkp root directory?
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
Brief system summary: EPGP has the raid arbitrarily award members Effort Points as it sees fit, arbitrarily award item winners Gear Points for gear taken and on any given item the bidding player whose EP/GP is the highest wins.
Now, I'm not exactly an expert programmer - mostly familliar with doing physical simulations and approximations in Matlab rather than working with more abstract data structures like this - but far as I can tell from checking the docs and lua DKPmon generally operates assuming points spent are subtracted from points earned to arrive at a dkp value. Here, points earned are instead effectively divided by points spent to arrive at a dkp value, which isn't quite supported by the DKPmon backend. I've got three choices, listed here in inverse order of preference...
1: Stick to one raid = one pool. Do a really, really ugly hack to arrive at EP/GP by messing around with db.spent & db.earned.
2: Use two pools per raid, one for EP and one for GP. Create a bloated mess of a DKP system addon that juggles both.
3: Nag at you, dear author, to pretty please implement db.GetPointsEarned(bidname,pool) and db.GetPointsSpent(bidname,pool), then write a proper implementation. :)
I guess basically what I'd like to know is if adding functions to get earned and spent is doable in the back end and if using those as a basis for an implementation is a reasonable approach? Or d'you think I'm barking up the wrong tree here and should go about this some other way?
Also, small side note: as mentioned I and my guildmates raid in quite a variety of raid groups and I notice DKPmon can be used to sync over guild and not just raid. If multiple raid groups within the guild started using DKPmon could these syncs get messy? I'm guessing we'd get a few entries for people in other raid groups entered into our database, would that also mean that we could potentially edit those entries and later sync our edits into the other groups' databases?
Done, done, and done. As with pretty much all my drycoded stuff, it's untested but should work just fine.
You now have:
DKPmon.PointsDB:GetEarned(name, pool)
and
DKPmon.PointsDB:GetSpent(name, pool)
DKPmon doesn't do anything over guild comm channels for precisely this reason; I figured there'd be raiding alliances still, even with a 25-person raid cap. So, all syncing is done via the hidden addon comm channel for raids. If each of your multiple raids are 100% disjoint -- that is each raid has a separate point pool, and each player has a different DKP amount in each raid -- then things can get messy if you're not careful; since I only use the player's name to index their point totals, you could mess stuff up if you sync different raids together. But, you can just use different sync passwords for each raid to hopefully remove that possibility. If the DKP totals for each raid are not disjoint, then just have the multiple raid leaders joint the same raid at some point and do a sync -- everything'll be nice and up to date after that.
edit (May 1): Wasn't thinking... the standby check is done over guild channels. So, you might run into problems with standby points in a multiguild raid.
-Eraslin
I've been reading through the thread and the site and i love what you're doing. I used to use Rise and Shine DKP manager but it's been discontinued and i'm looking to use this instead. However i can't make heads or tails on 2 things or so:
[EDIT]
Oke got the add ons working but came across two more probs ;p
How do i get the Zero Sum Auction to work properly? It doesn't seem to deduct/distribute the points properly. And if i use the point dialogue to award points it awards it to all plays instead of the one i selected (this maybe because of the amend pool function?)
Also how do i get rid of the variables currently stored after testing?
Brena
How is the zero sum auction not working properly for you? Can you give me a step-by-step of what you're doing, what you expect to see at the end, and what you're actually getting?
To delete saved information after you've been playing around, just delete the saved variables file for DKPmon (<WoW folder>\WTF\<account name>\SavedVariables\DKPmon.lua).
Unfortunately "I get weird numbers" doesn't point me towards where the error might be. ex: If you have 1 item worth 100 points that was won, and 4 people in the raid does each player get 25 points? If not, what are they getting?
Last time I checked it was working, but this wouldn't be the first time I've encountered Heisenbugs (http://en.wikipedia.org/wiki/Heisenbug)... :-(
For the zero-sum auction modules, the steps for loot distribution are:
1) Open bidding
2) Close bidding
3) Pick your winners
4) Select "Announce winners"
5) Distribute the items to the winners
6) Select "Deduct points" -- this step tells the zero-sum part of the module how many points were distributed as loot.
7) Go to the award frame; you should now have the option of selecting the points that you just distributed -- it'll be the name of the boss that dropped the stuff, or "Console" if you were using the "/dkp biditem" command.
8 ) Select the players in the raid/standby that are to receive points.
9) Click the button to award points.
10) Bask in a job well done. :-)
Are these the steps you're following?
thanks ^^
Been using DKPmon for more than a month, first time I have this problem.
Only thing that is different is that I'm masterlooter and assistant, instead of being raidleader and masterlooter as usual.
I have latest standing versions, as have my guild and other officers.
Edit: I have no idea how to help you debug this thing as I get no error message whatsoever.
When I click "Broadcast database" I get disconnected.
<cry> It's one of 2 things:
1) There was a change to the AceComm library that fubar'd things.
2) Blizzard has altered the number of messages you can send before you're considered to be spamming; you're disconnected from the server when they decide that you're spamming too many messages.
I just looked through the commit logs for AceComm, and there's nothing in there that makes me think that it's (1). The last change to AceComm was Apr 28 (last Saturday), and it seems to be an innocent change.
My money's on (2). If you'd like to test it, you can play with the values of ChatThrottleLib.MAX_CPS and ChatThrottleLib.BURST in your local AceComm-2.0.lua. If you make them really low (I dunno, half them or something) do the disconnects go away?
(as I'm not sure which instance remains loaded).
Anyway, I'll test and get back to you.
Btw, being raidleader or assistant made no difference (I'm sure you already knew it's irrelevant).
Also the disconnect happens regardless who initiates the sync.
If someone else selects "Initiate Database Synchronization" I still get disconnected the moment I agree to send my DB over.
How is your work coming along as I really would love to have this plugin.
Was thinking of writing it myself as EPGP is what we want in our raidgroup but cant use due to different guilds.
Does anyone else in your raid get disconnected after synch-ing the database, or just you?
If I try to broadcast database I get disconnected, others don't get the prompt.
If another "initiates sync" I get disconnected when I accept the request, again no one gets my database.
Sorry for the long delay, I'm in the middle of candidacy exams so my schedule's been a bit whacky. I tried out a broadcast on the Deathwing server the other day, and unfortunately, it worked fine. :-/ Have you had any luck with playing with the AceComm parameters that I mentioned earlier?
It is going to be one of those bugs that are hard to track down, I don't think you should bother with it.
The disconnects only happened with a specific database.
Next raid another couple items dropped and the database changed.
Next attempt to transmit worked fine, all I can guess at is that there was some problem with the stream transmitted.
Now as I didn't like having the only copy of the database when I was having the disconnection problem I had made a csv export and attached that on my guild forum for other officers to get and do an import.
For that week and with that specific database the disconnects happened with 100% consistency.
Since the database changed I haven't had the problem :$.
If you want to pursue this further I could PM you the csv export... but I don't think it's worth the trouble.
The AceComm parameters were after all irrelevant.
(changing them to half the value didn't help while I had the "problematic" DB, and after DB changed I have no problem with the original throttling)
I hate bugs like that, so I'm more than happy to ignore it. :-D Yay for self-correcting problems!
Err, honestly not sure :)
I've basically rewritten the FCZS-plugins to do basic EPGP - no methods for decay yet, the rest of the logic is in - however whenever I actually try to call self:GetEarned() or self:GetSpent() rather than self:GetPlayerPoints() I'm told the method cannot be found. Currently trying figure out why, but my knowledge of inheritance in ace is weak and I am lazy, so work is sorta stalled. Hopefully I'll get there, but I'm definitely not going to post a schedule ...
Edit: Attaching code, in case anyone feels compelled to work on it. Lines 163, 308 and 309 in DKPmon_EPGP's epgp.lua-file need to be modified to use GetEarned and GetSpent and then convinced to work as they should and that's about it.
You have 2 options:
1) Change "self:GetEarned()" and "self:GetSpent()" to "DKPmon.PointsDB:GetEarned()" and "DKPmon.PointsDB:GetSpent()" respectively. The module's base class has a function called "GetPlayerPoints()" that just calls "DKPmon.PointsDB:GetPlayerPoints()" -- which is why you can call it with "self:" instead; no such functions exist for ":GetEarned()" and ":GetSpent()".
2) Add a function, like so, to your plugin and just leave all of the ":GetPlayersPoints()" calls in the FCZS module untouched. Take a look in "DKPmon/DKPSystems/baseclass.lua" to see the interface for a module -- including the couple of supplied base functions.