как указать несколько аргументов в команде

Статус
В этой теме нельзя размещать новые ответы.

leekyrave

Известный
Автор темы
419
226
Версия MoonLoader
.026-beta
0.26 beta


function cmd_deldesc(arg1,arg2,arg3)
if lvl < 2 then
sampAddChatMessage("[Ошибка синтаксиса] лвл не тот")
else
sampSendChat("deldesc".. arg1 .. arg2 .. arg3)
end

end


Что я неверно тут указал?
 
Решение
Lua:
function cmd_deldesc(arg) -- один аргумент в самой функции, в команде вводить три аргумента через пробел
local arg1, arg2, arg3 = arg:match('(.+) (.+) (.+)')  -- с одного получаем несколько
sampAddChatMessage(arg2, -1) -- выведет второй аргумент (как пример)
end -- закрытие функции
Lua:
function cmd_deldesc(arg) -- один аргумент в самой функции, в команде вводить три аргумента через пробел
    local arg = split(arg, '%s+', false)  -- с одного получаем несколько
    sampAddChatMessage(arg[1].." "..arg[2], -1) -- выведет первый и второй аргумент
end


function split(str, delim, plain)
    local tokens, pos, plain = {}, 1, not (plain == false)
    repeat
        local npos, epos = string.find(str, delim, pos, plain)...

kizn

\ 0 _ 0 /
Всефорумный модератор
2,407
2,108
Lua:
function cmd_deldesc(arg) -- один аргумент в самой функции, в команде вводить три аргумента через пробел
local arg1, arg2, arg3 = arg:match('(.+) (.+) (.+)')  -- с одного получаем несколько
sampAddChatMessage(arg2, -1) -- выведет второй аргумент (как пример)
end -- закрытие функции
 
  • Нравится
Реакции: leekyrave

#Northn

Pears Project — уже запущен!
Всефорумный модератор
2,656
2,541
Lua:
function cmd_deldesc(arg) -- один аргумент в самой функции, в команде вводить три аргумента через пробел
local arg1, arg2, arg3 = arg:match('(.+) (.+) (.+)')  -- с одного получаем несколько
sampAddChatMessage(arg2, -1) -- выведет второй аргумент (как пример)
end -- закрытие функции
Lua:
function cmd_deldesc(arg) -- один аргумент в самой функции, в команде вводить три аргумента через пробел
    local arg = split(arg, '%s+', false)  -- с одного получаем несколько
    sampAddChatMessage(arg[1].." "..arg[2], -1) -- выведет первый и второй аргумент
end


function split(str, delim, plain)
    local tokens, pos, plain = {}, 1, not (plain == false)
    repeat
        local npos, epos = string.find(str, delim, pos, plain)
        table.insert(tokens, string.sub(str, pos, npos and npos - 1))
        pos = epos and epos + 1
    until not pos
    return tokens
end
 
  • Нравится
Реакции: Shishkin и leekyrave
Статус
В этой теме нельзя размещать новые ответы.