mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-11 16:51:29 +00:00
[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:
parent
8c994fef97
commit
bb58a9cd20
@ -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);
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
|
||||
@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -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, ...);
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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 = "");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user