отправляет в команду МОЙ айди

w99zzl1

Участник
Автор темы
108
10
Версия MoonLoader
.026-beta
Привет! Помогите пожалуйста, есть отрывок кода:

Lua:
function autoInviteToFamily()
    local peds = getAllChars()
    local myid = sampGetPlayerIdByCharHandle(playerPed)
    local mx, my, mz = getCharCoordinates(playerPed)
    for _, v in pairs(peds) do
        local result, id = sampGetPlayerIdByCharHandle(v)
        if result then
            local x, y, z = getCharCoordinates(v)
            if x and y and z then
                local distance = getDistanceBetweenCoords3d(mx, my, mz, x, y, z)
                if id ~= myid and distance < 12.0 then
                    setTimerFunction(function()
                        sampSendChat(string.format('/finvite %d', id))
                    end, inputDelay[0])
                end
            end
        end
    end
end
Все рабоатает, но не так как надо. Скрипт отправляет команду /finvite [id], там где [id] - айди БЛИЖАЙШЕГО игрока, но если рядом нет игроков, (в указаной дистанции) то скрипт просто пишет мой адми, то есть, /finvite [myid], из за этого флудит командой. Этого не должно быть, я не смог решить эту проблему, поэтому обращаюсь сюда. Помогите пожалуйста, буду благодарен!
 

w99zzl1

Участник
Автор темы
108
10
замени if result then на if result and v ~= PLAYER_PED then
Спасибо большое! Решение было так просто.... Раз уж так, не подскажите пожалуйста, как ещё сделать, чтобы скрипт не приглашал один и тот же айди больше 2 раз? Чтобы я тему не создавал)) Спасибо большое вам!
 

chromiusj

$TheWorldIsFvcked
Модератор
5,702
4,012
Спасибо большое! Решение было так просто.... Раз уж так, не подскажите пожалуйста, как ещё сделать, чтобы скрипт не приглашал один и тот же айди больше 2 раз? Чтобы я тему не создавал)) Спасибо большое вам!
Lua:
local invited = {}

function autoInviteToFamily()
    local peds = getAllChars()
    local myid = sampGetPlayerIdByCharHandle(playerPed)
    local mx, my, mz = getCharCoordinates(playerPed)
    
    for _, v in pairs(peds) do
        local result, id = sampGetPlayerIdByCharHandle(v)
        if result and v ~= PLAYER_PED then
            if not invited[id] then
                local x, y, z = getCharCoordinates(v)
                if x and y and z then
                    local distance = getDistanceBetweenCoords3d(mx, my, mz, x, y, z)
                    if distance < 12.0 then
                        invited[id] = true
                        setTimerFunction(function()
                            sampSendChat(string.format('/finvite %d', id))
                        end, inputDelay[0])
                    end
                end
            end
        end
    end
end
 
  • Влюблен
Реакции: w99zzl1