Logged Out
Create an Account
Login:
Password:

Forgot your password?
A few questions about GRSS and loot systems

A few questions about GRSS and loot systems
[Back to Index]
Thread Tags
Primary: [Support]
Secondary: [Guild Policies]

So my guild is deciding upon a revised SK loot system. The gist of it is that it runs on points (points per boss kill, points for showing up on time, etc), the person at the top suicides 50% of their points when they receive an item.

I've never really looked at the GRSS mod or the loot sytems too closely, so my questions are:

Does our site support SK with points?

Can I make point adjustments with GRSS in-game?

Does GRSS itself have SK functionality or will I have to run the Suicide Kings mod side-by-side? Do either of these support SK with points? (I know Suicide Kings mod isn't run by anyone here, but I figured I'd ask anyway)

I think that's it for now.


--
Ieyasu - Organizer, Ex Cineribus
bump?


--
Ieyasu - Organizer, Ex Cineribus
I'm sorry, I meant to answer this and I forgot.

What you're referring to isn't a SK system, but a "Spend X% DKP System." The difference might seem subtle, but functionally, SK doesn't work on points, but on static numbers that give reassigned to different users.

In any case, the GRSS does support approach, with the exception that it doesn't auto-assign the points-by-percent while in-game. The points-by-percent does work while uploading, otherwise, you'll need to determine the total points manually in-game.


--
It's all in the reflexes.
Quote by Chops
I'm sorry, I meant to answer this and I forgot.

What you're referring to isn't a SK system, but a "Spend X% DKP System." The difference might seem subtle, but functionally, SK doesn't work on points, but on static numbers that give reassigned to different users.

In any case, the GRSS does support approach, with the exception that it doesn't auto-assign the points-by-percent while in-game. The points-by-percent does work while uploading, otherwise, you'll need to determine the total points manually in-game.


Well none of that made any sense to me whatsoever. I found out I can do this manually with the SK mod by simply inserting people with a number. If there's an easier/better way to do it, or a way to do it with just GRSS it would nice to have an "Idiot's Guide to Whatever Chops Just Said."


--
Ieyasu - Organizer, Ex Cineribus
Sorry, it was late.

Here's a step by step for doing it with GRSS.

1) Record raid attendance (and points received) just like any DKP System
2) When an item is received, if you want the total to be awarded in-game, you'll need to determine that member's total points and deduct the item cost accordingly. (So if Joe receives "The Sword of a Thousand Truths", and he has 130 points, that you'll have to manually enter 65 points for the cost of the item).
3) The alternative to (2) requires doing it manually by going to Admin > Items Received, and clicking "Add New Item Purchase". At the bottom of that page is a text box with a number in it, and it's labeled "Charge a Percentage of Current (1 to 100)", which is to mean "charge the selected user the provided percentage of that users total DKP". So, entering 50 and clicking "Get" will set the cost of that item to the percent recorded.

However, this provides an interesting idea to me, that of setting the amount the item cost by entering a percentage in the popup box (so entering 50% will charge that user accordingly, and will track the amounts). I think that's something that can be trivially added to GRSS.


--
It's all in the reflexes.
Quote by Chops
Sorry, it was late.

Here's a step by step for doing it with GRSS.


Thanks a bunch for this, things make sense now. I do have a question though that is caused by my ignorance of the system. Doesn't the site "remember" item costs? Would that ever present an issue for me if I do it in-game like you suggested (manually entering whatever 50% of the person's points are)?

And I assume doing it in-game would equal out to "real-time" point tracking? As opposed to going to the site to create an Item Purchase.

Quote by Chops

However, this provides an interesting idea to me, that of setting the amount the item cost by entering a percentage in the popup box (so entering 50% will charge that user accordingly, and will track the amounts). I think that's something that can be trivially added to GRSS.


If you could fit this in sometime soon, I'd love you for it. Not that I don't adore you already


--
Ieyasu - Organizer, Ex Cineribus
Our guild does something similar in that all our items always cost 33% of a person's DKP. What I did was modify the grss .lua to accomodate this so that when a person places a bid, !bid, it automatically calculates their bid. If they fill in a bid amount via !bid X, the amount gets ignored.

Below are instructions if you would like to give it a try.
Find GuildRaidSnapShot.lua in your addons\GuildRaidSnapShot directory and open it up in notepad. When opened be sure to turn on your status bar by selecting View~>Show Status Bar should be checked. Scroll all the way to the end of the file and add the following code:

