Перейти к содержанию

Mass

Сталкеры
  • Публикаций

    305
  • Зарегистрирован

  • Посещение

Репутация

95 Нейтральная

Контакты

1 Подписчик

Информация о Mass

  • Звание
    Бывалый

Посетители профиля

1 829 просмотров профиля
  1. Чего нет - того нет! Я этого не делал. Если я правильно понял, то нужно просто чтобы логика рестриктора не срабатывала. Тогда самое простое убрать кастом дату вообще. Безусловно это сработает, если начать новую игру, иначе придется возиться с пакетами
  2. Нужно в методе отряда в on_register назначить функцию, которая бы читала парaметр story_id, в конфигах игры
  3. Mawrak, попробуйте этот скрипт. Сделал на коленке и не проверял se_stalker.script
  4. Напрашивается вывод. Возьмите аналогичный распаковщик и не забудьте указать еще и папку patches
  5. Значит не полностью распаковали ресурсы игры. Нужно еще распаковывать папку patches. Почему - то некоторые об этом забывают
  6. Это нужно, если при логировании аргумент равен нил тогда в лог просто напишет что переменная равна нил, а также когда не знаешь тип переменной. Иногда полезно! Я еще вывожу таблицу. Знаю есть оригинальная print_table, но мне проще сделать логирование и сразу вывести в лог, не думая какой там тип переменной Дополнено 3 минуты спустя Кстати, точно помню в ТЧ assert работал, и я им активно пользовался
  7. Я перепутал assert и error_log. Какой-то из них явно не работает в оригинальном движке. Получается что error_log всё-таки работает! Я увидев функцию моментально подумал что у sosiska23 она строка в этой функции тоже раскоментирована. Вот и получилась нелепость Дополнено 2 минуты спустя Я помню что как то выводил в лог с помощью костылей в get_console():execute. В любом случае к оригиналу я не притрагивался уже очень продолжительное время
  8. Тогда не знаю в чем причина, почему именно в лог не пишет. Мб потом как-нибудь узнаю в чём затык на оригинале. Нет! В оригинале немного урезано логирование. Я уже и не помню как я тогда выводил нормально инфу в лог Можно попробовать поискать функционал на этом сайте и найти аналогичные функции для оригинала
  9. А если так? У меня нет возможности проверить на чистом движке Поэтому... get_console():execute("[error]ABORT CALLED".. string.sub(StringExtraFormat(fmt,...),1,160))
  10. Если парсер не переводит на следующую строку. Тогда попробуйте так: get_console():execute("[error]ABORT CALLED ~:"..StringExtraFormat(fmt,...)) P.S. Давно с оригиналом движка дел не имел
  11. Нужно строк 15-20 выше Хм... assert не работает в оригинале? Запамятовал я наверное. Можно попробовать заменить движковую ф-ию assert на консольную. Тоесть всю строку на
  12. В _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
  13. Если abort не отключен, то выше лога ошибки должна быть чуть-ка больше информации о вылете