xr:Line 748

Материал из Modders-wiki - Библиотека знаний модмейкеров S.T.A.L.K.E.R.
Перейти к: навигация, поиск

Общее решение

Решение подобных ошибок[1] - задача нетривиальная. Поэтому их исправлением следует заниматься только тем, кто обладает хотя бы базовыми знаниями скриптинга.

1 вариант

Expression    : !m_error_code
Function    : raii_guard::~raii_guard
File        : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line        : 748
Description    : ...\gamedata\scripts\xxx.script:<номер_строки>: attempt to index global 'имя_функции|имя_файла' (a nil value)

Ошибка

Проблемы с чтением функции или файла.

Подсказка скриптеру

Если в ошибке указано имя_функции, то игра не может определить данную функцию в указанном файле. Возможные причины:

  1. Функции действительно нет.
  2. Имя функции написано с ошибкой.
  3. В некоторых случаях, функция находится ниже по коду от того места, где идёт её вызов.

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

2 вариант

Expression : !m_error_code
Function : raii_guard::~raii_guard
File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line : 748
Description : ...- cop\gamedata\scripts\ui_si.script:383: attempt to perform arithmetic on a string value
Expression : !m_error_code
Function : raii_guard::~raii_guard
File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line : 748
Description : ...- cop\gamedata\scripts\ui_si.script:383: attempt to compare string with number

Ошибка

Попытка выполнить в одном из скриптов арифметические операции со строкой, либо сравнивать строку с числом.

Подсказка скриптеру

Возможно, пропущен вызов tostring, либо вместо операции .. (конкатенация строк) использовали + (сложение чисел).

Если ничего пропущено не было, то т.к. LUA - язык с динамической типизацией, вполне возможно, что что-то изменило тип переменной.

Возможен и такой вариант вылета при отсутствующей функции:

Expression : !m_error_code
Function : raii_guard::~raii_guard
File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line : 748
Description : ...- cop\gamedata\scripts\ui_si.script:383: attempt to call global 'qwe' (a nil value)

Сочетания "несовместимых типов" могут быть и другими.

Возможно попытки конкатенации чисел приведут к похожим вылетам. Наглядный пример:

local a = "name"
local b = 123
local c = a..b

Сцепление строк с изрядной долей вероятности в третьей строке кода - вызовет вылет. Число 25 - это не строка, т.е. не слово. Поэтому необходимо перевести число в строку.

3 вариант

Expression    : !m_error_code
Function      : raii_guard::~raii_guard
File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line          : 748
Description   : ...l.k.e.r. - Зов Припяти\gamedata\scripts\utils.script:355: attempt to perform arithmetic on local 't_pos' (a nil value)

Ошибка

Описание аналогично 3 варианту, вылета: Line 73

Отличие лишь в версии игры, см. строчку File: (в данном случае: ЗП)

Подсказка скриптеру

Аналогично 3 варианту, вылета: Line 73

4 вариант

Expression : !m_error_code 
Function : raii_guard::~raii_guard 
File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp 
Line : 748 
Description : No such operator defined

Ошибка

Описание аналогично 9 варианту, вылета: Line 73

Отличие лишь в версии игры, см. строчку File: (в данном случае: ЗП)

Подсказка скриптеру

Аналогично 9 варианту, вылета: Line 73

5 вариант

Expression    : !m_error_code
Function      : raii_guard::~raii_guard
File          : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line          : 748
Description   : C stack overflow

Ошибка[2]

Описание аналогично 8 варианту, вылета: xr:Line 73

Отличие лишь в версии игры, см. строчку File: (в данном случае: ЗП)

Подсказка скриптеру

Аналогично 8 варианту, вылета: xr:Line 73

6 вариант

Expression : !m_error_code
Function : raii_guard::~raii_guard
File : D:\prog_repository\sources\trunk\xrServerEntities\script_storage.cpp
Line : 748
Description : ...- call of pripyat\gamedata\scripts\xr_logic.script:623: attempt to call field '?' (a nil value)

Ошибка[3]

Описание аналогично 12 варианту, вылета: xr:Line 73

Отличие лишь в версии игры, см. строчку File: (в данном случае: ЗП)

Подсказка скриптеру

Аналогично 12 варианту, вылета: xr:Line 73

Источник

  1. Страница "Справочник вылетов (Line 401 -)" на AMK форуме
  2. Пост пользователя "Toonnix" на форуме AP Production
  3. Вопрос на сайте ответы@mail.ru