First, thanks muchly for the advice and the generally readable and well-commented code. It makes a large difference in the ease of writing this stuff - especially for a hack like myself - and is definitely appreciated. Keep up the good work!
I'm mostly done with my EPGP implementation and the addon is usable-if-crude as is. Overloading the points function as suggested had the bonus of solving all of my display headaches on the Bidder end where the addon reported EP - GP rather than EP/GP to the end user, which was lovely. Only real headache I've got left is how to approach my decay functions. Basically, I want DKPmon_EPGP to let the users multiply EP/Earned and GP/Spent by some given value, typically to reduce current EP & GP by 30% each month or somesuch. My intial instinct was to do this from the Points Awarding window as that seems to be the natural menu for altering points, but far as I can tell relative changes like that are not really supported by the interface in DKPmon.Awarding and the awardframe. I can think of a few solutions, all serious this time. I'm very unsure which are good ideas, or at all viable: what would you recommend?
1: Let GetFubarOptionsMenu() handle the decay bits and call something that mucks about with the database from there. Not very elegant, will likely have to affect everyone rather than select members, but will certainly work.
ii: Try to overload select parts of DKPmon.Awarding in epgp.lua or add additional functionality to EPGP:GetAwardFrame() to implement decay in the EPGP award frame specifically. I've no clue if it's possible to make these work at all and I'm hesitant to try as I'm hardly familiar enough with Ace to feel secure in my ability to not break anything important in the attempt. Likely the most elegant self-contained solution if doable, though.
三: Implement relative changes in general and decay in particular at the Awarding interface. Allowing AppendPointAward() & AwardOutstandingPoints() to additionally recognize a tab.value of type string and format "-30%" as meaning decay both Earned and Spent by 30% is one possibility. Although any version of this is of course nice for my end, in part for involving less actual work for me, it is fairly system specific and so introduces bloat into DKPmon that might not be useful to many other systems.
I'm again attaching my local versions of DKPmon_EPGP and Bidder_EPGP if anyone wants to check them out for inconsistencies, quirks and bugs. The "Decay EPGP"-tab in the Award frame currently does the same thing as "Specify custom amount" with some different text tossed in, so ignore it. Everything else should work as advertised, assuming my last-minute text tweaks didn't mess everything up and make the addons crash your server, eat your hard drive and glue captions to your kittens.
i'm sorry to post that sort of topic, but i'm a french user of this addon, and i have a little problem of traduction... I doesn't understand the concept behind the "pool" in the custom file :
"["Lucifron"] = { { value = 10, pool = 1 },
{ value = 20, pool = 2} }
This means that the "Molten Core" boss Lucifron is worth 10 pool 1 points and 20 pool 2 points when killed."
What does it mean exactly ? What is a "pool" ? This concept is a bit hard to traduct for me and so, my customisation is stopped.. :(
Eliah:
think of the pools as two different sets of DKP. In the example you show, for instance, one pool (or amount of DKP) could be for your class set items, and the other one could be for non-set items that drop. You do not need to use more than one pool (or amount of DKP), but you can if you desired to. Did that clear anything up for you?
Since 2.1 I'm getting spammed by the following error when the bidder window gets populated with drops
[2007/05/31 22:04:10-1875-x106]: Interface\FrameXML\LootFrame.lua:191: attempt to perform arithmetic on field 'page' (a nil value):
<string>:"*:OnUpdate":2: in function <[string "*:OnUpdate"]:1>
Also token drops eg. Gloves of the Fallen Defender show no icon.. although the price we have assigned appears normally.
All versions are latest as of today.
edit: I remember XLoot had similar problems with 2.1 code.. (part of the lootframe code changed from blizzard) until Nymbia originally and later Xuerian fixed it.
Maybe you can query them for any tips to ease troubleshooting.
Sorry for the delay in my reply here, I didn't notice any activity in this thread 'til just now. :-)
Xerophyte -- The way I would probably do it (the decay thing) is to add an option/button to the Awarding frame via EPGP:GetAwardFrame() to do the decay over the entire database (or over the selected players). In case it isn't 100% clear from the code, the awarding frame is composed of 3 "mini-frames" -- the top-frame (the part containing the button to select players from raid/standby/database), the middle-frame (this frame is returned from the DKP-system's GetAwardFrame() method), and the bottom-frame (the bit containing the deduct points button). I did it like this so that a DKP-system author could add whatever they want to the award frame without affecting any of the frame's base functionality.
Astaldo -- I just noticed that error 2 days ago myself. Thanks for the pointers on XLoot; I'll be sure to look at how they fixed it. :-) Also, in general, items won't show an icon if they aren't in your local item-cache when the item is added to DKPmon/Bidder window. It's just a display error with no easy fix. ;-)
I noticed that while you're dead with the "release spirit" button up you cannot award dkp. (The award confirmation doesn't come up)
Is this because the award confirmation uses the same frame as release spirit?
Being able to award dkp while dead would be preferred.
-Javek
Pretty much. I use the StaticPopupDialogs[] functionality to create all my "question" type popups; so none of them are able to appear while you're dead. If I knew of a simple way for me to create popups that would show up while dead, I'd be all over it. That particular limitation drives me batty too! :-)
Another "dkp"-System suggestion - or is this possible with DKPmon?
+5 Points for:
boss kills
+2 Points for:
boss tries
punctuality
first tries
.
.
.
The person with the most points is the first one to choose if he'd like to take a dropped item
- if yes, his points are reset to 0
- if no, the next one may decide to spend his points
Example: (3 man raid...)
Standings:
A 30
B 27
C 12
Boss dies
[Sword] drops
A passes, B is a priest and doesn't need a sword, C gets [Sword]
New standings:
A 35
B 32
C 0
Next boss dies (2 wipes)
[T4 token] drops
A takes [T4 token]
New standings:
A 0
B 41
C 9
It would be possible to manually edit the database, but some kind of built-in function would be possible... can this easily be done?
Regards, Sukrim
-edit-
typo
Could anyone help with this btw ... I only vbscript so been looking at the code for 2 days now but still hard to figure anything out :S
This can definitely be done. Basically you need to create a module for DKPmon. You may or may not need to create a module for bidder as well.
In DKPmon's src look at DKPSystems/baseclass.lua
Basically you want to implement this interface.
Take a look at fixeddkp.lua, DKPmon_BossAuction, and DKPmon_ZSumAuction to see examples of other modules. BossAuction is the module I created. It's a bit more complicated in that I hooked combat and target events to try to auto-detect boss kills. So it's a lot bigger and maybe more confusing for you.
DKPmon tracks dkp by saving total dkp earned and total points spent. When it synchronizes the it just looks for a higher number to synchronize with.
So to bid the way you want, you just need to spend points equal to how many the person has.
There are a few key functions to look at:
GetItemInfo() - returns custom information on that item. auction systems usually set a minimum bid, fixed dkp sets the item's cost by looking it up in a custom.lua
PlaceBid() - Called when a bidder clicks Place Bid basically.
I would just look at how bidding works with the auction systems and just make their bid the bidders current dkp.
GetCost() - Called when deduct points is clicked
Here you have access to different tables and calculate the cost. If you set the bid in place bid, you can just return winnerdkp.bid just like the auction systems.
How to do points is up to you. You may want to look at BossAuction for this. I made a few different buttons, one for bosses, one for timed dkp, and a custom points button. Look here to see how to setup menus for point awarding.
As Javek said, it's definitely possible. You just have to think of the system a little differently. What you've basically described is a percent-cost DKP system where all items cost 100%, and there's a few different times when points can be awarded. Take a look at the PercentDKP system modules that are on my web site (dkpmon.googlepages.com). You should be able to just modify that module so that all items cost 100% of the winner's points (set the item's cost to 1.0 in the custom.itemvalues table in custom.lua), and add a few extra "bosses" to custom.bossnames in custom.lua that you can select when assigning points (one for an attempt, one for showing up on-time/early, etc).
For example, your custom.bossnames table might look like:
Is there an "Idiot's Guide" to DKPmon for the simple folk? Our guild uses the BossAuction-style system and I use CTraidtracker to assign and export points to the dkp site. I have no programming ability nor do I even know what to do with php files. I simply want to log attendance, tag the loot, and export it.
I tried the mod last week but got overwhelmed with how to make it function and it kept spamming stuff onto chat and windows were popping up, which I couldn't stop so I had to turn the mod off before I could test it. If this isn't the mod for me, just let me know so I can hang my head in shame and move on.
I wanted to make BossAuction remind the dkp manager of dkp that is pending. It pops up the points window every 30sec if you're out of combat, and immediately after you leave combat.
There's an option to disable this in the dkp system options.
It also automatically awards boss points if it detects a boss.
There was a bug in my initial release because I forgot to check if you were the dkp leader before awarding points. Now it correctly detects this.
I've reworked the bidding validation a bit and improved the Bidder feedback significantly (with colors!)
Tell me if you have any issues with the new version.
As a Guild Leader and a Raid leader and an Old School Computer Guy I stress OLD School.
I know enough about php to fight through and get the job done.
Some of the modules have very basic discriptions and really dont explain much. do you use bidder and the module ect as a noobie it sounds redundent and over simplified but helps to be clear.
Now that said im looking for direction.
what we use for our guild is a bosskill award syatem, we kill a boss we get 10 points we get bonis points for showing up ontime for raid and another bonus point for being there threw the whole raid. (bonus points if nessicery can be handeled out side the module.
we use a spend all system so when an item is placed for bid and you bid on it you automaticly bid all your points the person with the most points wins the bid and all points are deducted from the points, in the past it was all points befor that nights raid only becuase it was easer to track points that way.
Now I am guessing I will need to use Dkmon FCZS or Dkmon DKPmon_ZSumAuction to award points.
and for Bidding Im guessing Bidder_Percent. and going in and adjusting Bidder for 100% bid as defualt.
or do I need to do a complete ajustment and make (SA= Spend all)DKPmon_SA and a Bidder_SA
and would I load Dkmon, Bidder Dkmon_SA and Bidder_SA
Thanks you in advance for direction in this matter. also If I need to Mod a Dkmon_SA and Bidder_SA any advice will be welcome
As a Guild Leader and a Raid leader and an Old School Computer Guy I stress OLD School.
I know enough about php to fight through and get the job done.
Some of the modules have very basic discriptions and really dont explain much. do you use bidder and the module ect as a noobie it sounds redundent and over simplified but helps to be clear.
Now that said im looking for direction.
what we use for our guild is a bosskill award syatem, we kill a boss we get 10 points we get bonis points for showing up ontime for raid and another bonus point for being there threw the whole raid. (bonus points if nessicery can be handeled out side the module.
we use a spend all system so when an item is placed for bid and you bid on it you automaticly bid all your points the person with the most points wins the bid and all points are deducted from the points, in the past it was all points befor that nights raid only becuase it was easer to track points that way.
Now I am guessing I will need to use Dkmon FCZS or Dkmon DKPmon_ZSumAuction to award points.
and for Bidding Im guessing Bidder_Percent. and going in and adjusting Bidder for 100% bid as defualt.
or do I need to do a complete ajustment and make (SA= Spend all)DKPmon_SA and a Bidder_SA
and would I load Dkmon, Bidder Dkmon_SA and Bidder_SA
Thanks you in advance for direction in this matter. also If I need to Mod a Dkmon_SA and Bidder_SA any advice will be welcome
Hey there,
The way I've structured DKPmon/Bidder is such that Bidder & DKPmon are essentially shell-programs that handle all of the elements in common to various loot-distribution methods (storing a points database, querying points, presenting windows with available loot, present an interface for awarding points, etc). Everything else is handled by the DKP system modules -- one of which ("fixeddkp" -- fixed item prices, fixed point awards per boss) is included with the addons just so they aren't totally empty. This allows the addons to handle all sorts of different DKP systems without me having to write each and every one into the main DKPmon & Bidder addons; guilds can write their own modules for their own system, and plug 'em right in.
For the system that you describe, you're going to have to write both a DKPmon & Bidder module (DKPmon_SA and Bidder_SA, as you call them). The absolute easiest way to write these for you will be to take the _PercentDKP modules, and modify them just a little. You'll need to change the following:
1) The "system ID" that the module uses -- this is the second parameter in the DKPmon.DKP:Register() call at the bottom of both module's .lua files. This ID has to be the same in both the DKPmon & Bidder modules. It also shouldn't be the same as an ID used by other module that's out there -- if two modules have the same ID, then one will be disallowed from loading.
2) In the DKPmon_SA module:
a) Change the .prototype:GetItemInfo() function to always use 100% as the item cost, rather than looking the cost up from the custom info structure.
b) Alter .prototype:GetCost() so that it no longer ensures that the cost of the item leaves the player with 1 point, if they have more than 1 point.
That's all I can think of right now, as to what you'll have to change. There may be a couple of other small things, but I can't think of them right now.
I've looked through all of DKPmon_FCZS\fczs.lua and haven't found anything that looks like it it would break if i was to use a metatable with custom.itemvalues but I wanted to ask if there might be any other reasons elsewhere that would prevent using a metatable on custom.itemvalues. I haven't actually tried this yet but just wanted to know if it was something thats already known not to work. I was thinking of using an __index metatable entry to calculate the value using itemlevel and slot info from blizzards GetItemInfo() function.
Also I have a small suggestion reguarding all the dkp systems. Instead of including a file like DKPmon_FCZS\custom.lua and users modifying the file, it might be nicer to have something like a DKPmon_FCZS\example.lua file which is set to load after the custom.lua in the .toc but will check if DKPmon.CustomInfo:Get() is nil before doing DKPmon.CustomInfo:Register(). Then leave the custom.lua in the .toc but not actually include it so that when users create a custom file with their point values already entered in, it will not be overwritten with an update.
I've looked through all of DKPmon_FCZS\fczs.lua and haven't found anything that looks like it it would break if i was to use a metatable with custom.itemvalues but I wanted to ask if there might be any other reasons elsewhere that would prevent using a metatable on custom.itemvalues. I haven't actually tried this yet but just wanted to know if it was something thats already known not to work. I was thinking of using an __index metatable entry to calculate the value using itemlevel and slot info from blizzards GetItemInfo() function.
I presume this is for your own module? If so:
a) It shouldn't break anything
b) You probably don't need to be that complicated. Just don't use an .itemvalues table at all. The item's DKP information is only looked up in one function :GetItemInfo(); so, just write that function to do the stuff your __index metatable would do.
Also I have a small suggestion reguarding all the dkp systems. Instead of including a file like DKPmon_FCZS\custom.lua and users modifying the file, it might be nicer to have something like a DKPmon_FCZS\example.lua file which is set to load after the custom.lua in the .toc but will check if DKPmon.CustomInfo:Get() is nil before doing DKPmon.CustomInfo:Register(). Then leave the custom.lua in the .toc but not actually include it so that when users create a custom file with their point values already entered in, it will not be overwritten with an update.
That is a friggin' awesome idea. I'll be stealing that one!
Yeah, I noticed that custom.lua would be overwritten by the updater. Good suggestion, I'll implement it into BossAuction when I have the chance.
RE: Aragent
For the DKPmon side of it take a look at DKPmon_BossAuction. I create separate buttons for Boss Points, Timed Points, and Custom Points. I also auto-detect boss deaths. This makes the module a bit more complicated with all the events going on, but hopefully you can figure it out.
Also, I've been working on a web interface for DKPmon data. It's basically read-only. It takes the csv data export and eqDkp-xml raid exports to build the database. I'm using the dojo toolkit to create filtering tables and floating panes. Basically you can click any row in any table and it pops up a corresponding window.
I still have a bit of work to do on the CSS (IE has some quirks) and there are a few issues I need to address today. But take a look at it at: http://scootypuff.net/index.php?id=45
I'll probably release it on sourceforge in a week or so.
Tell me what you think.
-Javek
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
I'm mostly done with my EPGP implementation and the addon is usable-if-crude as is. Overloading the points function as suggested had the bonus of solving all of my display headaches on the Bidder end where the addon reported EP - GP rather than EP/GP to the end user, which was lovely. Only real headache I've got left is how to approach my decay functions. Basically, I want DKPmon_EPGP to let the users multiply EP/Earned and GP/Spent by some given value, typically to reduce current EP & GP by 30% each month or somesuch. My intial instinct was to do this from the Points Awarding window as that seems to be the natural menu for altering points, but far as I can tell relative changes like that are not really supported by the interface in DKPmon.Awarding and the awardframe. I can think of a few solutions, all serious this time. I'm very unsure which are good ideas, or at all viable: what would you recommend?
1: Let GetFubarOptionsMenu() handle the decay bits and call something that mucks about with the database from there. Not very elegant, will likely have to affect everyone rather than select members, but will certainly work.
ii: Try to overload select parts of DKPmon.Awarding in epgp.lua or add additional functionality to EPGP:GetAwardFrame() to implement decay in the EPGP award frame specifically. I've no clue if it's possible to make these work at all and I'm hesitant to try as I'm hardly familiar enough with Ace to feel secure in my ability to not break anything important in the attempt. Likely the most elegant self-contained solution if doable, though.
三: Implement relative changes in general and decay in particular at the Awarding interface. Allowing AppendPointAward() & AwardOutstandingPoints() to additionally recognize a tab.value of type string and format "-30%" as meaning decay both Earned and Spent by 30% is one possibility. Although any version of this is of course nice for my end, in part for involving less actual work for me, it is fairly system specific and so introduces bloat into DKPmon that might not be useful to many other systems.
I'm again attaching my local versions of DKPmon_EPGP and Bidder_EPGP if anyone wants to check them out for inconsistencies, quirks and bugs. The "Decay EPGP"-tab in the Award frame currently does the same thing as "Specify custom amount" with some different text tossed in, so ignore it. Everything else should work as advertised, assuming my last-minute text tweaks didn't mess everything up and make the addons crash your server, eat your hard drive and glue captions to your kittens.
i'm sorry to post that sort of topic, but i'm a french user of this addon, and i have a little problem of traduction... I doesn't understand the concept behind the "pool" in the custom file :
"["Lucifron"] = { { value = 10, pool = 1 },
{ value = 20, pool = 2} }
This means that the "Molten Core" boss Lucifron is worth 10 pool 1 points and 20 pool 2 points when killed."
What does it mean exactly ? What is a "pool" ? This concept is a bit hard to traduct for me and so, my customisation is stopped.. :(
Someone can help me plz ?
think of the pools as two different sets of DKP. In the example you show, for instance, one pool (or amount of DKP) could be for your class set items, and the other one could be for non-set items that drop. You do not need to use more than one pool (or amount of DKP), but you can if you desired to. Did that clear anything up for you?
[2007/05/31 22:04:10-1875-x106]: Interface\FrameXML\LootFrame.lua:191: attempt to perform arithmetic on field 'page' (a nil value):
<string>:"*:OnUpdate":2: in function <[string "*:OnUpdate"]:1>
Also token drops eg. Gloves of the Fallen Defender show no icon.. although the price we have assigned appears normally.
All versions are latest as of today.
edit: I remember XLoot had similar problems with 2.1 code.. (part of the lootframe code changed from blizzard) until Nymbia originally and later Xuerian fixed it.
Maybe you can query them for any tips to ease troubleshooting.
Sorry for the delay in my reply here, I didn't notice any activity in this thread 'til just now. :-)
Xerophyte -- The way I would probably do it (the decay thing) is to add an option/button to the Awarding frame via EPGP:GetAwardFrame() to do the decay over the entire database (or over the selected players). In case it isn't 100% clear from the code, the awarding frame is composed of 3 "mini-frames" -- the top-frame (the part containing the button to select players from raid/standby/database), the middle-frame (this frame is returned from the DKP-system's GetAwardFrame() method), and the bottom-frame (the bit containing the deduct points button). I did it like this so that a DKP-system author could add whatever they want to the award frame without affecting any of the frame's base functionality.
Astaldo -- I just noticed that error 2 days ago myself. Thanks for the pointers on XLoot; I'll be sure to look at how they fixed it. :-) Also, in general, items won't show an icon if they aren't in your local item-cache when the item is added to DKPmon/Bidder window. It's just a display error with no easy fix. ;-)
Fixed the tooltip errors; new version's on the svn & on my web page.
Is this because the award confirmation uses the same frame as release spirit?
Being able to award dkp while dead would be preferred.
-Javek
Pretty much. I use the StaticPopupDialogs[] functionality to create all my "question" type popups; so none of them are able to appear while you're dead. If I knew of a simple way for me to create popups that would show up while dead, I'd be all over it. That particular limitation drives me batty too! :-)
I have 0 exp with coding myself tho :S
Could anyone help with this btw ... I only vbscript so been looking at the code for 2 days now but still hard to figure anything out :S
In DKPmon's src look at DKPSystems/baseclass.lua
Basically you want to implement this interface.
Take a look at fixeddkp.lua, DKPmon_BossAuction, and DKPmon_ZSumAuction to see examples of other modules. BossAuction is the module I created. It's a bit more complicated in that I hooked combat and target events to try to auto-detect boss kills. So it's a lot bigger and maybe more confusing for you.
DKPmon tracks dkp by saving total dkp earned and total points spent. When it synchronizes the it just looks for a higher number to synchronize with.
So to bid the way you want, you just need to spend points equal to how many the person has.
There are a few key functions to look at:
GetItemInfo() - returns custom information on that item. auction systems usually set a minimum bid, fixed dkp sets the item's cost by looking it up in a custom.lua
PlaceBid() - Called when a bidder clicks Place Bid basically.
I would just look at how bidding works with the auction systems and just make their bid the bidders current dkp.
GetCost() - Called when deduct points is clicked
Here you have access to different tables and calculate the cost. If you set the bid in place bid, you can just return winnerdkp.bid just like the auction systems.
How to do points is up to you. You may want to look at BossAuction for this. I made a few different buttons, one for bosses, one for timed dkp, and a custom points button. Look here to see how to setup menus for point awarding.
Hope this helps.
-Javek
As Javek said, it's definitely possible. You just have to think of the system a little differently. What you've basically described is a percent-cost DKP system where all items cost 100%, and there's a few different times when points can be awarded. Take a look at the PercentDKP system modules that are on my web site (dkpmon.googlepages.com). You should be able to just modify that module so that all items cost 100% of the winner's points (set the item's cost to 1.0 in the custom.itemvalues table in custom.lua), and add a few extra "bosses" to custom.bossnames in custom.lua that you can select when assigning points (one for an attempt, one for showing up on-time/early, etc).
For example, your custom.bossnames table might look like:
Then, when using the module to run your DKP just use the points-awarding interface whenever you need to assign some points. Easy as pie. :-)
-Eraslin
Also is it possible to make the windows look like classic windows. I don't use the Skinner theme in my wow :D
I tried the mod last week but got overwhelmed with how to make it function and it kept spamming stuff onto chat and windows were popping up, which I couldn't stop so I had to turn the mod off before I could test it. If this isn't the mod for me, just let me know so I can hang my head in shame and move on.
Sorry about the issues you encountered. I believe I have fixed all of them now.
See the notes in the BossAuction module thread
I wanted to make BossAuction remind the dkp manager of dkp that is pending. It pops up the points window every 30sec if you're out of combat, and immediately after you leave combat.
There's an option to disable this in the dkp system options.
It also automatically awards boss points if it detects a boss.
There was a bug in my initial release because I forgot to check if you were the dkp leader before awarding points. Now it correctly detects this.
I've reworked the bidding validation a bit and improved the Bidder feedback significantly (with colors!)
Tell me if you have any issues with the new version.
-Javek
I know enough about php to fight through and get the job done.
Some of the modules have very basic discriptions and really dont explain much. do you use bidder and the module ect as a noobie it sounds redundent and over simplified but helps to be clear.
Now that said im looking for direction.
what we use for our guild is a bosskill award syatem, we kill a boss we get 10 points we get bonis points for showing up ontime for raid and another bonus point for being there threw the whole raid. (bonus points if nessicery can be handeled out side the module.
we use a spend all system so when an item is placed for bid and you bid on it you automaticly bid all your points the person with the most points wins the bid and all points are deducted from the points, in the past it was all points befor that nights raid only becuase it was easer to track points that way.
Now I am guessing I will need to use Dkmon FCZS or Dkmon DKPmon_ZSumAuction to award points.
and for Bidding Im guessing Bidder_Percent. and going in and adjusting Bidder for 100% bid as defualt.
or do I need to do a complete ajustment and make (SA= Spend all)DKPmon_SA and a Bidder_SA
and would I load Dkmon, Bidder Dkmon_SA and Bidder_SA
Thanks you in advance for direction in this matter. also If I need to Mod a Dkmon_SA and Bidder_SA any advice will be welcome
Hey there,
The way I've structured DKPmon/Bidder is such that Bidder & DKPmon are essentially shell-programs that handle all of the elements in common to various loot-distribution methods (storing a points database, querying points, presenting windows with available loot, present an interface for awarding points, etc). Everything else is handled by the DKP system modules -- one of which ("fixeddkp" -- fixed item prices, fixed point awards per boss) is included with the addons just so they aren't totally empty. This allows the addons to handle all sorts of different DKP systems without me having to write each and every one into the main DKPmon & Bidder addons; guilds can write their own modules for their own system, and plug 'em right in.
For the system that you describe, you're going to have to write both a DKPmon & Bidder module (DKPmon_SA and Bidder_SA, as you call them). The absolute easiest way to write these for you will be to take the _PercentDKP modules, and modify them just a little. You'll need to change the following:
1) The "system ID" that the module uses -- this is the second parameter in the DKPmon.DKP:Register() call at the bottom of both module's .lua files. This ID has to be the same in both the DKPmon & Bidder modules. It also shouldn't be the same as an ID used by other module that's out there -- if two modules have the same ID, then one will be disallowed from loading.
2) In the DKPmon_SA module:
a) Change the .prototype:GetItemInfo() function to always use 100% as the item cost, rather than looking the cost up from the custom info structure.
b) Alter .prototype:GetCost() so that it no longer ensures that the cost of the item leaves the player with 1 point, if they have more than 1 point.
That's all I can think of right now, as to what you'll have to change. There may be a couple of other small things, but I can't think of them right now.
Good luck,
Eraslin
Also I have a small suggestion reguarding all the dkp systems. Instead of including a file like DKPmon_FCZS\custom.lua and users modifying the file, it might be nicer to have something like a DKPmon_FCZS\example.lua file which is set to load after the custom.lua in the .toc but will check if DKPmon.CustomInfo:Get() is nil before doing DKPmon.CustomInfo:Register(). Then leave the custom.lua in the .toc but not actually include it so that when users create a custom file with their point values already entered in, it will not be overwritten with an update.
I presume this is for your own module? If so:
a) It shouldn't break anything
b) You probably don't need to be that complicated. Just don't use an .itemvalues table at all. The item's DKP information is only looked up in one function :GetItemInfo(); so, just write that function to do the stuff your __index metatable would do.
That is a friggin' awesome idea. I'll be stealing that one!
RE: Aragent
For the DKPmon side of it take a look at DKPmon_BossAuction. I create separate buttons for Boss Points, Timed Points, and Custom Points. I also auto-detect boss deaths. This makes the module a bit more complicated with all the events going on, but hopefully you can figure it out.
Also, I've been working on a web interface for DKPmon data. It's basically read-only. It takes the csv data export and eqDkp-xml raid exports to build the database. I'm using the dojo toolkit to create filtering tables and floating panes. Basically you can click any row in any table and it pops up a corresponding window.
I still have a bit of work to do on the CSS (IE has some quirks) and there are a few issues I need to address today. But take a look at it at:
http://scootypuff.net/index.php?id=45
I'll probably release it on sourceforge in a week or so.
Tell me what you think.
-Javek