add get/set playername, add on say2 filter callback

This commit is contained in:
Huoji's
2023-10-20 02:11:59 +08:00
parent 254d0e1cd5
commit af727eaa6b
7 changed files with 195 additions and 37 deletions

View File

@@ -16,6 +16,8 @@ std::unordered_map<uint32_t, _CallbackNames> callbackNameWithEnumMap{
{hash_32_fnv1a_const("player_hurt"), _CallbackNames::kOnPlayerHurt},
{hash_32_fnv1a_const("player_team"), _CallbackNames::kOnPlayerTeamChange},
{hash_32_fnv1a_const("http_request"), _CallbackNames::kOnHttpRequest},
{hash_32_fnv1a_const("say_text_to_filter"),
_CallbackNames::kOnSayText2Filter},
};
auto CallBackNameToEnum(const char* name) -> _CallbackNames {
@@ -255,4 +257,33 @@ auto luaCall_onHttpRequest(std::string url, std::string metaData,
}
});
}
auto luCall_onSayText2Filter(int player, uint64_t eMessageType,
const char* messeageName, const char* param1,
const char* param2, const char* param3,
const char* param4) -> bool {
bool result = false;
ExcuteCallbackInAllLuaVm(_CallbackNames::kOnSayText2Filter,
[&](lua_State* luaVm, int refIndex) -> void {
lua_rawgeti(luaVm, LUA_REGISTRYINDEX,
refIndex);
if (lua_isfunction(luaVm, -1)) {
lua_pushinteger(luaVm, player);
lua_pushinteger(luaVm, eMessageType);
lua_pushstring(luaVm, messeageName);
lua_pushstring(luaVm, param1);
lua_pushstring(luaVm, param2);
lua_pushstring(luaVm, param3);
lua_pushstring(luaVm, param4);
if (lua_pcall(luaVm, 7, 1, 0) != LUA_OK) {
LOG("Error calling Lua callback: %s\n",
lua_tostring(luaVm, -1));
lua_pop(luaVm, 1);
}
if (lua_isboolean(luaVm, -1)) {
result = lua_toboolean(luaVm, -1);
}
}
});
return result;
}
} // namespace ScriptCallBacks