Added: display local chat message

--HG--
branch : patches-from-atys
hg/hotfix/patches-from-atys
Inky 6 years ago
parent 2f2329c67f
commit 4121a61c85

@ -4175,4 +4175,57 @@ std::string CLuaIHMRyzom::getDbRGBA(const std::string &dbProp)
return toString("%i %i %i %i", color.R, color.G, color.B, color.A);
}
return "";
}
// ***************************************************************************
int CLuaIHMRyzom::displayChatMessage(CLuaState &ls)
{
//H_AUTO(Lua_CLuaIHM_displayChatMessage)
const char *funcName = "displayChatMessage";
CLuaIHM::checkArgMin(ls, funcName, 2);
CLuaIHM::checkArgType(ls, funcName, 1, LUA_TSTRING);
CInterfaceProperty prop;
CChatStdInput &ci = PeopleInterraction.ChatInput;
std::string msg = ls.toString(1);
const std::string dbPath = "UI:SAVE:CHAT:COLORS";
if (ls.type(2) == LUA_TSTRING)
{
std::string input = toLower(ls.toString(2));
std::unordered_map<std::string, std::string> sParam;
// input should match chat_group_filter sParam
sParam.insert(make_pair(string("around"), string(dbPath+":SAY")));
sParam.insert(make_pair(string("region"), string(dbPath+":REGION")));
sParam.insert(make_pair(string("guild"), string(dbPath+":CLADE")));
sParam.insert(make_pair(string("team"), string(dbPath+":GROUP")));
sParam.insert(make_pair(string("universe"), string(dbPath+":UNIVERSE_NEW")));
for (const auto& db : sParam)
{
if (db.first.c_str() == input)
{
prop.readRGBA(db.second.c_str(), " ");
if (input == "around")
ci.AroundMe.displayMessage(ucstring(msg), prop.getRGBA());
if (input == "region")
ci.Region.displayMessage(ucstring(msg), prop.getRGBA());
if (input == "universe")
ci.Universe.displayMessage(ucstring(msg), prop.getRGBA());
if (input == "guild")
ci.Guild.displayMessage(ucstring(msg), prop.getRGBA());
if (input == "team")
ci.Team.displayMessage(ucstring(msg), prop.getRGBA());
break;
}
}
}
if (ls.type(2) == LUA_TNUMBER)
{
sint64 id = ls.toInteger(2);
prop.readRGBA(toString("%s:DYN:%i", dbPath.c_str(), id).c_str(), " ");
if (id >= 0 && id < CChatGroup::MaxDynChanPerPlayer)
ci.DynamicChat[id].displayMessage(ucstring(msg), prop.getRGBA());
}
return 1;
}

@ -60,6 +60,7 @@ private:
static int getMainPageURL(CLuaState &ls);
static int getCharSlot(CLuaState &ls);
static int displaySystemInfo(CLuaState &ls);
static int displayChatMessage(CLuaState &ls);
static int setWeatherValue(CLuaState &ls); // first value is a boolean to say automatic, second value ranges from of to 1 and gives the weather
static int getWeatherValue(CLuaState &ls); // get current real weather value (blend between server driven value & predicted value). Manual weather value is ignored
static int disableContextHelpForControl(CLuaState &ls); // params: CCtrlBase*. return: none

Loading…
Cancel
Save