полоски хп и армора, цвет ника

linmsqn

Участник
Автор темы
337
9
Версия MoonLoader
Другое
как отключить у игроков полоски хп и армора? и каким образом при определенном кол-ве хп менять человеку цвет ника
 
  • Bug
Реакции: Lance_Sterling

ARMOR

kjor32 is legend
Модератор
4,852
6,083
все это сделать можно двумя хуками с помощью либы hooks.lua
для удаления полосок хукай cplayertags::DrawHealthBar
изменить цвет можно прямо в отрисовке:cplayertags::DrawLabel
Можно и без хуков обойтись, просто нопнув CPlayerTags::DrawBar и получать хп каждого игрока, и если оно меньше нужного через CRemotePlayer::SetColorARGB менять цвет клиста
 

why ega

РП игрок
Модератор
2,548
2,241
как отключить у игроков полоски хп и армора?
Не понимаю почему пока не работает включение ников, но выключение вроде как работает стабильно, если надо, адаптирую функцию и под остальные версии сампа (пока только р1)
Lua:
local memory = require("memory")


function toggleHealthBar(toggle, version)
    local offsets = {
        ["R1"] = {
            {address = 0x6FC81, originalBytes = 0xE84A93FFFF}, -- callCPlayerTags__BeginHealthBar
            {address = 0x6FE7D, originalBytes = 0xE8EE87FFFF} -- callCPlayerTags__EndHealthBar
        }
    }
    local samp = getModuleHandle("samp.dll")
    local method = (toggle and "write" or "fill")  
    for _, offset in ipairs(offsets[version]) do
        local address = (samp + offset.address)  
        local bytes = (toggle and offset.originalBytes or 0x90)        
        memory[method](address, bytes, 5, true)
    end    
end
 
Последнее редактирование:
  • Нравится
Реакции: chapo

F0RQU1N and

Известный
1,311
495
все это сделать можно двумя хуками с помощью либы hooks.lua
для удаления полосок хукай cplayertags::DrawHealthBar
изменить цвет можно прямо в отрисовке:cplayertags::DrawLabel
почему вам лишь бы что то хукнуть
 

why ega

РП игрок
Модератор
2,548
2,241
как отключить у игроков полоски хп и армора? и каким образом при определенном кол-ве хп менять человеку цвет ника
менять цвет ника: https://www.blast.hk/threads/13380/post-1362591
получать количество хп: https://wiki.blast.hk/ru/moonloader/lua/sampGetPlayerHealth

Не понимаю почему пока не работает включение ников, но выключение вроде как работает стабильно, если надо, адаптирую функцию и под остальные версии сампа (пока только р1)
Lua:
local memory = require("memory")


function toggleHealthBar(toggle, version)
    local offsets = {
        ["R1"] = {
            {address = 0x6FC81, originalBytes = 0xE84A93FFFF}, -- callCPlayerTags__BeginHealthBar
            {address = 0x6FE7D, originalBytes = 0xE8EE87FFFF} -- callCPlayerTags__EndHealthBar
        }
    }
    local samp = getModuleHandle("samp.dll")
    local method = (toggle and "write" or "fill")
    for _, offset in ipairs(offsets[version]) do
        local address = (samp + offset.address)
        local bytes = (toggle and offset.originalBytes or 0x90)      
        memory[method](address, bytes, 5, true)
    end  
end
кароч, теперь работает, тоже только под р1, если понадобится, сделаю под все остальные
Lua:
local memory = require("memory")


function toggleHealthBar(toggle, sampVersion)
    local offsets = {
        ["R1"] = 0x6FC30
    }      
    local samp = getModuleHandle("samp.dll")
    local address = (samp + offsets[sampVersion]
    local byte = (toggle and 0x55 or 0xC3)
    memory.write(address, byte, 1, true)      
end
 
Последнее редактирование:

linmsqn

Участник
Автор темы
337
9
Не понимаю почему пока не работает включение ников, но выключение вроде как работает стабильно, если надо, адаптирую функцию и под остальные версии сампа (пока только р1)
Lua:
local memory = require("memory")


function toggleHealthBar(toggle, version)
    local offsets = {
        ["R1"] = {
            {address = 0x6FC81, originalBytes = 0xE84A93FFFF}, -- callCPlayerTags__BeginHealthBar
            {address = 0x6FE7D, originalBytes = 0xE8EE87FFFF} -- callCPlayerTags__EndHealthBar
        }
    }
    local samp = getModuleHandle("samp.dll")
    local method = (toggle and "write" or "fill") 
    for _, offset in ipairs(offsets[version]) do
        local address = (samp + offset.address) 
        local bytes = (toggle and offset.originalBytes or 0x90)       
        memory[method](address, bytes, 5, true)
    end   
end
я так понимаю все это дело не работает из-за версии, я сижу на R3, это как-то можно адаптировать?
 

why ega

РП игрок
Модератор
2,548
2,241
я так понимаю все это дело не работает из-за версии, я сижу на R3, это как-то можно адаптировать?
теперь в теории будет работать на всех версиях 0.37
Lua:
local memory = require("memory")


function toggleHealthBar(toggle, sampVersion)
    local offsets = {
        ["DLR1"] = 0x73CB0,
        ["R1"] = 0x6FC30,
        ["R2"] = 0x6FCD0,
        ["R3"] = 0x73B20,
        ["R4"] = 0x74240,
        ["R5"] = 0x74210,
    }     
    local samp = getModuleHandle("samp.dll")
    local address = (samp + offsets[sampVersion]
    local byte = (toggle and 0x55 or 0xC3)
    memory.write(address, byte, 1, true)     
end

 
Последнее редактирование:
  • Нравится
Реакции: linmsqn