AddAccessory

Орк

Известный
Автор темы
214
137
Версия MoonLoader
.026-beta
Оказывается есть аналог taskPickUpObject и attachObjectToChar без пакетов?

Кто-то работал с этой функцией? Как реализовать на луа?
 
Решение
можешь воспользоваться этой библиотекой для удобства:

код будет выглядеть примерно так:
Lua:
local ffi = require("ffi")
local sampapi = require("sampapi")

local SCNetGame = sampapi.require("CNetGame", true)
local SCPed = sampapi.require("CPed", true)

function main()
    while not isSampAvailable() do wait(0) end

    local accs = ffi.new("SAccessory", {
       325, -- int m_nModel;
       8, -- int m_nBone;
       ffi.new("SCVector", { 0, 0, 1 }), -- SCVector m_offset;
       ffi.new("SCVector", { 0, 0, 0 }), -- SCVector m_rotation;
       ffi.new("SCVector", { 2, 2, 2 }), -- SCVector m_scale;
       0xFFFFFFFF, -- D3DCOLOR m_firstMaterialColor;
       0xFFFFFFFF, -- D3DCOLOR...

whyega52

Гений, миллионер, плейбой, долбаеб
Модератор
2,783
2,608
Оказывается есть аналог taskPickUpObject и attachObjectToChar без пакетов?

Кто-то работал с этой функцией? Как реализовать на луа?
Она используется сампом под капотом обработчика рпц, про которые тв говоришь, можешь посмотреть в иде, как с ней работает калкор
 

wojciech?

Известный
Проверенный
350
230
можешь воспользоваться этой библиотекой для удобства:

код будет выглядеть примерно так:
Lua:
local ffi = require("ffi")
local sampapi = require("sampapi")

local SCNetGame = sampapi.require("CNetGame", true)
local SCPed = sampapi.require("CPed", true)

function main()
    while not isSampAvailable() do wait(0) end

    local accs = ffi.new("SAccessory", {
       325, -- int m_nModel;
       8, -- int m_nBone;
       ffi.new("SCVector", { 0, 0, 1 }), -- SCVector m_offset;
       ffi.new("SCVector", { 0, 0, 0 }), -- SCVector m_rotation;
       ffi.new("SCVector", { 2, 2, 2 }), -- SCVector m_scale;
       0xFFFFFFFF, -- D3DCOLOR m_firstMaterialColor;
       0xFFFFFFFF, -- D3DCOLOR m_secondMaterialColor;
    })

    sampRegisterChatCommand("attach_any", function(slot)
        slot = tonumber(slot)
        if slot and slot >= 0 and slot < 10 then
            local pPed = SCNetGame.RefNetGame().m_pPools.m_pPlayer:GetLocalPlayer().m_pPed
            if pPed.m_accessories.m_bNotEmpty[slot] == 1 then
                pPed:DeleteAccessory(slot)
            end
            pPed:AddAccessory(slot, accs)
        end
    end)

    wait(-1)
end
 

Vespan

Чешский луашер
Проверенный
2,119
1,718
можешь воспользоваться этой библиотекой для удобства:

код будет выглядеть примерно так:
Lua:
local ffi = require("ffi")
local sampapi = require("sampapi")

local SCNetGame = sampapi.require("CNetGame", true)
local SCPed = sampapi.require("CPed", true)

function main()
    while not isSampAvailable() do wait(0) end

    local accs = ffi.new("SAccessory", {
       325, -- int m_nModel;
       8, -- int m_nBone;
       ffi.new("SCVector", { 0, 0, 1 }), -- SCVector m_offset;
       ffi.new("SCVector", { 0, 0, 0 }), -- SCVector m_rotation;
       ffi.new("SCVector", { 2, 2, 2 }), -- SCVector m_scale;
       0xFFFFFFFF, -- D3DCOLOR m_firstMaterialColor;
       0xFFFFFFFF, -- D3DCOLOR m_secondMaterialColor;
    })

    sampRegisterChatCommand("attach_any", function(slot)
        slot = tonumber(slot)
        if slot and slot >= 0 and slot < 10 then
            local pPed = SCNetGame.RefNetGame().m_pPools.m_pPlayer:GetLocalPlayer().m_pPed
            if pPed.m_accessories.m_bNotEmpty[slot] == 1 then
                pPed:DeleteAccessory(slot)
            end
            pPed:AddAccessory(slot, accs)
        end
    end)

    wait(-1)
end
А как можно на другого игрока/НПС добавить акс а то не понимаю 😭 🙏
 
  • Грустно
Реакции: Lance_Sterling

whyega52

Гений, миллионер, плейбой, долбаеб
Модератор
2,783
2,608