LUA API

  • Автор темы Автор темы Admin
  • Дата начала Дата начала
Статус
В этой теме нельзя размещать новые ответы.

Admin

Администратор
Название​
Создание​
Поля​
Методы​
Операторы​
vec2_t​
LUA:
vec2_t.new()
 vec2_t.new(x, y)
​
x : number
y : number
​
—​
vec2 + vec2
vec2 - vec2
vec2 * number
number * vec2
vec2 * vec2
vec2 / number
vec2 / vec2
​
vec3_t​
LUA:
vec3_t.new()
 vec3_t.new(x, y, z)
​
x : number
y : number
z : number
​
length() — Возвращает длину вектора :number

is_zero() — Проверяет, является ли вектор нулевым : bool
​
vec3 + vec3
vec3 - vec3
vec3 * number
number * vec3
vec3 * vec3
vec3 / number
vec3 / vec3
​
color_t​
LUA:
color_t.new()
 color_t.new(r, g, b)
 color_t.new(r, g, b, a)
​
r : number
g : number
b : number
a : number
​
—​
—​
screen_pos_t​
—​
—​
get_pos() — Возвращает экранную позицию : vec2_t

is_valid() — Проверяет успешность преобразования : bool
​
—​
ped_t​
—​
—​
get_pos() — Возвращает позицию педа : vec3_t

get_health() — Возвращает здоровье : number

get_armour() — Возвращает броню : number

get_weapon_id() — Возвращает ID текущего оружия : number

is_valid() — Проверяет валидность педа : bool
​
—​
player_t​
—​
—​
get_id() — Возвращает ID игрока. (number)

get_name() — Возвращает имя игрока : string

is_in_stream() — Проверяет находится ли игрок в стриме : bool

get_health() — Возвращает здоровье игрока : number

get_armour() — Возвращает броню игрока : number

get_ping() — Возвращает пинг игрока : number

is_afk() — Проверяет находится ли игрок в AFK : bool

get_ped() — Возвращает игрового персонажа : ped_t

get_color() — Возвращает цвет CList игрока : color_t
​
—​
label_t​
—​
—​
get_pos() — Возвращает позицию лейбла : vec3_t

get_text() — Возвращает текст лейбла : string
​
—​

КоллбэкОписание
Аргументы​
LUA:
function on_load()
Выполняется при загрузке скрипта
—​
LUA:
function on_main()
Вызывается каждый кадр
—​
LUA:
function on_unload()
Выполняется при выгрузке скрипта
—​

ФункцияОписание
Аргументы​
LUA:
render.rect(min, max, color, [thickness])
Рисует прямоугольник
min : vec2_t​
max : vec2_t
color : color_t
thickness : number (опционально)
LUA:
render.rect_filled(min, max, color)
Рисует заполненный прямоугольникmin : vec2_t
max : vec2_t
color : color_t
LUA:
render.line(start, end, color, [thickness])
Рисует линиюstart : vec2_t
end : vec2_t
color : color_t
thickness : number (опционально)
LUA:
render.circle(pos, radius, color, [thickness])
Рисует окружностьpos : vec2_t
radius : number
color : color_t
thickness : number (опционально)
LUA:
render.circle_filled(pos, radius, color)
Рисует заполненную окружностьpos : vec2_t
radius : number
color : color_t
LUA:
render.create_font(path, size)
Создает шрифт : pointerpath : string
size : number
LUA:
render.text(font, text, pos, color)
Рисует текстfont : pointer
text : string
pos : vec2_t
color : color_t

ФункцияОписание
Аргументы​
LUA:
utils.w2s(position)
Преобразует мировую позицию в экранную : screen_pos_tposition : vec3_t
LUA:
utils.get_bone_pos(ped, bone_id)
Возвращает позицию кости педа : vec3_tped : ped_t
bone_id : number
LUA:
utils.get_tick()
Возвращает системный тик : number
—​

