Attempt to call a nil value
Attempt to call a nil value
Description: calling a function that doesn’t exist
printtt(«abc») — printtt is not a function
test() — calling before it’s defined, same error
Unexpected symbol near ‘something’
Unexpected symbol near ‘something’
Description: an invalid character is placed next to a value/keyword/variable/function call
function abc()) end — unexpected symbol near ‘)’
a l= 15 — unexpected symbol near ‘l’
local a = 5] — unexpected symbol near ‘]’
Attempt to index global ‘variable’ (a nil value)
Attempt to index global ‘variable’ (a nil value)
Description: indexing via [key]
or .key
for a variable that doesn’t exist
abc.x = 5 — abc is nil, error
abc = {} — abc defined here
xyz[‘x’] = ‘abc’ — xyz is nil, error
Attempt to perform arithmetic on a nil value
Attempt to perform arithmetic on a nil value
Description: performing arithmetic (*, /, -, +, %, ^) on a nil value
print(xyz + 5) — error, xyz not defined
a = a + 5 — error, a not defined
Attempt to perform arithmetic on field ‘?’ (a nil value)
Attempt to perform arithmetic on field ‘?’ (a nil value)
Description: performing arithmetic (*, /, -, +, %, ^) on a nil value
Attempt to compare nil with <TYPE>
Attempt to compare nil with <TYPE>
Description: using a comparison operator (<, >, ~=, ==, >=, <=) in which one side is a nil value
print(x < y) — y is not defined
Malformed number near <NUMBER>
Malformed number near <NUMBER>
Description: the number has an invalid character next to it
print(12345aaa) — aaa makes it a malformed number
Unfinished capture | Malformed pattern
Unfinished capture | Malformed pattern
Description: the pattern is missing a closing )
, or a closing ]
print(string.match(‘ABC’, ‘(‘)) — unfinished capture
print(string.match(‘ABC’, ‘[‘)) — malformed pattern
When you get an error, Lua provides a stack trace showing you where it originates from, where the error occurs, the function calls that led to the error, and the line number of where it occurred.
A general error will look like this:
file_location:LINE NUMBER: error message
file_location:LINE NUMBER: in <local/function> ‘FUNC’
file_location:LINE NUMBER: in main chunk
C:Usersuserlua_file.lua:5: attempt to perform arithmetic on a nil value (field ‘x’)
C:Usersuserlua_file.lua:5: in local ‘c’
C:Usersuserlua_file.lua:7: in local ‘b’
C:Usersuserlua_file.lua:9: in function ‘a’
C:Usersuserlua_file.lua:12: in main chunk
The code that resulted in this error is:
Here you can see the line number 5
after the file location, which tells us where the exact line with the code that resulted in the error. The stack traceback shows the functions that were called that led up to that.
First, function a
is called at line 12, then function b
is called at line 9 inside of a
, then c
is called at line 7 inside of function b
, and finally at line 5, the error occurs inside of function c
.
A note to add is that comments can offset the line number and make it appear as the error is in a line that doesn’t exist or doesn’t look like an error,
nikolz
Пользователь
Сообщений: 2898
Регистрация: 30.01.2015
Цитата |
---|
Сергей написал: Приветствую, во втором сообщении код индикатора. Стандартный фрактал на lua. Мне нужно просто поднять/опустить его от графика, потому что он очень близко рисуется, мелкие свечи бывает не видно. Я делаю его в виде жирных точек, вот они сильно низко рисуются. А стандартные треугольники со сделками иногда сливаются. |
можно сделать так:
—————-
В setting добавляем два значения вот так:
Settings = {
Name = «nk_FRACTALS(Fractals)»,
X1 = 0.0, — это смещение для максимума
X2 = 0.0, — это смещение для минимума
Period = 5,
line = {{
Name = «Horizontal line»,
Type = TYPE_LINE,
Color = RGB(140, 140, 140)
},
{
Name = «FRACTALS — Up»,
Type = TYPE_TRIANGLE_UP,
Color = RGB(0, 206, 0)
},
{
Name = «FRACTALS — Down»,
Type = TYPE_TRIANGLE_DOWN,
Color = RGB(221, 44, 44)
}
},
———————
далее добавляем вот такую функцию
———————
local function nk_sm(X,N,m) if N then return X(N)+m end end
——————
и исправляем две строки в функции
——————
function OnCalculate(Index)
local Out1,Out2 = func(Index, Settings)
SetValue(Out1, 2, ConvertValue(Settings,nk_sm(H,Out1,Settings.X1)))
SetValue(Out2, 3, ConvertValue(Settings,nk_sm(L,Out2,Settings.X2)))
return tonumber(Settings.Horizontal_line),nil,nil
end
=================
если что не так, пишите, поправлю.
What Are Lua Errors?
A Lua error is caused when the code that is being ran is improper. There are many reasons for why a Lua error might occur, but understanding what a Lua error is and how to read it is an important skill that any developer needs to have.
Effects of Errors on Your Scripts
An error will halt your script’s execution when it happens. That means that when an error is thrown, some elements of your script might break entirely. For example, if your gamemode has a syntax error which prevents init.lua from executing, your entire gamemode will break.
Lua Error Format
The first line of the Lua error contains 3 important pieces of information:
- The path to the file that is causing the error
- The line that is causing the error
- The error itself
Here is an example of a code that will cause a Lua error:
local text = «Hello World»
Print( text )
The code will produce the following error:
[ERROR]addons/my_addon/lua/autorun/server/sv_my_addon_autorun.lua:2: attempt to call global ‘Print’ (a nil value)
1. unknown — addons/my_addon/lua/autorun/server/sv_my_addon_autorun.lua:2
That is because Print is not an existing function (print, however, does exist).
The first line includes the path to the file that is causing the error — addons/my_addon/lua/autorun/server/sv_my_addon_autorun.lua
Afterwards, the line that’s producing the error — sv_my_addon_autorun.lua:2 (Line 2)
Lastly, the error itself — attempt to call global ‘Print’ (a nil value)
Below the error, we have the trace of the function. Simplified — If the error is inside a function/chunk of code that is called from somewhere else, it will state where the code is called from.
If the error happens serverside, the text color will be blue. If it happened clientside, it will be yellow. If it’s menu code, it will be green (not a typical scenario). Messages which look like errors but are colored differently, such as red or white, are not Lua errors but rather engine errors.
Printing Your Own
If you want to print your own error messages, there are three functions to do it:
- error will print your message, halt execution, and print the stack. Normal error behavior.
- ErrorNoHalt will print the file/line number and your message without halting the script. Useful for warning messages.
- assert will check to make sure that something is true. If it’s not, it will print your message and halt just like error does.
Common Errors
Attempt to call global ‘?’ a nil value
Description: You tried to call a function that doesn’t exist.
Possible causes:
- Your function might be defined in another Lua state. (e.g Calling a function on the client that only exists on the * server.)
- You’re using a metafunction on the wrong kind of object. (e.g. Calling :SteamID() on a Vector)
- The function you’re calling has an error in it which means it is not defined.
- You’ve misspelled the name of the function.
Ways to fix:
- Make sure the function exists
- Make sure your function is defined in the correct realm
- Check your function calls for spelling errors
Attempt to perform arithmetic on global ‘?’ (a nil value)
Description: You tried to perform arithmetic (+, -, *, /) on a global variable that is not defined.
Possible causes:
- You tried to use a local variable that was defined later in the code
- You’ve misspelled the name of the global variable
Ways to fix:
- Make sure you define local variables before calling them in the code
- Check for spelling errors
Attempt to perform arithmetic on ‘?’ (a type value)
Description: You tried to perform arithmetic (+, -, *, /) on a variable that cannot perform arithmetic. (e.g. 2 + «some string»)
Attempt to index global ‘varname’ (a nil value)
Description: You tried to index an undefined variable (e.g. print( variable.index )
where variable
is undefined)
Possible causes:
- The variable is defined in a different realm
- The variable is local and defined later in the code
- You’ve misspelled the name of the variable
Ways to fix:
- Make sure the variable is only accessed in the realm it was defined in
- If the variable is local, define it before accessing it
Malformed number near ‘number’
Description: There is a malformed number in the code (e.g. 1.2.3, 2f)
Possible causes:
- An IP address was written as a number instead of a string
- Incorrect writing of multiplication of a number and a variable
- Trying to concatenate a number to a string without a space between the number and the operator.
Ways to fix:
- Store IP addresses as a string
- Multiply variables with numbers by using the ***** operator
- Put a space between the concat (..) operator and the number.
Unexpected symbol near ‘symbol’
Description: You typed a symbol in the code that Lua didn’t know how to interpret.
Possible causes:
- Incorrect syntax (e.g. Forgot to write «then» after an if statement)
- Not closing brackets and parentheses at the correct locations
Ways to fix:
- Make sure there are no mistypes in the code
- Close brackets and parentheses correctly (See: Code Indentation)
‘symbol1’ expected near ‘symbol2’
Description: Lua expected symbol1 instead of symbol2.
When ‘symbol2’ is <eof>, Lua expected a symbol before the end of the file
Possible causes:
- Not closing all brackets, parentheses or functions before the end of the file
- Having too many
end
statements - Wrong operator calling (e.g. «==» instead of «=»)
- Missing comma after table item.
Ways to fix:
- Close brackets and parentheses correctly (See: Code Indentation)
- Use the correct operators
- Add a comma after a table item
Couldn’t include file ‘file’ — File not found (<nowhere>)
Description: The file system tried to include a file that either doesn’t exist or was added while the server was live.
This error can also be a AddCSLuaFile
error.
Possible causes:
- Attempting to include / AddCSLuaFile a file that doesn’t exist or is empty
- Creating a file while the server is still live
Ways to fix:
- Add the non-existent file, make sure the file isn’t empty
- Restart the server
So I ran your code with the proposed LDA 15 STA 3
which triggers your bad register message. This causes an error for concatenating a global nil value i
caused by error = "Bad register["..i.."]"
i
is nil inside cpu()
!
So I removed this error and changed to the second suggestion LDA 5 STA 4
Now I got the following error
97: attempt to concatenate a nil value (field ‘?’)
Caused by print(registerOpcode[i]..","..registerOperand[i])
for i
being 3
First you run decode which gives you
registerOpcode = {7, 9}
and registerOperand = {5, 4}
In the first call of cpu you assign 7
to registerA
.
In the second call you assign registerA
to registerOpcode[4]
So now registerOpCode = {7, 9, nil, 4}
Then you run a numeric for loop over registerOpcode that indexes registerOpcode[3]
which is nil
.
I don’t know how and where you faced the quoted error
Error:attempt to perform arithmetic on a nil value (field ‘?’)
But it is not caused by the code/input you provided. The mentioned line contains an assignment. This cannot cause an error for arithmetic operations.
-
#1
Привет всем! Вообщем нашёл на просторах нужный материал в опен кодах так не могу короче исправить ошибки!
Уже все пробывал!
Вот строки ошибок и сами ошибки
1347: attempt to index local ‘f’ (a nil value)
2279: attempt to perform arithmetic on a nil value
2297: attempt to perform arithmetic on a nil value
2304: attempt to perform arithmetic on a nil value
2317: attempt to perform arithmetic on a nil value
2326: attempt to perform arithmetic on a nil value
function UpdateTxtFiles()
for i = 1, #config do
local f = io.open(bot_name..'/Settings/'..config[i][1]..'.txt', "r")
config[i][2] = f:read('*a') -- 1347 строка
f:close()
end
end
newTask(function()
while true do
wait(tonumber(config[3][2])*1000) --2270 строка
if isConnected() then
sendInput('/ao -> Каждые 15 минут я задаю вопрос, за верный ответ вы получите рандомный НОВЫЙ LUXE транспорт!')
sendInput('/ao -> Каждые 7 минуты я загадываю число от 1 до 10 на рандомный скин!')
sendInput('/ao -> Каждые 3 минуты проводится капча на рандомный скин. Зовите друзей, будет веселее!')
sendInput('/a -> Чтобы включить автоопру используйте "/a бот автoопра"')
sendInput('/a -> Чтобы посадить последнего игрока, который словил бизнес используйте "/a бот лaст биз"')
sendInput('/a -> Чтобы посадить последнего игрока, который словил дом используйте "/a бот лaст дoм"')
sendInput('/a -> Чтобы узнать данные о местоположении игрока и расстояние используйте "/a бот рeги ID"')
sendInput('/ao -> Покупка Донат Услуг - vk.com/padrhirano"')
VkMessage('🌍 Информация о акциях бота отправлена [отправляется раз в '..tonumber(config[3][2])..' секунд].')
VkMessage('🌍 Информация у покупки *padrhirano(textov) отправлена [отправляется раз в '..tonumber(config[3][2])..' секунд].')
end
end
end)
newTask(function()
while true do
wait(tonumber(config[4][2])*1000) --2297 строка
startQuestion()
end
end)
newTask(function()
while true do
wait(tonumber(config[2][2])*1000)--2304
if isConnected() then
sendInput('/ao Нужен флип? Пишите: /vr "дайте флип", "админы флип", "админы почините", "почините", "бот дай флип"')
sendInput('/ao Нужен Инфернус? Пишите: /vr "дайте инфернус", "дай инфернус", "дай тачку", "дайте тачку"')
sendInput('/ao Нужен NRG? Пишите: /vr "дайте нрг", "дай нрг", "дай мотоцикл", "дайте мотоцикл"')
sendInput('/ao Нужно заспавниться? Пишите: /vr "заспавните", "спавн дайте", "бот спавн", "админы спавн"')
VkMessage('🌍 Информация о взаимодействии с ботом отправлена [отправляется раз в '..tonumber(config[2][2])..' секунд].')
end
end
end)
newTask(function()
while true do
wait(tonumber(config[1][2])*1000)--2317 строка
if isConnected() then
startCaptcha()
end
end
end)
newTask(function()
while true do
wait(tonumber(config[5][2])*1000)--2326 строка
if isConnected() then
startSkin()
end
end
end)
ПОМОГИТЕ ПОЖАЛУЙСТА
-
#2
все лoмается из-за f:read, проверь существует ли файл который ты пытаешься открыть через io.open. а вообще лучше полностью переписать систему конфигов, так как сейчас это какая то дичь
-
#3
все лoмается из-за f:read, проверь существует ли файл который ты пытаешься открыть через io.open. а вообще лучше полностью переписать систему конфигов, так как сейчас это какая то дичь
Друг я полный 0 в скриптах просто нашел на просторах интернета