Skip to main content

Database

รหัสเริ่มต้นรองรับ oxmysql คุณสามารถแก้ไขรหัสให้มีความเข้ากันได้กับทรัพยากรที่คุณใช้งานได้ที่ไฟล์ server.database.lua

caution

หากคุณไม่ได้ใช้งาน oxmysql อย่าลืม แก้ไข รหัสที่ไฟล์ fxmanifest.lua

server_scripts {
'@oxmysql/lib/MySQL.lua', -- oxmysql
'config/auth.config.lua',
'config/server.config.lua',
'public/database/server.database.lua',
'source/server/auth.server.lua',
'source/server/main.server.lua'
}

InitDatabase (function)

ดำเนินการตรวจสอบและติดตั้งฐานข้อมูลเมื่อ oxmysql พร้อมใช้งาน

บรรทัดที่ 16
local function InitDatabase()
if not pcall(MySQL.scalar.await, QUERY.SELECT_HEALTH_COLUMN) then
MySQL.query(QUERY.ADD_HEALTH_COLUMN)
end

if not pcall(MySQL.scalar.await, QUERY.SELECT_ARMOUR_COLUMN) then
MySQL.query(QUERY.ADD_ARMOUR_COLUMN)
end
end

MySQL.ready(InitDatabase)

FetchPlayerStatus (function)

รับข้อมูลสถานะ "พลังชีวิต" และ "เกราะ" ในขณะที่ผู้เล่นเข้าร่วมเซิร์ฟเวอร์

บรรทัดที่ 31
function DATABASE.FetchPlayerStatus(identifier)
return MySQL.prepare.await(QUERY.SELECT_PLAYER_STATUS, { identifier })
end

Parameter

NameTypeDefaultDescription
identifierstringPlayer Identifierตัวระบุของผู้เล่น

Return

NameTypeDefaultDescription
statustable{ health, armour }ตารางข้อมูลสถานะ "พลังชีวิต" และ "เกราะ"
status.healthnumber / nilnilค่าสถานะ "พลังชีวิต" หรือ ไม่มีค่า สำหรับการเชื่อมต่อครั้งแรก
status.armournumber / nilnilค่าสถานะ "เกราะ" หรือ ไม่มีค่า สำหรับการเชื่อมต่อครั้งแรก
note

สถานะ "พลังชีวิต" หรือ "เกราะ" หากไม่มีค่า (nil) รหัสจะอ้างอิงจากการกำหนดค่าเริ่มต้น Health.Default สำหรับ พลังชีวิต หรือ Armour.Default สำหรับ เกราะ

UpdatePlayerStatus (function)

อัพเดทข้อมูลสถานะ "พลังชีวิต" และ "เกราะ" ในขณะที่ผู้เล่นออกจากเซิร์ฟเวอร์

บรรทัดที่ 39
function DATABASE.UpdatePlayerStatus(identifier, status)
MySQL.prepare(QUERY.UPDATE_PLAYER_STATUS, { status.health, status.armour, identifier }, function(affectedRows)
-- print(affectedRows)
end)
end

Parameter

NameTypeDefaultDescription
identifierstringPlayer Identifierตัวระบุของผู้เล่น
statustable{ health, armour }ตารางข้อมูลสถานะ "พลังชีวิต" และ "เกราะ"
status.healthnumberHealth Valueค่าสถานะ "พลังชีวิต"
status.armournumberArmour Valueค่าสถานะ "เกราะ"

UpdateAllPlayerStatus (function)

อัพเดทข้อมูลสถานะ "พลังชีวิต" และ "เกราะ" ตามเวลาที่กำหนดใน Save.Time เพื่อป้องกันข้อมูล Rollback

บรรทัดที่ 48
function DATABASE.UpdateAllPlayerStatus(data)
MySQL.prepare(QUERY.UPDATE_PLAYER_STATUS, data, function(results)
-- print(results)
end)
end

Parameter

NameTypeDefaultDescription
datatable{ { [1], [2], [3] } }ตารางข้อมูลสถานะ "พลังชีวิต" และ "เกราะ" ของผู้เล่นทั้งหมดที่ออนไลน์
data[key][1]numberHealth Valueค่าสถานะ "พลังชีวิต"
data[key][2]numberArmour Valueค่าสถานะ "เกราะ"
data[key][3]stringPlayer Identifierตัวระบุของผู้เล่น