-
Публикаций
302 -
Зарегистрирован
-
Посещение
Репутация
95 НейтральнаяКонтакты
Информация о Mass
-
Звание
Бывалый
Посетители профиля
1 740 просмотров профиля
-
Mawrak, попробуйте этот скрипт. Сделал на коленке и не проверял se_stalker.script
-
Никаких проблем вернуть, а надо ли?
-
Напрашивается вывод. Возьмите аналогичный распаковщик и не забудьте указать еще и папку patches
-
Значит не полностью распаковали ресурсы игры. Нужно еще распаковывать папку patches. Почему - то некоторые об этом забывают
-
Это нужно, если при логировании аргумент равен нил тогда в лог просто напишет что переменная равна нил, а также когда не знаешь тип переменной. Иногда полезно! Я еще вывожу таблицу. Знаю есть оригинальная print_table, но мне проще сделать логирование и сразу вывести в лог, не думая какой там тип переменной Дополнено 3 минуты спустя Кстати, точно помню в ТЧ assert работал, и я им активно пользовался
-
Я перепутал assert и error_log. Какой-то из них явно не работает в оригинальном движке. Получается что error_log всё-таки работает! Я увидев функцию моментально подумал что у sosiska23 она строка в этой функции тоже раскоментирована. Вот и получилась нелепость Дополнено 2 минуты спустя Я помню что как то выводил в лог с помощью костылей в get_console():execute. В любом случае к оригиналу я не притрагивался уже очень продолжительное время
-
Тогда не знаю в чем причина, почему именно в лог не пишет. Мб потом как-нибудь узнаю в чём затык на оригинале. Нет! В оригинале немного урезано логирование. Я уже и не помню как я тогда выводил нормально инфу в лог Можно попробовать поискать функционал на этом сайте и найти аналогичные функции для оригинала
-
А если так? У меня нет возможности проверить на чистом движке Поэтому... get_console():execute("[error]ABORT CALLED".. string.sub(StringExtraFormat(fmt,...),1,160))
-
Если парсер не переводит на следующую строку. Тогда попробуйте так: get_console():execute("[error]ABORT CALLED ~:"..StringExtraFormat(fmt,...)) P.S. Давно с оригиналом движка дел не имел
-
Нужно строк 15-20 выше Хм... assert не работает в оригинале? Запамятовал я наверное. Можно попробовать заменить движковую ф-ию assert на консольную. Тоесть всю строку на
-
В _g.script, но лучше ее заменить на что-то более нормальное! Например: Я когда-то пользовался этим,но теперь у меня функция немного видоизменена. Много из каких мест вызывается Эта функция сойдет для оригинала! --/ расширенный формат строки (для вывода в лог) function StringExtraFormat(fmt,...) --/ локальная функция: перевод аргумента в стринг local val2str = function(val,lua_type) if lua_type == 'table' then if tonumber(val.x) and tonumber(val.y) and tonumber(val.z) then return string.format('tbl{x=%.3f:y=%.3f:z=%.3f}',val.x,val.y,val.z) --/> end local tbl,str,separator = {},'tbl{',"" for key,_ in pairs(val) do table.insert(tbl, key == tonumber(key) and tostring(key) or key) end table.sort(tbl) for _,key in ipairs(tbl) do if (tonumber(key) or 0) > 0 then str = str..separator..tostring(val[tonumber(key)]) else str = str..separator..key.." = "..tostring(val[key]) end separator = ", " end return str..'}' --/> elseif lua_type == 'userdata' then --/#?# а нужно ли привязываться к движку? if type(val.getP) == 'function' then if type(val.x) == 'number' and type(val.y) == 'number' and type(val.z) == 'number' then return string.format('vec(x=%.3f:y=%.3f:z=%.3f)',val.x,val.y,val.z) --/> end return '<vector>' --/> elseif type(val.setHMSms) == 'function' then return 'CTime('..val:dateToString(0).." "..val:timeToString(3)..")" --/> D/M/Y h:m:s:ms end elseif lua_type == 'string' then return val --string.format("%q", val) --/> elseif lua_type == 'boolean' then return val and "true" or "false" --/> elseif lua_type == 'number' then return tostring(val) --/> end return "<"..lua_type..">" --/> end --/ основное тело функции: парсинг исходной строки if type(fmt) == 'string' then if fmt:match('%%[sdf]') then --/ есть патерн(ы)? if next({...}) then --/ есть аргумент(ы)? local arg,val,lua_type,i = {...},nil,nil,nil for i=1,#arg do val = arg[i] --/ значение текущего аргумента lua_type = type(val) --/ тип текущего аргумента if lua_type == 'number' then fmt = fmt:gsub('%%[dsf]',val,1) else fmt = fmt:gsub('%%s',val2str(val,lua_type),1) end end end fmt = fmt:gsub('%%[sdf]',"<NOT_arg!>") --/ заглушка от отсутствия аргументов end else fmt = val2str(fmt,type(fmt)) end return fmt --/> string --/ с заменой обычных пробелов (sym_space='\032') на печатные ('\160') --return fmt:gsub('%s','\160') --/> string end abort = function(fmt,...) assert("[error]ABORT CALLED:\n" .. StringExtraFormat(fmt, ...)) get_console():execute('flush') exit() end Вроде бы эта функция за авторством Artos'a
-
Если abort не отключен, то выше лога ошибки должна быть чуть-ка больше информации о вылете
-
Не понимаю в чем суть проблемы? Был задан вопрос, на него был дан ответ, затем последовало уточнение, и был задан другой вопрос в том же посте. Я на него ответил, специально процитировав сообщение чтобы не было недопонимания! Нужно проверить всё-ли правильно, нигде ли ничего не забыто!? Если что можно переписать функцию в эфектах
-
Через alife():create("секция_оружия", vector(), 0, 0, db.actor:id()) А чтобы заспавнилось пустое оружие использовать obj:unload_magazine() где obj - клиенский объект local se_obj = alife():create("секция_оружия", vector(), 0, 0, db.actor:id()) if se_obj then level.client_spawn_manager():add(se_obj.id, db.actor:id(), function(id, obj) obj:unload_magazine() end) end Вроде бы так... могу и ошибиться
-
Это был ответ на вопрос! Чтобы играть звук его нужно подключить корректно в файл script_sound.ltx, где и задать тип звука.