Вопрос как сделать проверку на дистанцию?

  • 338
  • 16
  • 33
пишу такую хуйню тип когда ты на определенной дистанции от игрока то прописывало +attack;-attack.
я все сделаю сам, но я не могу сделать проверку на дистанцию.
 
  • 338
  • 16
  • 33
metatable:
Lua:
local vm = FindMetaTable("Vector")
local em = FindMetaTable("Entity")
local me = LocalPlayer()

vm.Distance(em.GetPos(target), em.GetPos(me))

без metatable:
Lua:
local me = LocalPlayer()

target:GetPos():Distance(me:GetPos())

Distance wiki
GetPos wiki
я конечно благодарен, но не мог бы ты скинуть версию чтобы просматривать расстояние между другими игроками.
допустим когда расстояние между игроком и тобой было там 2 метра ты бил его ножом.
(я все уже написал кроме проверки на дистанцию)
 
  • 4
  • 1
  • 0
Контакты для связи отсутствуют.
если вдруг на какой-то пак не работает где -- or something else... можно заменить на RunConsoleCommand(), сверху + снизу -

Lua:
local cm = FindMetaTable("CUserCmd")
local pm = FindMetaTable("Player")
local vm = FindMetaTable("Vector")
local em = FindMetaTable("Entity")
local me = LocalPlayer()

local function ToMetric(num)
    if not isnumber(num) then return 0 end
    return math.floor(num * 0.0254)
end

hook.Add("CreateMove", "", function(cmd)
  
    if pm.Team(me) == TEAM_SPECTATOR then return end
    if em.Health(me) < 1 then return end
  
    local tr = me:GetEyeTrace()
    local target = tr.Entity
  
    if !target:IsPlayer() then return end
    if !em.IsValid(target) or em.Health(target) < 1 then return end
  
    if ToMetric(vm.Distance(em.GetPos(me), em.GetPos(target))) <= 2 then
      
        -- or something else...
        cm.SetButtons(cmd, bit.bor(cm.GetButtons(cmd), 1))
      
    else
  
        -- or something else...
        cm.SetButtons(cmd, bit.band(cm.GetButtons(cmd), bit.bnot(1)))
  
    end
  
end)
 
  • 338
  • 16
  • 33
если вдруг на какой-то пак не работает где -- or something else... можно заменить на RunConsoleCommand(), сверху + снизу -

Lua:
local cm = FindMetaTable("CUserCmd")
local pm = FindMetaTable("Player")
local vm = FindMetaTable("Vector")
local em = FindMetaTable("Entity")
local me = LocalPlayer()

local function ToMetric(num)
    if not isnumber(num) then return 0 end
    return math.floor(num * 0.0254)
end

hook.Add("CreateMove", "", function(cmd)
 
    if pm.Team(me) == TEAM_SPECTATOR then return end
    if em.Health(me) < 1 then return end
 
    local tr = me:GetEyeTrace()
    local target = tr.Entity
 
    if !target:IsPlayer() then return end
    if !em.IsValid(target) or em.Health(target) < 1 then return end
 
    if ToMetric(vm.Distance(em.GetPos(me), em.GetPos(target))) <= 2 then
     
        -- or something else...
        cm.SetButtons(cmd, bit.bor(cm.GetButtons(cmd), 1))
     
    else
 
        -- or something else...
        cm.SetButtons(cmd, bit.band(cm.GetButtons(cmd), bit.bnot(1)))
 
    end
 
end)
благодарю
 
Сверху Снизу