Как получить ИД игрока по нику?

Mercyline

Новичок
Автор темы
23
0
Версия MoonLoader
Другое
Как получить ИД игрока по нику? (не /id, нужно именно метод получения на Lua)
 

kyrtion

Известный
1,145
413
Как получить ИД игрока по нику? (не /id, нужно именно метод получения на Lua)
Lua:
---@param nickname string
---@return boolean result
---@return number|nil playerId
function sampGetPlayerIdByNickname(nickname)
    if type(nickname) ~= 'string' then return false, nil end

    local myId = select(2, sampGetPlayerIdByCharHandle(PLAYER_PED))
    if nickname == sampGetPlayerNickname(myId) then return true, myId end

    for playerId = 0, sampGetMaxPlayerId(false) do
        if sampIsPlayerConnected(playerId) and sampGetPlayerNickname(playerId) == nickname then
            return true, playerId
        end
    end

    return false, nil
end

-- пример
local nickname = 'Your_Name'
local result, playerId = sampGetPlayerIdByNickname(nickname)
if result then
    print('Есть такой, его ид:', playerId)
else
    print('Нет такой на сервере, и даже не существует на сервере!')
end
 

kyrtion

Известный
1,145
413
зачем так сложно...
sampGetPlayerIdByNickname такой нет в стандартном moonloader
поэтому я создал новую функу с result.
функция что я указал - лишь скопировать

а для примера нужно использовать на практике, специально указал результат, есть 0.00000858 шанс вернет нил, но вряд ли...
для меня есть повод волноваться поэтому создал для чека, а второй ид если есть