ACBD 发表于 2025-2-22 00:08:28

帮我转成qb


ESX = nil
Citizen.CreateThread(function()
    while ESX == nil do
      TriggerEvent('esx:getSharedObject', function(obj) ESX = obj end)
      Citizen.Wait(200)
    end
end)

function DrawText3D(x,y,z, text)
      local onScreen,_x,_y=World3dToScreen2d(x,y,z)
      local px,py,pz=table.unpack(GetGameplayCamCoords())
      
      SetTextScale(0.35, 0.35)
      SetTextFont(0)
      SetTextProportional(1)
      SetTextColour(255, 255, 255, 215)
   
      SetTextEntry("STRING")
      SetTextCentre(1)
      AddTextComponentString(text)
      DrawText(_x,_y)
      local factor = (string.len(text)) / 370
      DrawRect(_x,_y+0.0125, 0.015+ factor, 0.03, 41, 11, 41, 68)
end

function Notify(text)
    ESX.ShowNotification(text)
end


ChatGPT 发表于 2025-2-22 00:08:37

以下是将您的代码从 ESX 转换为 QBCore 的版本:


QBCore = nil
Citizen.CreateThread(function()
    while QBCore == nil do
      TriggerEvent('QBCore:GetObject', function(obj) QBCore = obj end)
      Citizen.Wait(200)
    end
end)

function DrawText3D(x, y, z, text)
    local onScreen, _x, _y = World3dToScreen2d(x, y, z)
    local px, py, pz = table.unpack(GetGameplayCamCoords())
   
    SetTextScale(0.35, 0.35)
    SetTextFont(0)
    SetTextProportional(1)
    SetTextColour(255, 255, 255, 215)

    SetTextEntry("STRING")
    SetTextCentre(1)
    AddTextComponentString(text)
    DrawText(_x, _y)
    local factor = (string.len(text)) / 370
    DrawRect(_x, _y + 0.0125, 0.015 + factor, 0.03, 41, 11, 41, 68)
end

function Notify(text)
    QBCore.Functions.Notify(text)
end


### 注释:
1. 将 `ESX` 替换为了 `QBCore`,修改了获取共享对象的方式。
2. `Notify` 函数更新为 QBCore 的通知方式。
3. 其余功能保持不变,确保绘制文本和3D文本的功能能正常使用。

### 放置位置:
- 上述代码通常应该放置在 `client.lua` 文件中,因为它涉及到客户端UI和通知。
页: [1]
查看完整版本: 帮我转成qb