mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-16 22:58:34 +00:00
[Quest API] Add Charges/Augment/Attuned Support to Varlink. (#2685)
# Perl - Add `quest::varlink(item_id, charges)`. - Add `quest::varlink(item_id, charges, aug1)`. - Add `quest::varlink(item_id, charges, aug1, aug2)`. - Add `quest::varlink(item_id, charges, aug1, aug2, aug3)`. - Add `quest::varlink(item_id, charges, aug1, aug2, aug3, aug4)`. - Add `quest::varlink(item_id, charges, aug1, aug2, aug3, aug4, aug5)`. - Add `quest::varlink(item_id, charges, aug1, aug2, aug3, aug4, aug5, aug6)`. - Add `quest::varlink(item_id, charges, aug1, aug2, aug3, aug4, aug5, aug6, attuned)`. # Lua - Add `eq.item_link(item_id, charges)`. - Add `eq.item_link(item_id, charges, aug1)`. - Add `eq.item_link(item_id, charges, aug1, aug2)`. - Add `eq.item_link(item_id, charges, aug1, aug2, aug3)`. - Add `eq.item_link(item_id, charges, aug1, aug2, aug3, aug4)`. - Add `eq.item_link(item_id, charges, aug1, aug2, aug3, aug4, aug5)`. - Add `eq.item_link(item_id, charges, aug1, aug2, aug3, aug4, aug5, aug6)`. - Add `eq.item_link(item_id, charges, aug1, aug2, aug3, aug4, aug5, aug6, attuned)`. # Notes - Allows operators to link items with specific charges, augments, and attuned flag. - Gives much more versatility to the varlink/item_link methods.
This commit is contained in:
+24
-6
@@ -1525,15 +1525,24 @@ bool SharedDatabase::LoadFactionAssociation(const std::string &prefix)
|
||||
}
|
||||
|
||||
// Create appropriate EQ::ItemInstance class
|
||||
EQ::ItemInstance* SharedDatabase::CreateItem(uint32 item_id, int16 charges, uint32 aug1, uint32 aug2, uint32 aug3, uint32 aug4, uint32 aug5, uint32 aug6, uint8 attuned)
|
||||
{
|
||||
EQ::ItemInstance* SharedDatabase::CreateItem(
|
||||
uint32 item_id,
|
||||
int16 charges,
|
||||
uint32 aug1,
|
||||
uint32 aug2,
|
||||
uint32 aug3,
|
||||
uint32 aug4,
|
||||
uint32 aug5,
|
||||
uint32 aug6,
|
||||
bool attuned
|
||||
) {
|
||||
EQ::ItemInstance* inst = nullptr;
|
||||
|
||||
const EQ::ItemData* item = GetItem(item_id);
|
||||
if (item) {
|
||||
inst = CreateBaseItem(item, charges);
|
||||
|
||||
if (inst == nullptr) {
|
||||
if (!inst) {
|
||||
LogError("Error: valid item data returned a null reference for EQ::ItemInstance creation in SharedDatabase::CreateItem()");
|
||||
LogError("Item Data = ID: {}, Name: {}, Charges: {}", item->ID, item->Name, charges);
|
||||
return nullptr;
|
||||
@@ -1553,13 +1562,22 @@ EQ::ItemInstance* SharedDatabase::CreateItem(uint32 item_id, int16 charges, uint
|
||||
|
||||
|
||||
// Create appropriate EQ::ItemInstance class
|
||||
EQ::ItemInstance* SharedDatabase::CreateItem(const EQ::ItemData* item, int16 charges, uint32 aug1, uint32 aug2, uint32 aug3, uint32 aug4, uint32 aug5, uint32 aug6, uint8 attuned)
|
||||
{
|
||||
EQ::ItemInstance* SharedDatabase::CreateItem(
|
||||
const EQ::ItemData* item,
|
||||
int16 charges,
|
||||
uint32 aug1,
|
||||
uint32 aug2,
|
||||
uint32 aug3,
|
||||
uint32 aug4,
|
||||
uint32 aug5,
|
||||
uint32 aug6,
|
||||
bool attuned
|
||||
) {
|
||||
EQ::ItemInstance* inst = nullptr;
|
||||
if (item) {
|
||||
inst = CreateBaseItem(item, charges);
|
||||
|
||||
if (inst == nullptr) {
|
||||
if (!inst) {
|
||||
LogError("Error: valid item data returned a null reference for EQ::ItemInstance creation in SharedDatabase::CreateItem()");
|
||||
LogError("Item Data = ID: {}, Name: {}, Charges: {}", item->ID, item->Name, charges);
|
||||
return nullptr;
|
||||
|
||||
+2
-2
@@ -126,7 +126,7 @@ public:
|
||||
uint32 aug4 = 0,
|
||||
uint32 aug5 = 0,
|
||||
uint32 aug6 = 0,
|
||||
uint8 attuned = 0
|
||||
bool attuned = 0
|
||||
);
|
||||
EQ::ItemInstance *CreateItem(
|
||||
const EQ::ItemData *item,
|
||||
@@ -137,7 +137,7 @@ public:
|
||||
uint32 aug4 = 0,
|
||||
uint32 aug5 = 0,
|
||||
uint32 aug6 = 0,
|
||||
uint8 attuned = 0
|
||||
bool attuned = 0
|
||||
);
|
||||
EQ::ItemInstance *CreateBaseItem(const EQ::ItemData *item, int16 charges = 0);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user