Поиск переменной по тексту

Nagenbl4

Новичок
Автор темы
107
2
Hello. Долго и упорно искал функцию или небольшую часть кода, но так и не нашёл. Условно скажем у меня есть данные значения:
Lua:
local 1 = "Тарелка"
local 2 = "Чайник"
local 3 = "Вилка"
local 4 = "Ложка"
Как сделать функцию команды(sampRegisterChatCommand) на поиск заданных чисел по части текста.
То есть, я пропишу "/sear Тарелка", мне отпишет через sampAddChatMessage "1", пропишу "Вилка", мне выдаст тройку и т.д. Возможно ли сделать ещё обратное этому?
 

4el0ve4ik

Известный
Всефорумный модератор
1,550
1,343
Hello. Долго и упорно искал функцию или небольшую часть кода, но так и не нашёл. Условно скажем у меня есть данные значения:
Lua:
local 1 = "Тарелка"
local 2 = "Чайник"
local 3 = "Вилка"
local 4 = "Ложка"
Как сделать функцию команды(sampRegisterChatCommand) на поиск заданных чисел по части текста.
То есть, я пропишу "/sear Тарелка", мне отпишет через sampAddChatMessage "1", пропишу "Вилка", мне выдаст тройку и т.д. Возможно ли сделать ещё обратное этому?
Lua:
local table = {"Тарелка" = 1, "Чайник" = 2, "Вилка"  = 3, "Ложка" = 4}


print(table["Тарелка"])
 

Nagenbl4

Новичок
Автор темы
107
2
Проблема тогда возникает.
1) Скрипт не работает:
Lua:
require "lib.moonloader"
local sampev = require "lib.samp.events"

local abcd = {"Тарелка" = 1, "Чайник" = 2, "Вилка"  = 3, "Ложка" = 4}

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
    
    sampRegisterChatCommand("ssst", cmd_sear)
    
    while true do wait(0)
    --беск цикл
    end
end

function cmd_sear(aggr)
    if aggr ~= nil then
        for k, v in ipairs(abcd) do
            if v == aggr then
                sampAddChatMessage("" .. k, -1)
            end
        end
    end
end

2) Если я ставлю так, то при прописи /ssst Тарелка мне не выдаёт "1":
Lua:
local abcd = {
[1] = "Тарелка", 
[2] = "Чайник", 
[3] = "Вилка", 
[4] = "Ложка"
}

Help @4el0ve4ik
 

4el0ve4ik

Известный
Всефорумный модератор
1,550
1,343
Проблема тогда возникает.
1) Скрипт не работает:
Lua:
require "lib.moonloader"
local sampev = require "lib.samp.events"

local abcd = {"Тарелка" = 1, "Чайник" = 2, "Вилка"  = 3, "Ложка" = 4}

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
    
    sampRegisterChatCommand("ssst", cmd_sear)
    
    while true do wait(0)
    --беск цикл
    end
end

function cmd_sear(aggr)
    if aggr ~= nil then
        for k, v in ipairs(abcd) do
            if v == aggr then
                sampAddChatMessage("" .. k, -1)
            end
        end
    end
end

2) Если я ставлю так, то при прописи /ssst Тарелка мне не выдаёт "1":
Lua:
local abcd = {
[1] = "Тарелка", 
[2] = "Чайник", 
[3] = "Вилка", 
[4] = "Ложка"
}

Help @4el0ve4ik
Сорян, я проебался, таблицу нужно записывать как
local abcd= {["Тарелка"] = 1, ["Чайник"] = 2, ["Вилка"] = 3, ["Ложка"] = 4}
и используй pairs(abcd)
 

Nagenbl4

Новичок
Автор темы
107
2
Сорян, я проебался, таблицу нужно записывать как
local abcd= {["Тарелка"] = 1, ["Чайник"] = 2, ["Вилка"] = 3, ["Ложка"] = 4}
и используй pairs(abcd)
Lua:
require "lib.moonloader"

local abcd = {["Тарелка"] = 1, ["Чайник"] = 2, ["Вилка"] = 3, ["Ложка"] = 4}

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
    
    sampRegisterChatCommand("ssst", cmd_sear)
    
    while true do wait(0)
    --беск цикл
    end
end

function cmd_sear(aggr)
    if aggr ~= nil then
        for k, v in pairs(abcd) do
            if v == aggr then
                sampAddChatMessage("ID = " .. k, -1)
            end
        end
    end
end
Дядя, не работает. :(
При "/ssst 1" ничего не выдаёт в чат;
При "/ssst Тарелка" так же ничего не выдаёт.


Ошибок в консоли вроде нету.
 

4el0ve4ik

Известный
Всефорумный модератор
1,550
1,343
Lua:
require "lib.moonloader"

local abcd = {["Тарелка"] = 1, ["Чайник"] = 2, ["Вилка"] = 3, ["Ложка"] = 4}

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
    
    sampRegisterChatCommand("ssst", cmd_sear)
    
    while true do wait(0)
    --беск цикл
    end
end

function cmd_sear(aggr)
    if aggr ~= nil then
        for k, v in pairs(abcd) do
            if v == aggr then
                sampAddChatMessage("ID = " .. k, -1)
            end
        end
    end
end
Дядя, не работает. :(
При "/ssst 1" ничего не выдаёт в чат;
При "/ssst Тарелка" так же ничего не выдаёт.


Ошибок в консоли вроде нету.
upload_2019-3-26_22-42-51.png

м? а ну да, же не ключ сравниваешь еще