跳转到内容

PublicDB

互动数值操作类


枚举列表

PublicDB.InteractAttrFieldName

  • 描述: 互动数值属性名称枚举
成员名称成员说明
CurrentNum当前数量
MaxNum上限数量
MinNum下限数量
IncreaseTimes增长次数
IncreaseFrequency增长频率
IncreaseValue增长数量

PublicDB.InteractAttrErrorType

  • 描述: 互动操作返回值枚举
成员名称成员说明
Success成功

PublicDB.ArchiveType

  • 描述: 存档类型
成员名称成员说明
Number_Array数值存档
String_Array字符串存档
Boolean_Array布尔值存档

函数列表

InitInteractiveAllFieldValue

  • 描述: 上传互动数值(必须先要创建一个互动数值然后对他进行操作)

  • 范围: 服务端

参数列表:

参数类型说明
PlayerUID1number操作人得PlayerUID
PlayerUID2number被操作人得PlayerUID
InteractiveNamestring互动数值名称(自定义名称)
DicInteractiveFieldValue{[PublicDB.InteractAttrFieldName]:number}互动数值所有属性值
Verifyboolean是否开启验证(限定老的值,一般是用于要求老值不被修改的情况下,才做修改)
local PlayerUID1 = 610140737498231334
local PlayerUID2 = 610140737498231334
local InteractiveName = "测试"
local DicInteractiveFieldValue = {
[PublicDB.InteractAttrFieldName.CurrentNum] = 50,
[PublicDB.InteractAttrFieldName.MaxNum] = 100,
[PublicDB.InteractAttrFieldName.MinNum] = 0,
[PublicDB.InteractAttrFieldName.IncreaseTimes] = 0,
[PublicDB.InteractAttrFieldName.IncreaseFrequency] = 10, --这个最小为10
[PublicDB.InteractAttrFieldName.IncreaseValue] = 0,
}
PublicDB:InitInteractiveAllFieldValue(PlayerUID1, PlayerUID2, InteractiveName, DicInteractiveFieldValue, false, nil)

SetInteractiveSingleFieldValue

  • 描述: 上传互动数值属性(需要先上传互动值才可以使用否则无效)

  • 范围: 服务端

  • 警告: 仅地图发布后生效

参数列表:

参数类型说明
PlayerUID1number操作人得PlayerUID(一般为自己)
PlayerUID2number被操作人得PlayerUID
InteractiveNamestring互动数值名称
InteractAttrFieldNamePublicDB.InteractAttrFieldName互动数值属性值名称
InteractAttrFieldValuenumber互动数值属性值
Verifyboolean是否开启验证(限定老的值,一般是用于要求老值不被修改的情况下,才做修改)
DicInteractiveVerifyValue{[PublicDB.InteractAttrFieldName]:number}数值校验(把当前所有属性值发给服务器如果不等于服务器缓存的值而且Verify为true修改属性值失败)
local PlayerUID1 = 610140737498231334
local PlayerUID2 = 610140737498231334
local InteractiveName = "测试"
local InteractAttrFieldName = PublicDB.InteractAttrFieldName.CurrentNum
local InteractAttrFieldValue = 5
local Verify = false
local DicInteractiveVerifyValue = nil
PublicDB:SetInteractiveSingleFieldValue(PlayerUID1,PlayerUID2,InteractiveName,InteractAttrFieldName,InteractAttrFieldValue,Verify,DicInteractiveVerifyValue)

ReduceInteractiveCurrentNumValue

  • 描述: 减少互动数值的当前数量值

  • 范围: 服务端

  • 警告: 仅地图发布后生效

参数列表:

参数类型说明
PlayerUID1number操作人得PlayerUID
PlayerUID2number被操作人得PlayerUID
InteractiveNamestring互动数值名称
ReduceNumbernumber减小的值
local PlayerUID1 = 610140737498231334
local PlayerUID2 = 610140737498231334
local InteractiveName = "测试"
local ReduceNumber = 5
PublicDB:ReduceInteractiveCurrentNumValue(PlayerUID1, PlayerUID2, InteractiveName, ReduceNumber)

AddInteractiveCurrentNumValue

  • 描述: 增加互动数值的当前数量值

  • 范围: 服务端

  • 警告: 仅地图发布后生效

参数列表:

