Top.Mail.Ru
Ответы

У меня проблема с сгм 2.2 ганслингер

у меня частые вылеты Expression : fatal error

Function : CScriptEngine::lua_error

File : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp

Line : 73

Description : <no expression>

Arguments : LUA error: ...a.l.k.e.r. Тень Чернобыля\gamedata\scripts\_g.script:20: bad argument #2 to 'format' (string expected, got no value)

вот например

По дате
По рейтингу
Аватар пользователя
Мастер
6мес
Изменено

Понял, у тебя ошибка в моде SGM 2.2 Ganslinger для S.T.A.L.K.E.R., связанная с Lua-скриптами.
Сообщение об ошибке говорит, что проблема в файле:

123
gamedata\scripts\_g.script
строка: 20

Суть ошибки:
Lua-функция string.format (в коде может быть записано просто format) получила не строку, а nil (пустое значение) во втором аргументе.

bad argument #2 to 'format' (string expected, got no value)

Это значит, что скрипт ожидал, что там будет строка (например, имя предмета или сообщение), а на деле переменная оказалась пустой.

Как исправить

  1. Открыть файл скрипта

    • Перейди в папку с игрой:
      ...\S.T.A.L.K.E.R. Тень Чернобыля\gamedata\scripts\

    • Найди файл _g.script

    • Открой его в Notepad++ или другом текстовом редакторе.

  2. Найти строку 20

    • Там будет что-то вроде:

      12
      local msg = string.format("%s: %s", someVar, anotherVar)
      

      или

      12
      format("%s - %s", var1, var2)
      
  3. Понять, что за переменная пустая

    • Скорее всего, anotherVar или второй аргумент не инициализируется, потому что игра не нашла нужный предмет/НПС/диалог.

  4. Защитить код от nil

    • Можно подставить пустую строку, если переменная пуста:

      12
      local msg = string.format("%s: %s", tostring(someVar or ""), tostring(anotherVar or ""))
      

      или

      12
      format("%s - %s", tostring(var1 or ""), tostring(var2 or ""))
      
  5. Сохранить файл и перезапустить игру

💡 Частая причина — в SGM 2.2 Ganslinger иногда вылетает из-за багнутых переводов или отсутствия строчек в string_table (xml-файлах с текстом).
Если второй аргумент — это game.translate_string(...), а он возвращает nil (строка не найдена в xml), нужно проверить gamedata\configs\text\<lang>\ и убедиться, что строка есть.

Аватар пользователя
Ученик
6мес

А причем тут тч?

Аватар пользователя
Ученик
6мес

я ничегго не поня

Аватар пользователя
Ученик
6мес

я не могу найти

Аватар пользователя
Мудрец
6мес

Ты ничего не попутал? СГМ 2.2 так-то мод для Зова Припяти.

Или ты лог не тот нашёл.

Аватар пользователя
Ученик
6мес

нет



Видео по теме