QbusToEsx Qbus Scriptleri ESX e Çevirme, Durmaksızın Güncell.

Discord : www.discord.gg/mdtyazilim

Discord : www.discord.gg/j6GKN9WUWT


Qbus Temeli Ve ESX temeli.

QBCore = nil 

Citizen.CreateThread(function()
   while QBCore == nil do
   	TriggerEvent('QBCore:GetObject', function(obj) QBCore = obj end)
   	Citizen.Wait(30) -- Saniye Bekletme
   end
end)

Altaki yeni olanlar için -- üsteki eski sürüm için, çalışmaz ise ikisinide dene...

local QBCore = exports['qb-core']:GetCoreObject()

ÜSTEKİ QBUSCORE

ALTAKİ ESX

ESX = nil

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

Beyler Bu kısım Yoktu eklendi. Anlamı: Oyuncu Giriş Kısmı İlik Oyuna Girerken Lazım, Yani Server Dosyasıdır. Bu olay, oyuncu sunucuya bağlandığında tetiklenir

RegisterNetEvent('QBCore:Client:OnPlayerLoaded')
AddEventHandler('QBCore:Client:OnPlayerLoaded',

ÜSTEKİ QBUSCORE

ALTAKİ ESX

RegisterNetEvent('esx:playerLoaded')
AddEventHandler('esx:playerLoaded',

Server Dosyası, Job Kısmı Meslek Kısmıdır.

RegisterNetEvent('QBCore:Client:OnJobUpdate')
AddEventHandler('QBCore:Client:OnJobUpdade', 

ÜSTEKİ QBUSCORE

ALTAKİ ESX

RegisterNetEvent('esx:setJob')
AddEventHandler('esx:setJob',

Burdan Kontrol Edebilrsiniz. https://esx-framework.github.io/es_extended/common/events/onplayerdeath/#example-client-side-usage

RegisterNetEvent('QBCore:Client:OnPlayerUnload')
AddEventHandler('QBCore:Client:OnPlayerUnload',

ÜSTEKİ QBUSCORE

ALTAKİ ESX

RegisterNetEvent('esx:onPlayerDeath')
AddEventHandler('esx:onPlayerDeath',

Beyler Bu kısım Yoktu eklendi. Anlamı: Bu işlev, en yakın oyuncu istemci kimliğini ve oynatıcıya olan mesafeyi alır.

QBCore.Functions.GetClosestPlayer()

ÜSTEKİ QBUSCORE

ALTAKİ ESX

ESX.Game.GetClosestPlayer()

3D li Yazı Ekleme, Cilent Dosyası. Örnek : https://media.discordapp.net/attachments/623207764314816562/812096508786507806/resim_1.png

QBCore.Functions.DrawText3D(1, 1, 1, 'Örnek')

ÜSTEKİ QBUSCORE

ALTAKİ ESX

DrawText3D(1, 1, 1, 'Örnek') -- (aşağısına function açmanız gerekmektedir.)
ESX.Game.Utils.DrawText3D(1, 1, 1, 'Örnek') -- ESX bunda gerek yok zaten var, fonksiyona.

Menu Aç Kapat ESX & QBCore De Ki Menüler Örnekler : https://prnt.sc/u4f7s5

QBCore.UI.Menu.Open
QBCore.UI.Menu.CloseAll() -- (menu default scripti kurmanız gerekmektedir.)

ÜSTEKİ QBUSCORE

ALTAKİ ESX

ESX.UI.Menu.Open
ESX.UI.Menu.CloseAll()

Bildirim Scripti Örnek : https://dosya.turkmmo.com/2020/09/36521_efa54848705a4069cbedfc2770e50cf1.png

TriggerClientEvent("QBCore:Notify", "Text/Yazı", "success", 2500)

-- üsteki server -- altaki client

QBCore.Functions.Notify("Text/Yazı.", "error")

ÜSTEKİ QBUSCORE

ALTAKİ ESX

TriggerEvent('Notification',"Text/Yazı.")

-- üsteki server -- altaki client

ESX.ShowHelpNotification('Text/Yazı.')

Enventer İtem Kısmı.

xPlayer.Functions.GetItemByName 

ÜSTEKİ QBUSCORE

ALTAKİ ESX

xPlayer.getInventoryItem
xPlayer.getQuantity

xPlayer.PlayerData.name 

ÜSTEKİ QBUSCORE

ALTAKİ ESX

xPlayer.getName()

Job Başlangıç kod.

RegisterNetEvent('QBCore:Client:OnJobUpdate')
AddEventHandler('QBCore:Client:OnJobUpdate', function(job)
    PlayerData.job = job
end)

ÜSTEKİ QBUSCORE

ALTAKİ ESX

RegisterNetEvent('esx:setJob')
AddEventHandler('esx:setJob', function(job)
    PlayerData.job = job
end)

Para Ver Para Al Kısmı

Player.Functions.AddMoney('bank', amount, "Bank depost") -- banka
Player.Functions.RemoveMoney('cash', amount, "Bank depost") -- üstündeki para silme
Player.Functions.GetMoney('cash') -- üstündeki para "cash" - "bank" - "blackmoney"

ÜSTEKİ QBUSCORE

ALTAKİ ESX

xPlayer.removeAccountMoney('bank', amount) --para kaldırma
xPlayer.addMoney(amount) -- para ekleme
xPlayer.getMoney() -- üstündeki para

Para Kısmı Data.

Player.PlayerData.money["bank"]

ÜSTEKİ QBUSCORE

ALTAKİ ESX

xPlayer.getAccount('bank').money

QBCore.Functions.IsSpawnPointClear()

ÜSTEKİ QBUSCORE

ALTAKİ ESX

ESX.Game.IsSpawnPointClear()

QBCore.Functions.SetVehicleProperties()

ÜSTEKİ QBUSCORE

ALTAKİ ESX

ESX.Game.SetVehicleProperties()

Envanter İtem Silme Kısmı.

xPlayer.Functions.RemoveItem 

ÜSTEKİ QBUSCORE

ALTAKİ ESX

xPlayer.removeInventoryItem 

Envanter İtem Ekleme Kısmı.

xPlayer.Functions.AddItem

ÜSTEKİ QBUSCORE

ALTAKİ ESX

xPlayer.addInventoryItem

Karakter Kımsı Oyuncunun İd Si Gibi Birşey.

QBCore.Functions.GetPlayer(src)

ÜSTEKİ QBUSCORE

ALTAKİ ESX

ESX.GetPlayerFromId(src)

Tüm oyuncuları çeker.

QBCore.Functions.GetPlayers(src)

ÜSTEKİ QBUSCORE

ALTAKİ ESX

ESX.GetPlayers(src)

QBCore.Functions.GetPlayerByCitizenId(src)

ÜSTEKİ QBUSCORE

ALTAKİ ESX

ESX.GetPlayerFromIdentifier(src)

Bu işlev, tüm sondaki beyaz boşlukları kaldırarak bir metni kırpar. Genellikle GetVehicleNumberPlateText() yerlileri dezenfekte ederken kullanılır. #örnek

QBCore.Functions.MathTrim(GetVehicleNumberPlateText(vehicle))

#standart

QBCore.Functions.MathTrim 

ÜSTEKİ QBUSCORE

ALTAKİ ESX

ESX.Math.Trim(value)

Nill buşta bilinmiyor güncelencek

ÖRNEK

QBCore.Functions.MathRound(GetVehicleBodyHealth(vehicle), 1),

#standart

QBCore.Functions.MathRound()

ÜSTEKİ QBUSCORE

ALTAKİ ESX

ÖRNEK

local deger - 5.444

print ('deger:' .. değer) - 5.444 -- döndürür
print ('deger yuvarlandı:' .. ESX.Math.Round(deger)) -- 5 döndürür
print ('deger yuvarlandı:' .. ESX.Math.Round(deger, 1)) -- 5,4 döndürür

#standart

ESX.Math.Round(değer, numaraOndalıkBasamaklar)

Araba Spawn Kısmı Konumu Vsb Şeyler.

QBCore.Functions.SpawnClear()
QBCore.Functions.SpawnVehicle()
QBCore.Functions.DeleteVehicle()
QBCore.Functions.GetVehicleProperties()
QBCore.Functions.GetClosestVehicle()

ÜSTEKİ QBUSCORE

ALTAKİ ESX

ESX.Game.IsSpawnPointClear()
ESX.Game.SpawnVehicle()
ESX.Game.DeleteVehicle()
ESX.Game.GetVehicleProperties()
ESX.Game.GetClosestVehicle()

--(Eğer ESX.Game olan neredeyse her şey QBCore.Functions olarak aynı şekildedir.)


Arabanın plakasını çekmesi için yani örnek arabanın plakası [ 01MDT34 ] gibi ise direk bu plakayı çeker. Kodu kullanacağın yer QBCore: qb-core/client/functions.lua

function QBCore.Functions.GetPlate(vehicle)
    if vehicle == 0 then return end
    return QBCore.Shared.Trim(GetVehicleNumberPlateText(vehicle))
end

ÜSTEKİ QBUSCORE

Kodu kullanacağın yer ESX: es_extended/client/functions.lua

ALTAKİ ESX

function ESX.GetPlate(vehicle)
    if vehicle == 0 then return end
    return ESX.Math.Trim(GetVehicleNumberPlateText(vehicle))
end

Arabanın Modelini çeker. Kodu kullanacağın yer QBCore: qb-core/client/functions.lua

function QBCore.Functions.GetVehicleLabel(vehicle)
    if vehicle == nil or vehicle == 0 then return end
    return GetLabelText(GetDisplayNameFromVehicleModel(GetEntityModel(vehicle)))
end

ÜSTEKİ QBUSCORE

Kodu kullanacağın yer ESX: es_extended/client/functions.lua: sala gitsin en alta

ALTAKİ ESX

function ESX.GetVehicleLabel(vehicle)
    if vehicle == nil or vehicle == 0 then return end
    return GetLabelText(GetDisplayNameFromVehicleModel(GetEntityModel(vehicle)))
end

Bu kodları buraya yapıştır: qb-core/client/functions.lua: 160 yapıştır. Araba Spawn Kısmı Konumu Vsb Şeyler.

QBCore.Functions.GetVehiclesInArea = function(coords, maxDistance) return EnumerateEntitiesWithinDistance(QBCore.Functions.GetVehicles(), false, coords, maxDistance) end
QBCore.Functions.IsSpawnPointClear = function(coords, maxDistance) return #QBCore.Functions.GetVehiclesInArea(coords, maxDistance) == 0 end

ÜSTEKİ QBUSCORE

ALTAKİ ESX

ESX.Game.GetVehiclesInArea = function(coords, maxDistance) return EnumerateEntitiesWithinDistance(ESX.Game.GetVehicles(), false, coords, maxDistance) end
ESX.Game.IsSpawnPointClear = function(coords, maxDistance) return #ESX.Game.GetVehiclesInArea(coords, maxDistance) == 0 end

--(Eğer ESX.Game olan neredeyse her şey QBCore.Functions olarak aynı şekildedir.)


qb-core/client/functions.lua bunu qb-core de client functions.lua. atın bir boş satıra

function QBCore.Functions.RequestNamedPtfxAsset(assetName, cb)
	if not HasNamedPtfxAssetLoaded(assetName) then
		RequestNamedPtfxAsset(assetName)

		while not HasNamedPtfxAssetLoaded(assetName) do
			Citizen.Wait(1)
		end
	end

	if cb ~= nil then
		cb()
	end
end

ÜSTEKİ QBUSCORE

ALTAKİ ESX

function ESX.Streaming.RequestNamedPtfxAsset(assetName, cb)
	if not HasNamedPtfxAssetLoaded(assetName) then
		RequestNamedPtfxAsset(assetName)

		while not HasNamedPtfxAssetLoaded(assetName) do
			Citizen.Wait(1)
		end
	end

	if cb ~= nil then
		cb()
	end
end

qb-core/client/functions.lua bunu qb-core de client functions.lua. atın bir boş satıra

function QBCore.Functions.DeleteObject(object)
	SetEntityAsMissionEntity(object, false, true)
	DeleteObject(object)
end

ÜSTEKİ QBUSCORE

ALTAKİ ESX

function ESX.Game.DeleteObject(object)
	SetEntityAsMissionEntity(object, false, true)
	DeleteObject(object)
end

qb-core/server/functions.lua bunu qb-core de server functions.lua. atın bir boş satıra

function QBCore.Functions.GetItemLabel(item)
	if QBCore.UseableItems[item] ~= nil then
		return QBCore.UseableItems[item].label
	end
end

ÜSTEKİ QBUSCORE

ALTAKİ ESX

function ESX.GetItemLabel(item)
	if ESX.Items[item] then
		return ESX.Items[item].label
	end
end

Oyuncu Kendi Karakterin.

QBCore.Functions.GetPlayerData()

ÜSTEKİ QBUSCORE

ALTAKİ ESX

ESX.GetPlayerData()

İtem Oluşturma.

QBCore.Functions.CreateUseableItem()

ÜSTEKİ QBUSCORE

ALTAKİ ESX

ESX.RegisterUsableItem()

Banka Para Kaldırma.

Player.Functions.RemoveMoney()

ÜSTEKİ QBUSCORE

ALTAKİ ESX

xPlayer.removeMoney(money)

Dosya'lar İle Alakalı.

QBCore.Functions.CreateCallback()

ÜSTEKİ QBUSCORE

ALTAKİ ESX

ESX.RegisterServerCallback()

Dosya'lar İle Alakalı.

QBCore.Functions.TriggerCallback()

ÜSTEKİ QBUSCORE

ALTAKİ ESX

ESX.TriggerServerCallback()

qb'de cid esx'de identifier kullanılıyor olayı çözmeniz için ufak bir kod bloğu bıraktım.

QBCore.Functions.CreateCallback('system:fetchStatus', function(source, cb)
    local Player = QBCore.Functions.GetPlayer(source)

     if Player then
           exports['ghmattimysql']:execute('SELECT skills FROM players WHERE citizenid = @citizenid', {
               ['@citizenid'] = Player.PlayerData.citizenid
          }, function(status)
              if status ~= nil then
                   cb(json.decode(status))
              else
                   cb(nil)
              end
          end)
     else
          cb()
     end
end)

ÜSTEKİ QBUSCORE

ALTAKİ ESX

ESX.RegisterServerCallback("system:fetchStatus", function(source, cb)
    local src = source
    local user = ESX.GetPlayerFromId(src)


    local fetch = [[
         SELECT
              skills
         FROM
              users
         WHERE
              identifier = @identifier
    ]]

    MySQL.Async.fetchScalar(fetch, {
         ["@identifier"] = user.identifier

    }, function(status)

         if status ~= nil then
              cb(json.decode(status))
         else
              cb(nil)
         end

    end)
end)

QBCore.Shared.Items

ÜSTEKİ QBUSCORE

ALTAKİ ESX

ESX.GetItems()

Sql bağlama kısmı

QBCore.Functions.ExecuteSql()

ÜSTEKİ QBUSCORE

ALTAKİ ESX

ESX.ExecuteSql() --(ghmattimysql)
MySQL.Async.execute()

RegisterCommand - yani chat komut kısmı.

QBCore.Commands.Add()

ÜSTEKİ QBUSCORE

ALTAKİ ESX

RegisterCommand 

-- (RegisterCommand qbcore'da da çalışır.)


Karakter Kısmı Dır Data Sına Bağlama.

local Player = QBCore.Functions.GetPlayer(source)
['@citizenid'] = Player.PlayerData.citizenid -- çekme Player

ÜSTEKİ QBUSCORE

ALTAKİ ESX

local user = ESX.GetPlayerFromId(src)
["@identifier"] = user.identifier -- çekme user

QBCore.Shared.Trim()
QBCore.Shared.GroupDigits()

ÜSTEKİ QBUSCORE

ALTAKİ ESX

ESX.Math.Trim()
ESX.Math.GroupDigits()

QBCore.Functions.GetClosestObject()

ÜSTEKİ QBUSCORE

ALTAKİ ESX

ESX.Game.GetClosestObject()

QBCore.Functions.GetVehicleInDirection()

ÜSTEKİ QBUSCORE

ALTAKİ ESX

ESX.Game.GetVehicleInDirection()

QBCore.Functions.GetPeds()

ÜSTEKİ QBUSCORE

ALTAKİ ESX

ESX.Game.GetPeds()

QBCore.Functions.GetObjects()

ÜSTEKİ QBUSCORE

ALTAKİ ESX

ESX.Game.GetObjects()

QBCore.Functions.GetClosestPed()

ÜSTEKİ QBUSCORE

ALTAKİ ESX

ESX.Game.GetClosestPed()

QBCore.Functions.SpawnObject()

ÜSTEKİ QBUSCORE

ALTAKİ ESX

ESX.Game.SpawnObject()