[Quest API] Add Marquee methods to Perl/Lua. (#2544)

* [Quest API] Add zonemarquee to Perl/Lua.

# Perl
- Add `quest::zonemarquee(type, priority, fade_in, fade_out, duration, message)` to Perl.

# Lua
- Add `eq.zone_marquee(type, priority, fade_in, fade_out, duration, message)` to Lua.

# Notes
- Allows operators to easily send a zone-wide marquee, similar to `quest::ze`/`eq.zone_emote`.

* Update lua_general.cpp

* Add other methods.

* Add entity list marquee

* Update client.cpp

* Add more shorthands.
This commit is contained in:
Kinglykrab 2022-11-16 08:23:39 -05:00 committed by GitHub
parent 8c994fef97
commit bb58a9cd20
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 280 additions and 42 deletions

View File

@ -8636,14 +8636,35 @@ void Client::Consume(const EQ::ItemData *item, uint8 type, int16 slot, bool auto
}
}
void Client::SendMarqueeMessage(uint32 type, uint32 priority, uint32 fade_in, uint32 fade_out, uint32 duration, std::string msg)
void Client::SendMarqueeMessage(uint32 type, std::string message, uint32 duration)
{
if(duration == 0 || msg.length() == 0) {
if (!duration || !message.length()) {
return;
}
EQApplicationPacket outapp(OP_Marquee, sizeof(ClientMarqueeMessage_Struct) + msg.length());
ClientMarqueeMessage_Struct *cms = (ClientMarqueeMessage_Struct*)outapp.pBuffer;
EQApplicationPacket outapp(OP_Marquee, sizeof(ClientMarqueeMessage_Struct) + message.length());
ClientMarqueeMessage_Struct* cms = (ClientMarqueeMessage_Struct*) outapp.pBuffer;
cms->type = type;
cms->unk04 = 10;
cms->priority = 510;
cms->fade_in_time = 0;
cms->fade_out_time = 3000;
cms->duration = duration;
strcpy(cms->msg, message.c_str());
QueuePacket(&outapp);
}
void Client::SendMarqueeMessage(uint32 type, uint32 priority, uint32 fade_in, uint32 fade_out, uint32 duration, std::string message)
{
if (!duration || !message.length()) {
return;
}
EQApplicationPacket outapp(OP_Marquee, sizeof(ClientMarqueeMessage_Struct) + message.length());
ClientMarqueeMessage_Struct* cms = (ClientMarqueeMessage_Struct*) outapp.pBuffer;
cms->type = type;
cms->unk04 = 10;
@ -8651,7 +8672,8 @@ void Client::SendMarqueeMessage(uint32 type, uint32 priority, uint32 fade_in, ui
cms->fade_in_time = fade_in;
cms->fade_out_time = fade_out;
cms->duration = duration;
strcpy(cms->msg, msg.c_str());
strcpy(cms->msg, message.c_str());
QueuePacket(&outapp);
}

View File

@ -1531,7 +1531,8 @@ public:
const char* GetRacePlural(Client* client);
const char* GetClassPlural(Client* client);
void SendWebLink(const char* website);
void SendMarqueeMessage(uint32 type, uint32 priority, uint32 fade_in, uint32 fade_out, uint32 duration, std::string msg);
void SendMarqueeMessage(uint32 type, std::string message, uint32 duration = 3000);
void SendMarqueeMessage(uint32 type, uint32 priority, uint32 fade_in, uint32 fade_out, uint32 duration, std::string message);
void SendSpellAnim(uint16 targetid, uint16 spell_id);
void DuplicateLoreMessage(uint32 ItemID);

View File

@ -3797,6 +3797,48 @@ std::string Perl__popuptablerow(std::string message) {
return DialogueWindow::TableRow(message);
}
void Perl__marquee(uint32 type, std::string message)
{
quest_manager.marquee(type, message);
}
void Perl__marquee(uint32 type, std::string message, uint32 duration)
{
quest_manager.marquee(type, message, duration);
}
void Perl__marquee(uint32 type, uint32 priority, uint32 fade_in, uint32 fade_out, uint32 duration, std::string message)
{
quest_manager.marquee(type, priority, fade_in, fade_out, duration, message);
}
void Perl__zonemarquee(uint32 type, std::string message)
{
if (!zone) {
return;
}
entity_list.Marquee(type, message);
}
void Perl__zonemarquee(uint32 type, std::string message, uint32 duration)
{
if (!zone) {
return;
}
entity_list.Marquee(type, message, duration);
}
void Perl__zonemarquee(uint32 type, uint32 priority, uint32 fade_in, uint32 fade_out, uint32 duration, std::string message)
{
if (!zone) {
return;
}
entity_list.Marquee(type, priority, fade_in, fade_out, duration, message);
}
void perl_register_quest()
{
perl::interpreter perl(PERL_GET_THX);
@ -4241,6 +4283,9 @@ void perl_register_quest()
package.add("level", &Perl__level);
package.add("log", &Perl__log);
package.add("log_combat", &Perl__log_combat);
package.add("marquee", (void(*)(uint32, std::string))&Perl__marquee);
package.add("marquee", (void(*)(uint32, std::string, uint32))&Perl__marquee);
package.add("marquee", (void(*)(uint32, uint32, uint32, uint32, uint32, std::string))&Perl__marquee);
package.add("me", &Perl__me);
package.add("message", &Perl__message);
package.add("modifynpcstat", &Perl__ModifyNPCStat);
@ -4393,6 +4438,9 @@ void perl_register_quest()
package.add("write", &Perl__write);
package.add("ze", &Perl__ze);
package.add("zone", &Perl__zone);
package.add("zonemarquee", (void(*)(uint32, std::string))&Perl__zonemarquee);
package.add("zonemarquee", (void(*)(uint32, std::string, uint32))&Perl__zonemarquee);
package.add("zonemarquee", (void(*)(uint32, uint32, uint32, uint32, uint32, std::string))&Perl__zonemarquee);
package.add("zonegroup", &Perl__zonegroup);
package.add("zoneraid", &Perl__zoneraid);

View File

@ -5761,3 +5761,26 @@ void EntityList::DespawnGridNodes(int32 grid_id) {
}
}
}
void EntityList::Marquee(uint32 type, std::string message, uint32 duration) {
for (const auto& c : client_list) {
if (c.second) {
c.second->SendMarqueeMessage(type, message, duration);
}
}
}
void EntityList::Marquee(
uint32 type,
uint32 priority,
uint32 fade_in,
uint32 fade_out,
uint32 duration,
std::string message
) {
for (const auto& c : client_list) {
if (c.second) {
c.second->SendMarqueeMessage(type, priority, fade_in, fade_out, duration, message);
}
}
}

View File

@ -334,6 +334,8 @@ public:
void DescribeAggro(Client *to_who, NPC *from_who, float dist, bool verbose);
void Marquee(uint32 type, std::string message, uint32 duration = 3000);
void Marquee(uint32 type, uint32 priority, uint32 fade_in, uint32 fade_out, uint32 duration, std::string message);
void Message(uint32 to_guilddbid, uint32 type, const char* message, ...);
void MessageStatus(uint32 to_guilddbid, int to_minstatus, uint32 type, const char* message, ...);
void MessageClose(Mob* sender, bool skipsender, float dist, uint32 type, const char* message, ...);

View File

@ -1632,11 +1632,6 @@ void Lua_Client::SetConsumption(int in_hunger, int in_thirst) {
self->SetConsumption(in_hunger, in_thirst);
}
void Lua_Client::SendMarqueeMessage(uint32 type, uint32 priority, uint32 fade_in, uint32 fade_out, uint32 duration, std::string msg) {
Lua_Safe_Call_Void();
self->SendMarqueeMessage(type, priority, fade_in, fade_out, duration, msg);
}
void Lua_Client::SendColoredText(uint32 type, std::string msg) {
Lua_Safe_Call_Void();
self->SendColoredText(type, msg);
@ -2603,6 +2598,21 @@ bool Lua_Client::SendGMCommand(std::string message, bool ignore_status) {
return self->SendGMCommand(message, ignore_status);
}
void Lua_Client::SendMarqueeMessage(uint32 type, std::string message) {
Lua_Safe_Call_Void();
self->SendMarqueeMessage(type, message);
}
void Lua_Client::SendMarqueeMessage(uint32 type, std::string message, uint32 duration) {
Lua_Safe_Call_Void();
self->SendMarqueeMessage(type, message, duration);
}
void Lua_Client::SendMarqueeMessage(uint32 type, uint32 priority, uint32 fade_in, uint32 fade_out, uint32 duration, std::string message) {
Lua_Safe_Call_Void();
self->SendMarqueeMessage(type, priority, fade_in, fade_out, duration, message);
}
luabind::scope lua_register_client() {
return luabind::class_<Lua_Client, Lua_Mob>("Client")
.def(luabind::constructor<>())
@ -2851,6 +2861,9 @@ luabind::scope lua_register_client() {
.def("LockSharedTask", &Lua_Client::LockSharedTask)
.def("MarkSingleCompassLoc", (void(Lua_Client::*)(float,float,float))&Lua_Client::MarkSingleCompassLoc)
.def("MarkSingleCompassLoc", (void(Lua_Client::*)(float,float,float,int))&Lua_Client::MarkSingleCompassLoc)
.def("Marquee", (void(Lua_Client::*)(uint32, std::string))&Lua_Client::SendMarqueeMessage)
.def("Marquee", (void(Lua_Client::*)(uint32, std::string, uint32))&Lua_Client::SendMarqueeMessage)
.def("Marquee", (void(Lua_Client::*)(uint32, uint32, uint32, uint32, uint32, std::string))&Lua_Client::SendMarqueeMessage)
.def("MaxSkill", (int(Lua_Client::*)(int))&Lua_Client::MaxSkill)
.def("MemSpell", (void(Lua_Client::*)(int,int))&Lua_Client::MemSpell)
.def("MemSpell", (void(Lua_Client::*)(int,int,bool))&Lua_Client::MemSpell)
@ -2925,6 +2938,8 @@ luabind::scope lua_register_client() {
.def("SendItemScale", (void(Lua_Client::*)(Lua_ItemInst))&Lua_Client::SendItemScale)
.def("SendGMCommand", (bool(Lua_Client::*)(std::string))&Lua_Client::SendGMCommand)
.def("SendGMCommand", (bool(Lua_Client::*)(std::string,bool))&Lua_Client::SendGMCommand)
.def("SendMarqueeMessage", (void(Lua_Client::*)(uint32, std::string))&Lua_Client::SendMarqueeMessage)
.def("SendMarqueeMessage", (void(Lua_Client::*)(uint32, std::string, uint32))&Lua_Client::SendMarqueeMessage)
.def("SendMarqueeMessage", (void(Lua_Client::*)(uint32, uint32, uint32, uint32, uint32, std::string))&Lua_Client::SendMarqueeMessage)
.def("SendOPTranslocateConfirm", (void(Lua_Client::*)(Lua_Mob,int))&Lua_Client::SendOPTranslocateConfirm)
.def("SendPEQZoneFlagInfo", (void(Lua_Client::*)(Lua_Client))&Lua_Client::SendPEQZoneFlagInfo)

View File

@ -387,7 +387,9 @@ public:
void SetHunger(int in_hunger);
void SetThirst(int in_thirst);
void SetConsumption(int in_hunger, int in_thirst);
void SendMarqueeMessage(uint32 type, uint32 priority, uint32 fade_in, uint32 fade_out, uint32 duration, std::string msg);
void SendMarqueeMessage(uint32 type, std::string message);
void SendMarqueeMessage(uint32 type, std::string message, uint32 duration);
void SendMarqueeMessage(uint32 type, uint32 priority, uint32 fade_in, uint32 fade_out, uint32 duration, std::string message);
void SendColoredText(uint32 type, std::string msg);
void PlayMP3(std::string file);
void QuestReward(Lua_Mob target);

View File

@ -555,6 +555,21 @@ Lua_NPC Lua_EntityList::GetRandomNPC(float x, float y, float z, float distance,
return self->GetRandomNPC(glm::vec3(x, y, z), distance, exclude_npc);
}
void Lua_EntityList::Marquee(uint32 type, std::string message) {
Lua_Safe_Call_Void();
self->Marquee(type, message);
}
void Lua_EntityList::Marquee(uint32 type, std::string message, uint32 duration) {
Lua_Safe_Call_Void();
self->Marquee(type, message, duration);
}
void Lua_EntityList::Marquee(uint32 type, uint32 priority, uint32 fade_in, uint32 fade_out, uint32 duration, std::string message) {
Lua_Safe_Call_Void();
self->Marquee(type, priority, fade_in, fade_out, duration, message);
}
luabind::scope lua_register_entity_list() {
return luabind::class_<Lua_EntityList>("EntityList")
.def(luabind::constructor<>())
@ -624,6 +639,9 @@ luabind::scope lua_register_entity_list() {
.def("HalveAggro", (void(Lua_EntityList::*)(Lua_Mob))&Lua_EntityList::HalveAggro)
.def("IsMobSpawnedByNpcTypeID", (bool(Lua_EntityList::*)(int))&Lua_EntityList::IsMobSpawnedByNpcTypeID)
.def("MakeNameUnique", (std::string(Lua_EntityList::*)(const char*))&Lua_EntityList::MakeNameUnique)
.def("Marquee", (void(Lua_EntityList::*)(uint32, std::string))&Lua_EntityList::Marquee)
.def("Marquee", (void(Lua_EntityList::*)(uint32, std::string, uint32))&Lua_EntityList::Marquee)
.def("Marquee", (void(Lua_EntityList::*)(uint32, uint32, uint32, uint32, uint32, std::string))&Lua_EntityList::Marquee)
.def("Message", (void(Lua_EntityList::*)(uint32, uint32, const char*))&Lua_EntityList::Message)
.def("MessageClose", (void(Lua_EntityList::*)(Lua_Mob, bool, float, uint32, const char*))&Lua_EntityList::MessageClose)
.def("MessageGroup", (void(Lua_EntityList::*)(Lua_Mob, bool, uint32, const char*))&Lua_EntityList::MessageGroup)

View File

@ -88,6 +88,9 @@ public:
Lua_Spawn GetSpawnByID(uint32 id);
void ClearClientPetitionQueue();
bool CanAddHateForMob(Lua_Mob p);
void Marquee(uint32 type, std::string message);
void Marquee(uint32 type, std::string message, uint32 duration);
void Marquee(uint32 type, uint32 priority, uint32 fade_in, uint32 fade_out, uint32 duration, std::string message);
void Message(uint32 guild_dbid, uint32 type, const char *message);
void MessageStatus(uint32 guild_dbid, int min_status, uint32 type, const char *message);
void MessageClose(Lua_Mob sender, bool skip_sender, float dist, uint32 type, const char *message);

View File

@ -3525,6 +3525,42 @@ std::string lua_popup_table_row(std::string message) {
return DialogueWindow::TableRow(message);
}
void lua_marquee(uint32 type, std::string message) {
quest_manager.marquee(type, message);
}
void lua_marquee(uint32 type, std::string message, uint32 duration) {
quest_manager.marquee(type, message, duration);
}
void lua_marquee(uint32 type, uint32 priority, uint32 fade_in, uint32 fade_out, uint32 duration, std::string message) {
quest_manager.marquee(type, priority, fade_in, fade_out, duration, message);
}
void lua_zone_marquee(uint32 type, std::string message) {
if (!zone) {
return;
}
entity_list.Marquee(type, message);
}
void lua_zone_marquee(uint32 type, std::string message, uint32 duration) {
if (!zone) {
return;
}
entity_list.Marquee(type, message, duration);
}
void lua_zone_marquee(uint32 type, uint32 priority, uint32 fade_in, uint32 fade_out, uint32 duration, std::string message) {
if (!zone) {
return;
}
entity_list.Marquee(type, priority, fade_in, fade_out, duration, message);
}
#define LuaCreateNPCParse(name, c_type, default_value) do { \
cur = table[#name]; \
if(luabind::type(cur) != LUA_TNIL) { \
@ -4010,6 +4046,12 @@ luabind::scope lua_register_general() {
luabind::def("popup_table_cell", (std::string(*)(void))&lua_popup_table_cell),
luabind::def("popup_table_cell", (std::string(*)(std::string))&lua_popup_table_cell),
luabind::def("popup_table_row", &lua_popup_table_row),
luabind::def("marquee", (void(*)(uint32,std::string))&lua_marquee),
luabind::def("marquee", (void(*)(uint32,std::string,uint32))&lua_marquee),
luabind::def("marquee", (void(*)(uint32,uint32,uint32,uint32,uint32,std::string))&lua_marquee),
luabind::def("zone_marquee", (void(*)(uint32,std::string))&lua_zone_marquee),
luabind::def("zone_marquee", (void(*)(uint32,std::string,uint32))&lua_zone_marquee),
luabind::def("zone_marquee", (void(*)(uint32,uint32,uint32,uint32,uint32,std::string))&lua_zone_marquee),
/*
Cross Zone

View File

@ -748,7 +748,7 @@ double Lua_Mob::GetSize() {
return self->GetSize();
}
void Lua_Mob::Message(int type, const char *message) {
void Lua_Mob::Message(uint32 type, const char *message) {
Lua_Safe_Call_Void();
// auto inject saylinks
@ -765,7 +765,7 @@ void Lua_Mob::Message(int type, const char *message) {
}
}
void Lua_Mob::MessageString(int type, int string_id, uint32 distance) {
void Lua_Mob::MessageString(uint32 type, uint32 string_id, uint32 distance) {
Lua_Safe_Call_Void();
self->MessageString(type, string_id, distance);
}

View File

@ -179,8 +179,8 @@ public:
int GetWaypointID();
void SetCurrentWP(int wp);
double GetSize();
void Message(int type, const char *message);
void MessageString(int type, int string_id, uint32 distance);
void Message(uint32 type, const char *message);
void MessageString(uint32 type, uint32 string_id, uint32 distance);
void Say(const char *message);
void Say(const char* message, int language);
void QuestSay(Lua_Client client, const char *message);

View File

@ -1603,11 +1603,6 @@ void Perl_Client_ExpeditionMessage(Client* self, int expedition_id, const char*
self->ExpeditionSay(message, expedition_id);
}
void Perl_Client_SendMarqueeMessage(Client* self, uint32 type, uint32 priority, uint32 fade_in, uint32 fade_out, uint32 duration, std::string msg) // @categories Script Utility
{
self->SendMarqueeMessage(type, priority, fade_in, fade_out, duration, std::move(msg));
}
void Perl_Client_SendColoredText(Client* self, uint32 color, std::string msg) // @categories Script Utility
{
self->SendColoredText(color, std::move(msg));
@ -2497,6 +2492,21 @@ bool Perl_Client_SendGMCommand(Client* self, std::string message, bool ignore_st
return self->SendGMCommand(message, ignore_status);
}
void Perl_Client_SendMarqueeMessage(Client* self, uint32 type, std::string message) // @categories Script Utility
{
self->SendMarqueeMessage(type, message);
}
void Perl_Client_SendMarqueeMessage(Client* self, uint32 type, std::string message, uint32 duration) // @categories Script Utility
{
self->SendMarqueeMessage(type, message, duration);
}
void Perl_Client_SendMarqueeMessage(Client* self, uint32 type, uint32 priority, uint32 fade_in, uint32 fade_out, uint32 duration, std::string message) // @categories Script Utility
{
self->SendMarqueeMessage(type, priority, fade_in, fade_out, duration, message);
}
void perl_register_client()
{
perl::interpreter perl(PERL_GET_THX);
@ -2749,6 +2759,9 @@ void perl_register_client()
package.add("LoadZoneFlags", &Perl_Client_LoadZoneFlags);
package.add("LockSharedTask", &Perl_Client_LockSharedTask);
package.add("MarkCompassLoc", &Perl_Client_MarkCompassLoc);
package.add("Marquee", (void(*)(Client*, uint32, std::string))&Perl_Client_SendMarqueeMessage);
package.add("Marquee", (void(*)(Client*, uint32, std::string, uint32))&Perl_Client_SendMarqueeMessage);
package.add("Marquee", (void(*)(Client*, uint32, uint32, uint32, uint32, uint32, std::string))&Perl_Client_SendMarqueeMessage);
package.add("MaxSkill", (int(*)(Client*, uint16))&Perl_Client_MaxSkill);
package.add("MaxSkill", (int(*)(Client*, uint16, uint16))&Perl_Client_MaxSkill);
package.add("MaxSkill", (int(*)(Client*, uint16, uint16, uint16))&Perl_Client_MaxSkill);
@ -2817,7 +2830,9 @@ void perl_register_client()
package.add("SendColoredText", &Perl_Client_SendColoredText);
package.add("SendGMCommand", (bool(*)(Client*, std::string))&Perl_Client_SendGMCommand);
package.add("SendGMCommand", (bool(*)(Client*, std::string, bool))&Perl_Client_SendGMCommand);
package.add("SendMarqueeMessage", &Perl_Client_SendMarqueeMessage);
package.add("SendMarqueeMessage", (void(*)(Client*, uint32, std::string))&Perl_Client_SendMarqueeMessage);
package.add("SendMarqueeMessage", (void(*)(Client*, uint32, std::string, uint32))&Perl_Client_SendMarqueeMessage);
package.add("SendMarqueeMessage", (void(*)(Client*, uint32, uint32, uint32, uint32, uint32, std::string))&Perl_Client_SendMarqueeMessage);
package.add("SendOPTranslocateConfirm", &Perl_Client_SendOPTranslocateConfirm);
package.add("SendPEQZoneFlagInfo", &Perl_Client_SendPEQZoneFlagInfo);
package.add("SendSound", &Perl_Client_SendSound);

View File

@ -531,6 +531,21 @@ NPC* Perl_EntityList_GetRandomNPC(EntityList* self, float x, float y, float z, f
return entity_list.GetRandomNPC(glm::vec3(x, y, z), (distance * distance), exclude_npc);
}
void Perl_EntityList_Marquee(EntityList* self, uint32 type, std::string message)
{
self->Marquee(type, message);
}
void Perl_EntityList_Marquee(EntityList* self, uint32 type, std::string message, uint32 duration)
{
self->Marquee(type, message, duration);
}
void Perl_EntityList_Marquee(EntityList* self, uint32 type, uint32 priority, uint32 fade_in, uint32 fade_out, uint32 duration, std::string message)
{
self->Marquee(type, priority, fade_in, fade_out, duration, message);
}
void perl_register_entitylist()
{
perl::interpreter perl(PERL_GET_THX);
@ -596,6 +611,9 @@ void perl_register_entitylist()
package.add("HalveAggro", &Perl_EntityList_HalveAggro);
package.add("IsMobSpawnedByNpcTypeID", &Perl_EntityList_IsMobSpawnedByNpcTypeID);
package.add("MakeNameUnique", &Perl_EntityList_MakeNameUnique);
package.add("Marquee", (void(*)(EntityList*, uint32, std::string))&Perl_EntityList_Marquee);
package.add("Marquee", (void(*)(EntityList*, uint32, std::string, uint32))&Perl_EntityList_Marquee);
package.add("Marquee", (void(*)(EntityList*, uint32, uint32, uint32, uint32, uint32, std::string))&Perl_EntityList_Marquee);
package.add("Message", &Perl_EntityList_Message);
package.add("MessageClose", &Perl_EntityList_MessageClose);
package.add("MessageGroup", &Perl_EntityList_MessageGroup);

View File

@ -2519,22 +2519,29 @@ void QuestManager::we(int type, const char *str) {
);
}
void QuestManager::message(int color, const char *message) {
void QuestManager::message(uint32 type, const char *message) {
QuestManagerCurrentQuestVars();
if (!initiator)
if (!initiator) {
return;
}
initiator->Message(color, message);
initiator->Message(type, message);
}
void QuestManager::whisper(const char *message) {
QuestManagerCurrentQuestVars();
if (!initiator || !owner)
if (!initiator || !owner) {
return;
}
std::string mob_name = owner->GetCleanName();
std::string new_message = fmt::format("{} whispers, '{}'", mob_name, message);
initiator->Message(Chat::EchoChat1, new_message.c_str());
initiator->Message(
Chat::EchoChat1,
fmt::format(
"{} whispers, '{}'",
owner->GetCleanName(),
message
).c_str()
);
}
int QuestManager::getlevel(uint8 type)
@ -3724,3 +3731,23 @@ void QuestManager::LearnRecipe(uint32 recipe_id) {
initiator->LearnRecipe(recipe_id);
}
void QuestManager::marquee(uint32 type, std::string message, uint32 duration)
{
QuestManagerCurrentQuestVars();
if (!initiator) {
return;
}
initiator->SendMarqueeMessage(type, message, duration);
}
void QuestManager::marquee(uint32 type, uint32 priority, uint32 fade_in, uint32 fade_out, uint32 duration, std::string message)
{
QuestManagerCurrentQuestVars();
if (!initiator) {
return;
}
initiator->SendMarqueeMessage(type, priority, fade_in, fade_out, duration, message);
}

View File

@ -236,20 +236,22 @@ public:
std::string gettaskname(uint32 task_id);
int GetCurrentDzTaskID();
void EndCurrentDzTask(bool send_fail = false);
void clearspawntimers();
void clearspawntimers();
void ze(int type, const char *str);
void we(int type, const char *str);
void message(int color, const char *message);
void marquee(uint32 type, std::string message, uint32 duration = 3000);
void marquee(uint32 type, uint32 priority, uint32 fade_in, uint32 fade_out, uint32 duration, std::string message);
void message(uint32 type, const char *message);
void whisper(const char *message);
int getlevel(uint8 type);
int collectitems(uint32 item_id, bool remove);
int collectitems_processSlot(int16 slot_id, uint32 item_id, bool remove);
int getlevel(uint8 type);
int collectitems(uint32 item_id, bool remove);
int collectitems_processSlot(int16 slot_id, uint32 item_id, bool remove);
int countitem(uint32 item_id);
void removeitem(uint32 item_id, uint32 quantity = 1);
std::string getitemname(uint32 item_id);
void enabletitle(int titleset);
bool checktitle(int titlecheck);
void removetitle(int titlecheck);
void enabletitle(int titleset);
bool checktitle(int titlecheck);
void removetitle(int titlecheck);
uint16 CreateGroundObject(uint32 itemid, const glm::vec4& position, uint32 decay_time = 300000);
uint16 CreateGroundObjectFromModel(const char* model, const glm::vec4& position, uint8 type = 0x00, uint32 decay_time = 0);
void ModifyNPCStat(std::string stat, std::string value);
@ -296,12 +298,12 @@ public:
uint8 FactionValue();
void wearchange(uint8 slot, uint16 texture, uint32 hero_forge_model = 0, uint32 elite_material = 0);
void voicetell(const char *str, int macronum, int racenum, int gendernum);
void LearnRecipe(uint32 recipe_id);
void SendMail(const char *to, const char *from, const char *subject, const char *message);
void LearnRecipe(uint32 recipe_id);
void SendMail(const char *to, const char *from, const char *subject, const char *message);
uint16 CreateDoor( const char* model, float x, float y, float z, float heading, uint8 opentype, uint16 size);
int32 GetZoneID(const char *zone);
static std::string GetZoneLongName(std::string zone_short_name);
static std::string GetZoneLongNameByID(uint32 zone_id);
int32 GetZoneID(const char *zone);
static std::string GetZoneLongName(std::string zone_short_name);
static std::string GetZoneLongNameByID(uint32 zone_id);
static std::string GetZoneShortName(uint32 zone_id);
void CrossZoneDialogueWindow(uint8 update_type, int update_identifier, const char* message, const char* client_name = "");
void CrossZoneLDoNUpdate(uint8 update_type, uint8 update_subtype, int update_identifier, uint32 theme_id, int points = 1, const char* client_name = "");