mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-16 07:30:42 +01:00
Core/Conversations: Fixed CONVERSATION_DYNAMIC_FIELD_LINES structure and defined related opcode/flag
This commit is contained in:
6
sql/updates/world/master/2018_08_24_00_world.sql
Normal file
6
sql/updates/world/master/2018_08_24_00_world.sql
Normal file
@@ -0,0 +1,6 @@
|
||||
ALTER TABLE `conversation_line_template` ADD `Flags` tinyint(3) unsigned NOT NULL DEFAULT '0' AFTER `ActorIdx`;
|
||||
UPDATE `conversation_line_template` SET `Flags`=(`ActorIdx`>>8);
|
||||
UPDATE `conversation_line_template` SET `ActorIdx`=`ActorIdx`&0xFF;
|
||||
ALTER TABLE `conversation_line_template`
|
||||
CHANGE `ActorIdx` `ActorIdx` tinyint(3) unsigned NOT NULL DEFAULT '0' AFTER `UiCameraID`,
|
||||
DROP `Unk`;
|
||||
@@ -62,7 +62,7 @@ void ConversationDataStore::LoadConversationTemplates()
|
||||
TC_LOG_INFO("server.loading", ">> Loaded 0 Conversation actor templates. DB table `conversation_actor_template` is empty.");
|
||||
}
|
||||
|
||||
if (QueryResult lineTemplates = WorldDatabase.Query("SELECT Id, StartTime, UiCameraID, ActorIdx, Unk FROM conversation_line_template"))
|
||||
if (QueryResult lineTemplates = WorldDatabase.Query("SELECT Id, StartTime, UiCameraID, ActorIdx, Flags FROM conversation_line_template"))
|
||||
{
|
||||
uint32 oldMSTime = getMSTime();
|
||||
|
||||
@@ -82,8 +82,8 @@ void ConversationDataStore::LoadConversationTemplates()
|
||||
conversationLine.Id = id;
|
||||
conversationLine.StartTime = fields[1].GetUInt32();
|
||||
conversationLine.UiCameraID = fields[2].GetUInt32();
|
||||
conversationLine.ActorIdx = fields[3].GetUInt16();
|
||||
conversationLine.Unk = fields[4].GetUInt16();
|
||||
conversationLine.ActorIdx = fields[3].GetUInt8();
|
||||
conversationLine.Flags = fields[4].GetUInt8();
|
||||
}
|
||||
while (lineTemplates->NextRow());
|
||||
|
||||
|
||||
@@ -23,6 +23,11 @@
|
||||
|
||||
#include <vector>
|
||||
|
||||
enum ConversationLineFlags
|
||||
{
|
||||
CONVERSATION_LINE_FLAG_NOTIFY_STARTED = 0x1 // Client will send CMSG_CONVERSATION_LINE_STARTED when it runs this line
|
||||
};
|
||||
|
||||
#pragma pack(push, 1)
|
||||
struct ConversationActorTemplate
|
||||
{
|
||||
@@ -36,8 +41,9 @@ struct ConversationLineTemplate
|
||||
uint32 Id; // Link to ConversationLine.db2
|
||||
uint32 StartTime; // Time in ms after conversation creation the line is displayed
|
||||
uint32 UiCameraID; // Link to UiCamera.db2
|
||||
uint16 ActorIdx; // Index from conversation_actors
|
||||
uint16 Unk;
|
||||
uint8 ActorIdx; // Index from conversation_actors
|
||||
uint8 Flags;
|
||||
uint16 Padding;
|
||||
};
|
||||
#pragma pack(pop)
|
||||
|
||||
|
||||
@@ -344,6 +344,7 @@ void OpcodeTable::Initialize()
|
||||
DEFINE_HANDLER(CMSG_CONNECT_TO_FAILED, STATUS_NEVER, PROCESS_INPLACE, &WorldSession::Handle_EarlyProccess);
|
||||
DEFINE_HANDLER(CMSG_CONTRIBUTION_CONTRIBUTE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_CONTRIBUTION_GET_STATE, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_CONVERSATION_LINE_STARTED, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_CONVERT_CONSUMPTION_TIME, STATUS_UNHANDLED, PROCESS_THREADUNSAFE, &WorldSession::Handle_NULL);
|
||||
DEFINE_HANDLER(CMSG_CONVERT_RAID, STATUS_LOGGEDIN, PROCESS_THREADUNSAFE, &WorldSession::HandleConvertRaidOpcode);
|
||||
DEFINE_HANDLER(CMSG_CREATE_CHARACTER, STATUS_AUTHED, PROCESS_THREADUNSAFE, &WorldSession::HandleCharCreateOpcode);
|
||||
|
||||
@@ -243,6 +243,7 @@ enum OpcodeClient : uint16
|
||||
CMSG_CONNECT_TO_FAILED = 0x35D4,
|
||||
CMSG_CONTRIBUTION_CONTRIBUTE = 0x3558,
|
||||
CMSG_CONTRIBUTION_GET_STATE = 0x3559,
|
||||
CMSG_CONVERSATION_LINE_STARTED = 0x354A,
|
||||
CMSG_CONVERT_CONSUMPTION_TIME = 0x36F9,
|
||||
CMSG_CONVERT_RAID = 0x364E,
|
||||
CMSG_CREATE_CHARACTER = 0x3643,
|
||||
|
||||
Reference in New Issue
Block a user