Jump to content

Corpse Looting Rewrite


Recommended Posts

@Wyk3d: as mentioned in >this thread<, if a creature has a chance for loot but this time you are unlucky and it's empty, you get the loot indication on mobs and do not get anything because the server didn't know yet whether it will roll any loot or not.

That would be the argument to create the loot on death, so sparkling mob => always something to loot.

Link to comment
Share on other sites

In official, situation when creatures can drop no loot and they still sparkle is really rarely. few times i saw this ...and thats all.

So i thing that happens only when "creature has a lootid and the random loot generation function produces an empty loot"(arrai). For example take mob from "A new plague quest. After his death u will never see that animation (becouse he is not lootable).

In mangos u can loot everyone....(which is wrong)

There is another thread about that http://getmangos.eu/community/viewtopic.php?id=9193

where mr. PRINCE trying solve this problem.

Link to comment
Share on other sites

  • 39 years later...

As you all know looting is implemented, in how to say it, awful way.

Loot is first requested when player clicks and tries to loot a dead mob with Player::SendLoot . That function fills up the loot from DB using LootMgr which does it's work alright. The problem comes when the player is in a group. The player which clicked the mob, the loot and the mob get passed to the function corresponing the looting mechanism chosen by the group. However, there are only functions for group loot, need for greed and master looter. These just take items at threshold or above, take them out of the loot and roll on them (and then return them if all passed). This way, all items below threshold are "free for all". (and that's how free for all gets implemented). There is no implementation for round robin, and all other functions are not blizzlike at all.

First thing would practically be loading the loot at creature kill rather than click. After that looting systems need to be implemented the right way.

I'm currently working on moving the loot load (I see that a good place for it will be Unit::setDeathState calling a seperate FillLoot function), but to implement the looting systems I need some feedback from retail players..

First and most important: Do the rolls for Group Loot/ Need Before Greed start at creature kill, or when someone clicks it?

Link to comment
Share on other sites

Thanks! these were a few insighful links, but the most important (this is a blue post (blizzard employee) quote):

Loot is generated upon creation.

As soon as you step into an instance, or a mob is created in the world, the loot that's going to drop has already been determined.

(http://forums.worldofwarcraft.com/thread.html?topicId=4311143050 is a good discussion to read)

But thinking about it, that would be a really memomry consuming to do this. Any feedback?

Link to comment
Share on other sites

Well, even if blizz does this for some reason (like trading computing efficiency for memory consumption), it makes no functional difference if you delay loot creation until it is actually referenced, so i'd say you're free to chose how to do it.

I would probably also create it on creature death rather than spawning, without multithreading there's just no reason to consume memory early...it would make sense if there's a low-priority thread that takes care of (re-)spawns and loot generation.

And i totally agree that the loot system deserves some care, sometimes loot is even stuck unlootable for all players (no idea if it has been fixed, but i had it happening that the item is lost when a player with full inventory wins a roll...totally forgot about it, i really wanted to post a bug report eventually)

Link to comment
Share on other sites

First thing would practically be loading the loot at creature kill rather than click.
Why ? It makes perfect sense to only load the loot when really needed i.e when someone actually clicks to loot. There's no reason to follow the way it's done on official when you can do it better ..
Link to comment
Share on other sites

if a mob doesn't have loot on blizz then it won't sparkle.. you easily can check it in alterac valley in the mines.. all mobs there don't drop anything (at least with 2.4.3)

about round robin: it's long time ago that i played on blizz but i think it was set at death of a creature

Link to comment
Share on other sites

How about an idea to check if mob has any loot on creature's death and loot generation leave as-is? If thats (loot check) can be made, ofc.
For some creatures whether it drops anything is random so you cannot determine it in advance without actually generating the loot or at least storing the result of the rand()s and it's probably not worth optimizing for only those where you can. It is only faster if the creature is not looted and i think the creature is more likely to be looted if it always drops something.
Link to comment
Share on other sites

Are you really sure you can get a sparkly empty corpse at official as well? From what I heard, it isn't supposed to happen.

Currently I am missing a few sniffed packets that will show me how to messege the players that it's X player's turn to loot that corpse.

Yes I am 100% positive this happens on Official. I was on last night and I was killing Apes in Sholozar (might have that spelled wrong) and I did get several that had nothing on it. It's an irritation when you are a skinner and have to Loot a mob that has no loot before you can skin it.

Link to comment
Share on other sites

Something else you might want to know from offi: even if a mob is tagged for you to loot, other players in your group can see the loot when right clicking and they can even loot things like money (divided over all players as usual) or items to roll for (causes the need/greed to pop up). So say that loot is group loot with blue+ to roll for, then I can quickly check "your" mob long before you do and loot the money (we all get our part), loot the blue item (we get the need/greed box) but I can't loot "your" green and/or white and/or gray items :)

Btw: good work, I agree the loot needs some work (haven't found the time yet to do it myself unfortunately :lol: )!

Link to comment
Share on other sites

As soon as you step into an instance, or a mob is created in the world, the loot that's going to drop has already been determined.

This actually may not be a complete waste of resources. We're not positive about how the official loot system works; it's quite possible for example that in an instance one random trash mob will drop an epic item. In a condition such as this, loot would have to be generated "ass soon as you step into an instance" and it would mean that our loot system (and DB values) would need a total rewrite.

Link to comment
Share on other sites

Something else you might want to know from offi: even if a mob is tagged for you to loot, other players in your group can see the loot when right clicking and they can even loot things like money (divided over all players as usual) or items to roll for (causes the need/greed to pop up). So say that loot is group loot with blue+ to roll for, then I can quickly check "your" mob long before you do and loot the money (we all get our part), loot the blue item (we get the need/greed box) but I can't loot "your" green and/or white and/or gray items

so, you can see money, regular quest items and above threshold items and loot/start roll on them. You can see below threshold items and free for all quest items (meaning there is only one quest item and not one for every player), however you can't loot them.

BTW, after the person tagged for loot looted, are the below threshold items he didn't loot now free for everyone to loot?

Link to comment
Share on other sites

Are you really sure you can get a sparkly empty corpse at official as well? From what I heard, it isn't supposed to happen.

This should show you how it really is. http://www.youtube.com/watch?v=GmgEv9ZOaWU

Film has been made yesterday on "blizz eu Xavius (pvp)" serv.

Easy to find ... "elvynn forest - The Maclure vineyards" mob - stonetusk boar..(30% of them ...drop empty loot)

Link to comment
Share on other sites

it's quite possible for example that in an instance one random trash mob will drop an epic item.
That particular case can still be solved by determining that trash mob when entering the instance and storing that information without generating any other loot and then use it later, though one could imagine more complicated situations ..
Link to comment
Share on other sites

BTW, after the person tagged for loot looted, are the below threshold items he didn't loot now free for everyone to loot?

Yes, the first one to pick them up gets them.

The same seems to go for above threshold items everyone passed on. Everyone can loot them, but I'm not sure if the person tagged for loot should loot first then or if they become available as soon as everyone passed.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use