Как сделать такой триггер на LUA RakSAMP Lite?

  • Автор темы deleted-user-549423
  • Дата начала
D

deleted-user-549423

Гость
Автор темы
Версия MoonLoader
Другое
Хочу чтобы функция выполнялась при смене позиции на определенную: 1765.35; -1902.99; 13.57 , как такое сделать?
 
D

deleted-user-549423

Гость
Автор темы
Lua:
local events = require('samp.events')

function events.onSetPlayerPos(data)
    print(string.format('set position %d %d %d', data.x, data.y, data.z))
    if data.z == 13.57 then
        print('hello world')
    end
end
легенда, помимо того что я его тп 2 года юзал так он мне помогает, ашалеть!!!

Lua:
local events = require('samp.events')

function events.onSetPlayerPos(data)
    print(string.format('set position %d %d %d', data.x, data.y, data.z))
    if data.z == 13.57 then
        print('hello world')
    end
end
Тут такой прикол:
attempt to call global 'sampAddChatMessage' (a nil value) , events на sampev я поменял но дальше не сильно шарю в луа
 
Последнее редактирование модератором:

quesada

q-team
Проверенный
894
1,303
легенда, помимо того что я его тп 2 года юзал так он мне помогает, ашалеть!!!


Тут такой прикол:
attempt to call global 'sampAddChatMessage' (a nil value) , events на sampev я поменял но дальше не сильно шарю в луа
покажи что там
 
D

deleted-user-549423

Гость
Автор темы
Последнее редактирование модератором:
  • Нравится
Реакции: quesada

ferzin

Потрачен
45
28
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Lua:
local events = require("samp.events")
local Vector3D = require("vector3d")

local position = Vector3D(1765.35, -1902.99, 13.57)

function events.onSetPlayerPos(pos)
    if getDistanceBetweenCoords3d(pos, position) < 0.5 then
        ...
   end
end

function getDistanceBetweenCoords3d(coords1, coords2)
    return math.sqrt((coords2.x - coords1.x) ^ 2 + (coords2.y - coords1.y) ^ 2 + (coords2.z - coords1.z) ^ 2)
end
 

tor1

Активный
168
44
Советую ставить триггер в зависимости от того какой способ перемещения используешь:
Если coord, то onCoordStop() с флагом для каждого корда
Если маршрут, то окончание маршрута с флагом для каждого маршрута
Если вход в интерьер, то onSetInterior(id) -- тоже самое что позиция, но проще
Минус способа выше, как и в случае с интерьером, в том что твой бот может попадать в одну позицию несколько раз в зависимости от логики скрипта, а ты не захочешь каждый раз воспроизводить задуманную логику повторно, хотя это тоже конечно можно обойти