参数类型说明
PlayerUID1number操作人得PlayerUID
PlayerUID2number被操作人得PlayerUID
InteractiveNamestring互动数值名称
AddNumbernumber增加的值
local PlayerUID1 = 610140737498231334
local PlayerUID2 = 610140737498231334
local InteractiveName = "测试"
local AddNumber = 5
PublicDB:AddInteractiveCurrentNumValue(PlayerUID1, PlayerUID2, InteractiveName, AddNumber)

PushAllInteractiveNumberChange

  • 描述: PlayerUID1玩家推送对PlayerUID2玩家的互动数值修改

  • 范围: 服务端

  • 警告: 仅地图发布后生效

参数列表:

参数类型说明
PlayerUID1number操作人得PlayerUID
PlayerUID2number被操作人得PlayerUID
Callbackfunction(results:number)推送结束回调
local PlayerUID1 = 610140737498231334
local PlayerUID2 = 610140737498231334
PublicDB:PushAllInteractiveNumberChange(PlayerUID1,PlayerUID2,function (results, values)
for i, value in ipairs(results) do
if value ~= 0 then
Log:PrintLog("中间某一个操作推送失败")
return
end
end
Log:PrintLog("推送成功")
end)

GetInteractiveData

  • 描述: PlayerUID1玩家请求查询PlayerUID2玩家互动数值

  • 范围: 服务端

  • 警告: 仅地图发布后生效

参数列表:

参数类型说明
PlayerUID1number操作人得PlayerUID
PlayerUID2number被操作人得PlayerUID
InteractiveNamestring互动数值名称
Callbackfunction(result:number,InteractiveData:table)查询玩家互动数值回调
调用这个方法要保证互动数值已经调用PublicDB:InitInteractiveAllFieldValue()完成初始化
local PlayerUID1 = 610140737498231334
local PlayerUID2 = 610140737498231334
local InteractiveName = "测试2"
local Callback = function (result,InteractiveData)
if result == PublicDB.InteractAttrErrorType.Success and InteractiveData and next(InteractiveData)~=nil then
Log:PrintLog("Execute Success")
for key, value in pairs(InteractiveData) do
Log:PrintLog("key value :",key,"value :",value)
end
end
end
Log:PrintLog("GetInteractiveData")
PublicDB:GetInteractiveData(PlayerUID1,PlayerUID2,InteractiveName,Callback)

GetFieldValueByInteractiveData

  • 描述: 根据互动数值数据获取对应的属性属性值

  • 范围: 服务端

  • 警告: 仅地图发布后生效

参数列表:

参数类型说明
FieldNamePublicDB.InteractAttrFieldName互动数值数据包

返回字段:

返回字段字段类型说明
iValuenumber返回互动数据对应的属性值
local PlayerUID1 = 610140737498231334
local PlayerUID2 = 610140737498231334
local InteractiveName = "测试"
local Callback = function (result,InteractiveData)
if result == PublicDB.InteractAttrErrorType.Success and InteractiveData and next(InteractiveData)~=nil then
local MaxNum = PublicDB:GetFieldValueByInteractiveData(InteractiveData,PublicDB.InteractAttrFieldName.MaxNum)
Log:PrintLog("MaxNum:",MaxNum)
end
end
PublicDB:GetInteractiveData(PlayerUID1,PlayerUID2,InteractiveName,Callback)

UploadInteractiveListData

  • 描述: 上传数值到互动列表(相当于初始化)

  • 范围: 服务端

  • 警告: 仅地图发布后生效

参数列表:

参数类型说明
PlayerUID1number操作人得PlayerUID
PlayerUID2number被操作人得PlayerUID
InteractiveListNamestring互动列表名称
ListDatanumber[]列表数据 最大长度为6,超过6只取前6个
ListTotalNumnumber列表总数
Callbackfunction(result:PublicDB.InteractAttrErrorType)上传回调
local PlayerUID1 = 610140737498231334
local PlayerUID2 = 610140737498231334
local InteractiveListName = "互动列表1"
local ListData = {1,2,3,4,5,6}
local ListTotalNum = 6
local Callback = function (result)
if result == PublicDB.InteractAttrErrorType.Success then
Log:PrintLog("上传互动列表成功")
else
Log:PrintLog("上传互动列表失败错误码类型PublicDB.InteractAttrErrorType,值为",result)
end
end
PublicDB:UploadInteractiveListData(PlayerUID1, PlayerUID2, InteractiveListName, ListData, ListTotalNum, Callback)

UpdateInteractiveListData

  • 描述: 查询玩家互动列表(仅查询)

  • 范围: 服务端

  • 警告: 仅地图发布后生效

