trying another method from mod-aoe-loot

This commit is contained in:
Flerp 2025-11-18 16:11:58 -08:00
parent ff4d63ef39
commit d86112823b

View File

@ -131,26 +131,34 @@ namespace
{ {
Loot *loot = &lootGo->loot; Loot *loot = &lootGo->loot;
// 1) Normal items for (uint8 slot = 0; slot < loot->items.size(); ++slot)
for (uint32 slot = 0; slot < loot->items.size(); ++slot)
{ {
LootItem &li = loot->items[slot]; LootItem &li = loot->items[slot];
if (li.is_looted) if (li.is_looted)
continue; continue;
InventoryResult msg = EQUIP_ERR_OK; InventoryResult msg = EQUIP_ERR_OK;
plr->StoreLootItem(uint8(slot), loot, msg); plr->StoreLootItem(slot, loot, msg);
}
if (!loot->quest_items.empty()) const QuestItemMap &questItems = loot->GetPlayerQuestItems();
if (!questItems.empty())
{ {
uint32 baseSlot = loot->items.size(); uint8 baseSlot = static_cast<uint8>(loot->items.size());
for (uint32 q = 0; q < loot->quest_items.size(); ++q) for (uint8 i = 0; i < questItems.size(); ++i)
{ {
QuestItem &qi = loot->quest_items[q]; uint8 slot = baseSlot + i;
if (qi.is_looted) InventoryResult msg = EQUIP_ERR_OK;
continue; plr->StoreLootItem(slot, loot, msg);
}
}
uint8 slot = uint8(baseSlot + q); const QuestItemMap &ffaItems = loot->GetPlayerFFAItems();
if (!ffaItems.empty())
{
for (uint8 i = 0; i < ffaItems.size(); ++i)
{
uint8 slot = i;
InventoryResult msg = EQUIP_ERR_OK; InventoryResult msg = EQUIP_ERR_OK;
plr->StoreLootItem(slot, loot, msg); plr->StoreLootItem(slot, loot, msg);
} }
@ -174,7 +182,7 @@ namespace
} }
} }
void TryAutoFish(Player * plr) void TryAutoFish(Player *plr)
{ {
if (!plr || !plr->IsInWorld() || !RequirementMet(plr)) if (!plr || !plr->IsInWorld() || !RequirementMet(plr))
return; return;
@ -198,11 +206,11 @@ namespace
} }
} }
} }
} }
class AutoFish_WorldScript : public WorldScript class AutoFish_WorldScript : public WorldScript
{ {
public: public:
AutoFish_WorldScript() : WorldScript("AutoFish_WorldScript") {} AutoFish_WorldScript() : WorldScript("AutoFish_WorldScript") {}
void OnAfterConfigLoad(bool) override void OnAfterConfigLoad(bool) override
@ -243,9 +251,9 @@ namespace
TickAutoLoot(diff); TickAutoLoot(diff);
TickRecast(diff); TickRecast(diff);
} }
}; };
void AddSC_autofish_world() void AddSC_autofish_world()
{ {
new AutoFish_WorldScript(); new AutoFish_WorldScript();
} }