Скриптеры никогда не делайте так!
Хочу поделиться советом, как избежать ошибки, приводящей к вылету (на которую сам часто напарывался).
Надо проверить наличие предмета, и что-то сделать.
Допустим, надо выяснить какой броник надет на ГГ и изменить какие-то параметры.
честно пишем:
local outfit_in_slot=db.actor:item_in_slot(7)
if outfit_in_slot~=nil and outfit_in_slot:section_name()=="чегототам" then
полагая, что LUA проверит первое условие, и , если ГГ голый не будет проверять второе. Однако LUA честно проверит оба условия, а потом сделает вывод true или false. Вот, а теперь представим, что ГГ голый.
Первое условие nil
Второе условие можно интерпретировать так nil:section() -т.е попытку применить функцию объекта к пустоте. Краш!!! Попытка смешать французское с нижегородским в данном случае приводит к печальным результатам! А как?
local outfit_in_slot=db.actor:item_in_slot(7)
if outfit_in_slot~=nil then --если голый валим отсюда, а не узнаём покрой пиджака
if outfit_in_slot:section_name()=="чегототам" then
....................
end
end