diff --git a/bin/json/game_dispatch_all.json b/bin/json/game_dispatch_all.json
new file mode 100644
index 000000000..9ada55054
--- /dev/null
+++ b/bin/json/game_dispatch_all.json
@@ -0,0 +1,34 @@
+[
+ {
+ "id": 101,
+ "quantity": 1
+ },
+ {
+ "id": 102,
+ "quantity": 12
+ },
+ {
+ "id": 103,
+ "quantity": 1000
+ },
+ {
+ "id": 104,
+ "quantity": 6
+ },
+ {
+ "id": 105,
+ "quantity": 6
+ },
+ {
+ "id": 106,
+ "quantity": 10012
+ },
+ {
+ "id": 107,
+ "quantity": 20
+ },
+ {
+ "id": 108,
+ "quantity": 2
+ }
+]
\ No newline at end of file
diff --git a/bin/json/game_dispatch_battle.json b/bin/json/game_dispatch_battle.json
new file mode 100644
index 000000000..509051afb
--- /dev/null
+++ b/bin/json/game_dispatch_battle.json
@@ -0,0 +1,42 @@
+[
+ {
+ "id": 1,
+ "model": "34006",
+ "startstory": 3007,
+ "rejectstory": 3001,
+ "endstory": 3002,
+ "battlename": {
+ "key": "story_80",
+ "text": "踢馆1号"
+ },
+ "battletxt": {
+ "key": "story_80",
+ "text": "踢馆1号的文本"
+ },
+ "FormatList": [
+ 700011
+ ],
+ "BattleReadyID": 100,
+ "EventList": [],
+ "award": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2640
+ },
+ {
+ "a": "item",
+ "t": "30001",
+ "n": 1
+ }
+ ],
+ "onlookers": [
+ "45003",
+ "25001"
+ ],
+ "onlookersstory": [
+ 30001,
+ 30001
+ ]
+ }
+]
\ No newline at end of file
diff --git a/bin/json/game_dispatch_lv.json b/bin/json/game_dispatch_lv.json
new file mode 100644
index 000000000..d59dbea84
--- /dev/null
+++ b/bin/json/game_dispatch_lv.json
@@ -0,0 +1,52 @@
+[
+ {
+ "lv": 1,
+ "probability": [
+ 100,
+ 0,
+ 0,
+ 0
+ ],
+ "Upgrade": 0
+ },
+ {
+ "lv": 2,
+ "probability": [
+ 80,
+ 20,
+ 0,
+ 0
+ ],
+ "Upgrade": 1
+ },
+ {
+ "lv": 3,
+ "probability": [
+ 70,
+ 20,
+ 10,
+ 0
+ ],
+ "Upgrade": 2
+ },
+ {
+ "lv": 4,
+ "probability": [
+ 50,
+ 30,
+ 15,
+ 5
+ ],
+ "Upgrade": 3
+ },
+ {
+ "lv": 5,
+ "probability": [
+ 45,
+ 25,
+ 20,
+ 10
+ ],
+ "Upgrade": 4
+ }
+]
\ No newline at end of file
diff --git a/bin/json/game_dispatch_reward.json b/bin/json/game_dispatch_reward.json
new file mode 100644
index 000000000..03865c91c
--- /dev/null
+++ b/bin/json/game_dispatch_reward.json
@@ -0,0 +1,28 @@
+[
+ {
+ "id": 1,
+ "num": [
+ 1,
+ 2,
+ 3
+ ],
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 999
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 9999
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 99999
+ }
+ ],
+ "day": 7
+ }
+]
\ No newline at end of file
diff --git a/bin/json/game_dispatch_task.json b/bin/json/game_dispatch_task.json
new file mode 100644
index 000000000..9aea54395
--- /dev/null
+++ b/bin/json/game_dispatch_task.json
@@ -0,0 +1,853 @@
+[
+ {
+ "id": 1,
+ "type": 0,
+ "taskname": {
+ "key": "story_80",
+ "text": "特殊任务1"
+ },
+ "taskcd": 168,
+ "tasktime": 2,
+ "tasktxt": {
+ "key": "story_80",
+ "text": "普通任务文本1"
+ },
+ "taskneed": 2,
+ "taskreq": [
+ "lv",
+ "1"
+ ],
+ "taskreqex": [
+ "star",
+ "5"
+ ],
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 10000
+ }
+ ],
+ "rewardex": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 20000
+ }
+ ]
+ },
+ {
+ "id": 2,
+ "type": 1,
+ "taskname": {
+ "key": "story_80",
+ "text": "普通任务1"
+ },
+ "taskcd": 168,
+ "tasktime": 2,
+ "tasktxt": {
+ "key": "story_80",
+ "text": "普通任务文本1"
+ },
+ "taskneed": 2,
+ "taskreq": [
+ "lv",
+ "1"
+ ],
+ "taskreqex": [
+ "star",
+ "5"
+ ],
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 10000
+ }
+ ],
+ "rewardex": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 20000
+ }
+ ]
+ },
+ {
+ "id": 3,
+ "type": 1,
+ "taskname": {
+ "key": "story_80",
+ "text": "普通任务2"
+ },
+ "taskcd": 168,
+ "tasktime": 2,
+ "tasktxt": {
+ "key": "story_80",
+ "text": "普通任务文本2"
+ },
+ "taskneed": 2,
+ "taskreq": [
+ "lv",
+ "1"
+ ],
+ "taskreqex": [
+ "star",
+ "5"
+ ],
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 10000
+ }
+ ],
+ "rewardex": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 20000
+ }
+ ]
+ },
+ {
+ "id": 4,
+ "type": 1,
+ "taskname": {
+ "key": "story_80",
+ "text": "普通任务3"
+ },
+ "taskcd": 168,
+ "tasktime": 2,
+ "tasktxt": {
+ "key": "story_80",
+ "text": "普通任务文本3"
+ },
+ "taskneed": 2,
+ "taskreq": [
+ "lv",
+ "1"
+ ],
+ "taskreqex": [
+ "star",
+ "5"
+ ],
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 10000
+ }
+ ],
+ "rewardex": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 20000
+ }
+ ]
+ },
+ {
+ "id": 5,
+ "type": 1,
+ "taskname": {
+ "key": "story_80",
+ "text": "普通任务4"
+ },
+ "taskcd": 168,
+ "tasktime": 2,
+ "tasktxt": {
+ "key": "story_80",
+ "text": "普通任务文本4"
+ },
+ "taskneed": 2,
+ "taskreq": [
+ "lv",
+ "1"
+ ],
+ "taskreqex": [
+ "star",
+ "5"
+ ],
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 10000
+ }
+ ],
+ "rewardex": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 20000
+ }
+ ]
+ },
+ {
+ "id": 6,
+ "type": 1,
+ "taskname": {
+ "key": "story_80",
+ "text": "普通任务5"
+ },
+ "taskcd": 168,
+ "tasktime": 2,
+ "tasktxt": {
+ "key": "story_80",
+ "text": "普通任务文本5"
+ },
+ "taskneed": 2,
+ "taskreq": [
+ "lv",
+ "1"
+ ],
+ "taskreqex": [
+ "star",
+ "5"
+ ],
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 10000
+ }
+ ],
+ "rewardex": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 20000
+ }
+ ]
+ },
+ {
+ "id": 7,
+ "type": 1,
+ "taskname": {
+ "key": "story_80",
+ "text": "普通任务6"
+ },
+ "taskcd": 168,
+ "tasktime": 2,
+ "tasktxt": {
+ "key": "story_80",
+ "text": "普通任务文本6"
+ },
+ "taskneed": 2,
+ "taskreq": [
+ "lv",
+ "1"
+ ],
+ "taskreqex": [
+ "star",
+ "5"
+ ],
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 10000
+ }
+ ],
+ "rewardex": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 20000
+ }
+ ]
+ },
+ {
+ "id": 8,
+ "type": 1,
+ "taskname": {
+ "key": "story_80",
+ "text": "普通任务7"
+ },
+ "taskcd": 168,
+ "tasktime": 2,
+ "tasktxt": {
+ "key": "story_80",
+ "text": "普通任务文本7"
+ },
+ "taskneed": 2,
+ "taskreq": [
+ "lv",
+ "1"
+ ],
+ "taskreqex": [
+ "star",
+ "5"
+ ],
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 10000
+ }
+ ],
+ "rewardex": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 20000
+ }
+ ]
+ },
+ {
+ "id": 9,
+ "type": 1,
+ "taskname": {
+ "key": "story_80",
+ "text": "普通任务8"
+ },
+ "taskcd": 168,
+ "tasktime": 2,
+ "tasktxt": {
+ "key": "story_80",
+ "text": "普通任务文本8"
+ },
+ "taskneed": 2,
+ "taskreq": [
+ "lv",
+ "1"
+ ],
+ "taskreqex": [
+ "star",
+ "5"
+ ],
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 20000
+ }
+ ],
+ "rewardex": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 40000
+ }
+ ]
+ },
+ {
+ "id": 10,
+ "type": 2,
+ "taskname": {
+ "key": "story_80",
+ "text": "稀有任务1"
+ },
+ "taskcd": 168,
+ "tasktime": 2,
+ "tasktxt": {
+ "key": "story_80",
+ "text": "稀有任务文本1"
+ },
+ "taskneed": 2,
+ "taskreq": [
+ "lv",
+ "1"
+ ],
+ "taskreqex": [
+ "star",
+ "5"
+ ],
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 20000
+ }
+ ],
+ "rewardex": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 40000
+ }
+ ]
+ },
+ {
+ "id": 11,
+ "type": 2,
+ "taskname": {
+ "key": "story_80",
+ "text": "稀有任务2"
+ },
+ "taskcd": 168,
+ "tasktime": 2,
+ "tasktxt": {
+ "key": "story_80",
+ "text": "稀有任务文本2"
+ },
+ "taskneed": 2,
+ "taskreq": [
+ "lv",
+ "1"
+ ],
+ "taskreqex": [
+ "star",
+ "5"
+ ],
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 20000
+ }
+ ],
+ "rewardex": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 40000
+ }
+ ]
+ },
+ {
+ "id": 12,
+ "type": 2,
+ "taskname": {
+ "key": "story_80",
+ "text": "稀有任务3"
+ },
+ "taskcd": 168,
+ "tasktime": 2,
+ "tasktxt": {
+ "key": "story_80",
+ "text": "稀有任务文本3"
+ },
+ "taskneed": 2,
+ "taskreq": [
+ "lv",
+ "1"
+ ],
+ "taskreqex": [
+ "star",
+ "5"
+ ],
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 20000
+ }
+ ],
+ "rewardex": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 40000
+ }
+ ]
+ },
+ {
+ "id": 13,
+ "type": 2,
+ "taskname": {
+ "key": "story_80",
+ "text": "稀有任务4"
+ },
+ "taskcd": 168,
+ "tasktime": 2,
+ "tasktxt": {
+ "key": "story_80",
+ "text": "稀有任务文本4"
+ },
+ "taskneed": 2,
+ "taskreq": [
+ "lv",
+ "1"
+ ],
+ "taskreqex": [
+ "star",
+ "5"
+ ],
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 20000
+ }
+ ],
+ "rewardex": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 40000
+ }
+ ]
+ },
+ {
+ "id": 14,
+ "type": 2,
+ "taskname": {
+ "key": "story_80",
+ "text": "稀有任务5"
+ },
+ "taskcd": 168,
+ "tasktime": 2,
+ "tasktxt": {
+ "key": "story_80",
+ "text": "稀有任务文本5"
+ },
+ "taskneed": 2,
+ "taskreq": [
+ "lv",
+ "1"
+ ],
+ "taskreqex": [
+ "star",
+ "5"
+ ],
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 20000
+ }
+ ],
+ "rewardex": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 40000
+ }
+ ]
+ },
+ {
+ "id": 15,
+ "type": 3,
+ "taskname": {
+ "key": "story_80",
+ "text": "史诗任务1"
+ },
+ "taskcd": 168,
+ "tasktime": 2,
+ "tasktxt": {
+ "key": "story_80",
+ "text": "史诗任务文本1"
+ },
+ "taskneed": 2,
+ "taskreq": [
+ "lv",
+ "1"
+ ],
+ "taskreqex": [
+ "star",
+ "5"
+ ],
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 30000
+ }
+ ],
+ "rewardex": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 50000
+ }
+ ]
+ },
+ {
+ "id": 16,
+ "type": 3,
+ "taskname": {
+ "key": "story_80",
+ "text": "史诗任务2"
+ },
+ "taskcd": 168,
+ "tasktime": 2,
+ "tasktxt": {
+ "key": "story_80",
+ "text": "史诗任务文本2"
+ },
+ "taskneed": 2,
+ "taskreq": [
+ "lv",
+ "1"
+ ],
+ "taskreqex": [
+ "star",
+ "5"
+ ],
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 30000
+ }
+ ],
+ "rewardex": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 50000
+ }
+ ]
+ },
+ {
+ "id": 17,
+ "type": 3,
+ "taskname": {
+ "key": "story_80",
+ "text": "史诗任务3"
+ },
+ "taskcd": 168,
+ "tasktime": 2,
+ "tasktxt": {
+ "key": "story_80",
+ "text": "史诗任务文本3"
+ },
+ "taskneed": 2,
+ "taskreq": [
+ "lv",
+ "1"
+ ],
+ "taskreqex": [
+ "star",
+ "5"
+ ],
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 30000
+ }
+ ],
+ "rewardex": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 50000
+ }
+ ]
+ },
+ {
+ "id": 18,
+ "type": 3,
+ "taskname": {
+ "key": "story_80",
+ "text": "史诗任务4"
+ },
+ "taskcd": 168,
+ "tasktime": 2,
+ "tasktxt": {
+ "key": "story_80",
+ "text": "史诗任务文本4"
+ },
+ "taskneed": 2,
+ "taskreq": [
+ "lv",
+ "1"
+ ],
+ "taskreqex": [
+ "star",
+ "5"
+ ],
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 30000
+ }
+ ],
+ "rewardex": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 50000
+ }
+ ]
+ },
+ {
+ "id": 19,
+ "type": 3,
+ "taskname": {
+ "key": "story_80",
+ "text": "史诗任务5"
+ },
+ "taskcd": 168,
+ "tasktime": 2,
+ "tasktxt": {
+ "key": "story_80",
+ "text": "史诗任务文本5"
+ },
+ "taskneed": 2,
+ "taskreq": [
+ "lv",
+ "1"
+ ],
+ "taskreqex": [
+ "star",
+ "5"
+ ],
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 30000
+ }
+ ],
+ "rewardex": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 50000
+ }
+ ]
+ },
+ {
+ "id": 20,
+ "type": 3,
+ "taskname": {
+ "key": "story_80",
+ "text": "史诗任务6"
+ },
+ "taskcd": 168,
+ "tasktime": 2,
+ "tasktxt": {
+ "key": "story_80",
+ "text": "史诗任务文本6"
+ },
+ "taskneed": 2,
+ "taskreq": [
+ "lv",
+ "1"
+ ],
+ "taskreqex": [
+ "star",
+ "5"
+ ],
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 30000
+ }
+ ],
+ "rewardex": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 50000
+ }
+ ]
+ },
+ {
+ "id": 21,
+ "type": 4,
+ "taskname": {
+ "key": "story_80",
+ "text": "传说任务1"
+ },
+ "taskcd": 168,
+ "tasktime": 2,
+ "tasktxt": {
+ "key": "story_80",
+ "text": "传说任务文本1"
+ },
+ "taskneed": 2,
+ "taskreq": [
+ "lv",
+ "1"
+ ],
+ "taskreqex": [
+ "star",
+ "5"
+ ],
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 40000
+ }
+ ],
+ "rewardex": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 510000
+ }
+ ]
+ },
+ {
+ "id": 22,
+ "type": 4,
+ "taskname": {
+ "key": "story_80",
+ "text": "传说任务2"
+ },
+ "taskcd": 168,
+ "tasktime": 2,
+ "tasktxt": {
+ "key": "story_80",
+ "text": "传说任务文本2"
+ },
+ "taskneed": 2,
+ "taskreq": [
+ "lv",
+ "1"
+ ],
+ "taskreqex": [
+ "star",
+ "5"
+ ],
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 40000
+ }
+ ],
+ "rewardex": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 510000
+ }
+ ]
+ },
+ {
+ "id": 23,
+ "type": 4,
+ "taskname": {
+ "key": "story_80",
+ "text": "传说任务3"
+ },
+ "taskcd": 168,
+ "tasktime": 2,
+ "tasktxt": {
+ "key": "story_80",
+ "text": "传说任务文本3"
+ },
+ "taskneed": 2,
+ "taskreq": [
+ "lv",
+ "1"
+ ],
+ "taskreqex": [
+ "star",
+ "5"
+ ],
+ "reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 40000
+ }
+ ],
+ "rewardex": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 510000
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/sys/configure/structs/Game.Dispatch_All.go b/sys/configure/structs/Game.Dispatch_All.go
new file mode 100644
index 000000000..c09f6442c
--- /dev/null
+++ b/sys/configure/structs/Game.Dispatch_All.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 GameDispatch_All struct {
+ _dataMap map[int32]*GameDispatch_AllData
+ _dataList []*GameDispatch_AllData
+}
+
+func NewGameDispatch_All(_buf []map[string]interface{}) (*GameDispatch_All, error) {
+ _dataList := make([]*GameDispatch_AllData, 0, len(_buf))
+ dataMap := make(map[int32]*GameDispatch_AllData)
+ for _, _ele_ := range _buf {
+ if _v, err2 := DeserializeGameDispatch_AllData(_ele_); err2 != nil {
+ return nil, err2
+ } else {
+ _dataList = append(_dataList, _v)
+ dataMap[_v.Id] = _v
+ }
+ }
+ return &GameDispatch_All{_dataList:_dataList, _dataMap:dataMap}, nil
+}
+
+func (table *GameDispatch_All) GetDataMap() map[int32]*GameDispatch_AllData {
+ return table._dataMap
+}
+
+func (table *GameDispatch_All) GetDataList() []*GameDispatch_AllData {
+ return table._dataList
+}
+
+func (table *GameDispatch_All) Get(key int32) *GameDispatch_AllData {
+ return table._dataMap[key]
+}
+
+
diff --git a/sys/configure/structs/Game.Dispatch_AllData.go b/sys/configure/structs/Game.Dispatch_AllData.go
new file mode 100644
index 000000000..f7dc896c4
--- /dev/null
+++ b/sys/configure/structs/Game.Dispatch_AllData.go
@@ -0,0 +1,37 @@
+//------------------------------------------------------------------------------
+//
+// 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 GameDispatch_AllData struct {
+ Id int32
+ Quantity float32
+}
+
+const TypeId_GameDispatch_AllData = 1167514754
+
+func (*GameDispatch_AllData) GetTypeId() int32 {
+ return 1167514754
+}
+
+func (_v *GameDispatch_AllData)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 _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["quantity"].(float64); !_ok_ { err = errors.New("quantity error"); return }; _v.Quantity = float32(_tempNum_) }
+ return
+}
+
+func DeserializeGameDispatch_AllData(_buf map[string]interface{}) (*GameDispatch_AllData, error) {
+ v := &GameDispatch_AllData{}
+ if err := v.Deserialize(_buf); err == nil {
+ return v, nil
+ } else {
+ return nil, err
+ }
+}
diff --git a/sys/configure/structs/Game.Dispatch_Battle.go b/sys/configure/structs/Game.Dispatch_Battle.go
new file mode 100644
index 000000000..4bb6d86e5
--- /dev/null
+++ b/sys/configure/structs/Game.Dispatch_Battle.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 GameDispatch_Battle struct {
+ _dataMap map[int32]*GameDispatch_BattleData
+ _dataList []*GameDispatch_BattleData
+}
+
+func NewGameDispatch_Battle(_buf []map[string]interface{}) (*GameDispatch_Battle, error) {
+ _dataList := make([]*GameDispatch_BattleData, 0, len(_buf))
+ dataMap := make(map[int32]*GameDispatch_BattleData)
+ for _, _ele_ := range _buf {
+ if _v, err2 := DeserializeGameDispatch_BattleData(_ele_); err2 != nil {
+ return nil, err2
+ } else {
+ _dataList = append(_dataList, _v)
+ dataMap[_v.Id] = _v
+ }
+ }
+ return &GameDispatch_Battle{_dataList:_dataList, _dataMap:dataMap}, nil
+}
+
+func (table *GameDispatch_Battle) GetDataMap() map[int32]*GameDispatch_BattleData {
+ return table._dataMap
+}
+
+func (table *GameDispatch_Battle) GetDataList() []*GameDispatch_BattleData {
+ return table._dataList
+}
+
+func (table *GameDispatch_Battle) Get(key int32) *GameDispatch_BattleData {
+ return table._dataMap[key]
+}
+
+
diff --git a/sys/configure/structs/Game.Dispatch_BattleData.go b/sys/configure/structs/Game.Dispatch_BattleData.go
new file mode 100644
index 000000000..4f1dd0ffa
--- /dev/null
+++ b/sys/configure/structs/Game.Dispatch_BattleData.go
@@ -0,0 +1,124 @@
+//------------------------------------------------------------------------------
+//
+// 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 GameDispatch_BattleData struct {
+ Id int32
+ Model string
+ Startstory int32
+ Rejectstory int32
+ Endstory int32
+ Battlename string
+ Battletxt string
+ FormatList []int32
+ BattleReadyID int32
+ EventList []int32
+ Award []*Gameatn
+ Onlookers []string
+ Onlookersstory []int32
+}
+
+const TypeId_GameDispatch_BattleData = 5907851
+
+func (*GameDispatch_BattleData) GetTypeId() int32 {
+ return 5907851
+}
+
+func (_v *GameDispatch_BattleData)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 _ok_ bool; if _v.Model, _ok_ = _buf["model"].(string); !_ok_ { err = errors.New("model error"); return } }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["startstory"].(float64); !_ok_ { err = errors.New("startstory error"); return }; _v.Startstory = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["rejectstory"].(float64); !_ok_ { err = errors.New("rejectstory error"); return }; _v.Rejectstory = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["endstory"].(float64); !_ok_ { err = errors.New("endstory error"); return }; _v.Endstory = int32(_tempNum_) }
+ {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["battlename"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Battlename error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Battlename, _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["battletxt"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Battletxt error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Battletxt, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["FormatList"].([]interface{}); !_ok_ { err = errors.New("FormatList error"); return }
+
+ _v.FormatList = 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.FormatList = append(_v.FormatList, _list_v_)
+ }
+ }
+
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["BattleReadyID"].(float64); !_ok_ { err = errors.New("BattleReadyID error"); return }; _v.BattleReadyID = int32(_tempNum_) }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["EventList"].([]interface{}); !_ok_ { err = errors.New("EventList error"); return }
+
+ _v.EventList = 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.EventList = append(_v.EventList, _list_v_)
+ }
+ }
+
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["award"].([]interface{}); !_ok_ { err = errors.New("award error"); return }
+
+ _v.Award = 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.Award = append(_v.Award, _list_v_)
+ }
+ }
+
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["onlookers"].([]interface{}); !_ok_ { err = errors.New("onlookers error"); return }
+
+ _v.Onlookers = 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.Onlookers = append(_v.Onlookers, _list_v_)
+ }
+ }
+
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["onlookersstory"].([]interface{}); !_ok_ { err = errors.New("onlookersstory error"); return }
+
+ _v.Onlookersstory = 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.Onlookersstory = append(_v.Onlookersstory, _list_v_)
+ }
+ }
+
+ return
+}
+
+func DeserializeGameDispatch_BattleData(_buf map[string]interface{}) (*GameDispatch_BattleData, error) {
+ v := &GameDispatch_BattleData{}
+ if err := v.Deserialize(_buf); err == nil {
+ return v, nil
+ } else {
+ return nil, err
+ }
+}
diff --git a/sys/configure/structs/Game.Dispatch_Lv.go b/sys/configure/structs/Game.Dispatch_Lv.go
new file mode 100644
index 000000000..d483b6251
--- /dev/null
+++ b/sys/configure/structs/Game.Dispatch_Lv.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 GameDispatch_Lv struct {
+ _dataMap map[int32]*GameDispatch_LvData
+ _dataList []*GameDispatch_LvData
+}
+
+func NewGameDispatch_Lv(_buf []map[string]interface{}) (*GameDispatch_Lv, error) {
+ _dataList := make([]*GameDispatch_LvData, 0, len(_buf))
+ dataMap := make(map[int32]*GameDispatch_LvData)
+ for _, _ele_ := range _buf {
+ if _v, err2 := DeserializeGameDispatch_LvData(_ele_); err2 != nil {
+ return nil, err2
+ } else {
+ _dataList = append(_dataList, _v)
+ dataMap[_v.Lv] = _v
+ }
+ }
+ return &GameDispatch_Lv{_dataList:_dataList, _dataMap:dataMap}, nil
+}
+
+func (table *GameDispatch_Lv) GetDataMap() map[int32]*GameDispatch_LvData {
+ return table._dataMap
+}
+
+func (table *GameDispatch_Lv) GetDataList() []*GameDispatch_LvData {
+ return table._dataList
+}
+
+func (table *GameDispatch_Lv) Get(key int32) *GameDispatch_LvData {
+ return table._dataMap[key]
+}
+
+
diff --git a/sys/configure/structs/Game.Dispatch_LvData.go b/sys/configure/structs/Game.Dispatch_LvData.go
new file mode 100644
index 000000000..f09d821aa
--- /dev/null
+++ b/sys/configure/structs/Game.Dispatch_LvData.go
@@ -0,0 +1,52 @@
+//------------------------------------------------------------------------------
+//
+// 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 GameDispatch_LvData struct {
+ Lv int32
+ Probability []float32
+ Upgrade int32
+}
+
+const TypeId_GameDispatch_LvData = 222107101
+
+func (*GameDispatch_LvData) GetTypeId() int32 {
+ return 222107101
+}
+
+func (_v *GameDispatch_LvData)Deserialize(_buf map[string]interface{}) (err error) {
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["lv"].(float64); !_ok_ { err = errors.New("lv error"); return }; _v.Lv = int32(_tempNum_) }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["probability"].([]interface{}); !_ok_ { err = errors.New("probability error"); return }
+
+ _v.Probability = make([]float32, 0, len(_arr_))
+
+ for _, _e_ := range _arr_ {
+ var _list_v_ float32
+ { var _ok_ bool; var _x_ float64; if _x_, _ok_ = _e_.(float64); !_ok_ { err = errors.New("_list_v_ error"); return }; _list_v_ = float32(_x_) }
+ _v.Probability = append(_v.Probability, _list_v_)
+ }
+ }
+
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Upgrade"].(float64); !_ok_ { err = errors.New("Upgrade error"); return }; _v.Upgrade = int32(_tempNum_) }
+ return
+}
+
+func DeserializeGameDispatch_LvData(_buf map[string]interface{}) (*GameDispatch_LvData, error) {
+ v := &GameDispatch_LvData{}
+ if err := v.Deserialize(_buf); err == nil {
+ return v, nil
+ } else {
+ return nil, err
+ }
+}
diff --git a/sys/configure/structs/Game.Dispatch_Reward.go b/sys/configure/structs/Game.Dispatch_Reward.go
new file mode 100644
index 000000000..ff1ae14b5
--- /dev/null
+++ b/sys/configure/structs/Game.Dispatch_Reward.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 GameDispatch_Reward struct {
+ _dataMap map[int32]*GameDispatch_RewardData
+ _dataList []*GameDispatch_RewardData
+}
+
+func NewGameDispatch_Reward(_buf []map[string]interface{}) (*GameDispatch_Reward, error) {
+ _dataList := make([]*GameDispatch_RewardData, 0, len(_buf))
+ dataMap := make(map[int32]*GameDispatch_RewardData)
+ for _, _ele_ := range _buf {
+ if _v, err2 := DeserializeGameDispatch_RewardData(_ele_); err2 != nil {
+ return nil, err2
+ } else {
+ _dataList = append(_dataList, _v)
+ dataMap[_v.Id] = _v
+ }
+ }
+ return &GameDispatch_Reward{_dataList:_dataList, _dataMap:dataMap}, nil
+}
+
+func (table *GameDispatch_Reward) GetDataMap() map[int32]*GameDispatch_RewardData {
+ return table._dataMap
+}
+
+func (table *GameDispatch_Reward) GetDataList() []*GameDispatch_RewardData {
+ return table._dataList
+}
+
+func (table *GameDispatch_Reward) Get(key int32) *GameDispatch_RewardData {
+ return table._dataMap[key]
+}
+
+
diff --git a/sys/configure/structs/Game.Dispatch_RewardData.go b/sys/configure/structs/Game.Dispatch_RewardData.go
new file mode 100644
index 000000000..fa0809315
--- /dev/null
+++ b/sys/configure/structs/Game.Dispatch_RewardData.go
@@ -0,0 +1,67 @@
+//------------------------------------------------------------------------------
+//
+// 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 GameDispatch_RewardData struct {
+ Id int32
+ Num []int32
+ Reward []*Gameatn
+ Day int32
+}
+
+const TypeId_GameDispatch_RewardData = -356577150
+
+func (*GameDispatch_RewardData) GetTypeId() int32 {
+ return -356577150
+}
+
+func (_v *GameDispatch_RewardData)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["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
+ if _arr_, _ok_ = _buf["reward"].([]interface{}); !_ok_ { err = errors.New("reward error"); return }
+
+ _v.Reward = 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.Reward = append(_v.Reward, _list_v_)
+ }
+ }
+
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["day"].(float64); !_ok_ { err = errors.New("day error"); return }; _v.Day = int32(_tempNum_) }
+ return
+}
+
+func DeserializeGameDispatch_RewardData(_buf map[string]interface{}) (*GameDispatch_RewardData, error) {
+ v := &GameDispatch_RewardData{}
+ if err := v.Deserialize(_buf); err == nil {
+ return v, nil
+ } else {
+ return nil, err
+ }
+}
diff --git a/sys/configure/structs/Game.Dispatch_Task.go b/sys/configure/structs/Game.Dispatch_Task.go
new file mode 100644
index 000000000..136a6d34a
--- /dev/null
+++ b/sys/configure/structs/Game.Dispatch_Task.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 GameDispatch_Task struct {
+ _dataMap map[int32]*GameDispatch_TaskData
+ _dataList []*GameDispatch_TaskData
+}
+
+func NewGameDispatch_Task(_buf []map[string]interface{}) (*GameDispatch_Task, error) {
+ _dataList := make([]*GameDispatch_TaskData, 0, len(_buf))
+ dataMap := make(map[int32]*GameDispatch_TaskData)
+ for _, _ele_ := range _buf {
+ if _v, err2 := DeserializeGameDispatch_TaskData(_ele_); err2 != nil {
+ return nil, err2
+ } else {
+ _dataList = append(_dataList, _v)
+ dataMap[_v.Id] = _v
+ }
+ }
+ return &GameDispatch_Task{_dataList:_dataList, _dataMap:dataMap}, nil
+}
+
+func (table *GameDispatch_Task) GetDataMap() map[int32]*GameDispatch_TaskData {
+ return table._dataMap
+}
+
+func (table *GameDispatch_Task) GetDataList() []*GameDispatch_TaskData {
+ return table._dataList
+}
+
+func (table *GameDispatch_Task) Get(key int32) *GameDispatch_TaskData {
+ return table._dataMap[key]
+}
+
+
diff --git a/sys/configure/structs/Game.Dispatch_TaskData.go b/sys/configure/structs/Game.Dispatch_TaskData.go
new file mode 100644
index 000000000..92ef5e605
--- /dev/null
+++ b/sys/configure/structs/Game.Dispatch_TaskData.go
@@ -0,0 +1,107 @@
+//------------------------------------------------------------------------------
+//
+// 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 GameDispatch_TaskData struct {
+ Id int32
+ Type int32
+ Taskname string
+ Taskcd float32
+ Tasktime float32
+ Tasktxt string
+ Taskneed int32
+ Taskreq []string
+ Taskreqex []string
+ Reward []*Gameatn
+ Rewardex []*Gameatn
+}
+
+const TypeId_GameDispatch_TaskData = -350189032
+
+func (*GameDispatch_TaskData) GetTypeId() int32 {
+ return -350189032
+}
+
+func (_v *GameDispatch_TaskData)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 _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["type"].(float64); !_ok_ { err = errors.New("type error"); return }; _v.Type = int32(_tempNum_) }
+ {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["taskname"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Taskname error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Taskname, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["taskcd"].(float64); !_ok_ { err = errors.New("taskcd error"); return }; _v.Taskcd = float32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["tasktime"].(float64); !_ok_ { err = errors.New("tasktime error"); return }; _v.Tasktime = float32(_tempNum_) }
+ {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["tasktxt"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Tasktxt error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Tasktxt, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["taskneed"].(float64); !_ok_ { err = errors.New("taskneed error"); return }; _v.Taskneed = int32(_tempNum_) }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["taskreq"].([]interface{}); !_ok_ { err = errors.New("taskreq error"); return }
+
+ _v.Taskreq = 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.Taskreq = append(_v.Taskreq, _list_v_)
+ }
+ }
+
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["taskreqex"].([]interface{}); !_ok_ { err = errors.New("taskreqex error"); return }
+
+ _v.Taskreqex = 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.Taskreqex = append(_v.Taskreqex, _list_v_)
+ }
+ }
+
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["reward"].([]interface{}); !_ok_ { err = errors.New("reward error"); return }
+
+ _v.Reward = 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.Reward = append(_v.Reward, _list_v_)
+ }
+ }
+
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["rewardex"].([]interface{}); !_ok_ { err = errors.New("rewardex error"); return }
+
+ _v.Rewardex = 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.Rewardex = append(_v.Rewardex, _list_v_)
+ }
+ }
+
+ return
+}
+
+func DeserializeGameDispatch_TaskData(_buf map[string]interface{}) (*GameDispatch_TaskData, error) {
+ v := &GameDispatch_TaskData{}
+ if err := v.Deserialize(_buf); err == nil {
+ return v, nil
+ } else {
+ return nil, err
+ }
+}