</>liveDevDocs
FiveM

Server

Server tarafı kalıpları — callbackler, oxmysql, yetki kontrolü.

Olay + kaynak doğrulama

source'u her zaman olayın başında yakala; sonra Wait çağrıları onu bozar.

server/main.lua
RegisterNetEvent('liveDev:buyItem', function(item, amount)
    local src = source
    local Player = exports['qb-core']:GetCoreObject().Functions.GetPlayer(src)
    if not Player then return end

    local price = (Config.Prices[item] or 0) * amount
    if Player.Functions.RemoveMoney('cash', price) then
        Player.Functions.AddItem(item, amount)
        TriggerClientEvent('ox_lib:notify', src, {
            type = 'success',
            description = ('%dx %s alındı'):format(amount, item),
        })
    end
end)

ox_lib callback (server → client cevap)

lib.callback.register('liveDev:getBalance', function(source)
    local Player = exports['qb-core']:GetCoreObject().Functions.GetPlayer(source)
    return Player and Player.PlayerData.money.bank or 0
end)

oxmysql sorguları

server/db.lua
-- Tekil satır
local row = MySQL.single.await(
    'SELECT * FROM player_vehicles WHERE plate = ?',
    { plate }
)

-- Liste
local vehicles = MySQL.query.await(
    'SELECT plate, label FROM player_vehicles WHERE citizenid = ?',
    { cid }
)

-- Yazma + etkilenen satır
local affected = MySQL.update.await(
    'UPDATE player_vehicles SET stored = 1 WHERE plate = ?',
    { plate }
)

SQL injection

Asla string birleştirme ile sorgu kurma. Her zaman ? placeholder + parametre dizisi kullan.

On this page