alexitocr / epgp

Automatically exported from code.google.com/p/epgp
0 stars 0 forks source link

Base_GP should not be decayed #414

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
Stanard decay function decays both character GP and Base_GP. It may be
necessary to change the DecayEPGP function this way:

function EPGP:DecayEPGP()
  local decay = global_config.decay_p  * 0.01
  local base_gp = global_congig.base_gp  // first change 
  local reason = string.format("Decay %d%%", global_config.decay_p)
  for name,_ in pairs(ep_data) do
    local ep, gp, main = self:GetEPGP(name)
    assert(main == nil, "Corrupt alt data!")
    local decay_ep = math.ceil(ep * decay)
    local decay_gp = math.ceil((gp - base_gp) * decay) // second change
    decay_ep, decay_gp = AddEPGP(name, -decay_ep, -decay_gp)
    if decay_ep ~= 0 then
      callbacks:Fire("EPAward", name, reason, decay_ep, true)
    end
    if decay_gp ~= 0 then
      callbacks:Fire("GPAward", name, reason, decay_gp, true)
    end
  end
  callbacks:Fire("Decay", global_config.decay_p)
end

Original issue reported on code.google.com by t...@funpay.ru on 4 May 2009 at 11:48

GoogleCodeExporter commented 8 years ago
This is by design. Can you elaborate on the reasons you think decay should not 
be
applied to the total GP?

Original comment by evlogimenos on 4 May 2009 at 12:36

GoogleCodeExporter commented 8 years ago
Let's take an example.
We have two warriors: WarA and WarB.
Base_GP = 250. Decay rate = 30%
Now, let us assume, that WarA and WarB both has 5000EP and 250 base GP. (PR=20)
WarA loots some item, now he has 350 GP and priority = 14.28
Then the Decay comes:
WarB: 250*0.7 = 175 < 250, so his GP remains at 250.
WarA: 350*0.7 = 245 < 250, so his GP resets to 250.
Now we are at the beginning of our situation, but WarA has looted some item.

I believe this problem could be solved by decaying only the "real" part of
character's GP. 

Original comment by t...@funpay.ru on 4 May 2009 at 12:56

GoogleCodeExporter commented 8 years ago
This is by design. WarA has low GP because she doesn't get any items effectively
"hoarding". This design punishes WarA for "hoarding".

Original comment by evlogimenos on 4 May 2009 at 1:19

GoogleCodeExporter commented 8 years ago
Imagine higher Base_GP value, like 1000 GP. 
Then any decay will ALWAYS reset GP to the base value.

Original comment by t...@funpay.ru on 4 May 2009 at 1:33

GoogleCodeExporter commented 8 years ago
Why always? Your GP will reset to base value only if TotalGP - BaseGP < 
DecayedGP.

Say your BaseGP is 1000GP and your decay is 1%. You receive T7 chest for 100GP. 
On
next decay your total GP is (1000 + 100) * 0.99 = 1089 GP.

Original comment by evlogimenos on 4 May 2009 at 1:46

GoogleCodeExporter commented 8 years ago
1% Decay doesn't make any sense.
30% Decay rate means you lose 76% EP and GP per month. Lesser rates can't 
prevent
"hoarding".

We could meet a halfway. Let's add boolean parameter "Decay_base_GP".
I can make changes myself and send you for a code review. What do you think 
about it?

Original comment by t...@funpay.ru on 4 May 2009 at 2:05

GoogleCodeExporter commented 8 years ago
Your suggestion is contrary to the whole idea behind EPGP. Its been working for 
over
3 years now, and is only getting better and better.

Original comment by dingochavezz@gmail.com on 4 May 2009 at 2:55

GoogleCodeExporter commented 8 years ago
1% decay makes more sense than 1000GP when your average item costs 100GP. 
Adding a
boolean will confuse people.

In any case I haven't seen any convincing arguments that this should be 
different
than what it is. In order to do this you need to answer:

- What are you trying to achieve?
- What are your current values and why do they not work for you?

All I see is numbers being thrown around without reasoning. 1000 BaseGP is a 
very bad
choice for BaseGP. Not as bad as 10000000 BaseGP but it is quite bad.

Original comment by evlogimenos on 4 May 2009 at 3:10

GoogleCodeExporter commented 8 years ago
"contrary to the whole idea behind EPGP"? Did you get what I suggested to 
change?

