помощь со скриптом

SadeHvH

Новичок
Автор темы
16
0
скрипт по команде пишет сообщение ближайшему игроку, нужно что бы скрипт отправлял сообщение только тому игроку, за которым я зашел в слежку.
 

Вложения

  • kopatel online.lua
    1.1 KB · Просмотры: 3

Sanek Farmila

Новичок
22
7
Для того чтобы твой скрипт отправлял сообщение только тому игроку, за которым ты зашел в слежку, тебе нужно хранить идентификатор этого игрока и использовать его вместо поиска ближайшего игрока.
пример кода (тестовая версия):
require "lib.moonloader"
require "lib.samp.events"
local sampev = require "lib.samp.events"
local main_color = 0x698CC8
local targetPlayerId = -1 -- Идентификатор целевого игрока

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end

    sampAddChatMessage("SosatelHyev zapycschen", main_color)

    -- Команда для отслеживания игрока
    sampRegisterChatCommand('track', function(args)
        local playerName = args -- Получаем имя игрока, за которым будем следить
        targetPlayerId = getPlayerIdByName(playerName) -- Получаем ID игрока по имени
        if targetPlayerId ~= -1 then
            sampAddChatMessage("Начато отслеживание игрока: " .. playerName, main_color)
        else
            sampAddChatMessage("Игрок не найден: " .. playerName, main_color)
        end
    end)

    -- Команда для отправки сообщения целевому игроку
    sampRegisterChatCommand('ji', function()
        if targetPlayerId ~= -1 then
            sampSendChat("/gg " .. targetPlayerId) -- Отправляем сообщение только целевому игроку
        else
            sampAddChatMessage("Вы не отслеживаете ни одного игрока.", main_color)
        end
    end)

    while true do
        wait(0)
    end
end

function getPlayerIdByName(playerName)
    for _, id in ipairs(sampGetAllPlayers()) do
        local name = sampGetPlayerName(id)
        if name and name:lower() == playerName:lower() then
            return id
        end
    end
    return -1 -- Возвращаем -1, если игрок не найден
end


Теперь в твоем скрипте 2 команды:


/track <имя_игрока> — для начала отслеживания игрока с указанным именем.
/ji — для отправки сообщения целевому игроку (только если вы отслеживаете кого-то).
 
  • Ха-ха
Реакции: kinamaster22

kinamaster22

Известный
1,354
211
Для того чтобы твой скрипт отправлял сообщение только тому игроку, за которым ты зашел в слежку, тебе нужно хранить идентификатор этого игрока и использовать его вместо поиска ближайшего игрока.
пример кода (тестовая версия):
require "lib.moonloader"
require "lib.samp.events"
local sampev = require "lib.samp.events"
local main_color = 0x698CC8
local targetPlayerId = -1 -- Идентификатор целевого игрока

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end

    sampAddChatMessage("SosatelHyev zapycschen", main_color)

    -- Команда для отслеживания игрока
    sampRegisterChatCommand('track', function(args)
        local playerName = args -- Получаем имя игрока, за которым будем следить
        targetPlayerId = getPlayerIdByName(playerName) -- Получаем ID игрока по имени
        if targetPlayerId ~= -1 then
            sampAddChatMessage("Начато отслеживание игрока: " .. playerName, main_color)
        else
            sampAddChatMessage("Игрок не найден: " .. playerName, main_color)
        end
    end)

    -- Команда для отправки сообщения целевому игроку
    sampRegisterChatCommand('ji', function()
        if targetPlayerId ~= -1 then
            sampSendChat("/gg " .. targetPlayerId) -- Отправляем сообщение только целевому игроку
        else
            sampAddChatMessage("Вы не отслеживаете ни одного игрока.", main_color)
        end
    end)

    while true do
        wait(0)
    end
end

function getPlayerIdByName(playerName)
    for _, id in ipairs(sampGetAllPlayers()) do
        local name = sampGetPlayerName(id)
        if name and name:lower() == playerName:lower() then
            return id
        end
    end
    return -1 -- Возвращаем -1, если игрок не найден
end


Теперь в твоем скрипте 2 команды:


/track <имя_игрока> — для начала отслеживания игрока с указанным именем.
/ji — для отправки сообщения целевому игроку (только если вы отслеживаете кого-то).
не думаю то что правки от чата гпт будут работать в игре
 

SadeHvH

Новичок
Автор темы
16
0
Для того чтобы твой скрипт отправлял сообщение только тому игроку, за которым ты зашел в слежку, тебе нужно хранить идентификатор этого игрока и использовать его вместо поиска ближайшего игрока.
пример кода (тестовая версия):
require "lib.moonloader"
require "lib.samp.events"
local sampev = require "lib.samp.events"
local main_color = 0x698CC8
local targetPlayerId = -1 -- Идентификатор целевого игрока

function main()
    if not isSampLoaded() or not isSampfuncsLoaded() then return end
    while not isSampAvailable() do wait(100) end

    sampAddChatMessage("SosatelHyev zapycschen", main_color)

    -- Команда для отслеживания игрока
    sampRegisterChatCommand('track', function(args)
        local playerName = args -- Получаем имя игрока, за которым будем следить
        targetPlayerId = getPlayerIdByName(playerName) -- Получаем ID игрока по имени
        if targetPlayerId ~= -1 then
            sampAddChatMessage("Начато отслеживание игрока: " .. playerName, main_color)
        else
            sampAddChatMessage("Игрок не найден: " .. playerName, main_color)
        end
    end)

    -- Команда для отправки сообщения целевому игроку
    sampRegisterChatCommand('ji', function()
        if targetPlayerId ~= -1 then
            sampSendChat("/gg " .. targetPlayerId) -- Отправляем сообщение только целевому игроку
        else
            sampAddChatMessage("Вы не отслеживаете ни одного игрока.", main_color)
        end
    end)

    while true do
        wait(0)
    end
end

function getPlayerIdByName(playerName)
    for _, id in ipairs(sampGetAllPlayers()) do
        local name = sampGetPlayerName(id)
        if name and name:lower() == playerName:lower() then
            return id
        end
    end
    return -1 -- Возвращаем -1, если игрок не найден
end


Теперь в твоем скрипте 2 команды:


/track <имя_игрока> — для начала отслеживания игрока с указанным именем.
/ji — для отправки сообщения целевому игроку (только если вы отслеживаете кого-то).
нужно что бы скрипт сам цеплялся за игрока за которым я захожу. я же не буду каждый репорт на каждого игрока прописывать /track

не думаю то что правки от чата гпт будут работать в игре
даже если взять команду спека аля /sp за /truck скрипт крашит
 
Последнее редактирование: