samp получение ид игрока

Lo_Smite

Участник
Автор темы
56
9
Версия MoonLoader
.026-beta
Как сделать так чтобы при ПКМ я мог получить его ник и ид ну или тоже самое командой. Пример:
Lua:
require "lib.moonloader"
local keys = require "vkeys"
local sampev = require "lib.samp.events"

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end
    lua_thread.create(cmd_osmotr)
    sampRegisterChatCommand("осмотр", cmd_osmotr)
    sampRegisterChatCommand("ти", targetperson)
    sampRegisterChatCommand("nb", targetperson)
    while true do
        wait(0)
    end

function cmd_osmotr()
    wait(0)
    sampSendChat("/do На докторе маска, стетоскоп и халат")
        wait(2000)
        sampSendChat("/me взял в руку шприц")
        wait(1800)
        sampSendChat("Сейчас я возьму кровь на анализ, сожмите руку в кулак. Будет немного больно")
        wait(1800)
        sampSendChat("/do Доктор получил кровь " .. nickname .. "и отправил на экспертизу") -- Тут мне надо чтобы в nickname писался ник игрока которого я выделил с помощью ПКМ без _
        wait(1800)
        sampSendChat("Скажите 'AAA'")
        wait(4000)
        sampSetChatInputText("/try Услышал хриплый голос")
        sampSetChatInputEnabled(true)
        if sampSetChatInputEnabled(false) then return end -- Заодно хотел бы узнать как правильно будет тут чтобы он ждал пока это окно не закроется, потом выполнялся код ниже. Или я верно это сделал
        healDisease = 1
end

function healler()
    if healDisease == 1 then
    if VK_1 then
        sampSendChat("/healDisease " .. id) -- Тут надо чтобы вставлялся его айдишник
        sampSetChatInputText("/updatemc " .. nick_name) -- Тут надо чтобы писался никнейм выделенного игрока с этой _ т.к. эта команда на сервере работает именно так
        sampSetChatInputEnabled(true)
        healDisease = 0
    end

    if VK_2 then
        sampSendChat("/healDisease " .. id)
        healDisease = 0
    end

    if VK_0 then
        sampSendChatMessage("Отменено", -1)
        healDisease = 0
    end

    end
end

function targetperson(arg)
    -- Тоесть второй вариант когда можно сделать тоже самое командой /ти
end
 

Dmitriy Makarov

25.05.2021
Проверенный
2,480
1,113
На ПКМ вот.
На команду не помню.)
Lua:
while true do
    wait(0)
    local valid, ped = getCharPlayerIsTargeting(PLAYER_HANDLE)
    if valid and doesCharExist(ped) then
        local result, id = sampGetPlayerIdByCharHandle(ped)
          if result and isKeyJustPressed(VK_1) then -- ПКМ + 1
            sampAddChatMessage("Nick: "..sampGetPlayerNickname(id).." | ID: "..id)
        end
    end
end
 
  • Нравится
Реакции: Lo_Smite

Neronedadaz

Новичок
4
0
1595086123129.png

Вот тебе пример через команду
 

Lo_Smite

Участник
Автор темы
56
9
Что я хотел узнать в коде ниже:
Lua:
 function taergetid(id)
        _ = sampIsPlayerConnected(id)
        nick_name = sampGetPlayerNickname(id)   
        nick = nick_name
        nick_ = nick:gsub("_", " ")
        nick = nick_
                if _ == "" or not _ or id == nill or id == "" then
                    sampAddChatMessage("Ид игрока не был выбран", -1)
                else
                    sampAddChatMessage("Ник игрока: {FFE4C4}" .. nick_name, -1)
                    sampAddChatMessage("Его ID: {FFE4C4}" .. id, -1)
                    sampAddChatMessage("Ник без _: {FFE4C4}" .. nick, -1)
                end
    end