Неактуально Обнуляется переменная

Fasmin

Участник
Автор темы
175
6
Версия MoonLoader
.026-beta
код:
number = nil

function main()
    repeat wait(0) until isSampAvailable()
    while true do wait(0)
        if wasKeyPressed(keys.VK_P) and not sampIsCursorActive() then
            if number ~= nil then
                sampAddChatMessage(string.format("SMS: "..var2.." | Отправитель: "..nick.."("..var..")[т. "..tonumber(number).."]"), _color_yellow)
            else
                printStringNow("~r~attempt to concatenate a nil value", 2000)
            end
        end
    end
end

function ev.onServerMessage(color, text)
    number = string.match(text, "* {FFFFFF}Номер игрока {63BD4E}.+%[%d+%]{FFFFFF}: {63BD4E}(%d+)")
end
Отрывок из кода

Проблема в том, что когда появляется новое любое сообщение в чате, то переменная number сразу очищается и вылазит в логах ошибка attempt to concatenate a nil value, типо переменная пустая, как это починить? Работает sampAddChatMessage до тех пор пока не появится новое сообщение в чате
 
  • Эм
Реакции: MLycoris и Corenale
Решение
Работает sampAddChatMessage до тех пор пока не появится новое сообщение в чате
Появляется любое другое сообщение и значение в number обнуляется, логично же

Lua:
function ev.onServerMessage(color, text)
    local test = string.match(text, "* {FFFFFF}Номер игрока {63BD4E}.+%[%d+%]{FFFFFF}: {63BD4E}(%d+)")
    if test then
        number = test
    end
end

wojciech?

Известный
Проверенный
355
237
Работает sampAddChatMessage до тех пор пока не появится новое сообщение в чате
Появляется любое другое сообщение и значение в number обнуляется, логично же

Lua:
function ev.onServerMessage(color, text)
    local test = string.match(text, "* {FFFFFF}Номер игрока {63BD4E}.+%[%d+%]{FFFFFF}: {63BD4E}(%d+)")
    if test then
        number = test
    end
end
 
  • Нравится
Реакции: qdIbp

Fasmin

Участник
Автор темы
175
6
Появляется любое другое сообщение и значение в number обнуляется, логично же

Lua:
function ev.onServerMessage(color, text)
    local test = string.match(text, "* {FFFFFF}Номер игрока {63BD4E}.+%[%d+%]{FFFFFF}: {63BD4E}(%d+)")
    if test then
        number = test
    end
end
От души 💪