ФункцияОписание
Аргументы​
LUA:
samp.reconnect()
Переподключение к серверу
—​
LUA:
samp.add_message(text, color, [type])
Добавляет сообщение в чатtext : string
color : color_t
type : number (опционально)
LUA:
samp.pools.labels.get_labels()
Возвращает список всех лейблов : vector<label_t>
—​
LUA:
samp.pools.labels.get_closest_label(text)
Возвращает ближайший лейбл, содержащий указанный текст : label_ttext : string
LUA:
samp.pools.player.is_listed(id)
Проверяет существование игрока : boolid : number
LUA:
samp.pools.player.get_local_name()
Возвращает ник локального игрока : string
—​
LUA:
samp.pools.player.get_local_id()
Возвращает ID локального игрока : number
—​
LUA:
samp.pools.player.get_local_ping()
Возвращает пинг локального игрока : number
—​
LUA:
samp.pools.player.remote(id)
Возвращает удаленного игрока по ID: player_tid : number

ФункцияОписание
Аргументы​
LUA:
game.get_peds()
Возвращает список всех педов : vector<ped_t>
—​
LUA:
game.get_local_ped()
Возвращает локального педа : ped_t
—​
LUA:
game.run_to_pos(position, [sprint, jump, min_dist])
Выполняет бег персонажа до указанной точки : bool
Если персонаж добежит до точки и дистанция будет меньше [min_dist] то функция вернет true
position : vec3_t
sprint : bool (опционально)
jump : bool (опционально)
min_dist : number (опционально)

ФункцияОписание
Аргументы​
LUA:
keys.set_game_key(id, state)
Устанавливает состояние игровой клавишиid : number
state : number
LUA:
keys.get_game_key(id)
Возвращает состояние игровой клавиши : numberid : number
LUA:
keys.is_key_down(vk)
Проверяет удерживается ли клавиша : boolvk : number
LUA:
keys.is_key_pressed(vk)
Проверяет была ли клавиша нажата : boolvk : number

LUA:
-- Пример автоматического сбора урожая по лейблу для фермы Arizona
local last_press = 0

function on_main()

    -- получаем ближайший лейбл по фразе. это может быть лен и хлопок
    local label = samp.pools.labels.get_closest_label("Можно собрать")

    local pos = label:get_pos() -- получаем позицию лейбла

    if pos:is_zero() then -- если позиция равна нулю выходим
        return
    end

    -- бежим до указанной позиции со спринтом и выполняем следующие действия если дистанция будем меньше 0.6
    if game.run_to_pos(pos, true, false, 0.6) then

        local now = utils.get_tick() -- получаем текущий тик

        -- проверяем последнее нажатие
        if now - last_press >= 1000 then

            -- нажимаем на игровую клавишу ALT для сбора урожая
            keys.set_game_key(21, 255)

            last_press = now -- обновляем последние нажатие
        end

    end
   
end

LUA:
-- Пример рендера руды по лейблу для шахты Arizona

-- создаем шрифт arial с размером 15
local font = render.create_font("C:/Windows/Fonts/arial.ttf", 15)
-- создаем белый цвет
local text_color = color_t.new(255, 255, 255, 255)

function on_main()

    -- получаем контейнер лейблов
    local labels = samp.pools.labels.get_labels()

    -- создаем цикл
    for _, label in ipairs(labels) do
    
        -- ищем фразу в тексте лейбла
        if string.find(label:get_text(), "Месторождение") then

            local pos = label:get_pos() -- получаем координаты лейбла

            if not pos:is_zero() then
            
                local screen = utils.w2s(pos) -- переводим мировые координаты в экранные

                if screen:is_valid() then -- проверяем находятся ли мировые координаты на экране
                    render.text(font, "Руда", screen:get_pos(), text_color) -- рисуем надпись "Руда" на позиции лейбла
                end
                
            end
            
        end
        
    end
    
end
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху Снизу