80 lines
		
	
	
		
			No EOL
		
	
	
		
			2 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
			
		
		
	
	
			80 lines
		
	
	
		
			No EOL
		
	
	
		
			2 KiB
		
	
	
	
		
			Lua
		
	
	
	
	
	
local ids = {}
 | 
						|
 | 
						|
local function getTriggerFunction(key)
 | 
						|
    return function(id, ...)
 | 
						|
        -- if on the client, it's easy
 | 
						|
        if not IsDuplicityVersion() then
 | 
						|
            TriggerEvent('playernames:configure', GetPlayerServerId(id), key, ...)
 | 
						|
        else
 | 
						|
            -- if on the server, save configuration
 | 
						|
            if not ids[id] then
 | 
						|
                ids[id] = {}
 | 
						|
            end
 | 
						|
 | 
						|
            -- save the setting
 | 
						|
            ids[id][key] = table.pack(...)
 | 
						|
 | 
						|
            -- broadcast to clients
 | 
						|
            TriggerClientEvent('playernames:configure', -1, id, key, ...)
 | 
						|
        end
 | 
						|
    end
 | 
						|
end
 | 
						|
 | 
						|
if IsDuplicityVersion() then
 | 
						|
    function reconfigure(source)
 | 
						|
        for id, data in pairs(ids) do
 | 
						|
            for key, args in pairs(data) do
 | 
						|
                TriggerClientEvent('playernames:configure', source, id, key, table.unpack(args))
 | 
						|
            end
 | 
						|
        end
 | 
						|
    end
 | 
						|
 | 
						|
    AddEventHandler('playerDropped', function()
 | 
						|
        ids[source] = nil
 | 
						|
    end)
 | 
						|
end
 | 
						|
 | 
						|
setComponentColor = getTriggerFunction('setc')
 | 
						|
setComponentAlpha = getTriggerFunction('seta')
 | 
						|
setComponentVisibility = getTriggerFunction('tglc')
 | 
						|
setWantedLevel = getTriggerFunction('setw')
 | 
						|
setHealthBarColor = getTriggerFunction('sehc')
 | 
						|
setNameTemplate = getTriggerFunction('tpl')
 | 
						|
setName = getTriggerFunction('name')
 | 
						|
 | 
						|
if not io then
 | 
						|
    io = { write = nil, open = nil }
 | 
						|
end
 | 
						|
 | 
						|
local template = load(LoadResourceFile(GetCurrentResourceName(), 'template/template.lua'))()
 | 
						|
 | 
						|
function formatPlayerNameTag(i, templateStr)
 | 
						|
    --return ('%s <%d>'):format(GetPlayerName(i), GetPlayerServerId(i))
 | 
						|
    local str = ''
 | 
						|
 | 
						|
    template.print = function(txt)
 | 
						|
        str = str .. txt
 | 
						|
    end
 | 
						|
 | 
						|
    local context = {
 | 
						|
        name = GetPlayerName(i),
 | 
						|
        i = i,
 | 
						|
        global = _G
 | 
						|
    }
 | 
						|
 | 
						|
    if IsDuplicityVersion() then
 | 
						|
        context.id = i
 | 
						|
    else
 | 
						|
        context.id = GetPlayerServerId(i)
 | 
						|
    end
 | 
						|
 | 
						|
    TriggerEvent('playernames:extendContext', i, function(k, v)
 | 
						|
        context[k] = v
 | 
						|
    end)
 | 
						|
 | 
						|
    template.render(templateStr, context, nil, true)
 | 
						|
 | 
						|
    template.print = print
 | 
						|
 | 
						|
    return str
 | 
						|
end |