mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 01:11:29 +00:00
[Quest API] Add Item Link Methods to Perl/Lua (#4359)
This commit is contained in:
parent
eae05167f8
commit
dda0e410ff
@ -4940,6 +4940,11 @@ void Perl__set_proximity_range(float x_range, float y_range, float z_range, bool
|
|||||||
quest_manager.set_proximity_range(x_range, y_range, z_range, enable_say);
|
quest_manager.set_proximity_range(x_range, y_range, z_range, enable_say);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string Perl__varlink(EQ::ItemInstance* inst)
|
||||||
|
{
|
||||||
|
return quest_manager.varlink(inst);
|
||||||
|
}
|
||||||
|
|
||||||
std::string Perl__varlink(uint32 item_id)
|
std::string Perl__varlink(uint32 item_id)
|
||||||
{
|
{
|
||||||
return quest_manager.varlink(item_id);
|
return quest_manager.varlink(item_id);
|
||||||
@ -6856,6 +6861,7 @@ void perl_register_quest()
|
|||||||
package.add("updatetaskactivity", (void(*)(int, int, int))&Perl__updatetaskactivity);
|
package.add("updatetaskactivity", (void(*)(int, int, int))&Perl__updatetaskactivity);
|
||||||
package.add("updatetaskactivity", (void(*)(int, int, int, bool))&Perl__updatetaskactivity);
|
package.add("updatetaskactivity", (void(*)(int, int, int, bool))&Perl__updatetaskactivity);
|
||||||
package.add("UpdateZoneHeader", &Perl__UpdateZoneHeader);
|
package.add("UpdateZoneHeader", &Perl__UpdateZoneHeader);
|
||||||
|
package.add("varlink", (std::string(*)(EQ::ItemInstance*))&Perl__varlink);
|
||||||
package.add("varlink", (std::string(*)(uint32))&Perl__varlink);
|
package.add("varlink", (std::string(*)(uint32))&Perl__varlink);
|
||||||
package.add("varlink", (std::string(*)(uint32, int16))&Perl__varlink);
|
package.add("varlink", (std::string(*)(uint32, int16))&Perl__varlink);
|
||||||
package.add("varlink", (std::string(*)(uint32, int16, uint32))&Perl__varlink);
|
package.add("varlink", (std::string(*)(uint32, int16, uint32))&Perl__varlink);
|
||||||
|
|||||||
@ -3991,6 +3991,10 @@ void lua_do_anim(int animation_id, int animation_speed, bool ackreq, int filter)
|
|||||||
quest_manager.doanim(animation_id, animation_speed, ackreq, static_cast<eqFilterType>(filter));
|
quest_manager.doanim(animation_id, animation_speed, ackreq, static_cast<eqFilterType>(filter));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string lua_item_link(Lua_ItemInst inst) {
|
||||||
|
return quest_manager.varlink(inst);
|
||||||
|
}
|
||||||
|
|
||||||
std::string lua_item_link(uint32 item_id) {
|
std::string lua_item_link(uint32 item_id) {
|
||||||
return quest_manager.varlink(item_id);
|
return quest_manager.varlink(item_id);
|
||||||
}
|
}
|
||||||
@ -5922,6 +5926,7 @@ luabind::scope lua_register_general() {
|
|||||||
luabind::def("merchant_set_item", (void(*)(uint32,uint32))&lua_merchant_set_item),
|
luabind::def("merchant_set_item", (void(*)(uint32,uint32))&lua_merchant_set_item),
|
||||||
luabind::def("merchant_set_item", (void(*)(uint32,uint32,uint32))&lua_merchant_set_item),
|
luabind::def("merchant_set_item", (void(*)(uint32,uint32,uint32))&lua_merchant_set_item),
|
||||||
luabind::def("merchant_count_item", &lua_merchant_count_item),
|
luabind::def("merchant_count_item", &lua_merchant_count_item),
|
||||||
|
luabind::def("item_link", (std::string(*)(Lua_ItemInst))&lua_item_link),
|
||||||
luabind::def("item_link", (std::string(*)(uint32))&lua_item_link),
|
luabind::def("item_link", (std::string(*)(uint32))&lua_item_link),
|
||||||
luabind::def("item_link", (std::string(*)(uint32,int16))&lua_item_link),
|
luabind::def("item_link", (std::string(*)(uint32,int16))&lua_item_link),
|
||||||
luabind::def("item_link", (std::string(*)(uint32,int16,uint32))&lua_item_link),
|
luabind::def("item_link", (std::string(*)(uint32,int16,uint32))&lua_item_link),
|
||||||
|
|||||||
@ -337,6 +337,17 @@ luabind::object Lua_ItemInst::GetAugmentIDs(lua_State* L)
|
|||||||
return lua_table;
|
return lua_table;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string Lua_ItemInst::GetItemLink()
|
||||||
|
{
|
||||||
|
Lua_Safe_Call_String();
|
||||||
|
|
||||||
|
EQ::SayLinkEngine linker;
|
||||||
|
linker.SetLinkType(EQ::saylink::SayLinkItemInst);
|
||||||
|
linker.SetItemInst(self);
|
||||||
|
|
||||||
|
return linker.GenerateLink();
|
||||||
|
}
|
||||||
|
|
||||||
luabind::scope lua_register_iteminst() {
|
luabind::scope lua_register_iteminst() {
|
||||||
return luabind::class_<Lua_ItemInst>("ItemInst")
|
return luabind::class_<Lua_ItemInst>("ItemInst")
|
||||||
.def(luabind::constructor<>())
|
.def(luabind::constructor<>())
|
||||||
@ -363,6 +374,7 @@ luabind::scope lua_register_iteminst() {
|
|||||||
.def("GetItem", (Lua_Item(Lua_ItemInst::*)(void))&Lua_ItemInst::GetItem)
|
.def("GetItem", (Lua_Item(Lua_ItemInst::*)(void))&Lua_ItemInst::GetItem)
|
||||||
.def("GetItem", (Lua_ItemInst(Lua_ItemInst::*)(uint8))&Lua_ItemInst::GetItem)
|
.def("GetItem", (Lua_ItemInst(Lua_ItemInst::*)(uint8))&Lua_ItemInst::GetItem)
|
||||||
.def("GetItemID", (uint32(Lua_ItemInst::*)(int))&Lua_ItemInst::GetItemID)
|
.def("GetItemID", (uint32(Lua_ItemInst::*)(int))&Lua_ItemInst::GetItemID)
|
||||||
|
.def("GetItemLink", (std::string(Lua_ItemInst::*)(void))&Lua_ItemInst::GetItemLink)
|
||||||
.def("GetItemScriptID", (uint32(Lua_ItemInst::*)(void))&Lua_ItemInst::GetItemScriptID)
|
.def("GetItemScriptID", (uint32(Lua_ItemInst::*)(void))&Lua_ItemInst::GetItemScriptID)
|
||||||
.def("GetKillsNeeded", (uint32(Lua_ItemInst::*)(int))&Lua_ItemInst::GetKillsNeeded)
|
.def("GetKillsNeeded", (uint32(Lua_ItemInst::*)(int))&Lua_ItemInst::GetKillsNeeded)
|
||||||
.def("GetMaxEvolveLvl", (int(Lua_ItemInst::*)(void))&Lua_ItemInst::GetMaxEvolveLvl)
|
.def("GetMaxEvolveLvl", (int(Lua_ItemInst::*)(void))&Lua_ItemInst::GetMaxEvolveLvl)
|
||||||
|
|||||||
@ -90,6 +90,7 @@ public:
|
|||||||
void ItemSay(const char* text);
|
void ItemSay(const char* text);
|
||||||
void ItemSay(const char* text, uint8 language_id);
|
void ItemSay(const char* text, uint8 language_id);
|
||||||
luabind::object GetAugmentIDs(lua_State* L);
|
luabind::object GetAugmentIDs(lua_State* L);
|
||||||
|
std::string GetItemLink();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
bool cloned_;
|
bool cloned_;
|
||||||
|
|||||||
@ -288,6 +288,15 @@ perl::array Perl_QuestItem_GetAugmentIDs(EQ::ItemInstance* self)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string Perl_QuestItem_GetItemLink(EQ::ItemInstance* self)
|
||||||
|
{
|
||||||
|
EQ::SayLinkEngine linker;
|
||||||
|
linker.SetLinkType(EQ::saylink::SayLinkItemInst);
|
||||||
|
linker.SetItemInst(self);
|
||||||
|
|
||||||
|
return linker.GenerateLink();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void perl_register_questitem()
|
void perl_register_questitem()
|
||||||
{
|
{
|
||||||
@ -313,6 +322,7 @@ void perl_register_questitem()
|
|||||||
package.add("GetItem", (EQ::ItemData*(*)(EQ::ItemInstance*))&Perl_QuestItem_GetItem);
|
package.add("GetItem", (EQ::ItemData*(*)(EQ::ItemInstance*))&Perl_QuestItem_GetItem);
|
||||||
package.add("GetItem", (EQ::ItemInstance*(*)(EQ::ItemInstance*, uint8))&Perl_QuestItem_GetItem);
|
package.add("GetItem", (EQ::ItemInstance*(*)(EQ::ItemInstance*, uint8))&Perl_QuestItem_GetItem);
|
||||||
package.add("GetItemID", &Perl_QuestItem_GetItemID);
|
package.add("GetItemID", &Perl_QuestItem_GetItemID);
|
||||||
|
package.add("GetItemLink", &Perl_QuestItem_GetItemLink);
|
||||||
package.add("GetItemScriptID", &Perl_QuestItem_GetItemScriptID);
|
package.add("GetItemScriptID", &Perl_QuestItem_GetItemScriptID);
|
||||||
package.add("GetKillsNeeded", &Perl_QuestItem_GetKillsNeeded);
|
package.add("GetKillsNeeded", &Perl_QuestItem_GetKillsNeeded);
|
||||||
package.add("GetMaxEvolveLevel", &Perl_QuestItem_GetMaxEvolveLevel);
|
package.add("GetMaxEvolveLevel", &Perl_QuestItem_GetMaxEvolveLevel);
|
||||||
|
|||||||
@ -3574,6 +3574,21 @@ uint32 QuestManager::MerchantCountItem(uint32 NPCid, uint32 itemid) {
|
|||||||
return Quant; // return the quantity of itemid (0 if it was never found)
|
return Quant; // return the quantity of itemid (0 if it was never found)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string QuestManager::varlink(EQ::ItemInstance* inst)
|
||||||
|
{
|
||||||
|
QuestManagerCurrentQuestVars();
|
||||||
|
|
||||||
|
if (!inst) {
|
||||||
|
return "INVALID ITEM INSTANCE IN VARLINK";
|
||||||
|
}
|
||||||
|
|
||||||
|
EQ::SayLinkEngine linker;
|
||||||
|
linker.SetLinkType(EQ::saylink::SayLinkItemInst);
|
||||||
|
linker.SetItemInst(inst);
|
||||||
|
|
||||||
|
return linker.GenerateLink();
|
||||||
|
}
|
||||||
|
|
||||||
// Item Link for use in Variables - "my $example_link = quest::varlink(item_id);"
|
// Item Link for use in Variables - "my $example_link = quest::varlink(item_id);"
|
||||||
std::string QuestManager::varlink(
|
std::string QuestManager::varlink(
|
||||||
uint32 item_id,
|
uint32 item_id,
|
||||||
|
|||||||
@ -284,6 +284,7 @@ public:
|
|||||||
void MovePCInstance(int zone_id, int instance_id, const glm::vec4& position);
|
void MovePCInstance(int zone_id, int instance_id, const glm::vec4& position);
|
||||||
void FlagInstanceByGroupLeader(uint32 zone, int16 version);
|
void FlagInstanceByGroupLeader(uint32 zone, int16 version);
|
||||||
void FlagInstanceByRaidLeader(uint32 zone, int16 version);
|
void FlagInstanceByRaidLeader(uint32 zone, int16 version);
|
||||||
|
std::string varlink(EQ::ItemInstance* inst);
|
||||||
std::string varlink(uint32 item_id, int16 charges = 0, uint32 aug1 = 0, uint32 aug2 = 0, uint32 aug3 = 0, uint32 aug4 = 0, uint32 aug5 = 0, uint32 aug6 = 0, bool attuned = false);
|
std::string varlink(uint32 item_id, int16 charges = 0, uint32 aug1 = 0, uint32 aug2 = 0, uint32 aug3 = 0, uint32 aug4 = 0, uint32 aug5 = 0, uint32 aug6 = 0, bool attuned = false);
|
||||||
std::string getcharnamebyid(uint32 char_id);
|
std::string getcharnamebyid(uint32 char_id);
|
||||||
uint32 getcharidbyname(const char* name);
|
uint32 getcharidbyname(const char* name);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user