mirror of
https://github.com/EQEmu/Server.git
synced 2026-05-22 12:18:27 +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:
+27
-8
@@ -2904,19 +2904,38 @@ uint32 QuestManager::MerchantCountItem(uint32 NPCid, uint32 itemid) {
|
||||
}
|
||||
|
||||
// Item Link for use in Variables - "my $example_link = quest::varlink(item_id);"
|
||||
const char* QuestManager::varlink(char* perltext, int item_id) {
|
||||
std::string QuestManager::varlink(
|
||||
uint32 item_id,
|
||||
int16 charges,
|
||||
uint32 aug1,
|
||||
uint32 aug2,
|
||||
uint32 aug3,
|
||||
uint32 aug4,
|
||||
uint32 aug5,
|
||||
uint32 aug6,
|
||||
bool attuned
|
||||
) {
|
||||
QuestManagerCurrentQuestVars();
|
||||
const EQ::ItemData* item = database.GetItem(item_id);
|
||||
if (!item)
|
||||
const auto *item = database.CreateItem(
|
||||
item_id,
|
||||
charges,
|
||||
aug1,
|
||||
aug2,
|
||||
aug3,
|
||||
aug4,
|
||||
aug5,
|
||||
aug6,
|
||||
attuned
|
||||
);
|
||||
if (!item) {
|
||||
return "INVALID ITEM ID IN VARLINK";
|
||||
}
|
||||
|
||||
EQ::SayLinkEngine linker;
|
||||
linker.SetLinkType(EQ::saylink::SayLinkItemData);
|
||||
linker.SetItemData(item);
|
||||
linker.SetLinkType(EQ::saylink::SayLinkItemInst);
|
||||
linker.SetItemInst(item);
|
||||
|
||||
strcpy(perltext, linker.GenerateLink().c_str());
|
||||
|
||||
return perltext;
|
||||
return linker.GenerateLink();
|
||||
}
|
||||
|
||||
std::string QuestManager::getitemname(uint32 item_id) {
|
||||
|
||||
Reference in New Issue
Block a user