Помогите с lua :з

jewelzblu

Активный
Автор темы
113
63
Если игрок(мой персонаж) стоит на месте более 30 минут, то выполняется команда(пох какая). Если игрок все еще не подвигался, то через 30 минут выполнится снова.

help me, please
 
Решение
Lua:
-- в main() например (не в бесконечный цикл)
lua_thread.create(afkCounter) -- создаём отдельный поточек, что бы не засорять бесконечный цикл маина
oldPos = { ['x'] = 0, ['y'] = 0 } -- "старые" координаты с которыми будем сравнивать "актуальные"
getAfk = 0 -- счётчик секунд которые мы не двигались

-- куда угодно в пустое место
function afkCounter()
    while true do wait(0)
        local x, y, _ = getCharCoordinates(playerPed) -- актуальные координаты
        if oldPos['x'] ~= x and oldPos['y'] ~= y then -- если координаты отличаются (персонаж сдвинулся с места)
            oldPos['x'], oldPos['y'] = x, y -- записываем новые координаты
            afkStart = os.time() -- и обнуляем счётчик
        else getAfk = os.time() - afkStart...

hashish

Известный
85
30
Если игрок(мой персонаж) стоит на месте более 30 минут, то выполняется команда(пох какая). Если игрок все еще не подвигался, то через 30 минут выполнится снова.

help me, please
Типа такое гомнецо, хз
Код:
while true do
  wait(0)
  local x1, y1, z1 = getCharCoordinates(PLAYER_PED)
  wait(1800000)
  local x2, y2, z2 = getCharCoordinates(PLAYER_PED)
  if x1 == x2 and y1 == y2 and z1 == z2 then
    --[[ Действие ]]
  end
end

P.S. Можно через getDistanceBetweenCoords3d сделать проверку на нахождение в каком-либо радиусе изначальных координат, если надо
 
  • Bug
Реакции: Cosmo

Cosmo

Известный
Друг
646
2,597
Lua:
-- в main() например (не в бесконечный цикл)
lua_thread.create(afkCounter) -- создаём отдельный поточек, что бы не засорять бесконечный цикл маина
oldPos = { ['x'] = 0, ['y'] = 0 } -- "старые" координаты с которыми будем сравнивать "актуальные"
getAfk = 0 -- счётчик секунд которые мы не двигались

-- куда угодно в пустое место
function afkCounter()
    while true do wait(0)
        local x, y, _ = getCharCoordinates(playerPed) -- актуальные координаты
        if oldPos['x'] ~= x and oldPos['y'] ~= y then -- если координаты отличаются (персонаж сдвинулся с места)
            oldPos['x'], oldPos['y'] = x, y -- записываем новые координаты
            afkStart = os.time() -- и обнуляем счётчик
        else getAfk = os.time() - afkStart end
    end
end

-- суёш туда куда тебе надо
if getAfk == 1800 then
    sampAddChatMessage('Ало физкульт-привет, подёргай жопой, уже пол часа афк стоиш')
    afkStart = os.time() -- обнуляем таймер
end
 
  • Влюблен
Реакции: jewelzblu