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

w99zzl1

Участник
Автор темы
80
7
Версия 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

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

chromiusj

прогресс невозможен без пива
Модератор
5,554
3,868
Спасибо большое! Решение было так просто.... Раз уж так, не подскажите пожалуйста, как ещё сделать, чтобы скрипт не приглашал один и тот же айди больше 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