This commit is contained in:
liwei1dao 2024-01-10 10:00:45 +08:00
commit 1d1150a0fa
15 changed files with 460 additions and 252 deletions

View File

@ -8,7 +8,12 @@
"text": "酒吧新人"
},
"hero": 33003,
"iconimg": "xxtx_js_33003",
"img": "tx_js_33003",
"name": {
"key": "consume_consume_hero_name_01",
"text": "胡德"
},
"intr": {
"key": "consume_consume_hero_intr_01",
"text": "胡德的毒苹果酒吧桌游卡"
@ -21,6 +26,7 @@
"key": "consume_consume_hero_skilltxt_01",
"text": "随机消除7个方块"
},
"get": 107,
"consume": [],
"skilltype": 1,
"skillload": 6,
@ -45,7 +51,12 @@
"text": "酒吧新人"
},
"hero": 44003,
"iconimg": "xxtx_js_44003",
"img": "tx_js_44003",
"name": {
"key": "consume_consume_hero_name_02",
"text": "匹诺曹"
},
"intr": {
"key": "consume_consume_hero_intr_02",
"text": "匹诺曹的毒苹果酒吧桌游卡"
@ -58,6 +69,7 @@
"key": "consume_consume_hero_skilltxt_02",
"text": "消除中间的一列宝石"
},
"get": 107,
"consume": [],
"skilltype": 1,
"skillload": 7,
@ -82,7 +94,12 @@
"text": "酒吧新人"
},
"hero": 43004,
"iconimg": "xxtx_js_43004",
"img": "tx_js_43004",
"name": {
"key": "consume_consume_hero_name_03",
"text": "姜饼人"
},
"intr": {
"key": "consume_consume_hero_intr_03",
"text": "姜饼人的毒苹果酒吧桌游卡"
@ -95,6 +112,7 @@
"key": "consume_consume_hero_skilltxt_03",
"text": "将随机6个宝石染成当前盘面上颜色最多的宝石"
},
"get": 107,
"consume": [],
"skilltype": 1,
"skillload": 7,
@ -119,7 +137,12 @@
"text": "老手"
},
"hero": 13004,
"iconimg": "xxtx_js_13004",
"img": "tx_js_13004",
"name": {
"key": "consume_consume_hero_name_04",
"text": "法夸德勋爵"
},
"intr": {
"key": "consume_consume_hero_intr_04",
"text": "法夸德勋爵的毒苹果酒吧桌游卡"
@ -132,6 +155,7 @@
"key": "consume_consume_hero_skilltxt_04",
"text": "选中一个方块,消除以该方块为中心,两条斜线上的所有方块(选中的方块也会被消除)。"
},
"get": 107,
"consume": [
{
"a": "attr",
@ -162,7 +186,12 @@
"text": "老手"
},
"hero": 13005,
"iconimg": "xxtx_js_13005",
"img": "tx_js_13005",
"name": {
"key": "consume_consume_hero_name_05",
"text": "大大"
},
"intr": {
"key": "consume_consume_hero_intr_05",
"text": "大大的毒苹果酒吧桌游卡"
@ -175,6 +204,7 @@
"key": "consume_consume_hero_skilltxt_05",
"text": "随机用炸弹代替一个方块,并直接引爆炸弹(炸弹是特殊方块,这里就是用炸弹代替,然后直接消掉该炸弹)。"
},
"get": 107,
"consume": [
{
"a": "attr",
@ -205,7 +235,12 @@
"text": "老手"
},
"hero": 15002,
"iconimg": "xxtx_js_15002",
"img": "tx_js_15002",
"name": {
"key": "consume_consume_hero_name_06",
"text": "船长"
},
"intr": {
"key": "consume_consume_hero_intr_06",
"text": "船长的毒苹果酒吧桌游卡"
@ -218,6 +253,7 @@
"key": "consume_consume_hero_skilltxt_06",
"text": "指定盘面上2中颜色最多的方块将其中一种颜色全部集中到右方另一种全部集中到左方然后执行消除。"
},
"get": 107,
"consume": [
{
"a": "attr",
@ -248,7 +284,12 @@
"text": "老手"
},
"hero": 24001,
"iconimg": "xxtx_js_24001",
"img": "tx_js_24001",
"name": {
"key": "consume_consume_hero_name_07",
"text": "警长"
},
"intr": {
"key": "consume_consume_hero_intr_07",
"text": "警长的毒苹果酒吧桌游卡"
@ -261,6 +302,7 @@
"key": "consume_consume_hero_skilltxt_07",
"text": "使用技能后,玩家下一次行动不会消耗步骤,如果下一次行动消除了一组方块,那么会直接消除该组方块左右三行/三列区域内的所有方块。"
},
"get": 107,
"consume": [
{
"a": "attr",
@ -291,7 +333,12 @@
"text": "靠谱的家伙"
},
"hero": 25001,
"iconimg": "xxtx_js_25001",
"img": "tx_js_25001",
"name": {
"key": "consume_consume_hero_name_08",
"text": "阿宝"
},
"intr": {
"key": "consume_consume_hero_intr_08",
"text": "阿宝的毒苹果酒吧桌游卡"
@ -304,6 +351,7 @@
"key": "consume_consume_hero_skilltxt_08",
"text": "随机选择2中颜色然后消除盘面上所有对应颜色的方块"
},
"get": 107,
"consume": [
{
"a": "attr",
@ -334,7 +382,12 @@
"text": "靠谱的家伙"
},
"hero": 35001,
"iconimg": "xxtx_js_35001",
"img": "tx_js_35001",
"name": {
"key": "consume_consume_hero_name_09",
"text": "师父"
},
"intr": {
"key": "consume_consume_hero_intr_09",
"text": "师父的毒苹果酒吧桌游卡"
@ -347,6 +400,7 @@
"key": "consume_consume_hero_skilltxt_09",
"text": "选择一种颜色所有对应颜色的棋子随机变成象棋里的马并按照对应的象棋规则走3次被该方块踩中的方块消除然后对应方块也消除。"
},
"get": 107,
"consume": [
{
"a": "attr",
@ -377,7 +431,12 @@
"text": "靠谱的家伙"
},
"hero": 44004,
"iconimg": "xxtx_js_44004",
"img": "tx_js_44004",
"name": {
"key": "consume_consume_hero_name_10",
"text": "骇客蛛"
},
"intr": {
"key": "consume_consume_hero_intr_10",
"text": "骇客蛛的毒苹果酒吧桌游卡"
@ -390,6 +449,7 @@
"key": "consume_consume_hero_skilltxt_10",
"text": "选中不相连的3列一起向左/向右复制这3列的宝石(覆盖原方块)"
},
"get": 107,
"consume": [
{
"a": "attr",
@ -420,7 +480,12 @@
"text": "靠谱的家伙"
},
"hero": 44006,
"iconimg": "xxtx_js_44006",
"img": "tx_js_44006",
"name": {
"key": "consume_consume_hero_name_11",
"text": "悍娇虎"
},
"intr": {
"key": "consume_consume_hero_intr_11",
"text": "悍娇虎的毒苹果酒吧桌游卡"
@ -433,6 +498,7 @@
"key": "consume_consume_hero_skilltxt_11",
"text": "选中一个方块,然后消除盘面上所有相同颜色的方块。"
},
"get": 107,
"consume": [
{
"a": "attr",
@ -463,7 +529,12 @@
"text": "身怀绝技之人"
},
"hero": 45003,
"iconimg": "xxtx_js_45003",
"img": "tx_js_45003",
"name": {
"key": "consume_consume_hero_name_12",
"text": "盖"
},
"intr": {
"key": "consume_consume_hero_intr_12",
"text": "盖的毒苹果酒吧桌游卡"
@ -476,6 +547,7 @@
"key": "consume_consume_hero_skilltxt_12",
"text": "随机将盘面内8个方块变为“烟火”并从消除通过该技能生成的4个烟火。"
},
"get": 107,
"consume": [
{
"a": "attr",
@ -506,7 +578,12 @@
"text": "身怀绝技之人"
},
"hero": 34007,
"iconimg": "xxtx_js_34007",
"img": "tx_js_34007",
"name": {
"key": "consume_consume_hero_name_13",
"text": "菲奥娜"
},
"intr": {
"key": "consume_consume_hero_intr_13",
"text": "菲奥娜的毒苹果酒吧桌游卡"
@ -519,6 +596,7 @@
"key": "consume_consume_hero_skilltxt_13",
"text": "随机标记三个处于最左边的方块,然后消除这三个方块所在的三行的所有方块。"
},
"get": 107,
"consume": [
{
"a": "attr",
@ -549,7 +627,12 @@
"text": "身怀绝技之人"
},
"hero": 45004,
"iconimg": "xxtx_js_45004",
"img": "tx_js_45004",
"name": {
"key": "consume_consume_hero_name_14",
"text": "穿靴子的猫"
},
"intr": {
"key": "consume_consume_hero_intr_14",
"text": "穿靴子的猫的毒苹果酒吧桌游卡"
@ -562,6 +645,7 @@
"key": "consume_consume_hero_skilltxt_14",
"text": "选中一个方块,然后消除改方块行列上的所有宝石。"
},
"get": 107,
"consume": [
{
"a": "attr",
@ -592,7 +676,12 @@
"text": "传奇牌手!"
},
"hero": 45001,
"iconimg": "xxtx_js_45001",
"img": "tx_js_45001",
"name": {
"key": "consume_consume_hero_name_15",
"text": "乌龟大师"
},
"intr": {
"key": "consume_consume_hero_intr_15",
"text": "乌龟大师的毒苹果酒吧桌游卡"
@ -605,6 +694,7 @@
"key": "consume_consume_hero_skilltxt_15",
"text": "选择一种宝石颜色,场内所有对应颜色左右上下的宝石均变成改颜色。"
},
"get": 107,
"consume": [
{
"a": "attr",
@ -635,7 +725,12 @@
"text": "传奇牌手!"
},
"hero": 34006,
"iconimg": "xxtx_js_34006",
"img": "tx_js_34006",
"name": {
"key": "consume_consume_hero_name_16",
"text": "冰霜杰克"
},
"intr": {
"key": "consume_consume_hero_intr_16",
"text": "冰霜杰克的毒苹果酒吧桌游卡"
@ -648,6 +743,7 @@
"key": "consume_consume_hero_skilltxt_16",
"text": "随机选中一种颜色的宝石首尾相连,连线路上的宝石也变成该颜色,然后随机引爆一个泥巴方块。"
},
"get": 107,
"consume": [
{
"a": "attr",
@ -678,7 +774,12 @@
"text": "传奇牌手!"
},
"hero": 35003,
"iconimg": "xxtx_js_35003",
"img": "tx_js_35003",
"name": {
"key": "consume_consume_hero_name_17",
"text": "漆黑"
},
"intr": {
"key": "consume_consume_hero_intr_17",
"text": "漆黑的毒苹果酒吧桌游卡"
@ -691,6 +792,7 @@
"key": "consume_consume_hero_skilltxt_17",
"text": "随机选中棋盘内的一种颜色,将该颜色方块随机变成另一种颜色,然后执行一次消除,然后再执行一次该逻辑(变2次消除2次)。"
},
"get": 107,
"consume": [
{
"a": "attr",

View File

@ -1,297 +1,371 @@
[
{
"key": 1,
"attribute": "stime",
"id": "20030001",
"attribute": [
"stime",
"hp",
"sprinttime",
"energyrecover",
"etime"
],
"lv": 1,
"num": 0,
"num": [],
"item": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
],
"uplv": 0
},
{
"key": 2,
"attribute": "stime",
"id": "20030001",
"attribute": [
"stime",
"hp",
"sprinttime",
"energyrecover",
"etime"
],
"lv": 2,
"num": 2,
"num": [
2,
2,
2,
2,
2
],
"item": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
],
"uplv": 0
},
{
"key": 3,
"attribute": "stime",
"id": "20030001",
"attribute": [
"stime",
"hp",
"sprinttime",
"energyrecover",
"etime"
],
"lv": 3,
"num": 4,
"num": [
4,
4,
4,
4,
4
],
"item": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
],
"uplv": 0
},
{
"key": 4,
"attribute": "stime",
"id": "20030001",
"attribute": [
"stime",
"hp",
"sprinttime",
"energyrecover",
"etime"
],
"lv": 4,
"num": 6,
"num": [
6,
6,
6,
6,
6
],
"item": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
],
"uplv": 0
},
{
"key": 5,
"attribute": "stime",
"id": "20030001",
"attribute": [
"stime",
"hp",
"sprinttime",
"energyrecover",
"etime"
],
"lv": 5,
"num": 8,
"item": []
"num": [
8,
8,
8,
8,
8
],
"item": [],
"uplv": 0
},
{
"key": 6,
"attribute": "hp",
"id": "20030002",
"attribute": [
"stime",
"hp",
"sprinttime",
"energyrecover",
"etime"
],
"lv": 1,
"num": 0,
"num": [],
"item": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
],
"uplv": 0
},
{
"key": 7,
"attribute": "hp",
"id": "20030002",
"attribute": [
"stime",
"hp",
"sprinttime",
"energyrecover",
"etime"
],
"lv": 2,
"num": 2,
"num": [
2,
2,
2,
2,
2
],
"item": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
],
"uplv": 0
},
{
"key": 8,
"attribute": "hp",
"id": "20030002",
"attribute": [
"stime",
"hp",
"sprinttime",
"energyrecover",
"etime"
],
"lv": 3,
"num": 4,
"num": [
4,
4,
4,
4,
4
],
"item": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
],
"uplv": 0
},
{
"key": 9,
"attribute": "hp",
"id": "20030002",
"attribute": [
"stime",
"hp",
"sprinttime",
"energyrecover",
"etime"
],
"lv": 4,
"num": 6,
"num": [
6,
6,
6,
6,
6
],
"item": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
],
"uplv": 0
},
{
"key": 10,
"attribute": "hp",
"id": "20030002",
"attribute": [
"stime",
"hp",
"sprinttime",
"energyrecover",
"etime"
],
"lv": 5,
"num": 8,
"item": []
"num": [
8,
8,
8,
8,
8
],
"item": [],
"uplv": 0
},
{
"key": 11,
"attribute": "sprinttime",
"id": "20030003",
"attribute": [
"stime",
"hp",
"sprinttime",
"energyrecover",
"etime"
],
"lv": 1,
"num": 0,
"num": [],
"item": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
],
"uplv": 0
},
{
"key": 12,
"attribute": "sprinttime",
"id": "20030003",
"attribute": [
"stime",
"hp",
"sprinttime",
"energyrecover",
"etime"
],
"lv": 2,
"num": 2,
"num": [
2,
2,
2,
2,
2
],
"item": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
],
"uplv": 0
},
{
"key": 13,
"attribute": "sprinttime",
"id": "20030003",
"attribute": [
"stime",
"hp",
"sprinttime",
"energyrecover",
"etime"
],
"lv": 3,
"num": 4,
"num": [
4,
4,
4,
4,
4
],
"item": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
],
"uplv": 0
},
{
"key": 14,
"attribute": "sprinttime",
"id": "20030003",
"attribute": [
"stime",
"hp",
"sprinttime",
"energyrecover",
"etime"
],
"lv": 4,
"num": 6,
"num": [
6,
6,
6,
6,
6
],
"item": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
],
"uplv": 0
},
{
"key": 15,
"attribute": "sprinttime",
"id": "20030003",
"attribute": [
"stime",
"hp",
"sprinttime",
"energyrecover",
"etime"
],
"lv": 5,
"num": 8,
"item": []
},
{
"key": 16,
"attribute": "energyrecover",
"lv": 1,
"num": 0,
"item": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
},
{
"key": 17,
"attribute": "energyrecover",
"lv": 2,
"num": 2,
"item": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
},
{
"key": 18,
"attribute": "energyrecover",
"lv": 3,
"num": 4,
"item": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
},
{
"key": 19,
"attribute": "energyrecover",
"lv": 4,
"num": 6,
"item": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
},
{
"key": 20,
"attribute": "energyrecover",
"lv": 5,
"num": 8,
"item": []
},
{
"key": 21,
"attribute": "etime",
"lv": 1,
"num": 0,
"item": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
},
{
"key": 22,
"attribute": "etime",
"lv": 2,
"num": 2,
"item": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
},
{
"key": 23,
"attribute": "etime",
"lv": 3,
"num": 4,
"item": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
},
{
"key": 24,
"attribute": "etime",
"lv": 4,
"num": 6,
"item": [
{
"a": "attr",
"t": "gold",
"n": 10000
}
]
},
{
"key": 25,
"attribute": "etime",
"lv": 5,
"num": 8,
"item": []
"num": [
8,
8,
8,
8,
8
],
"item": [],
"uplv": 0
}
]

View File

@ -3440,7 +3440,7 @@
"Order": "",
"Limit": 1,
"ExecuteCnt": 1,
"TriggerAnim": "",
"TriggerAnim": "Passive",
"Type": 3,
"Argu": [
390001209,
@ -7240,7 +7240,7 @@
"Order": "",
"Limit": 1,
"ExecuteCnt": 1,
"TriggerAnim": "",
"TriggerAnim": "Passive",
"Type": 8,
"Argu": [
1,
@ -10712,7 +10712,7 @@
"Order": "",
"Limit": 10,
"ExecuteCnt": 1,
"TriggerAnim": "",
"TriggerAnim": "Passive",
"Type": 32,
"Argu": [
150
@ -33066,7 +33066,7 @@
"Order": "",
"Limit": 10,
"ExecuteCnt": 1,
"TriggerAnim": "",
"TriggerAnim": "Buff",
"Type": 3,
"Argu": [
391000107,
@ -35697,7 +35697,7 @@
"Order": "",
"Limit": 10,
"ExecuteCnt": 1,
"TriggerAnim": "",
"TriggerAnim": "Passive",
"Type": 8,
"Argu": [
1,
@ -38632,7 +38632,7 @@
"Order": "HasBuffDown=3",
"Limit": 1,
"ExecuteCnt": 1,
"TriggerAnim": "",
"TriggerAnim": "Passive",
"Type": 8,
"Argu": [
3,
@ -40328,7 +40328,7 @@
"Order": "",
"Limit": 10,
"ExecuteCnt": 1,
"TriggerAnim": "",
"TriggerAnim": "Passive",
"Type": 8,
"Argu": [
1,

View File

@ -21,6 +21,7 @@ type modelCaravan struct {
module *Caravan
}
// 本服模块
func (this *modelCaravan) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
this.TableName = string(comm.TableCaravan)
err = this.MCompModel.Init(service, module, comp, options)

View File

@ -58,11 +58,9 @@ func (this *apiComp) LvItem(session comm.IUserSession, req *pb.DragonLvItemReq)
}
return
}
if _, ok := dragon.Lvitem[req.Attribute]; !ok { // 默认1级
dragon.Lvitem[req.Attribute] = 1
}
if curLvConf, err = this.module.configure.GetDragonLvItemConf(req.Attribute, dragon.Lvitem[req.Attribute]); err == nil {
if upLvConf, err = this.module.configure.GetDragonLvItemConf(req.Attribute, dragon.Lvitem[req.Attribute]+1); err != nil {
if curLvConf, err = this.module.configure.GetDragonLvItemConf(req.Attribute, dragon.Itemlv); err == nil {
if upLvConf, err = this.module.configure.GetDragonLvItemConf(req.Attribute, dragon.Itemlv+1); err != nil {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_DragonMaxLvItem,
Title: pb.ErrorCode_DragonMaxLvItem.ToString(),
@ -73,9 +71,12 @@ func (this *apiComp) LvItem(session comm.IUserSession, req *pb.DragonLvItemReq)
if errdata = this.module.CheckRes(session, curLvConf.Item); errdata != nil { // 校验消耗
return
}
dragon.Lvitem[req.Attribute] += 1 // 升级
update["lvitem"] = dragon.Lvitem
dragon.Property[req.Attribute] += upLvConf.Num
dragon.Itemlv += 1 // 升级
update["lvitem"] = dragon.Itemlv
for pos, v := range upLvConf.Attribute {
dragon.Property[v] += upLvConf.Num[pos]
}
update["property"] = dragon.Property
}

View File

@ -24,13 +24,12 @@ const (
// /配置管理组件
type configureComp struct {
modules.MCompConfigure
module *Dragon
hlock sync.RWMutex
dragon map[string]*cfg.GameTrainlvData
play map[string]*cfg.GameDragonPlayData
mount map[string]*cfg.GameBuzkashiMountData
lvItem map[string]*cfg.GameDragonLvItemData
attribute map[string]struct{}
module *Dragon
hlock sync.RWMutex
dragon map[string]*cfg.GameTrainlvData
play map[string]*cfg.GameDragonPlayData
mount map[string]*cfg.GameBuzkashiMountData
lvItem map[string]*cfg.GameDragonLvItemData
}
// 组件初始化接口
@ -154,14 +153,11 @@ func (this *configureComp) LoadDragonLvItem() {
if v, err := this.GetConfigure(game_dragonlvitem); err == nil {
this.hlock.Lock()
defer this.hlock.Unlock()
this.attribute = make(map[string]struct{}, 0)
this.lvItem = make(map[string]*cfg.GameDragonLvItemData)
if _configure, ok := v.(*cfg.GameDragonLvItem); ok {
for _, v := range _configure.GetDataList() {
this.lvItem[v.Attribute+"-"+strconv.Itoa(int(v.Lv))] = v
if _, ok := this.attribute[v.Attribute]; !ok {
this.attribute[v.Attribute] = struct{}{}
}
key := v.Id + "-" + strconv.Itoa(int(v.Lv))
this.lvItem[key] = v
}
return
}
@ -170,21 +166,14 @@ func (this *configureComp) LoadDragonLvItem() {
}
}
func (this *configureComp) GetDragonLvItemConf(attribute string, lv int32) (conf *cfg.GameDragonLvItemData, err error) {
key := attribute + "-" + strconv.Itoa(int(lv))
func (this *configureComp) GetDragonLvItemConf(dragonId string, lv int32) (conf *cfg.GameDragonLvItemData, err error) {
key := dragonId + "-" + strconv.Itoa(int(lv))
this.hlock.RLock()
defer this.hlock.RUnlock()
ok := false
if conf, ok = this.lvItem[key]; ok {
return
}
err = comm.NewNotFoundConfErr(moduleName, dragon_trainlv, fmt.Sprintf("id:%s,lv:%d", attribute, lv))
err = comm.NewNotFoundConfErr(moduleName, dragon_trainlv, fmt.Sprintf("id:%s,lv:%d", dragonId, lv))
return
}
func (this *configureComp) GetDragonAttributeConf() (conf map[string]struct{}) {
this.hlock.RLock()
defer this.hlock.RUnlock()
return this.attribute
}

View File

@ -88,6 +88,7 @@ func (this *ModelDragon) CreateDragon(session comm.IUserSession, dragons map[str
Play: map[int32]*pb.PlayData{},
Rtime: configure.Now().Unix(),
Lvitem: map[string]int32{},
Itemlv: 1,
}
for _, obj := range dragonList {
if obj.Dragonid == dragonCfgId { // 重复获得 直接返回
@ -121,10 +122,6 @@ func (this *ModelDragon) CreateDragon(session comm.IUserSession, dragons map[str
}
}
for k := range this.module.configure.GetDragonAttributeConf() {
dragon.Lvitem[k] = 1
}
if bNewDragon {
if dbModel != nil {
err = dbModel.AddList(uid, dragon.Id, dragon)
@ -200,8 +197,19 @@ func (this *ModelDragon) UpdateDragonData(uid string, oid string, data map[strin
func (this *ModelDragon) GetDragonByOid(uid string, oid string) (dragon *pb.DBDragon, err error) {
dragon = &pb.DBDragon{}
if err = this.GetListObj(uid, oid, dragon); err != nil {
this.module.Errorf("err:%v", err)
if db.IsCross() {
if dbModel, err1 := this.module.GetDBModelByUid(uid, this.TableName); err1 == nil {
if err = dbModel.GetListObj(uid, oid, dragon); err != nil {
this.module.Errorf("err:%v", err)
}
} else {
this.module.Errorln(err) // 获取跨服对象失败
return
}
} else {
if err = this.GetListObj(uid, oid, dragon); err != nil {
this.module.Errorf("err:%v", err)
}
}
return
}

View File

@ -80,6 +80,7 @@ func (this *Dragon) CreateRobotDragon(dragonid string, lv int32) (dragon *pb.DBD
Exp: 0,
Property: map[string]int32{},
Play: map[int32]*pb.PlayData{},
Lvitem: map[string]int32{},
Rtime: configure.Now().Unix(),
}

View File

@ -51,7 +51,6 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp
configure.RegisterConfigure(game_passcheck, cfg.NewGamePassCheck, this.updatePassCheck)
configure.RegisterConfigure(game_consumeIntegral, cfg.NewGameConsumeIntegral, this.loadConsumeIntegral)
this.GetConsumeResetIntegral()
return
}

View File

@ -43,16 +43,14 @@ func (this *modelComp) queryPlayers(uIds []string) (result []*pb.DBXXLData, err
func (this *modelComp) getEntertainmList(uid string) (result *pb.DBXXLData, err error) {
var (
conn *db.DBConn
dbModel *db.DBModel
)
if db.IsCross() {
dbModel = this.DBModel
} else {
if conn, err = db.Cross(); err != nil {
if dbModel, err = this.module.GetCrossDBModel(this.TableName); err != nil {
return
}
dbModel = db.NewDBModelByExpired(db.CrossTag(), this.TableName, conn)
}
result = &pb.DBXXLData{
@ -104,17 +102,15 @@ func (this *modelComp) getEntertainmList(uid string) (result *pb.DBXXLData, err
//支持本服数据变更操作
func (this *modelComp) modifyEntertainmList(uid string, data map[string]interface{}) error {
var (
conn *db.DBConn
dbModel *db.DBModel
err error
)
if db.IsCross() {
dbModel = this.DBModel
} else {
if conn, err = db.Cross(); err != nil {
if dbModel, err = this.module.GetCrossDBModel(this.TableName); err != nil {
return err
}
dbModel = db.NewDBModelByExpired(db.CrossTag(), this.TableName, conn)
}
return dbModel.Change(uid, data)
}

View File

@ -29,12 +29,13 @@ func (this *modelRank) Init(service core.IService, module core.IModule, comp cor
// 更新排名
func (this *modelRank) updateXxlRank(users ...*pb.XxlPlayer) (err error) {
var (
pipe *pipe.RedisPipe = this.DBModel.Redis.RedisPipe(context.TODO())
menbers []*redis.Z
cmd *redis.IntCmd
menbersCmd []*redis.IntCmd = make([]*redis.IntCmd, len(users))
rank int64
pipe *pipe.RedisPipe = this.DBModel.Redis.RedisPipe(context.TODO())
menbers []*redis.Z
cmd *redis.IntCmd
strName string
)
strName = fmt.Sprintf("%s-%s", this.DBModel.ServiceId, this.TableName)
if len(users) == 0 {
return
}
@ -42,12 +43,9 @@ func (this *modelRank) updateXxlRank(users ...*pb.XxlPlayer) (err error) {
for i, v := range users {
menbers[i] = &redis.Z{Score: float64(v.Consumeexp), Member: v.Uinfo.Uid}
}
if cmd = pipe.ZAdd(this.TableName, menbers...); err != nil {
if cmd = pipe.ZAdd(strName, menbers...); err != nil {
this.module.Errorln(err)
}
for i, v := range users {
menbersCmd[i] = pipe.ZRevRank(this.TableName, v.Uinfo.Uid)
}
if _, err = pipe.Exec(); err != nil {
this.module.Errorln(err)
return
@ -56,22 +54,17 @@ func (this *modelRank) updateXxlRank(users ...*pb.XxlPlayer) (err error) {
this.module.Errorln(err)
return
}
for i, v := range menbersCmd {
if rank, err = v.Result(); err != nil {
this.module.Errorln(err)
return
}
users[i].Rank = int32(rank + 1)
}
return
}
// 获取排行榜前50的用户名单
func (this *modelRank) queryRankUser() (ranks []string, err error) {
var (
result []string
result []string
strName string
)
if result, err = this.DBModel.Redis.ZRevRange(fmt.Sprintf("%s-%s", this.DBModel.ServiceId, this.TableName), 0, 50).Result(); err != nil {
strName = fmt.Sprintf("%s-%s", this.DBModel.ServiceId, this.TableName)
if result, err = this.DBModel.Redis.ZRevRange(strName, 0, comm.MaxRankList).Result(); err != nil {
this.module.Errorln(err)
return
}

View File

@ -310,7 +310,6 @@ func (this *ModelUser) changelv(session comm.IUserSession, lv int32, exp int64,
}
func (this *ModelUser) CleanUserMerchantmoney(session comm.IUserSession) (err error) {
// 获取本服的数据
if m, e := this.module.GetDBModelByUid(session.GetUserId(), this.TableName); e == nil {
user := &pb.DBUser{}

View File

@ -88,7 +88,8 @@ type DBDragon struct {
Property map[string]int32 `protobuf:"bytes,6,rep,name=property,proto3" json:"property" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 坐骑属性
Play map[int32]*PlayData `protobuf:"bytes,7,rep,name=play,proto3" json:"play" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // 坐骑训练次数
Rtime int64 `protobuf:"varint,8,opt,name=rtime,proto3" json:"rtime"` // 刷新时间 用来清除 每日训练次数
Lvitem map[string]int32 `protobuf:"bytes,9,rep,name=lvitem,proto3" json:"lvitem" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //
Lvitem map[string]int32 `protobuf:"bytes,9,rep,name=lvitem,proto3" json:"lvitem" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // 等前端同步删除此字段
Itemlv int32 `protobuf:"varint,10,opt,name=itemlv,proto3" json:"itemlv"` // 道具提升等级
}
func (x *DBDragon) Reset() {
@ -186,6 +187,13 @@ func (x *DBDragon) GetLvitem() map[string]int32 {
return nil
}
func (x *DBDragon) GetItemlv() int32 {
if x != nil {
return x.Itemlv
}
return 0
}
var File_dragon_dragon_db_proto protoreflect.FileDescriptor
var file_dragon_dragon_db_proto_rawDesc = []byte{
@ -194,7 +202,7 @@ var file_dragon_dragon_db_proto_rawDesc = []byte{
0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20,
0x01, 0x28, 0x05, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x64,
0x65, 0x6e, 0x64, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63,
0x64, 0x65, 0x6e, 0x64, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xc9, 0x03, 0x0a, 0x08, 0x44, 0x42, 0x44,
0x64, 0x65, 0x6e, 0x64, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xe1, 0x03, 0x0a, 0x08, 0x44, 0x42, 0x44,
0x72, 0x61, 0x67, 0x6f, 0x6e, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01,
0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x72, 0x61, 0x67, 0x6f,
@ -211,20 +219,21 @@ var file_dragon_dragon_db_proto_rawDesc = []byte{
0x28, 0x03, 0x52, 0x05, 0x72, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x2d, 0x0a, 0x06, 0x6c, 0x76, 0x69,
0x74, 0x65, 0x6d, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x44, 0x42, 0x44, 0x72,
0x61, 0x67, 0x6f, 0x6e, 0x2e, 0x4c, 0x76, 0x69, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79,
0x52, 0x06, 0x6c, 0x76, 0x69, 0x74, 0x65, 0x6d, 0x1a, 0x3b, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70,
0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a, 0x09, 0x50, 0x6c, 0x61, 0x79, 0x45, 0x6e, 0x74,
0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
0x03, 0x6b, 0x65, 0x79, 0x12, 0x1f, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x50, 0x6c, 0x61, 0x79, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x76, 0x69,
0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
0x3a, 0x02, 0x38, 0x01, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72,
0x6f, 0x74, 0x6f, 0x33,
0x52, 0x06, 0x6c, 0x76, 0x69, 0x74, 0x65, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x74, 0x65, 0x6d,
0x6c, 0x76, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x69, 0x74, 0x65, 0x6d, 0x6c, 0x76,
0x1a, 0x3b, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72,
0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x42, 0x0a,
0x09, 0x50, 0x6c, 0x61, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65,
0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x1f, 0x0a, 0x05,
0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x50, 0x6c,
0x61, 0x79, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38,
0x01, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x76, 0x69, 0x74, 0x65, 0x6d, 0x45, 0x6e, 0x74, 0x72, 0x79,
0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b,
0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x06, 0x5a, 0x04,
0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (

View File

@ -16,10 +16,13 @@ type GameConsumeHeroData struct {
Herocolor int32
Herotitel string
Hero int32
Iconimg string
Img string
Name string
Intr string
Skillname string
Skilltxt string
Get int32
Consume []*Gameatn
Skilltype int32
Skillload int32
@ -40,10 +43,13 @@ func (_v *GameConsumeHeroData)Deserialize(_buf map[string]interface{}) (err erro
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["herocolor"].(float64); !_ok_ { err = errors.New("herocolor error"); return }; _v.Herocolor = int32(_tempNum_) }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["herotitel"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Herotitel error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Herotitel, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["hero"].(float64); !_ok_ { err = errors.New("hero error"); return }; _v.Hero = int32(_tempNum_) }
{ var _ok_ bool; if _v.Iconimg, _ok_ = _buf["iconimg"].(string); !_ok_ { err = errors.New("iconimg error"); return } }
{ var _ok_ bool; if _v.Img, _ok_ = _buf["img"].(string); !_ok_ { err = errors.New("img error"); return } }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["name"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Name error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Name, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["intr"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Intr error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Intr, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["skillname"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Skillname error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Skillname, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["skilltxt"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Skilltxt error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Skilltxt, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["get"].(float64); !_ok_ { err = errors.New("get error"); return }; _v.Get = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool

View File

@ -12,10 +12,12 @@ import "errors"
type GameDragonLvItemData struct {
Key int32
Attribute string
Id string
Attribute []string
Lv int32
Num int32
Num []int32
Item []*Gameatn
Uplv int32
}
const TypeId_GameDragonLvItemData = -767946250
@ -26,9 +28,36 @@ func (*GameDragonLvItemData) GetTypeId() int32 {
func (_v *GameDragonLvItemData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["key"].(float64); !_ok_ { err = errors.New("key error"); return }; _v.Key = int32(_tempNum_) }
{ var _ok_ bool; if _v.Attribute, _ok_ = _buf["attribute"].(string); !_ok_ { err = errors.New("attribute error"); return } }
{ var _ok_ bool; if _v.Id, _ok_ = _buf["id"].(string); !_ok_ { err = errors.New("id error"); return } }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["attribute"].([]interface{}); !_ok_ { err = errors.New("attribute error"); return }
_v.Attribute = make([]string, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ string
{ if _list_v_, _ok_ = _e_.(string); !_ok_ { err = errors.New("_list_v_ error"); return } }
_v.Attribute = append(_v.Attribute, _list_v_)
}
}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["lv"].(float64); !_ok_ { err = errors.New("lv error"); return }; _v.Lv = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["num"].(float64); !_ok_ { err = errors.New("num error"); return }; _v.Num = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["num"].([]interface{}); !_ok_ { err = errors.New("num error"); return }
_v.Num = make([]int32, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ int32
{ var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = int32(_x_) }
_v.Num = append(_v.Num, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
@ -43,6 +72,7 @@ func (_v *GameDragonLvItemData)Deserialize(_buf map[string]interface{}) (err err
}
}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["uplv"].(float64); !_ok_ { err = errors.New("uplv error"); return }; _v.Uplv = int32(_tempNum_) }
return
}