Команда с двумя аргументами

3211Marlon1123

Участник
Автор темы
130
12
Версия MoonLoader
.026-beta
123:
function cmd_uninv(arg)
    var1, var2 = string.match(arg, '(.+) (.+)')
    local idn = tonumber(var1)
    local prichn = tostring(var2)
    if idn ~= nil and idn ~= '' then
        if prichn ~= nil and prichn ~= '' then
            if sampIsPlayerConnected(idn) then
                lua_thread.create(function()
                    local nickn = sampGetPlayerNickname(idn)
                    local nickzam = string.gsub(nickn, "_", " ")
                    sampSendChat('/f Участник клуба ' .. nickzam .. ' уволен по причине \"' .. prichn .. '\".')
                    sampSendChat('/uninvite ' .. nickzam .. ' ' .. prichn)
                end)
            end
        end
    end
end


Суть в том, что я ввожу команду и по рп увольняется чел. Сама проблема - не читается причина, если в ней есть пробелы.

Пример ошибочной команды: /uninv 123 Проф. непригоден
 
Решение
123:
function cmd_uninv(arg)
    var1, var2 = string.match(arg, '(.+) (.+)')
    local idn = tonumber(var1)
    local prichn = tostring(var2)
    if idn ~= nil and idn ~= '' then
        if prichn ~= nil and prichn ~= '' then
            if sampIsPlayerConnected(idn) then
                lua_thread.create(function()
                    local nickn = sampGetPlayerNickname(idn)
                    local nickzam = string.gsub(nickn, "_", " ")
                    sampSendChat('/f Участник клуба ' .. nickzam .. ' уволен по причине \"' .. prichn .. '\".')
                    sampSendChat('/uninvite ' .. nickzam .. ' ' .. prichn)
                end)
            end
        end
    end
end


Суть в том, что я ввожу команду и по рп...

atomlin

Известный
581
388
123:
function cmd_uninv(arg)
    var1, var2 = string.match(arg, '(.+) (.+)')
    local idn = tonumber(var1)
    local prichn = tostring(var2)
    if idn ~= nil and idn ~= '' then
        if prichn ~= nil and prichn ~= '' then
            if sampIsPlayerConnected(idn) then
                lua_thread.create(function()
                    local nickn = sampGetPlayerNickname(idn)
                    local nickzam = string.gsub(nickn, "_", " ")
                    sampSendChat('/f Участник клуба ' .. nickzam .. ' уволен по причине \"' .. prichn .. '\".')
                    sampSendChat('/uninvite ' .. nickzam .. ' ' .. prichn)
                end)
            end
        end
    end
end


Суть в том, что я ввожу команду и по рп увольняется чел. Сама проблема - не читается причина, если в ней есть пробелы.

Пример ошибочной команды: /uninv 123 Проф. непригоден
Lua:
function cmd_uninv(arg)
    idn, prichn = string.match(arg, '(%d+) (.*)')
    if idn ~= nil and idn ~= '' then
        if prichn ~= nil and prichn ~= '' then
            if sampIsPlayerConnected(idn) then
                lua_thread.create(function()
                    local nickn = sampGetPlayerNickname(idn)
                    local nickzam = string.gsub(nickn, "_", " ")
                    sampSendChat('/f Участник клуба ' .. nickzam .. ' уволен по причине \"' .. prichn .. '\".')
                    sampSendChat('/uninvite ' .. nickzam .. ' ' .. prichn)
                end)
            end
        end
    end
end
 

ARMOR

kjor32 is legend
Модератор
4,847
6,106
123:
function main()
    repeat wait(100) until isSampAvailable()

    sampRegisterChatCommand('uval', function(arg)
        var1, var2 = string.match(arg, '(%d+) (.+)')
        if var1 == nil or var1 == '' or var2 == nil or var2 == '' then
            sampAddChatMessage('еблан, введи id и причину!', -1)
        else
            lua_thread.create(function()
                local name = sampGetPlayerNickname(var1)
                sampSendChat('/f Внимание! Еблан под ником: ' .. name .. ' был изгнан нахуй, кому что-то ненравится, можете пиздовать за ним!')
                sampSendChat('/uninvite ' .. id .. ' ' ..var2)
            end)
        end
    end)

    while true do
        wait(0)
    end
end

Вроде должно работать...