Вопрос по созданию команды

Сheesecake

Участник
Автор темы
60
2
Версия MoonLoader
Другое
Как сделать чтобы первый пункт (ник) вписывался по нику с прочерком?
Например

/poehali Ivan_Pupkin Test


Lua:
function cmd_poehali(pam)
    lua_thread.create(function()
        local nick, nak = pam:match('(.+)%s(.+)')
        nick = sampGetPlayerNickname(nick)
        if nick and nak then
        if sampIsPlayerConnected(nick) then
            sampSendChat('/f ' .. nick .. ' ' ..nak)
        else
            sampAddChatMessage('Игрок офф.', -1)
        end
        else
            sampAddChatMessage('Не ввел ничего', -1)
        end
    end)
end

function sampGetPlayerIdByNickname(nick)
    local _, myid = sampGetPlayerIdByCharHandle(playerPed)
    if tostring(nick) == sampGetPlayerNickname(myid) then return myid end
    for i = 0, sampGetMaxPlayerId() do if sampIsPlayerConnected(i) and sampGetPlayerNickname(i) == tostring(nick) then return i end end
    return -1
end

Не то все выходит
 
Решение
1. sampIsPlayerConnected работает с ID, а не с ником, то есть тебе следует вставлять «nak»
2. Ты копируешь ник из своей строки в переменную nick, а после меняешь его на другой

Если правильно тебя понял:
Lua:
function cmd_poehali(pam)
    lua_thread.create(function()
        local nick, nak = pam:match('(.+)%s(.+)')
        if nick ~= nil and nak ~= nil then
            if sampIsPlayerConnected(nak) then
                -- если сервер с анти-флудом, надо добавить задержку, например: wait(1000)
                sampSendChat('/f ' .. nick .. ' ' .. nak)
            else
                sampAddChatMessage('Игрок офф.', -1)
            end
        else
            sampAddChatMessage('Не ввел ничего', -1)
        end
    end)
end

chapo

🫡 В армии с 17.10.2023. В ЛС НЕ ОТВЕЧАЮ
Друг
8,776
11,228
Я тебе уже отвечал в "Вопросы по lua".

тут не хватает условия.
else - иначе, соответственно перед else должно идти основное условие (if)
1608758154265.png
 

Сheesecake

Участник
Автор темы
60
2
Я тебе уже отвечал в "Вопросы по lua".

тут не хватает условия.
else - иначе, соответственно перед else должно идти основное условие (if)
Посмотреть вложение 80196
Не в этом суть. У меня nick реагирует по второму параметру. У меня не вводится именно ник, который я указал
Тоесть если я пишу /poehali Test_Test 33
Мне выдает: /f Nick_NeNick[33] 33 (Ищет ник по 2)
А нужно чтобы я когда ввожу /poehali Test_Test 33 выводило:
/f Test_Test 33
Вроде понятно объяснил, но на крайней может я не правильно понял
 
Последнее редактирование:

iwak

Известный
10
5
1. sampIsPlayerConnected работает с ID, а не с ником, то есть тебе следует вставлять «nak»
2. Ты копируешь ник из своей строки в переменную nick, а после меняешь его на другой

Если правильно тебя понял:
Lua:
function cmd_poehali(pam)
    lua_thread.create(function()
        local nick, nak = pam:match('(.+)%s(.+)')
        if nick ~= nil and nak ~= nil then
            if sampIsPlayerConnected(nak) then
                -- если сервер с анти-флудом, надо добавить задержку, например: wait(1000)
                sampSendChat('/f ' .. nick .. ' ' .. nak)
            else
                sampAddChatMessage('Игрок офф.', -1)
            end
        else
            sampAddChatMessage('Не ввел ничего', -1)
        end
    end)
end
 
  • Влюблен
Реакции: Сheesecake