From 07a2995285f60ac1243bb8bdeb499fac64d85efb Mon Sep 17 00:00:00 2001 From: BenDol Date: Sun, 19 Jul 2015 06:03:19 +1200 Subject: [PATCH] Fix NPC static text and missing SpeakType. --- modules/game_console/console.lua | 27 ++++++++++++++------------- src/client/statictext.cpp | 5 +++-- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/modules/game_console/console.lua b/modules/game_console/console.lua index cf6178ca..7128c116 100644 --- a/modules/game_console/console.lua +++ b/modules/game_console/console.lua @@ -38,6 +38,7 @@ SpeakTypes = { [MessageModes.RVRChannel] = SpeakTypesSettings.channelWhite, [MessageModes.RVRContinue] = SpeakTypesSettings.rvrContinue, [MessageModes.RVRAnswer] = SpeakTypesSettings.rvrAnswerFrom, + [MessageModes.NpcFromStartBlock] = SpeakTypesSettings.privateNpcToPlayer, -- ignored types [MessageModes.Spell] = SpeakTypesSettings.none, @@ -1020,21 +1021,21 @@ function onTalk(name, level, mode, message, channelId, creaturePos) if (mode == MessageModes.Say or mode == MessageModes.Whisper or mode == MessageModes.Yell or mode == MessageModes.Spell or mode == MessageModes.MonsterSay or mode == MessageModes.MonsterYell or - mode == MessageModes.NpcFrom or mode == MessageModes.BarkLow or mode == MessageModes.BarkLoud) and - creaturePos then - -- Remove curly braces from screen message - local staticMessage = message - if mode == MessageModes.NpcFrom then - local highlightData = getHighlightedText(staticMessage) - if #highlightData > 0 then - for i = 1, #highlightData / 3 do - local dataBlock = { _start = highlightData[(i-1)*3+1], _end = highlightData[(i-1)*3+2], words = highlightData[(i-1)*3+3] } - staticMessage = staticMessage:gsub("{"..dataBlock.words.."}", dataBlock.words) - end + mode == MessageModes.NpcFrom or mode == MessageModes.BarkLow or mode == MessageModes.BarkLoud or + mode == MessageModes.NpcFromStartBlock) and creaturePos then + local staticText = StaticText.create() + -- Remove curly braces from screen message + local staticMessage = message + if mode == MessageModes.NpcFrom or mode == MessageModes.NpcFromStartBlock then + local highlightData = getHighlightedText(staticMessage) + if #highlightData > 0 then + for i = 1, #highlightData / 3 do + local dataBlock = { _start = highlightData[(i-1)*3+1], _end = highlightData[(i-1)*3+2], words = highlightData[(i-1)*3+3] } + staticMessage = staticMessage:gsub("{"..dataBlock.words.."}", dataBlock.words) end end - - local staticText = StaticText.create() + staticText:setColor(speaktype.color) + end staticText:addMessage(name, mode, staticMessage) g_map.addThing(staticText, creaturePos, -1) end diff --git a/src/client/statictext.cpp b/src/client/statictext.cpp index be2de0fe..dfcb9835 100644 --- a/src/client/statictext.cpp +++ b/src/client/statictext.cpp @@ -132,9 +132,10 @@ void StaticText::compose() text += m_name; text += " yells:\n"; m_color = Color(239, 239, 0); - } else if(m_mode == Otc::MessageMonsterSay || m_mode == Otc::MessageMonsterYell || m_mode == Otc::MessageSpell || m_mode == Otc::MessageBarkLow || m_mode == Otc::MessageBarkLoud) { + } else if(m_mode == Otc::MessageMonsterSay || m_mode == Otc::MessageMonsterYell || m_mode == Otc::MessageSpell + || m_mode == Otc::MessageBarkLow || m_mode == Otc::MessageBarkLoud) { m_color = Color(254, 101, 0); - } else if(m_mode == Otc::MessageNpcFrom) { + } else if(m_mode == Otc::MessageNpcFrom || m_mode == Otc::MessageNpcFromStartBlock) { text += m_name; text += " says:\n"; m_color = Color(95, 247, 247);