Just try to think abount one more time. In our example, WarA, who has already 
looted
some item, has the same priority as WarB just after ONE decay! Imagine a guild 
which
is trying bosses at Ulduar, but can only loot a few items every week. Now 
imagine 3
(three) rogues in raid setup. Even if we have two items for rogue per week, 
third
rogue will never loot, if we strictly follow the epgp rules. My update should 
solve
this problem and still prevents "collecting PR".

Original comment by t...@funpay.ru on 4 May 2009 at 3:17

GoogleCodeExporter commented 8 years ago
The numbers are:
0. 1000EP for first kill, 200EP for farm-status boss.
1. 30% Decay value. This means 76% EP\GP loss in a month for slackers. 
2. 5000 minimal EP for looting 
3. 250 base_gp value (1 item value). A guy with 5000/1 shouldn't take a rare 
drop.

When patch 3.1 was applied, we wiped out our EPGP standings.
So, everybody who looted Flame Leviathan (the only boss we killed on the first 
week),
got their 250GP back after decay. 

Original comment by t...@funpay.ru on 4 May 2009 at 3:27

GoogleCodeExporter commented 8 years ago
Now what the suggested patch will do:
1. RogueA loots item costs 100GP
2. Now he got 350GP
3. After decay he's got 320GP
4. Others have 250GP
5. RogueA loots after other rogues until they loot something.

Original comment by t...@funpay.ru on 4 May 2009 at 3:31

GoogleCodeExporter commented 8 years ago
Your BaseGP is huge given your decay. You need to consider what is your current 
"GP
income". You killed 1 boss in one week. This means 2 epics. 2 epics of average 
value
of 150GP each for 25 people. This means on average you get 12GP per member per 
week.
And you decay 30% of 250GP which is 75GP. That's more than 5x as much.

- Per boss EP awards are problematic imo. They do not account for trash at all, 
they
have no correlation with difficulty and do not take into account if there are 
new
members in the guild or not which makes the raids drag for more time than they
should. Recurring EP are superior in every sense. Hard bosses take a lot of 
time,
thus get more EP. Trash take some time, but not too much but those are rewarded 
as
well. Farm bosses are like trash too. They go fast so not much EP awards there.
- 30% decay per week is sick. I do not understand why you think that 76% decay 
per
month is a good idea. What you are promoting is people to raid in bursts: 3 
weeks of
raiding grab as many pieces as possible in that time and then stop raiding 
completely
until your GP drops down to BaseGP.
- 5000 MinEP with your current 1k per week EP awards (since you kill only 1 
boss)
simply guarantees that you will NEVER reach MinEP given you current decay%

Bottom line: your configuration makes little sense to me. You haven't answered 
the
question of what you are trying to achieve. You keep saying it doesn't do what 
you
want but without saying what you want how do we even know? :-)

Original comment by evlogimenos on 4 May 2009 at 3:52

GoogleCodeExporter commented 8 years ago
Recurring EP is good, but reloadUI/relog stops it completely. That's bad.
We use it on non-farm bosses, like 35EP/15min. 
These values initially come from naxx raiding: (19 naxx bosses + malygos) x 200 
EP =
4000 EP, plus 200-1000 from Sartharion, depending on the amount of minidrakes 
(we 
killed S+3, but there were many tries with lesser amount of minidrakes).
We also killed 7 Ulduar bosses, so we don't have a problem with minimal EP. 

What we want is:
1. Slacking for more then month should wipe EP/GP (24% is enough, since 
additional
decays still apply)
2. Month of raiding should be enough to be called 'raider'
3. Everybody should take items, collecting EP is bad

Original comment by t...@funpay.ru on 4 May 2009 at 5:10

GoogleCodeExporter commented 8 years ago
How often do you ReadloUI/Relog during a raid. For me it doesn't happen that 
often.

1. Slacking for more than a month should wipe EP/GP: Are you sure you want both
effort and loot to be discounted after one month? So if I received 10 epics 
exactly
one month ago and in the last month you and me have raided the same we should 
have
the same buying power for loot? I think that's unfair but its your rules. Also 
take
into account that you cannot completely ignore EP/GP from one month ago. You 
can make
it count for less but you cannot make it count for zero. If you decay once per 
week
and your decay is 10% in 4 decays 1 point of EP or GP will be 0.65. If your 
decay is
30% in 4 decays 1 point of EP or GP will be 0.24. Assuming that that's what you 
want
set decay to 30%.

