GetPlayerName from another Player

When I enter ‘/addpartner ID,’ I’m trying to display the partner’s name in DrawHud. However, I’ve been having trouble with this, and despite my attempts, I haven’t been successful. To the best of my knowledge, both the player’s and partner’s IDs are correctly displayed. Unfortunately, using ‘GetPlayerName(partnerID())’ doesn’t seem to work.

I’ve uploaded both of my files for reference, and I hope someone can help me with this issue. Thank you in advance for any assistance
client.lua (5.0 KB)
server.lua (1.8 KB)

Hi,
client.lua, line 52:

replace

text2 = "\nPartner: " .. GetPlayerName(PlayerId()) .. " - ID: " .. partnerID

with

text2 = "\nPartner: " .. GetPlayerName(GetPlayerFromServerId(partnerID)) .. " - ID: " .. partnerID

The PlayerId() function gets the local player’s ID, aka the ID of the client on which the script is running. Also, why do you have 4 DrawTextOnScreen functions?

Thanks for the Help.

Why 4 DrawTextOnScreen Function. Good Question hahaha.

Can you maybe help me thta stay under “Partner” the Distance between ME and my Partner?

Yeah sure, this is untested but it should look something like this:

local myCoords = GetEntityCoords(PlayerPedId())
local partnerCoords = GetEntityCoords(GetPlayerPed(partnerID))
local distance = #(myCoords - partnerCoords)

The text drawing has to be done every tick, but this calculation can be done every 1 or 2 seconds if you want to optimize it a bit

https://cdn.discordapp.com/attachments/1175713766193770547/1175715846400786442/image.png?ex=656c3db5&is=6559c8b5&hm=a6443c2f95647ebe66a67a2e986f75abcdf229092a3c6d45c4f0f4ef5595d49f&

Hey, thanks again for the help, but it doesn’t seem to work quite right. As you can see in the screenshot, some number is displayed but not the distance…

Moreover, when I enter /addpartner ID, the player doesn’t get the HUD that I get. Strangely, I also have to first enter /test and then /teststop and then /addpartner ID to get the HUD to display.

Yes there was a little oversight in the code I provided, as I said it was not tested. I modified the source code you provided and now it works as intended:

(Also deleted some stuff from it)

client.lua

local partnerID = nil
hudActive = false


RegisterNetEvent('updatePartner')
AddEventHandler('updatePartner', function(id)
    partnerID = id
    hudActive = true
end)

RegisterNetEvent('removePartner')
AddEventHandler('removePartner', function()
    partnerID = nil
    hudActive = false
end)


-- HUD-Zeichnung in einer Schleife, die konstant läuft
Citizen.CreateThread(function()

    while true do
        Citizen.Wait(0) -- Warte einen Frame

        if hudActive then
            DrawHUD() -- Zeichne das HUD
        end
    end
end)

-- Zeichenfunktion für das HUD
function DrawHUD()
    if not partnerID then
        return
    end

    local title = "Streife"
    local text1 = "\nName: " .. GetPlayerName(PlayerId()) .. " - ID: " .. GetPlayerServerId(PlayerId())
    local text2 = "\nPartner: " .. GetPlayerName(GetPlayerFromServerId(partnerID)) .. " - ID: " .. partnerID

    local myCoords = GetEntityCoords(PlayerPedId())
    local partnerCoords = GetEntityCoords(GetPlayerPed(GetPlayerFromServerId(partnerID)))
    local distance = math.ceil(#(myCoords - partnerCoords))

    local text3 = "Entfernung: " .. distance .. " Meter"

    -- Vergrößere das HUD um 10%
    DrawRect(1.0, 0.313, 0.25, 0.08, 0, 0, 0, 51) -- Schwarz, 20% transparent
    DrawTextOnScreen(text1, 0.88, 0.275, 0.175) -- Angepasste Textskalierung für die Größe
    DrawTextOnScreen(text2, 0.88, 0.3, 0.175) -- Angepasste Textskalierung für die Größe
    DrawTextOnScreen(title, 0.88, 0.275, 0.175) -- Angepasste Textskalierung für die Größe
    DrawTextOnScreen(text3, 0.88, 0.325, 0.175)
end


function DrawTextOnScreen(text2, x, y, scale)
    SetTextFont(0)
    SetTextProportional(1)
    SetTextScale(scale, scale)
    SetTextColour(255, 255, 255, 255)
    SetTextDropshadow(0, 0, 0, 0, 255)
    SetTextEdge(1, 0, 0, 0, 255)
    SetTextDropShadow()
    SetTextOutline()
    BeginTextCommandDisplayText("STRING")
    AddTextComponentSubstringPlayerName(text2)
    SetTextJustification(1) -- Zentriert den Text
    EndTextCommandDisplayText(x, y)
end

server.lua


local partners = {}


RegisterCommand('addpartner', function(source, args)
    if partners[source] then
        TriggerClientEvent('notify', source, 'Du hast bereits einen Streifenpartner.')
        return
    end

    if args[1] then

        local partnerID = tonumber(args[1])

        if partnerID and GetPlayerPing(partnerID) ~= 0 then -- Prüft ob der Spieler online ist

            partners[source] = partnerID
            partners[partnerID] = source

            TriggerClientEvent('updatePartner', source, partnerID)
            TriggerClientEvent('updatePartner', partnerID, source)

        else

            TriggerClientEvent('notify', source, 'Ungültige Partner-ID oder Spieler nicht online.')
        end
    else

        TriggerClientEvent('notify', source, 'Du musst eine Spieler-ID angeben.')
    end
end, false)


RegisterCommand('delpartner', function(source)
    if partners[source] then
        local partnerID = partners[source]
        partners[source] = nil
        partners[partnerID] = nil
        TriggerClientEvent('removePartner', source)
        TriggerClientEvent('removePartner', partnerID)
    end
end, false)


AddEventHandler('playerDropped', function(playerID)
    if partners[playerID] then
        local partnerID = partners[playerID]
        partners[playerID] = nil
        if partners[partnerID] then
            partners[partnerID] = nil
            TriggerClientEvent('removePartner', partnerID)
        end
    end
end)

As an observation, if you’re using onesync and the distance between the two players is > ~440, the partner’s player will be culled by the server and the name displayed will be **Invalid**