diff --git a/bin/json/game_herotalent.json b/bin/json/game_herotalent.json
new file mode 100644
index 000000000..b790e0dca
--- /dev/null
+++ b/bin/json/game_herotalent.json
@@ -0,0 +1,567 @@
+[
+ {
+ "id": 1,
+ "type": [
+ 0
+ ],
+ "talentid": 40101,
+ "before": [
+ 0
+ ],
+ "thing": [
+ {
+ "a": "attr",
+ "t": "glod",
+ "n": 20000
+ },
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 5000
+ }
+ ],
+ "position": [
+ 1,
+ 1
+ ]
+ },
+ {
+ "id": 2,
+ "type": [
+ 0
+ ],
+ "talentid": 40102,
+ "before": [
+ 0
+ ],
+ "thing": [
+ {
+ "a": "attr",
+ "t": "glod",
+ "n": 20000
+ },
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 5000
+ }
+ ],
+ "position": [
+ 1,
+ 3
+ ]
+ },
+ {
+ "id": 3,
+ "type": [
+ 0
+ ],
+ "talentid": 40103,
+ "before": [
+ 0
+ ],
+ "thing": [
+ {
+ "a": "attr",
+ "t": "glod",
+ "n": 20000
+ },
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 5000
+ }
+ ],
+ "position": [
+ 1,
+ 5
+ ]
+ },
+ {
+ "id": 4,
+ "type": [
+ 1
+ ],
+ "talentid": 10101,
+ "before": [
+ 1
+ ],
+ "thing": [
+ {
+ "a": "attr",
+ "t": "glod",
+ "n": 15000
+ }
+ ],
+ "position": [
+ 3,
+ 1
+ ]
+ },
+ {
+ "id": 5,
+ "type": [
+ 1
+ ],
+ "talentid": 10102,
+ "before": [
+ 4
+ ],
+ "thing": [
+ {
+ "a": "attr",
+ "t": "glod",
+ "n": 15000
+ }
+ ],
+ "position": [
+ 5,
+ 1
+ ]
+ },
+ {
+ "id": 6,
+ "type": [
+ 1
+ ],
+ "talentid": 10103,
+ "before": [
+ 5
+ ],
+ "thing": [
+ {
+ "a": "attr",
+ "t": "glod",
+ "n": 15000
+ }
+ ],
+ "position": [
+ 7,
+ 1
+ ]
+ },
+ {
+ "id": 7,
+ "type": [
+ 1
+ ],
+ "talentid": 10104,
+ "before": [
+ 6,
+ 23
+ ],
+ "thing": [
+ {
+ "a": "attr",
+ "t": "glod",
+ "n": 15000
+ }
+ ],
+ "position": [
+ 9,
+ 1
+ ]
+ },
+ {
+ "id": 8,
+ "type": [
+ 1
+ ],
+ "talentid": 10105,
+ "before": [
+ 7
+ ],
+ "thing": [
+ {
+ "a": "attr",
+ "t": "glod",
+ "n": 15000
+ }
+ ],
+ "position": [
+ 11,
+ 1
+ ]
+ },
+ {
+ "id": 9,
+ "type": [
+ 1
+ ],
+ "talentid": 10106,
+ "before": [
+ 8
+ ],
+ "thing": [
+ {
+ "a": "attr",
+ "t": "glod",
+ "n": 15000
+ }
+ ],
+ "position": [
+ 13,
+ 1
+ ]
+ },
+ {
+ "id": 10,
+ "type": [
+ 2
+ ],
+ "talentid": 20101,
+ "before": [
+ 2
+ ],
+ "thing": [
+ {
+ "a": "attr",
+ "t": "glod",
+ "n": 15000
+ }
+ ],
+ "position": [
+ 3,
+ 3
+ ]
+ },
+ {
+ "id": 11,
+ "type": [
+ 2
+ ],
+ "talentid": 20102,
+ "before": [
+ 10
+ ],
+ "thing": [
+ {
+ "a": "attr",
+ "t": "glod",
+ "n": 15000
+ }
+ ],
+ "position": [
+ 5,
+ 3
+ ]
+ },
+ {
+ "id": 12,
+ "type": [
+ 2
+ ],
+ "talentid": 20103,
+ "before": [
+ 11,
+ 5,
+ 18
+ ],
+ "thing": [
+ {
+ "a": "attr",
+ "t": "glod",
+ "n": 15000
+ }
+ ],
+ "position": [
+ 7,
+ 3
+ ]
+ },
+ {
+ "id": 13,
+ "type": [
+ 2
+ ],
+ "talentid": 20104,
+ "before": [
+ 23,
+ 24
+ ],
+ "thing": [
+ {
+ "a": "attr",
+ "t": "glod",
+ "n": 15000
+ }
+ ],
+ "position": [
+ 9,
+ 3
+ ]
+ },
+ {
+ "id": 14,
+ "type": [
+ 2
+ ],
+ "talentid": 20105,
+ "before": [
+ 7,
+ 13,
+ 20
+ ],
+ "thing": [
+ {
+ "a": "attr",
+ "t": "glod",
+ "n": 15000
+ }
+ ],
+ "position": [
+ 11,
+ 3
+ ]
+ },
+ {
+ "id": 15,
+ "type": [
+ 2
+ ],
+ "talentid": 20106,
+ "before": [
+ 14
+ ],
+ "thing": [
+ {
+ "a": "attr",
+ "t": "glod",
+ "n": 15000
+ }
+ ],
+ "position": [
+ 13,
+ 3
+ ]
+ },
+ {
+ "id": 16,
+ "type": [
+ 2
+ ],
+ "talentid": 20107,
+ "before": [
+ 10
+ ],
+ "thing": [
+ {
+ "a": "attr",
+ "t": "glod",
+ "n": 15000
+ }
+ ],
+ "position": [
+ 4,
+ 2
+ ]
+ },
+ {
+ "id": 17,
+ "type": [
+ 3
+ ],
+ "talentid": 30101,
+ "before": [
+ 3
+ ],
+ "thing": [
+ {
+ "a": "attr",
+ "t": "glod",
+ "n": 15000
+ }
+ ],
+ "position": [
+ 3,
+ 5
+ ]
+ },
+ {
+ "id": 18,
+ "type": [
+ 3
+ ],
+ "talentid": 30102,
+ "before": [
+ 17
+ ],
+ "thing": [
+ {
+ "a": "attr",
+ "t": "glod",
+ "n": 15000
+ }
+ ],
+ "position": [
+ 5,
+ 5
+ ]
+ },
+ {
+ "id": 19,
+ "type": [
+ 3
+ ],
+ "talentid": 30103,
+ "before": [
+ 18
+ ],
+ "thing": [
+ {
+ "a": "attr",
+ "t": "glod",
+ "n": 15000
+ }
+ ],
+ "position": [
+ 7,
+ 5
+ ]
+ },
+ {
+ "id": 20,
+ "type": [
+ 3
+ ],
+ "talentid": 30104,
+ "before": [
+ 24
+ ],
+ "thing": [
+ {
+ "a": "attr",
+ "t": "glod",
+ "n": 15000
+ }
+ ],
+ "position": [
+ 9,
+ 5
+ ]
+ },
+ {
+ "id": 21,
+ "type": [
+ 3
+ ],
+ "talentid": 30105,
+ "before": [
+ 20
+ ],
+ "thing": [
+ {
+ "a": "attr",
+ "t": "glod",
+ "n": 15000
+ }
+ ],
+ "position": [
+ 11,
+ 5
+ ]
+ },
+ {
+ "id": 22,
+ "type": [
+ 3
+ ],
+ "talentid": 30106,
+ "before": [
+ 21
+ ],
+ "thing": [
+ {
+ "a": "attr",
+ "t": "glod",
+ "n": 15000
+ }
+ ],
+ "position": [
+ 13,
+ 5
+ ]
+ },
+ {
+ "id": 23,
+ "type": [
+ 999
+ ],
+ "talentid": 99101,
+ "before": [
+ 6,
+ 12
+ ],
+ "thing": [
+ {
+ "a": "attr",
+ "t": "glod",
+ "n": 40000
+ },
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 5000
+ }
+ ],
+ "position": [
+ 8,
+ 2
+ ]
+ },
+ {
+ "id": 24,
+ "type": [
+ 999
+ ],
+ "talentid": 99102,
+ "before": [
+ 12,
+ 19
+ ],
+ "thing": [
+ {
+ "a": "attr",
+ "t": "glod",
+ "n": 40000
+ },
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 5000
+ }
+ ],
+ "position": [
+ 8,
+ 4
+ ]
+ },
+ {
+ "id": 25,
+ "type": [
+ 999
+ ],
+ "talentid": 99103,
+ "before": [
+ 9,
+ 15,
+ 22
+ ],
+ "thing": [
+ {
+ "a": "attr",
+ "t": "glod",
+ "n": 40000
+ },
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 5000
+ }
+ ],
+ "position": [
+ 15,
+ 3
+ ]
+ }
+]
\ No newline at end of file
diff --git a/bin/json/game_talentskill.json b/bin/json/game_talentskill.json
new file mode 100644
index 000000000..d9d8e4a10
--- /dev/null
+++ b/bin/json/game_talentskill.json
@@ -0,0 +1,434 @@
+[
+ {
+ "skillid": 40101,
+ "skilltyp": 0,
+ "skillname": "生命核心",
+ "skilltxt": "这是生命天赋的描述tips",
+ "skillicon": "jn_icon_006",
+ "hp": -1,
+ "atk": -1,
+ "def": -1,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 40102,
+ "skilltyp": 0,
+ "skillname": "攻击核心",
+ "skilltxt": "这是攻击天赋的描述tips",
+ "skillicon": "jn_icon_004",
+ "hp": -1,
+ "atk": -1,
+ "def": -1,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 40103,
+ "skilltyp": 0,
+ "skillname": "防御核心",
+ "skilltxt": "这是防御天赋的描述tips",
+ "skillicon": "jn_icon_005",
+ "hp": -1,
+ "atk": -1,
+ "def": -1,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 10101,
+ "skilltyp": 1,
+ "skillname": "生命天赋",
+ "skilltxt": "这是生命天赋的描述tips",
+ "skillicon": "jn_dzj_0001",
+ "hp": 1800,
+ "atk": -1,
+ "def": -1,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 10102,
+ "skilltyp": 1,
+ "skillname": "生命天赋",
+ "skilltxt": "这是生命天赋的描述tips",
+ "skillicon": "jn_dzj_0001",
+ "hp": 1800,
+ "atk": -1,
+ "def": -1,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 10103,
+ "skilltyp": 1,
+ "skillname": "生命天赋",
+ "skilltxt": "这是生命天赋的描述tips",
+ "skillicon": "jn_dzj_0001",
+ "hp": 1800,
+ "atk": -1,
+ "def": -1,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 10104,
+ "skilltyp": 1,
+ "skillname": "生命天赋",
+ "skilltxt": "这是生命天赋的描述tips",
+ "skillicon": "jn_dzj_0001",
+ "hp": 1800,
+ "atk": -1,
+ "def": -1,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 10105,
+ "skilltyp": 1,
+ "skillname": "生命天赋",
+ "skilltxt": "这是生命天赋的描述tips",
+ "skillicon": "jn_dzj_0001",
+ "hp": 1800,
+ "atk": -1,
+ "def": -1,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 10106,
+ "skilltyp": 1,
+ "skillname": "生命天赋",
+ "skilltxt": "这是生命天赋的描述tips",
+ "skillicon": "jn_dzj_0001",
+ "hp": 1800,
+ "atk": -1,
+ "def": -1,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 10107,
+ "skilltyp": 1,
+ "skillname": "生命天赋",
+ "skilltxt": "这是生命天赋的描述tips",
+ "skillicon": "jn_dzj_0001",
+ "hp": 1800,
+ "atk": -1,
+ "def": -1,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 10108,
+ "skilltyp": 1,
+ "skillname": "生命天赋",
+ "skilltxt": "这是生命天赋的描述tips",
+ "skillicon": "jn_dzj_0001",
+ "hp": 1800,
+ "atk": -1,
+ "def": -1,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 10109,
+ "skilltyp": 1,
+ "skillname": "生命天赋",
+ "skilltxt": "这是生命天赋的描述tips",
+ "skillicon": "jn_dzj_0001",
+ "hp": 1800,
+ "atk": -1,
+ "def": -1,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 10110,
+ "skilltyp": 1,
+ "skillname": "生命天赋",
+ "skilltxt": "这是生命天赋的描述tips",
+ "skillicon": "jn_dzj_0001",
+ "hp": 1800,
+ "atk": -1,
+ "def": -1,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 20101,
+ "skilltyp": 1,
+ "skillname": "攻击天赋",
+ "skilltxt": "这是攻击天赋的描述tips",
+ "skillicon": "jn_dzj_0002",
+ "hp": -1,
+ "atk": -1,
+ "def": 1500,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 20102,
+ "skilltyp": 1,
+ "skillname": "攻击天赋",
+ "skilltxt": "这是攻击天赋的描述tips",
+ "skillicon": "jn_dzj_0003",
+ "hp": -1,
+ "atk": -1,
+ "def": 1500,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 20103,
+ "skilltyp": 1,
+ "skillname": "攻击天赋",
+ "skilltxt": "这是攻击天赋的描述tips",
+ "skillicon": "jn_dzj_0004",
+ "hp": -1,
+ "atk": -1,
+ "def": 1500,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 20104,
+ "skilltyp": 1,
+ "skillname": "攻击天赋",
+ "skilltxt": "这是攻击天赋的描述tips",
+ "skillicon": "jn_dzj_0005",
+ "hp": -1,
+ "atk": -1,
+ "def": 1500,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 20105,
+ "skilltyp": 1,
+ "skillname": "攻击天赋",
+ "skilltxt": "这是攻击天赋的描述tips",
+ "skillicon": "jn_dzj_0006",
+ "hp": -1,
+ "atk": -1,
+ "def": 1500,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 20106,
+ "skilltyp": 1,
+ "skillname": "攻击天赋",
+ "skilltxt": "这是攻击天赋的描述tips",
+ "skillicon": "jn_dzj_0007",
+ "hp": -1,
+ "atk": -1,
+ "def": 1500,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 20107,
+ "skilltyp": 1,
+ "skillname": "攻击天赋",
+ "skilltxt": "这是攻击天赋的描述tips",
+ "skillicon": "jn_dzj_0008",
+ "hp": -1,
+ "atk": -1,
+ "def": 1500,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 20108,
+ "skilltyp": 1,
+ "skillname": "攻击天赋",
+ "skilltxt": "这是攻击天赋的描述tips",
+ "skillicon": "jn_dzj_0009",
+ "hp": -1,
+ "atk": -1,
+ "def": 1500,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 20109,
+ "skilltyp": 1,
+ "skillname": "攻击天赋",
+ "skilltxt": "这是攻击天赋的描述tips",
+ "skillicon": "jn_dzj_0010",
+ "hp": -1,
+ "atk": -1,
+ "def": 1500,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 20110,
+ "skilltyp": 1,
+ "skillname": "攻击天赋",
+ "skilltxt": "这是攻击天赋的描述tips",
+ "skillicon": "jn_dzj_0011",
+ "hp": -1,
+ "atk": -1,
+ "def": 1500,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 30101,
+ "skilltyp": 1,
+ "skillname": "防御天赋",
+ "skilltxt": "这是防御天赋的描述tips",
+ "skillicon": "jn_dzj_0012",
+ "hp": -1,
+ "atk": 1500,
+ "def": -1,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 30102,
+ "skilltyp": 1,
+ "skillname": "防御天赋",
+ "skilltxt": "这是防御天赋的描述tips",
+ "skillicon": "jn_dzj_0013",
+ "hp": -1,
+ "atk": 1500,
+ "def": -1,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 30103,
+ "skilltyp": 1,
+ "skillname": "防御天赋",
+ "skilltxt": "这是防御天赋的描述tips",
+ "skillicon": "jn_dzj_0014",
+ "hp": -1,
+ "atk": 1500,
+ "def": -1,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 30104,
+ "skilltyp": 1,
+ "skillname": "防御天赋",
+ "skilltxt": "这是防御天赋的描述tips",
+ "skillicon": "jn_dzj_0015",
+ "hp": -1,
+ "atk": 1500,
+ "def": -1,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 30105,
+ "skilltyp": 1,
+ "skillname": "防御天赋",
+ "skilltxt": "这是防御天赋的描述tips",
+ "skillicon": "jn_dzj_0016",
+ "hp": -1,
+ "atk": 1500,
+ "def": -1,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 30106,
+ "skilltyp": 1,
+ "skillname": "防御天赋",
+ "skilltxt": "这是防御天赋的描述tips",
+ "skillicon": "jn_dzj_0017",
+ "hp": -1,
+ "atk": 1500,
+ "def": -1,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 30107,
+ "skilltyp": 1,
+ "skillname": "防御天赋",
+ "skilltxt": "这是防御天赋的描述tips",
+ "skillicon": "jn_dzj_0018",
+ "hp": -1,
+ "atk": 1500,
+ "def": -1,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 30108,
+ "skilltyp": 1,
+ "skillname": "防御天赋",
+ "skilltxt": "这是防御天赋的描述tips",
+ "skillicon": "jn_dzj_0019",
+ "hp": -1,
+ "atk": 1500,
+ "def": -1,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 30109,
+ "skilltyp": 1,
+ "skillname": "防御天赋",
+ "skilltxt": "这是防御天赋的描述tips",
+ "skillicon": "jn_dzj_0020",
+ "hp": -1,
+ "atk": 1500,
+ "def": -1,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 30110,
+ "skilltyp": 1,
+ "skillname": "防御天赋",
+ "skilltxt": "这是防御天赋的描述tips",
+ "skillicon": "jn_dzj_0021",
+ "hp": -1,
+ "atk": 1500,
+ "def": -1,
+ "crt": -1,
+ "speed": -1
+ },
+ {
+ "skillid": 99101,
+ "skilltyp": 2,
+ "skillname": "攻速天赋",
+ "skilltxt": "这是攻速天赋的描述tips",
+ "skillicon": "jn_icon_027",
+ "hp": -1,
+ "atk": -1,
+ "def": -1,
+ "crt": -1,
+ "speed": 3000
+ },
+ {
+ "skillid": 99102,
+ "skilltyp": 2,
+ "skillname": "攻速天赋",
+ "skilltxt": "这是攻速天赋的描述tips",
+ "skillicon": "jn_icon_027",
+ "hp": -1,
+ "atk": -1,
+ "def": -1,
+ "crt": -1,
+ "speed": 4000
+ },
+ {
+ "skillid": 99103,
+ "skilltyp": 2,
+ "skillname": "暴击天赋",
+ "skilltxt": "这是暴击天赋的描述tips",
+ "skillicon": "jn_icon_008",
+ "hp": -1,
+ "atk": -1,
+ "def": -1,
+ "crt": 10000,
+ "speed": -1
+ }
+]
\ No newline at end of file
diff --git a/comm/const.go b/comm/const.go
index be0bd5d33..9689f07e1 100644
--- a/comm/const.go
+++ b/comm/const.go
@@ -155,6 +155,9 @@ const (
///竞技场
TableArena = "arena"
+
+ // 天赋
+ TableTalent = "herotalent"
)
//RPC服务接口定义处
diff --git a/modules/comp_configure.go b/modules/comp_configure.go
index 1ec54c2b9..cd9148327 100644
--- a/modules/comp_configure.go
+++ b/modules/comp_configure.go
@@ -106,9 +106,7 @@ func (this *MCompConfigure) GetGlobalInitConf() (configure *cfg.GameInitial, err
v interface{}
ok bool
)
- if v, err = this.GetConfigure(game_initial); err != nil {
- return
- } else {
+ if v, err = this.GetConfigure(game_initial); err == nil {
if configure, ok = v.(*cfg.GameInitial); !ok {
err = fmt.Errorf("%T no is *cfg.Game_comInitial", v)
return
@@ -122,15 +120,13 @@ func (this *MCompConfigure) GetGlobalAtnConf(key string) *cfg.GameComAtnData {
configure *cfg.GameComAtn
ok bool
)
- if v, err := this.GetConfigure(game_comatn); err != nil {
- return nil
- } else {
- if configure, ok = v.(*cfg.GameComAtn); !ok {
- err = fmt.Errorf("%T no is *cfg.Game_comatn", v)
- return nil
+ if v, err := this.GetConfigure(game_comatn); err == nil {
+ if configure, ok = v.(*cfg.GameComAtn); ok {
+ return configure.Get(key)
}
}
- return configure.Get(key)
+ fmt.Errorf("%T no is *cfg.GameComAtnData", key)
+ return nil
}
// 主角等级经验配置列表
@@ -241,7 +237,7 @@ func (this *MCompConfigure) GetColor(id int32) (item *cfg.GameGameColorData, err
v interface{}
ok bool
)
- if v, err = this.GetConfigure(game_gamecolor); err != nil {
+ if v, err = this.GetConfigure(game_gamecolor); err == nil {
return
} else {
if item, ok = v.(*cfg.GameGameColor).GetDataMap()[id]; !ok {
diff --git a/modules/hero/api.go b/modules/hero/api.go
index 98810e07e..05c4e9467 100644
--- a/modules/hero/api.go
+++ b/modules/hero/api.go
@@ -13,20 +13,23 @@ type apiComp struct {
}
const ( //消息回复的头名称
- StrengthenUplv = "strengthenuplv"
- HeroSubTypeInfo = "info" //英雄卡片信息
- HeroSubTypeList = "list" //英雄列表
- HeroSubTypeChouka = "chouka" //抽卡
- ResonanceUseEnergy = "resonanceuseenergy" // 使用共鸣能量
- Resonance = "resonance" // 英雄共鸣属性
- ResonanceReset = "resonancereset" // 共鸣重置
- StrengthenUpSkill = "strengthenupskill" // 技能强化
- StrengthenUpStar = "strengthenupstar" // 英雄升星
- Awaken = "awaken" // 英雄觉醒
- HeroLock = "lock" // 英雄锁定
- DrawCard = "drawcard" // 抽卡
- DrawCardFloor = "drawcardfloor" // 抽卡保底
- HeroFusionResp = "fusion"
+ StrengthenUplv = "strengthenuplv"
+ HeroSubTypeInfo = "info" //英雄卡片信息
+ HeroSubTypeList = "list" //英雄列表
+ HeroSubTypeChouka = "chouka" //抽卡
+ ResonanceUseEnergy = "resonanceuseenergy" // 使用共鸣能量
+ Resonance = "resonance" // 英雄共鸣属性
+ ResonanceReset = "resonancereset" // 共鸣重置
+ StrengthenUpSkill = "strengthenupskill" // 技能强化
+ StrengthenUpStar = "strengthenupstar" // 英雄升星
+ Awaken = "awaken" // 英雄觉醒
+ HeroLock = "lock" // 英雄锁定
+ DrawCard = "drawcard" // 抽卡
+ DrawCardFloor = "drawcardfloor" // 抽卡保底
+ HeroFusionResp = "fusion"
+ HeroTalentLearnResp = "talentlearn" // 天赋学习
+ HeroTalentListResp = "talentlist" // 天赋列表
+ HeroTalentResetResp = "talentreset" // 天赋重置
)
//组件初始化接口
diff --git a/modules/hero/api_strengthenUpStar.go b/modules/hero/api_strengthenUpStar.go
index 8ecf6d7e7..1aa785bf9 100644
--- a/modules/hero/api_strengthenUpStar.go
+++ b/modules/hero/api_strengthenUpStar.go
@@ -149,7 +149,6 @@ func (this *apiComp) StrengthenUpStar(session comm.IUserSession, req *pb.HeroStr
_hero.HeroID = hid
_heroMap["heroID"] = _hero.HeroID
}
-
}
// 保存数据
err := this.module.modelHero.ChangeList(session.GetUserId(), _hero.Id, _heroMap)
diff --git a/modules/hero/api_talentlearn.go b/modules/hero/api_talentlearn.go
new file mode 100644
index 000000000..a0f8423bd
--- /dev/null
+++ b/modules/hero/api_talentlearn.go
@@ -0,0 +1,115 @@
+package hero
+
+import (
+ "go_dreamfactory/comm"
+ "go_dreamfactory/pb"
+
+ "google.golang.org/protobuf/proto"
+)
+
+//参数校验
+func (this *apiComp) TalentLearnCheck(session comm.IUserSession, req *pb.HeroTalentLearnReq) (code pb.ErrorCode) {
+ if req.TalentID <= 0 {
+ code = pb.ErrorCode_ReqParameterError
+ }
+ return
+}
+
+// 天赋学习
+func (this *apiComp) TalentLearn(session comm.IUserSession, req *pb.HeroTalentLearnReq) (code pb.ErrorCode, data proto.Message) {
+ var (
+ talent *pb.DBHeroTalent
+ err error
+ chanegCard []*pb.DBHero // 推送属性变化
+ )
+ chanegCard = make([]*pb.DBHero, 0)
+ if code = this.TalentLearnCheck(session, req); code != pb.ErrorCode_Success {
+ return
+ }
+ if req.ObjId != "" {
+ if talent, err = this.module.modelTalent.GetHerotalentByObjId(session.GetUserId(), req.ObjId); err != nil {
+ code = pb.ErrorCode_SystemError
+ return
+ }
+ this.module.Debugf("%v", talent)
+
+ } else {
+ if req.Heroid == "" { // 英雄id不能为空
+ code = pb.ErrorCode_ReqParameterError
+ return
+ }
+ // 数据校验
+ list, err := this.module.modelTalent.GetHerotalent(session.GetUserId())
+ if err != nil {
+ code = pb.ErrorCode_DBError
+ return
+ }
+ for _, v := range list {
+ if v.HeroId == req.Heroid {
+ talent = v
+ break
+ }
+ }
+ if talent == nil {
+ // 创建一条数据
+ talent, err = this.module.modelTalent.CreateHeroTalent(session.GetUserId(), req.Heroid)
+ if err != nil {
+ this.module.Errorf("create talent data failed:%v", err)
+ }
+ }
+ }
+
+ talentConf := this.module.configure.GetHeroTalent(req.TalentID)
+ if talentConf == nil {
+ code = pb.ErrorCode_ConfigNoFound
+ return
+ }
+ // 校验
+ if len(talentConf.Before) == 1 && talentConf.Before[0] == 0 { // 前置解锁技能为0
+ if _, ok := talent.Talent[req.TalentID]; ok {
+ code = pb.ErrorCode_TalentRepeatLearn // 重复激活
+ return
+ }
+ } else {
+ for _, v := range talentConf.Before {
+ if _, ok := talent.Talent[v]; !ok {
+ code = pb.ErrorCode_TalentUnLockerBefore // 前置技能不满足
+ return
+ }
+ }
+ }
+ // 校验消耗
+ if code = this.module.CheckRes(session, talentConf.Thing); code != pb.ErrorCode_Success {
+ return
+ }
+ if code = this.module.DispenseRes(session, talentConf.Thing, true); code != pb.ErrorCode_Success {
+ return
+ }
+ // 校验通过可以加
+ talent.Talent[req.TalentID] = 1
+ update := make(map[string]interface{}, 0)
+ update["talent"] = talent.Talent
+ if err = this.module.modelTalent.ChangeHeroTalent(talent, update); err != nil {
+ this.module.Errorf("update failed :%v", err)
+ }
+ talentSkill := this.module.configure.GetHeroTalentSkill(talentConf.Talentid)
+ if talentSkill == nil {
+ code = pb.ErrorCode_ConfigNoFound
+ return
+ }
+ // 同步修改属性
+ heroList := this.module.GetHeroList(session.GetUserId())
+ for _, v := range heroList {
+ if v.HeroID == talent.HeroId { // 找到对应的英雄ID
+ this.module.modelHero.setTalentProperty(v, talentSkill)
+ chanegCard = append(chanegCard, v) // 添加推送属性变化信息
+ }
+ }
+
+ session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: chanegCard})
+ session.SendMsg(string(this.module.GetType()), HeroTalentLearnResp, &pb.HeroTalentLearnResp{
+ Telnet: talent,
+ TalentID: req.TalentID, // 返回刚学习过的天赋ID
+ })
+ return
+}
diff --git a/modules/hero/api_talentlist.go b/modules/hero/api_talentlist.go
new file mode 100644
index 000000000..3782526d8
--- /dev/null
+++ b/modules/hero/api_talentlist.go
@@ -0,0 +1,20 @@
+package hero
+
+import (
+ "go_dreamfactory/comm"
+ "go_dreamfactory/pb"
+
+ "google.golang.org/protobuf/proto"
+)
+
+//参数校验
+func (this *apiComp) TalentListCheck(session comm.IUserSession, req *pb.HeroTalentListReq) (code pb.ErrorCode) {
+ return
+}
+
+func (this *apiComp) TalentList(session comm.IUserSession, req *pb.HeroTalentListReq) (code pb.ErrorCode, data proto.Message) {
+ rsp := &pb.HeroTalentListResp{}
+ rsp.Telnet, _ = this.module.modelTalent.GetHerotalent(session.GetUserId())
+ session.SendMsg(string(this.module.GetType()), HeroTalentListResp, rsp)
+ return
+}
diff --git a/modules/hero/api_talentreset.go b/modules/hero/api_talentreset.go
new file mode 100644
index 000000000..2520dd153
--- /dev/null
+++ b/modules/hero/api_talentreset.go
@@ -0,0 +1,55 @@
+package hero
+
+import (
+ "go_dreamfactory/comm"
+ "go_dreamfactory/pb"
+
+ "google.golang.org/protobuf/proto"
+)
+
+//参数校验
+func (this *apiComp) TalentResetCheck(session comm.IUserSession, req *pb.HeroTalentResetReq) (code pb.ErrorCode) {
+ return
+}
+
+func (this *apiComp) TalentReset(session comm.IUserSession, req *pb.HeroTalentResetReq) (code pb.ErrorCode, data proto.Message) {
+ var (
+ heroList []*pb.DBHero
+ chanegCard []*pb.DBHero // 推送属性变化
+ )
+ chanegCard = make([]*pb.DBHero, 0)
+ heroList = this.module.GetHeroList(session.GetUserId())
+ rsp := &pb.HeroTalentResetResp{}
+
+ globalCnf := this.module.configure.GetGlobalAtnConf("talent_reset") // 获取重置消耗
+ if globalCnf == nil {
+ code = pb.ErrorCode_ConfigNoFound
+ return
+ }
+
+ // 检查消耗够不够
+ if code = this.module.CheckRes(session, globalCnf.Var); code != pb.ErrorCode_Success {
+ return
+ }
+ if code = this.module.ConsumeRes(session, globalCnf.Var, true); code != pb.ErrorCode_Success {
+ return
+ }
+ list, _ := this.module.modelTalent.GetHerotalent(session.GetUserId())
+ for _, v := range list {
+ if len(v.Talent) > 0 {
+ update := make(map[string]interface{}, 0)
+ szTalent := map[int32]int32{}
+ update["talent"] = szTalent
+ this.module.modelTalent.ChangeHeroTalent(v, update)
+ for _, hero := range heroList {
+ if hero.HeroID == v.HeroId {
+ this.module.modelHero.cleanTalentProperty(hero)
+ chanegCard = append(chanegCard, hero) // 添加推送属性变化信息
+ }
+ }
+ }
+ }
+ session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: chanegCard})
+ session.SendMsg(string(this.module.GetType()), HeroTalentResetResp, rsp)
+ return
+}
diff --git a/modules/hero/configure_comp.go b/modules/hero/configure_comp.go
index bb29b9b43..2deeb366a 100644
--- a/modules/hero/configure_comp.go
+++ b/modules/hero/configure_comp.go
@@ -11,22 +11,24 @@ import (
)
const (
- new_hero = "game_hero.json" //英雄
- hero_stargrow = "game_herostargrow.json" //英雄品质系数
- hero_levelgrow = "game_herolevelgrow.json" //英雄成长系数
- hero_starup = "game_herostarup.json" // 升星
- hero_levelup = "game_herolevelup.json" //英雄等级基础属性
- hero_exp = "game_heroexp.json" // 升级
- hero_skillup = "game_heroskilllevel.json" // 英雄技能升级
- game_skillatk = "game_skillatk.json" // 英雄技能
- hero_resonance = "game_heroresonance.json" // 英雄共鸣
- hero_comatn = "game_comatn.json" // 英雄共鸣重置
- hero_awaken = "game_heroawaken.json" // 英雄觉醒
- hero_drawcard = "game_drawcard.json" // 抽卡
- hero_drawupdraw = "game_drawupdraw.json" // 抽卡概率调整
- hero_drawcost = "game_drawcost.json" // 抽卡消耗
- hero_fusion = "game_herofusion.json" // 卡牌融合
- hero_starupsp = "game_herostarupsp.json" // 精灵升星
+ new_hero = "game_hero.json" //英雄
+ hero_stargrow = "game_herostargrow.json" //英雄品质系数
+ hero_levelgrow = "game_herolevelgrow.json" //英雄成长系数
+ hero_starup = "game_herostarup.json" // 升星
+ hero_levelup = "game_herolevelup.json" //英雄等级基础属性
+ hero_exp = "game_heroexp.json" // 升级
+ hero_skillup = "game_heroskilllevel.json" // 英雄技能升级
+ game_skillatk = "game_skillatk.json" // 英雄技能
+ hero_resonance = "game_heroresonance.json" // 英雄共鸣
+ hero_comatn = "game_comatn.json" // 英雄共鸣重置
+ hero_awaken = "game_heroawaken.json" // 英雄觉醒
+ hero_drawcard = "game_drawcard.json" // 抽卡
+ hero_drawupdraw = "game_drawupdraw.json" // 抽卡概率调整
+ hero_drawcost = "game_drawcost.json" // 抽卡消耗
+ hero_fusion = "game_herofusion.json" // 卡牌融合
+ hero_starupsp = "game_herostarupsp.json" // 精灵升星
+ hero_talentskill = "game_talentskill.json" // 天赋
+ hero_talent = "game_herotalent.json" // 天赋详细数据
)
///配置管理组件
@@ -46,20 +48,21 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp
err = this.MCompConfigure.Init(service, module, comp, options)
this.module = module.(*Hero)
err = this.LoadMultiConfigure(map[string]interface{}{
- new_hero: cfg.NewGameHero,
- hero_stargrow: cfg.NewGameHeroStargrow,
- hero_levelgrow: cfg.NewGameHeroLevelgrow,
- hero_levelup: cfg.NewGameHeroLevelup,
- hero_exp: cfg.NewGameHeroExp,
- hero_skillup: cfg.NewGameHeroSkillLevel,
- game_skillatk: cfg.NewGameSkillAtk,
- hero_comatn: cfg.NewGameComAtn,
- hero_drawcard: cfg.NewGameDrawCard,
- hero_fusion: cfg.NewGameHerofusion,
- hero_starupsp: cfg.NewGameHeroStarupSp,
+ new_hero: cfg.NewGameHero,
+ hero_stargrow: cfg.NewGameHeroStargrow,
+ hero_levelgrow: cfg.NewGameHeroLevelgrow,
+ hero_levelup: cfg.NewGameHeroLevelup,
+ hero_exp: cfg.NewGameHeroExp,
+ hero_skillup: cfg.NewGameHeroSkillLevel,
+ game_skillatk: cfg.NewGameSkillAtk,
+ hero_comatn: cfg.NewGameComAtn,
+ hero_drawcard: cfg.NewGameDrawCard,
+ hero_fusion: cfg.NewGameHerofusion,
+ hero_starupsp: cfg.NewGameHeroStarupSp,
+ hero_talentskill: cfg.NewGameTalentSkill,
+ hero_talent: cfg.NewGameHeroTalent,
})
this.drawCardCfg = make(map[string]map[int32][]*cfg.GameDrawCardData, 0)
-
configure.RegisterConfigure(hero_drawcard, cfg.NewGameDrawCard, this.SetHeroDrawConfig)
this.awakenMap = make(map[int64]*cfg.GameHeroAwakenData, 0)
configure.RegisterConfigure(hero_awaken, cfg.NewGameHeroAwaken, func() {
@@ -105,8 +108,11 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp
err = fmt.Errorf("%T no is *cfg.Game_drawCard", v)
}
})
- hid := this.GetHeroSpriteStar("43901")
- fmt.Printf("%s", hid)
+
+ // 测试接口 功能完成后删
+ // _data := this.GetHeroTalentSkill(20101)
+ // _data1 := this.GetHeroTalent(1)
+ // this.module.Debugf("%v,%v", _data, _data1)
return
}
@@ -356,7 +362,6 @@ func (this *configureComp) GetHeroSkillMaxLvConfig(skillId uint32) int32 {
if v, err := this.GetConfigure(game_skillatk); err == nil {
if configure, ok := v.(*cfg.GameSkillAtk); ok {
- //return configure.Get(int32(skillId)).MaxLV
for _, v1 := range configure.GetDataList() {
if v1.Id == int32(skillId) {
return v1.MaxLV
@@ -373,16 +378,12 @@ func (this *configureComp) GetHeroResonanceRestConfig() (data *cfg.GameComAtnDat
v interface{}
)
if v, err = this.GetConfigure(hero_comatn); err == nil {
- if configure, ok := v.(*cfg.GameComAtn); !ok {
- err = fmt.Errorf("%T no is *cfg.GamecomAtn", v)
- return
- } else {
+ if configure, ok := v.(*cfg.GameComAtn); ok {
data = configure.Get("hero_reset")
+ return
}
- } else {
- err = fmt.Errorf("%T no is *cfg.game_comatn", v)
}
-
+ this.module.Errorf("cfg.GameComAtnData GetHeroResonanceRestConfig:id = hero_reset")
return
}
@@ -390,29 +391,44 @@ func (this *configureComp) GetHeroResonanceRestConfig() (data *cfg.GameComAtnDat
func (this *configureComp) GetHeroFucionConfig(cid string) (data *cfg.GameHerofusionData) {
if v, err := this.GetConfigure(hero_fusion); err == nil {
- if configure, ok := v.(*cfg.GameHerofusion); !ok {
- err = fmt.Errorf("%T no is *cfg.GameHerofusionData", v)
- return
- } else {
+ if configure, ok := v.(*cfg.GameHerofusion); ok {
data = configure.Get(cid)
+ return
}
- } else {
- err = fmt.Errorf("%T no is *cfg.GameHerofusionData", v)
}
-
+ this.module.Errorf("cfg.GameHerofusionData GetHeroFucionConfig:id = %s", cid)
return
}
func (this *configureComp) GetHeroSpriteStar(cid string) (hid string) {
if v, err := this.GetConfigure(hero_starupsp); err == nil {
if configure, ok := v.(*cfg.GameHeroStarupSp); !ok {
- err = fmt.Errorf("%T no is *cfg.GameHerofusionData", v)
- return
- } else {
hid = configure.Get(cid).Starid
+ return
}
- } else {
- err = fmt.Errorf("%T no is *cfg.GameHerofusionData", v)
}
- return
+ this.module.Errorf("cfg.GameHeroStarupSpData GetHeroSpriteStar:id = %s", cid)
+ return ""
+}
+
+func (this *configureComp) GetHeroTalent(id int32) (data *cfg.GameHeroTalentData) {
+ if v, err := this.GetConfigure(hero_talent); err == nil {
+ if configure, ok := v.(*cfg.GameHeroTalent); ok {
+ data = configure.Get(id)
+ return
+ }
+ }
+ this.module.Errorf("cfg.GameHeroTalentData GetHeroTalent:id = %d", id)
+ return nil
+}
+
+func (this *configureComp) GetHeroTalentSkill(skillId int32) (data *cfg.GameTalentSkillData) {
+ if v, err := this.GetConfigure(hero_talentskill); err == nil {
+ if configure, ok := v.(*cfg.GameTalentSkill); ok {
+ data = configure.Get(skillId)
+ return
+ }
+ }
+ this.module.Errorf("cfg.GameTalentSkillData GetHeroTalentSkill:skillId = %d", skillId)
+ return nil
}
diff --git a/modules/hero/model_hero.go b/modules/hero/model_hero.go
index ac8408fbf..952a92545 100644
--- a/modules/hero/model_hero.go
+++ b/modules/hero/model_hero.go
@@ -274,11 +274,11 @@ func (this *ModelHero) setJuexingProperty(hero *pb.DBHero, key string, value int
case comm.Speed:
hero.JuexProperty[comm.Speed] += value
case comm.ResonanceHpPro:
- hero.JuexProperty[comm.Hp] += int32(math.Floor((1.0 + float64(value)/1000) * float64(hero.Property[comm.Hp])))
+ hero.JuexProperty[comm.Hp] += int32(math.Floor((float64(value) / 1000) * float64(hero.Property[comm.Hp])))
case comm.ResonanceAtkPro:
- hero.JuexProperty[comm.Atk] += int32(math.Floor((1.0 + float64(value)/1000) * float64(hero.Property[comm.Atk])))
+ hero.JuexProperty[comm.Atk] += int32(math.Floor((float64(value) / 1000) * float64(hero.Property[comm.Atk])))
case comm.ResonanceDefPro:
- hero.JuexProperty[comm.Def] += int32(math.Floor((1.0 + float64(value)/1000) * float64(hero.Property[comm.Def])))
+ hero.JuexProperty[comm.Def] += int32(math.Floor((float64(value) / 1000)) * float64(hero.Property[comm.Def]))
}
}
@@ -694,3 +694,44 @@ func (this *ModelHero) InitTempHero(heroCfgId string, star, lv int32) *pb.DBHero
this.initHeroSkill(newHero)
return newHero
}
+
+//设置天赋属性
+func (this *ModelHero) setTalentProperty(hero *pb.DBHero, conf *cfg.GameTalentSkillData) {
+ if conf == nil || hero == nil {
+ return
+ }
+ if conf.Hp != -1 {
+ hero.TalentProperty[comm.Hp] += int32(math.Floor((float64(conf.Hp) / 1000) * float64(hero.Property[comm.Hp])))
+ }
+ if conf.Atk != -1 {
+ hero.TalentProperty[comm.Atk] += int32(math.Floor((float64(conf.Atk) / 1000) * float64(hero.Property[comm.Atk])))
+ }
+ if conf.Def != -1 {
+ hero.TalentProperty[comm.Def] += int32(math.Floor((float64(conf.Def) / 1000) * float64(hero.Property[comm.Def])))
+ }
+ if conf.Crt != -1 {
+ hero.TalentProperty[comm.Cri] += int32(math.Floor((float64(conf.Crt) / 1000) * float64(hero.Property[comm.Cri])))
+ }
+ if conf.Speed != -1 {
+ hero.TalentProperty[comm.Speed] += int32(math.Floor((float64(conf.Speed) / 1000) * float64(hero.Property[comm.Speed])))
+ }
+
+ _heroMap := make(map[string]interface{}, 0)
+ _heroMap["talentProperty"] = hero.TalentProperty
+ if err := this.ChangeList(hero.Uid, hero.Id, _heroMap); err != nil {
+ this.moduleHero.Errorf("mergeenegryProperty err %v", err)
+ }
+}
+
+// 重置天赋属性
+func (this *ModelHero) cleanTalentProperty(hero *pb.DBHero) {
+ if hero == nil {
+ return
+ }
+ hero.TalentProperty = map[string]int32{}
+ _heroMap := make(map[string]interface{}, 0)
+ _heroMap["talentProperty"] = hero.TalentProperty
+ if err := this.ChangeList(hero.Uid, hero.Id, _heroMap); err != nil {
+ this.moduleHero.Errorf("mergeenegryProperty err %v", err)
+ }
+}
diff --git a/modules/hero/model_talent.go b/modules/hero/model_talent.go
new file mode 100644
index 000000000..50c05e8e1
--- /dev/null
+++ b/modules/hero/model_talent.go
@@ -0,0 +1,65 @@
+package hero
+
+import (
+ "errors"
+ "go_dreamfactory/comm"
+ "go_dreamfactory/lego/core"
+ "go_dreamfactory/lego/sys/redis"
+ "go_dreamfactory/modules"
+ "go_dreamfactory/pb"
+
+ "go.mongodb.org/mongo-driver/bson/primitive"
+)
+
+// 英雄天赋组件
+type ModelTalent struct {
+ modules.MCompModel
+ module *Hero
+}
+
+func (this *ModelTalent) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
+ this.TableName = comm.TableTalent
+ err = this.MCompModel.Init(service, module, comp, options)
+ this.module = module.(*Hero)
+ return
+}
+
+//获取用户天赋数据
+func (this *ModelTalent) GetHerotalent(uid string) (result []*pb.DBHeroTalent, err error) {
+ result = make([]*pb.DBHeroTalent, 0)
+ if err = this.GetList(uid, result); err != nil && err != redis.RedisNil {
+ return
+ }
+ err = nil
+ return result, err
+}
+
+//修改天赋数据
+func (this *ModelTalent) ChangeHeroTalent(talent *pb.DBHeroTalent, update map[string]interface{}) (err error) {
+ if talent == nil || len(update) == 0 {
+ return errors.New("err")
+ }
+ if err := this.ChangeList(talent.Uid, talent.Id, update); err != nil {
+ this.module.Debugf("ChangeHeroTalent err %v", err)
+ }
+ return nil
+}
+
+// 通过objId 查询天赋数据
+func (this *ModelTalent) GetHerotalentByObjId(uid string, oid string) (talent *pb.DBHeroTalent, err error) {
+ result := &pb.DBHeroTalent{}
+ err = this.GetListObj(uid, oid, result)
+ return
+}
+
+// 创建一条新的英雄天赋数据
+func (this *ModelTalent) CreateHeroTalent(uid, heroId string) (talent *pb.DBHeroTalent, err error) {
+ talent = &pb.DBHeroTalent{
+ Id: primitive.NewObjectID().Hex(),
+ Uid: "",
+ HeroId: heroId,
+ Talent: map[int32]int32{},
+ }
+ err = this.AddList(uid, talent.Id, talent)
+ return
+}
diff --git a/modules/hero/module.go b/modules/hero/module.go
index da48a997b..a6fb68eaa 100644
--- a/modules/hero/module.go
+++ b/modules/hero/module.go
@@ -23,10 +23,10 @@ type Hero struct {
api *apiComp
configure *configureComp
modelHero *ModelHero
- modelRecord *ModelRecord
+ modelRecord *ModelRecord // 英雄抽卡保底,次数等数据
+ modelTalent *ModelTalent // 天赋系统
moduleFetter comm.IHeroFetter
-
- service core.IService
+ service core.IService
}
//模块名
@@ -47,8 +47,8 @@ func (this *Hero) OnInstallComp() {
this.api = this.RegisterComp(new(apiComp)).(*apiComp)
this.modelHero = this.RegisterComp(new(ModelHero)).(*ModelHero)
this.modelRecord = this.RegisterComp(new(ModelRecord)).(*ModelRecord)
+ this.modelTalent = this.RegisterComp(new(ModelTalent)).(*ModelTalent)
this.configure = this.RegisterComp(new(configureComp)).(*configureComp)
-
}
func (this *Hero) Start() (err error) {
var module core.IModule
diff --git a/modules/modulebase.go b/modules/modulebase.go
index eff808e49..6af90e488 100644
--- a/modules/modulebase.go
+++ b/modules/modulebase.go
@@ -45,11 +45,11 @@ func (this *ModuleBase) NewOptions() (options core.IModuleOptions) {
//模块初始化接口
func (this *ModuleBase) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) {
- err = this.ModuleBase.Init(service, module, options)
this.service = service.(base.IRPCXService)
this.module = module
this.options = options.(IOptions)
this.options.GetLog().SetName("module." + string(module.GetType()))
+ err = this.ModuleBase.Init(service, module, options)
return
}
diff --git a/pb/hero_db.pb.go b/pb/hero_db.pb.go
index e9a61120e..20cce553c 100644
--- a/pb/hero_db.pb.go
+++ b/pb/hero_db.pb.go
@@ -156,6 +156,7 @@ type DBHero struct {
Suite2Star int32 `protobuf:"varint,28,opt,name=suite2Star,proto3" json:"suite2Star" bson:"suite2Star"`
Suite1Lv int32 `protobuf:"varint,29,opt,name=suite1Lv,proto3" json:"suite1Lv" bson:"suite1Lv"`
Suite2Lv int32 `protobuf:"varint,30,opt,name=suite2Lv,proto3" json:"suite2Lv" bson:"suite2Lv"`
+ TalentProperty map[string]int32 `protobuf:"bytes,31,rep,name=talentProperty,proto3" json:"talentProperty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3" bson:"talentProperty"` // // 天赋属性
}
func (x *DBHero) Reset() {
@@ -400,6 +401,13 @@ func (x *DBHero) GetSuite2Lv() int32 {
return 0
}
+func (x *DBHero) GetTalentProperty() map[string]int32 {
+ if x != nil {
+ return x.TalentProperty
+ }
+ return nil
+}
+
type Floor struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
@@ -623,7 +631,7 @@ var file_hero_hero_db_proto_rawDesc = []byte{
0x61, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01,
0x28, 0x05, 0x52, 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x73,
0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x6b,
- 0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x22, 0xab, 0x0a, 0x0a, 0x06, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f,
+ 0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x22, 0xb3, 0x0b, 0x0a, 0x06, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f,
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, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01,
@@ -686,8 +694,20 @@ var file_hero_hero_db_proto_rawDesc = []byte{
0x1a, 0x0a, 0x08, 0x73, 0x75, 0x69, 0x74, 0x65, 0x31, 0x4c, 0x76, 0x18, 0x1d, 0x20, 0x01, 0x28,
0x05, 0x52, 0x08, 0x73, 0x75, 0x69, 0x74, 0x65, 0x31, 0x4c, 0x76, 0x12, 0x1a, 0x0a, 0x08, 0x73,
0x75, 0x69, 0x74, 0x65, 0x32, 0x4c, 0x76, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73,
- 0x75, 0x69, 0x74, 0x65, 0x32, 0x4c, 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,
+ 0x75, 0x69, 0x74, 0x65, 0x32, 0x4c, 0x76, 0x12, 0x43, 0x0a, 0x0e, 0x74, 0x61, 0x6c, 0x65, 0x6e,
+ 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x1f, 0x20, 0x03, 0x28, 0x0b, 0x32,
+ 0x1b, 0x2e, 0x44, 0x42, 0x48, 0x65, 0x72, 0x6f, 0x2e, 0x54, 0x61, 0x6c, 0x65, 0x6e, 0x74, 0x50,
+ 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0e, 0x74, 0x61,
+ 0x6c, 0x65, 0x6e, 0x74, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 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, 0x3e, 0x0a, 0x10, 0x41, 0x64, 0x64,
+ 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, 0x39, 0x0a, 0x0b, 0x45, 0x6e, 0x65,
+ 0x72, 0x67, 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, 0x3e, 0x0a, 0x10, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65,
@@ -749,7 +769,7 @@ func file_hero_hero_db_proto_rawDescGZIP() []byte {
}
var file_hero_hero_db_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_hero_hero_db_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
+var file_hero_hero_db_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
var file_hero_hero_db_proto_goTypes = []interface{}{
(HeroType)(0), // 0: HeroType
(*SkillData)(nil), // 1: SkillData
@@ -853,7 +873,7 @@ func file_hero_hero_db_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_hero_hero_db_proto_rawDesc,
NumEnums: 1,
- NumMessages: 11,
+ NumMessages: 12,
NumExtensions: 0,
NumServices: 0,
},
diff --git a/sys/configure/structs/Game.HeroTalent.go b/sys/configure/structs/Game.HeroTalent.go
new file mode 100644
index 000000000..740df43a3
--- /dev/null
+++ b/sys/configure/structs/Game.HeroTalent.go
@@ -0,0 +1,42 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+package cfg
+
+type GameHeroTalent struct {
+ _dataMap map[int32]*GameHeroTalentData
+ _dataList []*GameHeroTalentData
+}
+
+func NewGameHeroTalent(_buf []map[string]interface{}) (*GameHeroTalent, error) {
+ _dataList := make([]*GameHeroTalentData, 0, len(_buf))
+ dataMap := make(map[int32]*GameHeroTalentData)
+ for _, _ele_ := range _buf {
+ if _v, err2 := DeserializeGameHeroTalentData(_ele_); err2 != nil {
+ return nil, err2
+ } else {
+ _dataList = append(_dataList, _v)
+ dataMap[_v.Id] = _v
+ }
+ }
+ return &GameHeroTalent{_dataList:_dataList, _dataMap:dataMap}, nil
+}
+
+func (table *GameHeroTalent) GetDataMap() map[int32]*GameHeroTalentData {
+ return table._dataMap
+}
+
+func (table *GameHeroTalent) GetDataList() []*GameHeroTalentData {
+ return table._dataList
+}
+
+func (table *GameHeroTalent) Get(key int32) *GameHeroTalentData {
+ return table._dataMap[key]
+}
+
+
diff --git a/sys/configure/structs/Game.HeroTalentData.go b/sys/configure/structs/Game.HeroTalentData.go
new file mode 100644
index 000000000..281e341a2
--- /dev/null
+++ b/sys/configure/structs/Game.HeroTalentData.go
@@ -0,0 +1,97 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+package cfg
+
+import "errors"
+
+type GameHeroTalentData struct {
+ Id int32
+ Type []int32
+ Talentid int32
+ Before []int32
+ Thing []*Gameatn
+ Position []int32
+}
+
+const TypeId_GameHeroTalentData = 1749022668
+
+func (*GameHeroTalentData) GetTypeId() int32 {
+ return 1749022668
+}
+
+func (_v *GameHeroTalentData)Deserialize(_buf map[string]interface{}) (err error) {
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["type"].([]interface{}); !_ok_ { err = errors.New("type error"); return }
+
+ _v.Type = 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.Type = append(_v.Type, _list_v_)
+ }
+ }
+
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["talentid"].(float64); !_ok_ { err = errors.New("talentid error"); return }; _v.Talentid = int32(_tempNum_) }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["before"].([]interface{}); !_ok_ { err = errors.New("before error"); return }
+
+ _v.Before = 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.Before = append(_v.Before, _list_v_)
+ }
+ }
+
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["thing"].([]interface{}); !_ok_ { err = errors.New("thing error"); return }
+
+ _v.Thing = make([]*Gameatn, 0, len(_arr_))
+
+ for _, _e_ := range _arr_ {
+ var _list_v_ *Gameatn
+ { var _ok_ bool; var _x_ map[string]interface{}; if _x_, _ok_ = _e_.(map[string]interface{}); !_ok_ { err = errors.New("_list_v_ error"); return }; if _list_v_, err = DeserializeGameatn(_x_); err != nil { return } }
+ _v.Thing = append(_v.Thing, _list_v_)
+ }
+ }
+
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["position"].([]interface{}); !_ok_ { err = errors.New("position error"); return }
+
+ _v.Position = 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.Position = append(_v.Position, _list_v_)
+ }
+ }
+
+ return
+}
+
+func DeserializeGameHeroTalentData(_buf map[string]interface{}) (*GameHeroTalentData, error) {
+ v := &GameHeroTalentData{}
+ if err := v.Deserialize(_buf); err == nil {
+ return v, nil
+ } else {
+ return nil, err
+ }
+}
diff --git a/sys/configure/structs/Game.TalentSkill.go b/sys/configure/structs/Game.TalentSkill.go
new file mode 100644
index 000000000..325141c19
--- /dev/null
+++ b/sys/configure/structs/Game.TalentSkill.go
@@ -0,0 +1,42 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+package cfg
+
+type GameTalentSkill struct {
+ _dataMap map[int32]*GameTalentSkillData
+ _dataList []*GameTalentSkillData
+}
+
+func NewGameTalentSkill(_buf []map[string]interface{}) (*GameTalentSkill, error) {
+ _dataList := make([]*GameTalentSkillData, 0, len(_buf))
+ dataMap := make(map[int32]*GameTalentSkillData)
+ for _, _ele_ := range _buf {
+ if _v, err2 := DeserializeGameTalentSkillData(_ele_); err2 != nil {
+ return nil, err2
+ } else {
+ _dataList = append(_dataList, _v)
+ dataMap[_v.Skillid] = _v
+ }
+ }
+ return &GameTalentSkill{_dataList:_dataList, _dataMap:dataMap}, nil
+}
+
+func (table *GameTalentSkill) GetDataMap() map[int32]*GameTalentSkillData {
+ return table._dataMap
+}
+
+func (table *GameTalentSkill) GetDataList() []*GameTalentSkillData {
+ return table._dataList
+}
+
+func (table *GameTalentSkill) Get(key int32) *GameTalentSkillData {
+ return table._dataMap[key]
+}
+
+
diff --git a/sys/configure/structs/Game.TalentSkillData.go b/sys/configure/structs/Game.TalentSkillData.go
new file mode 100644
index 000000000..697f6ec35
--- /dev/null
+++ b/sys/configure/structs/Game.TalentSkillData.go
@@ -0,0 +1,53 @@
+//------------------------------------------------------------------------------
+//
+// This code was generated by a tool.
+// Changes to this file may cause incorrect behavior and will be lost if
+// the code is regenerated.
+//
+//------------------------------------------------------------------------------
+
+package cfg
+
+import "errors"
+
+type GameTalentSkillData struct {
+ Skillid int32
+ Skilltyp int32
+ Skillname string
+ Skilltxt string
+ Skillicon string
+ Hp int32
+ Atk int32
+ Def int32
+ Crt int32
+ Speed int32
+}
+
+const TypeId_GameTalentSkillData = -1949022189
+
+func (*GameTalentSkillData) GetTypeId() int32 {
+ return -1949022189
+}
+
+func (_v *GameTalentSkillData)Deserialize(_buf map[string]interface{}) (err error) {
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["skillid"].(float64); !_ok_ { err = errors.New("skillid error"); return }; _v.Skillid = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["skilltyp"].(float64); !_ok_ { err = errors.New("skilltyp error"); return }; _v.Skilltyp = int32(_tempNum_) }
+ { var _ok_ bool; if _v.Skillname, _ok_ = _buf["skillname"].(string); !_ok_ { err = errors.New("skillname error"); return } }
+ { var _ok_ bool; if _v.Skilltxt, _ok_ = _buf["skilltxt"].(string); !_ok_ { err = errors.New("skilltxt error"); return } }
+ { var _ok_ bool; if _v.Skillicon, _ok_ = _buf["skillicon"].(string); !_ok_ { err = errors.New("skillicon error"); return } }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["hp"].(float64); !_ok_ { err = errors.New("hp error"); return }; _v.Hp = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["atk"].(float64); !_ok_ { err = errors.New("atk error"); return }; _v.Atk = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["def"].(float64); !_ok_ { err = errors.New("def error"); return }; _v.Def = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["crt"].(float64); !_ok_ { err = errors.New("crt error"); return }; _v.Crt = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["speed"].(float64); !_ok_ { err = errors.New("speed error"); return }; _v.Speed = int32(_tempNum_) }
+ return
+}
+
+func DeserializeGameTalentSkillData(_buf map[string]interface{}) (*GameTalentSkillData, error) {
+ v := &GameTalentSkillData{}
+ if err := v.Deserialize(_buf); err == nil {
+ return v, nil
+ } else {
+ return nil, err
+ }
+}
diff --git a/sys/configure/structs/Tables.go b/sys/configure/structs/Tables.go
index db10b6b11..392c1dc59 100644
--- a/sys/configure/structs/Tables.go
+++ b/sys/configure/structs/Tables.go
@@ -11,719 +11,733 @@ package cfg
type JsonLoader func(string) ([]map[string]interface{}, error)
type Tables struct {
- Global *GameGlobal
- Plot *GamePlot
- Extservers *GameExtservers
- SkillAtk *GameSkillAtk
- SkillAfteratk *GameSkillAfteratk
- SkillBuff *GameSkillBuff
- SkillPassive *GameSkillPassive
- Hero *GameHero
- HeroStargrow *GameHeroStargrow
- HeroLevelgrow *GameHeroLevelgrow
- HeroStarup *GameHeroStarup
- HeroStarupSp *GameHeroStarupSp
- HeroExp *GameHeroExp
- HeroLevelup *GameHeroLevelup
- Equip *GameEquip
- EquipAttrlibrary *GameEquipAttrlibrary
- EquipSuit *GameEquipSuit
- EquipColor *GameEquipColor
- EquipIntensify *GameEquipIntensify
- Item *GameItem
- HeroSkillLevel *GameHeroSkillLevel
- HeroResonance *GameHeroResonance
- ComAtn *GameComAtn
- HeroAwaken *GameHeroAwaken
- HeroMethod *GameHeroMethod
- Shop *GameShop
- Shopitem *GameShopitem
- ActiveReward *GameActiveReward
- Model *GameModel
- MainlineChapter *GameMainlineChapter
- Mainline *GameMainline
- RDMainlineChapter *GameRDMainlineChapter
- RDMainline *GameRDMainline
- DrawCard *GameDrawCard
- ChatChannel *GameChatChannel
- ChatSystem *GameChatSystem
- ChatServerGroup *GameChatServerGroup
- ChatChannelCom *GameChatChannelCom
- ChatExpression *GameChatExpression
- TaskRound *GameTaskRound
- TaskActiveReward *GameTaskActiveReward
- Coin *GameCoin
- Initial *GameInitial
- Monster *GameMonster
- EquipPos *GameEquipPos
- Playerlv *GamePlayerlv
- Propsgroup *GamePropsgroup
- Facemod *GameFacemod
- Msgdistrib *GameMsgdistrib
- Opencond *GameOpencond
- Stroy *GameStroy
- Pagoda *GamePagoda
- SeasonLoop *GameSeasonLoop
- PagodaTaskReward *GamePagodaTaskReward
- PagodaSeasonReward *GamePagodaSeasonReward
- Rdtask *GameRdtask
- RdtaskCondi *GameRdtaskCondi
- RdtaskChoose *GameRdtaskChoose
- RdtaskSide *GameRdtaskSide
- RdtaskBattle *GameRdtaskBattle
- KungfuUnlock *GameKungfuUnlock
- KungfuMasterworker *GameKungfuMasterworker
- Gourmet *GameGourmet
- Drop *GameDrop
- Smithy *GameSmithy
- SmithyStove *GameSmithyStove
- SmithyText *GameSmithyText
- VikingBoss *GameVikingBoss
- VikingChallenge *GameVikingChallenge
- DreamlandBoos *GameDreamlandBoos
- DreamlandChallenge *GameDreamlandChallenge
- DreamlandTrigger *GameDreamlandTrigger
- HuntingBoss *GameHuntingBoss
- HuntingChallenge *GameHuntingChallenge
- HuntingOpenTime *GameHuntingOpenTime
- HuntingLineup *GameHuntingLineup
- MonsterFormat *GameMonsterFormat
- Link *GameLink
- GetResource *GameGetResource
- Affix *GameAffix
- VikingBossSkill *GameVikingBossSkill
- LibraryFetter *GameLibraryFetter
- LibraryStory *GameLibraryStory
- FavorNum *GameFavorNum
- LibraryHero *GameLibraryHero
- LibraryHistory *GameLibraryHistory
- LibraryFavor *GameLibraryFavor
- LibraryFavorlv *GameLibraryFavorlv
- LibraryPlayBack *GameLibraryPlayBack
- Robot *GameRobot
- Ip *GameIp
- GameColor *GameGameColor
- NameLibrary *GameNameLibrary
- HeroConvertdata *GameHeroConvertdata
- SubplotTimeLine *GameSubplotTimeLine
- SubplotTaskLine *GameSubplotTaskLine
- SubplotMainTask *GameSubplotMainTask
- SubplotSubTask *GameSubplotSubTask
- Captaintext *GameCaptaintext
- Herofusion *GameHerofusion
- PlayerInfor *GamePlayerInfor
+ Global *GameGlobal
+ Plot *GamePlot
+ Extservers *GameExtservers
+ SkillAtk *GameSkillAtk
+ SkillAfteratk *GameSkillAfteratk
+ SkillBuff *GameSkillBuff
+ SkillPassive *GameSkillPassive
+ Hero *GameHero
+ HeroStargrow *GameHeroStargrow
+ HeroLevelgrow *GameHeroLevelgrow
+ HeroStarup *GameHeroStarup
+ HeroStarupSp *GameHeroStarupSp
+ HeroExp *GameHeroExp
+ HeroLevelup *GameHeroLevelup
+ Equip *GameEquip
+ EquipAttrlibrary *GameEquipAttrlibrary
+ EquipSuit *GameEquipSuit
+ EquipColor *GameEquipColor
+ EquipIntensify *GameEquipIntensify
+ Item *GameItem
+ HeroSkillLevel *GameHeroSkillLevel
+ HeroResonance *GameHeroResonance
+ ComAtn *GameComAtn
+ HeroAwaken *GameHeroAwaken
+ HeroMethod *GameHeroMethod
+ Shop *GameShop
+ Shopitem *GameShopitem
+ ActiveReward *GameActiveReward
+ Model *GameModel
+ MainlineChapter *GameMainlineChapter
+ Mainline *GameMainline
+ RDMainlineChapter *GameRDMainlineChapter
+ RDMainline *GameRDMainline
+ DrawCard *GameDrawCard
+ ChatChannel *GameChatChannel
+ ChatSystem *GameChatSystem
+ ChatServerGroup *GameChatServerGroup
+ ChatChannelCom *GameChatChannelCom
+ ChatExpression *GameChatExpression
+ TaskRound *GameTaskRound
+ TaskActiveReward *GameTaskActiveReward
+ Coin *GameCoin
+ Initial *GameInitial
+ Monster *GameMonster
+ EquipPos *GameEquipPos
+ Playerlv *GamePlayerlv
+ Propsgroup *GamePropsgroup
+ Facemod *GameFacemod
+ Msgdistrib *GameMsgdistrib
+ Opencond *GameOpencond
+ Stroy *GameStroy
+ Pagoda *GamePagoda
+ SeasonLoop *GameSeasonLoop
+ PagodaTaskReward *GamePagodaTaskReward
+ PagodaSeasonReward *GamePagodaSeasonReward
+ Rdtask *GameRdtask
+ RdtaskCondi *GameRdtaskCondi
+ RdtaskChoose *GameRdtaskChoose
+ RdtaskSide *GameRdtaskSide
+ RdtaskBattle *GameRdtaskBattle
+ KungfuUnlock *GameKungfuUnlock
+ KungfuMasterworker *GameKungfuMasterworker
+ Gourmet *GameGourmet
+ Drop *GameDrop
+ Smithy *GameSmithy
+ SmithyStove *GameSmithyStove
+ SmithyText *GameSmithyText
+ VikingBoss *GameVikingBoss
+ VikingChallenge *GameVikingChallenge
+ DreamlandBoos *GameDreamlandBoos
+ DreamlandChallenge *GameDreamlandChallenge
+ DreamlandTrigger *GameDreamlandTrigger
+ HuntingBoss *GameHuntingBoss
+ HuntingChallenge *GameHuntingChallenge
+ HuntingOpenTime *GameHuntingOpenTime
+ HuntingLineup *GameHuntingLineup
+ MonsterFormat *GameMonsterFormat
+ Link *GameLink
+ GetResource *GameGetResource
+ Affix *GameAffix
+ VikingBossSkill *GameVikingBossSkill
+ LibraryFetter *GameLibraryFetter
+ LibraryStory *GameLibraryStory
+ FavorNum *GameFavorNum
+ LibraryHero *GameLibraryHero
+ LibraryHistory *GameLibraryHistory
+ LibraryFavor *GameLibraryFavor
+ LibraryFavorlv *GameLibraryFavorlv
+ LibraryPlayBack *GameLibraryPlayBack
+ Robot *GameRobot
+ Ip *GameIp
+ GameColor *GameGameColor
+ NameLibrary *GameNameLibrary
+ HeroConvertdata *GameHeroConvertdata
+ SubplotTimeLine *GameSubplotTimeLine
+ SubplotTaskLine *GameSubplotTaskLine
+ SubplotMainTask *GameSubplotMainTask
+ SubplotSubTask *GameSubplotSubTask
+ Captaintext *GameCaptaintext
+ Herofusion *GameHerofusion
+ PlayerInfor *GamePlayerInfor
+ HeroTalent *GameHeroTalent
+ TalentSkill *GameTalentSkill
}
func NewTables(loader JsonLoader) (*Tables, error) {
- var err error
- var buf []map[string]interface{}
+ var err error
+ var buf []map[string]interface{}
- tables := &Tables{}
- if buf, err = loader("game_global") ; err != nil {
- return nil, err
- }
- if tables.Global, err = NewGameGlobal(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_plot") ; err != nil {
- return nil, err
- }
- if tables.Plot, err = NewGamePlot(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_extservers") ; err != nil {
- return nil, err
- }
- if tables.Extservers, err = NewGameExtservers(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_skillatk") ; err != nil {
- return nil, err
- }
- if tables.SkillAtk, err = NewGameSkillAtk(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_skillafteratk") ; err != nil {
- return nil, err
- }
- if tables.SkillAfteratk, err = NewGameSkillAfteratk(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_skillbuff") ; err != nil {
- return nil, err
- }
- if tables.SkillBuff, err = NewGameSkillBuff(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_skillpassive") ; err != nil {
- return nil, err
- }
- if tables.SkillPassive, err = NewGameSkillPassive(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_hero") ; err != nil {
- return nil, err
- }
- if tables.Hero, err = NewGameHero(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_herostargrow") ; err != nil {
- return nil, err
- }
- if tables.HeroStargrow, err = NewGameHeroStargrow(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_herolevelgrow") ; err != nil {
- return nil, err
- }
- if tables.HeroLevelgrow, err = NewGameHeroLevelgrow(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_herostarup") ; err != nil {
- return nil, err
- }
- if tables.HeroStarup, err = NewGameHeroStarup(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_herostarupsp") ; err != nil {
- return nil, err
- }
- if tables.HeroStarupSp, err = NewGameHeroStarupSp(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_heroexp") ; err != nil {
- return nil, err
- }
- if tables.HeroExp, err = NewGameHeroExp(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_herolevelup") ; err != nil {
- return nil, err
- }
- if tables.HeroLevelup, err = NewGameHeroLevelup(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_equip") ; err != nil {
- return nil, err
- }
- if tables.Equip, err = NewGameEquip(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_equipattrlibrary") ; err != nil {
- return nil, err
- }
- if tables.EquipAttrlibrary, err = NewGameEquipAttrlibrary(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_equipsuit") ; err != nil {
- return nil, err
- }
- if tables.EquipSuit, err = NewGameEquipSuit(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_equipcolor") ; err != nil {
- return nil, err
- }
- if tables.EquipColor, err = NewGameEquipColor(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_equipintensify") ; err != nil {
- return nil, err
- }
- if tables.EquipIntensify, err = NewGameEquipIntensify(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_item") ; err != nil {
- return nil, err
- }
- if tables.Item, err = NewGameItem(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_heroskilllevel") ; err != nil {
- return nil, err
- }
- if tables.HeroSkillLevel, err = NewGameHeroSkillLevel(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_heroresonance") ; err != nil {
- return nil, err
- }
- if tables.HeroResonance, err = NewGameHeroResonance(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_comatn") ; err != nil {
- return nil, err
- }
- if tables.ComAtn, err = NewGameComAtn(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_heroawaken") ; err != nil {
- return nil, err
- }
- if tables.HeroAwaken, err = NewGameHeroAwaken(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_heromethod") ; err != nil {
- return nil, err
- }
- if tables.HeroMethod, err = NewGameHeroMethod(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_shop") ; err != nil {
- return nil, err
- }
- if tables.Shop, err = NewGameShop(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_shopitem") ; err != nil {
- return nil, err
- }
- if tables.Shopitem, err = NewGameShopitem(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_activereward") ; err != nil {
- return nil, err
- }
- if tables.ActiveReward, err = NewGameActiveReward(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_model") ; err != nil {
- return nil, err
- }
- if tables.Model, err = NewGameModel(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_mainlinechapter") ; err != nil {
- return nil, err
- }
- if tables.MainlineChapter, err = NewGameMainlineChapter(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_mainline") ; err != nil {
- return nil, err
- }
- if tables.Mainline, err = NewGameMainline(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_rdmainlinechapter") ; err != nil {
- return nil, err
- }
- if tables.RDMainlineChapter, err = NewGameRDMainlineChapter(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_rdmainline") ; err != nil {
- return nil, err
- }
- if tables.RDMainline, err = NewGameRDMainline(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_drawcard") ; err != nil {
- return nil, err
- }
- if tables.DrawCard, err = NewGameDrawCard(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_chatchannel") ; err != nil {
- return nil, err
- }
- if tables.ChatChannel, err = NewGameChatChannel(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_chatsystem") ; err != nil {
- return nil, err
- }
- if tables.ChatSystem, err = NewGameChatSystem(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_chatservergroup") ; err != nil {
- return nil, err
- }
- if tables.ChatServerGroup, err = NewGameChatServerGroup(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_chatchannelcom") ; err != nil {
- return nil, err
- }
- if tables.ChatChannelCom, err = NewGameChatChannelCom(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_chatexpression") ; err != nil {
- return nil, err
- }
- if tables.ChatExpression, err = NewGameChatExpression(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_taskround") ; err != nil {
- return nil, err
- }
- if tables.TaskRound, err = NewGameTaskRound(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_taskactivereward") ; err != nil {
- return nil, err
- }
- if tables.TaskActiveReward, err = NewGameTaskActiveReward(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_coin") ; err != nil {
- return nil, err
- }
- if tables.Coin, err = NewGameCoin(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_initial") ; err != nil {
- return nil, err
- }
- if tables.Initial, err = NewGameInitial(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_monster") ; err != nil {
- return nil, err
- }
- if tables.Monster, err = NewGameMonster(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_equippos") ; err != nil {
- return nil, err
- }
- if tables.EquipPos, err = NewGameEquipPos(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_playerlv") ; err != nil {
- return nil, err
- }
- if tables.Playerlv, err = NewGamePlayerlv(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_propsgroup") ; err != nil {
- return nil, err
- }
- if tables.Propsgroup, err = NewGamePropsgroup(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_facemod") ; err != nil {
- return nil, err
- }
- if tables.Facemod, err = NewGameFacemod(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_msgdistrib") ; err != nil {
- return nil, err
- }
- if tables.Msgdistrib, err = NewGameMsgdistrib(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_opencond") ; err != nil {
- return nil, err
- }
- if tables.Opencond, err = NewGameOpencond(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_stroy") ; err != nil {
- return nil, err
- }
- if tables.Stroy, err = NewGameStroy(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_pagoda") ; err != nil {
- return nil, err
- }
- if tables.Pagoda, err = NewGamePagoda(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_seasonloop") ; err != nil {
- return nil, err
- }
- if tables.SeasonLoop, err = NewGameSeasonLoop(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_pagodataskreward") ; err != nil {
- return nil, err
- }
- if tables.PagodaTaskReward, err = NewGamePagodaTaskReward(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_pagodaseasonreward") ; err != nil {
- return nil, err
- }
- if tables.PagodaSeasonReward, err = NewGamePagodaSeasonReward(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_rdtask") ; err != nil {
- return nil, err
- }
- if tables.Rdtask, err = NewGameRdtask(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_rdtaskcondi") ; err != nil {
- return nil, err
- }
- if tables.RdtaskCondi, err = NewGameRdtaskCondi(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_rdtaskchoose") ; err != nil {
- return nil, err
- }
- if tables.RdtaskChoose, err = NewGameRdtaskChoose(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_rdtaskside") ; err != nil {
- return nil, err
- }
- if tables.RdtaskSide, err = NewGameRdtaskSide(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_rdtaskbattle") ; err != nil {
- return nil, err
- }
- if tables.RdtaskBattle, err = NewGameRdtaskBattle(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_kungfuunlock") ; err != nil {
- return nil, err
- }
- if tables.KungfuUnlock, err = NewGameKungfuUnlock(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_kungfumasterworker") ; err != nil {
- return nil, err
- }
- if tables.KungfuMasterworker, err = NewGameKungfuMasterworker(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_gourmet") ; err != nil {
- return nil, err
- }
- if tables.Gourmet, err = NewGameGourmet(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_drop") ; err != nil {
- return nil, err
- }
- if tables.Drop, err = NewGameDrop(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_smithy") ; err != nil {
- return nil, err
- }
- if tables.Smithy, err = NewGameSmithy(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_smithystove") ; err != nil {
- return nil, err
- }
- if tables.SmithyStove, err = NewGameSmithyStove(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_smithytext") ; err != nil {
- return nil, err
- }
- if tables.SmithyText, err = NewGameSmithyText(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_vikingboss") ; err != nil {
- return nil, err
- }
- if tables.VikingBoss, err = NewGameVikingBoss(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_vikingchallenge") ; err != nil {
- return nil, err
- }
- if tables.VikingChallenge, err = NewGameVikingChallenge(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_dreamlandboos") ; err != nil {
- return nil, err
- }
- if tables.DreamlandBoos, err = NewGameDreamlandBoos(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_dreamlandchallenge") ; err != nil {
- return nil, err
- }
- if tables.DreamlandChallenge, err = NewGameDreamlandChallenge(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_dreamlandtrigger") ; err != nil {
- return nil, err
- }
- if tables.DreamlandTrigger, err = NewGameDreamlandTrigger(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_huntingboss") ; err != nil {
- return nil, err
- }
- if tables.HuntingBoss, err = NewGameHuntingBoss(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_huntingchallenge") ; err != nil {
- return nil, err
- }
- if tables.HuntingChallenge, err = NewGameHuntingChallenge(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_huntingopentime") ; err != nil {
- return nil, err
- }
- if tables.HuntingOpenTime, err = NewGameHuntingOpenTime(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_huntinglineup") ; err != nil {
- return nil, err
- }
- if tables.HuntingLineup, err = NewGameHuntingLineup(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_monsterformat") ; err != nil {
- return nil, err
- }
- if tables.MonsterFormat, err = NewGameMonsterFormat(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_link") ; err != nil {
- return nil, err
- }
- if tables.Link, err = NewGameLink(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_getresource") ; err != nil {
- return nil, err
- }
- if tables.GetResource, err = NewGameGetResource(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_affix") ; err != nil {
- return nil, err
- }
- if tables.Affix, err = NewGameAffix(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_vikingbossskill") ; err != nil {
- return nil, err
- }
- if tables.VikingBossSkill, err = NewGameVikingBossSkill(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_libraryfetter") ; err != nil {
- return nil, err
- }
- if tables.LibraryFetter, err = NewGameLibraryFetter(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_librarystory") ; err != nil {
- return nil, err
- }
- if tables.LibraryStory, err = NewGameLibraryStory(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_favornum") ; err != nil {
- return nil, err
- }
- if tables.FavorNum, err = NewGameFavorNum(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_libraryhero") ; err != nil {
- return nil, err
- }
- if tables.LibraryHero, err = NewGameLibraryHero(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_libraryhistory") ; err != nil {
- return nil, err
- }
- if tables.LibraryHistory, err = NewGameLibraryHistory(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_libraryfavor") ; err != nil {
- return nil, err
- }
- if tables.LibraryFavor, err = NewGameLibraryFavor(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_libraryfavorlv") ; err != nil {
- return nil, err
- }
- if tables.LibraryFavorlv, err = NewGameLibraryFavorlv(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_libraryplayback") ; err != nil {
- return nil, err
- }
- if tables.LibraryPlayBack, err = NewGameLibraryPlayBack(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_robot") ; err != nil {
- return nil, err
- }
- if tables.Robot, err = NewGameRobot(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_ip") ; err != nil {
- return nil, err
- }
- if tables.Ip, err = NewGameIp(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_gamecolor") ; err != nil {
- return nil, err
- }
- if tables.GameColor, err = NewGameGameColor(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_namelibrary") ; err != nil {
- return nil, err
- }
- if tables.NameLibrary, err = NewGameNameLibrary(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_heroconvertdata") ; err != nil {
- return nil, err
- }
- if tables.HeroConvertdata, err = NewGameHeroConvertdata(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_subplottimeline") ; err != nil {
- return nil, err
- }
- if tables.SubplotTimeLine, err = NewGameSubplotTimeLine(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_subplottaskline") ; err != nil {
- return nil, err
- }
- if tables.SubplotTaskLine, err = NewGameSubplotTaskLine(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_subplotmaintask") ; err != nil {
- return nil, err
- }
- if tables.SubplotMainTask, err = NewGameSubplotMainTask(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_subplotsubtask") ; err != nil {
- return nil, err
- }
- if tables.SubplotSubTask, err = NewGameSubplotSubTask(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_captaintext") ; err != nil {
- return nil, err
- }
- if tables.Captaintext, err = NewGameCaptaintext(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_herofusion") ; err != nil {
- return nil, err
- }
- if tables.Herofusion, err = NewGameHerofusion(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("game_playerinfor") ; err != nil {
- return nil, err
- }
- if tables.PlayerInfor, err = NewGamePlayerInfor(buf) ; err != nil {
- return nil, err
- }
- return tables, nil
+ tables := &Tables{}
+ if buf, err = loader("game_global"); err != nil {
+ return nil, err
+ }
+ if tables.Global, err = NewGameGlobal(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_plot"); err != nil {
+ return nil, err
+ }
+ if tables.Plot, err = NewGamePlot(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_extservers"); err != nil {
+ return nil, err
+ }
+ if tables.Extservers, err = NewGameExtservers(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_skillatk"); err != nil {
+ return nil, err
+ }
+ if tables.SkillAtk, err = NewGameSkillAtk(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_skillafteratk"); err != nil {
+ return nil, err
+ }
+ if tables.SkillAfteratk, err = NewGameSkillAfteratk(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_skillbuff"); err != nil {
+ return nil, err
+ }
+ if tables.SkillBuff, err = NewGameSkillBuff(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_skillpassive"); err != nil {
+ return nil, err
+ }
+ if tables.SkillPassive, err = NewGameSkillPassive(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_hero"); err != nil {
+ return nil, err
+ }
+ if tables.Hero, err = NewGameHero(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_herostargrow"); err != nil {
+ return nil, err
+ }
+ if tables.HeroStargrow, err = NewGameHeroStargrow(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_herolevelgrow"); err != nil {
+ return nil, err
+ }
+ if tables.HeroLevelgrow, err = NewGameHeroLevelgrow(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_herostarup"); err != nil {
+ return nil, err
+ }
+ if tables.HeroStarup, err = NewGameHeroStarup(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_herostarupsp"); err != nil {
+ return nil, err
+ }
+ if tables.HeroStarupSp, err = NewGameHeroStarupSp(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_heroexp"); err != nil {
+ return nil, err
+ }
+ if tables.HeroExp, err = NewGameHeroExp(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_herolevelup"); err != nil {
+ return nil, err
+ }
+ if tables.HeroLevelup, err = NewGameHeroLevelup(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_equip"); err != nil {
+ return nil, err
+ }
+ if tables.Equip, err = NewGameEquip(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_equipattrlibrary"); err != nil {
+ return nil, err
+ }
+ if tables.EquipAttrlibrary, err = NewGameEquipAttrlibrary(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_equipsuit"); err != nil {
+ return nil, err
+ }
+ if tables.EquipSuit, err = NewGameEquipSuit(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_equipcolor"); err != nil {
+ return nil, err
+ }
+ if tables.EquipColor, err = NewGameEquipColor(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_equipintensify"); err != nil {
+ return nil, err
+ }
+ if tables.EquipIntensify, err = NewGameEquipIntensify(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_item"); err != nil {
+ return nil, err
+ }
+ if tables.Item, err = NewGameItem(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_heroskilllevel"); err != nil {
+ return nil, err
+ }
+ if tables.HeroSkillLevel, err = NewGameHeroSkillLevel(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_heroresonance"); err != nil {
+ return nil, err
+ }
+ if tables.HeroResonance, err = NewGameHeroResonance(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_comatn"); err != nil {
+ return nil, err
+ }
+ if tables.ComAtn, err = NewGameComAtn(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_heroawaken"); err != nil {
+ return nil, err
+ }
+ if tables.HeroAwaken, err = NewGameHeroAwaken(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_heromethod"); err != nil {
+ return nil, err
+ }
+ if tables.HeroMethod, err = NewGameHeroMethod(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_shop"); err != nil {
+ return nil, err
+ }
+ if tables.Shop, err = NewGameShop(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_shopitem"); err != nil {
+ return nil, err
+ }
+ if tables.Shopitem, err = NewGameShopitem(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_activereward"); err != nil {
+ return nil, err
+ }
+ if tables.ActiveReward, err = NewGameActiveReward(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_model"); err != nil {
+ return nil, err
+ }
+ if tables.Model, err = NewGameModel(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_mainlinechapter"); err != nil {
+ return nil, err
+ }
+ if tables.MainlineChapter, err = NewGameMainlineChapter(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_mainline"); err != nil {
+ return nil, err
+ }
+ if tables.Mainline, err = NewGameMainline(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_rdmainlinechapter"); err != nil {
+ return nil, err
+ }
+ if tables.RDMainlineChapter, err = NewGameRDMainlineChapter(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_rdmainline"); err != nil {
+ return nil, err
+ }
+ if tables.RDMainline, err = NewGameRDMainline(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_drawcard"); err != nil {
+ return nil, err
+ }
+ if tables.DrawCard, err = NewGameDrawCard(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_chatchannel"); err != nil {
+ return nil, err
+ }
+ if tables.ChatChannel, err = NewGameChatChannel(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_chatsystem"); err != nil {
+ return nil, err
+ }
+ if tables.ChatSystem, err = NewGameChatSystem(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_chatservergroup"); err != nil {
+ return nil, err
+ }
+ if tables.ChatServerGroup, err = NewGameChatServerGroup(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_chatchannelcom"); err != nil {
+ return nil, err
+ }
+ if tables.ChatChannelCom, err = NewGameChatChannelCom(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_chatexpression"); err != nil {
+ return nil, err
+ }
+ if tables.ChatExpression, err = NewGameChatExpression(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_taskround"); err != nil {
+ return nil, err
+ }
+ if tables.TaskRound, err = NewGameTaskRound(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_taskactivereward"); err != nil {
+ return nil, err
+ }
+ if tables.TaskActiveReward, err = NewGameTaskActiveReward(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_coin"); err != nil {
+ return nil, err
+ }
+ if tables.Coin, err = NewGameCoin(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_initial"); err != nil {
+ return nil, err
+ }
+ if tables.Initial, err = NewGameInitial(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_monster"); err != nil {
+ return nil, err
+ }
+ if tables.Monster, err = NewGameMonster(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_equippos"); err != nil {
+ return nil, err
+ }
+ if tables.EquipPos, err = NewGameEquipPos(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_playerlv"); err != nil {
+ return nil, err
+ }
+ if tables.Playerlv, err = NewGamePlayerlv(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_propsgroup"); err != nil {
+ return nil, err
+ }
+ if tables.Propsgroup, err = NewGamePropsgroup(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_facemod"); err != nil {
+ return nil, err
+ }
+ if tables.Facemod, err = NewGameFacemod(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_msgdistrib"); err != nil {
+ return nil, err
+ }
+ if tables.Msgdistrib, err = NewGameMsgdistrib(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_opencond"); err != nil {
+ return nil, err
+ }
+ if tables.Opencond, err = NewGameOpencond(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_stroy"); err != nil {
+ return nil, err
+ }
+ if tables.Stroy, err = NewGameStroy(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_pagoda"); err != nil {
+ return nil, err
+ }
+ if tables.Pagoda, err = NewGamePagoda(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_seasonloop"); err != nil {
+ return nil, err
+ }
+ if tables.SeasonLoop, err = NewGameSeasonLoop(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_pagodataskreward"); err != nil {
+ return nil, err
+ }
+ if tables.PagodaTaskReward, err = NewGamePagodaTaskReward(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_pagodaseasonreward"); err != nil {
+ return nil, err
+ }
+ if tables.PagodaSeasonReward, err = NewGamePagodaSeasonReward(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_rdtask"); err != nil {
+ return nil, err
+ }
+ if tables.Rdtask, err = NewGameRdtask(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_rdtaskcondi"); err != nil {
+ return nil, err
+ }
+ if tables.RdtaskCondi, err = NewGameRdtaskCondi(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_rdtaskchoose"); err != nil {
+ return nil, err
+ }
+ if tables.RdtaskChoose, err = NewGameRdtaskChoose(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_rdtaskside"); err != nil {
+ return nil, err
+ }
+ if tables.RdtaskSide, err = NewGameRdtaskSide(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_rdtaskbattle"); err != nil {
+ return nil, err
+ }
+ if tables.RdtaskBattle, err = NewGameRdtaskBattle(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_kungfuunlock"); err != nil {
+ return nil, err
+ }
+ if tables.KungfuUnlock, err = NewGameKungfuUnlock(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_kungfumasterworker"); err != nil {
+ return nil, err
+ }
+ if tables.KungfuMasterworker, err = NewGameKungfuMasterworker(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_gourmet"); err != nil {
+ return nil, err
+ }
+ if tables.Gourmet, err = NewGameGourmet(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_drop"); err != nil {
+ return nil, err
+ }
+ if tables.Drop, err = NewGameDrop(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_smithy"); err != nil {
+ return nil, err
+ }
+ if tables.Smithy, err = NewGameSmithy(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_smithystove"); err != nil {
+ return nil, err
+ }
+ if tables.SmithyStove, err = NewGameSmithyStove(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_smithytext"); err != nil {
+ return nil, err
+ }
+ if tables.SmithyText, err = NewGameSmithyText(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_vikingboss"); err != nil {
+ return nil, err
+ }
+ if tables.VikingBoss, err = NewGameVikingBoss(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_vikingchallenge"); err != nil {
+ return nil, err
+ }
+ if tables.VikingChallenge, err = NewGameVikingChallenge(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_dreamlandboos"); err != nil {
+ return nil, err
+ }
+ if tables.DreamlandBoos, err = NewGameDreamlandBoos(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_dreamlandchallenge"); err != nil {
+ return nil, err
+ }
+ if tables.DreamlandChallenge, err = NewGameDreamlandChallenge(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_dreamlandtrigger"); err != nil {
+ return nil, err
+ }
+ if tables.DreamlandTrigger, err = NewGameDreamlandTrigger(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_huntingboss"); err != nil {
+ return nil, err
+ }
+ if tables.HuntingBoss, err = NewGameHuntingBoss(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_huntingchallenge"); err != nil {
+ return nil, err
+ }
+ if tables.HuntingChallenge, err = NewGameHuntingChallenge(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_huntingopentime"); err != nil {
+ return nil, err
+ }
+ if tables.HuntingOpenTime, err = NewGameHuntingOpenTime(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_huntinglineup"); err != nil {
+ return nil, err
+ }
+ if tables.HuntingLineup, err = NewGameHuntingLineup(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_monsterformat"); err != nil {
+ return nil, err
+ }
+ if tables.MonsterFormat, err = NewGameMonsterFormat(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_link"); err != nil {
+ return nil, err
+ }
+ if tables.Link, err = NewGameLink(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_getresource"); err != nil {
+ return nil, err
+ }
+ if tables.GetResource, err = NewGameGetResource(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_affix"); err != nil {
+ return nil, err
+ }
+ if tables.Affix, err = NewGameAffix(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_vikingbossskill"); err != nil {
+ return nil, err
+ }
+ if tables.VikingBossSkill, err = NewGameVikingBossSkill(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_libraryfetter"); err != nil {
+ return nil, err
+ }
+ if tables.LibraryFetter, err = NewGameLibraryFetter(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_librarystory"); err != nil {
+ return nil, err
+ }
+ if tables.LibraryStory, err = NewGameLibraryStory(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_favornum"); err != nil {
+ return nil, err
+ }
+ if tables.FavorNum, err = NewGameFavorNum(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_libraryhero"); err != nil {
+ return nil, err
+ }
+ if tables.LibraryHero, err = NewGameLibraryHero(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_libraryhistory"); err != nil {
+ return nil, err
+ }
+ if tables.LibraryHistory, err = NewGameLibraryHistory(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_libraryfavor"); err != nil {
+ return nil, err
+ }
+ if tables.LibraryFavor, err = NewGameLibraryFavor(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_libraryfavorlv"); err != nil {
+ return nil, err
+ }
+ if tables.LibraryFavorlv, err = NewGameLibraryFavorlv(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_libraryplayback"); err != nil {
+ return nil, err
+ }
+ if tables.LibraryPlayBack, err = NewGameLibraryPlayBack(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_robot"); err != nil {
+ return nil, err
+ }
+ if tables.Robot, err = NewGameRobot(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_ip"); err != nil {
+ return nil, err
+ }
+ if tables.Ip, err = NewGameIp(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_gamecolor"); err != nil {
+ return nil, err
+ }
+ if tables.GameColor, err = NewGameGameColor(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_namelibrary"); err != nil {
+ return nil, err
+ }
+ if tables.NameLibrary, err = NewGameNameLibrary(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_heroconvertdata"); err != nil {
+ return nil, err
+ }
+ if tables.HeroConvertdata, err = NewGameHeroConvertdata(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_subplottimeline"); err != nil {
+ return nil, err
+ }
+ if tables.SubplotTimeLine, err = NewGameSubplotTimeLine(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_subplottaskline"); err != nil {
+ return nil, err
+ }
+ if tables.SubplotTaskLine, err = NewGameSubplotTaskLine(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_subplotmaintask"); err != nil {
+ return nil, err
+ }
+ if tables.SubplotMainTask, err = NewGameSubplotMainTask(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_subplotsubtask"); err != nil {
+ return nil, err
+ }
+ if tables.SubplotSubTask, err = NewGameSubplotSubTask(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_captaintext"); err != nil {
+ return nil, err
+ }
+ if tables.Captaintext, err = NewGameCaptaintext(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_herofusion"); err != nil {
+ return nil, err
+ }
+ if tables.Herofusion, err = NewGameHerofusion(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_playerinfor"); err != nil {
+ return nil, err
+ }
+ if tables.PlayerInfor, err = NewGamePlayerInfor(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_herotalent"); err != nil {
+ return nil, err
+ }
+ if tables.HeroTalent, err = NewGameHeroTalent(buf); err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_talentskill"); err != nil {
+ return nil, err
+ }
+ if tables.TalentSkill, err = NewGameTalentSkill(buf); err != nil {
+ return nil, err
+ }
+ return tables, nil
}