F4MP/tiltedcode/Code/server/Services/ScriptService.inl
Jous99 37b16f1547 code upload
codigo original de f4mp y tilted para referencias
2026-01-06 18:45:00 +01:00

42 lines
1.1 KiB
C++

#include <sol/sol.hpp>
template <typename... Args>
std::tuple<bool, String> ScriptService::CallCancelableEvent(const String& acName, Args&&... args) noexcept
{
m_eventCanceled = false;
auto& callbacks = m_callbacks[acName];
for (auto& callback : callbacks)
{
sol::protected_function pf{callback};
auto result = pf(std::forward<Args>(args)...);
if (!result.valid())
{
sol::error err = result;
spdlog::error(err.what());
}
if (m_eventCanceled == true)
return std::make_tuple(true, m_cancelReason);
}
return std::make_tuple(false, "");
}
template <typename... Args> void ScriptService::CallEvent(const String& acName, Args&&... args) noexcept
{
auto& callbacks = m_callbacks[acName];
for (auto& callback : callbacks)
{
sol::protected_function pf{callback};
auto result = pf(std::forward<Args>(args)...);
if (!result.valid())
{
sol::error err = result;
spdlog::error(err.what());
}
}
}