Página 1 de 1

[Samp,Lua] Mostrar mensagem sobre player

Enviado: 31 Jan 2019, 12:42
por Um_Geek
Imagem

Sempre que um player mandar mensagem no chat caso ele esteja visível ira aparecer a mensagem sobre a cabeça do mesmo.
A mensagem mostra id e user na cor do player. O mod foi testado poucas vezes.

acompanha uns requerimentos para scripts que trabalham com samp.
requer estar no samp e sampfuncs.

O primeiro que fiz não estava funcionando nada bem, talvez agora funcione melhor.
não sei porque, mas o opcode do sampfuncs sampGetCharHandleBySampPlayerIdaqui não esta retornando verdadeiro, então usei uma gambiarra, mas não sei se funciona bem :hm:

Código: Selecionar tudo

local function get_samp_char(id)
   return getAllChars()[id+1] -- ? sampGetCharHandleBySampPlayerId(id) 
end

Código: Selecionar tudo

script_name("mostrar mensagem sobre player no samp");
script_author("Um_Geek")

function main()
    if isSampLoaded() and isSampfuncsLoaded() then
        local mad = require('MoonAdditions')
        local sampev = require 'lib.samp.events'
    
        local FONT_01 = renderCreateFont('tahoma',8,0x1+0x4+0x8)
    
        local function get_samp_char(id)
            return getAllChars()[id+1] -- ? sampGetCharHandleBySampPlayerId(id) 
        end

        function sampev.onChatMessage(player_id,msg)
            local ped = get_samp_char(player_id)
            if ped then
                local function display(player_id,msg)
                    local timer = os.clock() + 3.0 
                    while timer >= os.clock() do 
                        local bone = mad.get_char_bone(ped,mad.bone_id.HEAD_1)
                        if bone then
                            local color = sampGetPlayerColor(player_id)
                            local name = sampGetPlayerNickname(player_id)
                            local bone_pos = bone.matrix.pos
                            local sx,sy = convert3DCoordsToScreen(bone_pos.x, bone_pos.y, bone_pos.z)
                            sx = sx + 20
                            sy = sy - 20
                            renderFontDrawText(FONT_01,string.format('%d:%s\n{FFFFFFFF}%s',player_id,name,msg),sx,sy,color)
                        end
                        wait(0)
                    end
                end
                lua_thread.create(display,player_id,msg)
            end
        end   

        while true do wait(0) end
    end
end

Re: [Samp,Lua] Mostrar mensagem sobre player

Enviado: 31 Jan 2019, 21:41
por Snowflakes
Ué, já não tem isso no SAMP? Faz tempo que eu joguei mas lembro de ter

Re: [Samp,Lua] Mostrar mensagem sobre player

Enviado: 31 Jan 2019, 22:57
por Um_Geek
Snowflakes escreveu:
31 Jan 2019, 21:41
Ué, já não tem isso no SAMP? Faz tempo que eu joguei mas lembro de ter

não sei ao certo porque jogo por lan. mas deve ter plugin ou alguns modos de jogo que tenha isto.

Re: [Samp,Lua] Mostrar mensagem sobre player

Enviado: 01 Fev 2019, 07:11
por Junior_Djjr
Isto é realmente muito bom, devia ser padrão no SAMP.

Re: [Samp,Lua] Mostrar mensagem sobre player

Enviado: 05 Fev 2019, 20:40
por KarapTeloS
Ja tem isso no SAMP.
SampFuncs está jogado as traças, só tem compatibilidade com a versão 0.3.7R1 e anteriores e não com as novas e pelo jeito não será >> Blasthack.