Ник игрока по его айди

SamuelGoldie

Участник
Автор темы
72
7
Версия MoonLoader
.026-beta
Подскажите в чем проблема, пишешь команду и айди игрока мне нужно чтобы с айди выводило ник игрока, но почему то выводит ник игрока под нулевым айди а не под указанным

lua:
function mpfinish(cal)
    if cal:find("(.+) (.+) (.+)") and sampIsPlayerConnected(id) then
        local event, prize = cal:match("(.+) (.+) (.+)")
        local _, PlayerID = sampGetPlayerIdByCharHandle(playerPed)
        if id ~= "" then
            lua_thread.create(function()
                if sampIsPlayerConnected(tonumber(id)) then
                    local nick = sampGetPlayerNickname(id)
                    sampAddChatMessage('{FF6347}Admin Tools: {C0C0C0}Вы успешно объявили победителя мероприятия "'..event..'"', 0xFF6347)
                    wait(1000)
                    sampSendChat('Победителем мероприятия "'..event..'" стал — '..nick..', поздравляем!')
                    sampSendChat('pay '..nick..' '..prize..'')
                    wait(1000)
                    makeScreenshot()
                end
            end)
        end
    else
        sampAddChatMessage('{FF6347}Admin Tools: {C0C0C0}Введите {FF6347}/mpfinish {C0C0C0}[НАЗВАНИЕ МП] [ID] [ПРИЗ]', 0xFF6347)
    end
end
 

Fasz fiatal

Участник
192
20
local _, PlayerID = sampGetPlayerIdByCharHandle(playerPed)
зачем там эта строчка? Эта переменная нигде не указывается
Lua:
 if cal:find("(.+) (%d*) (.+)") then
        local event, id, prize = cal:match("(.+) (%d+) (.+)")
        --попробуй может так сделать вместо 2 и 3 строки у себя в коде
 
Последнее редактирование:

shawtyglock.

Активный
181
51
Откуда оно тебе возьмёт переменную id, которой нет?


1693255643500.png


Ты впринципе некорректно написал код.
 
  • Нравится
Реакции: IlyaHL2

Dmitriy Makarov

25.05.2021
Проверенный
2,473
1,106
Lua:
function mpfinish(cal)
    local event, id, prize = string.match(cal, "(.+) (%d+) (.+)")
    if not event and not id and not prize then -- При неправильной работе заменить на: if (event or id or prize) == nil then или if not event and not id and not prize then
        return sampAddChatMessage('{FF6347}Admin Tools: {C0C0C0}Введите {FF6347}/mpfinish {C0C0C0}[НАЗВАНИЕ МП] [ID] [ПРИЗ]', 0xFF6347)
    end
    if sampIsPlayerConnected(id) then
        lua_thread.create(function() wait(10)
            sampAddChatMessage('{FF6347}Admin Tools: {C0C0C0}Вы успешно объявили победителя мероприятия "'..event..'"', 0xFF6347)
            wait(1000)
            sampSendChat('Победителем мероприятия "'..event..'" стал — '..sampGetPlayerNickname(id)..', поздравляем!')
            sampSendChat('pay '..sampGetPlayerNickname(id)..' '..prize..'')
            wait(1000)
            makeScreenshot()
        end)
    end
end
Screenshot_1.png

UPD: Обновил код.
 
Последнее редактирование:

SamuelGoldie

Участник
Автор темы
72
7
Lua:
function mpfinish(cal)
    local event, id, prize = string.match(cal, "(.+) (%d+) (.+)")
    if not event and not id and not prize then
        return sampAddChatMessage('{FF6347}Admin Tools: {C0C0C0}Введите {FF6347}/mpfinish {C0C0C0}[НАЗВАНИЕ МП] [ID] [ПРИЗ]', 0xFF6347)
    end
    if sampIsPlayerConnected(id) then
        lua_thread.create(function() wait(10)
            sampAddChatMessage('{FF6347}Admin Tools: {C0C0C0}Вы успешно объявили победителя мероприятия "'..event..'"', 0xFF6347)
            wait(1000)
            sampSendChat('Победителем мероприятия "'..event..'" стал — '..sampGetPlayerNickname(id)..', поздравляем!')
            sampSendChat('pay '..sampGetPlayerNickname(id)..' '..prize..'')
            wait(1000)
            makeScreenshot()
        end)
    end
end
Посмотреть вложение 213551
Спасибо!
 

Fasz fiatal

Участник
192
20
if not event and not id and not prize then
эту строчку вместо этого
Lua:
if not event and not id and not prize then -- условие выполнится только при отсутствии всех
лучше написать так
Lua:
if (event or id or prize) == nil then -- условие выполнится при отсутствии даже какого то одного
 
  • Нравится
Реакции: IlyaHL2 и Dmitriy Makarov

.KOHTOP.

Активный
204
34
Подскажите в чем проблема, пишешь команду и айди игрока мне нужно чтобы с айди выводило ник игрока, но почему то выводит ник игрока под нулевым айди а не под указанным

lua:
function mpfinish(cal)
    if cal:find("(.+) (.+) (.+)") and sampIsPlayerConnected(id) then
        local event, prize = cal:match("(.+) (.+) (.+)")
        local _, PlayerID = sampGetPlayerIdByCharHandle(playerPed)
        if id ~= "" then
            lua_thread.create(function()
                if sampIsPlayerConnected(tonumber(id)) then
                    local nick = sampGetPlayerNickname(id)
                    sampAddChatMessage('{FF6347}Admin Tools: {C0C0C0}Вы успешно объявили победителя мероприятия "'..event..'"', 0xFF6347)
                    wait(1000)
                    sampSendChat('Победителем мероприятия "'..event..'" стал — '..nick..', поздравляем!')
                    sampSendChat('pay '..nick..' '..prize..'')
                    wait(1000)
                    makeScreenshot()
                end
            end)
        end
    else
        sampAddChatMessage('{FF6347}Admin Tools: {C0C0C0}Введите {FF6347}/mpfinish {C0C0C0}[НАЗВАНИЕ МП] [ID] [ПРИЗ]', 0xFF6347)
    end
end
Делаем проще

Lua:
sampSendChat('Победитель: ' .. sampGetPlayerNickname(id) .. '! Поздравим')
 
  • Эм
Реакции: ChromiusJ