参数列表:

参数类型说明
PlayerUID1number操作人得PlayerUID
PlayerUID2number被操作人得PlayerUID
InteractiveListNamestring互动列表名称
Callbackfunction(result:PublicDB.InteractAttrErrorType)更新回调
local PlayerUID1 = 610140737498231334
local PlayerUID2 = 610140737498231334
local InteractiveListName = "互动列表1"
local Callback = function (result)
if result == PublicDB.InteractAttrErrorType.Success then
Log:PrintLog("更新互动数值列表成功")
else
Log:PrintLog("更新互动数值列表失败错误码类型PublicDB.InteractAttrErrorType,值为",result)
end
end
PublicDB:UpdateInteractiveListData(PlayerUID1, PlayerUID2, InteractiveListName, Callback)

GetInteractiveListDataByIndex

  • 描述: 根据索引获取玩家互动列表数据

  • 范围: 服务端

  • 警告: 仅地图发布后生效

参数列表:

参数类型说明
PlayerUIDnumber目标玩家的PlayerUID
InteractiveListNamestring互动列表名称
IndexNumbernumber目标索引

返回字段:

返回字段字段类型说明
valueTableany[]获取到的值
local PlayerUID = 610140737498231334
local InteractiveListName = "互动列表1"
local IndexNumber = 1
local valueTable = PublicDB:GetInteractiveListDataByIndex(PlayerUID, InteractiveListName, IndexNumber)
if valueTable and next(valueTable)~=nil then
for index, value in ipairs(valueTable) do
Log:PrintLog(index,value)
end
else
Log:PrintLog("valueTable 无效,请检查索引或者互动列表是否已更新")
end

GetPlayersCurrentNumber

  • 描述: PlayerUID操作人批量拉取不同玩家不同互动数值的当前数量

  • 范围: 服务端

  • 警告: 仅地图发布后生效

参数列表:

参数类型说明
PlayerUIDnumber操作人得PlayerUID
ListPlayerUIDnumber[]被操作人得ListPlayerUID
ListInteractiveNamestring[]互动列表名称
Callbackfunction(result:PublicDB.InteractAttrErrorType,CurNumberValueTables:table)获取玩家互动数值当前数量回调
local PlayerUID = 610140737498231334
local ListPlayerUID = {610140737498231334}
local ListInteractiveName = {"测试2"}
local Callback = function (result,CurNumberValueTables)
if result == PublicDB.InteractAttrErrorType.Success and CurNumberValueTables and next(CurNumberValueTables)~=nil then
for index, value in ipairs(CurNumberValueTables) do
Log:PrintLog(index,value)
end
end
end
PublicDB:GetPlayersCurrentNumber(PlayerUID, ListPlayerUID, ListInteractiveName, Callback)

GetPlayerConsumptionCrossMap

  • 描述: 跨地图查询玩家消费

  • 范围: 服务端

  • 警告: 仅地图发布后生效

参数列表:

参数类型说明
MapIdnumber被查询人的地图Id
PlayerUIDnumber被查询人的uid
Callbackfunction(result:PublicDB.InteractAttrErrorType,diamondCost:number)查询存档回调
local Callback = function (result,diamondCost)
if result == PublicDB.InteractAttrErrorType.Success then
Log:PrintLog("diamondCost is :",diamondCost)
end
end
PublicDB:GetPlayerConsumptionCrossMap(MapId, PlayerUID, Callback)

GetPlayerStorageDataCrossMap

  • 描述: 跨地图查询玩家存档

  • 范围: 服务端

  • 警告: 仅地图发布后生效

参数列表:

参数类型说明
MapIdnumber被查询人的地图Id
PlayerUIDnumber被查询人的uid
ArchiveTypePublicDB.ArchiveType存档数组类型
ArchiveArraystring[]存档数组
Callbackfunction(result:PublicDB.InteractAttrErrorType,valueList:any)查询存档回调
Archive:SetPlayerData(PlayerID, Type, Key, Data)
--假设在某个地图已经执行了存档操作(Boolean类型的存档会存储0或1)
local Callback = function (result,valueList)
if result == PublicDB.InteractAttrErrorType.Success then
if valueList and next(valueList)~=nil then
for index, value in ipairs(valueList) do
Log:PrintLog("value is :",value)
end
end
end
end
PublicDB:GetPlayerStorageDataCrossMap(MapId, PlayerUID, PublicDB.ArchiveType.Number_Array, {"存档1"}, Callback)