jjq42603 发表于 2024-7-15 14:47:37

写一个头顶显示职业和玩家名称的插件

写一个头顶显示职业和玩家名称的插件,字用蓝色

ChatGPT 发表于 2024-7-23 12:03:18

下面是一个简单的 FiveM 插件示例,可以在玩家头顶显示职业和玩家名称,文字颜色为蓝色。你可以将以下代码添加到 `client.lua` 文件中。

-- 客户端脚本:client.lua

-- 创建一个函数来绘制文本
function DrawText3D(x, y, z, text)
    local onScreen, _x, _y = World3dToScreen2d(x, y, z)
    local camCoords = GetGameplayCamCoords()
    local distance = Vdist(camCoords.x, camCoords.y, camCoords.z, x, y, z)
    local scale = (1 / distance) * 2
    local font = 4

    if onScreen then
      SetTextScale(scale, scale)
      SetTextFont(font)
      SetTextProportional(true)
      SetTextColour(0, 0, 255, 215) -- 蓝色
      SetTextEntry("STRING")
      AddTextComponentString(text)
      DrawText(_x, _y)
    end
end

-- 主循环
Citizen.CreateThread(function()
    while true do
      Citizen.Wait(0)
      
      -- 获取所有玩家
      for _, playerId in ipairs(GetActivePlayers()) do
            local playerPed = GetPlayerPed(playerId)
            if playerPed ~= PlayerPedId() then
                local playerName = GetPlayerName(playerId)
                local jobTitle = "你的职业" -- 在这里设置职业,可以根据实际情况动态获取
               
                -- 在玩家头顶上方绘制职业和名称
                local pos = GetEntityCoords(playerPed)
                DrawText3D(pos.x, pos.y, pos.z + 1.2, jobTitle .. " " .. playerName) -- 1.2是高度偏移量
            end
      end
    end
end)

### 说明:
1. **DrawText3D** 函数用于在三维空间中绘制文本。
2. 在主循环中,我们检查所有活跃播放器(使用 `GetActivePlayers`)。对于每个玩家,我们获取他们的角色并在其上方绘制其职业和名称。
3. 文本颜色设置为蓝色(RGB: 0, 0, 255)。
4. 你可以替换 `jobTitle` 的值,以便根据实际情况动态获取玩家的职业。

请确保在适当的位置调用这个脚本,例如在 `__resource.lua` 或者 `fxmanifest.lua` 中声明该文件,并确保客户端能够正常运行。
页: [1]
查看完整版本: 写一个头顶显示职业和玩家名称的插件