Ok seriously cant find any information on how to edit the DKPmon2Export.php file to work for a website anywhere. Can someone that has this working please post some information about how it works and what I have to edit to make it work for my site?
Ok seriously cant find any information on how to edit the DKPmon2Export.php file to work for a website anywhere. Can someone that has this working please post some information about how it works and what I have to edit to make it work for my site?
You have to put it inside your eqdkp's directory - that's all.
I've made a minor modification to deliver utf-8 as for some god-knows-why-reason we have plenty of players that want to make full use of special characters. A .zip version of our dkpMon2Export.php is at http://www.zirkel-der-heftigen.de/dkpMon2Export.zip
Edit your pooltable0 and name it whatever your member table is, if it's default then leave it as is.
Edit poolnames0 and change it to whatever you want it to show as IN GAME, as this will be the imported DB name in the game.
Put the php folder on your website, in the eqdkp folder, and open the page.
Copy the ENTIRE page.
Edit \AddOns\DKPmon_eqDKP\importdata.lua and delete the entire contents, paste in the page you copied and save the file.
Go in game, hit the DKPmon tool and IMPORT.
It will report if it imported correctly or if there was an error in the lua file.
With regard to the CSV import, I have done a spreadsheet that takes the work out of creating your lua strings. Just enter the name, class, level, race and points into five columns, hit a button and you are ready to copy and paste into importdata.lua. The spreadsheet takes care of unprintable characters, unwanted spaces, quotation marks, colons, commas and capitalization.
It may be of limited use, but could come in handy for someone. I used it for my initial import into DKPMon. Email me if you want it.
I have an issue with the EQDKP import as well. The webpage is created fine, and I copy and paste this into importdata.lua. When I select Import in-game, the confirmation box pops up, but when I click "Yes", nothing happens - the db isn't imported and I get no error messages. The confirmation box stays open.
Do any of the addins written for DKPmon look at tier loot and restrict bidding to classes that can use the item? I'm looking to add it to Xero's EPGP addin but need a place to start.
Do any of the addins written for DKPmon look at tier loot and restrict bidding to classes that can use the item? I'm looking to add it to Xero's EPGP addin but need a place to start.
-Vlorn
Mine doesn't but it's certainly doable if you really want to. You'll need to add the restrictions you want to custom.lua's item info for those items in some way, say for example define:
["Leggings of the Fallen Hero"]={value=130, classes={ warlock=true, hunter=true, mage=true }, pool=1}
Then make sure your DKPmon_foo's GetItemInfo() passes that along and finally have Bidder_foo restrict bidding accordingly for all items where dkpinfo.classes ~= nil.
There are likely better specific solutions, this is just off the top of my head.
Does anyone else have the dkp leader set itself to someone else randomly?
Every once in a while someone will wonder why the dkp just changed and it'll be because the dkp leader switched to someone else. This might happen during zone changes, I'm not sure.
I'd like to add the following features to DKPmon to make it more apparent when you lose the leader status:
* Print a message in the General tab whenever the leader switches:
"X is now the dkp leader"
* Make the DKP icon turn gold when you're the raid leader.
Does anyone else have the dkp leader set itself to someone else randomly?
Every once in a while someone will wonder why the dkp just changed and it'll be because the dkp leader switched to someone else. This might happen during zone changes, I'm not sure.
I'd like to add the following features to DKPmon to make it more apparent when you lose the leader status:
* Print a message in the General tab whenever the leader switches:
"X is now the dkp leader"
* Make the DKP icon turn gold when you're the raid leader.
-Javek
It'll happen pretty much any time that the current DKP leader goes unresponsive (longer or poorly timed zone/UI reloads, going offline, leaving the raid, etc). There's a "keepalive" ping sent by the current leader to DKPmon clients every little while (I don't remember how long... 20 seconds?). If no one gets one of those pings for a longer duration, then logic starts up to automatically pick a new leader. Changing that logic a little (so that it'll pick a person promoted to raid lead/assist with the most recent DKP database timestamp) is on my todo list but, in the meantime I can add a :Print() for when the leader changes easy enough.
As for changing the icon to gold... that's a decent idea. I'll have to play with that too.
So I'm working on modding and exsisting mod(EPGP) with the ability to have multiple sub-pools with a single larger pool IE one for hybrid loot and one for class tier loot. The goal is to support sub-pools as a user definable feature while still supporting normal single pool behaviour.
My thought was using pool IDs as n+100 where n is the id of the primary pool and n+100 is the sub-pool, ideally the sub-pools could be hidden from all pool selection screens where they weren't actually required, you would never "select" a sub-pool it would be automatically used and created by selecting the primary pool that had dual pools enabled.
From a functional point of view all points earned by the player will be added to both pools at the same time, loot however, will be deducted from it's appropriate pool only.
So I went into the custom.lua file and added the following;
custom.poolnames = {
[1] = "Discord25man",
[2] = "SecondPool",
[3] = "ThirdPool",
[101] = "Class1",
[102] = "Class2",
[103] = "Class2",
}
(yes, I blatantly ignored the text above this field about pools being indexed sequentially)
After adding some code to add incoming points to pools 1 and 101, I did some testing and took a look at my saved variables file.
Points for pools 1-3 are stored "sequentially" without an index value which I'm assuming is OK as the index value will be automatically added to the table when it is retrieved.
Points for pool 101 are indexed with a value of 101 which is also correct.
The real problem here is the way DKPmon responds to a "QP" command, looking at the code it seems that everytime a QP command is run it returns the points in all pools (or tries to). the query determines the total number of pools then "steps" through them sequentially to get to the points in each pool to return to the bidder. With my configuration it will query and properly return the points for pools 1-3 , but instead of looking for pools 101-103 it will return the values for pools 4-6 which will return a null value.
I envisioned two ways of resolving this both of which would require changes to the the core of DKPmon.
1. Provide a function that allows me to query a specific pool by pool ID within the system or change the "QP" function to handle non-contiguous pool index entires.
2. Allow a descriptor within "custom.poolnames" that allows me to hide the sub-pool from the pool selection choices within the various parts of DKPmon.
There may be a simpler solution to this that I'm just overlooking.
If I understand EPGP correctly, you really only have 3 point pools in your example, right? That is, if you were to make up a webpage/spreadsheet/something to tell your raid members how many points they had then the table would have 3 points columns ("Discord25man", "SecondPool", and "ThirdPool"). With that assumption in mind:
1) Override the function :GetNPools() in your DKP module to return the number of pools "visible" to a normal member of the raid; don't worry about how many subpools there are. In your example, this would be 3 -- as there's only 3 "real" pools, even though each pool is made up of 2 subpools.
2) Override the function :GetPlayerPoints() in your DKP module to calculate the player's points for pool p using whichever subpools are appropriate.
Note: This function will never be called with a pool index greater than that returned by :GetNPools().
2) Override the function :GetPlayerPoints() in your DKP module to calculate the player's points for pool p using whichever subpools are appropriate.
Note: This function will never be called with a pool index greater than that returned by :GetNPools().
I'm a little confused here, do you mean to rewrite the GetPlayerPoints() function in my mod? If so, do you have any thoughts on the best way to code this?
2) Override the function :GetPlayerPoints() in your DKP module to calculate the player's points for pool p using whichever subpools are appropriate.
Note: This function will never be called with a pool index greater than that returned by :GetNPools().
I'm a little confused here, do you mean to rewrite the GetPlayerPoints() function in my mod? If so, do you have any thoughts on the best way to code this?
-Vlorn
Yup, that's exactly what I mean. Take a look at DKPmon/DKPSystems/baseclass.lua -- in there you'll find the default implementation of the :GetPlayerPoints() function for your (and all) DKP system modules. The default's just:
--[[
GetPlayerPoints
Description:
Return the number of points the given player has in the given pool
Input:
name -- string; Name of the player to look up
pool -- number; index of the pool. Must be in the range [1,GetNPools()]
Output:
number -- the number of points the player has.
]]
function DKPmon_DKP_BaseClass.prototype:GetPlayerPoints(name, pool)
return DKPmon.PointsDB:GetPlayerPoints(name, pool)
end
Now, I have no idea how you're using the 2 sub-pools to calculate a single point value for your player. But, let's say that you were calculating it as:
Points for pool N = (pool[N].earned + pool[N+100].earned) / max(pool[N].spent, 1)
Then, your :GetPlayerPoints() function would look like:
function YourBaseClass.prototype:GetPlayerPoints(name, pool)
local tab = DKPmon.PointsDB:GetTable(name)
if tab == nil then return 0 end -- Player had no recorded points, so points = 0
if tab[pool] == nil or tab[pool+100] == nil then return 0 end -- Player has no points recorded for this pool, so points = 0
return (tab[pool].earned + tab[pool+100].earned) / math.max(tab[pool].spent, 1)
end
Eraslin,
So I can pull the points with the DKPmon addon and get to the correct pool. The problem that I'm having now involves the bidder part to pull the points to populate the tooltips for the actual bidder. Looking at the registry.lua file it appears that the QP command also simply "steps" through the point pools based on the GetNpools function. And even if I let the GetNpools function operate normally it fails to pull back the points for the "hidden" pools unless they are indexed sequentially.
I may end up writing the mod to have my class pools be the "even" number indexes and the main pools the preceding "odd" indexed pools, It's not as pretty as i would have liked it but it should work.
Eraslin,
So I can pull the points with the DKPmon addon and get to the correct pool. The problem that I'm having now involves the bidder part to pull the points to populate the tooltips for the actual bidder. Looking at the registry.lua file it appears that the QP command also simply "steps" through the point pools based on the GetNpools function. And even if I let the GetNpools function operate normally it fails to pull back the points for the "hidden" pools unless they are indexed sequentially.
I may end up writing the mod to have my class pools be the "even" number indexes and the main pools the preceding "odd" indexed pools, It's not as pretty as i would have liked it but it should work.
-Vlorn
Okay, so I think I misunderstood what you were doing with the "sub-pools." Are you just having main pools per, say, raid tier then dividing those big pools into a couple of smaller pools?
ex (the labels are unimportant, it's the structure that is):
Main pool = Kara/Gruul/Mag
Subpool1 = Set items
Subpool2 = Non-set items
Main pool = SSC/TK
Subpool1 = Set items
Subpool2 = Non-set items
Main pool = Hyjal/BT
Subpool1 = Set items
Subpool2 = Non-set items
If this is the case, then yes, you need to have your pools numbered consecutively for the users to be able to see their point totals for each "sub-pool." Note that although you might call them "sub-pools" to yourself, as far as DKPmon/Bidder are concerned they're regular pools; you've just imparted some logical partitioning that the addon doesn't actually care about.
The alternative, and what I originally thought you were trying to do, is that for some reason you needed more than 2 numbers to properly calculate points for one pool in EPGP. If this is the case, then you can do the trick that I talked about in my previous post.
Hi,
just looking at making the switch from another DKP addon and I just have a couple of questions. We're using Javek's Boss Auction module (very pleasantly surprised to find a module that mimics our DKP system so closely. Thanks for that one Javek!).
Standby list - how does this function? Can you invite someone from the list by clicking the name or do you have to use standard method? Can people on the standby list earn DKP? In our system, those waiting for a slot in the raid earn half of the points that the raid does.
Winning Anouncement - At the moment once a winner has been selected the announcement is "XXX has won [item y]." Can this be modified to include how much DKP was spent on the item?
Can bids be cancelled?
I've gone through the documentation and this thread, which has answered most of my questions, leaving only these few.
Is there anyway that we can get an in game GUI for entering base point values? I've spent a couple of hours looking at your directions, following them, and then not having them work. I'd love to get my guild to use this for loot, but it just doesn't seem fully functional to me.
Honestly, the CSV import is probably the easiest thing to use that I could have coded. You just do a couple of things, and bam, your database is in place.
1) Install the addon -- DKPmon_CSV
2) Write out your points database in CSV format.
3) Convert said CSV table of point values into an lua table of strings (one string per CSV line), and put said table in importdata.lua of the DKPmon_CSV addon.
4) Use the in-game menu to import the CSV data.
For example. I have a small database with two point pools and 4 people in it:
Warchick, L70 Night Elf Warrior, pool 1 points = 5, pool 2 points = 0
Magedude, L70 Gnome Mage, pool 1 points = 0, pool 2 points = 20
Priestperson, L70 Human Priest, pool 1 points = 2, pool 2 points = -1.4
Iwin, L70 Gnome Warlock, pool 1 points = 10, pool 2 points = 23
Converting to CSV, in the format dictated in importdata.lua (<name>:<class>:<level>:<race>:<point values>...):
Warchick:WARRIOR:70:Night Elf:5:0
Magedude:MAGE:70:Gnome:0:20
Priestperson:PRIEST:70:Human:2:-1.4
Iwin:WARLOCK:70:Gnome:10:23
Captialization is important, it's also important that there be no useless whitespace in the table, and there can't be a trailing ':' at the end of any line.
Last, convert to an lua table (ie: surround each string in quotes, and end each line with a comma) and assign to the DKPmon_CSV_Import_Data table in importdata.lua:
DKPmon_CSV_Import_Data = {
"Warchick:WARRIOR:70:Night Elf:5:0",
"Magedude:MAGE:70:Gnome:0:20",
"Priestperson:PRIEST:70:Human:2:-1.4",
"Iwin:WARLOCK:70:Gnome:10:23",
}
Start up your WoW game, select the CSV import option from the DKPmon Fubar menu (Import Modules -> Points database CSV import), and bam... it's done.
Yeah, after playing around with this it's the sweetest thing around. We can easily pull out the data from our EPGP system on the web and import the CSV file prior to each raid...works beautifully!
This may or may not help some people in getting started with DKPMon
This is a fixedcost file that has all of the known drops from Kara up to Mt Hyjal, with each boss listed.
Of course you'll need to adjust the points, pool, value, etc to meet your needs, but this will save you the trouble of doing the manual add item deal each and every drop and then re-do it if your SV files manages to get wiped for some reason
You have to put it inside your eqdkp's directory - that's all.
Mine would be: http://www.zirkel-der-heftigen.de/dkp/dkpMon2Export.php
I've made a minor modification to deliver utf-8 as for some god-knows-why-reason we have plenty of players that want to make full use of special characters. A .zip version of our dkpMon2Export.php is at http://www.zirkel-der-heftigen.de/dkpMon2Export.zip
Edit your pooltable0 and name it whatever your member table is, if it's default then leave it as is.
Edit poolnames0 and change it to whatever you want it to show as IN GAME, as this will be the imported DB name in the game.
Put the php folder on your website, in the eqdkp folder, and open the page.
Copy the ENTIRE page.
Edit \AddOns\DKPmon_eqDKP\importdata.lua and delete the entire contents, paste in the page you copied and save the file.
Go in game, hit the DKPmon tool and IMPORT.
It will report if it imported correctly or if there was an error in the lua file.
It may be of limited use, but could come in handy for someone. I used it for my initial import into DKPMon. Email me if you want it.
:)
Any ideas?
-Vlorn
Mine doesn't but it's certainly doable if you really want to. You'll need to add the restrictions you want to custom.lua's item info for those items in some way, say for example define:
Then make sure your DKPmon_foo's GetItemInfo() passes that along and finally have Bidder_foo restrict bidding accordingly for all items where dkpinfo.classes ~= nil.
There are likely better specific solutions, this is just off the top of my head.
Is there a way to make DKPmon always load so that whenever an officer is online people can get thier DKP?
-Vlorn
Short of rewriting parts of the DKP query code, nope. DKPmon was designed such that it only "talks" with DKPmon & Bidder while in a raid group.
Every once in a while someone will wonder why the dkp just changed and it'll be because the dkp leader switched to someone else. This might happen during zone changes, I'm not sure.
I'd like to add the following features to DKPmon to make it more apparent when you lose the leader status:
* Print a message in the General tab whenever the leader switches:
"X is now the dkp leader"
* Make the DKP icon turn gold when you're the raid leader.
-Javek
It'll happen pretty much any time that the current DKP leader goes unresponsive (longer or poorly timed zone/UI reloads, going offline, leaving the raid, etc). There's a "keepalive" ping sent by the current leader to DKPmon clients every little while (I don't remember how long... 20 seconds?). If no one gets one of those pings for a longer duration, then logic starts up to automatically pick a new leader. Changing that logic a little (so that it'll pick a person promoted to raid lead/assist with the most recent DKP database timestamp) is on my todo list but, in the meantime I can add a :Print() for when the leader changes easy enough.
As for changing the icon to gold... that's a decent idea. I'll have to play with that too.
-Eraslin
So I'm working on modding and exsisting mod(EPGP) with the ability to have multiple sub-pools with a single larger pool IE one for hybrid loot and one for class tier loot. The goal is to support sub-pools as a user definable feature while still supporting normal single pool behaviour.
My thought was using pool IDs as n+100 where n is the id of the primary pool and n+100 is the sub-pool, ideally the sub-pools could be hidden from all pool selection screens where they weren't actually required, you would never "select" a sub-pool it would be automatically used and created by selecting the primary pool that had dual pools enabled.
From a functional point of view all points earned by the player will be added to both pools at the same time, loot however, will be deducted from it's appropriate pool only.
So I went into the custom.lua file and added the following;
custom.poolnames = {
[1] = "Discord25man",
[2] = "SecondPool",
[3] = "ThirdPool",
[101] = "Class1",
[102] = "Class2",
[103] = "Class2",
}
(yes, I blatantly ignored the text above this field about pools being indexed sequentially)
After adding some code to add incoming points to pools 1 and 101, I did some testing and took a look at my saved variables file.
This is what I saw;
["Oiggamed"] = {
["points"] = {
{
["spent"] = 0.7,
["ts"] = 54091705,
["earned"] = 1626.86,
}, -- [1]
{
["earned"] = 150,
["ts"] = 54091705,
["spent"] = 0,
}, -- [2]
{
["spent"] = 0,
["ts"] = 54091705,
["earned"] = 75,
}, -- [3]
[101] = {
["earned"] = 750,
["ts"] = 54091705,
["spent"] = 0,
},
},
Points for pools 1-3 are stored "sequentially" without an index value which I'm assuming is OK as the index value will be automatically added to the table when it is retrieved.
Points for pool 101 are indexed with a value of 101 which is also correct.
The real problem here is the way DKPmon responds to a "QP" command, looking at the code it seems that everytime a QP command is run it returns the points in all pools (or tries to). the query determines the total number of pools then "steps" through them sequentially to get to the points in each pool to return to the bidder. With my configuration it will query and properly return the points for pools 1-3 , but instead of looking for pools 101-103 it will return the values for pools 4-6 which will return a null value.
I envisioned two ways of resolving this both of which would require changes to the the core of DKPmon.
1. Provide a function that allows me to query a specific pool by pool ID within the system or change the "QP" function to handle non-contiguous pool index entires.
2. Allow a descriptor within "custom.poolnames" that allows me to hide the sub-pool from the pool selection choices within the various parts of DKPmon.
There may be a simpler solution to this that I'm just overlooking.
-Vlorn
Vlorn:
If I understand EPGP correctly, you really only have 3 point pools in your example, right? That is, if you were to make up a webpage/spreadsheet/something to tell your raid members how many points they had then the table would have 3 points columns ("Discord25man", "SecondPool", and "ThirdPool"). With that assumption in mind:
1) Override the function :GetNPools() in your DKP module to return the number of pools "visible" to a normal member of the raid; don't worry about how many subpools there are. In your example, this would be 3 -- as there's only 3 "real" pools, even though each pool is made up of 2 subpools.
2) Override the function :GetPlayerPoints() in your DKP module to calculate the player's points for pool p using whichever subpools are appropriate.
Note: This function will never be called with a pool index greater than that returned by :GetNPools().
I hope that helps.
-Eraslin
I'm a little confused here, do you mean to rewrite the GetPlayerPoints() function in my mod? If so, do you have any thoughts on the best way to code this?
-Vlorn
Yup, that's exactly what I mean. Take a look at DKPmon/DKPSystems/baseclass.lua -- in there you'll find the default implementation of the :GetPlayerPoints() function for your (and all) DKP system modules. The default's just:
Now, I have no idea how you're using the 2 sub-pools to calculate a single point value for your player. But, let's say that you were calculating it as:
Points for pool N = (pool[N].earned + pool[N+100].earned) / max(pool[N].spent, 1)
Then, your :GetPlayerPoints() function would look like:
Hopefully that helps.
-Eraslin
So I can pull the points with the DKPmon addon and get to the correct pool. The problem that I'm having now involves the bidder part to pull the points to populate the tooltips for the actual bidder. Looking at the registry.lua file it appears that the QP command also simply "steps" through the point pools based on the GetNpools function. And even if I let the GetNpools function operate normally it fails to pull back the points for the "hidden" pools unless they are indexed sequentially.
I may end up writing the mod to have my class pools be the "even" number indexes and the main pools the preceding "odd" indexed pools, It's not as pretty as i would have liked it but it should work.
-Vlorn
Okay, so I think I misunderstood what you were doing with the "sub-pools." Are you just having main pools per, say, raid tier then dividing those big pools into a couple of smaller pools?
ex (the labels are unimportant, it's the structure that is):
Main pool = Kara/Gruul/Mag
Subpool1 = Set items
Subpool2 = Non-set items
Main pool = SSC/TK
Subpool1 = Set items
Subpool2 = Non-set items
Main pool = Hyjal/BT
Subpool1 = Set items
Subpool2 = Non-set items
If this is the case, then yes, you need to have your pools numbered consecutively for the users to be able to see their point totals for each "sub-pool." Note that although you might call them "sub-pools" to yourself, as far as DKPmon/Bidder are concerned they're regular pools; you've just imparted some logical partitioning that the addon doesn't actually care about.
The alternative, and what I originally thought you were trying to do, is that for some reason you needed more than 2 numbers to properly calculate points for one pool in EPGP. If this is the case, then you can do the trick that I talked about in my previous post.
-Eraslin
just looking at making the switch from another DKP addon and I just have a couple of questions. We're using Javek's Boss Auction module (very pleasantly surprised to find a module that mimics our DKP system so closely. Thanks for that one Javek!).
Standby list - how does this function? Can you invite someone from the list by clicking the name or do you have to use standard method? Can people on the standby list earn DKP? In our system, those waiting for a slot in the raid earn half of the points that the raid does.
Winning Anouncement - At the moment once a winner has been selected the announcement is "XXX has won [item y]." Can this be modified to include how much DKP was spent on the item?
Can bids be cancelled?
I've gone through the documentation and this thread, which has answered most of my questions, leaving only these few.
Yeah, after playing around with this it's the sweetest thing around. We can easily pull out the data from our EPGP system on the web and import the CSV file prior to each raid...works beautifully!
Thanks!
This is a fixedcost file that has all of the known drops from Kara up to Mt Hyjal, with each boss listed.
Of course you'll need to adjust the points, pool, value, etc to meet your needs, but this will save you the trouble of doing the manual add item deal each and every drop and then re-do it if your SV files manages to get wiped for some reason