lua хелп с кодом

Lightcrash

Участник
Автор темы
71
11
Удаление темы с ответом
Версия MoonLoader
.026-beta
Всем привет, я только начал разбираться как писать скриптики на lua, и сейчас хочу, чтобы когда человек прописывает команду, ему выдавался скин сиджея, визуально, но чтобы бег был сиджея, и вот я никак не могу понять, что нужно написать чтобы выдать скин? помогите пожалуйста
 
Решение
Lua:
-- function main()
sampRegisterChatCommand("sss", function(id)
    if tonumber(id) >= 0 and tonumber(id) <= 311 then 
        SetSkin(id)
    end
end)

-- Отдельно от всех функций
function SetSkin(skinId)
    local bs = raknetNewBitStream()
    raknetBitStreamWriteInt32(bs, select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)))
    raknetBitStreamWriteInt32(bs, skinId)
    raknetEmulRpcReceiveBitStream(153, bs)
    raknetDeleteBitStream(bs)
end

sdfy

Известный
349
230
Устанавливает скин персонажу
Lua:
function SetSkin(skinId)
    local bs = raknetNewBitStream()
    raknetBitStreamWriteInt32(bs, select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)))
    raknetBitStreamWriteInt32(bs, skinId)
    raknetEmulRpcReceiveBitStream(153, bs)
    raknetDeleteBitStream(bs)
end

вырвал со скрипта чапо
 

Lightcrash

Участник
Автор темы
71
11
Устанавливает скин персонажу
Lua:
function SetSkin(skinId)
    local bs = raknetNewBitStream()
    raknetBitStreamWriteInt32(bs, select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)))
    raknetBitStreamWriteInt32(bs, skinId)
    raknetEmulRpcReceiveBitStream(153, bs)
    raknetDeleteBitStream(bs)
end

вырвал со скрипта чапо
спасибо, только где конкретно тут указать чтобы скин cj давался?
 

sdfy

Известный
349
230
спасибо, только где конкретно тут указать чтобы скин cj давался?
Вызывай эту функцию в любой части кода с аргументом 0 (ид скина)
SetSkin(0) установит 0 скин до тех пор, пока его не сменит сервер
 

Lightcrash

Участник
Автор темы
71
11
Вызывай эту функцию в любой части кода с аргументом 0 (ид скина)
SetSkin(0) установит 0 скин до тех пор, пока его не сменит сервер
p.s разобрался
Lua:
function SetSkin(0)
    local bs = raknetNewBitStream()
    raknetBitStreamWriteInt32(bs, select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)))
    raknetBitStreamWriteInt32(bs, skinId)
    raknetEmulRpcReceiveBitStream(153, bs)
    raknetDeleteBitStream(bs)
end

Может еще кто подсказать? Как сделать чтобы скин можно было выбирать, к примеру пишу /sss ид скина и он выдастся
 
Последнее редактирование:

Dmitriy Makarov

25.05.2021
Проверенный
2,478
1,113
Lua:
-- function main()
sampRegisterChatCommand("sss", function(id)
    if tonumber(id) >= 0 and tonumber(id) <= 311 then 
        SetSkin(id)
    end
end)

-- Отдельно от всех функций
function SetSkin(skinId)
    local bs = raknetNewBitStream()
    raknetBitStreamWriteInt32(bs, select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)))
    raknetBitStreamWriteInt32(bs, skinId)
    raknetEmulRpcReceiveBitStream(153, bs)
    raknetDeleteBitStream(bs)
end
 

sdfy

Известный
349
230
Ты зачем в саму функцию-то полез ?

Может еще кто подсказать? Как сделать чтобы скин можно было выбирать, к примеру пишу /sss ид скина и он выдастся
Lua:
SkinID = -1

function main()
    while not isSampAvailable() do wait(0) end
    sampRegisterChatCommand('sss', function(skinid)
            SetSkin(skinid)
            SkinID = skinid
        sampAddChatMessage("Установлен скин "..skinid, -1)
    end)
    while true do wait(0)
        --Далее идет замена скина на выбранный, если сервер установил нам другой 
        if getCharModel(PLAYER_PED) ~= SkinID and SkinID ~= -1 then -- Если актуальный скин не равен выбранному
            SetSkin(SkinID) -- Ставим выбранный
        end
    end
end

function SetSkin(skinId)
    local bs = raknetNewBitStream()
    raknetBitStreamWriteInt32(bs, select(2, sampGetPlayerIdByCharHandle(PLAYER_PED)))
    raknetBitStreamWriteInt32(bs, skinId)
    raknetEmulRpcReceiveBitStream(153, bs)
    raknetDeleteBitStream(bs)
end