function ESADCreateBid(player)
--############## Modified by Rutroh, ESAD of Rexxar to allow for a set bid of 1/3 DKP (33%) ###########
local dkp = {};
local amt = 0;
for sys in pairs(GRSS_Systems) do
for i,v in pairs(GRSS_Full_DKP[sys]) do
for name in string.gmatch(player,"(%a+)") do
if string.lower(v.name)==string.lower(name) then
local total;
total = GRSSNumNilZero(v.earned) + GRSSNumNilZero(v.adj) - GRSSNumNilZero(v.spent);
table.insert(dkp,total);
end
end
end
end
amt = tonumber(dkp[1]);
--### Checks for a value in the above table, if a new user bids they may not be in the character table, assigns a default value of zero ###
if amt == nil then
amt = 0;
else
--### Set the auto amount of DKP to bid, rounded up to the nearest integer. ###
--### This example always uses 1/3, however other percentages could be used. ###
--### Instead of using amt/3 use amt * %, amt*.5 for 50% etc... ###
amt = math.ceil(amt/3);
end
return amt;
end


To change the percentage used simply change the math of amt/3 to shatever you want. Also, we do not use decimals in our system so the math.ceil rounds the number up to the nearest whole number.

Once that is done scroll up to about line 902 and change the code so that it looks like the following:

if GRSS_Bidding == 1 then
s,e,amt = string.find(msg,"^!bid%s*(%d*)");
temp.name = from;

--if amt=="" then
-- amt = "blank";
--else
-- amt = tonumber(amt);
--end
amt = ESADCreateBid(from);

temp.bid = amt;

The modified code is in blue.
Keep in mind that anytime the GRSS gets updated via the autoloader that you will need do this again.
Well first off, thank you very much for this. This would not work for us entirely, but it would be useful for the bulk of our items.

What we do is charge 50% of your total points for any "on spec" item, and 25% for any "off spec" item (assuming that anyone with the appropriate spec has already passed). We also use decimal points to help avoid ties. Any way to modify the code above to include decimals?


--
Ieyasu - Organizer, Ex Cineribus
Quote by Nitesbane
Well first off, thank you very much for this. This would not work for us entirely, but it would be useful for the bulk of our items.

What we do is charge 50% of your total points for any "on spec" item, and 25% for any "off spec" item (assuming that anyone with the appropriate spec has already passed). We also use decimal points to help avoid ties. Any way to modify the code above to include decimals?


Definitely!
Below is a new funtion for you that you'll want to place at the end of the file, decimals will be used.
function ESADCreateBid(player, percentage)
   local dkp = {};
   local amt = 0;
   for sys in pairs(GRSS_Systems) do
      for i,v in pairs(GRSS_Full_DKP[sys]) do
         for name in string.gmatch(player,"(%a+)") do
            if string.lower(v.name)==string.lower(name) then
               local total;
               total = GRSSNumNilZero(v.earned) + GRSSNumNilZero(v.adj) - GRSSNumNilZero(v.spent);
               table.insert(dkp,total);
            end
         end
      end
   end
   amt = tonumber(dkp[1]);
   --### Checks for a value in the above table, if a new user bids they may not be in the character table, assigns a default value of zero ###
   if amt == nil then
      amt = 0;
   else 
      --### Multiples a palyer's DKP by the percentage specified. ###
      amt = amt*percentage;
   end
   return amt;
end

Next at line 902'ish you'll want to do this instead:
if GRSS_Bidding == 1 then
s,e,amt = string.find(msg,"^!bid%s*(%d*)");
temp.name = from;

   --### If the bid amount is 1 then use 50% of their DKP ###
   if tonumber(amt)==1 then
      amt = ESADCreateBid(from, .50);
   elseif tonumber(amt)==2 then
      --### If the bid amount is 2 then use 25% of their DKP ###
      amt = ESADCreateBid(from, .25);
   else
      --### anything other than 1 or 2 make it give them a bid not understood message ###
      amt = "blank";
   end

temp.bid = amt;


What this should now do is if a user !bids 1, it will use 50% of their dkp, if they !bid 2, it will use 25% of their DKP, anything else will give a bid of "blank" and will most likely generate an error message. This hasn't been tested but should work.. I modified the code while at work and couldn't test it out.
Don't forget you can use the [code=lua] tag to make it easier to read:

Example:

function ESADCreateBid(player, percentage)
   local dkp = {};
   local amt = 0;
   for sys in pairs(GRSS_Systems) do
      for i,v in pairs(GRSS_Full_DKP[sys]) do
         for name in string.gmatch(player,"(%a+)") do
            if string.lower(v.name)==string.lower(name) then
               local total;
               total = GRSSNumNilZero(v.earned) + GRSSNumNilZero(v.adj) - GRSSNumNilZero(v.spent);
               table.insert(dkp,total);
            end
         end
      end
   end
   amt = tonumber(dkp[1]);
   --### Checks for a value in the above table, if a new user bids they may not be in the character table, assigns a default value of zero ###
   if amt == nil then
      amt = 0;
   else 
      --### Multiples a palyer's DKP by the percentage specified. ###
      amt = amt*percentage;
   end
   return amt;
end


--
It's all in the reflexes.
I tried that.. maybe its an IE7 thing but it never shows up right for me.
Oh sure enough. It doesn't work properly in IE7


--
It's all in the reflexes.


[Back to Index]