Задать вопрос
@troltrolpng

Ошибка при запуске скрипта Lua?

хотел написать скрипт, который бы в чате видел определённую строку и начинал писать в чат команду.
выдаёт ошибку:

[ML] (error) house.lua: C:\Program Files (x86)\gta for3\moonloader\house.lua:7: bad argument #1 to 'find' (string expected, got nil)
stack traceback:
	[C]: in function 'find'
	C:\Program Files (x86)\gta for3\moonloader\house.lua:7: in function <C:\Program Files (x86)\gta for3\moonloader\house.lua:6>
[ML] (error) house.lua: Script died due to an error. (1F5B303C)

require 'lib.moonloader'
require 'lib.sampfuncs'
local SE = require 'lib.samp.events'


Вот код:

function main()
	if(string.find(text, "Неоплаченное частное имущество выставлено на продажу")) then
wait(50)
sampSendChat(string.format('/buyhouse'))
wait(200)
sampSendChat(string.format('/buyhouse'))
wait(200)
sampSendChat(string.format('/buyhouse'))
end
end
  • Вопрос задан
  • 1903 просмотра
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
dollar
@dollar Куратор тега Lua
Делай добро и бросай его в воду.
Ошибка "bad argument #1 to 'find' (string expected, got nil)" переводится буквально:
плохой аргумент №1 для функции find (ожидается строка, но вместо неё имеем nil).

Это значит, что переменная text у вас не задана (содержит значение nil).
Да, прерывание скрипта происходит конкретно в этом месте, но реальная ошибка где-то в другом месте в соответствии с вашей задумкой, там и нужно будет исправить/дополнить.
Ответ написан
Комментировать
@troltrolpng Автор вопроса
[ML] (error) house.lua: C:\Program Files (x86)\gta for3\moonloader\house.lua:8: attempt to yield across C-call boundary
stack traceback:
[C]: in function 'wait'
C:\Program Files (x86)\gta for3\moonloader\house.lua:8: in function 'callback'
...Files (x86)\gta for3\moonloader\lib\samp\events\core.lua:77: in function 'process_event'
...Files (x86)\gta for3\moonloader\lib\samp\events\core.lua:100: in function 'process_packet'
...Files (x86)\gta for3\moonloader\lib\samp\events\core.lua:127: in function <...Files (x86)\gta for3\moonloader\lib\samp\events\core.lua:126>
[ML] (error) house.lua: Script died due to an error. (01CA1A9C)

стало выдавать такую ошибку

вот код:
require 'lib.moonloader'
require 'lib.sampfuncs'
local SE = require 'lib.samp.events'

function SE.onServerMessage(color, text)
if(string.find(text, "« Неоплаченное частное имущество выставлено на продажу »")) then
wait(50)
sampSendChat("/buyhouse")
wait(200)
sampSendChat("/buyhouse")
wait(200)
sampSendChat("/buyhouse")
end
end
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы