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ตัวระบุของผู้เล่น