mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-11 21:01:29 +00:00
* [Quest API] Add GetAugmentIDsBySlotID() to Perl/Lua. # Perl - Add `$client->GetAugmentIDsBySlotID(slot_id)`. - Add `$inventory->GetAugmentIDsBySlotID(slot_id)`. # Lua - Add `client:GetAugmentIDsBySlotID(slot_id)`. - Add `inventory:GetAugmentIDsBySlotID(slot_id)`. # Notes - Allows operators to get a list of augments from a specific slot instead of having to build a plugin or something to do it. - Fix issue with Lua tables starting at index `1` versus index `0`, so you lost the first value of the table due to this. * Update inventory_profile.cpp
76 lines
2.4 KiB
C++
76 lines
2.4 KiB
C++
#ifndef EQEMU_LUA_INVENTORY_H
|
|
#define EQEMU_LUA_INVENTORY_H
|
|
#ifdef LUA_EQEMU
|
|
|
|
#include "lua_ptr.h"
|
|
|
|
class Lua_ItemInst;
|
|
class Lua_Item;
|
|
|
|
namespace EQ
|
|
{
|
|
class InventoryProfile;
|
|
}
|
|
|
|
namespace luabind {
|
|
struct scope;
|
|
}
|
|
|
|
luabind::scope lua_register_inventory();
|
|
|
|
// This class should be deprecated due to the nature of inventory actions.
|
|
// Direct manipulation of the inventory system bypasses the client management
|
|
// of database calls and can lead to lost items, duplicated items and/or
|
|
// desync'd inventories, if not handled correctly.
|
|
|
|
class Lua_Inventory : public Lua_Ptr<EQ::InventoryProfile>
|
|
{
|
|
typedef EQ::InventoryProfile NativeType;
|
|
public:
|
|
Lua_Inventory() : Lua_Ptr(nullptr) { }
|
|
Lua_Inventory(EQ::InventoryProfile *d) : Lua_Ptr(d) { }
|
|
virtual ~Lua_Inventory() { }
|
|
|
|
operator EQ::InventoryProfile*() {
|
|
return reinterpret_cast<EQ::InventoryProfile*>(GetLuaPtrData());
|
|
}
|
|
|
|
Lua_ItemInst GetItem(int slot_id);
|
|
Lua_ItemInst GetItem(int slot_id, int bag_slot);
|
|
int PutItem(int slot_id, Lua_ItemInst item);
|
|
int PushCursor(Lua_ItemInst item);
|
|
bool SwapItem(int source_slot, int destination_slot);
|
|
bool DeleteItem(int slot_id);
|
|
bool DeleteItem(int slot_id, int quantity);
|
|
bool CheckNoDrop(int slot_id);
|
|
int CountAugmentEquippedByID(uint32 item_id);
|
|
int CountItemEquippedByID(uint32 item_id);
|
|
Lua_ItemInst PopItem(int slot_id);
|
|
bool HasAugmentEquippedByID(uint32 item_id);
|
|
bool HasItemEquippedByID(uint32 item_id);
|
|
int HasItem(int item_id);
|
|
int HasItem(int item_id, int quantity);
|
|
int HasItem(int item_id, int quantity, int where);
|
|
bool HasSpaceForItem(Lua_Item item, int quantity);
|
|
int HasItemByUse(int use);
|
|
int HasItemByUse(int use, uint8 quantity);
|
|
int HasItemByUse(int use, uint8 quantity, uint8 where);
|
|
int HasItemByLoreGroup(uint32 loregroup);
|
|
int HasItemByLoreGroup(uint32 loregroup, int where);
|
|
int FindFreeSlot(bool for_bag, bool try_cursor);
|
|
int FindFreeSlot(bool for_bag, bool try_cursor, int min_size);
|
|
int FindFreeSlot(bool for_bag, bool try_cursor, int min_size, bool is_arrow);
|
|
int CalcSlotId(int slot_id);
|
|
int CalcSlotId(int slot_id, int bag_slot);
|
|
int CalcBagIdx(int slot_id);
|
|
int CalcSlotFromMaterial(int material);
|
|
int CalcMaterialFromSlot(int equipslot);
|
|
bool CanItemFitInContainer(Lua_Item item, Lua_Item container);
|
|
bool SupportsContainers(int slot_id);
|
|
int GetSlotByItemInst(Lua_ItemInst inst);
|
|
luabind::object GetAugmentIDsBySlotID(lua_State* L, int16 slot_id);
|
|
};
|
|
|
|
#endif
|
|
#endif
|