|
|

楼主 |
发表于 2023-11-1 15:10:19
|
显示全部楼层
本帖最后由 kissinger 于 2023-11-1 15:36 编辑
积分直接通过lua读取数据库模式读入内存,关联到server内的处理函数就可以,在积分刷新的地方(这里没案例,不过可参考数据库读入那里读入).
另外在积分扣除的地方,除了扣除读入内存的参数,也要顺便写入数据库,上面都有注释掉的案例.
根据你数据库对应表在哪里修改对应命令
白写了半天,数据库示例说违规可能损害网站,写不上去
ZhangHaoJF = {} --示例定义,正常应该在第三方全局模式定义,或者这里定义后关联数据库的数据,开头这个注释去掉,加入下面数据库读取
AuthDBQuery读取数据库,这句写不上去
if Query then
repeat
ZhangHaoJF[Query:GetUInt32(0)] = Query:GetUInt32(1) --假如表只有2列,第一列为账号(或者角色,角色的话下面也要配套改),第二列为积分,否则要调整
until not Query:NextRow()
扣除积分部分
if CURRENCY_TYPES[currencyType] == "SERVER_HANDLED" then --积分的扣除方式
local AccID = player:GetAccountId()
ZhangHaoJF[AccID] =ZhangHaoJF[AccID] or 0
if ZhangHaoJF[AccID] >= amount then --如果有积分和使用积分,并且有足够购买的积分
ZhangHaoJF[AccID] = ZhangHaoJF[AccID] - amount
AuthDBQuery更新数据库,这句写不上去
else --不满足上面任何都扣除失败
player:SendAreaTriggerMessage("|cFFFF0000"..CONFIG.strings.insufficientFunds.." "..currencyName.."|r")
player:PlayDirectSound(GetSoundEffect("notEnoughMoney", player:GetRace(), player:GetGender()), player)
return false
end
end
|
|