From 0e67bd97a5c1edd9b0b33c3f96e605392bd6d566 Mon Sep 17 00:00:00 2001 From: Henrique Santiago Date: Tue, 7 Aug 2012 13:33:08 -0300 Subject: [PATCH] Moved some talk code to lua --- modules/game_console/console.lua | 11 ++++++++++- modules/game_textmessage/textmessage.lua | 2 +- src/otclient/game.cpp | 9 --------- src/otclient/luafunctions.cpp | 4 ++++ 4 files changed, 15 insertions(+), 11 deletions(-) diff --git a/modules/game_console/console.lua b/modules/game_console/console.lua index 283507c0..25b50935 100644 --- a/modules/game_console/console.lua +++ b/modules/game_console/console.lua @@ -428,7 +428,6 @@ function setIgnoreNpcMessages(ignore) ignoreNpcMessages = ignore end - function navigateMessageHistory(step) local numCommands = #messageHistory if numCommands > 0 then @@ -455,6 +454,16 @@ end function onTalk(name, level, mode, message, channelId, creaturePos) if ignoreNpcMessages and mode == MessageModes.NpcFrom then return end + + 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 + local staticText = StaticText.create() + staticText:addMessage(name, mode, message) + g_map.addThing(staticText, creaturePos, -1) + end + local defaultMessage = mode < 3 and true or false speaktype = SpeakTypes[mode] diff --git a/modules/game_textmessage/textmessage.lua b/modules/game_textmessage/textmessage.lua index 9fe69363..f0ae185c 100644 --- a/modules/game_textmessage/textmessage.lua +++ b/modules/game_textmessage/textmessage.lua @@ -94,7 +94,7 @@ function displayMessage(mode, text) end function displayPrivateMessage(text) - displayMessage(254, text) + displayMessage(254, text) end function displayStatusMessage(text) diff --git a/src/otclient/game.cpp b/src/otclient/game.cpp index 71ce517a..fa1a8ce0 100644 --- a/src/otclient/game.cpp +++ b/src/otclient/game.cpp @@ -170,15 +170,6 @@ void Game::processTextMessage(Otc::MessageMode mode, const std::string& text) void Game::processTalk(const std::string& name, int level, Otc::MessageMode mode, const std::string& text, int channelId, const Position& pos) { - if(pos.isValid() && (mode == Otc::MessageSay || mode == Otc::MessageWhisper || mode == Otc::MessageYell || mode == Otc::MessageSpell || - mode == Otc::MessageMonsterSay || mode == Otc::MessageMonsterYell || mode == Otc::MessageNpcFrom || - mode == Otc::MessageBarkLow || mode == Otc::MessageBarkLoud)) - { - StaticTextPtr staticText = StaticTextPtr(new StaticText); - staticText->addMessage(name, mode, text); - g_map.addThing(staticText, pos); - } - g_lua.callGlobalField("g_game", "onTalk", name, level, mode, text, channelId, pos); } diff --git a/src/otclient/luafunctions.cpp b/src/otclient/luafunctions.cpp index 6838bb0d..8496077d 100644 --- a/src/otclient/luafunctions.cpp +++ b/src/otclient/luafunctions.cpp @@ -351,7 +351,11 @@ void OTClient::registerLuaFunctions() g_lua.registerClass(); g_lua.registerClass(); + g_lua.registerClass(); + g_lua.bindClassStaticFunction("create", []{ return StaticTextPtr(new StaticText); }); + g_lua.bindClassMemberFunction("addMessage", &StaticText::addMessage); + g_lua.registerClass(); g_lua.registerClass();