squarez
10-24-2014, 07:55 PM
Let me preface this by saying I am still new to P1999 but have played classic and dealt with similar issues.
I recently had a discussion with a friend of mine, who is also new, about high profile camps (fungi, etc) on the server and how they are very tough to get into. This seemed pretty reasonable as they are highly sought after items. Through his talks with his veteran p99 player friend, and through personal discovery, he quickly found out that many of these camps are essentially monopolies run by the same people (Blitzkragg and King Tranix was his example).
Now I do not know anything in regards to Blitzkragg or the other 'privately' controlled camps, but with the recent talk of corpse lining bans and other refinements to the camping policies, I thought I would pose a possible solution to what appears to be an issue with hoarding on very scarce items:
Assuming people cannot be agreeable or are running these camps to sustain their financial income through RMT,
What about a CD or cooldown on taking these rare items per account?
Basically, you loot a high profile item (these being determined by staff) twice during the threshold time X, and your account is auto flagged/suspended, with items to be subsequently deleted, etc.
WARNING: if you dont want to read code just skip ahead to TL DR or discussion---
I am not too familiar with what is available during looting in the code, but something like a call to specific SQL procedure for these exceptional item camps that basically stores: account that looted the item, what item it was, and when it was looted, then write these items to a table. Now assuming there is some kind of scheduler in place for SQL operations, every so often run a procedure that basically reads through every record of this new table and performs a check on each high-profile item, and either flags or stores infringing accounts based on difference in date of item loots and the items respective CD for looting.
So for example:
1. Bob camps king for fungi ->
2. Loots Fungi Tunic -> SQL call to procedure: stores his acct, the item, datetime of loot -> stores in our HighProfileLooted table
3. Bob continues to camp fungi ->
Loots another Fungi Tunic -> SQL call to procedure: stores his acct, the item, datetime of loot -> stores in our HighProfileLooted table
4. 4AM Job scheduler kicks off and runs through its procedures -> runs our TrackMonopolyMen procedure/script/etc
5. TrackMonopolyMen now runs and does something like this (sorry for the pseudo C# code):
recordset hpItems = dbfetch(“select distinct * from HighProfileItemEnum”)
Foreach (rec hpItemRec in hpItems)
{
recordset hpLooted = dbfetch("select * from HighProfileLooted where item = @0", hpItemRec.item)
recordset accts = hpLooted.asEnum().SelectDistinct(acct)
foreach (int acctX in accts)
{
datetime previousDateTime = beginningoftime()
foreach (rec hpLootedRec in hpLooted.Where(r => r.acct = acctX))
{
if ((hpLootedRec.lootTime - previousDateTime ) < hpItemRec.itemCooldownTime)
{
SuspendPlayer(acctX)
}
else
{
previousDateTime = hpLootedRec.lootTime
}
}
// do some DB cleanup here
}
}
With some cleanup automated at the end of the script you could maintain the table for these looted high profile items. This would ensure the script is not processing all of the high profile items ever looted.
Now the fairness of using something like this would be determined by the loot time thresholds set by the staff. While this might be non-classic / intrusive, it could be a very effective way to encourage/force non douche-baggery.
Discussion
This was based on my conversations with my friend and others regarding the camping of high value mobs. My initial take was that you had to know the right people and have some pretty serious connections to make it into these camps which are not always group camped, but many times a single person.
Are a lot of these camps indeed 'cock-blocked' ? Or are rotations generally negotiable?
For things like Fungi, I just assume it would be very competitive, but if someone was say, camping an Epic mob to sell the MQ over someone legitimately trying to camp it for their own epic, I would definitely say that is a big problem.
Is this kind of solution a good idea? or is there an easy way around this system? like chaining the camp through friends / alt accounts / etc?
TL : DR New technology allows more players opportunity at rare camps by enforcing account wide cooldowns on looting (staff chosen) rare items.
I recently had a discussion with a friend of mine, who is also new, about high profile camps (fungi, etc) on the server and how they are very tough to get into. This seemed pretty reasonable as they are highly sought after items. Through his talks with his veteran p99 player friend, and through personal discovery, he quickly found out that many of these camps are essentially monopolies run by the same people (Blitzkragg and King Tranix was his example).
Now I do not know anything in regards to Blitzkragg or the other 'privately' controlled camps, but with the recent talk of corpse lining bans and other refinements to the camping policies, I thought I would pose a possible solution to what appears to be an issue with hoarding on very scarce items:
Assuming people cannot be agreeable or are running these camps to sustain their financial income through RMT,
What about a CD or cooldown on taking these rare items per account?
Basically, you loot a high profile item (these being determined by staff) twice during the threshold time X, and your account is auto flagged/suspended, with items to be subsequently deleted, etc.
WARNING: if you dont want to read code just skip ahead to TL DR or discussion---
I am not too familiar with what is available during looting in the code, but something like a call to specific SQL procedure for these exceptional item camps that basically stores: account that looted the item, what item it was, and when it was looted, then write these items to a table. Now assuming there is some kind of scheduler in place for SQL operations, every so often run a procedure that basically reads through every record of this new table and performs a check on each high-profile item, and either flags or stores infringing accounts based on difference in date of item loots and the items respective CD for looting.
So for example:
1. Bob camps king for fungi ->
2. Loots Fungi Tunic -> SQL call to procedure: stores his acct, the item, datetime of loot -> stores in our HighProfileLooted table
3. Bob continues to camp fungi ->
Loots another Fungi Tunic -> SQL call to procedure: stores his acct, the item, datetime of loot -> stores in our HighProfileLooted table
4. 4AM Job scheduler kicks off and runs through its procedures -> runs our TrackMonopolyMen procedure/script/etc
5. TrackMonopolyMen now runs and does something like this (sorry for the pseudo C# code):
recordset hpItems = dbfetch(“select distinct * from HighProfileItemEnum”)
Foreach (rec hpItemRec in hpItems)
{
recordset hpLooted = dbfetch("select * from HighProfileLooted where item = @0", hpItemRec.item)
recordset accts = hpLooted.asEnum().SelectDistinct(acct)
foreach (int acctX in accts)
{
datetime previousDateTime = beginningoftime()
foreach (rec hpLootedRec in hpLooted.Where(r => r.acct = acctX))
{
if ((hpLootedRec.lootTime - previousDateTime ) < hpItemRec.itemCooldownTime)
{
SuspendPlayer(acctX)
}
else
{
previousDateTime = hpLootedRec.lootTime
}
}
// do some DB cleanup here
}
}
With some cleanup automated at the end of the script you could maintain the table for these looted high profile items. This would ensure the script is not processing all of the high profile items ever looted.
Now the fairness of using something like this would be determined by the loot time thresholds set by the staff. While this might be non-classic / intrusive, it could be a very effective way to encourage/force non douche-baggery.
Discussion
This was based on my conversations with my friend and others regarding the camping of high value mobs. My initial take was that you had to know the right people and have some pretty serious connections to make it into these camps which are not always group camped, but many times a single person.
Are a lot of these camps indeed 'cock-blocked' ? Or are rotations generally negotiable?
For things like Fungi, I just assume it would be very competitive, but if someone was say, camping an Epic mob to sell the MQ over someone legitimately trying to camp it for their own epic, I would definitely say that is a big problem.
Is this kind of solution a good idea? or is there an easy way around this system? like chaining the camp through friends / alt accounts / etc?
TL : DR New technology allows more players opportunity at rare camps by enforcing account wide cooldowns on looting (staff chosen) rare items.