2. A month of raiding should be enough to be called a "raider". Given your 
previous
rule, this rule causes problems. In one month all your effort is wiped. So you 
raid
for a month non-stop you become a raider, then you miss 1 week, and you are 
back to
trial status for another month. Since pretty much everyone slips one way or 
another
the majority of your guild is going to be comprised by trials. So one could ask 
a
valid question here: what do you use EPGP for in this case? In order to compute 
how
much EP one will have in 1 month you need some kind of estimate of how much 
EP/week
someone will receive if she raids with you in an acceptable manner. Say 80%
attendance is acceptable and that number comes to 1k EP per week (you need to 
find
this number for your guild). Then you have 1k * 0.7^3 + 1k * 0.7^2 + 1k * 0.7 + 
1k =
MinEP. So MinEP is 2533.

3. Is by nature of the system. Since you want your GP to diminish the same way 
as EP
set BaseGP = 1. MinEP will keep the slackers below MinEP and the raiders will 
be above.

Original comment by evlogimenos on 4 May 2009 at 7:59

GoogleCodeExporter commented 8 years ago
What Alkis said, plus in the latest version of EPGP, when you /rl is resumes
recurring EP.

Looking in more detail, its not the EPGP addon that is at fault, its your way of
implementing it. After using it for 2 years, I finally settled on basically 
copying
the setup of Evlogimenos' guild - MinEP 25000, BaseGP 300, Decay 7% after EVERY 
raid.
Timed EP 1000 every 15 minutes. We never have any issues, EVER. The people that 
raid
a lot get loot regularly, and the people that raid a little, still get loot as 
well,
all fair. Instead of trying to reinvent the system, just copy this basic model, 
and
everything will be fine.

Original comment by dingochavezz@gmail.com on 5 May 2009 at 12:02

GoogleCodeExporter commented 8 years ago
7% decay after every raid means 30% decay per week, if we raid 5/7.
Looks like you use our numbers, except of EP ones. Nevertheless, your large EP
amounts doesn't change anything, since EP modifier is linear.
What's base GP for? It is used to diminish the rate of PR for new raid members, 
isn't
it? Decaying it you just accelerate decays for GP part, leaving it the same for 
EP part. 
The problem is: sometimes, when you set base_gp and decay rate big enough, you 
may
suffer injustice in loot distribution. One character may loot any item, losing 
all
his GP after decay. You may still avoid this by adjusting system parameters, 
but the
algorithm itself can't do anything with this!

Original comment by t...@funpay.ru on 5 May 2009 at 12:27

GoogleCodeExporter commented 8 years ago
Both BaseGP and MinEP are used to stop new members from getting loot very early.
BaseGP has the additional property of accelerating the GP decay.

Let me give you another reason why what you propose should not be implemented. A
decay operation should be non-priority changing. If what you propose is 
implemented,
this is no longer true:
BaseGP = 1000

Member A: 1000EP, 1500GP -> .67 PR
Member B: 10000EP, 2000GP -> 5 PR

Current model

Member A: 900EP, 1350GP -> .67 PR
Member B: 9000EP, 1800GP -> 5 PR

Proposed model

Member A: 900EP, 1450GP -> .62 PR
Member B: 9000EP, 1900GP -> 4.73 PR

This is very confusing for the average player. EPGP is already complicated 
because of
the whole ratio notion, there is no need to complicate it even more.

That said if you use guildlaunch's RapidRaid you can get what you want since 
they
implemented it as you suggest (by accident I assume).

Original comment by evlogimenos on 5 May 2009 at 2:34

GoogleCodeExporter commented 8 years ago
I'd just like to add my support for this enhancement request (and I'd my 
willingness
to help with the change).

Our guild started using EPGP about halfway through Ulduar. We started with 100 
GP
base and 7% weekly decay. Things were good except for the one guy who raided 
all the
time but never got any loot (his PR was like 10 times that of the next highest
person). Obviously this wasn't really a problem, but people saw the high PR 
number
and QQed enough that we decided to change things a bit.

We switch to 1000 base GP and 14% decay. This solved the QQ for a while, but now
everyone has decayed to the point where GP is essentially meaningless and PR is
determined almost entirely by EP.

What we really want to do (and what we thought we were doing when we changed the
system in the first place) is give new recruits 1000 GP to start with without
manually having to do that on a person-by-person basis.

Since there doesn't seem to be an easy way to star everyone out with 1000 GP, 
we can
try to give veterans priority over loot until initiates spend a certain amount 
of GP,
or use the Base GP value, but manually set it back to 0 each week before we do 
decay
(which I'm sure will be error-prone).

If there's any other way to accomplish this that I'm not thinking of, I'd love 
to
know how.

Original comment by cfbradf...@gmail.com on 23 Nov 2009 at 10:14