diff --git a/bin/json/game_arenaactivereward.json b/bin/json/game_arenaactivereward.json
new file mode 100644
index 000000000..941fda619
--- /dev/null
+++ b/bin/json/game_arenaactivereward.json
@@ -0,0 +1,178 @@
+[
+ {
+ "lv_id": 1,
+ "score_low": 0,
+ "score_up": 199,
+ "human_num": 1,
+ "name": {
+ "key": "arena_rank_1",
+ "text": "黑铁"
+ },
+ "win_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ },
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 5
+ }
+ ]
+ },
+ {
+ "lv_id": 2,
+ "score_low": 200,
+ "score_up": 399,
+ "human_num": 1,
+ "name": {
+ "key": "arena_rank_2",
+ "text": "青铜"
+ },
+ "win_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1200
+ },
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 7
+ }
+ ]
+ },
+ {
+ "lv_id": 3,
+ "score_low": 400,
+ "score_up": 599,
+ "human_num": 2,
+ "name": {
+ "key": "arena_rank_3",
+ "text": "白银"
+ },
+ "win_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1400
+ },
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 9
+ }
+ ]
+ },
+ {
+ "lv_id": 4,
+ "score_low": 600,
+ "score_up": 799,
+ "human_num": 2,
+ "name": {
+ "key": "arena_rank_4",
+ "text": "黄金"
+ },
+ "win_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1600
+ },
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 11
+ }
+ ]
+ },
+ {
+ "lv_id": 5,
+ "score_low": 800,
+ "score_up": 999,
+ "human_num": 3,
+ "name": {
+ "key": "arena_rank_5",
+ "text": "铂金"
+ },
+ "win_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1800
+ },
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 13
+ }
+ ]
+ },
+ {
+ "lv_id": 6,
+ "score_low": 1000,
+ "score_up": 1499,
+ "human_num": 3,
+ "name": {
+ "key": "arena_rank_6",
+ "text": "钻石"
+ },
+ "win_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2000
+ },
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 15
+ }
+ ]
+ },
+ {
+ "lv_id": 7,
+ "score_low": 1500,
+ "score_up": 1999,
+ "human_num": 4,
+ "name": {
+ "key": "arena_rank_7",
+ "text": "大师"
+ },
+ "win_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2200
+ },
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 17
+ }
+ ]
+ },
+ {
+ "lv_id": 8,
+ "score_low": 2000,
+ "score_up": 99999999,
+ "human_num": 4,
+ "name": {
+ "key": "arena_rank_8",
+ "text": "王者"
+ },
+ "win_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 2400
+ },
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 19
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/bin/json/game_arenabuychallenge.json b/bin/json/game_arenabuychallenge.json
new file mode 100644
index 000000000..09d0c8064
--- /dev/null
+++ b/bin/json/game_arenabuychallenge.json
@@ -0,0 +1,102 @@
+[
+ {
+ "num": 1,
+ "need": [
+ {
+ "a": "attr",
+ "t": "rmbmoney",
+ "n": 20
+ }
+ ]
+ },
+ {
+ "num": 2,
+ "need": [
+ {
+ "a": "attr",
+ "t": "rmbmoney",
+ "n": 30
+ }
+ ]
+ },
+ {
+ "num": 3,
+ "need": [
+ {
+ "a": "attr",
+ "t": "rmbmoney",
+ "n": 30
+ }
+ ]
+ },
+ {
+ "num": 4,
+ "need": [
+ {
+ "a": "attr",
+ "t": "rmbmoney",
+ "n": 50
+ }
+ ]
+ },
+ {
+ "num": 5,
+ "need": [
+ {
+ "a": "attr",
+ "t": "rmbmoney",
+ "n": 50
+ }
+ ]
+ },
+ {
+ "num": 6,
+ "need": [
+ {
+ "a": "attr",
+ "t": "rmbmoney",
+ "n": 50
+ }
+ ]
+ },
+ {
+ "num": 7,
+ "need": [
+ {
+ "a": "attr",
+ "t": "rmbmoney",
+ "n": 100
+ }
+ ]
+ },
+ {
+ "num": 8,
+ "need": [
+ {
+ "a": "attr",
+ "t": "rmbmoney",
+ "n": 150
+ }
+ ]
+ },
+ {
+ "num": 9,
+ "need": [
+ {
+ "a": "attr",
+ "t": "rmbmoney",
+ "n": 200
+ }
+ ]
+ },
+ {
+ "num": 10,
+ "need": [
+ {
+ "a": "attr",
+ "t": "rmbmoney",
+ "n": 250
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/bin/json/game_arenachallengenpc.json b/bin/json/game_arenachallengenpc.json
new file mode 100644
index 000000000..c5ef81037
--- /dev/null
+++ b/bin/json/game_arenachallengenpc.json
@@ -0,0 +1,338 @@
+[
+ {
+ "id": 1,
+ "open_cond": 1,
+ "open_value": 10,
+ "monsterformat_id": 301011,
+ "stroy_id_front": 1001,
+ "stroy_id_after": 1001,
+ "name": {
+ "key": "arena_npc_1",
+ "text": "npc1"
+ },
+ "revive_cd": 24,
+ "revive_monsterformat_id": 301011,
+ "npc_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 10000
+ }
+ ]
+ },
+ {
+ "id": 2,
+ "open_cond": 1,
+ "open_value": 11,
+ "monsterformat_id": 301012,
+ "stroy_id_front": 1002,
+ "stroy_id_after": 1002,
+ "name": {
+ "key": "arena_npc_2",
+ "text": "npc2"
+ },
+ "revive_cd": 24,
+ "revive_monsterformat_id": 301012,
+ "npc_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 10000
+ }
+ ]
+ },
+ {
+ "id": 3,
+ "open_cond": 1,
+ "open_value": 12,
+ "monsterformat_id": 301013,
+ "stroy_id_front": 1003,
+ "stroy_id_after": 1003,
+ "name": {
+ "key": "arena_npc_3",
+ "text": "npc3"
+ },
+ "revive_cd": 24,
+ "revive_monsterformat_id": 301013,
+ "npc_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 10000
+ }
+ ]
+ },
+ {
+ "id": 4,
+ "open_cond": 1,
+ "open_value": 13,
+ "monsterformat_id": 301014,
+ "stroy_id_front": 1004,
+ "stroy_id_after": 1004,
+ "name": {
+ "key": "arena_npc_4",
+ "text": "npc4"
+ },
+ "revive_cd": 24,
+ "revive_monsterformat_id": 301014,
+ "npc_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 10000
+ }
+ ]
+ },
+ {
+ "id": 5,
+ "open_cond": 1,
+ "open_value": 14,
+ "monsterformat_id": 301015,
+ "stroy_id_front": 1005,
+ "stroy_id_after": 1005,
+ "name": {
+ "key": "arena_npc_5",
+ "text": "npc5"
+ },
+ "revive_cd": 24,
+ "revive_monsterformat_id": 301015,
+ "npc_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 10000
+ }
+ ]
+ },
+ {
+ "id": 6,
+ "open_cond": 1,
+ "open_value": 15,
+ "monsterformat_id": 301016,
+ "stroy_id_front": 1006,
+ "stroy_id_after": 1006,
+ "name": {
+ "key": "arena_npc_6",
+ "text": "npc6"
+ },
+ "revive_cd": 24,
+ "revive_monsterformat_id": 301016,
+ "npc_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 10000
+ }
+ ]
+ },
+ {
+ "id": 7,
+ "open_cond": 1,
+ "open_value": 16,
+ "monsterformat_id": 301017,
+ "stroy_id_front": 1007,
+ "stroy_id_after": 1007,
+ "name": {
+ "key": "arena_npc_7",
+ "text": "npc7"
+ },
+ "revive_cd": 24,
+ "revive_monsterformat_id": 301017,
+ "npc_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 10000
+ }
+ ]
+ },
+ {
+ "id": 8,
+ "open_cond": 1,
+ "open_value": 17,
+ "monsterformat_id": 301018,
+ "stroy_id_front": 1008,
+ "stroy_id_after": 1008,
+ "name": {
+ "key": "arena_npc_8",
+ "text": "npc8"
+ },
+ "revive_cd": 24,
+ "revive_monsterformat_id": 301018,
+ "npc_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 10000
+ }
+ ]
+ },
+ {
+ "id": 9,
+ "open_cond": 1,
+ "open_value": 18,
+ "monsterformat_id": 301019,
+ "stroy_id_front": 1009,
+ "stroy_id_after": 1009,
+ "name": {
+ "key": "arena_npc_9",
+ "text": "npc9"
+ },
+ "revive_cd": 24,
+ "revive_monsterformat_id": 301019,
+ "npc_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 10000
+ }
+ ]
+ },
+ {
+ "id": 10,
+ "open_cond": 1,
+ "open_value": 19,
+ "monsterformat_id": 301020,
+ "stroy_id_front": 1010,
+ "stroy_id_after": 1010,
+ "name": {
+ "key": "arena_npc_10",
+ "text": "npc10"
+ },
+ "revive_cd": 24,
+ "revive_monsterformat_id": 301020,
+ "npc_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 10000
+ }
+ ]
+ },
+ {
+ "id": 11,
+ "open_cond": 1,
+ "open_value": 20,
+ "monsterformat_id": 301021,
+ "stroy_id_front": 1011,
+ "stroy_id_after": 1011,
+ "name": {
+ "key": "arena_npc_11",
+ "text": "npc11"
+ },
+ "revive_cd": 24,
+ "revive_monsterformat_id": 301021,
+ "npc_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 10000
+ }
+ ]
+ },
+ {
+ "id": 12,
+ "open_cond": 1,
+ "open_value": 21,
+ "monsterformat_id": 301022,
+ "stroy_id_front": 1012,
+ "stroy_id_after": 1012,
+ "name": {
+ "key": "arena_npc_12",
+ "text": "npc12"
+ },
+ "revive_cd": 24,
+ "revive_monsterformat_id": 301022,
+ "npc_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 10000
+ }
+ ]
+ },
+ {
+ "id": 13,
+ "open_cond": 1,
+ "open_value": 22,
+ "monsterformat_id": 301023,
+ "stroy_id_front": 1013,
+ "stroy_id_after": 1013,
+ "name": {
+ "key": "arena_npc_13",
+ "text": "npc13"
+ },
+ "revive_cd": 24,
+ "revive_monsterformat_id": 301023,
+ "npc_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 10000
+ }
+ ]
+ },
+ {
+ "id": 14,
+ "open_cond": 1,
+ "open_value": 23,
+ "monsterformat_id": 301024,
+ "stroy_id_front": 1014,
+ "stroy_id_after": 1014,
+ "name": {
+ "key": "arena_npc_14",
+ "text": "npc14"
+ },
+ "revive_cd": 24,
+ "revive_monsterformat_id": 301024,
+ "npc_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 10000
+ }
+ ]
+ },
+ {
+ "id": 15,
+ "open_cond": 1,
+ "open_value": 24,
+ "monsterformat_id": 301025,
+ "stroy_id_front": 1015,
+ "stroy_id_after": 1015,
+ "name": {
+ "key": "arena_npc_15",
+ "text": "npc15"
+ },
+ "revive_cd": 24,
+ "revive_monsterformat_id": 301025,
+ "npc_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 10000
+ }
+ ]
+ },
+ {
+ "id": 16,
+ "open_cond": 1,
+ "open_value": 25,
+ "monsterformat_id": 301026,
+ "stroy_id_front": 1016,
+ "stroy_id_after": 1016,
+ "name": {
+ "key": "arena_npc_16",
+ "text": "npc16"
+ },
+ "revive_cd": 24,
+ "revive_monsterformat_id": 301026,
+ "npc_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 10000
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/bin/json/game_arenarankreward.json b/bin/json/game_arenarankreward.json
new file mode 100644
index 000000000..07798a90c
--- /dev/null
+++ b/bin/json/game_arenarankreward.json
@@ -0,0 +1,189 @@
+[
+ {
+ "id": 1,
+ "rank_low": 1,
+ "rank_up": 1,
+ "rank_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 10000
+ },
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 50
+ }
+ ]
+ },
+ {
+ "id": 2,
+ "rank_low": 2,
+ "rank_up": 2,
+ "rank_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 12000
+ },
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 70
+ }
+ ]
+ },
+ {
+ "id": 3,
+ "rank_low": 3,
+ "rank_up": 3,
+ "rank_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 14000
+ },
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 90
+ }
+ ]
+ },
+ {
+ "id": 4,
+ "rank_low": 4,
+ "rank_up": 10,
+ "rank_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 16000
+ },
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 110
+ }
+ ]
+ },
+ {
+ "id": 5,
+ "rank_low": 11,
+ "rank_up": 20,
+ "rank_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 18000
+ },
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 130
+ }
+ ]
+ },
+ {
+ "id": 6,
+ "rank_low": 21,
+ "rank_up": 50,
+ "rank_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 20000
+ },
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 150
+ }
+ ]
+ },
+ {
+ "id": 7,
+ "rank_low": 51,
+ "rank_up": 100,
+ "rank_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 22000
+ },
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 170
+ }
+ ]
+ },
+ {
+ "id": 8,
+ "rank_low": 101,
+ "rank_up": 200,
+ "rank_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 24000
+ },
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 190
+ }
+ ]
+ },
+ {
+ "id": 9,
+ "rank_low": 201,
+ "rank_up": 500,
+ "rank_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 26000
+ },
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 210
+ }
+ ]
+ },
+ {
+ "id": 10,
+ "rank_low": 501,
+ "rank_up": 1000,
+ "rank_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 28000
+ },
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 230
+ }
+ ]
+ },
+ {
+ "id": 11,
+ "rank_low": 1001,
+ "rank_up": 99999999,
+ "rank_reward": [
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 30000
+ },
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 250
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/bin/json/game_arenarobot.json b/bin/json/game_arenarobot.json
new file mode 100644
index 000000000..e25ae7f0c
--- /dev/null
+++ b/bin/json/game_arenarobot.json
@@ -0,0 +1,98 @@
+[
+ {
+ "id": 1,
+ "lv_id": 1,
+ "monsterformat_id": 301011,
+ "weight": 1000
+ },
+ {
+ "id": 2,
+ "lv_id": 1,
+ "monsterformat_id": 301012,
+ "weight": 1000
+ },
+ {
+ "id": 3,
+ "lv_id": 2,
+ "monsterformat_id": 301013,
+ "weight": 1000
+ },
+ {
+ "id": 4,
+ "lv_id": 2,
+ "monsterformat_id": 301014,
+ "weight": 1000
+ },
+ {
+ "id": 5,
+ "lv_id": 3,
+ "monsterformat_id": 301015,
+ "weight": 1000
+ },
+ {
+ "id": 6,
+ "lv_id": 3,
+ "monsterformat_id": 301016,
+ "weight": 1000
+ },
+ {
+ "id": 7,
+ "lv_id": 4,
+ "monsterformat_id": 301017,
+ "weight": 1000
+ },
+ {
+ "id": 8,
+ "lv_id": 4,
+ "monsterformat_id": 301018,
+ "weight": 1000
+ },
+ {
+ "id": 9,
+ "lv_id": 5,
+ "monsterformat_id": 301019,
+ "weight": 1000
+ },
+ {
+ "id": 10,
+ "lv_id": 5,
+ "monsterformat_id": 301020,
+ "weight": 1000
+ },
+ {
+ "id": 11,
+ "lv_id": 6,
+ "monsterformat_id": 301021,
+ "weight": 1000
+ },
+ {
+ "id": 12,
+ "lv_id": 6,
+ "monsterformat_id": 301022,
+ "weight": 1000
+ },
+ {
+ "id": 13,
+ "lv_id": 7,
+ "monsterformat_id": 301023,
+ "weight": 1000
+ },
+ {
+ "id": 14,
+ "lv_id": 7,
+ "monsterformat_id": 301024,
+ "weight": 1000
+ },
+ {
+ "id": 15,
+ "lv_id": 8,
+ "monsterformat_id": 301025,
+ "weight": 1000
+ },
+ {
+ "id": 16,
+ "lv_id": 8,
+ "monsterformat_id": 301026,
+ "weight": 1000
+ }
+]
\ No newline at end of file
diff --git a/modules/arena/api_challengereward.go b/modules/arena/api_challengereward.go
new file mode 100644
index 000000000..202805f03
--- /dev/null
+++ b/modules/arena/api_challengereward.go
@@ -0,0 +1,78 @@
+package arena
+
+import (
+ "go_dreamfactory/comm"
+ "go_dreamfactory/lego/sys/mgo"
+ "go_dreamfactory/pb"
+ "time"
+
+ "google.golang.org/protobuf/proto"
+)
+
+//参数校验
+func (this *apiComp) ChallengeRewardCheck(session comm.IUserSession, req *pb.ArenaChallengeRewardReq) (code pb.ErrorCode) {
+
+ return
+}
+
+///挑战奖励领取
+func (this *apiComp) ChallengeReward(session comm.IUserSession, req *pb.ArenaChallengeRewardReq) (code pb.ErrorCode, data proto.Message) {
+ var (
+ red *pb.DBArenaUser
+ bule *pb.DBArenaUser
+ err error
+ iswin bool
+ )
+ if code = this.ChallengeRewardCheck(session, req); code != pb.ErrorCode_Success {
+ return
+ }
+ if req.Iswin {
+ if code, iswin = this.module.battle.CheckBattleReport(session, req.Report); code != pb.ErrorCode_Success {
+ return
+ }
+ if !iswin {
+ code = pb.ErrorCode_BattleValidationFailed
+ return
+ }
+ }
+ if red, err = this.module.modelArena.queryPlayerInfo(req.Report.Info.RedCompId); err != nil && err != mgo.MongodbNil {
+ code = pb.ErrorCode_DBError
+ return
+ }
+ if bule, err = this.module.modelArena.queryPlayerInfo(req.Report.Info.BlueCompId); err != nil && err != mgo.MongodbNil {
+ code = pb.ErrorCode_DBError
+ return
+ }
+ if len(red.Record) > 10 {
+ red.Record = red.Record[1:]
+ }
+ if len(bule.Record) > 10 {
+ bule.Record = bule.Record[1:]
+ }
+ red.Record = append(red.Record, &pb.DBArenaBattleRecord{
+ Bid: req.Report.Info.Id,
+ Time: time.Now().Unix(),
+ Iswin: req.Iswin,
+ Isdefend: false,
+ Rivalid: bule.Uid,
+ Rivalname: bule.Name,
+ })
+ if err = this.module.modelArena.Change(red.Uid, map[string]interface{}{"record": red.Record}); err != nil {
+ code = pb.ErrorCode_DBError
+ return
+ }
+ bule.Record = append(red.Record, &pb.DBArenaBattleRecord{
+ Bid: req.Report.Info.Id,
+ Time: time.Now().Unix(),
+ Iswin: !req.Iswin,
+ Isdefend: true,
+ Rivalid: red.Uid,
+ Rivalname: red.Name,
+ })
+ if err = this.module.modelArena.Change(bule.Uid, map[string]interface{}{"record": bule.Record}); err != nil {
+ code = pb.ErrorCode_DBError
+ return
+ }
+
+ return
+}
diff --git a/modules/arena/api_matche.go b/modules/arena/api_matche.go
index a8befe922..cb180b347 100644
--- a/modules/arena/api_matche.go
+++ b/modules/arena/api_matche.go
@@ -31,7 +31,7 @@ func (this *apiComp) Matche(session comm.IUserSession, req *pb.ArenaMatcheReq) (
}
if len(players) < 5 {
num := 5 - len(players)
- if ai, err = this.module.modelArena.matcheAI(req.Minintegral, req.Maxintegral, int32(num)); err != nil && err != mgo.MongodbNil {
+ if ai, err = this.module.modelArena.matcheAI(req.Minintegral, int32(num)); err != nil && err != mgo.MongodbNil {
code = pb.ErrorCode_DBError
return
}
diff --git a/modules/arena/api_rank.go b/modules/arena/api_rank.go
new file mode 100644
index 000000000..76201da16
--- /dev/null
+++ b/modules/arena/api_rank.go
@@ -0,0 +1,22 @@
+package arena
+
+import (
+ "go_dreamfactory/comm"
+ "go_dreamfactory/pb"
+
+ "google.golang.org/protobuf/proto"
+)
+
+//参数校验
+func (this *apiComp) RankCheck(session comm.IUserSession, req *pb.ArenaRankReq) (code pb.ErrorCode) {
+
+ return
+}
+
+///排行榜获取
+func (this *apiComp) Rank(session comm.IUserSession, req *pb.ArenaRankReq) (code pb.ErrorCode, data proto.Message) {
+ if code = this.RankCheck(session, req); code != pb.ErrorCode_Success {
+ return
+ }
+ return
+}
diff --git a/modules/arena/configure.go b/modules/arena/configure.go
new file mode 100644
index 000000000..16fa0c255
--- /dev/null
+++ b/modules/arena/configure.go
@@ -0,0 +1,33 @@
+package arena
+
+import (
+ "go_dreamfactory/lego/core"
+ "go_dreamfactory/modules"
+ cfg "go_dreamfactory/sys/configure/structs"
+)
+
+const (
+ game_arenabuychallenge = "game_arenabuychallenge.json" //购买挑战记录
+ game_arenaactivereward = "game_arenaactivereward.json" //挑战奖励
+ game_arenaarobot = "game_arenaarobot.json" //ai配置表
+ game_arenarankreward = "game_arenarankreward.json" //比赛奖励配置
+ game_arenachallengenpc = "game_arenachallengenpc.json" //剧情表
+)
+
+///竞技场配置管理组件
+type configureComp struct {
+ modules.MCompConfigure
+ module *Arena
+}
+
+//组件初始化接口
+func (this *configureComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
+ this.MCompConfigure.Init(service, module, comp, options)
+ this.module = module.(*Arena)
+ this.LoadConfigure(game_arenabuychallenge, cfg.NewGameArenaBuyChallenge)
+ this.LoadConfigure(game_arenaactivereward, cfg.NewGameArenaActiveReward)
+ this.LoadConfigure(game_arenaarobot, cfg.NewGameArenaRobot)
+ this.LoadConfigure(game_arenarankreward, cfg.NewGameArenaRankReward)
+ this.LoadConfigure(game_arenachallengenpc, cfg.NewGameArenaChallengeNpc)
+ return
+}
diff --git a/modules/arena/modelarena.go b/modules/arena/modelarena.go
index 67038cf41..28ea14dd1 100644
--- a/modules/arena/modelarena.go
+++ b/modules/arena/modelarena.go
@@ -84,7 +84,7 @@ func (this *modelArena) updateArenaUserInfo(info *pb.DBArenaUser) (err error) {
// }
//匹配机器人
-func (this *modelArena) matcheAI(min, max, num int32) (results []*pb.DBArenaUser, err error) {
+func (this *modelArena) matcheAI(duan, num int32) (results []*pb.DBArenaUser, err error) {
return
}
diff --git a/modules/arena/modelrecord.go b/modules/arena/modelrecord.go
new file mode 100644
index 000000000..7b02c814f
--- /dev/null
+++ b/modules/arena/modelrecord.go
@@ -0,0 +1,28 @@
+package arena
+
+import (
+ "go_dreamfactory/comm"
+ "go_dreamfactory/lego/core"
+ "go_dreamfactory/modules"
+
+ "go.mongodb.org/mongo-driver/mongo"
+ "go.mongodb.org/mongo-driver/x/bsonx"
+)
+
+///竞技场 战斗记录
+type modelRecord struct {
+ modules.MCompModel
+ module *Arena
+}
+
+//组件初始化接口
+func (this *modelRecord) Init(service core.IService, module core.IModule, comp core.IModuleComp, opt core.IModuleOptions) (err error) {
+ this.TableName = comm.TableArena
+ this.MCompModel.Init(service, module, comp, opt)
+ this.module = module.(*Arena)
+ //创建uid索引
+ this.DB.CreateIndex(core.SqlTable(this.TableName), mongo.IndexModel{
+ Keys: bsonx.Doc{{Key: "uid", Value: bsonx.Int32(1)}},
+ })
+ return
+}
diff --git a/modules/battle/modelBattle.go b/modules/battle/modelBattle.go
index 77a2fd707..5a153883f 100644
--- a/modules/battle/modelBattle.go
+++ b/modules/battle/modelBattle.go
@@ -223,6 +223,46 @@ func (this *modelBattleComp) createBattleRole(hero *pb.DBHero, tid, pos int) (ro
//创建pvp 战斗请求
func (this *modelBattleComp) createpvp(session comm.IUserSession, conn *db.DBConn, btype pb.BattleType, req *pb.BattlePVPReq) (record *pb.DBBattleRecord, code pb.ErrorCode) {
-
+ record = &pb.DBBattleRecord{
+ Id: primitive.NewObjectID().Hex(),
+ Title: req.Title,
+ Btype: btype,
+ Ptype: req.Ptype,
+ State: pb.BBattleState_in,
+ RedCompId: req.Redformat.Uid,
+ Redflist: make([]*pb.DBBattleFormt, 1),
+ BlueCompId: req.Buleformat.Uid,
+ Buleflist: make([]*pb.DBBattleFormt, 1),
+ }
+ record.Redflist[0] = &pb.DBBattleFormt{
+ Leadpos: req.Redformat.Leadpos,
+ Team: make([]*pb.BattleRole, len(req.Redformat.Format)),
+ }
+ //自己的英雄阵营
+ for i, v := range req.Redformat.Format {
+ if v != nil {
+ tid := 100 + i
+ if record.Redflist[0].Team[i], code = this.createBattleRole(v, tid, i); code != pb.ErrorCode_Success {
+ return
+ }
+ } else {
+ record.Redflist[0].Team[i] = nil
+ }
+ }
+ record.Buleflist[0] = &pb.DBBattleFormt{
+ Leadpos: req.Buleformat.Leadpos,
+ Team: make([]*pb.BattleRole, len(req.Buleformat.Format)),
+ }
+ //自己的英雄阵营
+ for i, v := range req.Buleformat.Format {
+ if v != nil {
+ tid := 100 + i
+ if record.Buleflist[0].Team[i], code = this.createBattleRole(v, tid, i); code != pb.ErrorCode_Success {
+ return
+ }
+ } else {
+ record.Buleflist[0].Team[i] = nil
+ }
+ }
return
}
diff --git a/modules/equipment/api_equip.go b/modules/equipment/api_equip.go
index ea8919bdf..b30feec9f 100644
--- a/modules/equipment/api_equip.go
+++ b/modules/equipment/api_equip.go
@@ -2,7 +2,6 @@ package equipment
import (
"go_dreamfactory/comm"
- "go_dreamfactory/lego/sys/log"
"go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
"go_dreamfactory/utils"
@@ -51,7 +50,7 @@ func (this *apiComp) Equip(session comm.IUserSession, req *pb.EquipmentEquipReq)
if v != "" {
equipNum++
if equipments[i], err = this.module.modelEquipment.QueryUserEquipmentsById(session.GetUserId(), v); err != nil {
- log.Errorf("Equip_Check err:%v", err)
+ this.module.Errorf("Equip_Check err:%v", err)
code = pb.ErrorCode_EquipmentOnFoundEquipment
return
}
@@ -61,7 +60,7 @@ func (this *apiComp) Equip(session comm.IUserSession, req *pb.EquipmentEquipReq)
}
equipLv[equipments[i].Lv]++
if confs[i], err = this.module.configure.GetEquipmentConfigureById(equipments[i].CId); err != nil {
- log.Errorf("Equip_Check err:%v", err)
+ this.module.Errorf("Equip_Check err:%v", err)
code = pb.ErrorCode_ConfigNoFound
return
}
@@ -92,7 +91,7 @@ func (this *apiComp) Equip(session comm.IUserSession, req *pb.EquipmentEquipReq)
if v != "" {
if equipments[i] != nil && v != equipments[i].Id {
if equipment, err = this.module.modelEquipment.QueryUserEquipmentsById(session.GetUserId(), v); err != nil {
- log.Errorf("Equip reader uid:%s equipment:%s err:%v", session.GetUserId(), v, err)
+ this.module.Errorf("Equip reader uid:%s equipment:%s err:%v", session.GetUserId(), v, err)
code = pb.ErrorCode_SystemError
return
}
@@ -101,7 +100,7 @@ func (this *apiComp) Equip(session comm.IUserSession, req *pb.EquipmentEquipReq)
updatequipment = append(updatequipment, equipment, equipments[i])
} else if equipments[i] == nil {
if equipment, err = this.module.modelEquipment.QueryUserEquipmentsById(session.GetUserId(), v); err != nil {
- log.Errorf("Equip reader uid:%s equipment:%s err:%v", session.GetUserId(), v, err)
+ this.module.Errorf("Equip reader uid:%s equipment:%s err:%v", session.GetUserId(), v, err)
code = pb.ErrorCode_SystemError
return
}
@@ -120,7 +119,7 @@ func (this *apiComp) Equip(session comm.IUserSession, req *pb.EquipmentEquipReq)
for i, v := range equipments { //校验装备位置
if v != nil {
if i != int(confs[i].Pos) {
- log.Errorf("Equip conf:%+v Target:%d Incorrect range!", confs[i], i)
+ this.module.Errorf("Equip conf:%+v Target:%d Incorrect range!", confs[i], i)
code = pb.ErrorCode_SystemError
return
}
@@ -161,12 +160,12 @@ func (this *apiComp) Equip(session comm.IUserSession, req *pb.EquipmentEquipReq)
}
//更新装备数据加成
if code = this.module.ModuleHero.UpdateEquipment(session, hero, equipments); code != pb.ErrorCode_Success {
- log.Errorf("Equip ModuleHero UpdateEquipment code%v", code)
+ this.module.Errorf("Equip ModuleHero UpdateEquipment code%v", code)
return
}
//同步数据
if err = this.module.modelEquipment.UpdateByHeroId(session.GetUserId(), updatequipment...); err != nil {
- log.Errorf("Equip err%v", err)
+ this.module.Errorf("Equip err%v", err)
code = pb.ErrorCode_SystemError
return
}
@@ -183,7 +182,7 @@ func (this *apiComp) Equip(session comm.IUserSession, req *pb.EquipmentEquipReq)
if hero.SuiteExtId != 0 {
this.module.ModuleRtask.SendToRtask(session, comm.Rtype48, 1, hero.Suite2Star, hero.Suite2Lv)
}
-
+
session.SendMsg(string(this.module.GetType()), "equip", &pb.EquipmentEquipResp{Equipments: updatequipment})
return
}
diff --git a/modules/equipment/api_getlist.go b/modules/equipment/api_getlist.go
index b1879c0d8..949759c87 100644
--- a/modules/equipment/api_getlist.go
+++ b/modules/equipment/api_getlist.go
@@ -2,7 +2,6 @@ package equipment
import (
"go_dreamfactory/comm"
- "go_dreamfactory/lego/sys/log"
"go_dreamfactory/pb"
"google.golang.org/protobuf/proto"
@@ -21,7 +20,7 @@ func (this *apiComp) Getlist(session comm.IUserSession, req *pb.EquipmentGetList
items []*pb.DB_Equipment
)
if items, err = this.module.modelEquipment.QueryUserEquipments(session.GetUserId()); err != nil {
- log.Errorf("QueryUserPackReq err:%v", err)
+ this.module.Errorf("QueryUserPackReq err:%v", err)
code = pb.ErrorCode_CacheReadError
return
}
diff --git a/modules/equipment/api_wash.go b/modules/equipment/api_wash.go
new file mode 100644
index 000000000..769416e40
--- /dev/null
+++ b/modules/equipment/api_wash.go
@@ -0,0 +1,62 @@
+package equipment
+
+import (
+ "go_dreamfactory/comm"
+ "go_dreamfactory/pb"
+ cfg "go_dreamfactory/sys/configure/structs"
+ "math/rand"
+ "time"
+
+ "google.golang.org/protobuf/proto"
+)
+
+//参数校验
+func (this *apiComp) WashCheck(session comm.IUserSession, req *pb.EquipmentWashReq) (code pb.ErrorCode) {
+ if req.Eid == "" {
+ code = pb.ErrorCode_ReqParameterError
+ }
+ return
+}
+
+//锻造
+func (this *apiComp) Wash(session comm.IUserSession, req *pb.EquipmentWashReq) (code pb.ErrorCode, data proto.Message) {
+ var (
+ equip *pb.DB_Equipment
+ conf *cfg.GameEquipData
+ attrlibrarys []*cfg.GameEquipAttrlibraryData
+ adverbEntry []*pb.EquipmentAttributeEntry
+ err error
+ )
+ if code = this.WashCheck(session, req); code != pb.ErrorCode_Success {
+ return
+ }
+ if equip, err = this.module.modelEquipment.QueryUserEquipmentsById(session.GetUserId(), req.Eid); err != nil {
+ this.module.Errorf("Equip reader uid:%s equipment:%s err:%v", session.GetUserId(), req.Eid, err)
+ code = pb.ErrorCode_SystemError
+ return
+ }
+ if conf, err = this.module.configure.GetEquipmentConfigureById(equip.CId); err != nil {
+ this.module.Errorf("Equip_Check err:%v", err)
+ code = pb.ErrorCode_ConfigNoFound
+ return
+ }
+ if attrlibrarys, err = this.module.configure.GetEquipmentAttrlibraryConfigureById(conf.Addlibrary); err != nil || len(attrlibrarys) == 0 {
+ this.module.Errorf("升级服务错误 读取副词条配置错误!")
+ return
+ }
+ adverbEntry = make([]*pb.EquipmentAttributeEntry, len(equip.AdverbEntry))
+ r := rand.New(rand.NewSource(time.Now().Unix()))
+ for i, v := range r.Perm(len(attrlibrarys)) {
+ adverbEntry[i] = &pb.EquipmentAttributeEntry{
+ Id: attrlibrarys[v].Key,
+ Libraryid: attrlibrarys[v].Libraryid,
+ Lv: equip.AdverbEntry[i].Lv,
+ AttrName: attrlibrarys[v].Attrkey,
+ BaseValue: attrlibrarys[v].Attrvar,
+ Value: attrlibrarys[v].Attrvar + int32(float64(attrlibrarys[v].Addition[equip.AdverbEntry[i].Lv-1])/1000.0*float64(attrlibrarys[v].Attrvar)),
+ }
+ }
+
+ session.SendMsg(string(this.module.GetType()), "wash", &pb.EquipmentWashResp{Eid: req.Eid, AdverbEntry: adverbEntry})
+ return
+}
diff --git a/modules/equipment/api_washconfirm.go b/modules/equipment/api_washconfirm.go
new file mode 100644
index 000000000..bc90d1564
--- /dev/null
+++ b/modules/equipment/api_washconfirm.go
@@ -0,0 +1,62 @@
+package equipment
+
+import (
+ "go_dreamfactory/comm"
+ "go_dreamfactory/lego/sys/log"
+ "go_dreamfactory/pb"
+ cfg "go_dreamfactory/sys/configure/structs"
+
+ "google.golang.org/protobuf/proto"
+)
+
+//参数校验
+func (this *apiComp) WashConfirmCheck(session comm.IUserSession, req *pb.EquipmentWashConfirmReq) (code pb.ErrorCode) {
+ if req.Eid == "" || req.Pids == nil || len(req.Pids) == 0 {
+ code = pb.ErrorCode_ReqParameterError
+ }
+ return
+}
+
+//锻造
+func (this *apiComp) WashConfirm(session comm.IUserSession, req *pb.EquipmentWashConfirmReq) (code pb.ErrorCode, data proto.Message) {
+ var (
+ equip *pb.DB_Equipment
+ attrlibrary *cfg.GameEquipAttrlibraryData
+ err error
+ )
+ if code = this.WashConfirmCheck(session, req); code != pb.ErrorCode_Success {
+ return
+ }
+ if equip, err = this.module.modelEquipment.QueryUserEquipmentsById(session.GetUserId(), req.Eid); err != nil {
+ this.module.Errorf("Equip reader uid:%s equipment:%s err:%v", session.GetUserId(), req.Eid, err)
+ code = pb.ErrorCode_SystemError
+ return
+ }
+ if len(equip.AdverbEntry) == len(req.Pids) {
+ code = pb.ErrorCode_ReqParameterError
+ return
+ }
+
+ for i, v := range equip.AdverbEntry {
+ if attrlibrary, err = this.module.configure.GetEquipmentAttrlibraryConfigureByKey(req.Pids[i]); err != nil {
+ return
+ }
+ equip.AdverbEntry[i] = &pb.EquipmentAttributeEntry{
+ Id: attrlibrary.Key,
+ Libraryid: attrlibrary.Libraryid,
+ Lv: v.Lv,
+ AttrName: attrlibrary.Attrkey,
+ BaseValue: attrlibrary.Attrvar,
+ Value: attrlibrary.Attrvar + int32(float64(attrlibrary.Addition[equip.AdverbEntry[i].Lv-1])/1000.0*float64(attrlibrary.Attrvar)),
+ }
+ }
+ if err = this.module.modelEquipment.ChangeList(session.GetUserId(), equip.Id, map[string]interface{}{
+ "adverbEntry": equip.AdverbEntry,
+ }); err != nil {
+ log.Errorf("Upgrade err:%v", err)
+ code = pb.ErrorCode_SystemError
+ return
+ }
+ session.SendMsg(string(this.module.GetType()), "wash", &pb.EquipmentWashConfirmResp{Issucc: true})
+ return
+}
diff --git a/modules/equipment/modelEquipment.go b/modules/equipment/modelEquipment.go
index 9be4367a5..97b8b13d8 100644
--- a/modules/equipment/modelEquipment.go
+++ b/modules/equipment/modelEquipment.go
@@ -3,7 +3,6 @@ package equipment
import (
"go_dreamfactory/comm"
"go_dreamfactory/lego/core"
- "go_dreamfactory/lego/sys/log"
"go_dreamfactory/modules"
"go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
@@ -124,7 +123,7 @@ func (this *modelEquipmentComp) AddEquipments(session comm.IUserSession, cIds ma
}
if len(add) > 0 {
if err = this.AddLists(uId, add); err != nil {
- log.Errorf("err:%v", err)
+ this.module.Errorf("err:%v", err)
return
}
}
@@ -161,7 +160,7 @@ func (this *modelEquipmentComp) UpdateByHeroId(uid string, equipments ...*pb.DB_
if err = this.ChangeList(uid, v.Id, map[string]interface{}{
"heroId": v.HeroId,
}); err != nil {
- log.Errorf("err:%v", err)
+ this.module.Errorf("err:%v", err)
return
}
}
@@ -238,7 +237,7 @@ func (this *modelEquipmentComp) upgradeEquipment(equipment *pb.DB_Equipment, equ
var temp []*cfg.GameEquipAttrlibraryData
var sattr []*cfg.GameEquipAttrlibraryData
if temp, err = this.module.configure.GetEquipmentAttrlibraryConfigureById(equip.Addlibrary); err != nil || len(temp) == 0 {
- log.Errorf("升级服务错误 读取副词条配置错误!")
+ this.module.Errorf("升级服务错误 读取副词条配置错误!")
return
}
//检索出未使用的词条
diff --git a/pb/arena_db.pb.go b/pb/arena_db.pb.go
index 123a74aec..3dccb1f76 100644
--- a/pb/arena_db.pb.go
+++ b/pb/arena_db.pb.go
@@ -242,15 +242,16 @@ type DBArenaUser struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"` //用户id
- Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` //玩家名称
- Integral int32 `protobuf:"varint,3,opt,name=integral,proto3" json:"integral"` //积分
- Attack *DBPlayerBattleFormt `protobuf:"bytes,4,opt,name=attack,proto3" json:"attack"` //进攻阵型
- Defend *DBPlayerBattleFormt `protobuf:"bytes,5,opt,name=defend,proto3" json:"defend"` //防守阵型
- Streak int32 `protobuf:"varint,6,opt,name=streak,proto3" json:"streak"` //连胜
- Attackrate int32 `protobuf:"varint,7,opt,name=attackrate,proto3" json:"attackrate"` //进攻胜率
- Defendrate int32 `protobuf:"varint,8,opt,name=defendrate,proto3" json:"defendrate"` //防守胜率
- Rank int32 `protobuf:"varint,9,opt,name=rank,proto3" json:"rank"` //排名
+ Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid"` //用户id
+ Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name"` //玩家名称
+ Integral int32 `protobuf:"varint,3,opt,name=integral,proto3" json:"integral"` //积分
+ Attack *DBPlayerBattleFormt `protobuf:"bytes,4,opt,name=attack,proto3" json:"attack"` //进攻阵型
+ Defend *DBPlayerBattleFormt `protobuf:"bytes,5,opt,name=defend,proto3" json:"defend"` //防守阵型
+ Streak int32 `protobuf:"varint,6,opt,name=streak,proto3" json:"streak"` //连胜
+ Attackrate int32 `protobuf:"varint,7,opt,name=attackrate,proto3" json:"attackrate"` //进攻胜率
+ Defendrate int32 `protobuf:"varint,8,opt,name=defendrate,proto3" json:"defendrate"` //防守胜率
+ Rank int32 `protobuf:"varint,9,opt,name=rank,proto3" json:"rank"` //排名
+ Record []*DBArenaBattleRecord `protobuf:"bytes,10,rep,name=record,proto3" json:"record"` //战斗记录
}
func (x *DBArenaUser) Reset() {
@@ -348,6 +349,13 @@ func (x *DBArenaUser) GetRank() int32 {
return 0
}
+func (x *DBArenaUser) GetRecord() []*DBArenaBattleRecord {
+ if x != nil {
+ return x.Record
+ }
+ return nil
+}
+
var File_arena_arena_db_proto protoreflect.FileDescriptor
var file_arena_arena_db_proto_rawDesc = []byte{
@@ -377,7 +385,7 @@ var file_arena_arena_db_proto_rawDesc = []byte{
0x61, 0x6c, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x69, 0x76, 0x61,
0x6c, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x6e, 0x61, 0x6d, 0x65,
0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x6e, 0x61, 0x6d,
- 0x65, 0x22, 0x97, 0x02, 0x0a, 0x0b, 0x44, 0x42, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x55, 0x73, 0x65,
+ 0x65, 0x22, 0xc5, 0x02, 0x0a, 0x0b, 0x44, 0x42, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x55, 0x73, 0x65,
0x72, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x67,
@@ -394,8 +402,11 @@ var file_arena_arena_db_proto_rawDesc = []byte{
0x61, 0x63, 0x6b, 0x72, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x66, 0x65, 0x6e,
0x64, 0x72, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x64, 0x65, 0x66,
0x65, 0x6e, 0x64, 0x72, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x18,
- 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x42, 0x06, 0x5a, 0x04, 0x2e,
- 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x6b, 0x12, 0x2c, 0x0a, 0x06, 0x72,
+ 0x65, 0x63, 0x6f, 0x72, 0x64, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x44, 0x42,
+ 0x41, 0x72, 0x65, 0x6e, 0x61, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72,
+ 0x64, 0x52, 0x06, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70,
+ 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -423,11 +434,12 @@ var file_arena_arena_db_proto_depIdxs = []int32{
0, // 1: ArenaPlayer.defend:type_name -> DBPlayerBattleFormt
0, // 2: DBArenaUser.attack:type_name -> DBPlayerBattleFormt
0, // 3: DBArenaUser.defend:type_name -> DBPlayerBattleFormt
- 4, // [4:4] is the sub-list for method output_type
- 4, // [4:4] is the sub-list for method input_type
- 4, // [4:4] is the sub-list for extension type_name
- 4, // [4:4] is the sub-list for extension extendee
- 0, // [0:4] is the sub-list for field type_name
+ 2, // 4: DBArenaUser.record:type_name -> DBArenaBattleRecord
+ 5, // [5:5] is the sub-list for method output_type
+ 5, // [5:5] is the sub-list for method input_type
+ 5, // [5:5] is the sub-list for extension type_name
+ 5, // [5:5] is the sub-list for extension extendee
+ 0, // [0:5] is the sub-list for field type_name
}
func init() { file_arena_arena_db_proto_init() }
diff --git a/pb/arena_msg.pb.go b/pb/arena_msg.pb.go
index bcd6cc9d6..f5ddefdbf 100644
--- a/pb/arena_msg.pb.go
+++ b/pb/arena_msg.pb.go
@@ -537,7 +537,8 @@ type ArenaChallengeRewardReq struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- Report *BattleReport `protobuf:"bytes,1,opt,name=report,proto3" json:"report"` //战报
+ Iswin bool `protobuf:"varint,1,opt,name=iswin,proto3" json:"iswin"` //是否胜利
+ Report *BattleReport `protobuf:"bytes,2,opt,name=report,proto3" json:"report"` //战报
}
func (x *ArenaChallengeRewardReq) Reset() {
@@ -572,6 +573,13 @@ func (*ArenaChallengeRewardReq) Descriptor() ([]byte, []int) {
return file_arena_arena_msg_proto_rawDescGZIP(), []int{10}
}
+func (x *ArenaChallengeRewardReq) GetIswin() bool {
+ if x != nil {
+ return x.Iswin
+ }
+ return false
+}
+
func (x *ArenaChallengeRewardReq) GetReport() *BattleReport {
if x != nil {
return x.Report
@@ -751,18 +759,19 @@ var file_arena_arena_msg_proto_rawDesc = []byte{
0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x0a, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72,
0x43, 0x6f, 0x64, 0x65, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x1f, 0x0a, 0x04, 0x69, 0x6e,
0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c,
- 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x40, 0x0a, 0x17, 0x41,
+ 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x56, 0x0a, 0x17, 0x41,
0x72, 0x65, 0x6e, 0x61, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x77,
- 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x25, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52,
- 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x32, 0x0a,
- 0x18, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x43, 0x68, 0x61, 0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52,
- 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73,
- 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63,
- 0x63, 0x22, 0x0e, 0x0a, 0x0c, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65,
- 0x71, 0x22, 0x0f, 0x0a, 0x0d, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65,
- 0x73, 0x70, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x33,
+ 0x61, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x73, 0x77, 0x69, 0x6e, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x69, 0x73, 0x77, 0x69, 0x6e, 0x12, 0x25, 0x0a, 0x06,
+ 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x42,
+ 0x61, 0x74, 0x74, 0x6c, 0x65, 0x52, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x06, 0x72, 0x65, 0x70,
+ 0x6f, 0x72, 0x74, 0x22, 0x32, 0x0a, 0x18, 0x41, 0x72, 0x65, 0x6e, 0x61, 0x43, 0x68, 0x61, 0x6c,
+ 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12,
+ 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52,
+ 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x22, 0x0e, 0x0a, 0x0c, 0x41, 0x72, 0x65, 0x6e, 0x61,
+ 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x71, 0x22, 0x0f, 0x0a, 0x0d, 0x41, 0x72, 0x65, 0x6e, 0x61,
+ 0x52, 0x61, 0x6e, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62,
+ 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
diff --git a/pb/equipment_msg.pb.go b/pb/equipment_msg.pb.go
index a62336414..c2b88459a 100644
--- a/pb/equipment_msg.pb.go
+++ b/pb/equipment_msg.pb.go
@@ -684,6 +684,212 @@ func (x *EquipmentForgResp) GetIssucc() bool {
return false
}
+//洗练
+type EquipmentWashReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Eid string `protobuf:"bytes,1,opt,name=eid,proto3" json:"eid"`
+}
+
+func (x *EquipmentWashReq) Reset() {
+ *x = EquipmentWashReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_equipment_equipment_msg_proto_msgTypes[13]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *EquipmentWashReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*EquipmentWashReq) ProtoMessage() {}
+
+func (x *EquipmentWashReq) ProtoReflect() protoreflect.Message {
+ mi := &file_equipment_equipment_msg_proto_msgTypes[13]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use EquipmentWashReq.ProtoReflect.Descriptor instead.
+func (*EquipmentWashReq) Descriptor() ([]byte, []int) {
+ return file_equipment_equipment_msg_proto_rawDescGZIP(), []int{13}
+}
+
+func (x *EquipmentWashReq) GetEid() string {
+ if x != nil {
+ return x.Eid
+ }
+ return ""
+}
+
+type EquipmentWashResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Eid string `protobuf:"bytes,1,opt,name=eid,proto3" json:"eid"`
+ AdverbEntry []*EquipmentAttributeEntry `protobuf:"bytes,2,rep,name=adverbEntry,proto3" json:"adverbEntry"`
+}
+
+func (x *EquipmentWashResp) Reset() {
+ *x = EquipmentWashResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_equipment_equipment_msg_proto_msgTypes[14]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *EquipmentWashResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*EquipmentWashResp) ProtoMessage() {}
+
+func (x *EquipmentWashResp) ProtoReflect() protoreflect.Message {
+ mi := &file_equipment_equipment_msg_proto_msgTypes[14]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use EquipmentWashResp.ProtoReflect.Descriptor instead.
+func (*EquipmentWashResp) Descriptor() ([]byte, []int) {
+ return file_equipment_equipment_msg_proto_rawDescGZIP(), []int{14}
+}
+
+func (x *EquipmentWashResp) GetEid() string {
+ if x != nil {
+ return x.Eid
+ }
+ return ""
+}
+
+func (x *EquipmentWashResp) GetAdverbEntry() []*EquipmentAttributeEntry {
+ if x != nil {
+ return x.AdverbEntry
+ }
+ return nil
+}
+
+//谢怜确认
+type EquipmentWashConfirmReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Eid string `protobuf:"bytes,1,opt,name=eid,proto3" json:"eid"`
+ Pids []int32 `protobuf:"varint,2,rep,packed,name=pids,proto3" json:"pids"`
+}
+
+func (x *EquipmentWashConfirmReq) Reset() {
+ *x = EquipmentWashConfirmReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_equipment_equipment_msg_proto_msgTypes[15]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *EquipmentWashConfirmReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*EquipmentWashConfirmReq) ProtoMessage() {}
+
+func (x *EquipmentWashConfirmReq) ProtoReflect() protoreflect.Message {
+ mi := &file_equipment_equipment_msg_proto_msgTypes[15]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use EquipmentWashConfirmReq.ProtoReflect.Descriptor instead.
+func (*EquipmentWashConfirmReq) Descriptor() ([]byte, []int) {
+ return file_equipment_equipment_msg_proto_rawDescGZIP(), []int{15}
+}
+
+func (x *EquipmentWashConfirmReq) GetEid() string {
+ if x != nil {
+ return x.Eid
+ }
+ return ""
+}
+
+func (x *EquipmentWashConfirmReq) GetPids() []int32 {
+ if x != nil {
+ return x.Pids
+ }
+ return nil
+}
+
+type EquipmentWashConfirmResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Issucc bool `protobuf:"varint,1,opt,name=issucc,proto3" json:"issucc"`
+}
+
+func (x *EquipmentWashConfirmResp) Reset() {
+ *x = EquipmentWashConfirmResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_equipment_equipment_msg_proto_msgTypes[16]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *EquipmentWashConfirmResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*EquipmentWashConfirmResp) ProtoMessage() {}
+
+func (x *EquipmentWashConfirmResp) ProtoReflect() protoreflect.Message {
+ mi := &file_equipment_equipment_msg_proto_msgTypes[16]
+ if protoimpl.UnsafeEnabled && x != nil {
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ if ms.LoadMessageInfo() == nil {
+ ms.StoreMessageInfo(mi)
+ }
+ return ms
+ }
+ return mi.MessageOf(x)
+}
+
+// Deprecated: Use EquipmentWashConfirmResp.ProtoReflect.Descriptor instead.
+func (*EquipmentWashConfirmResp) Descriptor() ([]byte, []int) {
+ return file_equipment_equipment_msg_proto_rawDescGZIP(), []int{16}
+}
+
+func (x *EquipmentWashConfirmResp) GetIssucc() bool {
+ if x != nil {
+ return x.Issucc
+ }
+ return false
+}
+
var File_equipment_equipment_msg_proto protoreflect.FileDescriptor
var file_equipment_equipment_msg_proto_rawDesc = []byte{
@@ -744,7 +950,23 @@ var file_equipment_equipment_msg_proto_rawDesc = []byte{
0x6e, 0x75, 0x6d, 0x22, 0x2b, 0x0a, 0x11, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74,
0x46, 0x6f, 0x72, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75,
0x63, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63,
- 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x22, 0x24, 0x0a, 0x10, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x57, 0x61, 0x73,
+ 0x68, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x03, 0x65, 0x69, 0x64, 0x22, 0x61, 0x0a, 0x11, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d,
+ 0x65, 0x6e, 0x74, 0x57, 0x61, 0x73, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x65,
+ 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x65, 0x69, 0x64, 0x12, 0x3a, 0x0a,
+ 0x0b, 0x61, 0x64, 0x76, 0x65, 0x72, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x02, 0x20, 0x03,
+ 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x74,
+ 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b, 0x61, 0x64,
+ 0x76, 0x65, 0x72, 0x62, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x22, 0x3f, 0x0a, 0x17, 0x45, 0x71, 0x75,
+ 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x57, 0x61, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72,
+ 0x6d, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x03, 0x65, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x69, 0x64, 0x73, 0x18, 0x02,
+ 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x70, 0x69, 0x64, 0x73, 0x22, 0x32, 0x0a, 0x18, 0x45, 0x71,
+ 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x57, 0x61, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69,
+ 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x73, 0x75, 0x63, 0x63, 0x42, 0x06,
+ 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -759,33 +981,39 @@ func file_equipment_equipment_msg_proto_rawDescGZIP() []byte {
return file_equipment_equipment_msg_proto_rawDescData
}
-var file_equipment_equipment_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
+var file_equipment_equipment_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 17)
var file_equipment_equipment_msg_proto_goTypes = []interface{}{
- (*EquipmentGetListReq)(nil), // 0: EquipmentGetListReq
- (*EquipmentGetListResp)(nil), // 1: EquipmentGetListResp
- (*EquipmentChangePush)(nil), // 2: EquipmentChangePush
- (*EquipmentEquipReq)(nil), // 3: EquipmentEquipReq
- (*EquipmentEquipResp)(nil), // 4: EquipmentEquipResp
- (*EquipmentUpgradeReq)(nil), // 5: EquipmentUpgradeReq
- (*EquipmentUpgradeResp)(nil), // 6: EquipmentUpgradeResp
- (*EquipmentLockReq)(nil), // 7: EquipmentLockReq
- (*EquipmentLockResp)(nil), // 8: EquipmentLockResp
- (*EquipmentSellReq)(nil), // 9: EquipmentSellReq
- (*EquipmentSellResp)(nil), // 10: EquipmentSellResp
- (*EquipmentForgReq)(nil), // 11: EquipmentForgReq
- (*EquipmentForgResp)(nil), // 12: EquipmentForgResp
- (*DB_Equipment)(nil), // 13: DB_Equipment
+ (*EquipmentGetListReq)(nil), // 0: EquipmentGetListReq
+ (*EquipmentGetListResp)(nil), // 1: EquipmentGetListResp
+ (*EquipmentChangePush)(nil), // 2: EquipmentChangePush
+ (*EquipmentEquipReq)(nil), // 3: EquipmentEquipReq
+ (*EquipmentEquipResp)(nil), // 4: EquipmentEquipResp
+ (*EquipmentUpgradeReq)(nil), // 5: EquipmentUpgradeReq
+ (*EquipmentUpgradeResp)(nil), // 6: EquipmentUpgradeResp
+ (*EquipmentLockReq)(nil), // 7: EquipmentLockReq
+ (*EquipmentLockResp)(nil), // 8: EquipmentLockResp
+ (*EquipmentSellReq)(nil), // 9: EquipmentSellReq
+ (*EquipmentSellResp)(nil), // 10: EquipmentSellResp
+ (*EquipmentForgReq)(nil), // 11: EquipmentForgReq
+ (*EquipmentForgResp)(nil), // 12: EquipmentForgResp
+ (*EquipmentWashReq)(nil), // 13: EquipmentWashReq
+ (*EquipmentWashResp)(nil), // 14: EquipmentWashResp
+ (*EquipmentWashConfirmReq)(nil), // 15: EquipmentWashConfirmReq
+ (*EquipmentWashConfirmResp)(nil), // 16: EquipmentWashConfirmResp
+ (*DB_Equipment)(nil), // 17: DB_Equipment
+ (*EquipmentAttributeEntry)(nil), // 18: EquipmentAttributeEntry
}
var file_equipment_equipment_msg_proto_depIdxs = []int32{
- 13, // 0: EquipmentGetListResp.Equipments:type_name -> DB_Equipment
- 13, // 1: EquipmentChangePush.Equipments:type_name -> DB_Equipment
- 13, // 2: EquipmentEquipResp.Equipments:type_name -> DB_Equipment
- 13, // 3: EquipmentUpgradeResp.Equipment:type_name -> DB_Equipment
- 4, // [4:4] is the sub-list for method output_type
- 4, // [4:4] is the sub-list for method input_type
- 4, // [4:4] is the sub-list for extension type_name
- 4, // [4:4] is the sub-list for extension extendee
- 0, // [0:4] is the sub-list for field type_name
+ 17, // 0: EquipmentGetListResp.Equipments:type_name -> DB_Equipment
+ 17, // 1: EquipmentChangePush.Equipments:type_name -> DB_Equipment
+ 17, // 2: EquipmentEquipResp.Equipments:type_name -> DB_Equipment
+ 17, // 3: EquipmentUpgradeResp.Equipment:type_name -> DB_Equipment
+ 18, // 4: EquipmentWashResp.adverbEntry:type_name -> EquipmentAttributeEntry
+ 5, // [5:5] is the sub-list for method output_type
+ 5, // [5:5] is the sub-list for method input_type
+ 5, // [5:5] is the sub-list for extension type_name
+ 5, // [5:5] is the sub-list for extension extendee
+ 0, // [0:5] is the sub-list for field type_name
}
func init() { file_equipment_equipment_msg_proto_init() }
@@ -951,6 +1179,54 @@ func file_equipment_equipment_msg_proto_init() {
return nil
}
}
+ file_equipment_equipment_msg_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*EquipmentWashReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_equipment_equipment_msg_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*EquipmentWashResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_equipment_equipment_msg_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*EquipmentWashConfirmReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_equipment_equipment_msg_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*EquipmentWashConfirmResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
}
type x struct{}
out := protoimpl.TypeBuilder{
@@ -958,7 +1234,7 @@ func file_equipment_equipment_msg_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_equipment_equipment_msg_proto_rawDesc,
NumEnums: 0,
- NumMessages: 13,
+ NumMessages: 17,
NumExtensions: 0,
NumServices: 0,
},
diff --git a/pb/errorcode.pb.go b/pb/errorcode.pb.go
index 970dbe4f5..8b15078fb 100644
--- a/pb/errorcode.pb.go
+++ b/pb/errorcode.pb.go
@@ -195,6 +195,8 @@ const (
ErrorCode_LibraryActivation ErrorCode = 2803 // 已经是激活状态
ErrorCode_LibraryReward ErrorCode = 2804 // 已经领取奖励
ErrorCode_LibraryLvReward ErrorCode = 2805 // 领奖等级没达到
+ // Battle
+ ErrorCode_BattleValidationFailed ErrorCode = 2901 //战斗校验失败
)
// Enum value maps for ErrorCode.
@@ -355,6 +357,7 @@ var (
2803: "LibraryActivation",
2804: "LibraryReward",
2805: "LibraryLvReward",
+ 2901: "BattleValidationFailed",
}
ErrorCode_value = map[string]int32{
"Success": 0,
@@ -512,6 +515,7 @@ var (
"LibraryActivation": 2803,
"LibraryReward": 2804,
"LibraryLvReward": 2805,
+ "BattleValidationFailed": 2901,
}
)
@@ -546,7 +550,7 @@ var File_errorcode_proto protoreflect.FileDescriptor
var file_errorcode_proto_rawDesc = []byte{
0x0a, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
- 0x6f, 0x2a, 0xf9, 0x1a, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12,
+ 0x6f, 0x2a, 0x96, 0x1b, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12,
0x0b, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d,
0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x10, 0x0a, 0x12,
0x1b, 0x0a, 0x17, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
@@ -761,8 +765,10 @@ var file_errorcode_proto_rawDesc = []byte{
0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e,
0x10, 0xf3, 0x15, 0x12, 0x12, 0x0a, 0x0d, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x52, 0x65,
0x77, 0x61, 0x72, 0x64, 0x10, 0xf4, 0x15, 0x12, 0x14, 0x0a, 0x0f, 0x4c, 0x69, 0x62, 0x72, 0x61,
- 0x72, 0x79, 0x4c, 0x76, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xf5, 0x15, 0x42, 0x06, 0x5a,
- 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x72, 0x79, 0x4c, 0x76, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x10, 0xf5, 0x15, 0x12, 0x1b, 0x0a,
+ 0x16, 0x42, 0x61, 0x74, 0x74, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f,
+ 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0xd5, 0x16, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b,
+ 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
diff --git a/sys/configure/structs/Game.ArenaActiveReward.go b/sys/configure/structs/Game.ArenaActiveReward.go
new file mode 100644
index 000000000..e736f50a3
--- /dev/null
+++ b/sys/configure/structs/Game.ArenaActiveReward.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 GameArenaActiveReward struct {
+ _dataMap map[int32]*GameArenaActiveRewardData
+ _dataList []*GameArenaActiveRewardData
+}
+
+func NewGameArenaActiveReward(_buf []map[string]interface{}) (*GameArenaActiveReward, error) {
+ _dataList := make([]*GameArenaActiveRewardData, 0, len(_buf))
+ dataMap := make(map[int32]*GameArenaActiveRewardData)
+ for _, _ele_ := range _buf {
+ if _v, err2 := DeserializeGameArenaActiveRewardData(_ele_); err2 != nil {
+ return nil, err2
+ } else {
+ _dataList = append(_dataList, _v)
+ dataMap[_v.LvId] = _v
+ }
+ }
+ return &GameArenaActiveReward{_dataList:_dataList, _dataMap:dataMap}, nil
+}
+
+func (table *GameArenaActiveReward) GetDataMap() map[int32]*GameArenaActiveRewardData {
+ return table._dataMap
+}
+
+func (table *GameArenaActiveReward) GetDataList() []*GameArenaActiveRewardData {
+ return table._dataList
+}
+
+func (table *GameArenaActiveReward) Get(key int32) *GameArenaActiveRewardData {
+ return table._dataMap[key]
+}
+
+
diff --git a/sys/configure/structs/Game.ArenaActiveRewardData.go b/sys/configure/structs/Game.ArenaActiveRewardData.go
new file mode 100644
index 000000000..875bb9781
--- /dev/null
+++ b/sys/configure/structs/Game.ArenaActiveRewardData.go
@@ -0,0 +1,58 @@
+//------------------------------------------------------------------------------
+//
+// 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 GameArenaActiveRewardData struct {
+ LvId int32
+ ScoreLow int32
+ ScoreUp int32
+ HumanNum int32
+ Name string
+ WinReward []*Gameatn
+}
+
+const TypeId_GameArenaActiveRewardData = 869812042
+
+func (*GameArenaActiveRewardData) GetTypeId() int32 {
+ return 869812042
+}
+
+func (_v *GameArenaActiveRewardData)Deserialize(_buf map[string]interface{}) (err error) {
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["lv_id"].(float64); !_ok_ { err = errors.New("lv_id error"); return }; _v.LvId = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["score_low"].(float64); !_ok_ { err = errors.New("score_low error"); return }; _v.ScoreLow = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["score_up"].(float64); !_ok_ { err = errors.New("score_up error"); return }; _v.ScoreUp = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["human_num"].(float64); !_ok_ { err = errors.New("human_num error"); return }; _v.HumanNum = int32(_tempNum_) }
+ {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["name"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Name error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Name, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["win_reward"].([]interface{}); !_ok_ { err = errors.New("win_reward error"); return }
+
+ _v.WinReward = 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.WinReward = append(_v.WinReward, _list_v_)
+ }
+ }
+
+ return
+}
+
+func DeserializeGameArenaActiveRewardData(_buf map[string]interface{}) (*GameArenaActiveRewardData, error) {
+ v := &GameArenaActiveRewardData{}
+ if err := v.Deserialize(_buf); err == nil {
+ return v, nil
+ } else {
+ return nil, err
+ }
+}
diff --git a/sys/configure/structs/Game.ArenaBuyChallenge.go b/sys/configure/structs/Game.ArenaBuyChallenge.go
new file mode 100644
index 000000000..e8ccd5d78
--- /dev/null
+++ b/sys/configure/structs/Game.ArenaBuyChallenge.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 GameArenaBuyChallenge struct {
+ _dataMap map[int32]*GameArenaBuyChallengeData
+ _dataList []*GameArenaBuyChallengeData
+}
+
+func NewGameArenaBuyChallenge(_buf []map[string]interface{}) (*GameArenaBuyChallenge, error) {
+ _dataList := make([]*GameArenaBuyChallengeData, 0, len(_buf))
+ dataMap := make(map[int32]*GameArenaBuyChallengeData)
+ for _, _ele_ := range _buf {
+ if _v, err2 := DeserializeGameArenaBuyChallengeData(_ele_); err2 != nil {
+ return nil, err2
+ } else {
+ _dataList = append(_dataList, _v)
+ dataMap[_v.Num] = _v
+ }
+ }
+ return &GameArenaBuyChallenge{_dataList:_dataList, _dataMap:dataMap}, nil
+}
+
+func (table *GameArenaBuyChallenge) GetDataMap() map[int32]*GameArenaBuyChallengeData {
+ return table._dataMap
+}
+
+func (table *GameArenaBuyChallenge) GetDataList() []*GameArenaBuyChallengeData {
+ return table._dataList
+}
+
+func (table *GameArenaBuyChallenge) Get(key int32) *GameArenaBuyChallengeData {
+ return table._dataMap[key]
+}
+
+
diff --git a/sys/configure/structs/Game.ArenaBuyChallengeData.go b/sys/configure/structs/Game.ArenaBuyChallengeData.go
new file mode 100644
index 000000000..9701705f2
--- /dev/null
+++ b/sys/configure/structs/Game.ArenaBuyChallengeData.go
@@ -0,0 +1,50 @@
+//------------------------------------------------------------------------------
+//
+// 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 GameArenaBuyChallengeData struct {
+ Num int32
+ Need []*Gameatn
+}
+
+const TypeId_GameArenaBuyChallengeData = -706156046
+
+func (*GameArenaBuyChallengeData) GetTypeId() int32 {
+ return -706156046
+}
+
+func (_v *GameArenaBuyChallengeData)Deserialize(_buf map[string]interface{}) (err error) {
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["num"].(float64); !_ok_ { err = errors.New("num error"); return }; _v.Num = int32(_tempNum_) }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["need"].([]interface{}); !_ok_ { err = errors.New("need error"); return }
+
+ _v.Need = 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.Need = append(_v.Need, _list_v_)
+ }
+ }
+
+ return
+}
+
+func DeserializeGameArenaBuyChallengeData(_buf map[string]interface{}) (*GameArenaBuyChallengeData, error) {
+ v := &GameArenaBuyChallengeData{}
+ if err := v.Deserialize(_buf); err == nil {
+ return v, nil
+ } else {
+ return nil, err
+ }
+}
diff --git a/sys/configure/structs/Game.ArenaChallengeNpc.go b/sys/configure/structs/Game.ArenaChallengeNpc.go
new file mode 100644
index 000000000..6bfee1038
--- /dev/null
+++ b/sys/configure/structs/Game.ArenaChallengeNpc.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 GameArenaChallengeNpc struct {
+ _dataMap map[int32]*GameArenaChallengeNpcData
+ _dataList []*GameArenaChallengeNpcData
+}
+
+func NewGameArenaChallengeNpc(_buf []map[string]interface{}) (*GameArenaChallengeNpc, error) {
+ _dataList := make([]*GameArenaChallengeNpcData, 0, len(_buf))
+ dataMap := make(map[int32]*GameArenaChallengeNpcData)
+ for _, _ele_ := range _buf {
+ if _v, err2 := DeserializeGameArenaChallengeNpcData(_ele_); err2 != nil {
+ return nil, err2
+ } else {
+ _dataList = append(_dataList, _v)
+ dataMap[_v.Id] = _v
+ }
+ }
+ return &GameArenaChallengeNpc{_dataList:_dataList, _dataMap:dataMap}, nil
+}
+
+func (table *GameArenaChallengeNpc) GetDataMap() map[int32]*GameArenaChallengeNpcData {
+ return table._dataMap
+}
+
+func (table *GameArenaChallengeNpc) GetDataList() []*GameArenaChallengeNpcData {
+ return table._dataList
+}
+
+func (table *GameArenaChallengeNpc) Get(key int32) *GameArenaChallengeNpcData {
+ return table._dataMap[key]
+}
+
+
diff --git a/sys/configure/structs/Game.ArenaChallengeNpcData.go b/sys/configure/structs/Game.ArenaChallengeNpcData.go
new file mode 100644
index 000000000..d0d45dbce
--- /dev/null
+++ b/sys/configure/structs/Game.ArenaChallengeNpcData.go
@@ -0,0 +1,66 @@
+//------------------------------------------------------------------------------
+//
+// 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 GameArenaChallengeNpcData struct {
+ Id int32
+ OpenCond int32
+ OpenValue int32
+ MonsterformatId int32
+ StroyIdFront int32
+ StroyIdAfter int32
+ Name string
+ ReviveCd int32
+ ReviveMonsterformatId int32
+ NpcReward []*Gameatn
+}
+
+const TypeId_GameArenaChallengeNpcData = 362128499
+
+func (*GameArenaChallengeNpcData) GetTypeId() int32 {
+ return 362128499
+}
+
+func (_v *GameArenaChallengeNpcData)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["open_cond"].(float64); !_ok_ { err = errors.New("open_cond error"); return }; _v.OpenCond = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["open_value"].(float64); !_ok_ { err = errors.New("open_value error"); return }; _v.OpenValue = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["monsterformat_id"].(float64); !_ok_ { err = errors.New("monsterformat_id error"); return }; _v.MonsterformatId = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["stroy_id_front"].(float64); !_ok_ { err = errors.New("stroy_id_front error"); return }; _v.StroyIdFront = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["stroy_id_after"].(float64); !_ok_ { err = errors.New("stroy_id_after error"); return }; _v.StroyIdAfter = int32(_tempNum_) }
+ {var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["name"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Name error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Name, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["revive_cd"].(float64); !_ok_ { err = errors.New("revive_cd error"); return }; _v.ReviveCd = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["revive_monsterformat_id"].(float64); !_ok_ { err = errors.New("revive_monsterformat_id error"); return }; _v.ReviveMonsterformatId = int32(_tempNum_) }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["npc_reward"].([]interface{}); !_ok_ { err = errors.New("npc_reward error"); return }
+
+ _v.NpcReward = 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.NpcReward = append(_v.NpcReward, _list_v_)
+ }
+ }
+
+ return
+}
+
+func DeserializeGameArenaChallengeNpcData(_buf map[string]interface{}) (*GameArenaChallengeNpcData, error) {
+ v := &GameArenaChallengeNpcData{}
+ if err := v.Deserialize(_buf); err == nil {
+ return v, nil
+ } else {
+ return nil, err
+ }
+}
diff --git a/sys/configure/structs/Game.ArenaRankReward.go b/sys/configure/structs/Game.ArenaRankReward.go
new file mode 100644
index 000000000..e9d3e76be
--- /dev/null
+++ b/sys/configure/structs/Game.ArenaRankReward.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 GameArenaRankReward struct {
+ _dataMap map[int32]*GameArenaRankRewardData
+ _dataList []*GameArenaRankRewardData
+}
+
+func NewGameArenaRankReward(_buf []map[string]interface{}) (*GameArenaRankReward, error) {
+ _dataList := make([]*GameArenaRankRewardData, 0, len(_buf))
+ dataMap := make(map[int32]*GameArenaRankRewardData)
+ for _, _ele_ := range _buf {
+ if _v, err2 := DeserializeGameArenaRankRewardData(_ele_); err2 != nil {
+ return nil, err2
+ } else {
+ _dataList = append(_dataList, _v)
+ dataMap[_v.Id] = _v
+ }
+ }
+ return &GameArenaRankReward{_dataList:_dataList, _dataMap:dataMap}, nil
+}
+
+func (table *GameArenaRankReward) GetDataMap() map[int32]*GameArenaRankRewardData {
+ return table._dataMap
+}
+
+func (table *GameArenaRankReward) GetDataList() []*GameArenaRankRewardData {
+ return table._dataList
+}
+
+func (table *GameArenaRankReward) Get(key int32) *GameArenaRankRewardData {
+ return table._dataMap[key]
+}
+
+
diff --git a/sys/configure/structs/Game.ArenaRankRewardData.go b/sys/configure/structs/Game.ArenaRankRewardData.go
new file mode 100644
index 000000000..4b4e33283
--- /dev/null
+++ b/sys/configure/structs/Game.ArenaRankRewardData.go
@@ -0,0 +1,54 @@
+//------------------------------------------------------------------------------
+//
+// 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 GameArenaRankRewardData struct {
+ Id int32
+ RankLow int32
+ RankUp int32
+ RankReward []*Gameatn
+}
+
+const TypeId_GameArenaRankRewardData = -1965397072
+
+func (*GameArenaRankRewardData) GetTypeId() int32 {
+ return -1965397072
+}
+
+func (_v *GameArenaRankRewardData)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["rank_low"].(float64); !_ok_ { err = errors.New("rank_low error"); return }; _v.RankLow = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["rank_up"].(float64); !_ok_ { err = errors.New("rank_up error"); return }; _v.RankUp = int32(_tempNum_) }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["rank_reward"].([]interface{}); !_ok_ { err = errors.New("rank_reward error"); return }
+
+ _v.RankReward = 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.RankReward = append(_v.RankReward, _list_v_)
+ }
+ }
+
+ return
+}
+
+func DeserializeGameArenaRankRewardData(_buf map[string]interface{}) (*GameArenaRankRewardData, error) {
+ v := &GameArenaRankRewardData{}
+ if err := v.Deserialize(_buf); err == nil {
+ return v, nil
+ } else {
+ return nil, err
+ }
+}
diff --git a/sys/configure/structs/Game.ArenaRobot.go b/sys/configure/structs/Game.ArenaRobot.go
new file mode 100644
index 000000000..a79650819
--- /dev/null
+++ b/sys/configure/structs/Game.ArenaRobot.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 GameArenaRobot struct {
+ _dataMap map[int32]*GameArenaRobotData
+ _dataList []*GameArenaRobotData
+}
+
+func NewGameArenaRobot(_buf []map[string]interface{}) (*GameArenaRobot, error) {
+ _dataList := make([]*GameArenaRobotData, 0, len(_buf))
+ dataMap := make(map[int32]*GameArenaRobotData)
+ for _, _ele_ := range _buf {
+ if _v, err2 := DeserializeGameArenaRobotData(_ele_); err2 != nil {
+ return nil, err2
+ } else {
+ _dataList = append(_dataList, _v)
+ dataMap[_v.Id] = _v
+ }
+ }
+ return &GameArenaRobot{_dataList:_dataList, _dataMap:dataMap}, nil
+}
+
+func (table *GameArenaRobot) GetDataMap() map[int32]*GameArenaRobotData {
+ return table._dataMap
+}
+
+func (table *GameArenaRobot) GetDataList() []*GameArenaRobotData {
+ return table._dataList
+}
+
+func (table *GameArenaRobot) Get(key int32) *GameArenaRobotData {
+ return table._dataMap[key]
+}
+
+
diff --git a/sys/configure/structs/Game.ArenaRobotData.go b/sys/configure/structs/Game.ArenaRobotData.go
new file mode 100644
index 000000000..4c6345aa8
--- /dev/null
+++ b/sys/configure/structs/Game.ArenaRobotData.go
@@ -0,0 +1,41 @@
+//------------------------------------------------------------------------------
+//
+// 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 GameArenaRobotData struct {
+ Id int32
+ LvId int32
+ MonsterformatId int32
+ Weight int32
+}
+
+const TypeId_GameArenaRobotData = -1320510615
+
+func (*GameArenaRobotData) GetTypeId() int32 {
+ return -1320510615
+}
+
+func (_v *GameArenaRobotData)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["lv_id"].(float64); !_ok_ { err = errors.New("lv_id error"); return }; _v.LvId = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["monsterformat_id"].(float64); !_ok_ { err = errors.New("monsterformat_id error"); return }; _v.MonsterformatId = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["weight"].(float64); !_ok_ { err = errors.New("weight error"); return }; _v.Weight = int32(_tempNum_) }
+ return
+}
+
+func DeserializeGameArenaRobotData(_buf map[string]interface{}) (*GameArenaRobotData, error) {
+ v := &GameArenaRobotData{}
+ if err := v.Deserialize(_buf); err == nil {
+ return v, nil
+ } else {
+ return nil, err
+ }
+}