lua_help.script, или форумы, или исходники движка на котором работаешь, (Последнее - самое надежное. Остальные могут врать).
Но кроме этого..
Есть надежный метод проверить наличие определенного метода у определенного объекта.
function check_obj_has_method(obj, method_name)
if not obj then return false end
if obj and obj[method_name] and type(obj[method_name]) == 'function' then return true end
return false
end
-- Пример использования:
local actor = db.actor
check_obj_has_method(actor, 'section') -- вернет true
check_obj_has_method(actor, 'id') -- вернет true
check_obj_has_method(actor, 'section_name') -- вернет false
check_obj_has_method(obj, 'section') -- Вернет false, т.к. obj не определен в данной области видимости.
Ну или просто
if obj and obj.какой_то_метод and type(obj.какой_то_метод) == 'function' then
obj:какой_то_метод(аргументы) -- Вызываем наш метод.
else
-- Тут можно сообщить в лог, что у этого объекта нет такого метода, и как-то иначе эту ситуацию обработать.
end
Такими проверками легко можно избавиться от любых вылетов по вызовам несуществующих методов у чего-нибудь. Будь то клиентские, серверные, или еще какие-нибудь объекты. Да хоть вектора.
И да, такой метод проверки применим к любому движку, на любой платформе сталкера.