From b0db5645eae703998c348ec20126d6998f2ea0a5 Mon Sep 17 00:00:00 2001
From: meixiongfeng <766881921@qq.com>
Date: Wed, 17 Aug 2022 18:57:15 +0800
Subject: [PATCH 01/10] =?UTF-8?q?=E4=B8=9B=E6=9E=97=E7=BE=8E=E9=A3=9F?=
=?UTF-8?q?=E9=A6=86?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
modules/gourmet/api.go | 1 +
modules/gourmet/api_createorder.go | 24 +++++++--
modules/gourmet/api_foodskilllv.go | 74 ++++++++++++++++++++++++++++
modules/gourmet/api_getReward.go | 2 +-
modules/gourmet/api_getlist.go | 2 +-
modules/gourmet/api_skilllv.go | 25 ----------
modules/gourmet/model_gourmet.go | 79 +++++++++++++++++++++++++-----
pb/errorcode.pb.go | 10 ++--
pb/gourmet_db.pb.go | 75 +++++++++++++++-------------
pb/gourmet_msg.pb.go | 22 ++++-----
10 files changed, 222 insertions(+), 92 deletions(-)
create mode 100644 modules/gourmet/api_foodskilllv.go
delete mode 100644 modules/gourmet/api_skilllv.go
diff --git a/modules/gourmet/api.go b/modules/gourmet/api.go
index a0fbdc083..74c06d9c3 100644
--- a/modules/gourmet/api.go
+++ b/modules/gourmet/api.go
@@ -8,6 +8,7 @@ import (
const (
GourmetGetListResp = "getlist"
GourmetCreateOrderResp = "createorder"
+ GourmetSkillLvResp = "skilllv"
PagodaGetRewardResp = "getreward"
)
diff --git a/modules/gourmet/api_createorder.go b/modules/gourmet/api_createorder.go
index eb5ce51f3..8053f6e6d 100644
--- a/modules/gourmet/api_createorder.go
+++ b/modules/gourmet/api_createorder.go
@@ -24,6 +24,7 @@ func (this *apiComp) CreateOrder(session comm.IUserSession, req *pb.GourmetCreat
res []*cfg.Gameatn
costTime int32
)
+
code = this.CreateOrderCheck(session, req)
if code != pb.ErrorCode_Success {
return // 参数校验失败直接返回
@@ -38,10 +39,9 @@ func (this *apiComp) CreateOrder(session comm.IUserSession, req *pb.GourmetCreat
if order.FoodCount == 0 {
continue
}
- foodtype := order.FoodType //
+ foodtype := order.FoodType
// 获取技能等级
skillLv := _gourmet.Skill[foodtype]
-
// 计算出需要的时间
_skillCfg := this.module.configure.GetGourmetSkillConfigData(foodtype, skillLv)
costTime += _skillCfg.Needtime * order.FoodCount
@@ -49,15 +49,21 @@ func (this *apiComp) CreateOrder(session comm.IUserSession, req *pb.GourmetCreat
if _gourmet.Foods == nil { // 队列数据为nil 直接将订单数据给ta
_gourmet.Foods = req.Order
} else {
- for _, v := range _gourmet.Foods {
- for _, v1 := range req.Order {
+ for _, v := range req.Order {
+ bFound := false
+ for _, v1 := range _gourmet.Foods {
if v.FoodType == v1.FoodType {
- v.FoodCount += v1.FoodCount // 加对应的数量
+ v1.FoodCount += v.FoodCount // 加对应的数量
+ bFound = true
break
}
}
+ if !bFound {
+ _gourmet.Foods = append(_gourmet.Foods, v)
+ }
}
}
+
if _gourmet.CookingFood == nil || (_gourmet.CookingFood != nil && _gourmet.CookingFood.ETime == 0) {
for _, v := range _gourmet.Foods {
if v.FoodCount > 0 {
@@ -71,6 +77,14 @@ func (this *apiComp) CreateOrder(session comm.IUserSession, req *pb.GourmetCreat
break
}
}
+
+ }
+ // 計算耗時
+ for _, v := range _gourmet.Foods {
+ if v.FoodCount > 0 {
+ _skillCfg := this.module.configure.GetGourmetSkillConfigData(v.FoodType, _gourmet.Skill[v.FoodType])
+ v.CookTime = _skillCfg.Needtime * v.FoodCount
+ }
}
if _gourmet.CookingFood != nil && _gourmet.CookingFood.ETime == 0 {
_gourmet.CookingFood = nil
diff --git a/modules/gourmet/api_foodskilllv.go b/modules/gourmet/api_foodskilllv.go
new file mode 100644
index 000000000..2d5da755e
--- /dev/null
+++ b/modules/gourmet/api_foodskilllv.go
@@ -0,0 +1,74 @@
+package gourmet
+
+import (
+ "crypto/rand"
+ "go_dreamfactory/comm"
+ "go_dreamfactory/pb"
+ "math/big"
+
+ "google.golang.org/protobuf/proto"
+)
+
+//参数校验
+func (this *apiComp) SkillLVCheck(session comm.IUserSession, req *pb.GourmetSkillLvReq) (code pb.ErrorCode) {
+ if req.SkillType == 0 {
+ code = pb.ErrorCode_ReqParameterError
+ }
+ return
+}
+
+///美食城厨师技能升级
+func (this *apiComp) SkillLV(session comm.IUserSession, req *pb.GourmetSkillLvReq) (code pb.ErrorCode, dat proto.Message) {
+ var (
+ bSpecial bool // 是不是特殊技能
+ )
+ code = this.SkillLVCheck(session, req)
+ if code != pb.ErrorCode_Success {
+ return // 参数校验失败直接返回
+ }
+ _gourmet, err := this.module.modelGourmet.getGourmetList(session.GetUserId())
+ if err != nil {
+ code = pb.ErrorCode_DBError
+ return
+ }
+
+ skilllv, ok := _gourmet.Skill[req.SkillType]
+ if !ok { // 校验技能存不存在
+ skilllv, ok = _gourmet.SpecialSkill[req.SkillType]
+ if !ok {
+ code = pb.ErrorCode_ReqParameterError
+ return
+ }
+ bSpecial = true
+ }
+
+ if this.module.configure.GetGourmetSkillConfigData(req.SkillType, skilllv+1) == nil { // 下一级是否存在
+ code = pb.ErrorCode_GourmetSkillMaxLv
+ return
+ }
+ _skillCfg := this.module.configure.GetGourmetSkillConfigData(req.SkillType, skilllv) // 获取技能配置
+
+ // code = this.module.CheckRes(session, _skillCfg.Consume) // 消耗检测
+ // if code != pb.ErrorCode_Success {
+ // return
+ // }
+ code = this.module.ConsumeRes(session, _skillCfg.Consume, true) // 消耗检测
+ if code != pb.ErrorCode_Success {
+ return
+ }
+ // 概率升级
+ n, _ := rand.Int(rand.Reader, big.NewInt(1000))
+
+ if n.Int64() < int64(_skillCfg.Probability) { // 可以升级
+ // 技能升级成功
+ if bSpecial { // 通用技能升级
+ _gourmet.SpecialSkill[req.SkillType] += 1
+ this.module.modelGourmet.CalculationSpecialSkillLv(session.GetUserId(), _gourmet, req.SkillType, _gourmet.SpecialSkill[req.SkillType])
+ } else { // 某一类型技能升级
+ _gourmet.Skill[req.SkillType] += 1
+ this.module.modelGourmet.CalculationGourmetbySkiiLv(session.GetUserId(), _gourmet, req.SkillType, _gourmet.Skill[req.SkillType])
+ }
+ }
+ session.SendMsg(string(this.module.GetType()), GourmetSkillLvResp, &pb.GourmetSkillLvResp{Data: _gourmet})
+ return
+}
diff --git a/modules/gourmet/api_getReward.go b/modules/gourmet/api_getReward.go
index a23326c0a..42f05804e 100644
--- a/modules/gourmet/api_getReward.go
+++ b/modules/gourmet/api_getReward.go
@@ -20,6 +20,6 @@ func (this *apiComp) GetReward(session comm.IUserSession, req *pb.GourmetGetRewa
if code != pb.ErrorCode_Success {
return // 参数校验失败直接返回
}
-
+ code = pb.ErrorCode_AgentUidEmpty
return
}
diff --git a/modules/gourmet/api_getlist.go b/modules/gourmet/api_getlist.go
index f8ff4814a..10d194f6b 100644
--- a/modules/gourmet/api_getlist.go
+++ b/modules/gourmet/api_getlist.go
@@ -26,7 +26,7 @@ func (this *apiComp) GetList(session comm.IUserSession, req *pb.GourmetGetListRe
return
}
// 计算订单信息
- this.module.modelGourmet.CalculationGourmet(_gourmet)
+ this.module.modelGourmet.CalculationGourmet(session.GetUserId(), _gourmet)
session.SendMsg(string(this.module.GetType()), GourmetGetListResp, &pb.GourmetGetListResp{Data: _gourmet})
return
}
diff --git a/modules/gourmet/api_skilllv.go b/modules/gourmet/api_skilllv.go
deleted file mode 100644
index 0ad9f820f..000000000
--- a/modules/gourmet/api_skilllv.go
+++ /dev/null
@@ -1,25 +0,0 @@
-package gourmet
-
-import (
- "go_dreamfactory/comm"
- "go_dreamfactory/pb"
-
- "google.golang.org/protobuf/proto"
-)
-
-//参数校验
-func (this *apiComp) SkillLvCheck(session comm.IUserSession, req *pb.GourmetSkillLvReq) (code pb.ErrorCode) {
-
- return
-}
-
-///美食城领取奖励
-func (this *apiComp) SkillLv(session comm.IUserSession, req *pb.GourmetSkillLvReq) (code pb.ErrorCode, data proto.Message) {
-
- code = this.SkillLvCheck(session, req)
- if code != pb.ErrorCode_Success {
- return // 参数校验失败直接返回
- }
-
- return
-}
diff --git a/modules/gourmet/model_gourmet.go b/modules/gourmet/model_gourmet.go
index 5d5dc0b2a..8fa10e862 100644
--- a/modules/gourmet/model_gourmet.go
+++ b/modules/gourmet/model_gourmet.go
@@ -7,6 +7,8 @@ import (
"go_dreamfactory/modules"
"go_dreamfactory/pb"
"time"
+
+ "go.mongodb.org/mongo-driver/bson/primitive"
)
type modelGourmet struct {
@@ -26,13 +28,15 @@ func (this *modelGourmet) getGourmetList(uid string) (result *pb.DBGourmet, err
result = &pb.DBGourmet{}
if err = this.Get(uid, result); err != nil {
if redis.RedisNil != err { // 没有数据直接创建新的数据
+ result.Id = primitive.NewObjectID().Hex()
result.Uid = uid
result.Skill = make(map[int32]int32, 0)
- result.Skill[10011] = 1
- result.Skill[10021] = 1
- result.Skill[10031] = 1
- result.Skill[10041] = 1 // 需要后续查询初始为1 的技能id 临时push
- result.ProductionSkill = 10051 // 通用技能
+ result.Skill[1001] = 1
+ result.Skill[1002] = 1
+ result.Skill[1003] = 1
+ result.Skill[1004] = 1 // 需要后续查询初始为1 的技能id 临时push
+ result.SpecialSkill = make(map[int32]int32, 0)
+ result.SpecialSkill[1005] = 1 // 通用技能
if err = this.Add(uid, result); err != nil {
this.module.Errorf("err:%v", err)
err = nil
@@ -54,18 +58,22 @@ func GetDropReward(count, dropId int32) (res []*pb.UserAssets) {
}
// 计算订单信息
-func (this *modelGourmet) CalculationGourmet(gourmet *pb.DBGourmet) {
+func (this *modelGourmet) CalculationGourmet(uid string, gourmet *pb.DBGourmet) {
var (
bCooking bool
costTime int32
curTime int32
)
- if gourmet.CookingFood != nil && gourmet.CookingFood.ETime == 0 {
+ mapData := make(map[string]interface{}, 0)
+ if gourmet.CookingFood != nil && gourmet.CookingFood.ETime > 0 {
costTime = int32(time.Now().Unix() - gourmet.CookingFood.ETime) // 当前过去的时间
if costTime < 0 { // 没有完成 不做处理
return
}
}
+ if gourmet.CookingFood == nil {
+ gourmet.CookingFood = &pb.Cooking{}
+ }
for _, order := range gourmet.Foods {
if order.FoodCount == 0 {
continue
@@ -77,8 +85,12 @@ func (this *modelGourmet) CalculationGourmet(gourmet *pb.DBGourmet) {
// 计算出需要的时间
_skillCfg := this.module.configure.GetGourmetSkillConfigData(foodtype, skillLv) // 技能配置表
_gourmetcfg := this.module.configure.GetGourmetConfigData(foodtype, skillLv) // 美食家配置表
- for i := 1; i < int(order.FoodCount+1); i++ {
- curTime += _skillCfg.Needtime //* order.FoodCount
+ for i := 0; i < int(order.FoodCount); i++ {
+ curTime += _skillCfg.Needtime
+ order.FoodCount--
+ gourmet.Items = GetDropReward(_gourmetcfg.Using, _gourmetcfg.Propsgroup)
+ // 累计时间也减少
+
if curTime > costTime {
// 转时间戳
eTimd := time.Now().Unix() + int64(curTime-costTime)
@@ -88,15 +100,58 @@ func (this *modelGourmet) CalculationGourmet(gourmet *pb.DBGourmet) {
// 记录下订单时间
gourmet.Ctime = time.Now().Unix()
+ mapData["ctime"] = gourmet.Ctime
break
}
- order.FoodCount--
- gourmet.Items = GetDropReward(_gourmetcfg.Using, _gourmetcfg.Propsgroup)
- // 累计时间也减少
gourmet.OrderCostTime += curTime
}
+ if bCooking { // 分配了正在製作的食物
+ break
+ }
}
if !bCooking { // 经过计算没有烹饪食物的时候
gourmet.CookingFood = nil
}
+
+ // 保存信息
+ mapData["foods"] = gourmet.Foods
+ mapData["orderCostTime"] = gourmet.OrderCostTime
+ mapData["cookingFood"] = gourmet.CookingFood // 正在做的
+ this.module.ModifyGourmetData(uid, mapData)
+}
+
+// 技能等级提高了 重新计算订单时间(只对订单中数据有影响)
+func (this *modelGourmet) CalculationGourmetbySkiiLv(uid string, gourmet *pb.DBGourmet, skillType int32, skilllv int32) {
+ mapData := make(map[string]interface{}, 0)
+ for _, v := range gourmet.Foods {
+ if v.FoodCount > 0 && v.FoodType == skillType {
+ _skillCfg := this.module.configure.GetGourmetSkillConfigData(skillType, skilllv)
+ if _skillCfg != nil {
+ v.CookTime = _skillCfg.Needtime * v.FoodCount
+ mapData["foods"] = gourmet.Foods
+ }
+ break
+ }
+ }
+ mapData["skill"] = gourmet.Skill
+ this.module.ModifyGourmetData(uid, mapData)
+}
+
+// 升级高效制作技能重计算时间消耗
+func (this *modelGourmet) CalculationSpecialSkillLv(uid string, gourmet *pb.DBGourmet, skillType int32, skilllv int32) {
+ mapData := make(map[string]interface{}, 0)
+ for _, v := range gourmet.Foods {
+ if v.FoodCount > 0 {
+ _skillCfg := this.module.configure.GetGourmetSkillConfigData(skillType, skilllv)
+ if _skillCfg != nil {
+ v.CookTime += _skillCfg.Needtime * v.FoodCount
+ if v.CookTime < 0 { // 担心配置错误 为负数情况 所以这里做下判断
+ v.CookTime = 0
+ }
+ mapData["foods"] = gourmet.Foods
+ }
+ }
+ }
+ mapData["specialSkill"] = gourmet.SpecialSkill
+ this.module.ModifyGourmetData(uid, mapData)
}
diff --git a/pb/errorcode.pb.go b/pb/errorcode.pb.go
index 6fce46288..80a968251 100644
--- a/pb/errorcode.pb.go
+++ b/pb/errorcode.pb.go
@@ -148,6 +148,7 @@ const (
ErrorCode_MartialhallUnlocked ErrorCode = 2002 //已解锁
// 美食馆
ErrorCode_GourmetMoreOrderTime ErrorCode = 2101 // 超过订单时长
+ ErrorCode_GourmetSkillMaxLv ErrorCode = 2102 // 技能已经达到满级
)
// Enum value maps for ErrorCode.
@@ -266,6 +267,7 @@ var (
2001: "MartialhallInUse",
2002: "MartialhallUnlocked",
2101: "GourmetMoreOrderTime",
+ 2102: "GourmetSkillMaxLv",
}
ErrorCode_value = map[string]int32{
"Success": 0,
@@ -381,6 +383,7 @@ var (
"MartialhallInUse": 2001,
"MartialhallUnlocked": 2002,
"GourmetMoreOrderTime": 2101,
+ "GourmetSkillMaxLv": 2102,
}
)
@@ -415,7 +418,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, 0xf4, 0x12, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12,
+ 0x6f, 0x2a, 0x8c, 0x13, 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,
@@ -566,8 +569,9 @@ var file_errorcode_proto_rawDesc = []byte{
0x10, 0xd1, 0x0f, 0x12, 0x18, 0x0a, 0x13, 0x4d, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x68, 0x61,
0x6c, 0x6c, 0x55, 0x6e, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0xd2, 0x0f, 0x12, 0x19, 0x0a,
0x14, 0x47, 0x6f, 0x75, 0x72, 0x6d, 0x65, 0x74, 0x4d, 0x6f, 0x72, 0x65, 0x4f, 0x72, 0x64, 0x65,
- 0x72, 0x54, 0x69, 0x6d, 0x65, 0x10, 0xb5, 0x10, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62,
- 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x72, 0x54, 0x69, 0x6d, 0x65, 0x10, 0xb5, 0x10, 0x12, 0x16, 0x0a, 0x11, 0x47, 0x6f, 0x75, 0x72,
+ 0x6d, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4d, 0x61, 0x78, 0x4c, 0x76, 0x10, 0xb6, 0x10,
+ 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
diff --git a/pb/gourmet_db.pb.go b/pb/gourmet_db.pb.go
index 9f0405e8a..626fec87f 100644
--- a/pb/gourmet_db.pb.go
+++ b/pb/gourmet_db.pb.go
@@ -145,15 +145,15 @@ type DBGourmet struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //ID
- Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid" bson:"uid"` //用户ID
- CookingFood *Cooking `protobuf:"bytes,3,opt,name=cookingFood,proto3" json:"cookingFood" bson:"cookingFood"` //正在烹饪的食品
- Foods []*OrderCook `protobuf:"bytes,4,rep,name=foods,proto3" json:"foods"` // 等待烹饪的食品
- Items []*UserAssets `protobuf:"bytes,5,rep,name=items,proto3" json:"items"` // 已经做好的食品
- Skill map[int32]int32 `protobuf:"bytes,6,rep,name=skill,proto3" json:"skill" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3" bson:"skill"` //技能ID
- ProductionSkill int32 `protobuf:"varint,7,opt,name=productionSkill,proto3" json:"productionSkill"` // 通用技能
- OrderCostTime int32 `protobuf:"varint,8,opt,name=orderCostTime,proto3" json:"orderCostTime" bson:"orderCostTime"` //订单消耗的时常
- Ctime int64 `protobuf:"varint,9,opt,name=ctime,proto3" json:"ctime"` // 订单创建时间
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //ID
+ Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid" bson:"uid"` //用户ID
+ CookingFood *Cooking `protobuf:"bytes,3,opt,name=cookingFood,proto3" json:"cookingFood" bson:"cookingFood"` //正在烹饪的食品
+ Foods []*OrderCook `protobuf:"bytes,4,rep,name=foods,proto3" json:"foods"` // 等待烹饪的食品
+ Items []*UserAssets `protobuf:"bytes,5,rep,name=items,proto3" json:"items"` // 已经做好的食品
+ Skill map[int32]int32 `protobuf:"bytes,6,rep,name=skill,proto3" json:"skill" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3" bson:"skill"` //技能ID
+ SpecialSkill map[int32]int32 `protobuf:"bytes,7,rep,name=specialSkill,proto3" json:"specialSkill" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3" bson:"specialSkill"` //通用技能
+ OrderCostTime int32 `protobuf:"varint,8,opt,name=orderCostTime,proto3" json:"orderCostTime" bson:"orderCostTime"` //订单消耗的时常
+ Ctime int64 `protobuf:"varint,9,opt,name=ctime,proto3" json:"ctime"` // 订单创建时间
}
func (x *DBGourmet) Reset() {
@@ -230,11 +230,11 @@ func (x *DBGourmet) GetSkill() map[int32]int32 {
return nil
}
-func (x *DBGourmet) GetProductionSkill() int32 {
+func (x *DBGourmet) GetSpecialSkill() map[int32]int32 {
if x != nil {
- return x.ProductionSkill
+ return x.SpecialSkill
}
- return 0
+ return nil
}
func (x *DBGourmet) GetOrderCostTime() int32 {
@@ -266,7 +266,7 @@ var file_gourmet_gourmet_db_proto_rawDesc = []byte{
0x66, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52,
0x09, 0x66, 0x6f, 0x6f, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f,
0x6f, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x6f,
- 0x6f, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xeb, 0x02, 0x0a, 0x09, 0x44, 0x42, 0x47, 0x6f, 0x75,
+ 0x6f, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xc4, 0x03, 0x0a, 0x09, 0x44, 0x42, 0x47, 0x6f, 0x75,
0x72, 0x6d, 0x65, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x2a, 0x0a, 0x0b, 0x63, 0x6f, 0x6f, 0x6b, 0x69, 0x6e,
@@ -279,18 +279,23 @@ var file_gourmet_gourmet_db_proto_rawDesc = []byte{
0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x2b, 0x0a, 0x05, 0x73, 0x6b, 0x69, 0x6c, 0x6c,
0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x44, 0x42, 0x47, 0x6f, 0x75, 0x72, 0x6d,
0x65, 0x74, 0x2e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x73,
- 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69,
- 0x6f, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x70,
- 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x24,
- 0x0a, 0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18,
- 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x73, 0x74,
- 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20,
- 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x74, 0x69, 0x6d, 0x65, 0x1a, 0x38, 0x0a, 0x0a, 0x53, 0x6b,
- 0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
- 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
- 0x3a, 0x02, 0x38, 0x01, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x33,
+ 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x40, 0x0a, 0x0c, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53,
+ 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x44, 0x42, 0x47,
+ 0x6f, 0x75, 0x72, 0x6d, 0x65, 0x74, 0x2e, 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x6b,
+ 0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0c, 0x73, 0x70, 0x65, 0x63, 0x69, 0x61,
+ 0x6c, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x43,
+ 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6f,
+ 0x72, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05,
+ 0x63, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x63, 0x74, 0x69,
+ 0x6d, 0x65, 0x1a, 0x38, 0x0a, 0x0a, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72, 0x79,
+ 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b,
+ 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28,
+ 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x3f, 0x0a, 0x11,
+ 0x53, 0x70, 0x65, 0x63, 0x69, 0x61, 0x6c, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x45, 0x6e, 0x74, 0x72,
+ 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03,
+ 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01,
+ 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x06, 0x5a,
+ 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -305,24 +310,26 @@ func file_gourmet_gourmet_db_proto_rawDescGZIP() []byte {
return file_gourmet_gourmet_db_proto_rawDescData
}
-var file_gourmet_gourmet_db_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
+var file_gourmet_gourmet_db_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
var file_gourmet_gourmet_db_proto_goTypes = []interface{}{
(*Cooking)(nil), // 0: Cooking
(*OrderCook)(nil), // 1: OrderCook
(*DBGourmet)(nil), // 2: DBGourmet
nil, // 3: DBGourmet.SkillEntry
- (*UserAssets)(nil), // 4: UserAssets
+ nil, // 4: DBGourmet.SpecialSkillEntry
+ (*UserAssets)(nil), // 5: UserAssets
}
var file_gourmet_gourmet_db_proto_depIdxs = []int32{
0, // 0: DBGourmet.cookingFood:type_name -> Cooking
1, // 1: DBGourmet.foods:type_name -> OrderCook
- 4, // 2: DBGourmet.items:type_name -> UserAssets
+ 5, // 2: DBGourmet.items:type_name -> UserAssets
3, // 3: DBGourmet.skill:type_name -> DBGourmet.SkillEntry
- 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
+ 4, // 4: DBGourmet.specialSkill:type_name -> DBGourmet.SpecialSkillEntry
+ 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_gourmet_gourmet_db_proto_init() }
@@ -375,7 +382,7 @@ func file_gourmet_gourmet_db_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_gourmet_gourmet_db_proto_rawDesc,
NumEnums: 0,
- NumMessages: 4,
+ NumMessages: 5,
NumExtensions: 0,
NumServices: 0,
},
diff --git a/pb/gourmet_msg.pb.go b/pb/gourmet_msg.pb.go
index 35ebd947f..ca021a38b 100644
--- a/pb/gourmet_msg.pb.go
+++ b/pb/gourmet_msg.pb.go
@@ -294,7 +294,7 @@ type GourmetSkillLvReq struct {
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
- SkillId int32 `protobuf:"varint,1,opt,name=skillId,proto3" json:"skillId"` // 技能id
+ SkillType int32 `protobuf:"varint,1,opt,name=skillType,proto3" json:"skillType"` // 技能id
}
func (x *GourmetSkillLvReq) Reset() {
@@ -329,9 +329,9 @@ func (*GourmetSkillLvReq) Descriptor() ([]byte, []int) {
return file_gourmet_gourmet_msg_proto_rawDescGZIP(), []int{6}
}
-func (x *GourmetSkillLvReq) GetSkillId() int32 {
+func (x *GourmetSkillLvReq) GetSkillType() int32 {
if x != nil {
- return x.SkillId
+ return x.SkillType
}
return 0
}
@@ -406,14 +406,14 @@ var file_gourmet_gourmet_msg_proto_rawDesc = []byte{
0x47, 0x6f, 0x75, 0x72, 0x6d, 0x65, 0x74, 0x47, 0x65, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64,
0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x42, 0x47, 0x6f, 0x75, 0x72, 0x6d, 0x65, 0x74, 0x52, 0x04,
- 0x64, 0x61, 0x74, 0x61, 0x22, 0x2d, 0x0a, 0x11, 0x47, 0x6f, 0x75, 0x72, 0x6d, 0x65, 0x74, 0x53,
- 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6b, 0x69,
- 0x6c, 0x6c, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x6b, 0x69, 0x6c,
- 0x6c, 0x49, 0x64, 0x22, 0x34, 0x0a, 0x12, 0x47, 0x6f, 0x75, 0x72, 0x6d, 0x65, 0x74, 0x53, 0x6b,
- 0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x64, 0x61, 0x74,
- 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x42, 0x47, 0x6f, 0x75, 0x72,
- 0x6d, 0x65, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70,
- 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x64, 0x61, 0x74, 0x61, 0x22, 0x31, 0x0a, 0x11, 0x47, 0x6f, 0x75, 0x72, 0x6d, 0x65, 0x74, 0x53,
+ 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x6b, 0x69,
+ 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x6b,
+ 0x69, 0x6c, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x22, 0x34, 0x0a, 0x12, 0x47, 0x6f, 0x75, 0x72, 0x6d,
+ 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a,
+ 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x44, 0x42,
+ 0x47, 0x6f, 0x75, 0x72, 0x6d, 0x65, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x06, 0x5a,
+ 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
From 48270ee931ce1d55301a4ff6d6a30b143cb2fa0b Mon Sep 17 00:00:00 2001
From: meixiongfeng <766881921@qq.com>
Date: Wed, 17 Aug 2022 19:09:53 +0800
Subject: [PATCH 02/10] =?UTF-8?q?=E5=88=AA=E9=99=A4=E4=B8=8D=E7=94=A8?=
=?UTF-8?q?=E7=9A=84=E6=96=87=E4=BB=B6?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
modules/hero/configure_comp.go | 44 ++++--------
sys/configure/structs/game.drawUpdraw.go | 42 -----------
sys/configure/structs/game.drawUpdrawData.go | 76 --------------------
3 files changed, 12 insertions(+), 150 deletions(-)
delete mode 100644 sys/configure/structs/game.drawUpdraw.go
delete mode 100644 sys/configure/structs/game.drawUpdrawData.go
diff --git a/modules/hero/configure_comp.go b/modules/hero/configure_comp.go
index dd13398da..b88f23993 100644
--- a/modules/hero/configure_comp.go
+++ b/modules/hero/configure_comp.go
@@ -38,20 +38,18 @@ func (this *configureComp) Init(service core.IService, module core.IModule, comp
err = this.MCompConfigure.Init(service, module, comp, options)
err = this.LoadMultiConfigure(map[string]interface{}{
- new_hero: cfg.NewGamehero,
- hero_stargrow: cfg.NewGameheroStargrow,
- hero_levelgrow: cfg.NewGameheroLevelgrow,
- hero_starup: cfg.NewGameheroStarup,
- hero_levelup: cfg.NewGameheroLevelup,
- hero_exp: cfg.NewGameheroExp,
- hero_skillup: cfg.NewGameheroSkillLevel,
- game_skillatk: cfg.NewGameskillAtk,
- hero_resonance: cfg.NewGameheroResonance,
- hero_comatn: cfg.NewGamecomAtn,
- hero_awaken: cfg.NewGameheroAwaken,
- hero_drawcard: cfg.NewGamedrawCard,
- hero_drawupdraw: cfg.NewGame_drawUpdraw,
- //hero_drawcost: cfg.NewGamedrawCost,
+ new_hero: cfg.NewGamehero,
+ hero_stargrow: cfg.NewGameheroStargrow,
+ hero_levelgrow: cfg.NewGameheroLevelgrow,
+ hero_starup: cfg.NewGameheroStarup,
+ hero_levelup: cfg.NewGameheroLevelup,
+ hero_exp: cfg.NewGameheroExp,
+ hero_skillup: cfg.NewGameheroSkillLevel,
+ game_skillatk: cfg.NewGameskillAtk,
+ hero_resonance: cfg.NewGameheroResonance,
+ hero_comatn: cfg.NewGamecomAtn,
+ hero_awaken: cfg.NewGameheroAwaken,
+ hero_drawcard: cfg.NewGamedrawCard,
})
this.drawCardCfg = make(map[string]map[int32][]*cfg.GamedrawCardData, 0)
@@ -383,21 +381,3 @@ func (this *configureComp) GetHeroAwakenConfig() (configure *cfg.GameheroAwaken,
return
}
-
-// 抽卡概率提高
-func (this *configureComp) GetDrawUpDrawConfig() (configure *cfg.Game_drawUpdraw, err error) {
- var (
- v interface{}
- ok bool
- )
- if v, err = this.GetConfigure(hero_drawupdraw); err == nil {
- if configure, ok = v.(*cfg.Game_drawUpdraw); !ok {
- err = fmt.Errorf("%T no is *cfg.Game_drawUpdraw", v)
- return
- }
- } else {
- err = fmt.Errorf("%T no is *cfg.Game_drawUpdraw", v)
- }
-
- return
-}
diff --git a/sys/configure/structs/game.drawUpdraw.go b/sys/configure/structs/game.drawUpdraw.go
deleted file mode 100644
index 0cea3ae06..000000000
--- a/sys/configure/structs/game.drawUpdraw.go
+++ /dev/null
@@ -1,42 +0,0 @@
-
-//------------------------------------------------------------------------------
-//
-// 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 Game_drawUpdraw struct {
- _dataMap map[int32]*Game_drawUpdrawData
- _dataList []*Game_drawUpdrawData
-}
-
-func NewGame_drawUpdraw(_buf []map[string]interface{}) (*Game_drawUpdraw, error) {
- _dataList := make([]*Game_drawUpdrawData, 0, len(_buf))
- dataMap := make(map[int32]*Game_drawUpdrawData)
- for _, _ele_ := range _buf {
- if _v, err2 := NewGame_drawUpdrawData(_ele_); err2 != nil {
- return nil, err2
- } else {
- _dataList = append(_dataList, _v)
- dataMap[_v.Key] = _v
- }
- }
- return &Game_drawUpdraw{_dataList:_dataList, _dataMap:dataMap}, nil
-}
-
-func (table *Game_drawUpdraw) GetDataMap() map[int32]*Game_drawUpdrawData {
- return table._dataMap
-}
-
-func (table *Game_drawUpdraw) GetDataList() []*Game_drawUpdrawData {
- return table._dataList
-}
-
-func (table *Game_drawUpdraw) Get(key int32) *Game_drawUpdrawData {
- return table._dataMap[key]
-}
-
-
diff --git a/sys/configure/structs/game.drawUpdrawData.go b/sys/configure/structs/game.drawUpdrawData.go
deleted file mode 100644
index 34ea70783..000000000
--- a/sys/configure/structs/game.drawUpdrawData.go
+++ /dev/null
@@ -1,76 +0,0 @@
-
-//------------------------------------------------------------------------------
-//
-// 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 Game_drawUpdrawData struct {
- Key int32
- TimeOn int32
- TimeOff int32
- UpHero []string
- UpWeight []int32
- TriggerNum int32
- IncreaseWeight []int32
-}
-
-func (Game_drawUpdrawData) GetTypeId() int {
- return 297664649
-}
-
-func NewGame_drawUpdrawData(_buf map[string]interface{}) (_v *Game_drawUpdrawData, err error) {
- _v = &Game_drawUpdrawData{}
- { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["key"].(float64); !_ok_ { err = errors.New("key error"); return }; _v.Key = int32(_tempNum_) }
- { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["time_on"].(float64); !_ok_ { err = errors.New("time_on error"); return }; _v.TimeOn = int32(_tempNum_) }
- { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["time_off"].(float64); !_ok_ { err = errors.New("time_off error"); return }; _v.TimeOff = int32(_tempNum_) }
- {
- var _arr_ []interface{}
- var _ok_ bool
- if _arr_, _ok_ = _buf["up_hero"].([]interface{}); !_ok_ { err = errors.New("up_hero error"); return }
-
- _v.UpHero = 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.UpHero = append(_v.UpHero, _list_v_)
- }
- }
-
- {
- var _arr_ []interface{}
- var _ok_ bool
- if _arr_, _ok_ = _buf["up_weight"].([]interface{}); !_ok_ { err = errors.New("up_weight error"); return }
-
- _v.UpWeight = 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.UpWeight = append(_v.UpWeight, _list_v_)
- }
- }
-
- { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["trigger_num"].(float64); !_ok_ { err = errors.New("trigger_num error"); return }; _v.TriggerNum = int32(_tempNum_) }
- {
- var _arr_ []interface{}
- var _ok_ bool
- if _arr_, _ok_ = _buf["Increase_weight"].([]interface{}); !_ok_ { err = errors.New("Increase_weight error"); return }
-
- _v.IncreaseWeight = 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.IncreaseWeight = append(_v.IncreaseWeight, _list_v_)
- }
- }
-
- return
-}
From 0f162b129c04ea2853b7e0c7f50d0d6c82c11033 Mon Sep 17 00:00:00 2001
From: wh_zcy
Date: Tue, 16 Aug 2022 09:55:06 +0800
Subject: [PATCH 03/10] update mod
---
go.mod | 12 ++++++------
go.sum | 11 +++++++++++
2 files changed, 17 insertions(+), 6 deletions(-)
diff --git a/go.mod b/go.mod
index 7a8aed0b8..6e1c857b1 100644
--- a/go.mod
+++ b/go.mod
@@ -34,7 +34,7 @@ require (
github.com/valyala/fastrand v1.1.0
go.mongodb.org/mongo-driver v1.5.1
go.uber.org/multierr v1.6.0
- golang.org/x/net v0.0.0-20220407224826-aac1ed45d8e3
+ golang.org/x/net v0.0.0-20220722155237-a158d28d115b
google.golang.org/protobuf v1.28.0
gopkg.in/yaml.v2 v2.4.0
)
@@ -155,7 +155,7 @@ require (
github.com/xdg-go/stringprep v1.0.2 // indirect
github.com/xtaci/kcp-go v5.4.20+incompatible // indirect
github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d // indirect
- github.com/yuin/goldmark v1.4.1 // indirect
+ github.com/yuin/goldmark v1.4.13 // indirect
github.com/yusufpapurcu/wmi v1.2.2 // indirect
go.opentelemetry.io/otel v1.6.3 // indirect
go.opentelemetry.io/otel/trace v1.6.3 // indirect
@@ -164,11 +164,11 @@ require (
golang.org/x/crypto v0.0.0-20220408190544-5352b0902921 // indirect
golang.org/x/image v0.0.0-20220601225756-64ec528b34cd // indirect
golang.org/x/mobile v0.0.0-20211207041440-4e6c2922fdee // indirect
- golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 // indirect
- golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect
- golang.org/x/sys v0.0.0-20220712014510-0a85c31ab51e // indirect
+ golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 // indirect
+ golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 // indirect
+ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f // indirect
golang.org/x/text v0.3.7 // indirect
- golang.org/x/tools v0.1.10 // indirect
+ golang.org/x/tools v0.1.12 // indirect
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
gopkg.in/ini.v1 v1.62.0 // indirect
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
diff --git a/go.sum b/go.sum
index ba6705670..51c8b765f 100644
--- a/go.sum
+++ b/go.sum
@@ -768,6 +768,8 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1
github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
github.com/yuin/goldmark v1.4.1 h1:/vn0k+RBvwlxEmP5E7SZMqNxPhfMVFEJiykr15/0XKM=
github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
+github.com/yuin/goldmark v1.4.13 h1:fVcFKWvrslecOb/tg+Cc05dkeYx540o0FuFt3nUVDoE=
+github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
github.com/yusufpapurcu/wmi v1.2.2 h1:KBNDSne4vP5mbSWnJbO+51IMOXJB67QiYCSBrubbPRg=
github.com/yusufpapurcu/wmi v1.2.2/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0=
go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs=
@@ -867,6 +869,8 @@ golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro=
golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 h1:kQgndtyPBW/JIYERgdxfwMYh3AVStj88WQTlNDi2a+o=
golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY=
+golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s=
+golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
@@ -923,6 +927,8 @@ golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qx
golang.org/x/net v0.0.0-20211216030914-fe4d6282115f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20220407224826-aac1ed45d8e3 h1:EN5+DfgmRMvRUrMGERW2gQl3Vc+Z7ZMnI/xdEpPSf0c=
golang.org/x/net v0.0.0-20220407224826-aac1ed45d8e3/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
+golang.org/x/net v0.0.0-20220722155237-a158d28d115b h1:PxfKdU9lEEDYjdIzOtC4qFWgkU2rGHdKlKowJSMN9h0=
+golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20181017192945-9dcd33a902f4/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
golang.org/x/oauth2 v0.0.0-20181203162652-d668ce993890/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
@@ -951,6 +957,7 @@ golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -1030,6 +1037,8 @@ golang.org/x/sys v0.0.0-20220408201424-a24fb2fb8a0f/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220712014510-0a85c31ab51e h1:NHvCuwuS43lGnYhten69ZWqi2QOj/CiDNcKbVqwVoew=
golang.org/x/sys v0.0.0-20220712014510-0a85c31ab51e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f h1:v4INt8xihDGvnrfjMDVXGxw9wrfxYyCjk0KbXjhR55s=
+golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
@@ -1116,6 +1125,8 @@ golang.org/x/tools v0.1.8-0.20211022200916-316ba0b74098/go.mod h1:LGqMHiF4EqQNHR
golang.org/x/tools v0.1.8/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU=
golang.org/x/tools v0.1.10 h1:QjFRCZxdOhBJ/UNgnBZLbNV13DlbnK0quyivTnXJM20=
golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E=
+golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU=
+golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
From 6de3e9e4388b844c9ac370d3721ea05fd4244e8a Mon Sep 17 00:00:00 2001
From: wh_zcy
Date: Thu, 18 Aug 2022 09:23:54 +0800
Subject: [PATCH 04/10] gui
---
cmd/v2/model/gen.go | 10 +++
cmd/v2/service/dbServer.go | 61 ++++++++++++++++
cmd/v2/ui/app_gen.go | 146 +++++++++++++++++++++++++++++++++++++
cmd/v2/ui/toolwindow.go | 69 ++++++++++++++++++
4 files changed, 286 insertions(+)
create mode 100644 cmd/v2/model/gen.go
create mode 100644 cmd/v2/service/dbServer.go
create mode 100644 cmd/v2/ui/app_gen.go
create mode 100644 cmd/v2/ui/toolwindow.go
diff --git a/cmd/v2/model/gen.go b/cmd/v2/model/gen.go
new file mode 100644
index 000000000..c58151f44
--- /dev/null
+++ b/cmd/v2/model/gen.go
@@ -0,0 +1,10 @@
+package model
+
+type GenTool struct {
+ ClientDir string
+ InputDir string
+ OutputDir string
+ GenType int32
+
+
+}
diff --git a/cmd/v2/service/dbServer.go b/cmd/v2/service/dbServer.go
new file mode 100644
index 000000000..d908500b6
--- /dev/null
+++ b/cmd/v2/service/dbServer.go
@@ -0,0 +1,61 @@
+package service
+
+import (
+ "fmt"
+ "go_dreamfactory/cmd/v2/model"
+ "log"
+ "sync"
+ "time"
+
+ "github.com/boltdb/bolt"
+)
+
+type DbService interface {
+ Create(conf *model.GenTool) error
+ Update() error
+}
+
+type DbServiceImpl struct {
+}
+
+func NewDbService() DbService {
+ return &DbServiceImpl{}
+}
+
+func (this *DbServiceImpl) Create(conf *model.GenTool) error {
+ return nil
+}
+
+func (this *DbServiceImpl) Update() error {
+ return nil
+}
+
+var (
+ boltDb *bolt.DB
+ bucket *bolt.Bucket
+ once sync.Once
+ err error
+)
+
+func GetBoltDb() *bolt.DB {
+ once.Do(func() {
+ boltDb, err = bolt.Open("my.db", 0600, &bolt.Options{Timeout: 1 * time.Second})
+ if err != nil {
+ log.Fatal(err)
+ }
+
+ boltDb.Update(func(tx *bolt.Tx) error {
+ b := tx.Bucket([]byte("robotBucket"))
+ if b != nil {
+ bucket = b
+ } else {
+ bucket, err = tx.CreateBucket([]byte("robotBucket"))
+ if err != nil {
+ return fmt.Errorf("create bucket: %s", err)
+ }
+ }
+ return nil
+ })
+ })
+ return boltDb
+}
diff --git a/cmd/v2/ui/app_gen.go b/cmd/v2/ui/app_gen.go
new file mode 100644
index 000000000..e6a75d723
--- /dev/null
+++ b/cmd/v2/ui/app_gen.go
@@ -0,0 +1,146 @@
+package ui
+
+import (
+ "errors"
+ "fmt"
+ "go_dreamfactory/cmd/v2/lib/common"
+ "go_dreamfactory/cmd/v2/service/observer"
+ "os/exec"
+ "runtime"
+
+ "fyne.io/fyne/v2"
+ "fyne.io/fyne/v2/container"
+ "fyne.io/fyne/v2/dialog"
+ "fyne.io/fyne/v2/theme"
+ "fyne.io/fyne/v2/widget"
+ "github.com/sirupsen/logrus"
+)
+
+type appGen struct {
+ appAdapter
+
+ obs observer.Observer
+}
+
+func (this *appGen) LazyInit(obs observer.Observer) error {
+ this.obs = obs
+
+ this.tabItem = container.NewTabItemWithIcon(common.TOOLBAR_GEN, theme.ContentCopyIcon(), nil)
+
+ content := container.NewMax()
+ content.Objects = []fyne.CanvasObject{}
+
+ serverAddr := widget.NewEntry()
+ serverAddr.PlaceHolder = "服务器地址"
+ serverAddr.Text = "10.0.1.11"
+
+ projectDir := widget.NewEntry()
+ projectDir.PlaceHolder = "项目目录"
+ projectDir.Text = "E:\\projects\\workspace\\go_dreamfactory"
+
+ workDir := widget.NewEntry()
+ workDir.PlaceHolder = "LuBan目录"
+ workDir.Text = "E:\\svn\\dreamworks\\client\\dreamworks\\ExcelFile"
+
+ // client
+ client := widget.NewEntry()
+ client.PlaceHolder = "配置Luban Client.exe路径"
+ client.Text = "\\Luban.Client\\Luban.Client.exe"
+
+ //define
+ define := widget.NewEntry()
+ define.PlaceHolder = "定义文件"
+ define.Text = "\\Defines\\__root__.xml"
+
+ // output
+ outputCodeDir := widget.NewEntry()
+ outputCodeDir.Text = "\\sys\\configure\\structs"
+ outputJsonDir := widget.NewEntry()
+ outputJsonDir.Text = "\\bin\\json"
+
+ //input
+ inputDir := widget.NewEntry()
+ inputDir.Text = "\\Datas"
+
+ //genType
+ var genTypeText string
+ genType := widget.NewSelect([]string{"go", "json", "all"}, func(s string) {
+ genTypeText = s
+ })
+ genType.PlaceHolder = "生成类型"
+
+ form := widget.NewForm(
+ widget.NewFormItem("工作目录", workDir),
+ widget.NewFormItem("Client", client),
+ widget.NewFormItem("输入目录", inputDir),
+ widget.NewFormItem("输出Code目录", outputCodeDir),
+ widget.NewFormItem("输出JSON目录", outputJsonDir),
+ widget.NewFormItem("生成类型", genType),
+ )
+
+ getType := func() string {
+ if genTypeText == "" {
+ return ""
+ } else {
+ if genTypeText == "go" {
+ return "code_go_json"
+ } else if genTypeText == "json" {
+ return "data_json"
+ } else if genTypeText == "all" {
+ return "code_go_json,data_json"
+ }
+ }
+ return ""
+ }
+
+ form.SubmitText = "确定"
+ form.OnSubmit = func() {
+ if runtime.GOOS != "windows" {
+ dialog.ShowError(errors.New("no support "+runtime.GOOS), toolWin.w)
+ return
+ }
+
+ if genTypeText == "" {
+ dialog.ShowError(errors.New("类型未选择"), toolWin.w)
+ return
+ }
+ // service.GetBoltDb().Update(func(tx *bolt.Tx) error {
+
+ // return nil
+ // })
+ str := `%s -h %s -j cfg -- -d %s --input_data_dir %s --output_code_dir %s --output_data_dir %s --gen_types %s --go:bright_module_name bright -s server`
+
+ arg := fmt.Sprintf(str,
+ workDir.Text+client.Text,
+ serverAddr.Text,
+ workDir.Text+define.Text,
+ workDir.Text+inputDir.Text,
+ projectDir.Text+outputCodeDir.Text,
+ projectDir.Text+outputJsonDir.Text,
+ getType(),
+ )
+
+ logrus.Debug(arg)
+ c := exec.Command("cmd.exe", "/c", arg)
+ if err := c.Run(); err != nil {
+ dialog.ShowError(err, toolWin.w)
+ return
+ }
+ }
+ content.Objects = append(content.Objects, form)
+
+ this.tabItem.Content = content
+ return nil
+}
+
+func (a *appGen) OpenDefault() bool {
+ return true
+}
+
+func (a *appGen) GetAppName() string {
+ return common.TOOLBAR_GEN
+}
+
+func (a appGen) OnClose() bool {
+ return false
+}
diff --git a/cmd/v2/ui/toolwindow.go b/cmd/v2/ui/toolwindow.go
new file mode 100644
index 000000000..fd106563d
--- /dev/null
+++ b/cmd/v2/ui/toolwindow.go
@@ -0,0 +1,69 @@
+package ui
+
+import (
+ "go_dreamfactory/cmd/v2/lib/common"
+
+ "fyne.io/fyne/v2"
+ "fyne.io/fyne/v2/container"
+ "fyne.io/fyne/v2/theme"
+ "fyne.io/fyne/v2/widget"
+ "github.com/sirupsen/logrus"
+)
+
+type ToolWindow interface {
+ WindowInterface
+}
+
+type ToolWindowImpl struct {
+ UIImpl
+ w fyne.Window
+ tb *toolBar //工具条
+ sb *statusBar //状态栏
+ at *appContainer //tabs
+}
+
+func NewToolWindow(ui *UIImpl) ToolWindow {
+ mw := &ToolWindowImpl{
+ UIImpl: *ui,
+ }
+
+ toolWin = mw
+
+ mw.sb = newStatusBar()
+
+ toolbar := widget.NewToolbar(
+ widget.NewToolbarAction(theme.ContentCopyIcon(), func() {
+ openApp1(common.TOOLBAR_GEN)
+ }),
+
+ widget.NewToolbarSpacer(),
+ widget.NewToolbarAction(theme.HelpIcon(), func() {
+ showAbout()
+ }),
+ )
+
+ mw.tb = newToolBar(toolbar)
+
+ mw.at = newAppContainer(toolRegister, ui.obs)
+
+ return mw
+}
+
+func (ui *ToolWindowImpl) CreateWindow(title string, width, height float32, _ bool) {
+ w := ui.app.NewWindow(title)
+ ui.AddWindow("tool", w)
+ ui.w = w
+
+ // content
+ content := container.NewBorder(ui.tb.toolbar, ui.sb.widget,
+ nil, nil, ui.at)
+ ui.w.SetContent(content)
+ appName, err := ui.at.openDefaultApp()
+ if err != nil {
+ logrus.WithField("appName", appName).Error(err)
+ }
+ w.Resize(fyne.NewSize(width, height))
+ w.SetMaster()
+ w.CenterOnScreen()
+ w.Show()
+}
From d735a6bb15dd928c5439a0e5265a275e48ca73f1 Mon Sep 17 00:00:00 2001
From: wh_zcy
Date: Thu, 18 Aug 2022 09:27:40 +0800
Subject: [PATCH 05/10] =?UTF-8?q?=E9=9A=8F=E6=9C=BA=E4=BB=BB=E5=8A=A1?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
bin/json/game_rdtaksall.json | 66 --
bin/json/game_rdtakschoose.json | 38 --
bin/json/game_rdtaskall.json | 228 +++++++
bin/json/game_rdtaskchoose.json | 98 +++
...e_rdtakstype.json => game_rdtasktype.json} | 30 +-
comm/const.go | 14 +
comm/imodule.go | 6 +
modules/rtask/api.go | 29 +
modules/rtask/api_choose.go | 56 ++
modules/rtask/config.go | 116 ++++
modules/rtask/model_rtask.go | 86 +++
modules/rtask/module.go | 131 ++++
pb/comm.pb.go | 115 +++-
pb/errorcode.pb.go | 14 +-
pb/friend_msg.pb.go | 627 +++++++++++-------
pb/rtask_db.pb.go | 170 +++++
pb/rtask_msg.pb.go | 268 ++++++++
services/worker/main.go | 2 +
sys/configure/structs/Tables.go | 77 ++-
sys/configure/structs/game.rdtaskAll.go | 42 ++
sys/configure/structs/game.rdtaskAllData.go | 94 +++
sys/configure/structs/game.rdtaskChoose.go | 42 ++
.../structs/game.rdtaskChooseData.go | 54 ++
sys/configure/structs/game.rdtaskType.go | 42 ++
sys/configure/structs/game.rdtaskTypeData.go | 47 ++
utils/strings.go | 10 +
26 files changed, 2088 insertions(+), 414 deletions(-)
delete mode 100644 bin/json/game_rdtaksall.json
delete mode 100644 bin/json/game_rdtakschoose.json
create mode 100644 bin/json/game_rdtaskall.json
create mode 100644 bin/json/game_rdtaskchoose.json
rename bin/json/{game_rdtakstype.json => game_rdtasktype.json} (83%)
create mode 100644 modules/rtask/api.go
create mode 100644 modules/rtask/api_choose.go
create mode 100644 modules/rtask/config.go
create mode 100644 modules/rtask/model_rtask.go
create mode 100644 modules/rtask/module.go
create mode 100644 pb/rtask_db.pb.go
create mode 100644 pb/rtask_msg.pb.go
create mode 100644 sys/configure/structs/game.rdtaskAll.go
create mode 100644 sys/configure/structs/game.rdtaskAllData.go
create mode 100644 sys/configure/structs/game.rdtaskChoose.go
create mode 100644 sys/configure/structs/game.rdtaskChooseData.go
create mode 100644 sys/configure/structs/game.rdtaskType.go
create mode 100644 sys/configure/structs/game.rdtaskTypeData.go
diff --git a/bin/json/game_rdtaksall.json b/bin/json/game_rdtaksall.json
deleted file mode 100644
index 7347b8308..000000000
--- a/bin/json/game_rdtaksall.json
+++ /dev/null
@@ -1,66 +0,0 @@
-[
- {
- "rdtaks_id": 1001,
- "task_type": 2,
- "rdtaks_num": [
- 101,
- 102
- ],
- "id_last": [
- 0
- ],
- "id_after": 1002,
- "id_tag": 1,
- "story": 3,
- "completetask": 0,
- "reword": [
- {
- "a": "attr",
- "t": "diamond",
- "n": 10
- },
- {
- "a": "attr",
- "t": "gold",
- "n": 1000
- }
- ],
- "choose_id": [
- 10001,
- 10002,
- 10003
- ]
- },
- {
- "rdtaks_id": 1002,
- "task_type": 2,
- "rdtaks_num": [
- 101,
- 104
- ],
- "id_last": [
- 1001
- ],
- "id_after": 0,
- "id_tag": 2,
- "story": 3,
- "completetask": 0,
- "reword": [
- {
- "a": "attr",
- "t": "diamond",
- "n": 15
- },
- {
- "a": "attr",
- "t": "gold",
- "n": 1500
- }
- ],
- "choose_id": [
- 10011,
- 10012,
- 10013
- ]
- }
-]
\ No newline at end of file
diff --git a/bin/json/game_rdtakschoose.json b/bin/json/game_rdtakschoose.json
deleted file mode 100644
index 8ef50afe8..000000000
--- a/bin/json/game_rdtakschoose.json
+++ /dev/null
@@ -1,38 +0,0 @@
-[
- {
- "choose_id": 10001,
- "num": 1,
- "rdtaks_num": 104,
- "rdtaks_id": 0
- },
- {
- "choose_id": 10002,
- "num": 2,
- "rdtaks_num": 105,
- "rdtaks_id": 1002
- },
- {
- "choose_id": 10003,
- "num": 3,
- "rdtaks_num": 0,
- "rdtaks_id": 0
- },
- {
- "choose_id": 10011,
- "num": 1,
- "rdtaks_num": 106,
- "rdtaks_id": 0
- },
- {
- "choose_id": 10012,
- "num": 2,
- "rdtaks_num": 107,
- "rdtaks_id": 0
- },
- {
- "choose_id": 10013,
- "num": 3,
- "rdtaks_num": 0,
- "rdtaks_id": 0
- }
-]
\ No newline at end of file
diff --git a/bin/json/game_rdtaskall.json b/bin/json/game_rdtaskall.json
new file mode 100644
index 000000000..64cbcf8ce
--- /dev/null
+++ b/bin/json/game_rdtaskall.json
@@ -0,0 +1,228 @@
+[
+ {
+ "id": 1001,
+ "type": 2,
+ "lastend": 0,
+ "rdtaks_num": [
+ 101
+ ],
+ "aftertaks": 1002,
+ "icetime": 0,
+ "tag": 1,
+ "story": 3,
+ "completetask": 0,
+ "chooseid": [
+ 10001,
+ 1002,
+ 1003
+ ],
+ "reword": [
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 10
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1000
+ }
+ ]
+ },
+ {
+ "id": 1002,
+ "type": 2,
+ "lastend": 1001,
+ "rdtaks_num": [
+ 101,
+ 102
+ ],
+ "aftertaks": 1003,
+ "icetime": 0,
+ "tag": 2,
+ "story": 3,
+ "completetask": 0,
+ "chooseid": [
+ 10011,
+ 10012,
+ 10013
+ ],
+ "reword": [
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 15
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1500
+ }
+ ]
+ },
+ {
+ "id": 1003,
+ "type": 2,
+ "lastend": 1002,
+ "rdtaks_num": [
+ 101,
+ 103
+ ],
+ "aftertaks": 1004,
+ "icetime": 0,
+ "tag": 1,
+ "story": 3,
+ "completetask": 0,
+ "chooseid": [],
+ "reword": [
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 15
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1500
+ }
+ ]
+ },
+ {
+ "id": 1004,
+ "type": 2,
+ "lastend": 1003,
+ "rdtaks_num": [
+ 101,
+ 103
+ ],
+ "aftertaks": 1005,
+ "icetime": 0,
+ "tag": 1,
+ "story": 3,
+ "completetask": 0,
+ "chooseid": [],
+ "reword": [
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 15
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1500
+ }
+ ]
+ },
+ {
+ "id": 1005,
+ "type": 2,
+ "lastend": 1004,
+ "rdtaks_num": [
+ 104,
+ 105
+ ],
+ "aftertaks": 1006,
+ "icetime": 0,
+ "tag": 1,
+ "story": 3,
+ "completetask": 0,
+ "chooseid": [],
+ "reword": [
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 15
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1500
+ }
+ ]
+ },
+ {
+ "id": 1006,
+ "type": 2,
+ "lastend": 1005,
+ "rdtaks_num": [
+ 106
+ ],
+ "aftertaks": 0,
+ "icetime": 0,
+ "tag": 1,
+ "story": 3,
+ "completetask": 0,
+ "chooseid": [
+ 10021,
+ 10022
+ ],
+ "reword": [
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 15
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1500
+ }
+ ]
+ },
+ {
+ "id": 1007,
+ "type": 1,
+ "lastend": 0,
+ "rdtaks_num": [
+ 107
+ ],
+ "aftertaks": 1002,
+ "icetime": 1,
+ "tag": 1,
+ "story": 3,
+ "completetask": 0,
+ "chooseid": [],
+ "reword": [
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 15
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1500
+ }
+ ]
+ },
+ {
+ "id": 1008,
+ "type": 1,
+ "lastend": 0,
+ "rdtaks_num": [
+ 108
+ ],
+ "aftertaks": 1002,
+ "icetime": -1,
+ "tag": 1,
+ "story": 3,
+ "completetask": 0,
+ "chooseid": [
+ 10041,
+ 10042
+ ],
+ "reword": [
+ {
+ "a": "attr",
+ "t": "diamond",
+ "n": 15
+ },
+ {
+ "a": "attr",
+ "t": "gold",
+ "n": 1500
+ }
+ ]
+ }
+]
\ No newline at end of file
diff --git a/bin/json/game_rdtaskchoose.json b/bin/json/game_rdtaskchoose.json
new file mode 100644
index 000000000..68e98b36d
--- /dev/null
+++ b/bin/json/game_rdtaskchoose.json
@@ -0,0 +1,98 @@
+[
+ {
+ "chooseid": 10001,
+ "num": 1,
+ "rdtaks_num": 101,
+ "need": [
+ 0
+ ]
+ },
+ {
+ "chooseid": 10002,
+ "num": 2,
+ "rdtaks_num": 107,
+ "need": [
+ 0
+ ]
+ },
+ {
+ "chooseid": 10003,
+ "num": 3,
+ "rdtaks_num": 101,
+ "need": [
+ 0
+ ]
+ },
+ {
+ "chooseid": 10011,
+ "num": 1,
+ "rdtaks_num": 101,
+ "need": [
+ 0
+ ]
+ },
+ {
+ "chooseid": 10012,
+ "num": 2,
+ "rdtaks_num": 101,
+ "need": [
+ 0
+ ]
+ },
+ {
+ "chooseid": 10013,
+ "num": 3,
+ "rdtaks_num": 101,
+ "need": [
+ 0
+ ]
+ },
+ {
+ "chooseid": 10021,
+ "num": 1,
+ "rdtaks_num": 101,
+ "need": [
+ 0
+ ]
+ },
+ {
+ "chooseid": 10022,
+ "num": 2,
+ "rdtaks_num": 101,
+ "need": [
+ 0
+ ]
+ },
+ {
+ "chooseid": 10031,
+ "num": 1,
+ "rdtaks_num": 0,
+ "need": [
+ 10012
+ ]
+ },
+ {
+ "chooseid": 10032,
+ "num": 2,
+ "rdtaks_num": 0,
+ "need": [
+ 0
+ ]
+ },
+ {
+ "chooseid": 10041,
+ "num": 1,
+ "rdtaks_num": 0,
+ "need": [
+ 10010
+ ]
+ },
+ {
+ "chooseid": 10042,
+ "num": 2,
+ "rdtaks_num": 0,
+ "need": [
+ 0
+ ]
+ }
+]
\ No newline at end of file
diff --git a/bin/json/game_rdtakstype.json b/bin/json/game_rdtasktype.json
similarity index 83%
rename from bin/json/game_rdtakstype.json
rename to bin/json/game_rdtasktype.json
index 08ee6b0e7..6a8ba67cc 100644
--- a/bin/json/game_rdtakstype.json
+++ b/bin/json/game_rdtasktype.json
@@ -13,7 +13,7 @@
"typdes": 2,
"datatime": 1,
"typtask_id": 2,
- "data1": 10,
+ "data1": 3,
"data2": 0,
"data3": 0
},
@@ -22,7 +22,7 @@
"typdes": 2,
"datatime": 1,
"typtask_id": 3,
- "data1": 3,
+ "data1": 2,
"data2": 0,
"data3": 0
},
@@ -31,44 +31,44 @@
"typdes": 2,
"datatime": 1,
"typtask_id": 4,
- "data1": 2,
- "data2": 0,
+ "data1": 90001,
+ "data2": 15,
"data3": 0
},
{
"rdtaks_num": 105,
"typdes": 2,
"datatime": 1,
- "typtask_id": 5,
- "data1": 101,
- "data2": 0,
+ "typtask_id": 4,
+ "data1": 25001,
+ "data2": 10,
"data3": 0
},
{
"rdtaks_num": 106,
"typdes": 2,
"datatime": 1,
- "typtask_id": 6,
- "data1": 3,
- "data2": 0,
+ "typtask_id": 5,
+ "data1": 90001,
+ "data2": 2,
"data3": 0
},
{
"rdtaks_num": 107,
"typdes": 2,
"datatime": 1,
- "typtask_id": 7,
- "data1": 10002,
- "data2": 0,
+ "typtask_id": 4,
+ "data1": 25001,
+ "data2": 20,
"data3": 0
},
{
"rdtaks_num": 108,
"typdes": 2,
"datatime": 1,
- "typtask_id": 8,
+ "typtask_id": 6,
"data1": 90001,
- "data2": 15,
+ "data2": 5,
"data3": 0
}
]
\ No newline at end of file
diff --git a/comm/const.go b/comm/const.go
index 626ec5f70..84b49b34b 100644
--- a/comm/const.go
+++ b/comm/const.go
@@ -48,6 +48,7 @@ const (
ModulePagoda core.M_Modules = "pagoda" //魔塔模块
ModuleMartialhall core.M_Modules = "martialhall" //武馆模块
ModuleGourmet core.M_Modules = "gourmet" //美食馆
+ ModuleRtask core.M_Modules = "rtask" //随机任务
)
//数据表名定义处
@@ -96,6 +97,8 @@ const (
TableMartialhall = "martialhall"
// 美食馆
TableGourmet = "gourmet"
+ // 随机任务
+ TableRtask = "rtask"
)
//RPC服务接口定义处
@@ -158,6 +161,7 @@ const (
type TaskType int32
+// 日常任务事件类型
const (
TaskTypeUpEquip TaskType = 101 //任意装备升级
TaskTypeUpHeroStar TaskType = 102 //获取星级英雄
@@ -174,6 +178,16 @@ const (
TASK_STRATEGY TaskTag = 4 // 攻略
)
+// 随机任务类型
+const (
+ RtaskTypeHeroTarget TaskType = 1 //英雄指定
+ RtaskTypeHeroLvTarget TaskType = 2 //指定英雄的等级
+ RtaskTypeEquipNum TaskType = 3 //装备数量
+ RtaskTypePoltId TaskType = 4 //剧情ID
+ RtaskTypeTaskDay TaskType = 5 //每日任务
+
+)
+
const (
MailLineEasy string = "mainline_data_easy" // 简单
MailLineHard string = "mainline_data_hard" // 困难
diff --git a/comm/imodule.go b/comm/imodule.go
index cc11cc821..87607355f 100644
--- a/comm/imodule.go
+++ b/comm/imodule.go
@@ -102,6 +102,12 @@ type (
CleanData(uid string)
}
+ // 随机任务
+ IRtask interface {
+ //任务触发
+ SendToRtask(session IUserSession, param *pb.RtaskParam) (code pb.ErrorCode)
+ }
+
//好友
IFriend interface {
// 重置点赞列表和每日友情点
diff --git a/modules/rtask/api.go b/modules/rtask/api.go
new file mode 100644
index 000000000..01595de65
--- /dev/null
+++ b/modules/rtask/api.go
@@ -0,0 +1,29 @@
+package rtask
+
+import (
+ "go_dreamfactory/lego/core"
+ "go_dreamfactory/modules"
+)
+
+const (
+ RtaskSubTypeChoose = "choose" //选择
+)
+
+type apiComp struct {
+ modules.MCompGate
+ service core.IService
+ moduleRtask *ModuleRtask
+}
+
+//组件初始化接口
+func (this *apiComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
+ err = this.MCompGate.Init(service, module, comp, options)
+ this.moduleRtask = module.(*ModuleRtask)
+ this.service = service
+ return
+}
+
+func (this *apiComp) Start() (err error) {
+ err = this.MCompGate.Start()
+ return
+}
diff --git a/modules/rtask/api_choose.go b/modules/rtask/api_choose.go
new file mode 100644
index 000000000..3c1912e4f
--- /dev/null
+++ b/modules/rtask/api_choose.go
@@ -0,0 +1,56 @@
+package rtask
+
+import (
+ "go_dreamfactory/comm"
+ "go_dreamfactory/pb"
+ "go_dreamfactory/utils"
+
+ "google.golang.org/protobuf/proto"
+)
+
+func (this *apiComp) ChooseCheck(session comm.IUserSession, req *pb.RtaskChooseReq) (code pb.ErrorCode) {
+
+ return
+}
+
+func (this *apiComp) Choose(session comm.IUserSession, req *pb.RtaskChooseReq) (code pb.ErrorCode, data proto.Message) {
+ if code = this.ChooseCheck(session, req); code != pb.ErrorCode_Success {
+ return
+ }
+
+ rtask := &pb.DBRtask{}
+ if err := this.moduleRtask.modelRtask.Get(session.GetUserId(), rtask); err != nil {
+ return
+ }
+
+ // 是否已完成
+ if _, ok := utils.Findx(rtask.FrtaskIds, req.RtaskId); !ok {
+ code = pb.ErrorCode_RtaskUnFinished
+ return
+ }
+
+ // 获取当前任务配置
+ conf := this.moduleRtask.configure.getRtaskById(req.RtaskId)
+ if conf == nil {
+ code = pb.ErrorCode_ConfigNoFound
+ return
+ }
+
+ // var nextTaskId int32
+ if req.ChooseId == 0 {
+ //读任务配置中的next taskId
+ // nextTaskId = conf.IdAfter
+ } else {
+ // nextTaskId =
+ }
+
+ //发奖励
+ code = this.moduleRtask.DispenseRes(session, conf.Reword, true)
+
+ rsp := &pb.RtaskChooseResp{}
+
+ if err := session.SendMsg(string(this.moduleRtask.GetType()), RtaskSubTypeChoose, rsp); err != nil {
+ code = pb.ErrorCode_SystemError
+ }
+ return
+}
diff --git a/modules/rtask/config.go b/modules/rtask/config.go
new file mode 100644
index 000000000..052dd2246
--- /dev/null
+++ b/modules/rtask/config.go
@@ -0,0 +1,116 @@
+package rtask
+
+import (
+ "fmt"
+ "go_dreamfactory/lego/core"
+ "go_dreamfactory/modules"
+ cfg "go_dreamfactory/sys/configure/structs"
+)
+
+const (
+ gameRtask = "game_rdtaskall.json"
+ gameRtaskChoose = "rdtaskchoose.json"
+ gameRtaskType = "rdtasktype.json"
+)
+
+type configureComp struct {
+ modules.MCompConfigure
+}
+
+func (this *configureComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
+ err = this.MCompConfigure.Init(service, module, comp, options)
+ err = this.LoadMultiConfigure(map[string]interface{}{
+ gameRtask: cfg.NewGameRdtaskAll,
+ gameRtaskChoose: cfg.NewGameRdtaskChoose,
+ gameRtaskType: cfg.NewGameRdtaskType,
+ })
+ return
+}
+
+func (this *configureComp) getRtaskCfg() (data *cfg.GameRdtaskAll, err error) {
+ var (
+ v interface{}
+ ok bool
+ )
+ if v, err = this.GetConfigure(gameRtask); err != nil {
+ return
+ } else {
+ if data, ok = v.(*cfg.GameRdtaskAll); !ok {
+ err = fmt.Errorf("%T no is *cfg.GameRdtaskAll", v)
+ return
+ }
+ }
+ return
+}
+
+func (this *configureComp) getRtaskTypeCfg() (data *cfg.GameRdtaskType, err error) {
+ var (
+ v interface{}
+ ok bool
+ )
+ if v, err = this.GetConfigure(gameRtask); err != nil {
+ return
+ } else {
+ if data, ok = v.(*cfg.GameRdtaskType); !ok {
+ err = fmt.Errorf("%T is *cfg.GameRdtaskType", v)
+ return
+ }
+ }
+ return
+}
+
+// 获取随机任务配置
+func (this *configureComp) getRtaskList() (data []*cfg.GameRdtaskAllData, err error) {
+ cfg, err := this.getRtaskCfg()
+ if err != nil {
+ return
+ }
+ if cfg != nil {
+ data = cfg.GetDataList()
+ }
+ return
+}
+
+// 查询任务类型
+func (this *configureComp) getRtaskTypeById(typeId int32) (data *cfg.GameRdtaskTypeData, err error) {
+ cfg, err := this.getRtaskTypeCfg()
+ if err != nil {
+ return
+ }
+ if cfg != nil {
+ if data, ok := cfg.GetDataMap()[typeId]; ok {
+ return data, nil
+ }
+ }
+ return
+}
+
+// 任务
+func (this *configureComp) getRtaskById(taskId int32) (data *cfg.GameRdtaskAllData) {
+ cfg, err := this.getRtaskCfg()
+ if err != nil {
+ return
+ }
+ if cfg != nil {
+ if data, ok := cfg.GetDataMap()[taskId]; ok {
+ return data
+ }
+ }
+ return nil
+}
+
+// 首个任务
+func (this *configureComp) getFirstTask() *cfg.GameRdtaskAllData {
+ cfg, err := this.getRtaskCfg()
+ if err != nil {
+ return nil
+ }
+ if cfg != nil {
+ for _, v := range cfg.GetDataList() {
+ if v.IdLast == 0 {
+ return v
+ }
+ }
+ }
+ return nil
+}
diff --git a/modules/rtask/model_rtask.go b/modules/rtask/model_rtask.go
new file mode 100644
index 000000000..9dc44caa3
--- /dev/null
+++ b/modules/rtask/model_rtask.go
@@ -0,0 +1,86 @@
+package rtask
+
+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"
+)
+
+type ModelRtask struct {
+ modules.MCompModel
+ moduleRtask *ModuleRtask
+}
+
+func (this *ModelRtask) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
+ this.TableName = comm.TableRtask
+ err = this.MCompModel.Init(service, module, comp, options)
+ this.moduleRtask = module.(*ModuleRtask)
+ return
+}
+
+func (this *ModelRtask) setNextTask(uid string, rtaskId int32) error {
+ update := map[string]interface{}{
+ "nextRtaskId": rtaskId,
+ }
+
+ return this.Change(uid, update)
+}
+
+func (this *ModelRtask) doRtaskHandle(uid string, param *pb.RtaskParam) (rtaskId int32, err error) {
+ log.Debugf("do rtask params: %v %v %v ", param.Param1, param.Param2, param.Param3)
+ //查询玩家的
+ rtask := &pb.DBRtask{}
+ if err = this.Get(uid, rtask); err != nil {
+ return
+ }
+
+ var taskId int32
+ if len(rtask.FrtaskIds) == 0 {
+ conf := this.moduleRtask.configure.getFirstTask()
+ if conf != nil {
+ taskId = conf.IdLast
+ }
+ } else {
+ //TODO
+ }
+
+ if rtask, ok := this.moduleRtask.rtaskHandleMap[taskId]; ok {
+ for _, handle := range rtask.handlers {
+ if ok := handle.fn(handle.cfg, param); !ok {
+ log.Infof("uid: %v do rtask %v condition not", uid, taskId)
+ break
+ }
+ }
+ rtaskId = taskId
+ }
+
+ return
+}
+
+// 1 英雄指定
+func (this *ModelRtask) HeroTarget(cfg *cfg.GameRdtaskTypeData, tp *pb.RtaskParam) (ok bool) {
+ return cfg.Data1 == tp.Param1
+}
+
+// 2 指定英雄的等级
+func (this *ModelRtask) HeroLvTarget(cfg *cfg.GameRdtaskTypeData, tp *pb.RtaskParam) (ok bool) {
+ return cfg.Data1 == tp.Param1 && cfg.Data1 == tp.Param2
+}
+
+// 3 指定英雄的指定装备的数量
+func (this *ModelRtask) EquipNum(cfg *cfg.GameRdtaskTypeData, tp *pb.RtaskParam) (ok bool) {
+ return cfg.Data1 == tp.Param1 && cfg.Data2 == tp.Param2 && cfg.Data3 == tp.Param3
+}
+
+// 4 剧情ID
+func (this *ModelRtask) PoltId(cfg *cfg.GameRdtaskTypeData, tp *pb.RtaskParam) (ok bool) {
+ return cfg.Data1 == tp.Param1
+}
+
+// 5 每日任务
+func (this *ModelRtask) TaskDay(cfg *cfg.GameRdtaskTypeData, tp *pb.RtaskParam) (ok bool) {
+ return cfg.Data1 == tp.Param1
+}
diff --git a/modules/rtask/module.go b/modules/rtask/module.go
new file mode 100644
index 000000000..1be0f62c0
--- /dev/null
+++ b/modules/rtask/module.go
@@ -0,0 +1,131 @@
+// package 随机任务
+package rtask
+
+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"
+)
+
+// 随机任务
+type rtask struct {
+ rtaskId int32
+ handlers []*rtaskCondi
+}
+
+// 限定条件
+type rtaskCondi struct {
+ cfg *cfg.GameRdtaskTypeData
+ fn rtaskHandle
+}
+
+// 设定返回值
+type rtaskHandle func(cfg *cfg.GameRdtaskTypeData, tp *pb.RtaskParam) (ok bool)
+
+type ModuleRtask struct {
+ modules.ModuleBase
+ modelRtask *ModelRtask
+ api *apiComp
+ configure *configureComp
+
+ rtaskHandleMap map[int32]*rtask // 任务处理器
+}
+
+func NewModule() core.IModule {
+ return &ModuleRtask{
+ rtaskHandleMap: make(map[int32]*rtask),
+ }
+}
+
+func (this *ModuleRtask) GetType() core.M_Modules {
+ return comm.ModuleRtask
+}
+
+func (this *ModuleRtask) Init(service core.IService, module core.IModule, options core.IModuleOptions) (err error) {
+ err = this.ModuleBase.Init(service, module, options)
+ this.initRtaskHandle()
+ return
+}
+
+func (this *ModuleRtask) OnInstallComp() {
+ this.ModuleBase.OnInstallComp()
+
+}
+
+func (this *ModuleRtask) register(rtaskId int32, rtask *rtask) {
+ if _, ok := this.rtaskHandleMap[rtaskId]; !ok {
+ this.rtaskHandleMap[rtaskId] = rtask
+ }
+}
+
+func (this *ModuleRtask) initRtaskHandle() {
+ if data, err := this.configure.getRtaskList(); err == nil {
+ for _, v := range data {
+ var handlers []*rtaskCondi
+ rtask := &rtask{
+ rtaskId: v.RdtaksId,
+ handlers: handlers,
+ }
+
+ //遍历任务的限定条件
+ for _, rtaskTypeId := range v.RdtaksNum {
+ // 获取每个限定条件配置
+ if typeCfg, err2 := this.configure.getRtaskTypeById(rtaskTypeId); err2 == nil {
+ if typeCfg != nil {
+ switch comm.TaskType(typeCfg.GetTypeId()) {
+ case comm.RtaskTypeHeroTarget:
+ handlers = append(handlers, &rtaskCondi{
+ cfg: typeCfg,
+ fn: this.modelRtask.HeroTarget,
+ })
+ case comm.RtaskTypeHeroLvTarget:
+ handlers = append(handlers, &rtaskCondi{
+ cfg: typeCfg,
+ fn: this.modelRtask.HeroLvTarget,
+ })
+ case comm.RtaskTypeEquipNum:
+ handlers = append(handlers, &rtaskCondi{
+ cfg: typeCfg,
+ fn: this.modelRtask.EquipNum,
+ })
+ case comm.RtaskTypePoltId:
+ handlers = append(handlers, &rtaskCondi{
+ cfg: typeCfg,
+ fn: this.modelRtask.PoltId,
+ })
+ case comm.RtaskTypeTaskDay:
+ handlers = append(handlers, &rtaskCondi{
+ cfg: typeCfg,
+ fn: this.modelRtask.TaskDay,
+ })
+
+ default:
+ log.Warnf("%v rtask type not configure", typeCfg.GetTypeId())
+ }
+ }
+ }
+ }
+
+ this.register(v.RdtaksId, rtask)
+
+ }
+ }
+}
+
+// 通知随机任务
+func (this *ModuleRtask) SendToRtask(session comm.IUserSession, param *pb.RtaskParam) (code pb.ErrorCode) {
+ if taskId, err := this.modelRtask.doRtaskHandle(session.GetUserId(), param); err != nil {
+ code = pb.ErrorCode_TaskHandle
+ } else {
+ if err := session.SendMsg(string(comm.ModuleRtask), "", &pb.RtaskFinishPush{
+ RtaskId: taskId,
+ }); err != nil {
+ code = pb.ErrorCode_SystemError
+ }
+ }
+
+ return
+}
diff --git a/pb/comm.pb.go b/pb/comm.pb.go
index 529b5dc1a..63e26ac16 100644
--- a/pb/comm.pb.go
+++ b/pb/comm.pb.go
@@ -957,6 +957,69 @@ func (x *TaskParam) GetSecond() int32 {
return 0
}
+type RtaskParam struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Param1 int32 `protobuf:"varint,1,opt,name=param1,proto3" json:"param1"`
+ Param2 int32 `protobuf:"varint,2,opt,name=param2,proto3" json:"param2"`
+ Param3 int32 `protobuf:"varint,3,opt,name=param3,proto3" json:"param3"`
+}
+
+func (x *RtaskParam) Reset() {
+ *x = RtaskParam{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_comm_proto_msgTypes[13]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RtaskParam) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RtaskParam) ProtoMessage() {}
+
+func (x *RtaskParam) ProtoReflect() protoreflect.Message {
+ mi := &file_comm_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 RtaskParam.ProtoReflect.Descriptor instead.
+func (*RtaskParam) Descriptor() ([]byte, []int) {
+ return file_comm_proto_rawDescGZIP(), []int{13}
+}
+
+func (x *RtaskParam) GetParam1() int32 {
+ if x != nil {
+ return x.Param1
+ }
+ return 0
+}
+
+func (x *RtaskParam) GetParam2() int32 {
+ if x != nil {
+ return x.Param2
+ }
+ return 0
+}
+
+func (x *RtaskParam) GetParam3() int32 {
+ if x != nil {
+ return x.Param3
+ }
+ return 0
+}
+
var File_comm_proto protoreflect.FileDescriptor
var file_comm_proto_rawDesc = []byte{
@@ -1065,13 +1128,18 @@ var file_comm_proto_rawDesc = []byte{
0x05, 0x52, 0x01, 0x4e, 0x22, 0x39, 0x0a, 0x09, 0x54, 0x61, 0x73, 0x6b, 0x50, 0x61, 0x72, 0x61,
0x6d, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05,
0x52, 0x05, 0x66, 0x69, 0x72, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x63, 0x6f, 0x6e,
- 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x2a,
- 0x43, 0x0a, 0x12, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65,
- 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x06, 0x0a, 0x02, 0x48, 0x70, 0x10, 0x00, 0x12, 0x07, 0x0a,
- 0x03, 0x41, 0x74, 0x6b, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x65, 0x66, 0x10, 0x02, 0x12,
- 0x09, 0x0a, 0x05, 0x53, 0x70, 0x65, 0x65, 0x64, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x43, 0x72,
- 0x69, 0x74, 0x10, 0x04, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72,
- 0x6f, 0x74, 0x6f, 0x33,
+ 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x22,
+ 0x54, 0x0a, 0x0a, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x16, 0x0a,
+ 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x31, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70,
+ 0x61, 0x72, 0x61, 0x6d, 0x31, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x32, 0x12, 0x16, 0x0a,
+ 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x70,
+ 0x61, 0x72, 0x61, 0x6d, 0x33, 0x2a, 0x43, 0x0a, 0x12, 0x48, 0x65, 0x72, 0x6f, 0x41, 0x74, 0x74,
+ 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x06, 0x0a, 0x02, 0x48,
+ 0x70, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x74, 0x6b, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03,
+ 0x44, 0x65, 0x66, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x53, 0x70, 0x65, 0x65, 0x64, 0x10, 0x03,
+ 0x12, 0x08, 0x0a, 0x04, 0x43, 0x72, 0x69, 0x74, 0x10, 0x04, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b,
+ 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -1087,7 +1155,7 @@ func file_comm_proto_rawDescGZIP() []byte {
}
var file_comm_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
-var file_comm_proto_msgTypes = make([]protoimpl.MessageInfo, 13)
+var file_comm_proto_msgTypes = make([]protoimpl.MessageInfo, 14)
var file_comm_proto_goTypes = []interface{}{
(HeroAttributesType)(0), // 0: HeroAttributesType
(*UserMessage)(nil), // 1: UserMessage
@@ -1103,18 +1171,19 @@ var file_comm_proto_goTypes = []interface{}{
(*NoticeUserCloseReq)(nil), // 11: NoticeUserCloseReq
(*UserAssets)(nil), // 12: UserAssets
(*TaskParam)(nil), // 13: TaskParam
- (*anypb.Any)(nil), // 14: google.protobuf.Any
- (ErrorCode)(0), // 15: ErrorCode
+ (*RtaskParam)(nil), // 14: RtaskParam
+ (*anypb.Any)(nil), // 15: google.protobuf.Any
+ (ErrorCode)(0), // 16: ErrorCode
}
var file_comm_proto_depIdxs = []int32{
- 14, // 0: UserMessage.data:type_name -> google.protobuf.Any
- 14, // 1: AgentMessage.Message:type_name -> google.protobuf.Any
- 15, // 2: RPCMessageReply.Code:type_name -> ErrorCode
- 14, // 3: RPCMessageReply.ErrorData:type_name -> google.protobuf.Any
+ 15, // 0: UserMessage.data:type_name -> google.protobuf.Any
+ 15, // 1: AgentMessage.Message:type_name -> google.protobuf.Any
+ 16, // 2: RPCMessageReply.Code:type_name -> ErrorCode
+ 15, // 3: RPCMessageReply.ErrorData:type_name -> google.protobuf.Any
1, // 4: RPCMessageReply.Reply:type_name -> UserMessage
1, // 5: AgentSendMessageReq.Reply:type_name -> UserMessage
- 14, // 6: BatchMessageReq.Data:type_name -> google.protobuf.Any
- 14, // 7: BroadCastMessageReq.Data:type_name -> google.protobuf.Any
+ 15, // 6: BatchMessageReq.Data:type_name -> google.protobuf.Any
+ 15, // 7: BroadCastMessageReq.Data:type_name -> google.protobuf.Any
8, // [8:8] is the sub-list for method output_type
8, // [8:8] is the sub-list for method input_type
8, // [8:8] is the sub-list for extension type_name
@@ -1285,6 +1354,18 @@ func file_comm_proto_init() {
return nil
}
}
+ file_comm_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*RtaskParam); 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{
@@ -1292,7 +1373,7 @@ func file_comm_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_comm_proto_rawDesc,
NumEnums: 1,
- NumMessages: 13,
+ NumMessages: 14,
NumExtensions: 0,
NumServices: 0,
},
diff --git a/pb/errorcode.pb.go b/pb/errorcode.pb.go
index 80a968251..1c67f8477 100644
--- a/pb/errorcode.pb.go
+++ b/pb/errorcode.pb.go
@@ -149,6 +149,9 @@ const (
// 美食馆
ErrorCode_GourmetMoreOrderTime ErrorCode = 2101 // 超过订单时长
ErrorCode_GourmetSkillMaxLv ErrorCode = 2102 // 技能已经达到满级
+ // rtask
+ ErrorCode_RtaskFinished ErrorCode = 2201 //任务已完成
+ ErrorCode_RtaskUnFinished ErrorCode = 2202 //任务未完成
)
// Enum value maps for ErrorCode.
@@ -268,6 +271,8 @@ var (
2002: "MartialhallUnlocked",
2101: "GourmetMoreOrderTime",
2102: "GourmetSkillMaxLv",
+ 2201: "RtaskFinished",
+ 2202: "RtaskUnFinished",
}
ErrorCode_value = map[string]int32{
"Success": 0,
@@ -384,6 +389,8 @@ var (
"MartialhallUnlocked": 2002,
"GourmetMoreOrderTime": 2101,
"GourmetSkillMaxLv": 2102,
+ "RtaskFinished": 2201,
+ "RtaskUnFinished": 2202,
}
)
@@ -418,7 +425,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, 0x8c, 0x13, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12,
+ 0x6f, 0x2a, 0xb6, 0x13, 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,
@@ -571,7 +578,10 @@ var file_errorcode_proto_rawDesc = []byte{
0x14, 0x47, 0x6f, 0x75, 0x72, 0x6d, 0x65, 0x74, 0x4d, 0x6f, 0x72, 0x65, 0x4f, 0x72, 0x64, 0x65,
0x72, 0x54, 0x69, 0x6d, 0x65, 0x10, 0xb5, 0x10, 0x12, 0x16, 0x0a, 0x11, 0x47, 0x6f, 0x75, 0x72,
0x6d, 0x65, 0x74, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x4d, 0x61, 0x78, 0x4c, 0x76, 0x10, 0xb6, 0x10,
- 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+ 0x12, 0x12, 0x0a, 0x0d, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65,
+ 0x64, 0x10, 0x99, 0x11, 0x12, 0x14, 0x0a, 0x0f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x55, 0x6e, 0x46,
+ 0x69, 0x6e, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x9a, 0x11, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b,
+ 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
diff --git a/pb/friend_msg.pb.go b/pb/friend_msg.pb.go
index abec55ce8..bcaacbc84 100644
--- a/pb/friend_msg.pb.go
+++ b/pb/friend_msg.pb.go
@@ -28,7 +28,7 @@ type FriendBase struct {
UserId string `protobuf:"bytes,1,opt,name=userId,proto3" json:"userId"` // ID
NickName string `protobuf:"bytes,2,opt,name=NickName,proto3" json:"NickName"` //昵称
Level int32 `protobuf:"varint,3,opt,name=level,proto3" json:"level"` //等级
- Avatar int32 `protobuf:"varint,4,opt,name=avatar,proto3" json:"avatar"` //头像
+ Avatar string `protobuf:"bytes,4,opt,name=avatar,proto3" json:"avatar"` //头像
Strength int64 `protobuf:"varint,5,opt,name=strength,proto3" json:"strength"` //战力
ServerId int32 `protobuf:"varint,6,opt,name=serverId,proto3" json:"serverId"` //服务编号
OfflineTime int64 `protobuf:"varint,7,opt,name=offlineTime,proto3" json:"offlineTime"` //最近一次下线时间 0在线
@@ -87,11 +87,11 @@ func (x *FriendBase) GetLevel() int32 {
return 0
}
-func (x *FriendBase) GetAvatar() int32 {
+func (x *FriendBase) GetAvatar() string {
if x != nil {
return x.Avatar
}
- return 0
+ return ""
}
func (x *FriendBase) GetStrength() int64 {
@@ -201,6 +201,92 @@ func (x *FriendListResp) GetList() []*FriendBase {
return nil
}
+// 随机的在线玩家
+type FriendOnlineReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *FriendOnlineReq) Reset() {
+ *x = FriendOnlineReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_friend_friend_msg_proto_msgTypes[3]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *FriendOnlineReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*FriendOnlineReq) ProtoMessage() {}
+
+func (x *FriendOnlineReq) ProtoReflect() protoreflect.Message {
+ mi := &file_friend_friend_msg_proto_msgTypes[3]
+ 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 FriendOnlineReq.ProtoReflect.Descriptor instead.
+func (*FriendOnlineReq) Descriptor() ([]byte, []int) {
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{3}
+}
+
+type FriendOnlineResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ List []*FriendBase `protobuf:"bytes,1,rep,name=list,proto3" json:"list"`
+}
+
+func (x *FriendOnlineResp) Reset() {
+ *x = FriendOnlineResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_friend_friend_msg_proto_msgTypes[4]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *FriendOnlineResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*FriendOnlineResp) ProtoMessage() {}
+
+func (x *FriendOnlineResp) ProtoReflect() protoreflect.Message {
+ mi := &file_friend_friend_msg_proto_msgTypes[4]
+ 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 FriendOnlineResp.ProtoReflect.Descriptor instead.
+func (*FriendOnlineResp) Descriptor() ([]byte, []int) {
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{4}
+}
+
+func (x *FriendOnlineResp) GetList() []*FriendBase {
+ if x != nil {
+ return x.List
+ }
+ return nil
+}
+
//申请好友
type FriendApplyReq struct {
state protoimpl.MessageState
@@ -213,7 +299,7 @@ type FriendApplyReq struct {
func (x *FriendApplyReq) Reset() {
*x = FriendApplyReq{}
if protoimpl.UnsafeEnabled {
- mi := &file_friend_friend_msg_proto_msgTypes[3]
+ mi := &file_friend_friend_msg_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -226,7 +312,7 @@ func (x *FriendApplyReq) String() string {
func (*FriendApplyReq) ProtoMessage() {}
func (x *FriendApplyReq) ProtoReflect() protoreflect.Message {
- mi := &file_friend_friend_msg_proto_msgTypes[3]
+ mi := &file_friend_friend_msg_proto_msgTypes[5]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -239,7 +325,7 @@ func (x *FriendApplyReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use FriendApplyReq.ProtoReflect.Descriptor instead.
func (*FriendApplyReq) Descriptor() ([]byte, []int) {
- return file_friend_friend_msg_proto_rawDescGZIP(), []int{3}
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{5}
}
func (x *FriendApplyReq) GetFriendId() string {
@@ -261,7 +347,7 @@ type FriendApplyResp struct {
func (x *FriendApplyResp) Reset() {
*x = FriendApplyResp{}
if protoimpl.UnsafeEnabled {
- mi := &file_friend_friend_msg_proto_msgTypes[4]
+ mi := &file_friend_friend_msg_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -274,7 +360,7 @@ func (x *FriendApplyResp) String() string {
func (*FriendApplyResp) ProtoMessage() {}
func (x *FriendApplyResp) ProtoReflect() protoreflect.Message {
- mi := &file_friend_friend_msg_proto_msgTypes[4]
+ mi := &file_friend_friend_msg_proto_msgTypes[6]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -287,7 +373,7 @@ func (x *FriendApplyResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use FriendApplyResp.ProtoReflect.Descriptor instead.
func (*FriendApplyResp) Descriptor() ([]byte, []int) {
- return file_friend_friend_msg_proto_rawDescGZIP(), []int{4}
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{6}
}
func (x *FriendApplyResp) GetUserId() string {
@@ -316,7 +402,7 @@ type FriendDelReq struct {
func (x *FriendDelReq) Reset() {
*x = FriendDelReq{}
if protoimpl.UnsafeEnabled {
- mi := &file_friend_friend_msg_proto_msgTypes[5]
+ mi := &file_friend_friend_msg_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -329,7 +415,7 @@ func (x *FriendDelReq) String() string {
func (*FriendDelReq) ProtoMessage() {}
func (x *FriendDelReq) ProtoReflect() protoreflect.Message {
- mi := &file_friend_friend_msg_proto_msgTypes[5]
+ mi := &file_friend_friend_msg_proto_msgTypes[7]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -342,7 +428,7 @@ func (x *FriendDelReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use FriendDelReq.ProtoReflect.Descriptor instead.
func (*FriendDelReq) Descriptor() ([]byte, []int) {
- return file_friend_friend_msg_proto_rawDescGZIP(), []int{5}
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{7}
}
func (x *FriendDelReq) GetFriendId() string {
@@ -364,7 +450,7 @@ type FriendDelResp struct {
func (x *FriendDelResp) Reset() {
*x = FriendDelResp{}
if protoimpl.UnsafeEnabled {
- mi := &file_friend_friend_msg_proto_msgTypes[6]
+ mi := &file_friend_friend_msg_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -377,7 +463,7 @@ func (x *FriendDelResp) String() string {
func (*FriendDelResp) ProtoMessage() {}
func (x *FriendDelResp) ProtoReflect() protoreflect.Message {
- mi := &file_friend_friend_msg_proto_msgTypes[6]
+ mi := &file_friend_friend_msg_proto_msgTypes[8]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -390,7 +476,7 @@ func (x *FriendDelResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use FriendDelResp.ProtoReflect.Descriptor instead.
func (*FriendDelResp) Descriptor() ([]byte, []int) {
- return file_friend_friend_msg_proto_rawDescGZIP(), []int{6}
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{8}
}
func (x *FriendDelResp) GetFriendId() string {
@@ -419,7 +505,7 @@ type FriendAgreeReq struct {
func (x *FriendAgreeReq) Reset() {
*x = FriendAgreeReq{}
if protoimpl.UnsafeEnabled {
- mi := &file_friend_friend_msg_proto_msgTypes[7]
+ mi := &file_friend_friend_msg_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -432,7 +518,7 @@ func (x *FriendAgreeReq) String() string {
func (*FriendAgreeReq) ProtoMessage() {}
func (x *FriendAgreeReq) ProtoReflect() protoreflect.Message {
- mi := &file_friend_friend_msg_proto_msgTypes[7]
+ mi := &file_friend_friend_msg_proto_msgTypes[9]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -445,7 +531,7 @@ func (x *FriendAgreeReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use FriendAgreeReq.ProtoReflect.Descriptor instead.
func (*FriendAgreeReq) Descriptor() ([]byte, []int) {
- return file_friend_friend_msg_proto_rawDescGZIP(), []int{7}
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{9}
}
func (x *FriendAgreeReq) GetFriendIds() []string {
@@ -466,7 +552,7 @@ type FriendAgreeResp struct {
func (x *FriendAgreeResp) Reset() {
*x = FriendAgreeResp{}
if protoimpl.UnsafeEnabled {
- mi := &file_friend_friend_msg_proto_msgTypes[8]
+ mi := &file_friend_friend_msg_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -479,7 +565,7 @@ func (x *FriendAgreeResp) String() string {
func (*FriendAgreeResp) ProtoMessage() {}
func (x *FriendAgreeResp) ProtoReflect() protoreflect.Message {
- mi := &file_friend_friend_msg_proto_msgTypes[8]
+ mi := &file_friend_friend_msg_proto_msgTypes[10]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -492,7 +578,7 @@ func (x *FriendAgreeResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use FriendAgreeResp.ProtoReflect.Descriptor instead.
func (*FriendAgreeResp) Descriptor() ([]byte, []int) {
- return file_friend_friend_msg_proto_rawDescGZIP(), []int{8}
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{10}
}
func (x *FriendAgreeResp) GetNum() int32 {
@@ -514,7 +600,7 @@ type FriendRefuseReq struct {
func (x *FriendRefuseReq) Reset() {
*x = FriendRefuseReq{}
if protoimpl.UnsafeEnabled {
- mi := &file_friend_friend_msg_proto_msgTypes[9]
+ mi := &file_friend_friend_msg_proto_msgTypes[11]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -527,7 +613,7 @@ func (x *FriendRefuseReq) String() string {
func (*FriendRefuseReq) ProtoMessage() {}
func (x *FriendRefuseReq) ProtoReflect() protoreflect.Message {
- mi := &file_friend_friend_msg_proto_msgTypes[9]
+ mi := &file_friend_friend_msg_proto_msgTypes[11]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -540,7 +626,7 @@ func (x *FriendRefuseReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use FriendRefuseReq.ProtoReflect.Descriptor instead.
func (*FriendRefuseReq) Descriptor() ([]byte, []int) {
- return file_friend_friend_msg_proto_rawDescGZIP(), []int{9}
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{11}
}
func (x *FriendRefuseReq) GetFriendIds() []string {
@@ -561,7 +647,7 @@ type FriendRefuseResp struct {
func (x *FriendRefuseResp) Reset() {
*x = FriendRefuseResp{}
if protoimpl.UnsafeEnabled {
- mi := &file_friend_friend_msg_proto_msgTypes[10]
+ mi := &file_friend_friend_msg_proto_msgTypes[12]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -574,7 +660,7 @@ func (x *FriendRefuseResp) String() string {
func (*FriendRefuseResp) ProtoMessage() {}
func (x *FriendRefuseResp) ProtoReflect() protoreflect.Message {
- mi := &file_friend_friend_msg_proto_msgTypes[10]
+ mi := &file_friend_friend_msg_proto_msgTypes[12]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -587,7 +673,7 @@ func (x *FriendRefuseResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use FriendRefuseResp.ProtoReflect.Descriptor instead.
func (*FriendRefuseResp) Descriptor() ([]byte, []int) {
- return file_friend_friend_msg_proto_rawDescGZIP(), []int{10}
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{12}
}
func (x *FriendRefuseResp) GetNum() int32 {
@@ -607,7 +693,7 @@ type FriendApplyListReq struct {
func (x *FriendApplyListReq) Reset() {
*x = FriendApplyListReq{}
if protoimpl.UnsafeEnabled {
- mi := &file_friend_friend_msg_proto_msgTypes[11]
+ mi := &file_friend_friend_msg_proto_msgTypes[13]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -620,7 +706,7 @@ func (x *FriendApplyListReq) String() string {
func (*FriendApplyListReq) ProtoMessage() {}
func (x *FriendApplyListReq) ProtoReflect() protoreflect.Message {
- mi := &file_friend_friend_msg_proto_msgTypes[11]
+ mi := &file_friend_friend_msg_proto_msgTypes[13]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -633,7 +719,7 @@ func (x *FriendApplyListReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use FriendApplyListReq.ProtoReflect.Descriptor instead.
func (*FriendApplyListReq) Descriptor() ([]byte, []int) {
- return file_friend_friend_msg_proto_rawDescGZIP(), []int{11}
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{13}
}
type FriendApplyListResp struct {
@@ -647,7 +733,7 @@ type FriendApplyListResp struct {
func (x *FriendApplyListResp) Reset() {
*x = FriendApplyListResp{}
if protoimpl.UnsafeEnabled {
- mi := &file_friend_friend_msg_proto_msgTypes[12]
+ mi := &file_friend_friend_msg_proto_msgTypes[14]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -660,7 +746,7 @@ func (x *FriendApplyListResp) String() string {
func (*FriendApplyListResp) ProtoMessage() {}
func (x *FriendApplyListResp) ProtoReflect() protoreflect.Message {
- mi := &file_friend_friend_msg_proto_msgTypes[12]
+ mi := &file_friend_friend_msg_proto_msgTypes[14]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -673,7 +759,7 @@ func (x *FriendApplyListResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use FriendApplyListResp.ProtoReflect.Descriptor instead.
func (*FriendApplyListResp) Descriptor() ([]byte, []int) {
- return file_friend_friend_msg_proto_rawDescGZIP(), []int{12}
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{14}
}
func (x *FriendApplyListResp) GetList() []*FriendBase {
@@ -695,7 +781,7 @@ type FriendSearchReq struct {
func (x *FriendSearchReq) Reset() {
*x = FriendSearchReq{}
if protoimpl.UnsafeEnabled {
- mi := &file_friend_friend_msg_proto_msgTypes[13]
+ mi := &file_friend_friend_msg_proto_msgTypes[15]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -708,7 +794,7 @@ func (x *FriendSearchReq) String() string {
func (*FriendSearchReq) ProtoMessage() {}
func (x *FriendSearchReq) ProtoReflect() protoreflect.Message {
- mi := &file_friend_friend_msg_proto_msgTypes[13]
+ mi := &file_friend_friend_msg_proto_msgTypes[15]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -721,7 +807,7 @@ func (x *FriendSearchReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use FriendSearchReq.ProtoReflect.Descriptor instead.
func (*FriendSearchReq) Descriptor() ([]byte, []int) {
- return file_friend_friend_msg_proto_rawDescGZIP(), []int{13}
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{15}
}
func (x *FriendSearchReq) GetNickName() string {
@@ -742,7 +828,7 @@ type FriendSearchResp struct {
func (x *FriendSearchResp) Reset() {
*x = FriendSearchResp{}
if protoimpl.UnsafeEnabled {
- mi := &file_friend_friend_msg_proto_msgTypes[14]
+ mi := &file_friend_friend_msg_proto_msgTypes[16]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -755,7 +841,7 @@ func (x *FriendSearchResp) String() string {
func (*FriendSearchResp) ProtoMessage() {}
func (x *FriendSearchResp) ProtoReflect() protoreflect.Message {
- mi := &file_friend_friend_msg_proto_msgTypes[14]
+ mi := &file_friend_friend_msg_proto_msgTypes[16]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -768,7 +854,7 @@ func (x *FriendSearchResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use FriendSearchResp.ProtoReflect.Descriptor instead.
func (*FriendSearchResp) Descriptor() ([]byte, []int) {
- return file_friend_friend_msg_proto_rawDescGZIP(), []int{14}
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{16}
}
func (x *FriendSearchResp) GetFriend() *FriendBase {
@@ -788,7 +874,7 @@ type FriendBlackListReq struct {
func (x *FriendBlackListReq) Reset() {
*x = FriendBlackListReq{}
if protoimpl.UnsafeEnabled {
- mi := &file_friend_friend_msg_proto_msgTypes[15]
+ mi := &file_friend_friend_msg_proto_msgTypes[17]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -801,7 +887,7 @@ func (x *FriendBlackListReq) String() string {
func (*FriendBlackListReq) ProtoMessage() {}
func (x *FriendBlackListReq) ProtoReflect() protoreflect.Message {
- mi := &file_friend_friend_msg_proto_msgTypes[15]
+ mi := &file_friend_friend_msg_proto_msgTypes[17]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -814,7 +900,7 @@ func (x *FriendBlackListReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use FriendBlackListReq.ProtoReflect.Descriptor instead.
func (*FriendBlackListReq) Descriptor() ([]byte, []int) {
- return file_friend_friend_msg_proto_rawDescGZIP(), []int{15}
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{17}
}
type FriendBlackListResp struct {
@@ -828,7 +914,7 @@ type FriendBlackListResp struct {
func (x *FriendBlackListResp) Reset() {
*x = FriendBlackListResp{}
if protoimpl.UnsafeEnabled {
- mi := &file_friend_friend_msg_proto_msgTypes[16]
+ mi := &file_friend_friend_msg_proto_msgTypes[18]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -841,7 +927,7 @@ func (x *FriendBlackListResp) String() string {
func (*FriendBlackListResp) ProtoMessage() {}
func (x *FriendBlackListResp) ProtoReflect() protoreflect.Message {
- mi := &file_friend_friend_msg_proto_msgTypes[16]
+ mi := &file_friend_friend_msg_proto_msgTypes[18]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -854,7 +940,7 @@ func (x *FriendBlackListResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use FriendBlackListResp.ProtoReflect.Descriptor instead.
func (*FriendBlackListResp) Descriptor() ([]byte, []int) {
- return file_friend_friend_msg_proto_rawDescGZIP(), []int{16}
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{18}
}
func (x *FriendBlackListResp) GetFriends() []*FriendBase {
@@ -876,7 +962,7 @@ type FriendBlackAddReq struct {
func (x *FriendBlackAddReq) Reset() {
*x = FriendBlackAddReq{}
if protoimpl.UnsafeEnabled {
- mi := &file_friend_friend_msg_proto_msgTypes[17]
+ mi := &file_friend_friend_msg_proto_msgTypes[19]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -889,7 +975,7 @@ func (x *FriendBlackAddReq) String() string {
func (*FriendBlackAddReq) ProtoMessage() {}
func (x *FriendBlackAddReq) ProtoReflect() protoreflect.Message {
- mi := &file_friend_friend_msg_proto_msgTypes[17]
+ mi := &file_friend_friend_msg_proto_msgTypes[19]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -902,7 +988,7 @@ func (x *FriendBlackAddReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use FriendBlackAddReq.ProtoReflect.Descriptor instead.
func (*FriendBlackAddReq) Descriptor() ([]byte, []int) {
- return file_friend_friend_msg_proto_rawDescGZIP(), []int{17}
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{19}
}
func (x *FriendBlackAddReq) GetFriendId() string {
@@ -924,7 +1010,7 @@ type FriendBlackAddResp struct {
func (x *FriendBlackAddResp) Reset() {
*x = FriendBlackAddResp{}
if protoimpl.UnsafeEnabled {
- mi := &file_friend_friend_msg_proto_msgTypes[18]
+ mi := &file_friend_friend_msg_proto_msgTypes[20]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -937,7 +1023,7 @@ func (x *FriendBlackAddResp) String() string {
func (*FriendBlackAddResp) ProtoMessage() {}
func (x *FriendBlackAddResp) ProtoReflect() protoreflect.Message {
- mi := &file_friend_friend_msg_proto_msgTypes[18]
+ mi := &file_friend_friend_msg_proto_msgTypes[20]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -950,7 +1036,7 @@ func (x *FriendBlackAddResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use FriendBlackAddResp.ProtoReflect.Descriptor instead.
func (*FriendBlackAddResp) Descriptor() ([]byte, []int) {
- return file_friend_friend_msg_proto_rawDescGZIP(), []int{18}
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{20}
}
func (x *FriendBlackAddResp) GetFriendId() string {
@@ -979,7 +1065,7 @@ type FriendDelBlackReq struct {
func (x *FriendDelBlackReq) Reset() {
*x = FriendDelBlackReq{}
if protoimpl.UnsafeEnabled {
- mi := &file_friend_friend_msg_proto_msgTypes[19]
+ mi := &file_friend_friend_msg_proto_msgTypes[21]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -992,7 +1078,7 @@ func (x *FriendDelBlackReq) String() string {
func (*FriendDelBlackReq) ProtoMessage() {}
func (x *FriendDelBlackReq) ProtoReflect() protoreflect.Message {
- mi := &file_friend_friend_msg_proto_msgTypes[19]
+ mi := &file_friend_friend_msg_proto_msgTypes[21]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1005,7 +1091,7 @@ func (x *FriendDelBlackReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use FriendDelBlackReq.ProtoReflect.Descriptor instead.
func (*FriendDelBlackReq) Descriptor() ([]byte, []int) {
- return file_friend_friend_msg_proto_rawDescGZIP(), []int{19}
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{21}
}
func (x *FriendDelBlackReq) GetFriendId() string {
@@ -1027,7 +1113,7 @@ type FriendDelBlackResp struct {
func (x *FriendDelBlackResp) Reset() {
*x = FriendDelBlackResp{}
if protoimpl.UnsafeEnabled {
- mi := &file_friend_friend_msg_proto_msgTypes[20]
+ mi := &file_friend_friend_msg_proto_msgTypes[22]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1040,7 +1126,7 @@ func (x *FriendDelBlackResp) String() string {
func (*FriendDelBlackResp) ProtoMessage() {}
func (x *FriendDelBlackResp) ProtoReflect() protoreflect.Message {
- mi := &file_friend_friend_msg_proto_msgTypes[20]
+ mi := &file_friend_friend_msg_proto_msgTypes[22]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1053,7 +1139,7 @@ func (x *FriendDelBlackResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use FriendDelBlackResp.ProtoReflect.Descriptor instead.
func (*FriendDelBlackResp) Descriptor() ([]byte, []int) {
- return file_friend_friend_msg_proto_rawDescGZIP(), []int{20}
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{22}
}
func (x *FriendDelBlackResp) GetFriendId() string {
@@ -1082,7 +1168,7 @@ type FriendReceiveReq struct {
func (x *FriendReceiveReq) Reset() {
*x = FriendReceiveReq{}
if protoimpl.UnsafeEnabled {
- mi := &file_friend_friend_msg_proto_msgTypes[21]
+ mi := &file_friend_friend_msg_proto_msgTypes[23]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1095,7 +1181,7 @@ func (x *FriendReceiveReq) String() string {
func (*FriendReceiveReq) ProtoMessage() {}
func (x *FriendReceiveReq) ProtoReflect() protoreflect.Message {
- mi := &file_friend_friend_msg_proto_msgTypes[21]
+ mi := &file_friend_friend_msg_proto_msgTypes[23]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1108,7 +1194,7 @@ func (x *FriendReceiveReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use FriendReceiveReq.ProtoReflect.Descriptor instead.
func (*FriendReceiveReq) Descriptor() ([]byte, []int) {
- return file_friend_friend_msg_proto_rawDescGZIP(), []int{21}
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{23}
}
func (x *FriendReceiveReq) GetFriendId() string {
@@ -1130,7 +1216,7 @@ type FriendReceiveResp struct {
func (x *FriendReceiveResp) Reset() {
*x = FriendReceiveResp{}
if protoimpl.UnsafeEnabled {
- mi := &file_friend_friend_msg_proto_msgTypes[22]
+ mi := &file_friend_friend_msg_proto_msgTypes[24]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1143,7 +1229,7 @@ func (x *FriendReceiveResp) String() string {
func (*FriendReceiveResp) ProtoMessage() {}
func (x *FriendReceiveResp) ProtoReflect() protoreflect.Message {
- mi := &file_friend_friend_msg_proto_msgTypes[22]
+ mi := &file_friend_friend_msg_proto_msgTypes[24]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1156,7 +1242,7 @@ func (x *FriendReceiveResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use FriendReceiveResp.ProtoReflect.Descriptor instead.
func (*FriendReceiveResp) Descriptor() ([]byte, []int) {
- return file_friend_friend_msg_proto_rawDescGZIP(), []int{22}
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{24}
}
func (x *FriendReceiveResp) GetFriendId() string {
@@ -1185,7 +1271,7 @@ type FriendGiveReq struct {
func (x *FriendGiveReq) Reset() {
*x = FriendGiveReq{}
if protoimpl.UnsafeEnabled {
- mi := &file_friend_friend_msg_proto_msgTypes[23]
+ mi := &file_friend_friend_msg_proto_msgTypes[25]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1198,7 +1284,7 @@ func (x *FriendGiveReq) String() string {
func (*FriendGiveReq) ProtoMessage() {}
func (x *FriendGiveReq) ProtoReflect() protoreflect.Message {
- mi := &file_friend_friend_msg_proto_msgTypes[23]
+ mi := &file_friend_friend_msg_proto_msgTypes[25]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1211,7 +1297,7 @@ func (x *FriendGiveReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use FriendGiveReq.ProtoReflect.Descriptor instead.
func (*FriendGiveReq) Descriptor() ([]byte, []int) {
- return file_friend_friend_msg_proto_rawDescGZIP(), []int{23}
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{25}
}
func (x *FriendGiveReq) GetFriendId() string {
@@ -1233,7 +1319,7 @@ type FriendGiveResp struct {
func (x *FriendGiveResp) Reset() {
*x = FriendGiveResp{}
if protoimpl.UnsafeEnabled {
- mi := &file_friend_friend_msg_proto_msgTypes[24]
+ mi := &file_friend_friend_msg_proto_msgTypes[26]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1246,7 +1332,7 @@ func (x *FriendGiveResp) String() string {
func (*FriendGiveResp) ProtoMessage() {}
func (x *FriendGiveResp) ProtoReflect() protoreflect.Message {
- mi := &file_friend_friend_msg_proto_msgTypes[24]
+ mi := &file_friend_friend_msg_proto_msgTypes[26]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1259,7 +1345,7 @@ func (x *FriendGiveResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use FriendGiveResp.ProtoReflect.Descriptor instead.
func (*FriendGiveResp) Descriptor() ([]byte, []int) {
- return file_friend_friend_msg_proto_rawDescGZIP(), []int{24}
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{26}
}
func (x *FriendGiveResp) GetFriendId() string {
@@ -1288,7 +1374,7 @@ type FriendTotalReq struct {
func (x *FriendTotalReq) Reset() {
*x = FriendTotalReq{}
if protoimpl.UnsafeEnabled {
- mi := &file_friend_friend_msg_proto_msgTypes[25]
+ mi := &file_friend_friend_msg_proto_msgTypes[27]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1301,7 +1387,7 @@ func (x *FriendTotalReq) String() string {
func (*FriendTotalReq) ProtoMessage() {}
func (x *FriendTotalReq) ProtoReflect() protoreflect.Message {
- mi := &file_friend_friend_msg_proto_msgTypes[25]
+ mi := &file_friend_friend_msg_proto_msgTypes[27]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1314,7 +1400,7 @@ func (x *FriendTotalReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use FriendTotalReq.ProtoReflect.Descriptor instead.
func (*FriendTotalReq) Descriptor() ([]byte, []int) {
- return file_friend_friend_msg_proto_rawDescGZIP(), []int{25}
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{27}
}
func (x *FriendTotalReq) GetFriendId() string {
@@ -1336,7 +1422,7 @@ type FriendTotalResp struct {
func (x *FriendTotalResp) Reset() {
*x = FriendTotalResp{}
if protoimpl.UnsafeEnabled {
- mi := &file_friend_friend_msg_proto_msgTypes[26]
+ mi := &file_friend_friend_msg_proto_msgTypes[28]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1349,7 +1435,7 @@ func (x *FriendTotalResp) String() string {
func (*FriendTotalResp) ProtoMessage() {}
func (x *FriendTotalResp) ProtoReflect() protoreflect.Message {
- mi := &file_friend_friend_msg_proto_msgTypes[26]
+ mi := &file_friend_friend_msg_proto_msgTypes[28]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1362,7 +1448,7 @@ func (x *FriendTotalResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use FriendTotalResp.ProtoReflect.Descriptor instead.
func (*FriendTotalResp) Descriptor() ([]byte, []int) {
- return file_friend_friend_msg_proto_rawDescGZIP(), []int{26}
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{28}
}
func (x *FriendTotalResp) GetFriendId() string {
@@ -1389,7 +1475,7 @@ type FriendZanlistReq struct {
func (x *FriendZanlistReq) Reset() {
*x = FriendZanlistReq{}
if protoimpl.UnsafeEnabled {
- mi := &file_friend_friend_msg_proto_msgTypes[27]
+ mi := &file_friend_friend_msg_proto_msgTypes[29]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1402,7 +1488,7 @@ func (x *FriendZanlistReq) String() string {
func (*FriendZanlistReq) ProtoMessage() {}
func (x *FriendZanlistReq) ProtoReflect() protoreflect.Message {
- mi := &file_friend_friend_msg_proto_msgTypes[27]
+ mi := &file_friend_friend_msg_proto_msgTypes[29]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1415,7 +1501,7 @@ func (x *FriendZanlistReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use FriendZanlistReq.ProtoReflect.Descriptor instead.
func (*FriendZanlistReq) Descriptor() ([]byte, []int) {
- return file_friend_friend_msg_proto_rawDescGZIP(), []int{27}
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{29}
}
type FriendZanlistResp struct {
@@ -1429,7 +1515,7 @@ type FriendZanlistResp struct {
func (x *FriendZanlistResp) Reset() {
*x = FriendZanlistResp{}
if protoimpl.UnsafeEnabled {
- mi := &file_friend_friend_msg_proto_msgTypes[28]
+ mi := &file_friend_friend_msg_proto_msgTypes[30]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1442,7 +1528,7 @@ func (x *FriendZanlistResp) String() string {
func (*FriendZanlistResp) ProtoMessage() {}
func (x *FriendZanlistResp) ProtoReflect() protoreflect.Message {
- mi := &file_friend_friend_msg_proto_msgTypes[28]
+ mi := &file_friend_friend_msg_proto_msgTypes[30]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1455,7 +1541,7 @@ func (x *FriendZanlistResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use FriendZanlistResp.ProtoReflect.Descriptor instead.
func (*FriendZanlistResp) Descriptor() ([]byte, []int) {
- return file_friend_friend_msg_proto_rawDescGZIP(), []int{28}
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{30}
}
func (x *FriendZanlistResp) GetList() []*FriendBase {
@@ -1477,7 +1563,7 @@ type FriendZanReq struct {
func (x *FriendZanReq) Reset() {
*x = FriendZanReq{}
if protoimpl.UnsafeEnabled {
- mi := &file_friend_friend_msg_proto_msgTypes[29]
+ mi := &file_friend_friend_msg_proto_msgTypes[31]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1490,7 +1576,7 @@ func (x *FriendZanReq) String() string {
func (*FriendZanReq) ProtoMessage() {}
func (x *FriendZanReq) ProtoReflect() protoreflect.Message {
- mi := &file_friend_friend_msg_proto_msgTypes[29]
+ mi := &file_friend_friend_msg_proto_msgTypes[31]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1503,7 +1589,7 @@ func (x *FriendZanReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use FriendZanReq.ProtoReflect.Descriptor instead.
func (*FriendZanReq) Descriptor() ([]byte, []int) {
- return file_friend_friend_msg_proto_rawDescGZIP(), []int{29}
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{31}
}
func (x *FriendZanReq) GetFriendId() string {
@@ -1524,7 +1610,7 @@ type FriendZanResp struct {
func (x *FriendZanResp) Reset() {
*x = FriendZanResp{}
if protoimpl.UnsafeEnabled {
- mi := &file_friend_friend_msg_proto_msgTypes[30]
+ mi := &file_friend_friend_msg_proto_msgTypes[32]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1537,7 +1623,7 @@ func (x *FriendZanResp) String() string {
func (*FriendZanResp) ProtoMessage() {}
func (x *FriendZanResp) ProtoReflect() protoreflect.Message {
- mi := &file_friend_friend_msg_proto_msgTypes[30]
+ mi := &file_friend_friend_msg_proto_msgTypes[32]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1550,7 +1636,7 @@ func (x *FriendZanResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use FriendZanResp.ProtoReflect.Descriptor instead.
func (*FriendZanResp) Descriptor() ([]byte, []int) {
- return file_friend_friend_msg_proto_rawDescGZIP(), []int{30}
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{32}
}
func (x *FriendZanResp) GetFlag() bool {
@@ -1572,7 +1658,7 @@ type FriendZanreceiveReq struct {
func (x *FriendZanreceiveReq) Reset() {
*x = FriendZanreceiveReq{}
if protoimpl.UnsafeEnabled {
- mi := &file_friend_friend_msg_proto_msgTypes[31]
+ mi := &file_friend_friend_msg_proto_msgTypes[33]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1585,7 +1671,7 @@ func (x *FriendZanreceiveReq) String() string {
func (*FriendZanreceiveReq) ProtoMessage() {}
func (x *FriendZanreceiveReq) ProtoReflect() protoreflect.Message {
- mi := &file_friend_friend_msg_proto_msgTypes[31]
+ mi := &file_friend_friend_msg_proto_msgTypes[33]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1598,7 +1684,7 @@ func (x *FriendZanreceiveReq) ProtoReflect() protoreflect.Message {
// Deprecated: Use FriendZanreceiveReq.ProtoReflect.Descriptor instead.
func (*FriendZanreceiveReq) Descriptor() ([]byte, []int) {
- return file_friend_friend_msg_proto_rawDescGZIP(), []int{31}
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{33}
}
func (x *FriendZanreceiveReq) GetFriendId() string {
@@ -1619,7 +1705,7 @@ type FriendZanreceiveResp struct {
func (x *FriendZanreceiveResp) Reset() {
*x = FriendZanreceiveResp{}
if protoimpl.UnsafeEnabled {
- mi := &file_friend_friend_msg_proto_msgTypes[32]
+ mi := &file_friend_friend_msg_proto_msgTypes[34]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
@@ -1632,7 +1718,7 @@ func (x *FriendZanreceiveResp) String() string {
func (*FriendZanreceiveResp) ProtoMessage() {}
func (x *FriendZanreceiveResp) ProtoReflect() protoreflect.Message {
- mi := &file_friend_friend_msg_proto_msgTypes[32]
+ mi := &file_friend_friend_msg_proto_msgTypes[34]
if protoimpl.UnsafeEnabled && x != nil {
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
if ms.LoadMessageInfo() == nil {
@@ -1645,7 +1731,7 @@ func (x *FriendZanreceiveResp) ProtoReflect() protoreflect.Message {
// Deprecated: Use FriendZanreceiveResp.ProtoReflect.Descriptor instead.
func (*FriendZanreceiveResp) Descriptor() ([]byte, []int) {
- return file_friend_friend_msg_proto_rawDescGZIP(), []int{32}
+ return file_friend_friend_msg_proto_rawDescGZIP(), []int{34}
}
func (x *FriendZanreceiveResp) GetFlag() bool {
@@ -1666,7 +1752,7 @@ var file_friend_friend_msg_proto_rawDesc = []byte{
0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05,
0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x65, 0x76,
0x65, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01,
- 0x28, 0x05, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74,
+ 0x28, 0x09, 0x52, 0x06, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74,
0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x74,
0x72, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72,
@@ -1676,103 +1762,107 @@ var file_friend_friend_msg_proto_rawDesc = []byte{
0x73, 0x74, 0x52, 0x65, 0x71, 0x22, 0x31, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c,
0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1f, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18,
0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x61,
- 0x73, 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x2c, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65,
- 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72,
- 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72,
- 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x22, 0x45, 0x0a, 0x0f, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64,
- 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65,
- 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49,
- 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20,
- 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x22, 0x2a, 0x0a,
- 0x0c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x44, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a,
- 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
- 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x22, 0x43, 0x0a, 0x0d, 0x46, 0x72, 0x69,
- 0x65, 0x6e, 0x64, 0x44, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72,
- 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72,
- 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64,
- 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x2e,
- 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x67, 0x72, 0x65, 0x65, 0x52, 0x65, 0x71,
- 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20,
- 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x73, 0x22, 0x23,
- 0x0a, 0x0f, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x67, 0x72, 0x65, 0x65, 0x52, 0x65, 0x73,
- 0x70, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03,
- 0x4e, 0x75, 0x6d, 0x22, 0x2f, 0x0a, 0x0f, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x66,
- 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64,
- 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x72, 0x69, 0x65, 0x6e,
- 0x64, 0x49, 0x64, 0x73, 0x22, 0x24, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65,
- 0x66, 0x75, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18,
- 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x14, 0x0a, 0x12, 0x46, 0x72,
- 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71,
- 0x22, 0x36, 0x0a, 0x13, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c,
- 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1f, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18,
- 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x61,
- 0x73, 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x2d, 0x0a, 0x0f, 0x46, 0x72, 0x69, 0x65,
- 0x6e, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6e,
- 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e,
- 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x37, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e,
- 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52, 0x65, 0x73, 0x70, 0x12, 0x23, 0x0a, 0x06, 0x66,
- 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x46, 0x72,
- 0x69, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x73, 0x65, 0x52, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64,
- 0x22, 0x14, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4c,
- 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x22, 0x3c, 0x0a, 0x13, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64,
- 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x25, 0x0a,
- 0x07, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b,
- 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x73, 0x65, 0x52, 0x07, 0x66, 0x72, 0x69,
- 0x65, 0x6e, 0x64, 0x73, 0x22, 0x2f, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x6c,
- 0x61, 0x63, 0x6b, 0x41, 0x64, 0x64, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x69,
- 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, 0x69,
- 0x65, 0x6e, 0x64, 0x49, 0x64, 0x22, 0x48, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42,
- 0x6c, 0x61, 0x63, 0x6b, 0x41, 0x64, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x66,
- 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66,
- 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49,
- 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22,
- 0x2f, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x44, 0x65, 0x6c, 0x42, 0x6c, 0x61, 0x63,
- 0x6b, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64,
- 0x22, 0x48, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x44, 0x65, 0x6c, 0x42, 0x6c, 0x61,
- 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64,
- 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64,
- 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x2e, 0x0a, 0x10, 0x46, 0x72,
- 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a,
- 0x0a, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
- 0x52, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x22, 0x47, 0x0a, 0x11, 0x46, 0x72,
- 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12,
- 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
- 0x09, 0x52, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75,
- 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65,
- 0x72, 0x49, 0x64, 0x22, 0x2b, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x69, 0x76,
- 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64,
- 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64,
- 0x22, 0x44, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x69, 0x76, 0x65, 0x52, 0x65,
+ 0x73, 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x11, 0x0a, 0x0f, 0x46, 0x72, 0x69, 0x65,
+ 0x6e, 0x64, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x22, 0x33, 0x0a, 0x10, 0x46,
+ 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12,
+ 0x1f, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e,
+ 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74,
+ 0x22, 0x2c, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52,
+ 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01,
+ 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x22, 0x45,
+ 0x0a, 0x0f, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73,
+ 0x70, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x69,
+ 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, 0x69,
+ 0x65, 0x6e, 0x64, 0x49, 0x64, 0x22, 0x2a, 0x0a, 0x0c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x44,
+ 0x65, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49,
+ 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49,
+ 0x64, 0x22, 0x43, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x44, 0x65, 0x6c, 0x52, 0x65,
0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01,
0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x16,
0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06,
- 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x2c, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64,
- 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x69, 0x65,
- 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, 0x69, 0x65,
- 0x6e, 0x64, 0x49, 0x64, 0x22, 0x43, 0x0a, 0x0f, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x6f,
- 0x74, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e,
+ 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x2e, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64,
+ 0x41, 0x67, 0x72, 0x65, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x69, 0x65,
+ 0x6e, 0x64, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x72, 0x69,
+ 0x65, 0x6e, 0x64, 0x49, 0x64, 0x73, 0x22, 0x23, 0x0a, 0x0f, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64,
+ 0x41, 0x67, 0x72, 0x65, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x2f, 0x0a, 0x0f, 0x46,
+ 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1c,
+ 0x0a, 0x09, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28,
+ 0x09, 0x52, 0x09, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x73, 0x22, 0x24, 0x0a, 0x10,
+ 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x66, 0x75, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70,
+ 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e,
+ 0x75, 0x6d, 0x22, 0x14, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c,
+ 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x22, 0x36, 0x0a, 0x13, 0x46, 0x72, 0x69, 0x65,
+ 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12,
+ 0x1f, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e,
+ 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74,
+ 0x22, 0x2d, 0x0a, 0x0f, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68,
+ 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x22,
+ 0x37, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x52,
+ 0x65, 0x73, 0x70, 0x12, 0x23, 0x0a, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x73, 0x65,
+ 0x52, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65,
+ 0x6e, 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x22, 0x3c,
+ 0x0a, 0x13, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4c, 0x69, 0x73,
+ 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x25, 0x0a, 0x07, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73,
+ 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42,
+ 0x61, 0x73, 0x65, 0x52, 0x07, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x22, 0x2f, 0x0a, 0x11,
+ 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x41, 0x64, 0x64, 0x52, 0x65,
+ 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x22, 0x48, 0x0a,
+ 0x12, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x41, 0x64, 0x64, 0x52,
+ 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x12,
+ 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
+ 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x2f, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e,
+ 0x64, 0x44, 0x65, 0x6c, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08,
+ 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
+ 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x22, 0x48, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65,
+ 0x6e, 0x64, 0x44, 0x65, 0x6c, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a,
+ 0x0a, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
+ 0x52, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73,
+ 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72,
+ 0x49, 0x64, 0x22, 0x2e, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x65,
+ 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64,
+ 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64,
+ 0x49, 0x64, 0x22, 0x47, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x63, 0x65,
+ 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e,
0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e,
- 0x64, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01,
- 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x12, 0x0a, 0x10, 0x46, 0x72, 0x69,
- 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x22, 0x34, 0x0a,
- 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65,
- 0x73, 0x70, 0x12, 0x1f, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
- 0x32, 0x0b, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x6c,
- 0x69, 0x73, 0x74, 0x22, 0x2a, 0x0a, 0x0c, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e,
+ 0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20,
+ 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x2b, 0x0a, 0x0d, 0x46,
+ 0x72, 0x69, 0x65, 0x6e, 0x64, 0x47, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08,
+ 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08,
+ 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x22, 0x44, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65,
+ 0x6e, 0x64, 0x47, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72,
+ 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72,
+ 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64,
+ 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x2c,
+ 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x71,
+ 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01,
+ 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x22, 0x43, 0x0a, 0x0f,
+ 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12,
+ 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
+ 0x09, 0x52, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74,
+ 0x6f, 0x74, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61,
+ 0x6c, 0x22, 0x12, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x6c, 0x69,
+ 0x73, 0x74, 0x52, 0x65, 0x71, 0x22, 0x34, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a,
+ 0x61, 0x6e, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1f, 0x0a, 0x04, 0x6c, 0x69,
+ 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e,
+ 0x64, 0x42, 0x61, 0x73, 0x65, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x2a, 0x0a, 0x0c, 0x46,
+ 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x66,
+ 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66,
+ 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x22, 0x23, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e,
+ 0x64, 0x5a, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x22, 0x31, 0x0a, 0x13,
+ 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65,
0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18,
0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x22,
- 0x23, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70,
- 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04,
- 0x66, 0x6c, 0x61, 0x67, 0x22, 0x31, 0x0a, 0x13, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61,
- 0x6e, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x66,
- 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66,
- 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x64, 0x22, 0x2a, 0x0a, 0x14, 0x46, 0x72, 0x69, 0x65, 0x6e,
- 0x64, 0x5a, 0x61, 0x6e, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12,
- 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66,
- 0x6c, 0x61, 0x67, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f,
- 0x74, 0x6f, 0x33,
+ 0x2a, 0x0a, 0x14, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x5a, 0x61, 0x6e, 0x72, 0x65, 0x63, 0x65,
+ 0x69, 0x76, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x18,
+ 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x06, 0x5a, 0x04, 0x2e,
+ 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}
var (
@@ -1787,53 +1877,56 @@ func file_friend_friend_msg_proto_rawDescGZIP() []byte {
return file_friend_friend_msg_proto_rawDescData
}
-var file_friend_friend_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 33)
+var file_friend_friend_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 35)
var file_friend_friend_msg_proto_goTypes = []interface{}{
(*FriendBase)(nil), // 0: FriendBase
(*FriendListReq)(nil), // 1: FriendListReq
(*FriendListResp)(nil), // 2: FriendListResp
- (*FriendApplyReq)(nil), // 3: FriendApplyReq
- (*FriendApplyResp)(nil), // 4: FriendApplyResp
- (*FriendDelReq)(nil), // 5: FriendDelReq
- (*FriendDelResp)(nil), // 6: FriendDelResp
- (*FriendAgreeReq)(nil), // 7: FriendAgreeReq
- (*FriendAgreeResp)(nil), // 8: FriendAgreeResp
- (*FriendRefuseReq)(nil), // 9: FriendRefuseReq
- (*FriendRefuseResp)(nil), // 10: FriendRefuseResp
- (*FriendApplyListReq)(nil), // 11: FriendApplyListReq
- (*FriendApplyListResp)(nil), // 12: FriendApplyListResp
- (*FriendSearchReq)(nil), // 13: FriendSearchReq
- (*FriendSearchResp)(nil), // 14: FriendSearchResp
- (*FriendBlackListReq)(nil), // 15: FriendBlackListReq
- (*FriendBlackListResp)(nil), // 16: FriendBlackListResp
- (*FriendBlackAddReq)(nil), // 17: FriendBlackAddReq
- (*FriendBlackAddResp)(nil), // 18: FriendBlackAddResp
- (*FriendDelBlackReq)(nil), // 19: FriendDelBlackReq
- (*FriendDelBlackResp)(nil), // 20: FriendDelBlackResp
- (*FriendReceiveReq)(nil), // 21: FriendReceiveReq
- (*FriendReceiveResp)(nil), // 22: FriendReceiveResp
- (*FriendGiveReq)(nil), // 23: FriendGiveReq
- (*FriendGiveResp)(nil), // 24: FriendGiveResp
- (*FriendTotalReq)(nil), // 25: FriendTotalReq
- (*FriendTotalResp)(nil), // 26: FriendTotalResp
- (*FriendZanlistReq)(nil), // 27: FriendZanlistReq
- (*FriendZanlistResp)(nil), // 28: FriendZanlistResp
- (*FriendZanReq)(nil), // 29: FriendZanReq
- (*FriendZanResp)(nil), // 30: FriendZanResp
- (*FriendZanreceiveReq)(nil), // 31: FriendZanreceiveReq
- (*FriendZanreceiveResp)(nil), // 32: FriendZanreceiveResp
+ (*FriendOnlineReq)(nil), // 3: FriendOnlineReq
+ (*FriendOnlineResp)(nil), // 4: FriendOnlineResp
+ (*FriendApplyReq)(nil), // 5: FriendApplyReq
+ (*FriendApplyResp)(nil), // 6: FriendApplyResp
+ (*FriendDelReq)(nil), // 7: FriendDelReq
+ (*FriendDelResp)(nil), // 8: FriendDelResp
+ (*FriendAgreeReq)(nil), // 9: FriendAgreeReq
+ (*FriendAgreeResp)(nil), // 10: FriendAgreeResp
+ (*FriendRefuseReq)(nil), // 11: FriendRefuseReq
+ (*FriendRefuseResp)(nil), // 12: FriendRefuseResp
+ (*FriendApplyListReq)(nil), // 13: FriendApplyListReq
+ (*FriendApplyListResp)(nil), // 14: FriendApplyListResp
+ (*FriendSearchReq)(nil), // 15: FriendSearchReq
+ (*FriendSearchResp)(nil), // 16: FriendSearchResp
+ (*FriendBlackListReq)(nil), // 17: FriendBlackListReq
+ (*FriendBlackListResp)(nil), // 18: FriendBlackListResp
+ (*FriendBlackAddReq)(nil), // 19: FriendBlackAddReq
+ (*FriendBlackAddResp)(nil), // 20: FriendBlackAddResp
+ (*FriendDelBlackReq)(nil), // 21: FriendDelBlackReq
+ (*FriendDelBlackResp)(nil), // 22: FriendDelBlackResp
+ (*FriendReceiveReq)(nil), // 23: FriendReceiveReq
+ (*FriendReceiveResp)(nil), // 24: FriendReceiveResp
+ (*FriendGiveReq)(nil), // 25: FriendGiveReq
+ (*FriendGiveResp)(nil), // 26: FriendGiveResp
+ (*FriendTotalReq)(nil), // 27: FriendTotalReq
+ (*FriendTotalResp)(nil), // 28: FriendTotalResp
+ (*FriendZanlistReq)(nil), // 29: FriendZanlistReq
+ (*FriendZanlistResp)(nil), // 30: FriendZanlistResp
+ (*FriendZanReq)(nil), // 31: FriendZanReq
+ (*FriendZanResp)(nil), // 32: FriendZanResp
+ (*FriendZanreceiveReq)(nil), // 33: FriendZanreceiveReq
+ (*FriendZanreceiveResp)(nil), // 34: FriendZanreceiveResp
}
var file_friend_friend_msg_proto_depIdxs = []int32{
0, // 0: FriendListResp.list:type_name -> FriendBase
- 0, // 1: FriendApplyListResp.list:type_name -> FriendBase
- 0, // 2: FriendSearchResp.friend:type_name -> FriendBase
- 0, // 3: FriendBlackListResp.friends:type_name -> FriendBase
- 0, // 4: FriendZanlistResp.list:type_name -> FriendBase
- 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
+ 0, // 1: FriendOnlineResp.list:type_name -> FriendBase
+ 0, // 2: FriendApplyListResp.list:type_name -> FriendBase
+ 0, // 3: FriendSearchResp.friend:type_name -> FriendBase
+ 0, // 4: FriendBlackListResp.friends:type_name -> FriendBase
+ 0, // 5: FriendZanlistResp.list:type_name -> FriendBase
+ 6, // [6:6] is the sub-list for method output_type
+ 6, // [6:6] is the sub-list for method input_type
+ 6, // [6:6] is the sub-list for extension type_name
+ 6, // [6:6] is the sub-list for extension extendee
+ 0, // [0:6] is the sub-list for field type_name
}
func init() { file_friend_friend_msg_proto_init() }
@@ -1879,7 +1972,7 @@ func file_friend_friend_msg_proto_init() {
}
}
file_friend_friend_msg_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FriendApplyReq); i {
+ switch v := v.(*FriendOnlineReq); i {
case 0:
return &v.state
case 1:
@@ -1891,7 +1984,7 @@ func file_friend_friend_msg_proto_init() {
}
}
file_friend_friend_msg_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FriendApplyResp); i {
+ switch v := v.(*FriendOnlineResp); i {
case 0:
return &v.state
case 1:
@@ -1903,7 +1996,7 @@ func file_friend_friend_msg_proto_init() {
}
}
file_friend_friend_msg_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FriendDelReq); i {
+ switch v := v.(*FriendApplyReq); i {
case 0:
return &v.state
case 1:
@@ -1915,7 +2008,7 @@ func file_friend_friend_msg_proto_init() {
}
}
file_friend_friend_msg_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FriendDelResp); i {
+ switch v := v.(*FriendApplyResp); i {
case 0:
return &v.state
case 1:
@@ -1927,7 +2020,7 @@ func file_friend_friend_msg_proto_init() {
}
}
file_friend_friend_msg_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FriendAgreeReq); i {
+ switch v := v.(*FriendDelReq); i {
case 0:
return &v.state
case 1:
@@ -1939,7 +2032,7 @@ func file_friend_friend_msg_proto_init() {
}
}
file_friend_friend_msg_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FriendAgreeResp); i {
+ switch v := v.(*FriendDelResp); i {
case 0:
return &v.state
case 1:
@@ -1951,7 +2044,7 @@ func file_friend_friend_msg_proto_init() {
}
}
file_friend_friend_msg_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FriendRefuseReq); i {
+ switch v := v.(*FriendAgreeReq); i {
case 0:
return &v.state
case 1:
@@ -1963,7 +2056,7 @@ func file_friend_friend_msg_proto_init() {
}
}
file_friend_friend_msg_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FriendRefuseResp); i {
+ switch v := v.(*FriendAgreeResp); i {
case 0:
return &v.state
case 1:
@@ -1975,7 +2068,7 @@ func file_friend_friend_msg_proto_init() {
}
}
file_friend_friend_msg_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FriendApplyListReq); i {
+ switch v := v.(*FriendRefuseReq); i {
case 0:
return &v.state
case 1:
@@ -1987,7 +2080,7 @@ func file_friend_friend_msg_proto_init() {
}
}
file_friend_friend_msg_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FriendApplyListResp); i {
+ switch v := v.(*FriendRefuseResp); i {
case 0:
return &v.state
case 1:
@@ -1999,7 +2092,7 @@ func file_friend_friend_msg_proto_init() {
}
}
file_friend_friend_msg_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FriendSearchReq); i {
+ switch v := v.(*FriendApplyListReq); i {
case 0:
return &v.state
case 1:
@@ -2011,7 +2104,7 @@ func file_friend_friend_msg_proto_init() {
}
}
file_friend_friend_msg_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FriendSearchResp); i {
+ switch v := v.(*FriendApplyListResp); i {
case 0:
return &v.state
case 1:
@@ -2023,7 +2116,7 @@ func file_friend_friend_msg_proto_init() {
}
}
file_friend_friend_msg_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FriendBlackListReq); i {
+ switch v := v.(*FriendSearchReq); i {
case 0:
return &v.state
case 1:
@@ -2035,7 +2128,7 @@ func file_friend_friend_msg_proto_init() {
}
}
file_friend_friend_msg_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FriendBlackListResp); i {
+ switch v := v.(*FriendSearchResp); i {
case 0:
return &v.state
case 1:
@@ -2047,7 +2140,7 @@ func file_friend_friend_msg_proto_init() {
}
}
file_friend_friend_msg_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FriendBlackAddReq); i {
+ switch v := v.(*FriendBlackListReq); i {
case 0:
return &v.state
case 1:
@@ -2059,7 +2152,7 @@ func file_friend_friend_msg_proto_init() {
}
}
file_friend_friend_msg_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FriendBlackAddResp); i {
+ switch v := v.(*FriendBlackListResp); i {
case 0:
return &v.state
case 1:
@@ -2071,7 +2164,7 @@ func file_friend_friend_msg_proto_init() {
}
}
file_friend_friend_msg_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FriendDelBlackReq); i {
+ switch v := v.(*FriendBlackAddReq); i {
case 0:
return &v.state
case 1:
@@ -2083,7 +2176,7 @@ func file_friend_friend_msg_proto_init() {
}
}
file_friend_friend_msg_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FriendDelBlackResp); i {
+ switch v := v.(*FriendBlackAddResp); i {
case 0:
return &v.state
case 1:
@@ -2095,7 +2188,7 @@ func file_friend_friend_msg_proto_init() {
}
}
file_friend_friend_msg_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FriendReceiveReq); i {
+ switch v := v.(*FriendDelBlackReq); i {
case 0:
return &v.state
case 1:
@@ -2107,7 +2200,7 @@ func file_friend_friend_msg_proto_init() {
}
}
file_friend_friend_msg_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FriendReceiveResp); i {
+ switch v := v.(*FriendDelBlackResp); i {
case 0:
return &v.state
case 1:
@@ -2119,7 +2212,7 @@ func file_friend_friend_msg_proto_init() {
}
}
file_friend_friend_msg_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FriendGiveReq); i {
+ switch v := v.(*FriendReceiveReq); i {
case 0:
return &v.state
case 1:
@@ -2131,7 +2224,7 @@ func file_friend_friend_msg_proto_init() {
}
}
file_friend_friend_msg_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FriendGiveResp); i {
+ switch v := v.(*FriendReceiveResp); i {
case 0:
return &v.state
case 1:
@@ -2143,7 +2236,7 @@ func file_friend_friend_msg_proto_init() {
}
}
file_friend_friend_msg_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FriendTotalReq); i {
+ switch v := v.(*FriendGiveReq); i {
case 0:
return &v.state
case 1:
@@ -2155,7 +2248,7 @@ func file_friend_friend_msg_proto_init() {
}
}
file_friend_friend_msg_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FriendTotalResp); i {
+ switch v := v.(*FriendGiveResp); i {
case 0:
return &v.state
case 1:
@@ -2167,7 +2260,7 @@ func file_friend_friend_msg_proto_init() {
}
}
file_friend_friend_msg_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FriendZanlistReq); i {
+ switch v := v.(*FriendTotalReq); i {
case 0:
return &v.state
case 1:
@@ -2179,7 +2272,7 @@ func file_friend_friend_msg_proto_init() {
}
}
file_friend_friend_msg_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FriendZanlistResp); i {
+ switch v := v.(*FriendTotalResp); i {
case 0:
return &v.state
case 1:
@@ -2191,7 +2284,7 @@ func file_friend_friend_msg_proto_init() {
}
}
file_friend_friend_msg_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FriendZanReq); i {
+ switch v := v.(*FriendZanlistReq); i {
case 0:
return &v.state
case 1:
@@ -2203,7 +2296,7 @@ func file_friend_friend_msg_proto_init() {
}
}
file_friend_friend_msg_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FriendZanResp); i {
+ switch v := v.(*FriendZanlistResp); i {
case 0:
return &v.state
case 1:
@@ -2215,7 +2308,7 @@ func file_friend_friend_msg_proto_init() {
}
}
file_friend_friend_msg_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} {
- switch v := v.(*FriendZanreceiveReq); i {
+ switch v := v.(*FriendZanReq); i {
case 0:
return &v.state
case 1:
@@ -2227,6 +2320,30 @@ func file_friend_friend_msg_proto_init() {
}
}
file_friend_friend_msg_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*FriendZanResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_friend_friend_msg_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*FriendZanreceiveReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_friend_friend_msg_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*FriendZanreceiveResp); i {
case 0:
return &v.state
@@ -2245,7 +2362,7 @@ func file_friend_friend_msg_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_friend_friend_msg_proto_rawDesc,
NumEnums: 0,
- NumMessages: 33,
+ NumMessages: 35,
NumExtensions: 0,
NumServices: 0,
},
diff --git a/pb/rtask_db.pb.go b/pb/rtask_db.pb.go
new file mode 100644
index 000000000..a556aea36
--- /dev/null
+++ b/pb/rtask_db.pb.go
@@ -0,0 +1,170 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.0
+// protoc v3.20.0
+// source: rtask/rtask_db.proto
+
+package pb
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+type DBRtask struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //ID
+ Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid" bson:"uid"` //用户ID
+ FrtaskIds []int32 `protobuf:"varint,3,rep,packed,name=frtaskIds,proto3" json:"frtaskIds" bson:"frtaskIds"` //已完成的任务Id
+ NextRtaskId int32 `protobuf:"varint,4,opt,name=nextRtaskId,proto3" json:"nextRtaskId"` //@go_tags(`bson:"nextRtaskId"`)下个任务Id
+}
+
+func (x *DBRtask) Reset() {
+ *x = DBRtask{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_rtask_rtask_db_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *DBRtask) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*DBRtask) ProtoMessage() {}
+
+func (x *DBRtask) ProtoReflect() protoreflect.Message {
+ mi := &file_rtask_rtask_db_proto_msgTypes[0]
+ 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 DBRtask.ProtoReflect.Descriptor instead.
+func (*DBRtask) Descriptor() ([]byte, []int) {
+ return file_rtask_rtask_db_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *DBRtask) GetId() string {
+ if x != nil {
+ return x.Id
+ }
+ return ""
+}
+
+func (x *DBRtask) GetUid() string {
+ if x != nil {
+ return x.Uid
+ }
+ return ""
+}
+
+func (x *DBRtask) GetFrtaskIds() []int32 {
+ if x != nil {
+ return x.FrtaskIds
+ }
+ return nil
+}
+
+func (x *DBRtask) GetNextRtaskId() int32 {
+ if x != nil {
+ return x.NextRtaskId
+ }
+ return 0
+}
+
+var File_rtask_rtask_db_proto protoreflect.FileDescriptor
+
+var file_rtask_rtask_db_proto_rawDesc = []byte{
+ 0x0a, 0x14, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x2f, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x64, 0x62,
+ 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6b, 0x0a, 0x07, 0x44, 0x42, 0x52, 0x74, 0x61, 0x73,
+ 0x6b, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69,
+ 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03,
+ 0x75, 0x69, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x66, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x73,
+ 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x09, 0x66, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64,
+ 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64,
+ 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x52, 0x74, 0x61, 0x73,
+ 0x6b, 0x49, 0x64, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f,
+ 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_rtask_rtask_db_proto_rawDescOnce sync.Once
+ file_rtask_rtask_db_proto_rawDescData = file_rtask_rtask_db_proto_rawDesc
+)
+
+func file_rtask_rtask_db_proto_rawDescGZIP() []byte {
+ file_rtask_rtask_db_proto_rawDescOnce.Do(func() {
+ file_rtask_rtask_db_proto_rawDescData = protoimpl.X.CompressGZIP(file_rtask_rtask_db_proto_rawDescData)
+ })
+ return file_rtask_rtask_db_proto_rawDescData
+}
+
+var file_rtask_rtask_db_proto_msgTypes = make([]protoimpl.MessageInfo, 1)
+var file_rtask_rtask_db_proto_goTypes = []interface{}{
+ (*DBRtask)(nil), // 0: DBRtask
+}
+var file_rtask_rtask_db_proto_depIdxs = []int32{
+ 0, // [0:0] is the sub-list for method output_type
+ 0, // [0:0] is the sub-list for method input_type
+ 0, // [0:0] is the sub-list for extension type_name
+ 0, // [0:0] is the sub-list for extension extendee
+ 0, // [0:0] is the sub-list for field type_name
+}
+
+func init() { file_rtask_rtask_db_proto_init() }
+func file_rtask_rtask_db_proto_init() {
+ if File_rtask_rtask_db_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_rtask_rtask_db_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*DBRtask); 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{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_rtask_rtask_db_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 1,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_rtask_rtask_db_proto_goTypes,
+ DependencyIndexes: file_rtask_rtask_db_proto_depIdxs,
+ MessageInfos: file_rtask_rtask_db_proto_msgTypes,
+ }.Build()
+ File_rtask_rtask_db_proto = out.File
+ file_rtask_rtask_db_proto_rawDesc = nil
+ file_rtask_rtask_db_proto_goTypes = nil
+ file_rtask_rtask_db_proto_depIdxs = nil
+}
diff --git a/pb/rtask_msg.pb.go b/pb/rtask_msg.pb.go
new file mode 100644
index 000000000..a23959e04
--- /dev/null
+++ b/pb/rtask_msg.pb.go
@@ -0,0 +1,268 @@
+// Code generated by protoc-gen-go. DO NOT EDIT.
+// versions:
+// protoc-gen-go v1.28.0
+// protoc v3.20.0
+// source: rtask/rtask_msg.proto
+
+package pb
+
+import (
+ protoreflect "google.golang.org/protobuf/reflect/protoreflect"
+ protoimpl "google.golang.org/protobuf/runtime/protoimpl"
+ reflect "reflect"
+ sync "sync"
+)
+
+const (
+ // Verify that this generated code is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
+ // Verify that runtime/protoimpl is sufficiently up-to-date.
+ _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
+)
+
+// 对话选项
+type RtaskChooseReq struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ RtaskId int32 `protobuf:"varint,1,opt,name=rtaskId,proto3" json:"rtaskId"`
+ ChooseId int32 `protobuf:"varint,2,opt,name=chooseId,proto3" json:"chooseId"`
+}
+
+func (x *RtaskChooseReq) Reset() {
+ *x = RtaskChooseReq{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_rtask_rtask_msg_proto_msgTypes[0]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RtaskChooseReq) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RtaskChooseReq) ProtoMessage() {}
+
+func (x *RtaskChooseReq) ProtoReflect() protoreflect.Message {
+ mi := &file_rtask_rtask_msg_proto_msgTypes[0]
+ 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 RtaskChooseReq.ProtoReflect.Descriptor instead.
+func (*RtaskChooseReq) Descriptor() ([]byte, []int) {
+ return file_rtask_rtask_msg_proto_rawDescGZIP(), []int{0}
+}
+
+func (x *RtaskChooseReq) GetRtaskId() int32 {
+ if x != nil {
+ return x.RtaskId
+ }
+ return 0
+}
+
+func (x *RtaskChooseReq) GetChooseId() int32 {
+ if x != nil {
+ return x.ChooseId
+ }
+ return 0
+}
+
+type RtaskChooseResp struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+}
+
+func (x *RtaskChooseResp) Reset() {
+ *x = RtaskChooseResp{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_rtask_rtask_msg_proto_msgTypes[1]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RtaskChooseResp) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RtaskChooseResp) ProtoMessage() {}
+
+func (x *RtaskChooseResp) ProtoReflect() protoreflect.Message {
+ mi := &file_rtask_rtask_msg_proto_msgTypes[1]
+ 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 RtaskChooseResp.ProtoReflect.Descriptor instead.
+func (*RtaskChooseResp) Descriptor() ([]byte, []int) {
+ return file_rtask_rtask_msg_proto_rawDescGZIP(), []int{1}
+}
+
+// 任务完成推送
+type RtaskFinishPush struct {
+ state protoimpl.MessageState
+ sizeCache protoimpl.SizeCache
+ unknownFields protoimpl.UnknownFields
+
+ RtaskId int32 `protobuf:"varint,1,opt,name=rtaskId,proto3" json:"rtaskId"`
+}
+
+func (x *RtaskFinishPush) Reset() {
+ *x = RtaskFinishPush{}
+ if protoimpl.UnsafeEnabled {
+ mi := &file_rtask_rtask_msg_proto_msgTypes[2]
+ ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
+ ms.StoreMessageInfo(mi)
+ }
+}
+
+func (x *RtaskFinishPush) String() string {
+ return protoimpl.X.MessageStringOf(x)
+}
+
+func (*RtaskFinishPush) ProtoMessage() {}
+
+func (x *RtaskFinishPush) ProtoReflect() protoreflect.Message {
+ mi := &file_rtask_rtask_msg_proto_msgTypes[2]
+ 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 RtaskFinishPush.ProtoReflect.Descriptor instead.
+func (*RtaskFinishPush) Descriptor() ([]byte, []int) {
+ return file_rtask_rtask_msg_proto_rawDescGZIP(), []int{2}
+}
+
+func (x *RtaskFinishPush) GetRtaskId() int32 {
+ if x != nil {
+ return x.RtaskId
+ }
+ return 0
+}
+
+var File_rtask_rtask_msg_proto protoreflect.FileDescriptor
+
+var file_rtask_rtask_msg_proto_rawDesc = []byte{
+ 0x0a, 0x15, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x2f, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x5f, 0x6d, 0x73,
+ 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x46, 0x0a, 0x0e, 0x52, 0x74, 0x61, 0x73, 0x6b,
+ 0x43, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61,
+ 0x73, 0x6b, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73,
+ 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x49, 0x64, 0x18,
+ 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x49, 0x64, 0x22,
+ 0x11, 0x0a, 0x0f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x43, 0x68, 0x6f, 0x6f, 0x73, 0x65, 0x52, 0x65,
+ 0x73, 0x70, 0x22, 0x2b, 0x0a, 0x0f, 0x52, 0x74, 0x61, 0x73, 0x6b, 0x46, 0x69, 0x6e, 0x69, 0x73,
+ 0x68, 0x50, 0x75, 0x73, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64,
+ 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x74, 0x61, 0x73, 0x6b, 0x49, 0x64, 0x42,
+ 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
+}
+
+var (
+ file_rtask_rtask_msg_proto_rawDescOnce sync.Once
+ file_rtask_rtask_msg_proto_rawDescData = file_rtask_rtask_msg_proto_rawDesc
+)
+
+func file_rtask_rtask_msg_proto_rawDescGZIP() []byte {
+ file_rtask_rtask_msg_proto_rawDescOnce.Do(func() {
+ file_rtask_rtask_msg_proto_rawDescData = protoimpl.X.CompressGZIP(file_rtask_rtask_msg_proto_rawDescData)
+ })
+ return file_rtask_rtask_msg_proto_rawDescData
+}
+
+var file_rtask_rtask_msg_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
+var file_rtask_rtask_msg_proto_goTypes = []interface{}{
+ (*RtaskChooseReq)(nil), // 0: RtaskChooseReq
+ (*RtaskChooseResp)(nil), // 1: RtaskChooseResp
+ (*RtaskFinishPush)(nil), // 2: RtaskFinishPush
+}
+var file_rtask_rtask_msg_proto_depIdxs = []int32{
+ 0, // [0:0] is the sub-list for method output_type
+ 0, // [0:0] is the sub-list for method input_type
+ 0, // [0:0] is the sub-list for extension type_name
+ 0, // [0:0] is the sub-list for extension extendee
+ 0, // [0:0] is the sub-list for field type_name
+}
+
+func init() { file_rtask_rtask_msg_proto_init() }
+func file_rtask_rtask_msg_proto_init() {
+ if File_rtask_rtask_msg_proto != nil {
+ return
+ }
+ if !protoimpl.UnsafeEnabled {
+ file_rtask_rtask_msg_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*RtaskChooseReq); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_rtask_rtask_msg_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*RtaskChooseResp); i {
+ case 0:
+ return &v.state
+ case 1:
+ return &v.sizeCache
+ case 2:
+ return &v.unknownFields
+ default:
+ return nil
+ }
+ }
+ file_rtask_rtask_msg_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
+ switch v := v.(*RtaskFinishPush); 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{
+ File: protoimpl.DescBuilder{
+ GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
+ RawDescriptor: file_rtask_rtask_msg_proto_rawDesc,
+ NumEnums: 0,
+ NumMessages: 3,
+ NumExtensions: 0,
+ NumServices: 0,
+ },
+ GoTypes: file_rtask_rtask_msg_proto_goTypes,
+ DependencyIndexes: file_rtask_rtask_msg_proto_depIdxs,
+ MessageInfos: file_rtask_rtask_msg_proto_msgTypes,
+ }.Build()
+ File_rtask_rtask_msg_proto = out.File
+ file_rtask_rtask_msg_proto_rawDesc = nil
+ file_rtask_rtask_msg_proto_goTypes = nil
+ file_rtask_rtask_msg_proto_depIdxs = nil
+}
diff --git a/services/worker/main.go b/services/worker/main.go
index 3b964b178..b1131ce5c 100644
--- a/services/worker/main.go
+++ b/services/worker/main.go
@@ -16,6 +16,7 @@ import (
"go_dreamfactory/modules/martialhall"
"go_dreamfactory/modules/notify"
"go_dreamfactory/modules/pagoda"
+ "go_dreamfactory/modules/rtask"
"go_dreamfactory/modules/shop"
"go_dreamfactory/modules/task"
"go_dreamfactory/modules/user"
@@ -63,6 +64,7 @@ func main() {
pagoda.NewModule(),
gourmet.NewModule(),
martialhall.NewModule(),
+ rtask.NewModule(),
)
}
diff --git a/sys/configure/structs/Tables.go b/sys/configure/structs/Tables.go
index 9cad90257..1c8bef618 100644
--- a/sys/configure/structs/Tables.go
+++ b/sys/configure/structs/Tables.go
@@ -11,9 +11,6 @@ package cfg
type JsonLoader func(string) ([]map[string]interface{}, error)
type Tables struct {
- LocalizeConfig_CNCategory *LocalizeLocalizeConfig_CNCategory
- LocalizeConfig_ENCategory *LocalizeLocalizeConfig_ENCategory
- LocalizeConfig_TWCategory *LocalizeLocalizeConfig_TWCategory
global *Gameglobal
ui *Gameui
plot *Gameplot
@@ -70,6 +67,14 @@ type Tables struct {
pagoda *Gamepagoda
pagodaTaskReward *GamepagodaTaskReward
pagodaSeasonReward *GamepagodaSeasonReward
+ pagodaseasonLoop *GamepagodaseasonLoop
+ rdtaskAll *GamerdtaskAll
+ rdtaskType *GamerdtaskType
+ rdtaskChoose *GamerdtaskChoose
+ kungfu_unlock *Gamekungfu_unlock
+ kungfu_masterworker *Gamekungfu_masterworker
+ Gourmet *GameGourmet
+ GourmetSkill *GameGourmetSkill
}
func NewTables(loader JsonLoader) (*Tables, error) {
@@ -77,24 +82,6 @@ func NewTables(loader JsonLoader) (*Tables, error) {
var buf []map[string]interface{}
tables := &Tables{}
- if buf, err = loader("LocalizeConfig_CN") ; err != nil {
- return nil, err
- }
- if tables.LocalizeConfig_CNCategory, err = NewLocalizeLocalizeConfig_CNCategory(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("LocalizeConfig_EN") ; err != nil {
- return nil, err
- }
- if tables.LocalizeConfig_ENCategory, err = NewLocalizeLocalizeConfig_ENCategory(buf) ; err != nil {
- return nil, err
- }
- if buf, err = loader("LocalizeConfig_TW") ; err != nil {
- return nil, err
- }
- if tables.LocalizeConfig_TWCategory, err = NewLocalizeLocalizeConfig_TWCategory(buf) ; err != nil {
- return nil, err
- }
if buf, err = loader("game_global") ; err != nil {
return nil, err
}
@@ -431,5 +418,53 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if tables.pagodaSeasonReward, err = NewGamepagodaSeasonReward(buf) ; err != nil {
return nil, err
}
+ if buf, err = loader("game_pagodaseasonloop") ; err != nil {
+ return nil, err
+ }
+ if tables.pagodaseasonLoop, err = NewGamepagodaseasonLoop(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_rdtaskall") ; err != nil {
+ return nil, err
+ }
+ if tables.rdtaskAll, err = NewGamerdtaskAll(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_rdtasktype") ; err != nil {
+ return nil, err
+ }
+ if tables.rdtaskType, err = NewGamerdtaskType(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_rdtaskchoose") ; err != nil {
+ return nil, err
+ }
+ if tables.rdtaskChoose, err = NewGamerdtaskChoose(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_kungfu_unlock") ; err != nil {
+ return nil, err
+ }
+ if tables.kungfu_unlock, err = NewGamekungfu_unlock(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_kungfu_masterworker") ; err != nil {
+ return nil, err
+ }
+ if tables.kungfu_masterworker, err = NewGamekungfu_masterworker(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_gourmet") ; err != nil {
+ return nil, err
+ }
+ if tables.Gourmet, err = NewGameGourmet(buf) ; err != nil {
+ return nil, err
+ }
+ if buf, err = loader("game_gourmetskill") ; err != nil {
+ return nil, err
+ }
+ if tables.GourmetSkill, err = NewGameGourmetSkill(buf) ; err != nil {
+ return nil, err
+ }
return tables, nil
}
diff --git a/sys/configure/structs/game.rdtaskAll.go b/sys/configure/structs/game.rdtaskAll.go
new file mode 100644
index 000000000..7ccb34b8b
--- /dev/null
+++ b/sys/configure/structs/game.rdtaskAll.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 GamerdtaskAll struct {
+ _dataMap map[int32]*GamerdtaskAllData
+ _dataList []*GamerdtaskAllData
+}
+
+func NewGamerdtaskAll(_buf []map[string]interface{}) (*GamerdtaskAll, error) {
+ _dataList := make([]*GamerdtaskAllData, 0, len(_buf))
+ dataMap := make(map[int32]*GamerdtaskAllData)
+ for _, _ele_ := range _buf {
+ if _v, err2 := DeserializeGamerdtaskAllData(_ele_); err2 != nil {
+ return nil, err2
+ } else {
+ _dataList = append(_dataList, _v)
+ dataMap[_v.Id] = _v
+ }
+ }
+ return &GamerdtaskAll{_dataList:_dataList, _dataMap:dataMap}, nil
+}
+
+func (table *GamerdtaskAll) GetDataMap() map[int32]*GamerdtaskAllData {
+ return table._dataMap
+}
+
+func (table *GamerdtaskAll) GetDataList() []*GamerdtaskAllData {
+ return table._dataList
+}
+
+func (table *GamerdtaskAll) Get(key int32) *GamerdtaskAllData {
+ return table._dataMap[key]
+}
+
+
diff --git a/sys/configure/structs/game.rdtaskAllData.go b/sys/configure/structs/game.rdtaskAllData.go
new file mode 100644
index 000000000..c438ec8b7
--- /dev/null
+++ b/sys/configure/structs/game.rdtaskAllData.go
@@ -0,0 +1,94 @@
+//------------------------------------------------------------------------------
+//
+// 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 GamerdtaskAllData struct {
+ Id int32
+ Type int32
+ Lastend int32
+ RdtaksNum []int32
+ Aftertaks int32
+ Icetime int32
+ Tag int32
+ Story int32
+ Completetask int32
+ Chooseid []int32
+ Reword []*Gameatn
+}
+
+const TypeId_GamerdtaskAllData = 762735928
+
+func (*GamerdtaskAllData) GetTypeId() int32 {
+ return 762735928
+}
+
+func (_v *GamerdtaskAllData)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 _tempNum_ float64; if _tempNum_, _ok_ = _buf["lastend"].(float64); !_ok_ { err = errors.New("lastend error"); return }; _v.Lastend = int32(_tempNum_) }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["rdtaks_num"].([]interface{}); !_ok_ { err = errors.New("rdtaks_num error"); return }
+
+ _v.RdtaksNum = 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.RdtaksNum = append(_v.RdtaksNum, _list_v_)
+ }
+ }
+
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["aftertaks"].(float64); !_ok_ { err = errors.New("aftertaks error"); return }; _v.Aftertaks = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["icetime"].(float64); !_ok_ { err = errors.New("icetime error"); return }; _v.Icetime = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["tag"].(float64); !_ok_ { err = errors.New("tag error"); return }; _v.Tag = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["story"].(float64); !_ok_ { err = errors.New("story error"); return }; _v.Story = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["completetask"].(float64); !_ok_ { err = errors.New("completetask error"); return }; _v.Completetask = int32(_tempNum_) }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["chooseid"].([]interface{}); !_ok_ { err = errors.New("chooseid error"); return }
+
+ _v.Chooseid = 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.Chooseid = append(_v.Chooseid, _list_v_)
+ }
+ }
+
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["reword"].([]interface{}); !_ok_ { err = errors.New("reword error"); return }
+
+ _v.Reword = 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.Reword = append(_v.Reword, _list_v_)
+ }
+ }
+
+ return
+}
+
+func DeserializeGamerdtaskAllData(_buf map[string]interface{}) (*GamerdtaskAllData, error) {
+ v := &GamerdtaskAllData{}
+ if err := v.Deserialize(_buf); err == nil {
+ return v, nil
+ } else {
+ return nil, err
+ }
+}
diff --git a/sys/configure/structs/game.rdtaskChoose.go b/sys/configure/structs/game.rdtaskChoose.go
new file mode 100644
index 000000000..a848533a1
--- /dev/null
+++ b/sys/configure/structs/game.rdtaskChoose.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 GamerdtaskChoose struct {
+ _dataMap map[int32]*GamerdtaskChooseData
+ _dataList []*GamerdtaskChooseData
+}
+
+func NewGamerdtaskChoose(_buf []map[string]interface{}) (*GamerdtaskChoose, error) {
+ _dataList := make([]*GamerdtaskChooseData, 0, len(_buf))
+ dataMap := make(map[int32]*GamerdtaskChooseData)
+ for _, _ele_ := range _buf {
+ if _v, err2 := DeserializeGamerdtaskChooseData(_ele_); err2 != nil {
+ return nil, err2
+ } else {
+ _dataList = append(_dataList, _v)
+ dataMap[_v.Chooseid] = _v
+ }
+ }
+ return &GamerdtaskChoose{_dataList:_dataList, _dataMap:dataMap}, nil
+}
+
+func (table *GamerdtaskChoose) GetDataMap() map[int32]*GamerdtaskChooseData {
+ return table._dataMap
+}
+
+func (table *GamerdtaskChoose) GetDataList() []*GamerdtaskChooseData {
+ return table._dataList
+}
+
+func (table *GamerdtaskChoose) Get(key int32) *GamerdtaskChooseData {
+ return table._dataMap[key]
+}
+
+
diff --git a/sys/configure/structs/game.rdtaskChooseData.go b/sys/configure/structs/game.rdtaskChooseData.go
new file mode 100644
index 000000000..f8b4fbe9d
--- /dev/null
+++ b/sys/configure/structs/game.rdtaskChooseData.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 GamerdtaskChooseData struct {
+ Chooseid int32
+ Num int32
+ RdtaksNum int32
+ Need []int32
+}
+
+const TypeId_GamerdtaskChooseData = 1478012660
+
+func (*GamerdtaskChooseData) GetTypeId() int32 {
+ return 1478012660
+}
+
+func (_v *GamerdtaskChooseData)Deserialize(_buf map[string]interface{}) (err error) {
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["chooseid"].(float64); !_ok_ { err = errors.New("chooseid error"); return }; _v.Chooseid = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["num"].(float64); !_ok_ { err = errors.New("num error"); return }; _v.Num = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["rdtaks_num"].(float64); !_ok_ { err = errors.New("rdtaks_num error"); return }; _v.RdtaksNum = int32(_tempNum_) }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["need"].([]interface{}); !_ok_ { err = errors.New("need error"); return }
+
+ _v.Need = 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.Need = append(_v.Need, _list_v_)
+ }
+ }
+
+ return
+}
+
+func DeserializeGamerdtaskChooseData(_buf map[string]interface{}) (*GamerdtaskChooseData, error) {
+ v := &GamerdtaskChooseData{}
+ if err := v.Deserialize(_buf); err == nil {
+ return v, nil
+ } else {
+ return nil, err
+ }
+}
diff --git a/sys/configure/structs/game.rdtaskType.go b/sys/configure/structs/game.rdtaskType.go
new file mode 100644
index 000000000..a666ffac2
--- /dev/null
+++ b/sys/configure/structs/game.rdtaskType.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 GamerdtaskType struct {
+ _dataMap map[int32]*GamerdtaskTypeData
+ _dataList []*GamerdtaskTypeData
+}
+
+func NewGamerdtaskType(_buf []map[string]interface{}) (*GamerdtaskType, error) {
+ _dataList := make([]*GamerdtaskTypeData, 0, len(_buf))
+ dataMap := make(map[int32]*GamerdtaskTypeData)
+ for _, _ele_ := range _buf {
+ if _v, err2 := DeserializeGamerdtaskTypeData(_ele_); err2 != nil {
+ return nil, err2
+ } else {
+ _dataList = append(_dataList, _v)
+ dataMap[_v.RdtaksNum] = _v
+ }
+ }
+ return &GamerdtaskType{_dataList:_dataList, _dataMap:dataMap}, nil
+}
+
+func (table *GamerdtaskType) GetDataMap() map[int32]*GamerdtaskTypeData {
+ return table._dataMap
+}
+
+func (table *GamerdtaskType) GetDataList() []*GamerdtaskTypeData {
+ return table._dataList
+}
+
+func (table *GamerdtaskType) Get(key int32) *GamerdtaskTypeData {
+ return table._dataMap[key]
+}
+
+
diff --git a/sys/configure/structs/game.rdtaskTypeData.go b/sys/configure/structs/game.rdtaskTypeData.go
new file mode 100644
index 000000000..880f3aecf
--- /dev/null
+++ b/sys/configure/structs/game.rdtaskTypeData.go
@@ -0,0 +1,47 @@
+//------------------------------------------------------------------------------
+//
+// 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 GamerdtaskTypeData struct {
+ RdtaksNum int32
+ Typdes int32
+ Datatime int32
+ TyptaskId int32
+ Data1 int32
+ Data2 int32
+ Data3 int32
+}
+
+const TypeId_GamerdtaskTypeData = -279607465
+
+func (*GamerdtaskTypeData) GetTypeId() int32 {
+ return -279607465
+}
+
+func (_v *GamerdtaskTypeData)Deserialize(_buf map[string]interface{}) (err error) {
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["rdtaks_num"].(float64); !_ok_ { err = errors.New("rdtaks_num error"); return }; _v.RdtaksNum = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["typdes"].(float64); !_ok_ { err = errors.New("typdes error"); return }; _v.Typdes = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["datatime"].(float64); !_ok_ { err = errors.New("datatime error"); return }; _v.Datatime = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["typtask_id"].(float64); !_ok_ { err = errors.New("typtask_id error"); return }; _v.TyptaskId = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["data1"].(float64); !_ok_ { err = errors.New("data1 error"); return }; _v.Data1 = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["data2"].(float64); !_ok_ { err = errors.New("data2 error"); return }; _v.Data2 = int32(_tempNum_) }
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["data3"].(float64); !_ok_ { err = errors.New("data3 error"); return }; _v.Data3 = int32(_tempNum_) }
+ return
+}
+
+func DeserializeGamerdtaskTypeData(_buf map[string]interface{}) (*GamerdtaskTypeData, error) {
+ v := &GamerdtaskTypeData{}
+ if err := v.Deserialize(_buf); err == nil {
+ return v, nil
+ } else {
+ return nil, err
+ }
+}
diff --git a/utils/strings.go b/utils/strings.go
index c533256e6..dfb17a1ba 100644
--- a/utils/strings.go
+++ b/utils/strings.go
@@ -20,6 +20,16 @@ func UIdSplit(uid string) (string, string, bool) {
return s[0], s[1], true
}
+func Findx[T string | int32](slice []T, val T) (int, bool) {
+ for i, item := range slice {
+ if item == val {
+ return i, true
+ }
+ }
+ return -1, false
+}
+
+// Deprecated: Use Findx instead
func Find(slice []string, val string) (int, bool) {
for i, item := range slice {
if item == val {
From 4bb8715e7fad6dc6e15718a13b7d810310ad86c9 Mon Sep 17 00:00:00 2001
From: wh_zcy
Date: Thu, 18 Aug 2022 09:28:12 +0800
Subject: [PATCH 06/10] gui
---
cmd/v2/lib/common/lang.go | 1 +
cmd/v2/main.go | 33 +++++++++++++++++++++++++++++++--
cmd/v2/ui/app_container.go | 9 +++++----
cmd/v2/ui/app_interface.go | 4 ++++
cmd/v2/ui/mainwindow.go | 38 ++++++++++++++++++--------------------
cmd/v2/ui/tool_bar.go | 31 +++++++++++++++----------------
go.mod | 2 +-
go.sum | 10 +++-------
8 files changed, 78 insertions(+), 50 deletions(-)
diff --git a/cmd/v2/lib/common/lang.go b/cmd/v2/lib/common/lang.go
index ab69b2374..d06ee0f1d 100644
--- a/cmd/v2/lib/common/lang.go
+++ b/cmd/v2/lib/common/lang.go
@@ -88,6 +88,7 @@ const (
// toolbar
TOOLBAR_MONITOR = "监控"
TOOLBAR_TESTER = "接口测试"
+ TOOLBAR_GEN = "生成代码"
//monitor
APP_MONITOR_TITLE_ID = "编号"
diff --git a/cmd/v2/main.go b/cmd/v2/main.go
index 88213f7cd..59a0cb173 100644
--- a/cmd/v2/main.go
+++ b/cmd/v2/main.go
@@ -10,7 +10,10 @@ import (
"io"
"os"
+ "fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
+ "fyne.io/fyne/v2/container"
+ "fyne.io/fyne/v2/widget"
"github.com/sirupsen/logrus"
)
@@ -18,6 +21,7 @@ var (
connService service.ConnService
pttService service.PttService
configService service.ConfigService
+ dbService service.DbService
obs = observer.NewObserver()
logger *logrus.Logger
)
@@ -31,6 +35,11 @@ func init() {
os.Exit(1)
}
+ if err = setupDb(); err != nil {
+ fmt.Println(err)
+ os.Exit(1)
+ }
+
// initialize logger
if err = setupLogger(); err != nil {
fmt.Println(err)
@@ -53,9 +62,24 @@ func main() {
app := app.NewWithID("protocol-test-tool")
app.SetIcon(theme.ResourceIconPng)
appUI := ui.NewUI(app, configService, connService, pttService, obs)
- mainWindow := ui.NewMainWindow(appUI)
- mainWindow.CreateWindow(common.APP_NAME, 1366, 768, true)
+ //创建enter
+ w := fyne.CurrentApp().NewWindow("")
+ w.SetContent(container.NewGridWithColumns(2,
+ widget.NewButton("工具", func() {
+ toolWindow := ui.NewToolWindow(appUI)
+ toolWindow.CreateWindow(common.APP_NAME, 1366, 768, true)
+ w.Hide()
+ }),
+ widget.NewButton("登服", func() {
+ mainWindow := ui.NewMainWindow(appUI)
+ mainWindow.CreateWindow(common.APP_NAME, 1366, 768, true)
+ w.Hide()
+ })))
+ w.SetFixedSize(true)
+ w.Resize(fyne.NewSize(300, 100))
+ w.Show()
+ w.CenterOnScreen()
logrus.WithField("version", app.Metadata().Version).Info("app starting")
appUI.Run()
}
@@ -70,6 +94,11 @@ func setupWsConn() (err error) {
return
}
+func setupDb() (err error) {
+ dbService = service.NewDbService()
+ return
+}
+
func setupConfig() (err error) {
configService, err = service.NewConfigService()
if err != nil {
diff --git a/cmd/v2/ui/app_container.go b/cmd/v2/ui/app_container.go
index 98af71c95..a8db6b5cf 100644
--- a/cmd/v2/ui/app_container.go
+++ b/cmd/v2/ui/app_container.go
@@ -10,10 +10,11 @@ type appContainer struct {
appStatusMap map[string]appStatus
container.DocTabs
obs observer.Observer
+ ai []appInterface
}
-func newAppContainer(obs observer.Observer) *appContainer {
- at := &appContainer{obs: obs}
+func newAppContainer(ai []appInterface, obs observer.Observer) *appContainer {
+ at := &appContainer{ai: ai, obs: obs}
at.appStatusMap = make(map[string]appStatus)
at.CloseIntercept = at.closeHandle
@@ -30,7 +31,7 @@ type appStatus struct {
}
func (at *appContainer) closeHandle(tab *container.TabItem) {
- for _, app := range appRegister {
+ for _, app := range at.ai {
if app.GetAppName() == tab.Text {
if app.OnClose() {
at.Remove(tab)
@@ -60,7 +61,7 @@ func (at *appContainer) openApp(app appInterface) error {
// open default app
func (at *appContainer) openDefaultApp() (string, error) {
var firstTab *container.TabItem
- for _, app := range appRegister {
+ for _, app := range at.ai {
if app.OpenDefault() {
if err := at.initApp(app); err != nil {
return app.GetAppName(), err
diff --git a/cmd/v2/ui/app_interface.go b/cmd/v2/ui/app_interface.go
index ed15e862d..a3ed7d9b8 100644
--- a/cmd/v2/ui/app_interface.go
+++ b/cmd/v2/ui/app_interface.go
@@ -19,6 +19,10 @@ var (
&appMonitor{},
&appTester{},
}
+
+ toolRegister = []appInterface{
+ &appGen{},
+ }
)
type appAdapter struct {
diff --git a/cmd/v2/ui/mainwindow.go b/cmd/v2/ui/mainwindow.go
index 83d835ec8..3b5016afe 100644
--- a/cmd/v2/ui/mainwindow.go
+++ b/cmd/v2/ui/mainwindow.go
@@ -16,6 +16,7 @@ import (
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/container"
"fyne.io/fyne/v2/dialog"
+ "fyne.io/fyne/v2/theme"
"fyne.io/fyne/v2/widget"
"github.com/BabySid/gobase"
"github.com/Pallinder/go-randomdata"
@@ -25,6 +26,7 @@ import (
var (
globalWin *MainWindowImpl
+ toolWin *ToolWindowImpl
)
type MainWindow interface {
@@ -49,19 +51,6 @@ func NewMainWindow(ui *UIImpl) MainWindow {
UIImpl: *ui,
}
- // main menu
- // mw.mm = newMainMenu()
- // mw.w.SetMainMenu(mw.mm.MainMenu)
-
- // status bar
- mw.sb = newStatusBar()
-
- // tool bar
- mw.tb = newToolBar()
-
- // main app tabs
- mw.at = newAppContainer(ui.obs)
-
globalWin = mw
ui.obs.AddListener(observer.EVENT_PING, observer.Listener{
@@ -95,13 +84,25 @@ func (ui *MainWindowImpl) createWindowContainer() {
ui.sb = newStatusBar()
// tool bar
- ui.tb = newToolBar()
+ toolbar := widget.NewToolbar(
+ widget.NewToolbarAction(theme.ComputerIcon(), func() {
+ openApp2(common.TOOLBAR_MONITOR)
+ }),
+ widget.NewToolbarAction(theme.AccountIcon(), func() {
+ openApp2(common.TOOLBAR_TESTER)
+ }),
+ widget.NewToolbarSpacer(),
+ widget.NewToolbarAction(theme.HelpIcon(), func() {
+ showAbout()
+ }),
+ )
+ ui.tb = newToolBar(toolbar)
// Fun Toys
ui.toys = newToys(ui.obs)
// main app tabs
- ui.at = newAppContainer(ui.obs)
+ ui.at = newAppContainer(appRegister, ui.obs)
content := container.NewBorder(ui.tb.toolbar, ui.sb.widget, nil, ui.toys.widget, ui.at)
ui.w.SetContent(content)
ui.w.SetCloseIntercept(ui.quiteHandle)
@@ -238,14 +239,11 @@ func (ui *MainWindowImpl) createChooseServerWindow(
// createLoginWin
func (ui *MainWindowImpl) createLoginWin(sid, sname string) {
- //form
account := widget.NewEntry()
- account.Text = "user8080" //default account
- // account.Validator = validation.NewRegexp(`^(\s*)$`, "account required")
- // password := widget.NewPasswordEntry()
+ // account.Text = "user8080" //default account
+
items := []*widget.FormItem{
widget.NewFormItem(common.LABEL_ACCOUNT, account),
- // widget.NewFormItem("password", password),
}
dialog.ShowForm(common.FORM_TITLE_LOGIN, common.BUTTON_LOGIN, common.BUTTON_CANCEL, items, func(b bool) {
diff --git a/cmd/v2/ui/tool_bar.go b/cmd/v2/ui/tool_bar.go
index acb160b54..ff3041dfc 100644
--- a/cmd/v2/ui/tool_bar.go
+++ b/cmd/v2/ui/tool_bar.go
@@ -2,9 +2,7 @@ package ui
import (
"fmt"
- "go_dreamfactory/cmd/v2/lib/common"
- "fyne.io/fyne/v2/theme"
"fyne.io/fyne/v2/widget"
"github.com/sirupsen/logrus"
)
@@ -13,26 +11,16 @@ type toolBar struct {
toolbar *widget.Toolbar
}
-func newToolBar() *toolBar {
+func newToolBar(items *widget.Toolbar) *toolBar {
var tb toolBar
// mainwindow toolbar
- tb.toolbar = widget.NewToolbar(
- widget.NewToolbarAction(theme.ComputerIcon(), func() {
- openApp(common.TOOLBAR_MONITOR)
- }),
- widget.NewToolbarAction(theme.AccountIcon(), func() {
- openApp(common.TOOLBAR_TESTER)
- }),
- widget.NewToolbarSpacer(),
- widget.NewToolbarAction(theme.HelpIcon(), func() {
- showAbout()
- }),
- )
+ tb.toolbar = items
return &tb
}
-func openApp(name string) {
+// open app2
+func openApp2(name string) {
for _, app := range appRegister {
if app.GetAppName() == name {
err := globalWin.at.openApp(app)
@@ -42,3 +30,14 @@ func openApp(name string) {
}
}
}
+
+func openApp1(name string) {
+ for _, app := range toolRegister {
+ if app.GetAppName() == name {
+ err := toolWin.at.openApp(app)
+ if err != nil {
+ logrus.Error(fmt.Errorf("%s %v", app.GetAppName(), err))
+ }
+ }
+ }
+}
diff --git a/go.mod b/go.mod
index 6e1c857b1..64cd570ae 100644
--- a/go.mod
+++ b/go.mod
@@ -9,6 +9,7 @@ require (
github.com/Pallinder/go-randomdata v1.2.0
github.com/atotto/clipboard v0.1.4
github.com/axgle/mahonia v0.0.0-20180208002826-3358181d7394
+ github.com/boltdb/bolt v1.3.1
github.com/dengsgo/math-engine v0.0.0-20220213125415-0351c3c75eca
github.com/gin-gonic/gin v1.8.1
github.com/go-playground/validator/v10 v10.10.1
@@ -169,7 +170,6 @@ require (
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f // indirect
golang.org/x/text v0.3.7 // indirect
golang.org/x/tools v0.1.12 // indirect
- golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 // indirect
gopkg.in/ini.v1 v1.62.0 // indirect
gopkg.in/natefinch/lumberjack.v2 v2.0.0 // indirect
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
diff --git a/go.sum b/go.sum
index 51c8b765f..7d9c231ec 100644
--- a/go.sum
+++ b/go.sum
@@ -92,6 +92,8 @@ github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+Ce
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs=
github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM=
+github.com/boltdb/bolt v1.3.1 h1:JQmyP4ZBrce+ZQu0dY660FMfatumYDLun9hBCUVIkF4=
+github.com/boltdb/bolt v1.3.1/go.mod h1:clJnj/oiGkjum5o1McbSZDSLxVThjynRyGBgiAx27Ps=
github.com/bradfitz/go-smtpd v0.0.0-20170404230938-deb6d6237625/go.mod h1:HYsPBTaaSFSlLx/70C2HPIMNZpVV8+vt/A+FMnYP11g=
github.com/buger/jsonparser v0.0.0-20181115193947-bf1c66bbce23/go.mod h1:bbYlZJ7hK1yFx9hf58LP0zeX7UjIGs20ufpu3evjr+s=
github.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0=
@@ -766,7 +768,6 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
github.com/yuin/goldmark v1.4.0/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
-github.com/yuin/goldmark v1.4.1 h1:/vn0k+RBvwlxEmP5E7SZMqNxPhfMVFEJiykr15/0XKM=
github.com/yuin/goldmark v1.4.1/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
github.com/yuin/goldmark v1.4.13 h1:fVcFKWvrslecOb/tg+Cc05dkeYx540o0FuFt3nUVDoE=
github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
@@ -867,7 +868,6 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro=
-golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3 h1:kQgndtyPBW/JIYERgdxfwMYh3AVStj88WQTlNDi2a+o=
golang.org/x/mod v0.6.0-dev.0.20220106191415-9b9b3d81d5e3/go.mod h1:3p9vT2HGsQu2K1YbXdKPJLVgG5VJdoTa1poYQBtP1AY=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4 h1:6zppjxzCulZykYSLyVDYbneBfbaBIQPYMevg0bEwv2s=
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
@@ -925,7 +925,6 @@ golang.org/x/net v0.0.0-20210916014120-12bc252f5db8/go.mod h1:9nx3DQGgdP8bBQD5qx
golang.org/x/net v0.0.0-20211015210444-4f30a5c0130f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20211216030914-fe4d6282115f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
-golang.org/x/net v0.0.0-20220407224826-aac1ed45d8e3 h1:EN5+DfgmRMvRUrMGERW2gQl3Vc+Z7ZMnI/xdEpPSf0c=
golang.org/x/net v0.0.0-20220407224826-aac1ed45d8e3/go.mod h1:CfG3xpIq0wQ8r1q4Su4UZFWDARRcnwPjda9FqA0JpMk=
golang.org/x/net v0.0.0-20220722155237-a158d28d115b h1:PxfKdU9lEEDYjdIzOtC4qFWgkU2rGHdKlKowJSMN9h0=
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
@@ -955,8 +954,8 @@ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJ
golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ=
golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
+golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4 h1:uVc8UZUe6tr40fFVnUP5Oj+veunVezqYl9z7DYw9xzw=
golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
@@ -1035,8 +1034,6 @@ golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20220111092808-5a964db01320/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220408201424-a24fb2fb8a0f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220412211240-33da011f77ad/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
-golang.org/x/sys v0.0.0-20220712014510-0a85c31ab51e h1:NHvCuwuS43lGnYhten69ZWqi2QOj/CiDNcKbVqwVoew=
-golang.org/x/sys v0.0.0-20220712014510-0a85c31ab51e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f h1:v4INt8xihDGvnrfjMDVXGxw9wrfxYyCjk0KbXjhR55s=
golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
@@ -1123,7 +1120,6 @@ golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.6-0.20210726203631-07bc1bf47fb2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
golang.org/x/tools v0.1.8-0.20211022200916-316ba0b74098/go.mod h1:LGqMHiF4EqQNHR1JncWGqT5BVaXmza+X+BDGol+dOxo=
golang.org/x/tools v0.1.8/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU=
-golang.org/x/tools v0.1.10 h1:QjFRCZxdOhBJ/UNgnBZLbNV13DlbnK0quyivTnXJM20=
golang.org/x/tools v0.1.10/go.mod h1:Uh6Zz+xoGYZom868N8YTex3t7RhtHDBrE8Gzo9bV56E=
golang.org/x/tools v0.1.12 h1:VveCTK38A2rkS8ZqFY25HIDFscX5X9OoEhJd3quQmXU=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
From 6c258e903b6307d5e284208943169b359460d9ae Mon Sep 17 00:00:00 2001
From: wh_zcy
Date: Thu, 18 Aug 2022 09:28:37 +0800
Subject: [PATCH 07/10] =?UTF-8?q?=E5=A5=BD=E5=8F=8B=E6=90=9C=E7=B4=A2?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
modules/friend/api_applylist.go | 2 ++
modules/friend/api_list.go | 2 ++
modules/friend/api_randlist.go | 33 +++++++++++++++++++++++++++++++++
modules/user/api_login.go | 2 +-
modules/user/model_session.go | 11 +++++++++--
modules/user/module.go | 4 ++++
6 files changed, 51 insertions(+), 3 deletions(-)
create mode 100644 modules/friend/api_randlist.go
diff --git a/modules/friend/api_applylist.go b/modules/friend/api_applylist.go
index 503e0ab48..443576914 100644
--- a/modules/friend/api_applylist.go
+++ b/modules/friend/api_applylist.go
@@ -45,6 +45,8 @@ func (this *apiComp) ApplyList(session comm.IUserSession, req *pb.FriendApplyLis
list = append(list, &pb.FriendBase{
UserId: userId,
NickName: user.Name,
+ Level: user.Lv,
+ Avatar: user.Avatar,
})
}
diff --git a/modules/friend/api_list.go b/modules/friend/api_list.go
index 264d1d36e..0a10684ef 100644
--- a/modules/friend/api_list.go
+++ b/modules/friend/api_list.go
@@ -44,6 +44,8 @@ func (this *apiComp) List(session comm.IUserSession, req *pb.FriendListReq) (cod
list = append(list, &pb.FriendBase{
UserId: userId,
NickName: user.Name,
+ Level: user.Lv,
+ Avatar: user.Avatar,
})
}
diff --git a/modules/friend/api_randlist.go b/modules/friend/api_randlist.go
new file mode 100644
index 000000000..0a65574cc
--- /dev/null
+++ b/modules/friend/api_randlist.go
@@ -0,0 +1,33 @@
+package friend
+
+import (
+ "go_dreamfactory/comm"
+ "go_dreamfactory/pb"
+
+ "google.golang.org/protobuf/proto"
+)
+
+func (this *apiComp) RandlistCheck(session comm.IUserSession, req *pb.FriendOnlineReq) (code pb.ErrorCode) {
+ return
+}
+
+func (this *apiComp) Randlist(session comm.IUserSession, req *pb.FriendOnlineReq) (code pb.ErrorCode, data proto.Message) {
+ var (
+ self *pb.DBFriend
+ )
+ //在线玩家
+
+ self = this.moduleFriend.modelFriend.GetFriend(session.GetUserId())
+ if self == nil {
+ code = pb.ErrorCode_FriendSelfNoData
+ return
+ }
+
+ // 好友列表
+ // self.FriendIds
+
+ // 已申请的好友
+ // self.ApplyIds
+
+ return
+}
diff --git a/modules/user/api_login.go b/modules/user/api_login.go
index dcbacee7b..9c7425142 100644
--- a/modules/user/api_login.go
+++ b/modules/user/api_login.go
@@ -80,7 +80,7 @@ func (this *apiComp) Login(session comm.IUserSession, req *pb.UserLoginReq) (cod
}
//缓存user session
- err = this.module.modelSession.Change(user.Uid, map[string]interface{}{
+ err = this.module.modelSession.ChangeList("online", user.Uid, map[string]interface{}{
"uid": user.Uid,
"sessionId": session.GetSessionId(),
"serviceTag": session.GetServiecTag(),
diff --git a/modules/user/model_session.go b/modules/user/model_session.go
index b417f1b3f..040928571 100644
--- a/modules/user/model_session.go
+++ b/modules/user/model_session.go
@@ -21,10 +21,17 @@ func (this *ModelSession) Init(service core.IService, module core.IModule, comp
//获取用户
func (this *ModelSession) getUserSession(uid string) (cuser *pb.CacheUser) {
- cuser = &pb.CacheUser{}
- if err := this.Get(uid, cuser); err != nil {
+ var sl []*pb.CacheUser
+
+ if err := this.GetList("online", sl); err != nil {
this.module.Errorf("GetUserSession err:%v", err)
return
}
+
+ for _, v := range sl {
+ if v.Uid == uid {
+ return v
+ }
+ }
return
}
diff --git a/modules/user/module.go b/modules/user/module.go
index 2ae4b0316..63f5a405b 100644
--- a/modules/user/module.go
+++ b/modules/user/module.go
@@ -75,6 +75,10 @@ func (this *User) CleanSession(session comm.IUserSession) {
this.modelSetting.Del(session.GetUserId(), db.SetDBMgoLog(false))
}
+// 在线玩家列表
+func (this *User) UserOnline() {
+}
+
//查询用户属性值 例如 金币 经验
func (this *User) QueryAttributeValue(uid string, attr string) (value int32) {
user := this.modelUser.GetUser(uid)
From e3a3f3396b24974dc763e285cee1e1070b838ddc Mon Sep 17 00:00:00 2001
From: wh_zcy
Date: Thu, 18 Aug 2022 09:46:37 +0800
Subject: [PATCH 08/10] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=85=8D=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
bin/json/LocalizeConfig_CN.json | 4074 -----------------
bin/json/LocalizeConfig_EN.json | 4074 -----------------
bin/json/LocalizeConfig_TW.json | 4074 -----------------
bin/json/game_drawcom.json | 18 -
bin/json/game_drawcost.json | 132 -
bin/json/game_drawupdraw.json | 20 -
bin/json/game_gourmetskill.json | 2 +-
bin/json/game_pagodaseasonloop.json | 21 +
bin/json/game_serverlist.json | 30 -
bin/json/game_skillafteratk.json | 295 ++
bin/json/game_ui.json | 86 +-
modules/rtask/config.go | 2 +-
modules/rtask/model_rtask.go | 2 +-
modules/rtask/module.go | 4 +-
modules/web/config.go | 35 -
sys/configure/structs/ALocalizeConfig.go | 40 -
.../Localize.LocalizeConfig_CNCategory.go | 42 -
.../Localize.LocalizeConfig_ENCategory.go | 42 -
.../Localize.LocalizeConfig_TWCategory.go | 42 -
sys/configure/structs/LocalizeConfig_CN.go | 37 -
sys/configure/structs/LocalizeConfig_EN.go | 37 -
sys/configure/structs/LocalizeConfig_TW.go | 37 -
sys/configure/structs/Tables.go | 12 +-
sys/configure/structs/game.RdtaksAll.go | 42 -
sys/configure/structs/game.RdtaksAllData.go | 105 -
sys/configure/structs/game.RdtaksChoose.go | 42 -
.../structs/game.RdtaksChooseData.go | 41 -
sys/configure/structs/game.RdtaksType.go | 42 -
sys/configure/structs/game.RdtaksTypeData.go | 47 -
.../structs/game.pagodaseasonLoop.go | 42 +
.../structs/game.pagodaseasonLoopData.go | 65 +
sys/configure/structs/game.rdtaskAll.go | 22 +-
sys/configure/structs/game.rdtaskAllData.go | 14 +-
sys/configure/structs/game.rdtaskChoose.go | 22 +-
.../structs/game.rdtaskChooseData.go | 14 +-
sys/configure/structs/game.rdtaskType.go | 22 +-
sys/configure/structs/game.rdtaskTypeData.go | 14 +-
sys/configure/structs/game.serverList.go | 42 -
sys/configure/structs/game.serverListData.go | 33 -
.../structs/game.skillAfteratkData.go | 2 +
40 files changed, 569 insertions(+), 13200 deletions(-)
delete mode 100644 bin/json/LocalizeConfig_CN.json
delete mode 100644 bin/json/LocalizeConfig_EN.json
delete mode 100644 bin/json/LocalizeConfig_TW.json
delete mode 100644 bin/json/game_drawcom.json
delete mode 100644 bin/json/game_drawcost.json
delete mode 100644 bin/json/game_drawupdraw.json
create mode 100644 bin/json/game_pagodaseasonloop.json
delete mode 100644 bin/json/game_serverlist.json
delete mode 100644 sys/configure/structs/ALocalizeConfig.go
delete mode 100644 sys/configure/structs/Localize.LocalizeConfig_CNCategory.go
delete mode 100644 sys/configure/structs/Localize.LocalizeConfig_ENCategory.go
delete mode 100644 sys/configure/structs/Localize.LocalizeConfig_TWCategory.go
delete mode 100644 sys/configure/structs/LocalizeConfig_CN.go
delete mode 100644 sys/configure/structs/LocalizeConfig_EN.go
delete mode 100644 sys/configure/structs/LocalizeConfig_TW.go
delete mode 100644 sys/configure/structs/game.RdtaksAll.go
delete mode 100644 sys/configure/structs/game.RdtaksAllData.go
delete mode 100644 sys/configure/structs/game.RdtaksChoose.go
delete mode 100644 sys/configure/structs/game.RdtaksChooseData.go
delete mode 100644 sys/configure/structs/game.RdtaksType.go
delete mode 100644 sys/configure/structs/game.RdtaksTypeData.go
create mode 100644 sys/configure/structs/game.pagodaseasonLoop.go
create mode 100644 sys/configure/structs/game.pagodaseasonLoopData.go
delete mode 100644 sys/configure/structs/game.serverList.go
delete mode 100644 sys/configure/structs/game.serverListData.go
diff --git a/bin/json/LocalizeConfig_CN.json b/bin/json/LocalizeConfig_CN.json
deleted file mode 100644
index c3e146b04..000000000
--- a/bin/json/LocalizeConfig_CN.json
+++ /dev/null
@@ -1,4074 +0,0 @@
-[
- {
- "key": "ChineseSimplified",
- "text_cn": "简体中文"
- },
- {
- "key": "ChineseTraditional",
- "text_cn": "繁体中文"
- },
- {
- "key": "English",
- "text_cn": "英文"
- },
- {
- "key": "1",
- "text_cn": "一"
- },
- {
- "key": "2",
- "text_cn": "二"
- },
- {
- "key": "3",
- "text_cn": "三"
- },
- {
- "key": "4",
- "text_cn": "四"
- },
- {
- "key": "5",
- "text_cn": "五"
- },
- {
- "key": "6",
- "text_cn": "六"
- },
- {
- "key": "7",
- "text_cn": "七"
- },
- {
- "key": "8",
- "text_cn": "八"
- },
- {
- "key": "9",
- "text_cn": "九"
- },
- {
- "key": "10",
- "text_cn": "十"
- },
- {
- "key": "Login",
- "text_cn": "登录"
- },
- {
- "key": "MomentDay1",
- "text_cn": "{0}天前"
- },
- {
- "key": "MomentDay2",
- "text_cn": "还有{0}天"
- },
- {
- "key": "MomentHour1",
- "text_cn": "{0}小时前"
- },
- {
- "key": "MomentHour2",
- "text_cn": "还有{0}小时"
- },
- {
- "key": "MomentMinutes1",
- "text_cn": "{0}分钟前"
- },
- {
- "key": "MomentMinutes2",
- "text_cn": "还有{0}分钟"
- },
- {
- "key": "MomentSeconds1",
- "text_cn": "刚刚"
- },
- {
- "key": "MomentSeconds2",
- "text_cn": "1分以内"
- },
- {
- "key": "Tuijian",
- "text_cn": "推荐"
- },
- {
- "key": "Juese",
- "text_cn": "角色"
- },
- {
- "key": "hero_13001",
- "text_cn": "闪闪"
- },
- {
- "key": "hero_13002",
- "text_cn": "食人鱼先生"
- },
- {
- "key": "hero_13003",
- "text_cn": "啊啊"
- },
- {
- "key": "hero_13004",
- "text_cn": "法夸德勋爵"
- },
- {
- "key": "hero_13005",
- "text_cn": "大大"
- },
- {
- "key": "hero_14001",
- "text_cn": "史图依克"
- },
- {
- "key": "hero_14002",
- "text_cn": "大龙"
- },
- {
- "key": "hero_14003",
- "text_cn": "亚丝翠"
- },
- {
- "key": "hero_14004",
- "text_cn": "克莱尔·努涅斯"
- },
- {
- "key": "hero_14005",
- "text_cn": "鹤大师"
- },
- {
- "key": "hero_14006",
- "text_cn": "布兰奇"
- },
- {
- "key": "hero_14007",
- "text_cn": "格里斯特王子"
- },
- {
- "key": "hero_15001",
- "text_cn": "吉姆·莱克"
- },
- {
- "key": "hero_15002",
- "text_cn": "船长"
- },
- {
- "key": "hero_15003",
- "text_cn": "希沙窦斯"
- },
- {
- "key": "hero_15004",
- "text_cn": "小欧"
- },
- {
- "key": "hero_15005",
- "text_cn": "亚力克斯"
- },
- {
- "key": "hero_23001",
- "text_cn": "斯梅克船长"
- },
- {
- "key": "hero_23002",
- "text_cn": "警卫队长"
- },
- {
- "key": "hero_23003",
- "text_cn": "泰德·邓普顿"
- },
- {
- "key": "hero_23004",
- "text_cn": "吉姆·普雷斯科特"
- },
- {
- "key": "hero_24001",
- "text_cn": "警长"
- },
- {
- "key": "hero_24002",
- "text_cn": "牙仙"
- },
- {
- "key": "hero_24003",
- "text_cn": "睡神沙人"
- },
- {
- "key": "hero_24004",
- "text_cn": "邦尼兔"
- },
- {
- "key": "hero_24005",
- "text_cn": "金猴"
- },
- {
- "key": "hero_24006",
- "text_cn": "凯尔"
- },
- {
- "key": "hero_24007",
- "text_cn": "小钱"
- },
- {
- "key": "hero_24008",
- "text_cn": "暴芙那特"
- },
- {
- "key": "hero_24009",
- "text_cn": "云朵先生"
- },
- {
- "key": "hero_25001",
- "text_cn": "阿宝"
- },
- {
- "key": "hero_25002",
- "text_cn": "沃尔夫先生"
- },
- {
- "key": "hero_25003",
- "text_cn": "无牙仔"
- },
- {
- "key": "hero_25004",
- "text_cn": "波比"
- },
- {
- "key": "hero_33001",
- "text_cn": "巫嘎"
- },
- {
- "key": "hero_33002",
- "text_cn": "坦克"
- },
- {
- "key": "hero_33003",
- "text_cn": "胡德先生"
- },
- {
- "key": "hero_33004",
- "text_cn": "普鲁格兰杰"
- },
- {
- "key": "hero_33005",
- "text_cn": "鼻涕粗"
- },
- {
- "key": "hero_33006",
- "text_cn": "珍妮丝·邓普顿"
- },
- {
- "key": "hero_34001",
- "text_cn": "贫嘴驴"
- },
- {
- "key": "hero_34002",
- "text_cn": "蒂姆·邓普顿"
- },
- {
- "key": "hero_34003",
- "text_cn": "圣诞老人"
- },
- {
- "key": "hero_34004",
- "text_cn": "瓜哥"
- },
- {
- "key": "hero_34005",
- "text_cn": "沃尔特·史翠克勒"
- },
- {
- "key": "hero_34006",
- "text_cn": "冰霜杰克"
- },
- {
- "key": "hero_34007",
- "text_cn": "菲奥娜"
- },
- {
- "key": "hero_34008",
- "text_cn": "悍夫那特"
- },
- {
- "key": "hero_35001",
- "text_cn": "师父"
- },
- {
- "key": "hero_35002",
- "text_cn": "希卡普"
- },
- {
- "key": "hero_35003",
- "text_cn": "漆黑"
- },
- {
- "key": "hero_35004",
- "text_cn": "黛安·福克斯顿"
- },
- {
- "key": "hero_35005",
- "text_cn": "幸运·普雷斯科特"
- },
- {
- "key": "hero_35006",
- "text_cn": "平先生"
- },
- {
- "key": "hero_43001",
- "text_cn": "阿比盖尔·斯通"
- },
- {
- "key": "hero_43002",
- "text_cn": "果酱教授"
- },
- {
- "key": "hero_43003",
- "text_cn": "史蒂夫·帕丘克"
- },
- {
- "key": "hero_43004",
- "text_cn": "姜饼人"
- },
- {
- "key": "hero_43005",
- "text_cn": "瓦希尔指挥官"
- },
- {
- "key": "hero_43006",
- "text_cn": "布里奇特"
- },
- {
- "key": "hero_43007",
- "text_cn": "戈伯"
- },
- {
- "key": "hero_44001",
- "text_cn": "美肚鲨"
- },
- {
- "key": "hero_44002",
- "text_cn": "蛇先生"
- },
- {
- "key": "hero_44003",
- "text_cn": "匹诺曹"
- },
- {
- "key": "hero_44004",
- "text_cn": "艾札塔伦"
- },
- {
- "key": "hero_44005",
- "text_cn": "小伊"
- },
- {
- "key": "hero_44006",
- "text_cn": "悍娇虎"
- },
- {
- "key": "hero_45001",
- "text_cn": "乌龟大师"
- },
- {
- "key": "hero_45002",
- "text_cn": "梅林"
- },
- {
- "key": "hero_45003",
- "text_cn": "盖"
- },
- {
- "key": "hero_45004",
- "text_cn": "穿靴子的猫"
- },
- {
- "key": "hero_43901",
- "text_cn": "升星精灵"
- },
- {
- "key": "hero_42911",
- "text_cn": "初级经验精灵"
- },
- {
- "key": "hero_43911",
- "text_cn": "中级经验精灵"
- },
- {
- "key": "hero_44911",
- "text_cn": "高级经验精灵"
- },
- {
- "key": "hero_43921",
- "text_cn": "技能精灵·稀有"
- },
- {
- "key": "hero_44921",
- "text_cn": "技能精灵·史诗"
- },
- {
- "key": "hero_45921",
- "text_cn": "技能精灵·传说"
- },
- {
- "key": "hero_51001",
- "text_cn": "啵啵星人(新增)"
- },
- {
- "key": "hero_51002",
- "text_cn": "埃雷特手下1号(新增)"
- },
- {
- "key": "hero_51003",
- "text_cn": "埃雷特手下2号(新增)"
- },
- {
- "key": "hero_51004",
- "text_cn": "豺狼小怪(新增)"
- },
- {
- "key": "hero_51005",
- "text_cn": "犀牛守卫(新增)"
- },
- {
- "key": "hero_51006",
- "text_cn": "香塔尔 杜布瓦队长手下1号(新增)"
- },
- {
- "key": "hero_51007",
- "text_cn": "香塔尔 杜布瓦队长手下2号(新增)"
- },
- {
- "key": "hero_51008",
- "text_cn": "香塔尔 杜布瓦队长手下3号(新增)"
- },
- {
- "key": "hero_51009",
- "text_cn": "香塔尔 杜布瓦队长手下4号(新增)"
- },
- {
- "key": "hero_51010",
- "text_cn": "警卫1号(新增)"
- },
- {
- "key": "hero_51011",
- "text_cn": "警卫2号(新增)"
- },
- {
- "key": "hero_51012",
- "text_cn": "小猴子(新增)"
- },
- {
- "key": "hero_51013",
- "text_cn": "巨怪啰啰(新增)"
- },
- {
- "key": "hero_51014",
- "text_cn": "博啃族宫廷守卫(新增)"
- },
- {
- "key": "hero_53001",
- "text_cn": "埃雷特(新增)"
- },
- {
- "key": "hero_53002",
- "text_cn": "豺狼头领(新增)"
- },
- {
- "key": "hero_53003",
- "text_cn": "豪猪大师(翡翠僵尸)(新增)"
- },
- {
- "key": "hero_53004",
- "text_cn": "双獾大师(翡翠僵尸)(新增)"
- },
- {
- "key": "hero_53005",
- "text_cn": "小猴子首领(新增)"
- },
- {
- "key": "hero_53006",
- "text_cn": "巨怪首领(新增)"
- },
- {
- "key": "hero_55001",
- "text_cn": "香塔尔 杜布瓦队长"
- },
- {
- "key": "hero_55002",
- "text_cn": "亨得利克斯(新增)"
- },
- {
- "key": "hero_55003",
- "text_cn": "巨型猩猩怪兽(新增)"
- },
- {
- "key": "hero_55004",
- "text_cn": "白龙王"
- },
- {
- "key": "hero_55005",
- "text_cn": "大厨(新增)"
- },
- {
- "key": "hero_55006",
- "text_cn": "德雷格(新增)"
- },
- {
- "key": "hero_55007",
- "text_cn": "莫甘娜巨怪"
- },
- {
- "key": "hero_55008",
- "text_cn": "莫甘娜二阶"
- },
- {
- "key": "hero_55009",
- "text_cn": "闪闪帅的一批"
- },
- {
- "key": "hero_55010",
- "text_cn": "食人鱼先生帅的一批"
- },
- {
- "key": "hero_55011",
- "text_cn": "啊啊帅的一批"
- },
- {
- "key": "hero_55012",
- "text_cn": "法夸德勋爵帅的一批"
- },
- {
- "key": "hero_55013",
- "text_cn": "大大帅的一批"
- },
- {
- "key": "hero_55014",
- "text_cn": "史图依克帅的一批"
- },
- {
- "key": "hero_55015",
- "text_cn": "大龙帅的一批"
- },
- {
- "key": "hero_55016",
- "text_cn": "亚丝翠帅的一批"
- },
- {
- "key": "hero_55017",
- "text_cn": "克莱尔·努涅斯帅的一批"
- },
- {
- "key": "hero_55018",
- "text_cn": "鹤大师帅的一批"
- },
- {
- "key": "hero_55019",
- "text_cn": "布兰奇帅的一批"
- },
- {
- "key": "hero_55020",
- "text_cn": "格里斯特王子帅的一批"
- },
- {
- "key": "hero_55021",
- "text_cn": "吉姆·莱克帅的一批"
- },
- {
- "key": "hero_55022",
- "text_cn": "船长帅的一批"
- },
- {
- "key": "hero_55023",
- "text_cn": "希沙窦斯帅的一批"
- },
- {
- "key": "hero_55024",
- "text_cn": "小欧帅的一批"
- },
- {
- "key": "hero_55025",
- "text_cn": "亚力克斯帅的一批"
- },
- {
- "key": "hero_55026",
- "text_cn": "斯梅克船长帅的一批"
- },
- {
- "key": "hero_55027",
- "text_cn": "警卫队长帅的一批"
- },
- {
- "key": "hero_55028",
- "text_cn": "泰德·邓普顿帅的一批"
- },
- {
- "key": "hero_55029",
- "text_cn": "吉姆·普雷斯科特帅的一批"
- },
- {
- "key": "hero_55030",
- "text_cn": "警长帅的一批"
- },
- {
- "key": "hero_55031",
- "text_cn": "牙仙帅的一批"
- },
- {
- "key": "hero_55032",
- "text_cn": "睡神沙人帅的一批"
- },
- {
- "key": "hero_55033",
- "text_cn": "邦尼兔帅的一批"
- },
- {
- "key": "hero_55034",
- "text_cn": "金猴帅的一批"
- },
- {
- "key": "hero_55035",
- "text_cn": "凯尔帅的一批"
- },
- {
- "key": "hero_55036",
- "text_cn": "小钱帅的一批"
- },
- {
- "key": "hero_55037",
- "text_cn": "暴芙那特帅的一批"
- },
- {
- "key": "hero_55038",
- "text_cn": "云朵先生帅的一批"
- },
- {
- "key": "hero_55039",
- "text_cn": "阿宝性格随和、天真、好动、贪玩、孩子气,但是正是这些特质,让他有了成为“神龙大侠”的潜质。也许大侠不一定是完美的,但一定是善良的!"
- },
- {
- "key": "hero_55040",
- "text_cn": "沃尔夫先生帅的一批"
- },
- {
- "key": "hero_55041",
- "text_cn": "无牙仔帅的一批"
- },
- {
- "key": "hero_55042",
- "text_cn": "波比是精灵城的公主,她有着神奇的魔力和多彩的头发,乐观积极、喜爱唱歌。"
- },
- {
- "key": "hero_55043",
- "text_cn": "巫嘎帅的一批"
- },
- {
- "key": "hero_55044",
- "text_cn": "坦克帅的一批"
- },
- {
- "key": "hero_55045",
- "text_cn": "胡德先生帅的一批"
- },
- {
- "key": "hero_55046",
- "text_cn": "普鲁格兰杰帅的一批"
- },
- {
- "key": "hero_55047",
- "text_cn": "鼻涕粗帅的一批"
- },
- {
- "key": "hero_55048",
- "text_cn": "珍妮丝·邓普顿帅的一批"
- },
- {
- "key": "hero_55049",
- "text_cn": "贫嘴驴帅的一批"
- },
- {
- "key": "hero_55050",
- "text_cn": "蒂姆·邓普顿帅的一批"
- },
- {
- "key": "hero_55051",
- "text_cn": "圣诞老人帅的一批"
- },
- {
- "key": "hero_55052",
- "text_cn": "瓜哥帅的一批"
- },
- {
- "key": "hero_55053",
- "text_cn": "沃尔特·史翠克勒帅的一批"
- },
- {
- "key": "hero_55054",
- "text_cn": "冰霜杰克帅的一批"
- },
- {
- "key": "hero_55055",
- "text_cn": "菲奥娜帅的一批"
- },
- {
- "key": "hero_55056",
- "text_cn": "悍夫那特帅的一批"
- },
- {
- "key": "hero_55057",
- "text_cn": "师父帅的一批"
- },
- {
- "key": "hero_55058",
- "text_cn": "希卡普帅的一批"
- },
- {
- "key": "hero_55059",
- "text_cn": "漆黑帅的一批"
- },
- {
- "key": "hero_55060",
- "text_cn": "黛安·福克斯顿帅的一批"
- },
- {
- "key": "hero_55061",
- "text_cn": "幸运·普雷斯科特帅的一批"
- },
- {
- "key": "hero_55062",
- "text_cn": "平先生帅的一批"
- },
- {
- "key": "hero_55063",
- "text_cn": "阿比盖尔·斯通帅的一批"
- },
- {
- "key": "hero_55064",
- "text_cn": "果酱教授帅的一批"
- },
- {
- "key": "hero_55065",
- "text_cn": "史蒂夫·帕丘克帅的一批"
- },
- {
- "key": "hero_55066",
- "text_cn": "姜饼人帅的一批"
- },
- {
- "key": "hero_55067",
- "text_cn": "瓦希尔指挥官帅的一批"
- },
- {
- "key": "hero_55068",
- "text_cn": "布里奇特帅的一批"
- },
- {
- "key": "hero_55069",
- "text_cn": "戈伯帅的一批"
- },
- {
- "key": "hero_55070",
- "text_cn": "美肚鲨帅的一批"
- },
- {
- "key": "hero_55071",
- "text_cn": "蛇先生帅的一批"
- },
- {
- "key": "hero_55072",
- "text_cn": "匹诺曹帅的一批"
- },
- {
- "key": "hero_55073",
- "text_cn": "艾札塔伦帅的一批"
- },
- {
- "key": "hero_55074",
- "text_cn": "小伊帅的一批"
- },
- {
- "key": "hero_55075",
- "text_cn": "悍娇虎帅的一批"
- },
- {
- "key": "hero_55076",
- "text_cn": "乌龟大师帅的一批"
- },
- {
- "key": "hero_55077",
- "text_cn": "梅林帅的一批"
- },
- {
- "key": "hero_55078",
- "text_cn": "盖帅的一批"
- },
- {
- "key": "hero_55079",
- "text_cn": "穿靴子的猫帅的一批"
- },
- {
- "key": "hero_55080",
- "text_cn": "升星精灵帅的一批"
- },
- {
- "key": "hero_55081",
- "text_cn": "初级经验精灵帅的一批"
- },
- {
- "key": "hero_55082",
- "text_cn": "中级经验精灵帅的一批"
- },
- {
- "key": "hero_55083",
- "text_cn": "高级经验精灵帅的一批"
- },
- {
- "key": "hero_55084",
- "text_cn": "技能精灵·稀有帅的一批"
- },
- {
- "key": "hero_55085",
- "text_cn": "技能精灵·史诗帅的一批"
- },
- {
- "key": "hero_55086",
- "text_cn": "技能精灵·传说帅的一批"
- },
- {
- "key": "hero_55087",
- "text_cn": "啵啵星人(新增)帅的一批"
- },
- {
- "key": "hero_55088",
- "text_cn": "埃雷特手下1号(新增)帅的一批"
- },
- {
- "key": "hero_55089",
- "text_cn": "埃雷特手下2号(新增)帅的一批"
- },
- {
- "key": "hero_55090",
- "text_cn": "豺狼小怪(新增)帅的一批"
- },
- {
- "key": "hero_55091",
- "text_cn": "犀牛守卫(新增)帅的一批"
- },
- {
- "key": "hero_55092",
- "text_cn": "香塔尔 杜布瓦队长手下1号(新增)帅的一批"
- },
- {
- "key": "hero_55093",
- "text_cn": "香塔尔 杜布瓦队长手下2号(新增)帅的一批"
- },
- {
- "key": "hero_55094",
- "text_cn": "香塔尔 杜布瓦队长手下3号(新增)帅的一批"
- },
- {
- "key": "hero_55095",
- "text_cn": "香塔尔 杜布瓦队长手下4号(新增)帅的一批"
- },
- {
- "key": "hero_55096",
- "text_cn": "警卫1号(新增)帅的一批"
- },
- {
- "key": "hero_55097",
- "text_cn": "警卫2号(新增)帅的一批"
- },
- {
- "key": "hero_55098",
- "text_cn": "小猴子(新增)帅的一批"
- },
- {
- "key": "hero_55099",
- "text_cn": "巨怪啰啰(新增)帅的一批"
- },
- {
- "key": "hero_55100",
- "text_cn": "博啃族宫廷守卫(新增)帅的一批"
- },
- {
- "key": "hero_55101",
- "text_cn": "埃雷特(新增)帅的一批"
- },
- {
- "key": "hero_55102",
- "text_cn": "豺狼头领(新增)帅的一批"
- },
- {
- "key": "hero_55103",
- "text_cn": "豪猪大师(翡翠僵尸)(新增)帅的一批"
- },
- {
- "key": "hero_55104",
- "text_cn": "双獾大师(翡翠僵尸)(新增)帅的一批"
- },
- {
- "key": "hero_55105",
- "text_cn": "小猴子首领(新增)帅的一批"
- },
- {
- "key": "hero_55106",
- "text_cn": "巨怪首领(新增)帅的一批"
- },
- {
- "key": "hero_55107",
- "text_cn": "香塔尔 杜布瓦队长帅的一批"
- },
- {
- "key": "hero_55108",
- "text_cn": "亨得利克斯(新增)帅的一批"
- },
- {
- "key": "hero_55109",
- "text_cn": "巨型猩猩怪兽(新增)帅的一批"
- },
- {
- "key": "hero_55110",
- "text_cn": "白龙王帅的一批"
- },
- {
- "key": "hero_55111",
- "text_cn": "大厨(新增)帅的一批"
- },
- {
- "key": "hero_55112",
- "text_cn": "德雷格(新增)帅的一批"
- },
- {
- "key": "hero_55113",
- "text_cn": "莫甘娜巨怪帅的一批"
- },
- {
- "key": "hero_55114",
- "text_cn": "莫甘娜二阶帅的一批"
- },
- {
- "key": "equip_13001",
- "text_cn": "武器"
- },
- {
- "key": "equip_13002",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13003",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13004",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13005",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13006",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13007",
- "text_cn": "武器"
- },
- {
- "key": "equip_13008",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13009",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13010",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13011",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13012",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13013",
- "text_cn": "武器"
- },
- {
- "key": "equip_13014",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13015",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13016",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13017",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13018",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13019",
- "text_cn": "武器"
- },
- {
- "key": "equip_13020",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13021",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13022",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13023",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13024",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13025",
- "text_cn": "武器"
- },
- {
- "key": "equip_13026",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13027",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13028",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13029",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13030",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13031",
- "text_cn": "武器"
- },
- {
- "key": "equip_13032",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13033",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13034",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13035",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13036",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13037",
- "text_cn": "武器"
- },
- {
- "key": "equip_13038",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13039",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13040",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13041",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13042",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13043",
- "text_cn": "武器"
- },
- {
- "key": "equip_13044",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13045",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13046",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13047",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13048",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13049",
- "text_cn": "武器"
- },
- {
- "key": "equip_13050",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13051",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13052",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13053",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13054",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13055",
- "text_cn": "武器"
- },
- {
- "key": "equip_13056",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13057",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13058",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13059",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13060",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13061",
- "text_cn": "武器"
- },
- {
- "key": "equip_13062",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13063",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13064",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13065",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13066",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13067",
- "text_cn": "武器"
- },
- {
- "key": "equip_13068",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13069",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13070",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13071",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13072",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13073",
- "text_cn": "武器"
- },
- {
- "key": "equip_13074",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13075",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13076",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13077",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13078",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13079",
- "text_cn": "武器"
- },
- {
- "key": "equip_13080",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13081",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13082",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13083",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13084",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13085",
- "text_cn": "武器"
- },
- {
- "key": "equip_13086",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13087",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13088",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13089",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13090",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13091",
- "text_cn": "武器"
- },
- {
- "key": "equip_13092",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13093",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13094",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13095",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13096",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13097",
- "text_cn": "武器"
- },
- {
- "key": "equip_13098",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13099",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13100",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13101",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13102",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13103",
- "text_cn": "武器"
- },
- {
- "key": "equip_13104",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13105",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13106",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13107",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13108",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13109",
- "text_cn": "武器"
- },
- {
- "key": "equip_13110",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13111",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13112",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13113",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13114",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13115",
- "text_cn": "武器"
- },
- {
- "key": "equip_13116",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13117",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13118",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13119",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13120",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13121",
- "text_cn": "武器"
- },
- {
- "key": "equip_13122",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13123",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13124",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13125",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13126",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13127",
- "text_cn": "武器"
- },
- {
- "key": "equip_13128",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13129",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13130",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13131",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13132",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13133",
- "text_cn": "武器"
- },
- {
- "key": "equip_13134",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13135",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13136",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13137",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13138",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13139",
- "text_cn": "武器"
- },
- {
- "key": "equip_13140",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13141",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13142",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13143",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13144",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13145",
- "text_cn": "武器"
- },
- {
- "key": "equip_13146",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13147",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13148",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13149",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13150",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13151",
- "text_cn": "武器"
- },
- {
- "key": "equip_13152",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13153",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13154",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13155",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13156",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13157",
- "text_cn": "武器"
- },
- {
- "key": "equip_13158",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13159",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13160",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13161",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13162",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13163",
- "text_cn": "武器"
- },
- {
- "key": "equip_13164",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13165",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13166",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13167",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13168",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13169",
- "text_cn": "武器"
- },
- {
- "key": "equip_13170",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13171",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13172",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13173",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13174",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13175",
- "text_cn": "武器"
- },
- {
- "key": "equip_13176",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13177",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13178",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13179",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13180",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13181",
- "text_cn": "武器"
- },
- {
- "key": "equip_13182",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13183",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13184",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13185",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13186",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13187",
- "text_cn": "武器"
- },
- {
- "key": "equip_13188",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13189",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13190",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13191",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13192",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13193",
- "text_cn": "武器"
- },
- {
- "key": "equip_13194",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13195",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13196",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13197",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13198",
- "text_cn": "空间宝石"
- },
- {
- "key": "equip_13199",
- "text_cn": "武器"
- },
- {
- "key": "equip_13200",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13201",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13202",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13203",
- "text_cn": "时间宝石"
- },
- {
- "key": "equip_13204",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13205",
- "text_cn": "武器"
- },
- {
- "key": "equip_13206",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13207",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13208",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13209",
- "text_cn": "武器"
- },
- {
- "key": "equip_13210",
- "text_cn": "衣服"
- },
- {
- "key": "equip_13211",
- "text_cn": "鞋子"
- },
- {
- "key": "equip_13212",
- "text_cn": "戒指"
- },
- {
- "key": "equip_13213",
- "text_cn": "神龙套装"
- },
- {
- "key": "equip_13214",
- "text_cn": "圆月套装"
- },
- {
- "key": "equip_13215",
- "text_cn": "暴击率+20%"
- },
- {
- "key": "equip_13216",
- "text_cn": "未激活"
- },
- {
- "key": "equip_13217",
- "text_cn": "已激活"
- },
- {
- "key": "suit_equip_10001",
- "text_cn": "初心者套装"
- },
- {
- "key": "item_10001",
- "text_cn": "1阵营觉醒材料"
- },
- {
- "key": "item_10002",
- "text_cn": "1阵营觉醒材料"
- },
- {
- "key": "item_10003",
- "text_cn": "1阵营觉醒材料"
- },
- {
- "key": "item_10011",
- "text_cn": "2阵营觉醒材料"
- },
- {
- "key": "item_10012",
- "text_cn": "2阵营觉醒材料"
- },
- {
- "key": "item_10013",
- "text_cn": "2阵营觉醒材料"
- },
- {
- "key": "item_10021",
- "text_cn": "3阵营觉醒材料"
- },
- {
- "key": "item_10022",
- "text_cn": "3阵营觉醒材料"
- },
- {
- "key": "item_10023",
- "text_cn": "3阵营觉醒材料"
- },
- {
- "key": "item_10031",
- "text_cn": "4阵营觉醒材料"
- },
- {
- "key": "item_10032",
- "text_cn": "4阵营觉醒材料"
- },
- {
- "key": "item_10033",
- "text_cn": "4阵营觉醒材料"
- },
- {
- "key": "mainline_title_10001",
- "text_cn": "第1章:功夫世界"
- },
- {
- "key": "mainline_title_10002",
- "text_cn": "第2章:练功房"
- },
- {
- "key": "mainline_title_10003",
- "text_cn": "第3章:太狼来袭"
- },
- {
- "key": "mainline_title_10004",
- "text_cn": "第4章:乌龟大师"
- },
- {
- "key": "mainline_title_10005",
- "text_cn": "第4章:太狼来袭"
- },
- {
- "key": "mainline_title_10006",
- "text_cn": "第5章:乌龟大师"
- },
- {
- "key": "mainline_title_10007",
- "text_cn": "第5章:太狼来袭"
- },
- {
- "key": "mainline_title_10008",
- "text_cn": "第6章:乌龟大师"
- },
- {
- "key": "mainline_title_10009",
- "text_cn": "第6章:太狼来袭"
- },
- {
- "key": "mainline_title_10010",
- "text_cn": "第7章:乌龟大师"
- },
- {
- "key": "mainline_title_10011",
- "text_cn": "第7章:太狼来袭"
- },
- {
- "key": "mainline_title_10012",
- "text_cn": "第8章:乌龟大师"
- },
- {
- "key": "mainline_title_10013",
- "text_cn": "第8章:太狼来袭"
- },
- {
- "key": "mainline_title_10014",
- "text_cn": "第9章:乌龟大师"
- },
- {
- "key": "mainline_title_10015",
- "text_cn": "第9章:太狼来袭"
- },
- {
- "key": "mainline_title_10016",
- "text_cn": "第10章:乌龟大师"
- },
- {
- "key": "mainline_title_10017",
- "text_cn": "第10章:太狼来袭"
- },
- {
- "key": "mainline_title_10018",
- "text_cn": "第11章:乌龟大师"
- },
- {
- "key": "mainline_title_10019",
- "text_cn": "第11章:太狼来袭"
- },
- {
- "key": "mainline_title_10020",
- "text_cn": "第12章:乌龟大师"
- },
- {
- "key": "mainline_title_10021",
- "text_cn": "第12章:太狼来袭"
- },
- {
- "key": "mainline_title_10022",
- "text_cn": "第13章:乌龟大师"
- },
- {
- "key": "mainline_title_10023",
- "text_cn": "第13章:太狼来袭"
- },
- {
- "key": "mainline_title_10024",
- "text_cn": "第14章:乌龟大师"
- },
- {
- "key": "mainline_title_10025",
- "text_cn": "第14章:太狼来袭"
- },
- {
- "key": "mainline_title_10026",
- "text_cn": "第15章:乌龟大师"
- },
- {
- "key": "mainline_title_10027",
- "text_cn": "第15章:太狼来袭"
- },
- {
- "key": "mainline_title_10028",
- "text_cn": "第16章:乌龟大师"
- },
- {
- "key": "mainline_title_10029",
- "text_cn": "第16章:太狼来袭"
- },
- {
- "key": "mainline_title_10030",
- "text_cn": "第17章:乌龟大师"
- },
- {
- "key": "mainline_title_10031",
- "text_cn": "第17章:太狼来袭"
- },
- {
- "key": "mainline_title_10032",
- "text_cn": "第18章:乌龟大师"
- },
- {
- "key": "mainline_title_10033",
- "text_cn": "第18章:太狼来袭"
- },
- {
- "key": "mainline_title_10034",
- "text_cn": "第19章:乌龟大师"
- },
- {
- "key": "mainline_title_10035",
- "text_cn": "第19章:太狼来袭"
- },
- {
- "key": "mainline_title_10036",
- "text_cn": "第20章:乌龟大师"
- },
- {
- "key": "mainline_title_10037",
- "text_cn": "第20章:太狼来袭"
- },
- {
- "key": "mainline_title_10038",
- "text_cn": "第21章:乌龟大师"
- },
- {
- "key": "mainline_title_10039",
- "text_cn": "第21章:太狼来袭"
- },
- {
- "key": "mainline_title_10040",
- "text_cn": "第22章:乌龟大师"
- },
- {
- "key": "mainline_title_10041",
- "text_cn": "第22章:太狼来袭"
- },
- {
- "key": "mainline_title_10042",
- "text_cn": "第23章:乌龟大师"
- },
- {
- "key": "mainline_title_10043",
- "text_cn": "第23章:太狼来袭"
- },
- {
- "key": "mainline_title_10044",
- "text_cn": "第24章:乌龟大师"
- },
- {
- "key": "mainline_title_10045",
- "text_cn": "第24章:太狼来袭"
- },
- {
- "key": "mainline_title_10046",
- "text_cn": "第25章:乌龟大师"
- },
- {
- "key": "mainline_title_10047",
- "text_cn": "第25章:太狼来袭"
- },
- {
- "key": "mainline_title_10048",
- "text_cn": "第26章:乌龟大师"
- },
- {
- "key": "mainline_title_10049",
- "text_cn": "第26章:太狼来袭"
- },
- {
- "key": "mainline_title_10050",
- "text_cn": "第27章:乌龟大师"
- },
- {
- "key": "mainline_title_10051",
- "text_cn": "第27章:太狼来袭"
- },
- {
- "key": "mainline_title_10052",
- "text_cn": "第28章:乌龟大师"
- },
- {
- "key": "mainline_title_10053",
- "text_cn": "第28章:太狼来袭"
- },
- {
- "key": "mainline_title_10054",
- "text_cn": "第29章:乌龟大师"
- },
- {
- "key": "mainline_title_10055",
- "text_cn": "第29章:太狼来袭"
- },
- {
- "key": "mainline_title_10056",
- "text_cn": "第30章:乌龟大师"
- },
- {
- "key": "mainline_title_10057",
- "text_cn": "第30章:太狼来袭"
- },
- {
- "key": "mainline_title_10058",
- "text_cn": "第31章:乌龟大师"
- },
- {
- "key": "mainline_title_10059",
- "text_cn": "第31章:太狼来袭"
- },
- {
- "key": "mainline_title_10060",
- "text_cn": "第32章:乌龟大师"
- },
- {
- "key": "mainline_title_10061",
- "text_cn": "第32章:太狼来袭"
- },
- {
- "key": "mainline_title_10062",
- "text_cn": "第33章:乌龟大师"
- },
- {
- "key": "mainline_title_10063",
- "text_cn": "第33章:太狼来袭"
- },
- {
- "key": "mainline_title_10064",
- "text_cn": "第34章:乌龟大师"
- },
- {
- "key": "mainline_title_10065",
- "text_cn": "第34章:太狼来袭"
- },
- {
- "key": "mainline_title_10066",
- "text_cn": "第35章:乌龟大师"
- },
- {
- "key": "mainline_title_10067",
- "text_cn": "第35章:太狼来袭"
- },
- {
- "key": "mainline_title_10068",
- "text_cn": "第36章:乌龟大师"
- },
- {
- "key": "mainline_title_10069",
- "text_cn": "第36章:太狼来袭"
- },
- {
- "key": "mainline_title_10070",
- "text_cn": "第37章:乌龟大师"
- },
- {
- "key": "mainline_desc_10001",
- "text_cn": "故事发生在很久以前的古代中国,而且要从一只喜欢滚来滚去、滚来滚去的大熊猫身上说起。话说熊猫阿宝是一家面条店的学徒,虽然笨手笨脚,也勉强算是谋到了一份职业。"
- },
- {
- "key": "mainline_desc_10002",
- "text_cn": "别看阿宝所在的“和平谷”一派欣欣向荣的安详景象,其实是一个卧虎藏龙的风水宝地,先不说五大功夫高手皆坐镇于此,更有一大师级别的宗师在这里隐居。"
- },
- {
- "key": "mainline_desc_10003",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10004",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10005",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10006",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10007",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10008",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10009",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10010",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10011",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10012",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10013",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10014",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10015",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10016",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10017",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10018",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10019",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10020",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10021",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10022",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10023",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10024",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10025",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10026",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10027",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10028",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10029",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10030",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10031",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10032",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10033",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10034",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10035",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10036",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10037",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10038",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10039",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10040",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10041",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10042",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10043",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10044",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10045",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10046",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10047",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10048",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10049",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10050",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10051",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10052",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10053",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10054",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10055",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10056",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10057",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10058",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10059",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10060",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10061",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10062",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10063",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10064",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10065",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10066",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10067",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10068",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10069",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_desc_10070",
- "text_cn": "可是在一场特殊的比武大会上胜出的人要代表“和平谷”将邪恶的大龙永久地驱除出去,啥都不会的阿宝却在经历了一系列阴差阳错之后屏雀中选,让所有人都大跌眼镜。"
- },
- {
- "key": "mainline_text_10001",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10002",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10003",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10004",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10005",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10006",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10007",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10008",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10009",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10010",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10011",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10012",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10013",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10014",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10015",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10016",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10017",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10018",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10019",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10020",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10021",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10022",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10023",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10024",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10025",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10026",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10027",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10028",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10029",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10030",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10031",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10032",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10033",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10034",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10035",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10036",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10037",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10038",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10039",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10040",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10041",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10042",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10043",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10044",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10045",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10046",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10047",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10048",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10049",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10050",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10051",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10052",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10053",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10054",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10055",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10056",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10057",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10058",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10059",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10060",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10061",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10062",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10063",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10064",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10065",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10066",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10067",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10068",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10069",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_text_10070",
- "text_cn": "金币5000"
- },
- {
- "key": "mainline_name_10001",
- "text_cn": "Chapter 1"
- },
- {
- "key": "mainline_name_10002",
- "text_cn": "Chapter 2"
- },
- {
- "key": "mainline_name_10003",
- "text_cn": "Chapter 3"
- },
- {
- "key": "mainline_name_10004",
- "text_cn": "Chapter 4"
- },
- {
- "key": "mainline_name_10005",
- "text_cn": "Chapter 5"
- },
- {
- "key": "mainline_name_10006",
- "text_cn": "Chapter 6"
- },
- {
- "key": "mainline_name_10007",
- "text_cn": "Chapter 7"
- },
- {
- "key": "mainline_name_10008",
- "text_cn": "Chapter 8"
- },
- {
- "key": "mainline_name_10009",
- "text_cn": "Chapter 9"
- },
- {
- "key": "mainline_name_10010",
- "text_cn": "Chapter 10"
- },
- {
- "key": "mainline_name_10011",
- "text_cn": "Chapter 11"
- },
- {
- "key": "mainline_name_10012",
- "text_cn": "Chapter 12"
- },
- {
- "key": "mainline_name_10013",
- "text_cn": "Chapter 13"
- },
- {
- "key": "mainline_name_10014",
- "text_cn": "Chapter 14"
- },
- {
- "key": "mainline_name_10015",
- "text_cn": "Chapter 15"
- },
- {
- "key": "mainline_name_10016",
- "text_cn": "Chapter 16"
- },
- {
- "key": "mainline_name_10017",
- "text_cn": "Chapter 17"
- },
- {
- "key": "mainline_name_10018",
- "text_cn": "Chapter 18"
- },
- {
- "key": "mainline_name_10019",
- "text_cn": "Chapter 19"
- },
- {
- "key": "mainline_name_10020",
- "text_cn": "Chapter 20"
- },
- {
- "key": "mainline_name_10021",
- "text_cn": "Chapter 21"
- },
- {
- "key": "mainline_name_10022",
- "text_cn": "Chapter 22"
- },
- {
- "key": "mainline_name_10023",
- "text_cn": "Chapter 23"
- },
- {
- "key": "mainline_name_10024",
- "text_cn": "Chapter 24"
- },
- {
- "key": "mainline_name_10025",
- "text_cn": "Chapter 25"
- },
- {
- "key": "mainline_name_10026",
- "text_cn": "Chapter 26"
- },
- {
- "key": "mainline_name_10027",
- "text_cn": "Chapter 27"
- },
- {
- "key": "mainline_name_10028",
- "text_cn": "Chapter 28"
- },
- {
- "key": "mainline_name_10029",
- "text_cn": "Chapter 29"
- },
- {
- "key": "mainline_name_10030",
- "text_cn": "Chapter 30"
- },
- {
- "key": "mainline_name_10031",
- "text_cn": "Chapter 31"
- },
- {
- "key": "mainline_name_10032",
- "text_cn": "Chapter 32"
- },
- {
- "key": "mainline_name_10033",
- "text_cn": "Chapter 33"
- },
- {
- "key": "mainline_name_10034",
- "text_cn": "Chapter 34"
- },
- {
- "key": "mainline_name_10035",
- "text_cn": "Chapter 35"
- },
- {
- "key": "mainline_name_10036",
- "text_cn": "Chapter 36"
- },
- {
- "key": "mainline_name_10037",
- "text_cn": "Chapter 37"
- },
- {
- "key": "mainline_name_10038",
- "text_cn": "Chapter 38"
- },
- {
- "key": "mainline_name_10039",
- "text_cn": "Chapter 39"
- },
- {
- "key": "mainline_name_10040",
- "text_cn": "Chapter 40"
- },
- {
- "key": "mainline_name_10041",
- "text_cn": "Chapter 41"
- },
- {
- "key": "mainline_name_10042",
- "text_cn": "Chapter 42"
- },
- {
- "key": "mainline_name_10043",
- "text_cn": "Chapter 43"
- },
- {
- "key": "mainline_name_10044",
- "text_cn": "Chapter 44"
- },
- {
- "key": "mainline_name_10045",
- "text_cn": "Chapter 45"
- },
- {
- "key": "mainline_name_10046",
- "text_cn": "Chapter 46"
- },
- {
- "key": "mainline_name_10047",
- "text_cn": "Chapter 47"
- },
- {
- "key": "mainline_name_10048",
- "text_cn": "Chapter 48"
- },
- {
- "key": "mainline_name_10049",
- "text_cn": "Chapter 49"
- },
- {
- "key": "mainline_name_10050",
- "text_cn": "Chapter 50"
- },
- {
- "key": "mainline_name_10051",
- "text_cn": "Chapter 51"
- },
- {
- "key": "mainline_name_10052",
- "text_cn": "Chapter 52"
- },
- {
- "key": "mainline_name_10053",
- "text_cn": "Chapter 53"
- },
- {
- "key": "mainline_name_10054",
- "text_cn": "Chapter 54"
- },
- {
- "key": "mainline_name_10055",
- "text_cn": "Chapter 55"
- },
- {
- "key": "mainline_name_10056",
- "text_cn": "Chapter 56"
- },
- {
- "key": "mainline_name_10057",
- "text_cn": "Chapter 57"
- },
- {
- "key": "mainline_name_10058",
- "text_cn": "Chapter 58"
- },
- {
- "key": "mainline_name_10059",
- "text_cn": "Chapter 59"
- },
- {
- "key": "mainline_name_10060",
- "text_cn": "Chapter 60"
- },
- {
- "key": "mainline_name_10061",
- "text_cn": "Chapter 61"
- },
- {
- "key": "mainline_name_10062",
- "text_cn": "Chapter 62"
- },
- {
- "key": "mainline_name_10063",
- "text_cn": "Chapter 63"
- },
- {
- "key": "mainline_name_10064",
- "text_cn": "Chapter 64"
- },
- {
- "key": "mainline_name_10065",
- "text_cn": "Chapter 65"
- },
- {
- "key": "mainline_name_10066",
- "text_cn": "Chapter 66"
- },
- {
- "key": "mainline_name_10067",
- "text_cn": "Chapter 67"
- },
- {
- "key": "mainline_name_10068",
- "text_cn": "Chapter 68"
- },
- {
- "key": "mainline_name_10069",
- "text_cn": "Chapter 69"
- },
- {
- "key": "mainline_name_10070",
- "text_cn": "Chapter 70"
- },
- {
- "key": "mainline_name_10071",
- "text_cn": "故事发生在很久以前的古代中国,而且要从一只喜欢滚来滚去、滚来滚去的大熊猫身上说起。"
- },
- {
- "key": "equip_10001",
- "text_cn": "普通"
- },
- {
- "key": "equip_10002",
- "text_cn": "稀有"
- },
- {
- "key": "equip_10003",
- "text_cn": "卓越"
- },
- {
- "key": "equip_10004",
- "text_cn": "优秀"
- },
- {
- "key": "equip_10005",
- "text_cn": "完美"
- },
- {
- "key": "skillname_125004011",
- "text_cn": "波比队长技"
- },
- {
- "key": "skillname_125004111",
- "text_cn": "波比1技能"
- },
- {
- "key": "skillname_125004211",
- "text_cn": "波比2技能"
- },
- {
- "key": "skillname_125004311",
- "text_cn": "波比3技能"
- },
- {
- "key": "skillname_925004211",
- "text_cn": "波比2技能"
- },
- {
- "key": "skillname_135002011",
- "text_cn": "希卡普队长技"
- },
- {
- "key": "skillname_135002111",
- "text_cn": "希卡普1技能"
- },
- {
- "key": "skillname_135002211",
- "text_cn": "希卡普2技能"
- },
- {
- "key": "skillname_135002311",
- "text_cn": "希卡普3技能"
- },
- {
- "key": "skillname_935002321",
- "text_cn": "希卡普3技能"
- },
- {
- "key": "skillname_124003011",
- "text_cn": "睡神队长技"
- },
- {
- "key": "skillname_124003111",
- "text_cn": "睡神1技能"
- },
- {
- "key": "skillname_124003211",
- "text_cn": "睡神2技能"
- },
- {
- "key": "skillname_124003311",
- "text_cn": "睡神3技能"
- },
- {
- "key": "skillname_924003411",
- "text_cn": "睡神2技能"
- },
- {
- "key": "skill_1250040111",
- "text_cn": "队长技:我方全体效果抵抗增加40%"
- },
- {
- "key": "skill_1250041111",
- "text_cn": "波比对敌方1个目标造成3次攻击力30%的伤害,有40%概率为自身附加2回合【免疫】状态"
- },
- {
- "key": "skill_1250041112",
- "text_cn": "伤害提升至35%"
- },
- {
- "key": "skill_1250041113",
- "text_cn": "概率触发概率提升至50%"
- },
- {
- "key": "skill_1250041114",
- "text_cn": "伤害提升至40%"
- },
- {
- "key": "skill_1250041115",
- "text_cn": "概率触发概率提升至60%"
- },
- {
- "key": "skill_1250041116",
- "text_cn": "伤害提升至45%"
- },
- {
- "key": "skill_1250042111",
- "text_cn": "波比清除我方所有减益状态,并平均分配我方生命值千分比,为我方全体附加2回合【攻击提升】状态"
- },
- {
- "key": "skill_1250042112",
- "text_cn": "冷却时间减少1回合"
- },
- {
- "key": "skill_1250042113",
- "text_cn": "冷却时间减少1回合"
- },
- {
- "key": "skill_1250043111",
- "text_cn": "进入2回合【喜悦】状态,使我方全体收到伤害降低25%,且在每个队友行动去,为其驱散1个减益状态并回复其最大生命值20%的生命,效果持续期间自身无法行动"
- },
- {
- "key": "skill_1250043112",
- "text_cn": "恢复量提升至22%"
- },
- {
- "key": "skill_1250043113",
- "text_cn": "恢复量提升至24%"
- },
- {
- "key": "skill_1250043114",
- "text_cn": "恢复量提升至26%"
- },
- {
- "key": "skill_1250043115",
- "text_cn": "冷却时间减少1回合"
- },
- {
- "key": "skill_1350020111",
- "text_cn": "队长技:我方全体效果命中增加40%"
- },
- {
- "key": "skill_1350021111",
- "text_cn": "攻击一个敌方2次,伤害分别为自身攻击力30%和80%,每次像目标转嫁自身1个减益;转嫁成功时有50%的概率为目标附加1回合【眩晕】。"
- },
- {
- "key": "skill_1350021112",
- "text_cn": "第二段伤害提升至90%"
- },
- {
- "key": "skill_1350021113",
- "text_cn": "效果触发几率提升至60%"
- },
- {
- "key": "skill_1350021114",
- "text_cn": "第二段伤害提升至100%"
- },
- {
- "key": "skill_1350021115",
- "text_cn": "效果触发几率提升至70%"
- },
- {
- "key": "skill_1350021116",
- "text_cn": "第二段伤害提升至110%"
- },
- {
- "key": "skill_1350022111",
- "text_cn": "自身不会失手。敌方使其友方减益提前结束时,扣除其当前生命值30%,驱散其全部增益u,为其附加1回合【石化】。"
- },
- {
- "key": "skill_1350023111",
- "text_cn": "攻击全体敌方3次,每次伤害为自身攻击力35%。每次有80%概率驱散目标1个增益,为目标附加2回合【失手率提升】。"
- },
- {
- "key": "skill_1350023112",
- "text_cn": "伤害提升至37"
- },
- {
- "key": "skill_1350023113",
- "text_cn": "效果触发几率提升至90%"
- },
- {
- "key": "skill_1350023114",
- "text_cn": "伤害提升至40%"
- },
- {
- "key": "skill_1350023115",
- "text_cn": "效果触发几率提升至100%"
- },
- {
- "key": "skill_1350023116",
- "text_cn": "冷却时间减少1回合"
- },
- {
- "key": "skill_9350023211",
- "text_cn": "攻击全体敌方3次,每次伤害为自身攻击力35%。每次有80%概率驱散目标1个增益,为目标附加2回合【失手率提升】。延迟目标减益状态1回合。"
- },
- {
- "key": "skill_9350023212",
- "text_cn": "伤害提升至37"
- },
- {
- "key": "skill_9350023213",
- "text_cn": "效果触发几率提升至90%"
- },
- {
- "key": "skill_9350023214",
- "text_cn": "伤害提升至40%"
- },
- {
- "key": "skill_9350023215",
- "text_cn": "效果触发几率提升至100%"
- },
- {
- "key": "skill_9350023216",
- "text_cn": "冷却时间减少1回合"
- },
- {
- "key": "skill_1240030111",
- "text_cn": "队长技:我方全体效果抵抗增加40%"
- },
- {
- "key": "skill_1240031111",
- "text_cn": "一技能:睡神沙人对敌方1个目标造成攻击力110%的伤害,并有70%的概率附加1回合【睡眠】状态。"
- },
- {
- "key": "skill_1240031112",
- "text_cn": "等级2 伤害提升至100%"
- },
- {
- "key": "skill_1240031113",
- "text_cn": "等级3 效果触发几率提升至60%"
- },
- {
- "key": "skill_1240031114",
- "text_cn": "等级4 伤害提升至110%"
- },
- {
- "key": "skill_1240031115",
- "text_cn": "等级5 效果触发几率提升至70%"
- },
- {
- "key": "skill_1240032111",
- "text_cn": "二技能:睡神沙人为我方全体各净化1个减益状态,并附加2回合【速度提升】。"
- },
- {
- "key": "skill_1240032112",
- "text_cn": "冷却时间减少1回合"
- },
- {
- "key": "skill_1240033111",
- "text_cn": "三技能:睡神沙人对敌方全体造成攻击力80%的伤害,使敌方目标各减少30%行动值,并有100%概率附加1回合【睡眠】状态。"
- },
- {
- "key": "skill_1240033112",
- "text_cn": "等级2 降低的行动值提升至25%"
- },
- {
- "key": "skill_1240033113",
- "text_cn": "等级3 效果触发几率提升至90%"
- },
- {
- "key": "skill_1240033114",
- "text_cn": "等级4 降低的行动值提升至30%"
- },
- {
- "key": "skill_1240033115",
- "text_cn": "等级5 效果触发几率提升至100%"
- },
- {
- "key": "skill_1240033116",
- "text_cn": "等级6 冷却时间减少1回合"
- },
- {
- "key": "skill_9240034111",
- "text_cn": "二技能:睡神沙人为我方全体各净化1个减益状态,并附加2回合【速度提升】和1回合【防御提升】状态。"
- },
- {
- "key": "skill_9240034112",
- "text_cn": "冷却时间减少1回合"
- },
- {
- "key": "skill_190011000",
- "text_cn": "我方全体防御增加30%"
- },
- {
- "key": "skill_190012000",
- "text_cn": "阿宝对敌方1个目标造成攻击力30%及防御力70%的伤害,并有75%概率对目标附加2回合【攻击下降】效果"
- },
- {
- "key": "skill_190013000",
- "text_cn": "每回合结束后,阿宝会进入【玄御】状态,持续1回合,在自身新回合开始时,对敌方全体造成防御力110%的伤害。【玄御】期间自身每次收到攻击时都会获得1层【玄御之佑】,但出于不可行动状态时解除【玄御】状态。自身的任意主动技能命中敌人触发暴击时降低此技能1回合冷却"
- },
- {
- "key": "skill_190014000",
- "text_cn": "阿宝对敌方1个目标造成攻击力80%及防御力140%的伤害,同时为自身附加【防御提升】【免疫】状态各2回合"
- },
- {
- "key": "skill_190015000",
- "text_cn": "我方全体效果抵抗增加40%"
- },
- {
- "key": "skill_190016000",
- "text_cn": "波比对敌方1个目标造成3次攻击力45%的伤害,有60%概率为自身附加2回合【免疫】状态。"
- },
- {
- "key": "skill_190017000",
- "text_cn": "波比清除我方所有减益状态,并平均分配我方生命值百分比,为我方全体附加2回合【攻击提升】状态"
- },
- {
- "key": "skill_190018000",
- "text_cn": "进入2回合【喜悦】状态,使我方全体收到伤害降低25%,且在每个队友行动去,为其驱散1个减益状态并回复其最大生命值26%的生命,效果持续期间自身无法行动。"
- },
- {
- "key": "skill_190011001",
- "text_cn": "伤害提升至100%"
- },
- {
- "key": "skill_190011002",
- "text_cn": "伤害提升至110%"
- },
- {
- "key": "skill_190011003",
- "text_cn": "伤害提升至120%"
- },
- {
- "key": "skill_190011004",
- "text_cn": "伤害提升至130%"
- },
- {
- "key": "skill_buff_390001001",
- "text_cn": "攻击提升"
- },
- {
- "key": "skill_buff_390001002",
- "text_cn": "防御提升"
- },
- {
- "key": "skill_buff_390001003",
- "text_cn": "速度提升"
- },
- {
- "key": "skill_buff_390001004",
- "text_cn": "暴击提升"
- },
- {
- "key": "skill_buff_390001005",
- "text_cn": "暴击抵抗"
- },
- {
- "key": "skill_buff_390001006",
- "text_cn": "叹息之力"
- },
- {
- "key": "skill_buff_390001007",
- "text_cn": "公牛之怒"
- },
- {
- "key": "skill_buff_390001008",
- "text_cn": "雷之庇佑"
- },
- {
- "key": "skill_buff_390002001",
- "text_cn": "攻击下降"
- },
- {
- "key": "skill_buff_390002002",
- "text_cn": "防御下降"
- },
- {
- "key": "skill_buff_390002003",
- "text_cn": "速度下降"
- },
- {
- "key": "skill_buff_390002004",
- "text_cn": "暴击下降"
- },
- {
- "key": "skill_buff_390002005",
- "text_cn": "烙印"
- },
- {
- "key": "skill_buff_390002006",
- "text_cn": "失手率提升"
- },
- {
- "key": "skill_buff_390003001",
- "text_cn": "无敌"
- },
- {
- "key": "skill_buff_390003002",
- "text_cn": "对峙"
- },
- {
- "key": "skill_buff_390003003",
- "text_cn": "免疫控制效果"
- },
- {
- "key": "skill_buff_390003004",
- "text_cn": "免除死亡"
- },
- {
- "key": "skill_buff_390004001",
- "text_cn": "眩晕"
- },
- {
- "key": "skill_buff_390004002",
- "text_cn": "冰冻"
- },
- {
- "key": "skill_buff_390004003",
- "text_cn": "禁疗"
- },
- {
- "key": "skill_buff_390004004",
- "text_cn": "石化"
- },
- {
- "key": "skill_buff_390004005",
- "text_cn": "沉默"
- },
- {
- "key": "skill_buff_390004006",
- "text_cn": "吞噬"
- },
- {
- "key": "skill_buff_390004007",
- "text_cn": "挑衅"
- },
- {
- "key": "skill_buff_390004008",
- "text_cn": "猫猫威慑"
- },
- {
- "key": "skill_buff_390005001",
- "text_cn": "炎阳"
- },
- {
- "key": "skill_buff_390005002",
- "text_cn": "无法获得减益"
- },
- {
- "key": "skill_buff_390005003",
- "text_cn": "不会失手"
- },
- {
- "key": "skill_buff_390006001",
- "text_cn": "无法获得增益"
- },
- {
- "key": "skill_buff_300192114",
- "text_cn": "猫猫推理"
- },
- {
- "key": "skill_buff_300192115",
- "text_cn": "护盾"
- },
- {
- "key": "skill_buffdes_390001001",
- "text_cn": "攻击提升40%"
- },
- {
- "key": "skill_buffdes_390001002",
- "text_cn": "防御提升60%"
- },
- {
- "key": "skill_buffdes_390001003",
- "text_cn": "速度提升30%"
- },
- {
- "key": "skill_buffdes_390001004",
- "text_cn": "暴击率提升30%"
- },
- {
- "key": "skill_buffdes_390001005",
- "text_cn": "受到暴击概率降低30%"
- },
- {
- "key": "skill_buffdes_390001006",
- "text_cn": "(无法驱散类状态)每层使自身攻击力提升5%,每10层使自身受到伤害降低3%。最高可叠加50层"
- },
- {
- "key": "skill_buffdes_390001007",
- "text_cn": "每层使自身基础防御提升10%,效果抵抗提升5%,最多可叠加10层。"
- },
- {
- "key": "skill_buffdes_390001008",
- "text_cn": "每次受到攻击提升20%的防御,最多叠加5层"
- },
- {
- "key": "skill_buffdes_390002001",
- "text_cn": "攻击下降40%"
- },
- {
- "key": "skill_buffdes_390002002",
- "text_cn": "防御下降60%"
- },
- {
- "key": "skill_buffdes_390002003",
- "text_cn": "速度下降30%"
- },
- {
- "key": "skill_buffdes_390002004",
- "text_cn": "暴击率下降30%"
- },
- {
- "key": "skill_buffdes_390002005",
- "text_cn": "被攻击时,受到的伤害提高25%"
- },
- {
- "key": "skill_buffdes_390002006",
- "text_cn": "失手率提升50%"
- },
- {
- "key": "skill_buffdes_390003001",
- "text_cn": "不会受到任何伤害"
- },
- {
- "key": "skill_buffdes_390003002",
- "text_cn": "生命最低降为1"
- },
- {
- "key": "skill_buffdes_390003003",
- "text_cn": "无法被附加任何控制效果"
- },
- {
- "key": "skill_buffdes_390003004",
- "text_cn": ""
- },
- {
- "key": "skill_buffdes_390004001",
- "text_cn": "无法进行任务行动"
- },
- {
- "key": "skill_buffdes_390004002",
- "text_cn": "无法进行任何行动"
- },
- {
- "key": "skill_buffdes_390004003",
- "text_cn": "无法恢复生命"
- },
- {
- "key": "skill_buffdes_390004004",
- "text_cn": "无法进行任何行动,不会随着回合到来降低技能冷却"
- },
- {
- "key": "skill_buffdes_390004005",
- "text_cn": "只能释放基础技能"
- },
- {
- "key": "skill_buffdes_390004006",
- "text_cn": "无法进行任何行动,无法被选中,无法被攻击,无法获得任何强化及弱化效果"
- },
- {
- "key": "skill_buffdes_390004007",
- "text_cn": "回合开始时,会被迫发起攻击,向附加状态者释放基础技能"
- },
- {
- "key": "skill_buffdes_390004008",
- "text_cn": "携带者阵亡时清除此状态,并对携带者一方全体造成崔佛(释放者)攻击力40%的效果附加伤害,每层使伤害系数提升40%,最多可叠加5层。"
- },
- {
- "key": "skill_buffdes_390005001",
- "text_cn": "(无法驱散类状态)可以增强炎阳灼射的威力。"
- },
- {
- "key": "skill_buffdes_390005002",
- "text_cn": "无法获得减益效果(不可驱散)(不配置标签)"
- },
- {
- "key": "skill_buffdes_390005003",
- "text_cn": "不会失手"
- },
- {
- "key": "skill_buffdes_390006001",
- "text_cn": "无法附加增益状态(不可驱散)(不配置标签)"
- },
- {
- "key": "skill_buffdes_300102103",
- "text_cn": "受到的所有伤害降低10%"
- },
- {
- "key": "skill_buffdes_300162105",
- "text_cn": ""
- },
- {
- "key": "skill_buffdes_300192114",
- "text_cn": "每层为崔佛(释放者)提供15%伤害减免"
- },
- {
- "key": "skill_buffdes_300192115",
- "text_cn": "增加护盾"
- },
- {
- "key": "hero_10001",
- "text_cn": "基础生命"
- },
- {
- "key": "hero_10002",
- "text_cn": "基础攻击"
- },
- {
- "key": "hero_10003",
- "text_cn": "基础防御"
- },
- {
- "key": "hero_10004",
- "text_cn": "基础速度"
- },
- {
- "key": "hero_10005",
- "text_cn": "基础暴击率"
- },
- {
- "key": "hero_10006",
- "text_cn": "基础暴击伤害"
- },
- {
- "key": "hero_10007",
- "text_cn": "基础效果命中"
- },
- {
- "key": "hero_10008",
- "text_cn": "基础效果抵抗"
- },
- {
- "key": "star_2",
- "text_cn": "优秀"
- },
- {
- "key": "star_3",
- "text_cn": "稀有"
- },
- {
- "key": "star_4",
- "text_cn": "史诗"
- },
- {
- "key": "star_5",
- "text_cn": "传说"
- },
- {
- "key": "color_1",
- "text_cn": "优秀"
- },
- {
- "key": "color_2",
- "text_cn": "稀有"
- },
- {
- "key": "color_3",
- "text_cn": "史诗"
- },
- {
- "key": "color_4",
- "text_cn": "传说"
- },
- {
- "key": "color_5",
- "text_cn": "不朽"
- },
- {
- "key": "color_6",
- "text_cn": "超凡"
- },
- {
- "key": "race_1",
- "text_cn": "灼热"
- },
- {
- "key": "race_2",
- "text_cn": "涌动"
- },
- {
- "key": "race_3",
- "text_cn": "呼啸"
- },
- {
- "key": "race_4",
- "text_cn": "闪耀"
- },
- {
- "key": "job_1",
- "text_cn": "输出"
- },
- {
- "key": "job_2",
- "text_cn": "防御"
- },
- {
- "key": "job_3",
- "text_cn": "辅助"
- },
- {
- "key": "job_4",
- "text_cn": "控制"
- },
- {
- "key": "job_5",
- "text_cn": "材料"
- },
- {
- "key": "itemdesc_10001",
- "text_cn": "使用后可以强化英雄"
- },
- {
- "key": "itemdesc_10002",
- "text_cn": "一块测试功能的石头,他可能是某个不能使用的活动道具"
- },
- {
- "key": "itemdesc_10003",
- "text_cn": "集齐50个碎片合成阿宝"
- },
- {
- "key": "itemdesc_10004",
- "text_cn": "可以在以下道具中选择任选1个"
- },
- {
- "key": "itemdesc_10005",
- "text_cn": "可以在以下道具中随机获取1个"
- },
- {
- "key": "itemdesc_10006",
- "text_cn": "打开后可以获得金币"
- },
- {
- "key": "itemdesc_10007",
- "text_cn": "使用后获得2小时金币收益"
- },
- {
- "key": "itemdesc_10008",
- "text_cn": "使用后获得2小时金币收益,但是他会在2分钟内消失"
- },
- {
- "key": "itemdesc_10009",
- "text_cn": "这本魔法书被强大的魔法封印了,通过第9999关后可以开启"
- },
- {
- "key": "itemdesc_10010",
- "text_cn": "似乎是某个失落文明的货币,暂时只有纪念意义"
- },
- {
- "key": "itemdesc_10011",
- "text_cn": "表针一动不动,也许有人可以修好它。"
- },
- {
- "key": "itemdesc_10012",
- "text_cn": "精致的木材,散发着淡淡的香气"
- },
- {
- "key": "itemdesc_10013",
- "text_cn": "把它放在背包里会带来好运"
- },
- {
- "key": "itemdesc_10014",
- "text_cn": "你登录了游戏就是冒险家,就会获得这个勋章"
- },
- {
- "key": "itemdesc_10015",
- "text_cn": "比幸运草更幸运"
- },
- {
- "key": "itemdesc_10016",
- "text_cn": "钻石是人造的,所以不能用来买商城的商品"
- },
- {
- "key": "itemname_10001",
- "text_cn": "初级经验精灵"
- },
- {
- "key": "itemname_10002",
- "text_cn": "石头"
- },
- {
- "key": "itemname_10003",
- "text_cn": "5星阿宝碎片"
- },
- {
- "key": "itemname_10004",
- "text_cn": "金币自选箱子"
- },
- {
- "key": "itemname_10005",
- "text_cn": "随机金币箱子"
- },
- {
- "key": "itemname_10006",
- "text_cn": "金币箱子"
- },
- {
- "key": "itemname_10007",
- "text_cn": "2小时金币"
- },
- {
- "key": "itemname_10008",
- "text_cn": "特殊2小时金币"
- },
- {
- "key": "itemname_10009",
- "text_cn": "被封印的魔法书"
- },
- {
- "key": "itemname_10010",
- "text_cn": "古代硬币"
- },
- {
- "key": "itemname_10011",
- "text_cn": "坏掉的钟表"
- },
- {
- "key": "itemname_10012",
- "text_cn": "木材"
- },
- {
- "key": "itemname_10013",
- "text_cn": "四叶草"
- },
- {
- "key": "itemname_10014",
- "text_cn": "冒险家勋章"
- },
- {
- "key": "itemname_10015",
- "text_cn": "猫猫护身符"
- },
- {
- "key": "itemname_10016",
- "text_cn": "人造钻石"
- },
- {
- "key": "server_10001",
- "text_cn": "本地测试服"
- },
- {
- "key": "server_10006",
- "text_cn": "乌鸦岭"
- },
- {
- "key": "server_10003",
- "text_cn": "和平谷"
- },
- {
- "key": "server_10004",
- "text_cn": "凤凰城"
- },
- {
- "key": "server_10005",
- "text_cn": "翡翠宫"
- },
- {
- "key": "skillname_190011000",
- "text_cn": "阿宝队长技"
- },
- {
- "key": "skillname_190012000",
- "text_cn": "熊猫拳"
- },
- {
- "key": "skillname_190013000",
- "text_cn": "太极一式"
- },
- {
- "key": "skillname_190011003",
- "text_cn": "太极零式"
- },
- {
- "key": "skillname_190014000",
- "text_cn": "波比队长技"
- },
- {
- "key": "skillname_190016000",
- "text_cn": "和谐音律"
- },
- {
- "key": "skillname_190017000",
- "text_cn": "欢悦之舞"
- },
- {
- "key": "skillname_190018000",
- "text_cn": "彩虹音符"
- },
- {
- "key": "tips_1001",
- "text_cn": "敬请期待"
- },
- {
- "key": "tips_1002",
- "text_cn": "暂未开放"
- },
- {
- "key": "tips_1003",
- "text_cn": "当前星球容量超载,请更换星球开启冒险"
- },
- {
- "key": "tips_1004",
- "text_cn": "当前世界正在建设中,请稍后进入"
- },
- {
- "key": "nonactivated",
- "text_cn": "未激活"
- },
- {
- "key": "activated",
- "text_cn": "已激活"
- },
- {
- "key": "opencond_prompt_10001",
- "text_cn": "通关2-26开启"
- },
- {
- "key": "opencond_prompt_10002",
- "text_cn": "暂不开启,敬请期待"
- },
- {
- "key": "opencond_prompt_10003",
- "text_cn": "开服第2天开启且通关2-14后开启"
- },
- {
- "key": "num_1001",
- "text_cn": "美食馆"
- },
- {
- "key": "num_1002",
- "text_cn": "招募"
- },
- {
- "key": "num_1003",
- "text_cn": "剧情副本"
- },
- {
- "key": "num_1004",
- "text_cn": "黑暗料理大赛"
- },
- {
- "key": "num_1005",
- "text_cn": "商队"
- },
- {
- "key": "num_1006",
- "text_cn": "藏书馆"
- },
- {
- "key": "num_1007",
- "text_cn": "篝火舞会"
- },
- {
- "key": "num_1008",
- "text_cn": "心魔塔"
- },
- {
- "key": "num_1009",
- "text_cn": "捕羊大赛"
- },
- {
- "key": "num_1010",
- "text_cn": "地下角斗场"
- },
- {
- "key": "num_1011",
- "text_cn": "武馆入口"
- },
- {
- "key": "num_1012",
- "text_cn": "五侠擂台"
- },
- {
- "key": "num_1013",
- "text_cn": "疯狂竞技赛"
- },
- {
- "key": "num_1014",
- "text_cn": "主线入口"
- },
- {
- "key": "num_1015",
- "text_cn": "维京远征"
- },
- {
- "key": "num_1016",
- "text_cn": "主题活动入口"
- },
- {
- "key": "num_1017",
- "text_cn": "美食馆"
- },
- {
- "key": "num_1018",
- "text_cn": "戈伯铁匠铺"
- },
- {
- "key": "num_1019",
- "text_cn": "聊天"
- },
- {
- "key": "num_1020",
- "text_cn": "世界"
- },
- {
- "key": "num_1021",
- "text_cn": "公会"
- },
- {
- "key": "num_1022",
- "text_cn": "私聊"
- },
- {
- "key": "num_1023",
- "text_cn": "跨服"
- },
- {
- "key": "num_1024",
- "text_cn": "系统"
- },
- {
- "key": "opencond_name_10001",
- "text_cn": "背包"
- },
- {
- "key": "opencond_name_10002",
- "text_cn": "购物"
- },
- {
- "key": "opencond_name_10003",
- "text_cn": "联盟"
- },
- {
- "key": "opencond_name_10004",
- "text_cn": "邮件"
- },
- {
- "key": "opencond_name_10005",
- "text_cn": "好友"
- },
- {
- "key": "opencond_name_10006",
- "text_cn": "卡牌"
- },
- {
- "key": "opencond_name_10007",
- "text_cn": "寝室"
- },
- {
- "key": "opencond_name_10008",
- "text_cn": "商城"
- },
- {
- "key": "opencond_name_10009",
- "text_cn": "活动"
- },
- {
- "key": "opencond_name_10010",
- "text_cn": "任务"
- },
- {
- "key": "hero_help_10001",
- "text_cn": "养成说明"
- },
- {
- "key": "hero_help_10002",
- "text_cn": "英雄升级"
- },
- {
- "key": "hero_help_10003",
- "text_cn": "英雄可通过出战或吸收经验精灵提升等级"
- },
- {
- "key": "hero_help_10004",
- "text_cn": "英雄升星"
- },
- {
- "key": "hero_help_10005",
- "text_cn": "不同星级的英雄有不同的等级上限,3星为30级,4星为40级,5星为50级,6星为60级。
英雄达到等级上限后,需要通过升星进一步提升等级。
升星后英雄的属性将得到提升。
升星精灵是英雄升星的优质素材"
- },
- {
- "key": "hero_help_10006",
- "text_cn": "技能升级"
- },
- {
- "key": "hero_help_10007",
- "text_cn": "使用稀有/史诗/传说品质的技能精灵可以提升对应品质英雄的技能等级,技能升级时将随机选择还可以继续升级的技能。
如果英雄的所有技能等级满级,将不能再使用技能精灵提升等级"
- }
-]
\ No newline at end of file
diff --git a/bin/json/LocalizeConfig_EN.json b/bin/json/LocalizeConfig_EN.json
deleted file mode 100644
index eda601765..000000000
--- a/bin/json/LocalizeConfig_EN.json
+++ /dev/null
@@ -1,4074 +0,0 @@
-[
- {
- "key": "ChineseSimplified",
- "text_en": "Simplified Chinese"
- },
- {
- "key": "ChineseTraditional",
- "text_en": "traditional Chinese"
- },
- {
- "key": "English",
- "text_en": "English"
- },
- {
- "key": "1",
- "text_en": "one"
- },
- {
- "key": "2",
- "text_en": "two"
- },
- {
- "key": "3",
- "text_en": "three"
- },
- {
- "key": "4",
- "text_en": "Four"
- },
- {
- "key": "5",
- "text_en": "five"
- },
- {
- "key": "6",
- "text_en": "six"
- },
- {
- "key": "7",
- "text_en": "seven"
- },
- {
- "key": "8",
- "text_en": "Eight"
- },
- {
- "key": "9",
- "text_en": "Nine"
- },
- {
- "key": "10",
- "text_en": "ten"
- },
- {
- "key": "Login",
- "text_en": "Log in"
- },
- {
- "key": "MomentDay1",
- "text_en": "{0} days ago"
- },
- {
- "key": "MomentDay2",
- "text_en": "{0} days left"
- },
- {
- "key": "MomentHour1",
- "text_en": "{0} hours ago"
- },
- {
- "key": "MomentHour2",
- "text_en": "{0} hours left"
- },
- {
- "key": "MomentMinutes1",
- "text_en": "{0} minutes ago"
- },
- {
- "key": "MomentMinutes2",
- "text_en": "{0} minutes left"
- },
- {
- "key": "MomentSeconds1",
- "text_en": "just"
- },
- {
- "key": "MomentSeconds2",
- "text_en": "within 1 minute"
- },
- {
- "key": "Tuijian",
- "text_en": "recommend"
- },
- {
- "key": "Juese",
- "text_en": "Role"
- },
- {
- "key": "hero_13001",
- "text_en": "sparkle"
- },
- {
- "key": "hero_13002",
- "text_en": "mr piranha"
- },
- {
- "key": "hero_13003",
- "text_en": "ah ah"
- },
- {
- "key": "hero_13004",
- "text_en": "lord farquad"
- },
- {
- "key": "hero_13005",
- "text_en": "greatly"
- },
- {
- "key": "hero_14001",
- "text_en": "Stoick"
- },
- {
- "key": "hero_14002",
- "text_en": "big dragon"
- },
- {
- "key": "hero_14003",
- "text_en": "Astrid"
- },
- {
- "key": "hero_14004",
- "text_en": "Claire Nunes"
- },
- {
- "key": "hero_14005",
- "text_en": "Master Crane"
- },
- {
- "key": "hero_14006",
- "text_en": "Blanche"
- },
- {
- "key": "hero_14007",
- "text_en": "Prince Grist"
- },
- {
- "key": "hero_15001",
- "text_en": "Jim Lake"
- },
- {
- "key": "hero_15002",
- "text_en": "captain"
- },
- {
- "key": "hero_15003",
- "text_en": "Hisardos"
- },
- {
- "key": "hero_15004",
- "text_en": "Xiaoou"
- },
- {
- "key": "hero_15005",
- "text_en": "Alex"
- },
- {
- "key": "hero_23001",
- "text_en": "Captain Smack"
- },
- {
- "key": "hero_23002",
- "text_en": "captain of the guard"
- },
- {
- "key": "hero_23003",
- "text_en": "Ted Templeton"
- },
- {
- "key": "hero_23004",
- "text_en": "Jim Prescott"
- },
- {
- "key": "hero_24001",
- "text_en": "sheriff"
- },
- {
- "key": "hero_24002",
- "text_en": "Tooth Fairy"
- },
- {
- "key": "hero_24003",
- "text_en": "Sleeping Sand Man"
- },
- {
- "key": "hero_24004",
- "text_en": "Bonnie Rabbit"
- },
- {
- "key": "hero_24005",
- "text_en": "golden monkey"
- },
- {
- "key": "hero_24006",
- "text_en": "Kyle"
- },
- {
- "key": "hero_24007",
- "text_en": "small money"
- },
- {
- "key": "hero_24008",
- "text_en": "Puffnut"
- },
- {
- "key": "hero_24009",
- "text_en": "Mr Cloud"
- },
- {
- "key": "hero_25001",
- "text_en": "Po"
- },
- {
- "key": "hero_25002",
- "text_en": "Mr Wolfe"
- },
- {
- "key": "hero_25003",
- "text_en": "Toothless"
- },
- {
- "key": "hero_25004",
- "text_en": "Poppy"
- },
- {
- "key": "hero_33001",
- "text_en": "Wu Ga"
- },
- {
- "key": "hero_33002",
- "text_en": "tank"
- },
- {
- "key": "hero_33003",
- "text_en": "Mr. Hood"
- },
- {
- "key": "hero_33004",
- "text_en": "Prue Granger"
- },
- {
- "key": "hero_33005",
- "text_en": "thick snot"
- },
- {
- "key": "hero_33006",
- "text_en": "Janice Templeton"
- },
- {
- "key": "hero_34001",
- "text_en": "sloppy donkey"
- },
- {
- "key": "hero_34002",
- "text_en": "Tim Templeton"
- },
- {
- "key": "hero_34003",
- "text_en": "Santa Claus"
- },
- {
- "key": "hero_34004",
- "text_en": "Guage"
- },
- {
- "key": "hero_34005",
- "text_en": "Walter Strickler"
- },
- {
- "key": "hero_34006",
- "text_en": "Frost Jack"
- },
- {
- "key": "hero_34007",
- "text_en": "Fiona"
- },
- {
- "key": "hero_34008",
- "text_en": "Huffnut"
- },
- {
- "key": "hero_35001",
- "text_en": "Master Shifu"
- },
- {
- "key": "hero_35002",
- "text_en": "Hiccup"
- },
- {
- "key": "hero_35003",
- "text_en": "dark"
- },
- {
- "key": "hero_35004",
- "text_en": "Diane Folston"
- },
- {
- "key": "hero_35005",
- "text_en": "Lucky Prescott"
- },
- {
- "key": "hero_35006",
- "text_en": "Mr. Ping"
- },
- {
- "key": "hero_43001",
- "text_en": "Abigail Stone"
- },
- {
- "key": "hero_43002",
- "text_en": "Professor Jam"
- },
- {
- "key": "hero_43003",
- "text_en": "Steve Pachuk"
- },
- {
- "key": "hero_43004",
- "text_en": "gingerbread Man"
- },
- {
- "key": "hero_43005",
- "text_en": "commander wahir"
- },
- {
- "key": "hero_43006",
- "text_en": "Bridget"
- },
- {
- "key": "hero_43007",
- "text_en": "Gober"
- },
- {
- "key": "hero_44001",
- "text_en": "belly shark"
- },
- {
- "key": "hero_44002",
- "text_en": "Mr Snake"
- },
- {
- "key": "hero_44003",
- "text_en": "Pinocchio"
- },
- {
- "key": "hero_44004",
- "text_en": "Azatalon"
- },
- {
- "key": "hero_44005",
- "text_en": "EEP"
- },
- {
- "key": "hero_44006",
- "text_en": "Tigress"
- },
- {
- "key": "hero_45001",
- "text_en": "master turtle"
- },
- {
- "key": "hero_45002",
- "text_en": "Merlin"
- },
- {
- "key": "hero_45003",
- "text_en": "cover"
- },
- {
- "key": "hero_45004",
- "text_en": "the cat that wears shoes"
- },
- {
- "key": "hero_43901",
- "text_en": "Rising Star Spirit"
- },
- {
- "key": "hero_42911",
- "text_en": "Junior Experience Wizard"
- },
- {
- "key": "hero_43911",
- "text_en": "Intermediate Experience Wizard"
- },
- {
- "key": "hero_44911",
- "text_en": "Advanced Experience Wizard"
- },
- {
- "key": "hero_43921",
- "text_en": "Skill Spirit Rare"
- },
- {
- "key": "hero_44921",
- "text_en": "Skill Elf Epic"
- },
- {
- "key": "hero_45921",
- "text_en": "Skill Spirit · Legend"
- },
- {
- "key": "hero_51001",
- "text_en": "Bo Bo star (new)"
- },
- {
- "key": "hero_51002",
- "text_en": "Erret's No. 1 (new)"
- },
- {
- "key": "hero_51003",
- "text_en": "Erret's No. 2 (new)"
- },
- {
- "key": "hero_51004",
- "text_en": "Jackal mobs (new)"
- },
- {
- "key": "hero_51005",
- "text_en": "Rhino Guard (New)"
- },
- {
- "key": "hero_51006",
- "text_en": "Captain Chantal du Bois No. 1 (new)"
- },
- {
- "key": "hero_51007",
- "text_en": "Captain Chantal du Bois No. 2 (new)"
- },
- {
- "key": "hero_51008",
- "text_en": "Captain Chantal du Bois No. 3 (new)"
- },
- {
- "key": "hero_51009",
- "text_en": "Captain Chantal du Bois's No. 4 (new)"
- },
- {
- "key": "hero_51010",
- "text_en": "Guard 1 (New)"
- },
- {
- "key": "hero_51011",
- "text_en": "Guard 2 (New)"
- },
- {
- "key": "hero_51012",
- "text_en": "Little Monkey (New)"
- },
- {
- "key": "hero_51013",
- "text_en": "troll la la (new)"
- },
- {
- "key": "hero_51014",
- "text_en": "Bogan Court Guard (New)"
- },
- {
- "key": "hero_53001",
- "text_en": "Eret (new)"
- },
- {
- "key": "hero_53002",
- "text_en": "Jackal Chief (New)"
- },
- {
- "key": "hero_53003",
- "text_en": "Porcupine Master (Emerald Zombie) (New)"
- },
- {
- "key": "hero_53004",
- "text_en": "Master Twin Badger (Emerald Zombie) (New)"
- },
- {
- "key": "hero_53005",
- "text_en": "Little Monkey Leader (New)"
- },
- {
- "key": "hero_53006",
- "text_en": "Troll Leader (New)"
- },
- {
- "key": "hero_55001",
- "text_en": "Captain Chantal du Bois"
- },
- {
- "key": "hero_55002",
- "text_en": "Hendrix (new)"
- },
- {
- "key": "hero_55003",
- "text_en": "Giant Gorilla Monster (New)"
- },
- {
- "key": "hero_55004",
- "text_en": "White Dragon King"
- },
- {
- "key": "hero_55005",
- "text_en": "Chef (New)"
- },
- {
- "key": "hero_55006",
- "text_en": "Dreg (new)"
- },
- {
- "key": "hero_55007",
- "text_en": "Morgana Troll"
- },
- {
- "key": "hero_55008",
- "text_en": "Morgana second order"
- },
- {
- "key": "hero_55009",
- "text_en": "A handsome bunch"
- },
- {
- "key": "hero_55010",
- "text_en": "Mr. Piranha's handsome batch"
- },
- {
- "key": "hero_55011",
- "text_en": "Ahhh handsome group"
- },
- {
- "key": "hero_55012",
- "text_en": "Lord Farquad's handsome batch"
- },
- {
- "key": "hero_55013",
- "text_en": "big handsome group"
- },
- {
- "key": "hero_55014",
- "text_en": "A group of handsome Stuick"
- },
- {
- "key": "hero_55015",
- "text_en": "A group of handsome dragons"
- },
- {
- "key": "hero_55016",
- "text_en": "A group of handsome Astrid"
- },
- {
- "key": "hero_55017",
- "text_en": "Claire Nunes handsome batch"
- },
- {
- "key": "hero_55018",
- "text_en": "A group of handsome master cranes"
- },
- {
- "key": "hero_55019",
- "text_en": "Blanche's handsome batch"
- },
- {
- "key": "hero_55020",
- "text_en": "Prince Grist's handsome batch"
- },
- {
- "key": "hero_55021",
- "text_en": "Jim Lake handsome batch"
- },
- {
- "key": "hero_55022",
- "text_en": "A handsome batch of captains"
- },
- {
- "key": "hero_55023",
- "text_en": "The handsome group of Hisardos"
- },
- {
- "key": "hero_55024",
- "text_en": "A group of Xiao Ou Shuai"
- },
- {
- "key": "hero_55025",
- "text_en": "Alex handsome group"
- },
- {
- "key": "hero_55026",
- "text_en": "Captain Smack's handsome batch"
- },
- {
- "key": "hero_55027",
- "text_en": "A handsome group of guard captains"
- },
- {
- "key": "hero_55028",
- "text_en": "Ted Templeton handsome batch"
- },
- {
- "key": "hero_55029",
- "text_en": "Jim Prescott handsome batch"
- },
- {
- "key": "hero_55030",
- "text_en": "A bunch of sheriffs"
- },
- {
- "key": "hero_55031",
- "text_en": "Tooth Fairy handsome batch"
- },
- {
- "key": "hero_55032",
- "text_en": "A handsome batch of sleeping god sand people"
- },
- {
- "key": "hero_55033",
- "text_en": "A batch of handsome Bonnie Rabbit"
- },
- {
- "key": "hero_55034",
- "text_en": "A group of handsome golden monkeys"
- },
- {
- "key": "hero_55035",
- "text_en": "Kyle's group"
- },
- {
- "key": "hero_55036",
- "text_en": "A bunch of handsome little money"
- },
- {
- "key": "hero_55037",
- "text_en": "The handsome group of Baofu Nat"
- },
- {
- "key": "hero_55038",
- "text_en": "Mr. Cloud is handsome"
- },
- {
- "key": "hero_55039",
- "text_en": "Po's personality is easy-going, innocent, active, playful, and childish, but it is these qualities that give him the potential to become a \"Dragon Hero\". Maybe heroes are not necessarily perfect, but they must be kind!"
- },
- {
- "key": "hero_55040",
- "text_en": "Mr. Wolfe's handsome batch"
- },
- {
- "key": "hero_55041",
- "text_en": "A bunch of toothless boys"
- },
- {
- "key": "hero_55042",
- "text_en": "Poppy is the princess of Elf City, she has magical powers and colorful hair, she is optimistic and positive, and loves to sing."
- },
- {
- "key": "hero_55043",
- "text_en": "Wu Ga handsome group"
- },
- {
- "key": "hero_55044",
- "text_en": "A bunch of tanks"
- },
- {
- "key": "hero_55045",
- "text_en": "Mr. Hood is handsome"
- },
- {
- "key": "hero_55046",
- "text_en": "Prue Granger's handsome batch"
- },
- {
- "key": "hero_55047",
- "text_en": "A bunch of snotty handsome"
- },
- {
- "key": "hero_55048",
- "text_en": "Janice Templeton handsome batch"
- },
- {
- "key": "hero_55049",
- "text_en": "A bunch of handsome donkeys"
- },
- {
- "key": "hero_55050",
- "text_en": "Tim Templeton handsome batch"
- },
- {
- "key": "hero_55051",
- "text_en": "Handsome Santa Claus"
- },
- {
- "key": "hero_55052",
- "text_en": "A bunch of handsome guys"
- },
- {
- "key": "hero_55053",
- "text_en": "Walter Strickler's handsome batch"
- },
- {
- "key": "hero_55054",
- "text_en": "Frost Jack handsome batch"
- },
- {
- "key": "hero_55055",
- "text_en": "Fiona's handsome batch"
- },
- {
- "key": "hero_55056",
- "text_en": "Huffnut's handsome batch"
- },
- {
- "key": "hero_55057",
- "text_en": "A handsome batch of masters"
- },
- {
- "key": "hero_55058",
- "text_en": "Hiccup handsome batch"
- },
- {
- "key": "hero_55059",
- "text_en": "A group of dark handsome"
- },
- {
- "key": "hero_55060",
- "text_en": "Diane Folston handsome batch"
- },
- {
- "key": "hero_55061",
- "text_en": "Lucky Prescott handsome batch"
- },
- {
- "key": "hero_55062",
- "text_en": "Mr. Ping's handsome group"
- },
- {
- "key": "hero_55063",
- "text_en": "Abigail Stone's handsome batch"
- },
- {
- "key": "hero_55064",
- "text_en": "A handsome batch of Professor Jam"
- },
- {
- "key": "hero_55065",
- "text_en": "Steve Pachuk handsome batch"
- },
- {
- "key": "hero_55066",
- "text_en": "Gingerbread man handsome batch"
- },
- {
- "key": "hero_55067",
- "text_en": "Commander Vahir's handsome group"
- },
- {
- "key": "hero_55068",
- "text_en": "Bridget's handsome batch"
- },
- {
- "key": "hero_55069",
- "text_en": "A group of handsome Gerber"
- },
- {
- "key": "hero_55070",
- "text_en": "A batch of handsome belly sharks"
- },
- {
- "key": "hero_55071",
- "text_en": "Handsome Mr. Snake"
- },
- {
- "key": "hero_55072",
- "text_en": "A group of handsome Pinocchio"
- },
- {
- "key": "hero_55073",
- "text_en": "A group of handsome Aizataren"
- },
- {
- "key": "hero_55074",
- "text_en": "A group of Xiao Yishuai"
- },
- {
- "key": "hero_55075",
- "text_en": "A group of handsome tigers"
- },
- {
- "key": "hero_55076",
- "text_en": "A group of handsome turtle masters"
- },
- {
- "key": "hero_55077",
- "text_en": "Merlin handsome group"
- },
- {
- "key": "hero_55078",
- "text_en": "Guy's group"
- },
- {
- "key": "hero_55079",
- "text_en": "A batch of handsome cats in boots"
- },
- {
- "key": "hero_55080",
- "text_en": "A handsome batch of rising star elves"
- },
- {
- "key": "hero_55081",
- "text_en": "A group of handsome elves with primary experience"
- },
- {
- "key": "hero_55082",
- "text_en": "group of handsome elves with intermediate experience"
- },
- {
- "key": "hero_55083",
- "text_en": "A group of handsome elves with advanced experience"
- },
- {
- "key": "hero_55084",
- "text_en": "Skill elves · Rare and handsome batch"
- },
- {
- "key": "hero_55085",
- "text_en": "A batch of skill elves · epic handsome"
- },
- {
- "key": "hero_55086",
- "text_en": "A batch of skill elves and legends"
- },
- {
- "key": "hero_55087",
- "text_en": "A batch of handsome bobo stars (new)"
- },
- {
- "key": "hero_55088",
- "text_en": "A batch of No. 1 (new) handsomes under Errett"
- },
- {
- "key": "hero_55089",
- "text_en": "A batch of No. 2 (new) handsomes under Errett"
- },
- {
- "key": "hero_55090",
- "text_en": "Jackal mobs (new) handsome batch"
- },
- {
- "key": "hero_55091",
- "text_en": "Rhino Guard (New) Handsome batch"
- },
- {
- "key": "hero_55092",
- "text_en": "A group of handsome No. 1 (newly added) under Captain Chantal Dubois"
- },
- {
- "key": "hero_55093",
- "text_en": "A group of handsome No. 2 (newly added) under Captain Chantal Dubois"
- },
- {
- "key": "hero_55094",
- "text_en": "A group of handsome No. 3 (newly added) under Captain Chantal Dubois"
- },
- {
- "key": "hero_55095",
- "text_en": "A group of handsome No. 4 (newly added) under Captain Chantal Dubois"
- },
- {
- "key": "hero_55096",
- "text_en": "Guard No. 1 (new) handsome batch"
- },
- {
- "key": "hero_55097",
- "text_en": "Guard No. 2 (new) handsome batch"
- },
- {
- "key": "hero_55098",
- "text_en": "A handsome batch of little monkeys (new)"
- },
- {
- "key": "hero_55099",
- "text_en": "Troll La La (new) A handsome batch"
- },
- {
- "key": "hero_55100",
- "text_en": "A group of handsome Bogan court guards (new)"
- },
- {
- "key": "hero_55101",
- "text_en": "Eret (newly added) handsome batch"
- },
- {
- "key": "hero_55102",
- "text_en": "A group of handsome jackal leaders (new)"
- },
- {
- "key": "hero_55103",
- "text_en": "Porcupine Master (Jade Zombie) (New) Handsome batch"
- },
- {
- "key": "hero_55104",
- "text_en": "Master Double Badger (Jade Zombie) (New) Handsome batch"
- },
- {
- "key": "hero_55105",
- "text_en": "A group of handsome little monkey leaders (new)"
- },
- {
- "key": "hero_55106",
- "text_en": "A group of handsome troll leaders (new)"
- },
- {
- "key": "hero_55107",
- "text_en": "A group of handsome captains of Chantal du Bois"
- },
- {
- "key": "hero_55108",
- "text_en": "Hendricks (new) handsome batch"
- },
- {
- "key": "hero_55109",
- "text_en": "A handsome batch of giant orangutan monsters (new)"
- },
- {
- "key": "hero_55110",
- "text_en": "A group of handsome white dragon king"
- },
- {
- "key": "hero_55111",
- "text_en": "Chef (new) handsome batch"
- },
- {
- "key": "hero_55112",
- "text_en": "Dreg (new) handsome batch"
- },
- {
- "key": "hero_55113",
- "text_en": "Morgana troll handsome group"
- },
- {
- "key": "hero_55114",
- "text_en": "A group of second-order handsome Morgana"
- },
- {
- "key": "equip_13001",
- "text_en": "arms"
- },
- {
- "key": "equip_13002",
- "text_en": "clothing"
- },
- {
- "key": "equip_13003",
- "text_en": "shoe"
- },
- {
- "key": "equip_13004",
- "text_en": "ring"
- },
- {
- "key": "equip_13005",
- "text_en": "time gem"
- },
- {
- "key": "equip_13006",
- "text_en": "space gem"
- },
- {
- "key": "equip_13007",
- "text_en": "arms"
- },
- {
- "key": "equip_13008",
- "text_en": "clothing"
- },
- {
- "key": "equip_13009",
- "text_en": "shoe"
- },
- {
- "key": "equip_13010",
- "text_en": "ring"
- },
- {
- "key": "equip_13011",
- "text_en": "time gem"
- },
- {
- "key": "equip_13012",
- "text_en": "space gem"
- },
- {
- "key": "equip_13013",
- "text_en": "arms"
- },
- {
- "key": "equip_13014",
- "text_en": "clothing"
- },
- {
- "key": "equip_13015",
- "text_en": "shoe"
- },
- {
- "key": "equip_13016",
- "text_en": "ring"
- },
- {
- "key": "equip_13017",
- "text_en": "time gem"
- },
- {
- "key": "equip_13018",
- "text_en": "space gem"
- },
- {
- "key": "equip_13019",
- "text_en": "arms"
- },
- {
- "key": "equip_13020",
- "text_en": "clothing"
- },
- {
- "key": "equip_13021",
- "text_en": "shoe"
- },
- {
- "key": "equip_13022",
- "text_en": "ring"
- },
- {
- "key": "equip_13023",
- "text_en": "time gem"
- },
- {
- "key": "equip_13024",
- "text_en": "space gem"
- },
- {
- "key": "equip_13025",
- "text_en": "arms"
- },
- {
- "key": "equip_13026",
- "text_en": "clothing"
- },
- {
- "key": "equip_13027",
- "text_en": "shoe"
- },
- {
- "key": "equip_13028",
- "text_en": "ring"
- },
- {
- "key": "equip_13029",
- "text_en": "time gem"
- },
- {
- "key": "equip_13030",
- "text_en": "space gem"
- },
- {
- "key": "equip_13031",
- "text_en": "arms"
- },
- {
- "key": "equip_13032",
- "text_en": "clothing"
- },
- {
- "key": "equip_13033",
- "text_en": "shoe"
- },
- {
- "key": "equip_13034",
- "text_en": "ring"
- },
- {
- "key": "equip_13035",
- "text_en": "time gem"
- },
- {
- "key": "equip_13036",
- "text_en": "space gem"
- },
- {
- "key": "equip_13037",
- "text_en": "arms"
- },
- {
- "key": "equip_13038",
- "text_en": "clothing"
- },
- {
- "key": "equip_13039",
- "text_en": "shoe"
- },
- {
- "key": "equip_13040",
- "text_en": "ring"
- },
- {
- "key": "equip_13041",
- "text_en": "time gem"
- },
- {
- "key": "equip_13042",
- "text_en": "space gem"
- },
- {
- "key": "equip_13043",
- "text_en": "arms"
- },
- {
- "key": "equip_13044",
- "text_en": "clothing"
- },
- {
- "key": "equip_13045",
- "text_en": "shoe"
- },
- {
- "key": "equip_13046",
- "text_en": "ring"
- },
- {
- "key": "equip_13047",
- "text_en": "time gem"
- },
- {
- "key": "equip_13048",
- "text_en": "space gem"
- },
- {
- "key": "equip_13049",
- "text_en": "arms"
- },
- {
- "key": "equip_13050",
- "text_en": "clothing"
- },
- {
- "key": "equip_13051",
- "text_en": "shoe"
- },
- {
- "key": "equip_13052",
- "text_en": "ring"
- },
- {
- "key": "equip_13053",
- "text_en": "time gem"
- },
- {
- "key": "equip_13054",
- "text_en": "space gem"
- },
- {
- "key": "equip_13055",
- "text_en": "arms"
- },
- {
- "key": "equip_13056",
- "text_en": "clothing"
- },
- {
- "key": "equip_13057",
- "text_en": "shoe"
- },
- {
- "key": "equip_13058",
- "text_en": "ring"
- },
- {
- "key": "equip_13059",
- "text_en": "time gem"
- },
- {
- "key": "equip_13060",
- "text_en": "space gem"
- },
- {
- "key": "equip_13061",
- "text_en": "arms"
- },
- {
- "key": "equip_13062",
- "text_en": "clothing"
- },
- {
- "key": "equip_13063",
- "text_en": "shoe"
- },
- {
- "key": "equip_13064",
- "text_en": "ring"
- },
- {
- "key": "equip_13065",
- "text_en": "time gem"
- },
- {
- "key": "equip_13066",
- "text_en": "space gem"
- },
- {
- "key": "equip_13067",
- "text_en": "arms"
- },
- {
- "key": "equip_13068",
- "text_en": "clothing"
- },
- {
- "key": "equip_13069",
- "text_en": "shoe"
- },
- {
- "key": "equip_13070",
- "text_en": "ring"
- },
- {
- "key": "equip_13071",
- "text_en": "time gem"
- },
- {
- "key": "equip_13072",
- "text_en": "space gem"
- },
- {
- "key": "equip_13073",
- "text_en": "arms"
- },
- {
- "key": "equip_13074",
- "text_en": "clothing"
- },
- {
- "key": "equip_13075",
- "text_en": "shoe"
- },
- {
- "key": "equip_13076",
- "text_en": "ring"
- },
- {
- "key": "equip_13077",
- "text_en": "time gem"
- },
- {
- "key": "equip_13078",
- "text_en": "space gem"
- },
- {
- "key": "equip_13079",
- "text_en": "arms"
- },
- {
- "key": "equip_13080",
- "text_en": "clothing"
- },
- {
- "key": "equip_13081",
- "text_en": "shoe"
- },
- {
- "key": "equip_13082",
- "text_en": "ring"
- },
- {
- "key": "equip_13083",
- "text_en": "time gem"
- },
- {
- "key": "equip_13084",
- "text_en": "space gem"
- },
- {
- "key": "equip_13085",
- "text_en": "arms"
- },
- {
- "key": "equip_13086",
- "text_en": "clothing"
- },
- {
- "key": "equip_13087",
- "text_en": "shoe"
- },
- {
- "key": "equip_13088",
- "text_en": "ring"
- },
- {
- "key": "equip_13089",
- "text_en": "time gem"
- },
- {
- "key": "equip_13090",
- "text_en": "space gem"
- },
- {
- "key": "equip_13091",
- "text_en": "arms"
- },
- {
- "key": "equip_13092",
- "text_en": "clothing"
- },
- {
- "key": "equip_13093",
- "text_en": "shoe"
- },
- {
- "key": "equip_13094",
- "text_en": "ring"
- },
- {
- "key": "equip_13095",
- "text_en": "time gem"
- },
- {
- "key": "equip_13096",
- "text_en": "space gem"
- },
- {
- "key": "equip_13097",
- "text_en": "arms"
- },
- {
- "key": "equip_13098",
- "text_en": "clothing"
- },
- {
- "key": "equip_13099",
- "text_en": "shoe"
- },
- {
- "key": "equip_13100",
- "text_en": "ring"
- },
- {
- "key": "equip_13101",
- "text_en": "time gem"
- },
- {
- "key": "equip_13102",
- "text_en": "space gem"
- },
- {
- "key": "equip_13103",
- "text_en": "arms"
- },
- {
- "key": "equip_13104",
- "text_en": "clothing"
- },
- {
- "key": "equip_13105",
- "text_en": "shoe"
- },
- {
- "key": "equip_13106",
- "text_en": "ring"
- },
- {
- "key": "equip_13107",
- "text_en": "time gem"
- },
- {
- "key": "equip_13108",
- "text_en": "space gem"
- },
- {
- "key": "equip_13109",
- "text_en": "arms"
- },
- {
- "key": "equip_13110",
- "text_en": "clothing"
- },
- {
- "key": "equip_13111",
- "text_en": "shoe"
- },
- {
- "key": "equip_13112",
- "text_en": "ring"
- },
- {
- "key": "equip_13113",
- "text_en": "time gem"
- },
- {
- "key": "equip_13114",
- "text_en": "space gem"
- },
- {
- "key": "equip_13115",
- "text_en": "arms"
- },
- {
- "key": "equip_13116",
- "text_en": "clothing"
- },
- {
- "key": "equip_13117",
- "text_en": "shoe"
- },
- {
- "key": "equip_13118",
- "text_en": "ring"
- },
- {
- "key": "equip_13119",
- "text_en": "time gem"
- },
- {
- "key": "equip_13120",
- "text_en": "space gem"
- },
- {
- "key": "equip_13121",
- "text_en": "arms"
- },
- {
- "key": "equip_13122",
- "text_en": "clothing"
- },
- {
- "key": "equip_13123",
- "text_en": "shoe"
- },
- {
- "key": "equip_13124",
- "text_en": "ring"
- },
- {
- "key": "equip_13125",
- "text_en": "time gem"
- },
- {
- "key": "equip_13126",
- "text_en": "space gem"
- },
- {
- "key": "equip_13127",
- "text_en": "arms"
- },
- {
- "key": "equip_13128",
- "text_en": "clothing"
- },
- {
- "key": "equip_13129",
- "text_en": "shoe"
- },
- {
- "key": "equip_13130",
- "text_en": "ring"
- },
- {
- "key": "equip_13131",
- "text_en": "time gem"
- },
- {
- "key": "equip_13132",
- "text_en": "space gem"
- },
- {
- "key": "equip_13133",
- "text_en": "arms"
- },
- {
- "key": "equip_13134",
- "text_en": "clothing"
- },
- {
- "key": "equip_13135",
- "text_en": "shoe"
- },
- {
- "key": "equip_13136",
- "text_en": "ring"
- },
- {
- "key": "equip_13137",
- "text_en": "time gem"
- },
- {
- "key": "equip_13138",
- "text_en": "space gem"
- },
- {
- "key": "equip_13139",
- "text_en": "arms"
- },
- {
- "key": "equip_13140",
- "text_en": "clothing"
- },
- {
- "key": "equip_13141",
- "text_en": "shoe"
- },
- {
- "key": "equip_13142",
- "text_en": "ring"
- },
- {
- "key": "equip_13143",
- "text_en": "time gem"
- },
- {
- "key": "equip_13144",
- "text_en": "space gem"
- },
- {
- "key": "equip_13145",
- "text_en": "arms"
- },
- {
- "key": "equip_13146",
- "text_en": "clothing"
- },
- {
- "key": "equip_13147",
- "text_en": "shoe"
- },
- {
- "key": "equip_13148",
- "text_en": "ring"
- },
- {
- "key": "equip_13149",
- "text_en": "time gem"
- },
- {
- "key": "equip_13150",
- "text_en": "space gem"
- },
- {
- "key": "equip_13151",
- "text_en": "arms"
- },
- {
- "key": "equip_13152",
- "text_en": "clothing"
- },
- {
- "key": "equip_13153",
- "text_en": "shoe"
- },
- {
- "key": "equip_13154",
- "text_en": "ring"
- },
- {
- "key": "equip_13155",
- "text_en": "time gem"
- },
- {
- "key": "equip_13156",
- "text_en": "space gem"
- },
- {
- "key": "equip_13157",
- "text_en": "arms"
- },
- {
- "key": "equip_13158",
- "text_en": "clothing"
- },
- {
- "key": "equip_13159",
- "text_en": "shoe"
- },
- {
- "key": "equip_13160",
- "text_en": "ring"
- },
- {
- "key": "equip_13161",
- "text_en": "time gem"
- },
- {
- "key": "equip_13162",
- "text_en": "space gem"
- },
- {
- "key": "equip_13163",
- "text_en": "arms"
- },
- {
- "key": "equip_13164",
- "text_en": "clothing"
- },
- {
- "key": "equip_13165",
- "text_en": "shoe"
- },
- {
- "key": "equip_13166",
- "text_en": "ring"
- },
- {
- "key": "equip_13167",
- "text_en": "time gem"
- },
- {
- "key": "equip_13168",
- "text_en": "space gem"
- },
- {
- "key": "equip_13169",
- "text_en": "arms"
- },
- {
- "key": "equip_13170",
- "text_en": "clothing"
- },
- {
- "key": "equip_13171",
- "text_en": "shoe"
- },
- {
- "key": "equip_13172",
- "text_en": "ring"
- },
- {
- "key": "equip_13173",
- "text_en": "time gem"
- },
- {
- "key": "equip_13174",
- "text_en": "space gem"
- },
- {
- "key": "equip_13175",
- "text_en": "arms"
- },
- {
- "key": "equip_13176",
- "text_en": "clothing"
- },
- {
- "key": "equip_13177",
- "text_en": "shoe"
- },
- {
- "key": "equip_13178",
- "text_en": "ring"
- },
- {
- "key": "equip_13179",
- "text_en": "time gem"
- },
- {
- "key": "equip_13180",
- "text_en": "space gem"
- },
- {
- "key": "equip_13181",
- "text_en": "arms"
- },
- {
- "key": "equip_13182",
- "text_en": "clothing"
- },
- {
- "key": "equip_13183",
- "text_en": "shoe"
- },
- {
- "key": "equip_13184",
- "text_en": "ring"
- },
- {
- "key": "equip_13185",
- "text_en": "time gem"
- },
- {
- "key": "equip_13186",
- "text_en": "space gem"
- },
- {
- "key": "equip_13187",
- "text_en": "arms"
- },
- {
- "key": "equip_13188",
- "text_en": "clothing"
- },
- {
- "key": "equip_13189",
- "text_en": "shoe"
- },
- {
- "key": "equip_13190",
- "text_en": "ring"
- },
- {
- "key": "equip_13191",
- "text_en": "time gem"
- },
- {
- "key": "equip_13192",
- "text_en": "space gem"
- },
- {
- "key": "equip_13193",
- "text_en": "arms"
- },
- {
- "key": "equip_13194",
- "text_en": "clothing"
- },
- {
- "key": "equip_13195",
- "text_en": "shoe"
- },
- {
- "key": "equip_13196",
- "text_en": "ring"
- },
- {
- "key": "equip_13197",
- "text_en": "time gem"
- },
- {
- "key": "equip_13198",
- "text_en": "space gem"
- },
- {
- "key": "equip_13199",
- "text_en": "arms"
- },
- {
- "key": "equip_13200",
- "text_en": "clothing"
- },
- {
- "key": "equip_13201",
- "text_en": "shoe"
- },
- {
- "key": "equip_13202",
- "text_en": "ring"
- },
- {
- "key": "equip_13203",
- "text_en": "time gem"
- },
- {
- "key": "equip_13204",
- "text_en": "ring"
- },
- {
- "key": "equip_13205",
- "text_en": "arms"
- },
- {
- "key": "equip_13206",
- "text_en": "clothing"
- },
- {
- "key": "equip_13207",
- "text_en": "shoe"
- },
- {
- "key": "equip_13208",
- "text_en": "ring"
- },
- {
- "key": "equip_13209",
- "text_en": "arms"
- },
- {
- "key": "equip_13210",
- "text_en": "clothing"
- },
- {
- "key": "equip_13211",
- "text_en": "shoe"
- },
- {
- "key": "equip_13212",
- "text_en": "ring"
- },
- {
- "key": "equip_13213",
- "text_en": "Dragon suit"
- },
- {
- "key": "equip_13214",
- "text_en": "full moon suit"
- },
- {
- "key": "equip_13215",
- "text_en": "Critical strike rate +20%"
- },
- {
- "key": "equip_13216",
- "text_en": "inactivated"
- },
- {
- "key": "equip_13217",
- "text_en": "activated"
- },
- {
- "key": "suit_equip_10001",
- "text_en": "Beginners set"
- },
- {
- "key": "item_10001",
- "text_en": "1 faction awakening material"
- },
- {
- "key": "item_10002",
- "text_en": "1 faction awakening material"
- },
- {
- "key": "item_10003",
- "text_en": "1 faction awakening material"
- },
- {
- "key": "item_10011",
- "text_en": "2 faction awakening materials"
- },
- {
- "key": "item_10012",
- "text_en": "2 faction awakening materials"
- },
- {
- "key": "item_10013",
- "text_en": "2 faction awakening materials"
- },
- {
- "key": "item_10021",
- "text_en": "3 faction awakening materials"
- },
- {
- "key": "item_10022",
- "text_en": "3 faction awakening materials"
- },
- {
- "key": "item_10023",
- "text_en": "3 faction awakening materials"
- },
- {
- "key": "item_10031",
- "text_en": "4 faction awakening materials"
- },
- {
- "key": "item_10032",
- "text_en": "4 faction awakening materials"
- },
- {
- "key": "item_10033",
- "text_en": "4 faction awakening materials"
- },
- {
- "key": "mainline_title_10001",
- "text_en": "Chapter 1: Kung Fu World"
- },
- {
- "key": "mainline_title_10002",
- "text_en": "Chapter 2: Exercise Room"
- },
- {
- "key": "mainline_title_10003",
- "text_en": "Chapter 3: The Wolf Attacks"
- },
- {
- "key": "mainline_title_10004",
- "text_en": "Chapter 4: Master Turtle"
- },
- {
- "key": "mainline_title_10005",
- "text_en": "Chapter 4: The Wolf Attacks"
- },
- {
- "key": "mainline_title_10006",
- "text_en": "Chapter 5: Master Turtle"
- },
- {
- "key": "mainline_title_10007",
- "text_en": "Chapter 5: The Wolf Attacks"
- },
- {
- "key": "mainline_title_10008",
- "text_en": "Chapter 6: Master Turtle"
- },
- {
- "key": "mainline_title_10009",
- "text_en": "Chapter 6: The Wolf Attacks"
- },
- {
- "key": "mainline_title_10010",
- "text_en": "Chapter 7: Master Turtle"
- },
- {
- "key": "mainline_title_10011",
- "text_en": "Chapter 7: The Wolf Attacks"
- },
- {
- "key": "mainline_title_10012",
- "text_en": "Chapter 8: Master Turtle"
- },
- {
- "key": "mainline_title_10013",
- "text_en": "Chapter 8: The Great Wolf Attacks"
- },
- {
- "key": "mainline_title_10014",
- "text_en": "Chapter 9: Master Turtle"
- },
- {
- "key": "mainline_title_10015",
- "text_en": "Chapter 9: The Wolf Attacks"
- },
- {
- "key": "mainline_title_10016",
- "text_en": "Chapter 10: Master Turtle"
- },
- {
- "key": "mainline_title_10017",
- "text_en": "Chapter 10: The Great Wolf Attacks"
- },
- {
- "key": "mainline_title_10018",
- "text_en": "Chapter 11: Master Turtle"
- },
- {
- "key": "mainline_title_10019",
- "text_en": "Chapter 11: The Great Wolf Attacks"
- },
- {
- "key": "mainline_title_10020",
- "text_en": "Chapter 12: Master Turtle"
- },
- {
- "key": "mainline_title_10021",
- "text_en": "Chapter 12: The Great Wolf Attacks"
- },
- {
- "key": "mainline_title_10022",
- "text_en": "Chapter 13: Master Turtle"
- },
- {
- "key": "mainline_title_10023",
- "text_en": "Chapter 13: The Great Wolf Attacks"
- },
- {
- "key": "mainline_title_10024",
- "text_en": "Chapter 14: Master Turtle"
- },
- {
- "key": "mainline_title_10025",
- "text_en": "Chapter 14: The Great Wolf Attacks"
- },
- {
- "key": "mainline_title_10026",
- "text_en": "Chapter 15: Master Turtle"
- },
- {
- "key": "mainline_title_10027",
- "text_en": "Chapter 15: The Great Wolf Attacks"
- },
- {
- "key": "mainline_title_10028",
- "text_en": "Chapter 16: Master Turtle"
- },
- {
- "key": "mainline_title_10029",
- "text_en": "Chapter 16: The Great Wolf Attacks"
- },
- {
- "key": "mainline_title_10030",
- "text_en": "Chapter 17: Master Turtle"
- },
- {
- "key": "mainline_title_10031",
- "text_en": "Chapter 17: The Great Wolf Attacks"
- },
- {
- "key": "mainline_title_10032",
- "text_en": "Chapter 18: Master Turtle"
- },
- {
- "key": "mainline_title_10033",
- "text_en": "Chapter 18: The Great Wolf Attacks"
- },
- {
- "key": "mainline_title_10034",
- "text_en": "Chapter 19: Master Turtle"
- },
- {
- "key": "mainline_title_10035",
- "text_en": "Chapter 19: The Great Wolf Attacks"
- },
- {
- "key": "mainline_title_10036",
- "text_en": "Chapter 20: Master Turtle"
- },
- {
- "key": "mainline_title_10037",
- "text_en": "Chapter 20: The Great Wolf Attacks"
- },
- {
- "key": "mainline_title_10038",
- "text_en": "Chapter 21: Master Turtle"
- },
- {
- "key": "mainline_title_10039",
- "text_en": "Chapter 21: The Great Wolf Attacks"
- },
- {
- "key": "mainline_title_10040",
- "text_en": "Chapter 22: Master Turtle"
- },
- {
- "key": "mainline_title_10041",
- "text_en": "Chapter 22: The Great Wolf Attacks"
- },
- {
- "key": "mainline_title_10042",
- "text_en": "Chapter 23: Master Turtle"
- },
- {
- "key": "mainline_title_10043",
- "text_en": "Chapter 23: The Great Wolf Attacks"
- },
- {
- "key": "mainline_title_10044",
- "text_en": "Chapter 24: Master Turtle"
- },
- {
- "key": "mainline_title_10045",
- "text_en": "Chapter 24: The Great Wolf Attacks"
- },
- {
- "key": "mainline_title_10046",
- "text_en": "Chapter 25: Master Turtle"
- },
- {
- "key": "mainline_title_10047",
- "text_en": "Chapter 25: The Great Wolf Attacks"
- },
- {
- "key": "mainline_title_10048",
- "text_en": "Chapter 26: Master Turtle"
- },
- {
- "key": "mainline_title_10049",
- "text_en": "Chapter 26: The Great Wolf Attacks"
- },
- {
- "key": "mainline_title_10050",
- "text_en": "Chapter 27: Master Turtle"
- },
- {
- "key": "mainline_title_10051",
- "text_en": "Chapter 27: The Great Wolf Attacks"
- },
- {
- "key": "mainline_title_10052",
- "text_en": "Chapter 28: Master Turtle"
- },
- {
- "key": "mainline_title_10053",
- "text_en": "Chapter 28: The Great Wolf Attacks"
- },
- {
- "key": "mainline_title_10054",
- "text_en": "Chapter 29: Master Turtle"
- },
- {
- "key": "mainline_title_10055",
- "text_en": "Chapter 29: The Great Wolf Attacks"
- },
- {
- "key": "mainline_title_10056",
- "text_en": "Chapter 30: Master Turtle"
- },
- {
- "key": "mainline_title_10057",
- "text_en": "Chapter 30: The Great Wolf Attacks"
- },
- {
- "key": "mainline_title_10058",
- "text_en": "Chapter 31: Master Turtle"
- },
- {
- "key": "mainline_title_10059",
- "text_en": "Chapter 31: The Great Wolf Attacks"
- },
- {
- "key": "mainline_title_10060",
- "text_en": "Chapter 32: Master Turtle"
- },
- {
- "key": "mainline_title_10061",
- "text_en": "Chapter 32: The Great Wolf Attacks"
- },
- {
- "key": "mainline_title_10062",
- "text_en": "Chapter 33: Master Turtle"
- },
- {
- "key": "mainline_title_10063",
- "text_en": "Chapter 33: The Great Wolf Attacks"
- },
- {
- "key": "mainline_title_10064",
- "text_en": "Chapter 34: Master Turtle"
- },
- {
- "key": "mainline_title_10065",
- "text_en": "Chapter 34: The Great Wolf Attacks"
- },
- {
- "key": "mainline_title_10066",
- "text_en": "Chapter 35: Master Turtle"
- },
- {
- "key": "mainline_title_10067",
- "text_en": "Chapter 35: The Great Wolf Attacks"
- },
- {
- "key": "mainline_title_10068",
- "text_en": "Chapter 36: Master Turtle"
- },
- {
- "key": "mainline_title_10069",
- "text_en": "Chapter 36: The Great Wolf Attacks"
- },
- {
- "key": "mainline_title_10070",
- "text_en": "Chapter 37: Master Turtle"
- },
- {
- "key": "mainline_desc_10001",
- "text_en": "The story takes place in ancient China a long time ago, and it starts with a giant panda who likes to roll around and roll around. It is said that Panda Bao is an apprentice in a noodle shop. Although he is clumsy, he can barely get a job."
- },
- {
- "key": "mainline_desc_10002",
- "text_en": "Don't look at the peaceful and prosperous scene of the \"Peace Valley\" where A Bao is located, it is actually a feng shui treasure land of Crouching Tiger Hidden Dragon. Not to mention that the five masters of kung fu are all sitting here, and there is even a master-level master living here in seclusion."
- },
- {
- "key": "mainline_desc_10003",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10004",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10005",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10006",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10007",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10008",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10009",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10010",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10011",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10012",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10013",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10014",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10015",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10016",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10017",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10018",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10019",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10020",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10021",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10022",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10023",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10024",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10025",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10026",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10027",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10028",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10029",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10030",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10031",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10032",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10033",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10034",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10035",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10036",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10037",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10038",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10039",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10040",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10041",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10042",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10043",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10044",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10045",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10046",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10047",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10048",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10049",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10050",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10051",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10052",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10053",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10054",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10055",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10056",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10057",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10058",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10059",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10060",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10061",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10062",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10063",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10064",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10065",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10066",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10067",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10068",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10069",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_desc_10070",
- "text_en": "However, the winner of a special martial arts competition has to represent the \"Peace Valley\" to drive out the evil dragon forever. A Bao, who knows nothing, has gone through a series of misunderstandings and won the election. Stunned everyone."
- },
- {
- "key": "mainline_text_10001",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10002",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10003",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10004",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10005",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10006",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10007",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10008",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10009",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10010",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10011",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10012",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10013",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10014",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10015",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10016",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10017",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10018",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10019",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10020",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10021",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10022",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10023",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10024",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10025",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10026",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10027",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10028",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10029",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10030",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10031",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10032",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10033",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10034",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10035",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10036",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10037",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10038",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10039",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10040",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10041",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10042",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10043",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10044",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10045",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10046",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10047",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10048",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10049",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10050",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10051",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10052",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10053",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10054",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10055",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10056",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10057",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10058",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10059",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10060",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10061",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10062",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10063",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10064",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10065",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10066",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10067",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10068",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10069",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_text_10070",
- "text_en": "Gold 5000"
- },
- {
- "key": "mainline_name_10001",
- "text_en": "Chapter 1"
- },
- {
- "key": "mainline_name_10002",
- "text_en": "Chapter 2"
- },
- {
- "key": "mainline_name_10003",
- "text_en": "Chapter 3"
- },
- {
- "key": "mainline_name_10004",
- "text_en": "Chapter 4"
- },
- {
- "key": "mainline_name_10005",
- "text_en": "Chapter 5"
- },
- {
- "key": "mainline_name_10006",
- "text_en": "Chapter 6"
- },
- {
- "key": "mainline_name_10007",
- "text_en": "Chapter 7"
- },
- {
- "key": "mainline_name_10008",
- "text_en": "Chapter 8"
- },
- {
- "key": "mainline_name_10009",
- "text_en": "Chapter 9"
- },
- {
- "key": "mainline_name_10010",
- "text_en": "Chapter 10"
- },
- {
- "key": "mainline_name_10011",
- "text_en": "Chapter 11"
- },
- {
- "key": "mainline_name_10012",
- "text_en": "Chapter 12"
- },
- {
- "key": "mainline_name_10013",
- "text_en": "Chapter 13"
- },
- {
- "key": "mainline_name_10014",
- "text_en": "Chapter 14"
- },
- {
- "key": "mainline_name_10015",
- "text_en": "Chapter 15"
- },
- {
- "key": "mainline_name_10016",
- "text_en": "Chapter 16"
- },
- {
- "key": "mainline_name_10017",
- "text_en": "Chapter 17"
- },
- {
- "key": "mainline_name_10018",
- "text_en": "Chapter 18"
- },
- {
- "key": "mainline_name_10019",
- "text_en": "Chapter 19"
- },
- {
- "key": "mainline_name_10020",
- "text_en": "Chapter 20"
- },
- {
- "key": "mainline_name_10021",
- "text_en": "Chapter 21"
- },
- {
- "key": "mainline_name_10022",
- "text_en": "Chapter 22"
- },
- {
- "key": "mainline_name_10023",
- "text_en": "Chapter 23"
- },
- {
- "key": "mainline_name_10024",
- "text_en": "Chapter 24"
- },
- {
- "key": "mainline_name_10025",
- "text_en": "Chapter 25"
- },
- {
- "key": "mainline_name_10026",
- "text_en": "Chapter 26"
- },
- {
- "key": "mainline_name_10027",
- "text_en": "Chapter 27"
- },
- {
- "key": "mainline_name_10028",
- "text_en": "Chapter 28"
- },
- {
- "key": "mainline_name_10029",
- "text_en": "Chapter 29"
- },
- {
- "key": "mainline_name_10030",
- "text_en": "Chapter 30"
- },
- {
- "key": "mainline_name_10031",
- "text_en": "Chapter 31"
- },
- {
- "key": "mainline_name_10032",
- "text_en": "Chapter 32"
- },
- {
- "key": "mainline_name_10033",
- "text_en": "Chapter 33"
- },
- {
- "key": "mainline_name_10034",
- "text_en": "Chapter 34"
- },
- {
- "key": "mainline_name_10035",
- "text_en": "Chapter 35"
- },
- {
- "key": "mainline_name_10036",
- "text_en": "Chapter 36"
- },
- {
- "key": "mainline_name_10037",
- "text_en": "Chapter 37"
- },
- {
- "key": "mainline_name_10038",
- "text_en": "Chapter 38"
- },
- {
- "key": "mainline_name_10039",
- "text_en": "Chapter 39"
- },
- {
- "key": "mainline_name_10040",
- "text_en": "Chapter 40"
- },
- {
- "key": "mainline_name_10041",
- "text_en": "Chapter 41"
- },
- {
- "key": "mainline_name_10042",
- "text_en": "Chapter 42"
- },
- {
- "key": "mainline_name_10043",
- "text_en": "Chapter 43"
- },
- {
- "key": "mainline_name_10044",
- "text_en": "Chapter 44"
- },
- {
- "key": "mainline_name_10045",
- "text_en": "Chapter 45"
- },
- {
- "key": "mainline_name_10046",
- "text_en": "Chapter 46"
- },
- {
- "key": "mainline_name_10047",
- "text_en": "Chapter 47"
- },
- {
- "key": "mainline_name_10048",
- "text_en": "Chapter 48"
- },
- {
- "key": "mainline_name_10049",
- "text_en": "Chapter 49"
- },
- {
- "key": "mainline_name_10050",
- "text_en": "Chapter 50"
- },
- {
- "key": "mainline_name_10051",
- "text_en": "Chapter 51"
- },
- {
- "key": "mainline_name_10052",
- "text_en": "Chapter 52"
- },
- {
- "key": "mainline_name_10053",
- "text_en": "Chapter 53"
- },
- {
- "key": "mainline_name_10054",
- "text_en": "Chapter 54"
- },
- {
- "key": "mainline_name_10055",
- "text_en": "Chapter 55"
- },
- {
- "key": "mainline_name_10056",
- "text_en": "Chapter 56"
- },
- {
- "key": "mainline_name_10057",
- "text_en": "Chapter 57"
- },
- {
- "key": "mainline_name_10058",
- "text_en": "Chapter 58"
- },
- {
- "key": "mainline_name_10059",
- "text_en": "Chapter 59"
- },
- {
- "key": "mainline_name_10060",
- "text_en": "Chapter 60"
- },
- {
- "key": "mainline_name_10061",
- "text_en": "Chapter 61"
- },
- {
- "key": "mainline_name_10062",
- "text_en": "Chapter 62"
- },
- {
- "key": "mainline_name_10063",
- "text_en": "Chapter 63"
- },
- {
- "key": "mainline_name_10064",
- "text_en": "Chapter 64"
- },
- {
- "key": "mainline_name_10065",
- "text_en": "Chapter 65"
- },
- {
- "key": "mainline_name_10066",
- "text_en": "Chapter 66"
- },
- {
- "key": "mainline_name_10067",
- "text_en": "Chapter 67"
- },
- {
- "key": "mainline_name_10068",
- "text_en": "Chapter 68"
- },
- {
- "key": "mainline_name_10069",
- "text_en": "Chapter 69"
- },
- {
- "key": "mainline_name_10070",
- "text_en": "Chapter 70"
- },
- {
- "key": "mainline_name_10071",
- "text_en": "The story takes place in ancient China a long time ago, and it starts with a giant panda who likes to roll around and roll around."
- },
- {
- "key": "equip_10001",
- "text_en": "ordinary"
- },
- {
- "key": "equip_10002",
- "text_en": "rare"
- },
- {
- "key": "equip_10003",
- "text_en": "excellence"
- },
- {
- "key": "equip_10004",
- "text_en": "excellent"
- },
- {
- "key": "equip_10005",
- "text_en": "Perfect"
- },
- {
- "key": "skillname_125004011",
- "text_en": ""
- },
- {
- "key": "skillname_125004111",
- "text_en": ""
- },
- {
- "key": "skillname_125004211",
- "text_en": ""
- },
- {
- "key": "skillname_125004311",
- "text_en": ""
- },
- {
- "key": "skillname_925004211",
- "text_en": ""
- },
- {
- "key": "skillname_135002011",
- "text_en": ""
- },
- {
- "key": "skillname_135002111",
- "text_en": ""
- },
- {
- "key": "skillname_135002211",
- "text_en": ""
- },
- {
- "key": "skillname_135002311",
- "text_en": ""
- },
- {
- "key": "skillname_935002321",
- "text_en": ""
- },
- {
- "key": "skillname_124003011",
- "text_en": ""
- },
- {
- "key": "skillname_124003111",
- "text_en": ""
- },
- {
- "key": "skillname_124003211",
- "text_en": ""
- },
- {
- "key": "skillname_124003311",
- "text_en": ""
- },
- {
- "key": "skillname_924003411",
- "text_en": ""
- },
- {
- "key": "skill_1250040111",
- "text_en": ""
- },
- {
- "key": "skill_1250041111",
- "text_en": ""
- },
- {
- "key": "skill_1250041112",
- "text_en": ""
- },
- {
- "key": "skill_1250041113",
- "text_en": ""
- },
- {
- "key": "skill_1250041114",
- "text_en": ""
- },
- {
- "key": "skill_1250041115",
- "text_en": ""
- },
- {
- "key": "skill_1250041116",
- "text_en": ""
- },
- {
- "key": "skill_1250042111",
- "text_en": ""
- },
- {
- "key": "skill_1250042112",
- "text_en": ""
- },
- {
- "key": "skill_1250042113",
- "text_en": ""
- },
- {
- "key": "skill_1250043111",
- "text_en": ""
- },
- {
- "key": "skill_1250043112",
- "text_en": ""
- },
- {
- "key": "skill_1250043113",
- "text_en": ""
- },
- {
- "key": "skill_1250043114",
- "text_en": ""
- },
- {
- "key": "skill_1250043115",
- "text_en": ""
- },
- {
- "key": "skill_1350020111",
- "text_en": ""
- },
- {
- "key": "skill_1350021111",
- "text_en": ""
- },
- {
- "key": "skill_1350021112",
- "text_en": ""
- },
- {
- "key": "skill_1350021113",
- "text_en": ""
- },
- {
- "key": "skill_1350021114",
- "text_en": ""
- },
- {
- "key": "skill_1350021115",
- "text_en": ""
- },
- {
- "key": "skill_1350021116",
- "text_en": ""
- },
- {
- "key": "skill_1350022111",
- "text_en": ""
- },
- {
- "key": "skill_1350023111",
- "text_en": ""
- },
- {
- "key": "skill_1350023112",
- "text_en": ""
- },
- {
- "key": "skill_1350023113",
- "text_en": ""
- },
- {
- "key": "skill_1350023114",
- "text_en": ""
- },
- {
- "key": "skill_1350023115",
- "text_en": ""
- },
- {
- "key": "skill_1350023116",
- "text_en": ""
- },
- {
- "key": "skill_9350023211",
- "text_en": ""
- },
- {
- "key": "skill_9350023212",
- "text_en": ""
- },
- {
- "key": "skill_9350023213",
- "text_en": ""
- },
- {
- "key": "skill_9350023214",
- "text_en": ""
- },
- {
- "key": "skill_9350023215",
- "text_en": ""
- },
- {
- "key": "skill_9350023216",
- "text_en": ""
- },
- {
- "key": "skill_1240030111",
- "text_en": ""
- },
- {
- "key": "skill_1240031111",
- "text_en": ""
- },
- {
- "key": "skill_1240031112",
- "text_en": ""
- },
- {
- "key": "skill_1240031113",
- "text_en": ""
- },
- {
- "key": "skill_1240031114",
- "text_en": ""
- },
- {
- "key": "skill_1240031115",
- "text_en": ""
- },
- {
- "key": "skill_1240032111",
- "text_en": ""
- },
- {
- "key": "skill_1240032112",
- "text_en": ""
- },
- {
- "key": "skill_1240033111",
- "text_en": ""
- },
- {
- "key": "skill_1240033112",
- "text_en": ""
- },
- {
- "key": "skill_1240033113",
- "text_en": ""
- },
- {
- "key": "skill_1240033114",
- "text_en": ""
- },
- {
- "key": "skill_1240033115",
- "text_en": ""
- },
- {
- "key": "skill_1240033116",
- "text_en": ""
- },
- {
- "key": "skill_9240034111",
- "text_en": ""
- },
- {
- "key": "skill_9240034112",
- "text_en": ""
- },
- {
- "key": "skill_190011000",
- "text_en": "Increases all allies' defense by 30%"
- },
- {
- "key": "skill_190012000",
- "text_en": "Po deals 30% ATK and 70% DEF damage to 1 enemy target, and has a 75% chance to apply [Attack Down] effect to the target for 2 turns"
- },
- {
- "key": "skill_190013000",
- "text_en": "After each round, Po will enter the [Xuan Yu] state, which lasts for 1 round. At the beginning of his new round, he will deal damage equal to 110% of his defense to all enemies. During the period of [Xuan Yu], every time you receive an attack, you will get 1 layer of [Xuan Yu's Blessing], but when you are in an immobile state, the [Xuan Yu] state will be released. When any of your own active skills hits the enemy and triggers a critical strike, the cooldown of this skill is reduced for 1 turn"
- },
- {
- "key": "skill_190014000",
- "text_en": "Po deals 80% ATK and 140% DEF damage to 1 enemy target, and adds [Defense Up] and [Immune] to himself for 2 turns each"
- },
- {
- "key": "skill_190015000",
- "text_en": "Increases the resistance of all allies by 40%"
- },
- {
- "key": "skill_190016000",
- "text_en": "Poppy deals 45% ATK of damage 3 times to 1 enemy target, and has a 60% chance to add [Immunity] status to himself for 2 turns"
- },
- {
- "key": "skill_190017000",
- "text_en": "Poppy clears all allies' debuffs, and evenly distributes the percentage of allies' health, adding 2 rounds of [Attack Boost] to all allies"
- },
- {
- "key": "skill_190018000",
- "text_en": "Enter the state of [Joy] for 2 rounds, reduce the damage received by all allies by 25%, and when each teammate moves, dispel 1 debuff and restore 26% of their maximum health, while the effect lasts. unable to act"
- },
- {
- "key": "skill_190011001",
- "text_en": "Damage increased to 100%"
- },
- {
- "key": "skill_190011002",
- "text_en": "Damage increased to 110%"
- },
- {
- "key": "skill_190011003",
- "text_en": "Damage increased to 120%"
- },
- {
- "key": "skill_190011004",
- "text_en": "Damage increased to 130%"
- },
- {
- "key": "skill_buff_390001001",
- "text_en": ""
- },
- {
- "key": "skill_buff_390001002",
- "text_en": ""
- },
- {
- "key": "skill_buff_390001003",
- "text_en": ""
- },
- {
- "key": "skill_buff_390001004",
- "text_en": ""
- },
- {
- "key": "skill_buff_390001005",
- "text_en": ""
- },
- {
- "key": "skill_buff_390001006",
- "text_en": ""
- },
- {
- "key": "skill_buff_390001007",
- "text_en": ""
- },
- {
- "key": "skill_buff_390001008",
- "text_en": ""
- },
- {
- "key": "skill_buff_390002001",
- "text_en": ""
- },
- {
- "key": "skill_buff_390002002",
- "text_en": ""
- },
- {
- "key": "skill_buff_390002003",
- "text_en": ""
- },
- {
- "key": "skill_buff_390002004",
- "text_en": ""
- },
- {
- "key": "skill_buff_390002005",
- "text_en": ""
- },
- {
- "key": "skill_buff_390002006",
- "text_en": ""
- },
- {
- "key": "skill_buff_390003001",
- "text_en": ""
- },
- {
- "key": "skill_buff_390003002",
- "text_en": ""
- },
- {
- "key": "skill_buff_390003003",
- "text_en": ""
- },
- {
- "key": "skill_buff_390003004",
- "text_en": ""
- },
- {
- "key": "skill_buff_390004001",
- "text_en": ""
- },
- {
- "key": "skill_buff_390004002",
- "text_en": ""
- },
- {
- "key": "skill_buff_390004003",
- "text_en": ""
- },
- {
- "key": "skill_buff_390004004",
- "text_en": ""
- },
- {
- "key": "skill_buff_390004005",
- "text_en": ""
- },
- {
- "key": "skill_buff_390004006",
- "text_en": ""
- },
- {
- "key": "skill_buff_390004007",
- "text_en": ""
- },
- {
- "key": "skill_buff_390004008",
- "text_en": ""
- },
- {
- "key": "skill_buff_390005001",
- "text_en": ""
- },
- {
- "key": "skill_buff_390005002",
- "text_en": ""
- },
- {
- "key": "skill_buff_390005003",
- "text_en": ""
- },
- {
- "key": "skill_buff_390006001",
- "text_en": ""
- },
- {
- "key": "skill_buff_300192114",
- "text_en": ""
- },
- {
- "key": "skill_buff_300192115",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_390001001",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_390001002",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_390001003",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_390001004",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_390001005",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_390001006",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_390001007",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_390001008",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_390002001",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_390002002",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_390002003",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_390002004",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_390002005",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_390002006",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_390003001",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_390003002",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_390003003",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_390003004",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_390004001",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_390004002",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_390004003",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_390004004",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_390004005",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_390004006",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_390004007",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_390004008",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_390005001",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_390005002",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_390005003",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_390006001",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_300102103",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_300162105",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_300192114",
- "text_en": ""
- },
- {
- "key": "skill_buffdes_300192115",
- "text_en": ""
- },
- {
- "key": "hero_10001",
- "text_en": "basic life"
- },
- {
- "key": "hero_10002",
- "text_en": "basic attack"
- },
- {
- "key": "hero_10003",
- "text_en": "basic defense"
- },
- {
- "key": "hero_10004",
- "text_en": "base speed"
- },
- {
- "key": "hero_10005",
- "text_en": "base crit chance"
- },
- {
- "key": "hero_10006",
- "text_en": "base crit damage"
- },
- {
- "key": "hero_10007",
- "text_en": "base effect hit"
- },
- {
- "key": "hero_10008",
- "text_en": "base effect resistance"
- },
- {
- "key": "star_2",
- "text_en": "Excellent"
- },
- {
- "key": "star_3",
- "text_en": "Rare"
- },
- {
- "key": "star_4",
- "text_en": "Epic"
- },
- {
- "key": "star_5",
- "text_en": "Legend"
- },
- {
- "key": "color_1",
- "text_en": "Excellent"
- },
- {
- "key": "color_2",
- "text_en": "Rare"
- },
- {
- "key": "color_3",
- "text_en": "Epic"
- },
- {
- "key": "color_4",
- "text_en": "Legend"
- },
- {
- "key": "color_5",
- "text_en": "Eternity"
- },
- {
- "key": "color_6",
- "text_en": "Uncommon"
- },
- {
- "key": "race_1",
- "text_en": "Hot"
- },
- {
- "key": "race_2",
- "text_en": "Surge"
- },
- {
- "key": "race_3",
- "text_en": "Whistling"
- },
- {
- "key": "race_4",
- "text_en": "Shine"
- },
- {
- "key": "job_1",
- "text_en": "Output"
- },
- {
- "key": "job_2",
- "text_en": "Defense"
- },
- {
- "key": "job_3",
- "text_en": "Auxiliary"
- },
- {
- "key": "job_4",
- "text_en": "Control"
- },
- {
- "key": "job_5",
- "text_en": "Material"
- },
- {
- "key": "itemdesc_10001",
- "text_en": "Heroes can be strengthened after use"
- },
- {
- "key": "itemdesc_10002",
- "text_en": "A stone for testing functionality, it may be an unusable activity item"
- },
- {
- "key": "itemdesc_10003",
- "text_en": "Collect all 50 fragments to make Po"
- },
- {
- "key": "itemdesc_10004",
- "text_en": "You can choose any one of the following items"
- },
- {
- "key": "itemdesc_10005",
- "text_en": "You can get 1 of the following items at random"
- },
- {
- "key": "itemdesc_10006",
- "text_en": "Open to get gold coins"
- },
- {
- "key": "itemdesc_10007",
- "text_en": "Get 2 hours of gold coins after use"
- },
- {
- "key": "itemdesc_10008",
- "text_en": "Gain 2 hours of gold after use, but he will disappear within 2 minutes"
- },
- {
- "key": "itemdesc_10009",
- "text_en": "This magic book is sealed by powerful magic, it can be opened after passing level 9999"
- },
- {
- "key": "itemdesc_10010",
- "text_en": "It seems to be the currency of a lost civilization, for the time being, it has only commemorative significance"
- },
- {
- "key": "itemdesc_10011",
- "text_en": "The hands don't move, maybe someone can fix it."
- },
- {
- "key": "itemdesc_10012",
- "text_en": "Delicate wood with a light aroma"
- },
- {
- "key": "itemdesc_10013",
- "text_en": "Carrying it in a backpack will bring good luck"
- },
- {
- "key": "itemdesc_10014",
- "text_en": "You are an adventurer when you log in to the game, and you will get this medal"
- },
- {
- "key": "itemdesc_10015",
- "text_en": "luckier than clover"
- },
- {
- "key": "itemdesc_10016",
- "text_en": "Diamonds are man-made, so they cannot be used to buy items in the mall"
- },
- {
- "key": "itemname_10001",
- "text_en": "Junior Experience Wizard"
- },
- {
- "key": "itemname_10002",
- "text_en": "Stone"
- },
- {
- "key": "itemname_10003",
- "text_en": "5 Star Po Shard"
- },
- {
- "key": "itemname_10004",
- "text_en": "Gold Coin Choice Box"
- },
- {
- "key": "itemname_10005",
- "text_en": "Random Gold Coin Box"
- },
- {
- "key": "itemname_10006",
- "text_en": "Gold coin box"
- },
- {
- "key": "itemname_10007",
- "text_en": "2 hour coins"
- },
- {
- "key": "itemname_10008",
- "text_en": "Special 2 Hour Coins"
- },
- {
- "key": "itemname_10009",
- "text_en": "Sealed magic book"
- },
- {
- "key": "itemname_10010",
- "text_en": "Ancient coins"
- },
- {
- "key": "itemname_10011",
- "text_en": "Broken clock"
- },
- {
- "key": "itemname_10012",
- "text_en": "Wood"
- },
- {
- "key": "itemname_10013",
- "text_en": "Four-leaf clover"
- },
- {
- "key": "itemname_10014",
- "text_en": "Adventurer's Medal"
- },
- {
- "key": "itemname_10015",
- "text_en": "Cat cat amulet"
- },
- {
- "key": "itemname_10016",
- "text_en": "Artificial diamond"
- },
- {
- "key": "server_10001",
- "text_en": "Local test server"
- },
- {
- "key": "server_10006",
- "text_en": "Raven Point"
- },
- {
- "key": "server_10003",
- "text_en": "The Valley of Peace"
- },
- {
- "key": "server_10004",
- "text_en": "Gongmen"
- },
- {
- "key": "server_10005",
- "text_en": "Jade Palace"
- },
- {
- "key": "skillname_190011000",
- "text_en": "Captain Po's skills"
- },
- {
- "key": "skillname_190012000",
- "text_en": "Panda fist"
- },
- {
- "key": "skillname_190013000",
- "text_en": "Tai Chi Form"
- },
- {
- "key": "skillname_190011003",
- "text_en": "Tai Chi Zero"
- },
- {
- "key": "skillname_190014000",
- "text_en": "Captain Poppy's skills"
- },
- {
- "key": "skillname_190016000",
- "text_en": "Harmony"
- },
- {
- "key": "skillname_190017000",
- "text_en": "Dance of joy"
- },
- {
- "key": "skillname_190018000",
- "text_en": "Rainbow note"
- },
- {
- "key": "tips_1001",
- "text_en": "Stay tuned"
- },
- {
- "key": "tips_1002",
- "text_en": "Not open yet"
- },
- {
- "key": "tips_1003",
- "text_en": "The current planet capacity is overloaded, please change the planet and start the adventure"
- },
- {
- "key": "tips_1004",
- "text_en": "At present, the world is under construction. Please enter later"
- },
- {
- "key": "nonactivated",
- "text_en": "Nonactivated"
- },
- {
- "key": "activated",
- "text_en": "Activated"
- },
- {
- "key": "opencond_prompt_10001",
- "text_en": ""
- },
- {
- "key": "opencond_prompt_10002",
- "text_en": ""
- },
- {
- "key": "opencond_prompt_10003",
- "text_en": ""
- },
- {
- "key": "num_1001",
- "text_en": "GOURMET RESTAURANT"
- },
- {
- "key": "num_1002",
- "text_en": "SUMMON"
- },
- {
- "key": "num_1003",
- "text_en": "STORY"
- },
- {
- "key": "num_1004",
- "text_en": "Dark Cuisine"
- },
- {
- "key": "num_1005",
- "text_en": "CARAVAN"
- },
- {
- "key": "num_1006",
- "text_en": "LIBRARY"
- },
- {
- "key": "num_1007",
- "text_en": "BONEFIRE DANCE"
- },
- {
- "key": "num_1008",
- "text_en": "GUARD"
- },
- {
- "key": "num_1009",
- "text_en": "Catch It!"
- },
- {
- "key": "num_1010",
- "text_en": "ARENA"
- },
- {
- "key": "num_1011",
- "text_en": "KUNG FU"
- },
- {
- "key": "num_1012",
- "text_en": "TRAIN"
- },
- {
- "key": "num_1013",
- "text_en": "CRAZY"
- },
- {
- "key": "num_1014",
- "text_en": "ADVENTURE"
- },
- {
- "key": "num_1015",
- "text_en": "EXPEDITION"
- },
- {
- "key": "num_1016",
- "text_en": "FESTIVAL"
- },
- {
- "key": "num_1017",
- "text_en": "GOURMET RESTAURANT"
- },
- {
- "key": "num_1018",
- "text_en": "GOBER BACKSMITH SHOP"
- },
- {
- "key": "num_1019",
- "text_en": "chat"
- },
- {
- "key": "num_1020",
- "text_en": "World"
- },
- {
- "key": "num_1021",
- "text_en": "Guild"
- },
- {
- "key": "num_1022",
- "text_en": "Private"
- },
- {
- "key": "num_1023",
- "text_en": "Public"
- },
- {
- "key": "num_1024",
- "text_en": "System"
- },
- {
- "key": "opencond_name_10001",
- "text_en": "INVENTORY"
- },
- {
- "key": "opencond_name_10002",
- "text_en": "SHOP"
- },
- {
- "key": "opencond_name_10003",
- "text_en": "UNION"
- },
- {
- "key": "opencond_name_10004",
- "text_en": "MAIL"
- },
- {
- "key": "opencond_name_10005",
- "text_en": "SOCIAL"
- },
- {
- "key": "opencond_name_10006",
- "text_en": "CARDS"
- },
- {
- "key": "opencond_name_10007",
- "text_en": "DORM"
- },
- {
- "key": "opencond_name_10008",
- "text_en": "CHARGE"
- },
- {
- "key": "opencond_name_10009",
- "text_en": "EVENT"
- },
- {
- "key": "opencond_name_10010",
- "text_en": "MISSIONS"
- },
- {
- "key": "hero_help_10001",
- "text_en": "养成说明"
- },
- {
- "key": "hero_help_10002",
- "text_en": "英雄升级"
- },
- {
- "key": "hero_help_10003",
- "text_en": "英雄可通过出战或吸收经验精灵提升等级"
- },
- {
- "key": "hero_help_10004",
- "text_en": "英雄升星"
- },
- {
- "key": "hero_help_10005",
- "text_en": "不同星级的英雄有不同的等级上限,3星为30级,4星为40级,5星为50级,6星为60级。
英雄达到等级上限后,需要通过升星进一步提升等级。
升星后英雄的属性将得到提升。
升星精灵是英雄升星的优质素材"
- },
- {
- "key": "hero_help_10006",
- "text_en": "技能升级"
- },
- {
- "key": "hero_help_10007",
- "text_en": "使用稀有/史诗/传说品质的技能精灵可以提升对应品质英雄的技能等级,技能升级时将随机选择还可以继续升级的技能。
如果英雄的所有技能等级满级,将不能再使用技能精灵提升等级"
- }
-]
\ No newline at end of file
diff --git a/bin/json/LocalizeConfig_TW.json b/bin/json/LocalizeConfig_TW.json
deleted file mode 100644
index 7a84c4420..000000000
--- a/bin/json/LocalizeConfig_TW.json
+++ /dev/null
@@ -1,4074 +0,0 @@
-[
- {
- "key": "ChineseSimplified",
- "text_tw": ""
- },
- {
- "key": "ChineseTraditional",
- "text_tw": ""
- },
- {
- "key": "English",
- "text_tw": ""
- },
- {
- "key": "1",
- "text_tw": "one"
- },
- {
- "key": "2",
- "text_tw": "two"
- },
- {
- "key": "3",
- "text_tw": "three"
- },
- {
- "key": "4",
- "text_tw": "four"
- },
- {
- "key": "5",
- "text_tw": "five"
- },
- {
- "key": "6",
- "text_tw": "six"
- },
- {
- "key": "7",
- "text_tw": "seven"
- },
- {
- "key": "8",
- "text_tw": "eight"
- },
- {
- "key": "9",
- "text_tw": "nine"
- },
- {
- "key": "10",
- "text_tw": "ten"
- },
- {
- "key": "Login",
- "text_tw": "Login"
- },
- {
- "key": "MomentDay1",
- "text_tw": ""
- },
- {
- "key": "MomentDay2",
- "text_tw": ""
- },
- {
- "key": "MomentHour1",
- "text_tw": ""
- },
- {
- "key": "MomentHour2",
- "text_tw": ""
- },
- {
- "key": "MomentMinutes1",
- "text_tw": ""
- },
- {
- "key": "MomentMinutes2",
- "text_tw": ""
- },
- {
- "key": "MomentSeconds1",
- "text_tw": ""
- },
- {
- "key": "MomentSeconds2",
- "text_tw": ""
- },
- {
- "key": "Tuijian",
- "text_tw": "Hot"
- },
- {
- "key": "Juese",
- "text_tw": "Role"
- },
- {
- "key": "hero_13001",
- "text_tw": "shining"
- },
- {
- "key": "hero_13002",
- "text_tw": "食人鱼先生"
- },
- {
- "key": "hero_13003",
- "text_tw": "啊啊"
- },
- {
- "key": "hero_13004",
- "text_tw": "法夸德勋爵"
- },
- {
- "key": "hero_13005",
- "text_tw": "大大"
- },
- {
- "key": "hero_14001",
- "text_tw": "史图依克"
- },
- {
- "key": "hero_14002",
- "text_tw": "大龙"
- },
- {
- "key": "hero_14003",
- "text_tw": "亚丝翠"
- },
- {
- "key": "hero_14004",
- "text_tw": "克莱尔·努涅斯"
- },
- {
- "key": "hero_14005",
- "text_tw": "鹤大师"
- },
- {
- "key": "hero_14006",
- "text_tw": "布兰奇"
- },
- {
- "key": "hero_14007",
- "text_tw": "格里斯特王子"
- },
- {
- "key": "hero_15001",
- "text_tw": "吉姆·莱克"
- },
- {
- "key": "hero_15002",
- "text_tw": "船长"
- },
- {
- "key": "hero_15003",
- "text_tw": "希沙窦斯"
- },
- {
- "key": "hero_15004",
- "text_tw": "小欧"
- },
- {
- "key": "hero_15005",
- "text_tw": "亚力克斯"
- },
- {
- "key": "hero_23001",
- "text_tw": "斯梅克船长"
- },
- {
- "key": "hero_23002",
- "text_tw": "警卫队长"
- },
- {
- "key": "hero_23003",
- "text_tw": "泰德·邓普顿"
- },
- {
- "key": "hero_23004",
- "text_tw": "吉姆·普雷斯科特"
- },
- {
- "key": "hero_24001",
- "text_tw": "警长"
- },
- {
- "key": "hero_24002",
- "text_tw": "牙仙"
- },
- {
- "key": "hero_24003",
- "text_tw": "睡神沙人"
- },
- {
- "key": "hero_24004",
- "text_tw": "邦尼兔"
- },
- {
- "key": "hero_24005",
- "text_tw": "金猴"
- },
- {
- "key": "hero_24006",
- "text_tw": "凯尔"
- },
- {
- "key": "hero_24007",
- "text_tw": "小钱"
- },
- {
- "key": "hero_24008",
- "text_tw": "暴芙那特"
- },
- {
- "key": "hero_24009",
- "text_tw": "云朵先生"
- },
- {
- "key": "hero_25001",
- "text_tw": "阿宝"
- },
- {
- "key": "hero_25002",
- "text_tw": "沃尔夫先生"
- },
- {
- "key": "hero_25003",
- "text_tw": "无牙仔"
- },
- {
- "key": "hero_25004",
- "text_tw": "波比"
- },
- {
- "key": "hero_33001",
- "text_tw": "巫嘎"
- },
- {
- "key": "hero_33002",
- "text_tw": "坦克"
- },
- {
- "key": "hero_33003",
- "text_tw": "胡德先生"
- },
- {
- "key": "hero_33004",
- "text_tw": "普鲁格兰杰"
- },
- {
- "key": "hero_33005",
- "text_tw": "鼻涕粗"
- },
- {
- "key": "hero_33006",
- "text_tw": "珍妮丝·邓普顿"
- },
- {
- "key": "hero_34001",
- "text_tw": "贫嘴驴"
- },
- {
- "key": "hero_34002",
- "text_tw": "蒂姆·邓普顿"
- },
- {
- "key": "hero_34003",
- "text_tw": "圣诞老人"
- },
- {
- "key": "hero_34004",
- "text_tw": "瓜哥"
- },
- {
- "key": "hero_34005",
- "text_tw": "沃尔特·史翠克勒"
- },
- {
- "key": "hero_34006",
- "text_tw": "冰霜杰克"
- },
- {
- "key": "hero_34007",
- "text_tw": "菲奥娜"
- },
- {
- "key": "hero_34008",
- "text_tw": "悍夫那特"
- },
- {
- "key": "hero_35001",
- "text_tw": "师父"
- },
- {
- "key": "hero_35002",
- "text_tw": "希卡普"
- },
- {
- "key": "hero_35003",
- "text_tw": "漆黑"
- },
- {
- "key": "hero_35004",
- "text_tw": "黛安·福克斯顿"
- },
- {
- "key": "hero_35005",
- "text_tw": "幸运·普雷斯科特"
- },
- {
- "key": "hero_35006",
- "text_tw": "平先生"
- },
- {
- "key": "hero_43001",
- "text_tw": "阿比盖尔·斯通"
- },
- {
- "key": "hero_43002",
- "text_tw": "果酱教授"
- },
- {
- "key": "hero_43003",
- "text_tw": "史蒂夫·帕丘克"
- },
- {
- "key": "hero_43004",
- "text_tw": "姜饼人"
- },
- {
- "key": "hero_43005",
- "text_tw": "瓦希尔指挥官"
- },
- {
- "key": "hero_43006",
- "text_tw": "布里奇特"
- },
- {
- "key": "hero_43007",
- "text_tw": "戈伯"
- },
- {
- "key": "hero_44001",
- "text_tw": "美肚鲨"
- },
- {
- "key": "hero_44002",
- "text_tw": "蛇先生"
- },
- {
- "key": "hero_44003",
- "text_tw": "匹诺曹"
- },
- {
- "key": "hero_44004",
- "text_tw": "艾札塔伦"
- },
- {
- "key": "hero_44005",
- "text_tw": "小伊"
- },
- {
- "key": "hero_44006",
- "text_tw": "悍娇虎"
- },
- {
- "key": "hero_45001",
- "text_tw": "乌龟大师"
- },
- {
- "key": "hero_45002",
- "text_tw": "梅林"
- },
- {
- "key": "hero_45003",
- "text_tw": "盖"
- },
- {
- "key": "hero_45004",
- "text_tw": "穿靴子的猫"
- },
- {
- "key": "hero_43901",
- "text_tw": "升星精灵"
- },
- {
- "key": "hero_42911",
- "text_tw": "初级经验精灵"
- },
- {
- "key": "hero_43911",
- "text_tw": "中级经验精灵"
- },
- {
- "key": "hero_44911",
- "text_tw": "高级经验精灵"
- },
- {
- "key": "hero_43921",
- "text_tw": "技能精灵·稀有"
- },
- {
- "key": "hero_44921",
- "text_tw": "技能精灵·史诗"
- },
- {
- "key": "hero_45921",
- "text_tw": "技能精灵·传说"
- },
- {
- "key": "hero_51001",
- "text_tw": "啵啵星人(新增)"
- },
- {
- "key": "hero_51002",
- "text_tw": "埃雷特手下1号(新增)"
- },
- {
- "key": "hero_51003",
- "text_tw": "埃雷特手下2号(新增)"
- },
- {
- "key": "hero_51004",
- "text_tw": "豺狼小怪(新增)"
- },
- {
- "key": "hero_51005",
- "text_tw": "犀牛守卫(新增)"
- },
- {
- "key": "hero_51006",
- "text_tw": "香塔尔 杜布瓦队长手下1号(新增)"
- },
- {
- "key": "hero_51007",
- "text_tw": "香塔尔 杜布瓦队长手下2号(新增)"
- },
- {
- "key": "hero_51008",
- "text_tw": "香塔尔 杜布瓦队长手下3号(新增)"
- },
- {
- "key": "hero_51009",
- "text_tw": "香塔尔 杜布瓦队长手下4号(新增)"
- },
- {
- "key": "hero_51010",
- "text_tw": "警卫1号(新增)"
- },
- {
- "key": "hero_51011",
- "text_tw": "警卫2号(新增)"
- },
- {
- "key": "hero_51012",
- "text_tw": "小猴子(新增)"
- },
- {
- "key": "hero_51013",
- "text_tw": "巨怪啰啰(新增)"
- },
- {
- "key": "hero_51014",
- "text_tw": "博啃族宫廷守卫(新增)"
- },
- {
- "key": "hero_53001",
- "text_tw": "埃雷特(新增)"
- },
- {
- "key": "hero_53002",
- "text_tw": "豺狼头领(新增)"
- },
- {
- "key": "hero_53003",
- "text_tw": "豪猪大师(翡翠僵尸)(新增)"
- },
- {
- "key": "hero_53004",
- "text_tw": "双獾大师(翡翠僵尸)(新增)"
- },
- {
- "key": "hero_53005",
- "text_tw": "小猴子首领(新增)"
- },
- {
- "key": "hero_53006",
- "text_tw": "巨怪首领(新增)"
- },
- {
- "key": "hero_55001",
- "text_tw": "香塔尔 杜布瓦队长"
- },
- {
- "key": "hero_55002",
- "text_tw": "亨得利克斯(新增)"
- },
- {
- "key": "hero_55003",
- "text_tw": "巨型猩猩怪兽(新增)"
- },
- {
- "key": "hero_55004",
- "text_tw": "白龙王"
- },
- {
- "key": "hero_55005",
- "text_tw": "大厨(新增)"
- },
- {
- "key": "hero_55006",
- "text_tw": "德雷格(新增)"
- },
- {
- "key": "hero_55007",
- "text_tw": "莫甘娜巨怪"
- },
- {
- "key": "hero_55008",
- "text_tw": "莫甘娜二阶"
- },
- {
- "key": "hero_55009",
- "text_tw": ""
- },
- {
- "key": "hero_55010",
- "text_tw": ""
- },
- {
- "key": "hero_55011",
- "text_tw": ""
- },
- {
- "key": "hero_55012",
- "text_tw": ""
- },
- {
- "key": "hero_55013",
- "text_tw": ""
- },
- {
- "key": "hero_55014",
- "text_tw": ""
- },
- {
- "key": "hero_55015",
- "text_tw": ""
- },
- {
- "key": "hero_55016",
- "text_tw": ""
- },
- {
- "key": "hero_55017",
- "text_tw": ""
- },
- {
- "key": "hero_55018",
- "text_tw": ""
- },
- {
- "key": "hero_55019",
- "text_tw": ""
- },
- {
- "key": "hero_55020",
- "text_tw": ""
- },
- {
- "key": "hero_55021",
- "text_tw": ""
- },
- {
- "key": "hero_55022",
- "text_tw": ""
- },
- {
- "key": "hero_55023",
- "text_tw": ""
- },
- {
- "key": "hero_55024",
- "text_tw": ""
- },
- {
- "key": "hero_55025",
- "text_tw": ""
- },
- {
- "key": "hero_55026",
- "text_tw": ""
- },
- {
- "key": "hero_55027",
- "text_tw": ""
- },
- {
- "key": "hero_55028",
- "text_tw": ""
- },
- {
- "key": "hero_55029",
- "text_tw": ""
- },
- {
- "key": "hero_55030",
- "text_tw": ""
- },
- {
- "key": "hero_55031",
- "text_tw": ""
- },
- {
- "key": "hero_55032",
- "text_tw": ""
- },
- {
- "key": "hero_55033",
- "text_tw": ""
- },
- {
- "key": "hero_55034",
- "text_tw": ""
- },
- {
- "key": "hero_55035",
- "text_tw": ""
- },
- {
- "key": "hero_55036",
- "text_tw": ""
- },
- {
- "key": "hero_55037",
- "text_tw": ""
- },
- {
- "key": "hero_55038",
- "text_tw": ""
- },
- {
- "key": "hero_55039",
- "text_tw": ""
- },
- {
- "key": "hero_55040",
- "text_tw": ""
- },
- {
- "key": "hero_55041",
- "text_tw": ""
- },
- {
- "key": "hero_55042",
- "text_tw": ""
- },
- {
- "key": "hero_55043",
- "text_tw": ""
- },
- {
- "key": "hero_55044",
- "text_tw": ""
- },
- {
- "key": "hero_55045",
- "text_tw": ""
- },
- {
- "key": "hero_55046",
- "text_tw": ""
- },
- {
- "key": "hero_55047",
- "text_tw": ""
- },
- {
- "key": "hero_55048",
- "text_tw": ""
- },
- {
- "key": "hero_55049",
- "text_tw": ""
- },
- {
- "key": "hero_55050",
- "text_tw": ""
- },
- {
- "key": "hero_55051",
- "text_tw": ""
- },
- {
- "key": "hero_55052",
- "text_tw": ""
- },
- {
- "key": "hero_55053",
- "text_tw": ""
- },
- {
- "key": "hero_55054",
- "text_tw": ""
- },
- {
- "key": "hero_55055",
- "text_tw": ""
- },
- {
- "key": "hero_55056",
- "text_tw": ""
- },
- {
- "key": "hero_55057",
- "text_tw": ""
- },
- {
- "key": "hero_55058",
- "text_tw": ""
- },
- {
- "key": "hero_55059",
- "text_tw": ""
- },
- {
- "key": "hero_55060",
- "text_tw": ""
- },
- {
- "key": "hero_55061",
- "text_tw": ""
- },
- {
- "key": "hero_55062",
- "text_tw": ""
- },
- {
- "key": "hero_55063",
- "text_tw": ""
- },
- {
- "key": "hero_55064",
- "text_tw": ""
- },
- {
- "key": "hero_55065",
- "text_tw": ""
- },
- {
- "key": "hero_55066",
- "text_tw": ""
- },
- {
- "key": "hero_55067",
- "text_tw": ""
- },
- {
- "key": "hero_55068",
- "text_tw": ""
- },
- {
- "key": "hero_55069",
- "text_tw": ""
- },
- {
- "key": "hero_55070",
- "text_tw": ""
- },
- {
- "key": "hero_55071",
- "text_tw": ""
- },
- {
- "key": "hero_55072",
- "text_tw": ""
- },
- {
- "key": "hero_55073",
- "text_tw": ""
- },
- {
- "key": "hero_55074",
- "text_tw": ""
- },
- {
- "key": "hero_55075",
- "text_tw": ""
- },
- {
- "key": "hero_55076",
- "text_tw": ""
- },
- {
- "key": "hero_55077",
- "text_tw": ""
- },
- {
- "key": "hero_55078",
- "text_tw": ""
- },
- {
- "key": "hero_55079",
- "text_tw": ""
- },
- {
- "key": "hero_55080",
- "text_tw": ""
- },
- {
- "key": "hero_55081",
- "text_tw": ""
- },
- {
- "key": "hero_55082",
- "text_tw": ""
- },
- {
- "key": "hero_55083",
- "text_tw": ""
- },
- {
- "key": "hero_55084",
- "text_tw": ""
- },
- {
- "key": "hero_55085",
- "text_tw": ""
- },
- {
- "key": "hero_55086",
- "text_tw": ""
- },
- {
- "key": "hero_55087",
- "text_tw": ""
- },
- {
- "key": "hero_55088",
- "text_tw": ""
- },
- {
- "key": "hero_55089",
- "text_tw": ""
- },
- {
- "key": "hero_55090",
- "text_tw": ""
- },
- {
- "key": "hero_55091",
- "text_tw": ""
- },
- {
- "key": "hero_55092",
- "text_tw": ""
- },
- {
- "key": "hero_55093",
- "text_tw": ""
- },
- {
- "key": "hero_55094",
- "text_tw": ""
- },
- {
- "key": "hero_55095",
- "text_tw": ""
- },
- {
- "key": "hero_55096",
- "text_tw": ""
- },
- {
- "key": "hero_55097",
- "text_tw": ""
- },
- {
- "key": "hero_55098",
- "text_tw": ""
- },
- {
- "key": "hero_55099",
- "text_tw": ""
- },
- {
- "key": "hero_55100",
- "text_tw": ""
- },
- {
- "key": "hero_55101",
- "text_tw": ""
- },
- {
- "key": "hero_55102",
- "text_tw": ""
- },
- {
- "key": "hero_55103",
- "text_tw": ""
- },
- {
- "key": "hero_55104",
- "text_tw": ""
- },
- {
- "key": "hero_55105",
- "text_tw": ""
- },
- {
- "key": "hero_55106",
- "text_tw": ""
- },
- {
- "key": "hero_55107",
- "text_tw": ""
- },
- {
- "key": "hero_55108",
- "text_tw": ""
- },
- {
- "key": "hero_55109",
- "text_tw": ""
- },
- {
- "key": "hero_55110",
- "text_tw": ""
- },
- {
- "key": "hero_55111",
- "text_tw": ""
- },
- {
- "key": "hero_55112",
- "text_tw": ""
- },
- {
- "key": "hero_55113",
- "text_tw": ""
- },
- {
- "key": "hero_55114",
- "text_tw": ""
- },
- {
- "key": "equip_13001",
- "text_tw": ""
- },
- {
- "key": "equip_13002",
- "text_tw": ""
- },
- {
- "key": "equip_13003",
- "text_tw": ""
- },
- {
- "key": "equip_13004",
- "text_tw": ""
- },
- {
- "key": "equip_13005",
- "text_tw": ""
- },
- {
- "key": "equip_13006",
- "text_tw": ""
- },
- {
- "key": "equip_13007",
- "text_tw": ""
- },
- {
- "key": "equip_13008",
- "text_tw": ""
- },
- {
- "key": "equip_13009",
- "text_tw": ""
- },
- {
- "key": "equip_13010",
- "text_tw": ""
- },
- {
- "key": "equip_13011",
- "text_tw": ""
- },
- {
- "key": "equip_13012",
- "text_tw": ""
- },
- {
- "key": "equip_13013",
- "text_tw": ""
- },
- {
- "key": "equip_13014",
- "text_tw": ""
- },
- {
- "key": "equip_13015",
- "text_tw": ""
- },
- {
- "key": "equip_13016",
- "text_tw": ""
- },
- {
- "key": "equip_13017",
- "text_tw": ""
- },
- {
- "key": "equip_13018",
- "text_tw": ""
- },
- {
- "key": "equip_13019",
- "text_tw": ""
- },
- {
- "key": "equip_13020",
- "text_tw": ""
- },
- {
- "key": "equip_13021",
- "text_tw": ""
- },
- {
- "key": "equip_13022",
- "text_tw": ""
- },
- {
- "key": "equip_13023",
- "text_tw": ""
- },
- {
- "key": "equip_13024",
- "text_tw": ""
- },
- {
- "key": "equip_13025",
- "text_tw": ""
- },
- {
- "key": "equip_13026",
- "text_tw": ""
- },
- {
- "key": "equip_13027",
- "text_tw": ""
- },
- {
- "key": "equip_13028",
- "text_tw": ""
- },
- {
- "key": "equip_13029",
- "text_tw": ""
- },
- {
- "key": "equip_13030",
- "text_tw": ""
- },
- {
- "key": "equip_13031",
- "text_tw": ""
- },
- {
- "key": "equip_13032",
- "text_tw": ""
- },
- {
- "key": "equip_13033",
- "text_tw": ""
- },
- {
- "key": "equip_13034",
- "text_tw": ""
- },
- {
- "key": "equip_13035",
- "text_tw": ""
- },
- {
- "key": "equip_13036",
- "text_tw": ""
- },
- {
- "key": "equip_13037",
- "text_tw": ""
- },
- {
- "key": "equip_13038",
- "text_tw": ""
- },
- {
- "key": "equip_13039",
- "text_tw": ""
- },
- {
- "key": "equip_13040",
- "text_tw": ""
- },
- {
- "key": "equip_13041",
- "text_tw": ""
- },
- {
- "key": "equip_13042",
- "text_tw": ""
- },
- {
- "key": "equip_13043",
- "text_tw": ""
- },
- {
- "key": "equip_13044",
- "text_tw": ""
- },
- {
- "key": "equip_13045",
- "text_tw": ""
- },
- {
- "key": "equip_13046",
- "text_tw": ""
- },
- {
- "key": "equip_13047",
- "text_tw": ""
- },
- {
- "key": "equip_13048",
- "text_tw": ""
- },
- {
- "key": "equip_13049",
- "text_tw": ""
- },
- {
- "key": "equip_13050",
- "text_tw": ""
- },
- {
- "key": "equip_13051",
- "text_tw": ""
- },
- {
- "key": "equip_13052",
- "text_tw": ""
- },
- {
- "key": "equip_13053",
- "text_tw": ""
- },
- {
- "key": "equip_13054",
- "text_tw": ""
- },
- {
- "key": "equip_13055",
- "text_tw": ""
- },
- {
- "key": "equip_13056",
- "text_tw": ""
- },
- {
- "key": "equip_13057",
- "text_tw": ""
- },
- {
- "key": "equip_13058",
- "text_tw": ""
- },
- {
- "key": "equip_13059",
- "text_tw": ""
- },
- {
- "key": "equip_13060",
- "text_tw": ""
- },
- {
- "key": "equip_13061",
- "text_tw": ""
- },
- {
- "key": "equip_13062",
- "text_tw": ""
- },
- {
- "key": "equip_13063",
- "text_tw": ""
- },
- {
- "key": "equip_13064",
- "text_tw": ""
- },
- {
- "key": "equip_13065",
- "text_tw": ""
- },
- {
- "key": "equip_13066",
- "text_tw": ""
- },
- {
- "key": "equip_13067",
- "text_tw": ""
- },
- {
- "key": "equip_13068",
- "text_tw": ""
- },
- {
- "key": "equip_13069",
- "text_tw": ""
- },
- {
- "key": "equip_13070",
- "text_tw": ""
- },
- {
- "key": "equip_13071",
- "text_tw": ""
- },
- {
- "key": "equip_13072",
- "text_tw": ""
- },
- {
- "key": "equip_13073",
- "text_tw": ""
- },
- {
- "key": "equip_13074",
- "text_tw": ""
- },
- {
- "key": "equip_13075",
- "text_tw": ""
- },
- {
- "key": "equip_13076",
- "text_tw": ""
- },
- {
- "key": "equip_13077",
- "text_tw": ""
- },
- {
- "key": "equip_13078",
- "text_tw": ""
- },
- {
- "key": "equip_13079",
- "text_tw": ""
- },
- {
- "key": "equip_13080",
- "text_tw": ""
- },
- {
- "key": "equip_13081",
- "text_tw": ""
- },
- {
- "key": "equip_13082",
- "text_tw": ""
- },
- {
- "key": "equip_13083",
- "text_tw": ""
- },
- {
- "key": "equip_13084",
- "text_tw": ""
- },
- {
- "key": "equip_13085",
- "text_tw": ""
- },
- {
- "key": "equip_13086",
- "text_tw": ""
- },
- {
- "key": "equip_13087",
- "text_tw": ""
- },
- {
- "key": "equip_13088",
- "text_tw": ""
- },
- {
- "key": "equip_13089",
- "text_tw": ""
- },
- {
- "key": "equip_13090",
- "text_tw": ""
- },
- {
- "key": "equip_13091",
- "text_tw": ""
- },
- {
- "key": "equip_13092",
- "text_tw": ""
- },
- {
- "key": "equip_13093",
- "text_tw": ""
- },
- {
- "key": "equip_13094",
- "text_tw": ""
- },
- {
- "key": "equip_13095",
- "text_tw": ""
- },
- {
- "key": "equip_13096",
- "text_tw": ""
- },
- {
- "key": "equip_13097",
- "text_tw": ""
- },
- {
- "key": "equip_13098",
- "text_tw": ""
- },
- {
- "key": "equip_13099",
- "text_tw": ""
- },
- {
- "key": "equip_13100",
- "text_tw": ""
- },
- {
- "key": "equip_13101",
- "text_tw": ""
- },
- {
- "key": "equip_13102",
- "text_tw": ""
- },
- {
- "key": "equip_13103",
- "text_tw": ""
- },
- {
- "key": "equip_13104",
- "text_tw": ""
- },
- {
- "key": "equip_13105",
- "text_tw": ""
- },
- {
- "key": "equip_13106",
- "text_tw": ""
- },
- {
- "key": "equip_13107",
- "text_tw": ""
- },
- {
- "key": "equip_13108",
- "text_tw": ""
- },
- {
- "key": "equip_13109",
- "text_tw": ""
- },
- {
- "key": "equip_13110",
- "text_tw": ""
- },
- {
- "key": "equip_13111",
- "text_tw": ""
- },
- {
- "key": "equip_13112",
- "text_tw": ""
- },
- {
- "key": "equip_13113",
- "text_tw": ""
- },
- {
- "key": "equip_13114",
- "text_tw": ""
- },
- {
- "key": "equip_13115",
- "text_tw": ""
- },
- {
- "key": "equip_13116",
- "text_tw": ""
- },
- {
- "key": "equip_13117",
- "text_tw": ""
- },
- {
- "key": "equip_13118",
- "text_tw": ""
- },
- {
- "key": "equip_13119",
- "text_tw": ""
- },
- {
- "key": "equip_13120",
- "text_tw": ""
- },
- {
- "key": "equip_13121",
- "text_tw": ""
- },
- {
- "key": "equip_13122",
- "text_tw": ""
- },
- {
- "key": "equip_13123",
- "text_tw": ""
- },
- {
- "key": "equip_13124",
- "text_tw": ""
- },
- {
- "key": "equip_13125",
- "text_tw": ""
- },
- {
- "key": "equip_13126",
- "text_tw": ""
- },
- {
- "key": "equip_13127",
- "text_tw": ""
- },
- {
- "key": "equip_13128",
- "text_tw": ""
- },
- {
- "key": "equip_13129",
- "text_tw": ""
- },
- {
- "key": "equip_13130",
- "text_tw": ""
- },
- {
- "key": "equip_13131",
- "text_tw": ""
- },
- {
- "key": "equip_13132",
- "text_tw": ""
- },
- {
- "key": "equip_13133",
- "text_tw": ""
- },
- {
- "key": "equip_13134",
- "text_tw": ""
- },
- {
- "key": "equip_13135",
- "text_tw": ""
- },
- {
- "key": "equip_13136",
- "text_tw": ""
- },
- {
- "key": "equip_13137",
- "text_tw": ""
- },
- {
- "key": "equip_13138",
- "text_tw": ""
- },
- {
- "key": "equip_13139",
- "text_tw": ""
- },
- {
- "key": "equip_13140",
- "text_tw": ""
- },
- {
- "key": "equip_13141",
- "text_tw": ""
- },
- {
- "key": "equip_13142",
- "text_tw": ""
- },
- {
- "key": "equip_13143",
- "text_tw": ""
- },
- {
- "key": "equip_13144",
- "text_tw": ""
- },
- {
- "key": "equip_13145",
- "text_tw": ""
- },
- {
- "key": "equip_13146",
- "text_tw": ""
- },
- {
- "key": "equip_13147",
- "text_tw": ""
- },
- {
- "key": "equip_13148",
- "text_tw": ""
- },
- {
- "key": "equip_13149",
- "text_tw": ""
- },
- {
- "key": "equip_13150",
- "text_tw": ""
- },
- {
- "key": "equip_13151",
- "text_tw": ""
- },
- {
- "key": "equip_13152",
- "text_tw": ""
- },
- {
- "key": "equip_13153",
- "text_tw": ""
- },
- {
- "key": "equip_13154",
- "text_tw": ""
- },
- {
- "key": "equip_13155",
- "text_tw": ""
- },
- {
- "key": "equip_13156",
- "text_tw": ""
- },
- {
- "key": "equip_13157",
- "text_tw": ""
- },
- {
- "key": "equip_13158",
- "text_tw": ""
- },
- {
- "key": "equip_13159",
- "text_tw": ""
- },
- {
- "key": "equip_13160",
- "text_tw": ""
- },
- {
- "key": "equip_13161",
- "text_tw": ""
- },
- {
- "key": "equip_13162",
- "text_tw": ""
- },
- {
- "key": "equip_13163",
- "text_tw": ""
- },
- {
- "key": "equip_13164",
- "text_tw": ""
- },
- {
- "key": "equip_13165",
- "text_tw": ""
- },
- {
- "key": "equip_13166",
- "text_tw": ""
- },
- {
- "key": "equip_13167",
- "text_tw": ""
- },
- {
- "key": "equip_13168",
- "text_tw": ""
- },
- {
- "key": "equip_13169",
- "text_tw": ""
- },
- {
- "key": "equip_13170",
- "text_tw": ""
- },
- {
- "key": "equip_13171",
- "text_tw": ""
- },
- {
- "key": "equip_13172",
- "text_tw": ""
- },
- {
- "key": "equip_13173",
- "text_tw": ""
- },
- {
- "key": "equip_13174",
- "text_tw": ""
- },
- {
- "key": "equip_13175",
- "text_tw": ""
- },
- {
- "key": "equip_13176",
- "text_tw": ""
- },
- {
- "key": "equip_13177",
- "text_tw": ""
- },
- {
- "key": "equip_13178",
- "text_tw": ""
- },
- {
- "key": "equip_13179",
- "text_tw": ""
- },
- {
- "key": "equip_13180",
- "text_tw": ""
- },
- {
- "key": "equip_13181",
- "text_tw": ""
- },
- {
- "key": "equip_13182",
- "text_tw": ""
- },
- {
- "key": "equip_13183",
- "text_tw": ""
- },
- {
- "key": "equip_13184",
- "text_tw": ""
- },
- {
- "key": "equip_13185",
- "text_tw": ""
- },
- {
- "key": "equip_13186",
- "text_tw": ""
- },
- {
- "key": "equip_13187",
- "text_tw": ""
- },
- {
- "key": "equip_13188",
- "text_tw": ""
- },
- {
- "key": "equip_13189",
- "text_tw": ""
- },
- {
- "key": "equip_13190",
- "text_tw": ""
- },
- {
- "key": "equip_13191",
- "text_tw": ""
- },
- {
- "key": "equip_13192",
- "text_tw": ""
- },
- {
- "key": "equip_13193",
- "text_tw": ""
- },
- {
- "key": "equip_13194",
- "text_tw": ""
- },
- {
- "key": "equip_13195",
- "text_tw": ""
- },
- {
- "key": "equip_13196",
- "text_tw": ""
- },
- {
- "key": "equip_13197",
- "text_tw": ""
- },
- {
- "key": "equip_13198",
- "text_tw": ""
- },
- {
- "key": "equip_13199",
- "text_tw": ""
- },
- {
- "key": "equip_13200",
- "text_tw": ""
- },
- {
- "key": "equip_13201",
- "text_tw": ""
- },
- {
- "key": "equip_13202",
- "text_tw": ""
- },
- {
- "key": "equip_13203",
- "text_tw": ""
- },
- {
- "key": "equip_13204",
- "text_tw": ""
- },
- {
- "key": "equip_13205",
- "text_tw": ""
- },
- {
- "key": "equip_13206",
- "text_tw": ""
- },
- {
- "key": "equip_13207",
- "text_tw": ""
- },
- {
- "key": "equip_13208",
- "text_tw": ""
- },
- {
- "key": "equip_13209",
- "text_tw": ""
- },
- {
- "key": "equip_13210",
- "text_tw": ""
- },
- {
- "key": "equip_13211",
- "text_tw": ""
- },
- {
- "key": "equip_13212",
- "text_tw": ""
- },
- {
- "key": "equip_13213",
- "text_tw": ""
- },
- {
- "key": "equip_13214",
- "text_tw": ""
- },
- {
- "key": "equip_13215",
- "text_tw": ""
- },
- {
- "key": "equip_13216",
- "text_tw": ""
- },
- {
- "key": "equip_13217",
- "text_tw": ""
- },
- {
- "key": "suit_equip_10001",
- "text_tw": ""
- },
- {
- "key": "item_10001",
- "text_tw": ""
- },
- {
- "key": "item_10002",
- "text_tw": ""
- },
- {
- "key": "item_10003",
- "text_tw": ""
- },
- {
- "key": "item_10011",
- "text_tw": ""
- },
- {
- "key": "item_10012",
- "text_tw": ""
- },
- {
- "key": "item_10013",
- "text_tw": ""
- },
- {
- "key": "item_10021",
- "text_tw": ""
- },
- {
- "key": "item_10022",
- "text_tw": ""
- },
- {
- "key": "item_10023",
- "text_tw": ""
- },
- {
- "key": "item_10031",
- "text_tw": ""
- },
- {
- "key": "item_10032",
- "text_tw": ""
- },
- {
- "key": "item_10033",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10001",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10002",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10003",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10004",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10005",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10006",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10007",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10008",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10009",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10010",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10011",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10012",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10013",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10014",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10015",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10016",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10017",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10018",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10019",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10020",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10021",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10022",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10023",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10024",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10025",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10026",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10027",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10028",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10029",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10030",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10031",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10032",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10033",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10034",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10035",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10036",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10037",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10038",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10039",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10040",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10041",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10042",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10043",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10044",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10045",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10046",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10047",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10048",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10049",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10050",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10051",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10052",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10053",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10054",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10055",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10056",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10057",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10058",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10059",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10060",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10061",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10062",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10063",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10064",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10065",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10066",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10067",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10068",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10069",
- "text_tw": ""
- },
- {
- "key": "mainline_title_10070",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10001",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10002",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10003",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10004",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10005",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10006",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10007",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10008",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10009",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10010",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10011",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10012",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10013",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10014",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10015",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10016",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10017",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10018",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10019",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10020",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10021",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10022",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10023",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10024",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10025",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10026",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10027",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10028",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10029",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10030",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10031",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10032",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10033",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10034",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10035",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10036",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10037",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10038",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10039",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10040",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10041",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10042",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10043",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10044",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10045",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10046",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10047",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10048",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10049",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10050",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10051",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10052",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10053",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10054",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10055",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10056",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10057",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10058",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10059",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10060",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10061",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10062",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10063",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10064",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10065",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10066",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10067",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10068",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10069",
- "text_tw": ""
- },
- {
- "key": "mainline_desc_10070",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10001",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10002",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10003",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10004",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10005",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10006",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10007",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10008",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10009",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10010",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10011",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10012",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10013",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10014",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10015",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10016",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10017",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10018",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10019",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10020",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10021",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10022",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10023",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10024",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10025",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10026",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10027",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10028",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10029",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10030",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10031",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10032",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10033",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10034",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10035",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10036",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10037",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10038",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10039",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10040",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10041",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10042",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10043",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10044",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10045",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10046",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10047",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10048",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10049",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10050",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10051",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10052",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10053",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10054",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10055",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10056",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10057",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10058",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10059",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10060",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10061",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10062",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10063",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10064",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10065",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10066",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10067",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10068",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10069",
- "text_tw": ""
- },
- {
- "key": "mainline_text_10070",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10001",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10002",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10003",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10004",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10005",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10006",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10007",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10008",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10009",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10010",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10011",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10012",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10013",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10014",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10015",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10016",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10017",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10018",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10019",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10020",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10021",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10022",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10023",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10024",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10025",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10026",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10027",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10028",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10029",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10030",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10031",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10032",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10033",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10034",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10035",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10036",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10037",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10038",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10039",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10040",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10041",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10042",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10043",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10044",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10045",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10046",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10047",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10048",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10049",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10050",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10051",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10052",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10053",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10054",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10055",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10056",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10057",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10058",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10059",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10060",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10061",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10062",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10063",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10064",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10065",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10066",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10067",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10068",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10069",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10070",
- "text_tw": ""
- },
- {
- "key": "mainline_name_10071",
- "text_tw": ""
- },
- {
- "key": "equip_10001",
- "text_tw": ""
- },
- {
- "key": "equip_10002",
- "text_tw": ""
- },
- {
- "key": "equip_10003",
- "text_tw": ""
- },
- {
- "key": "equip_10004",
- "text_tw": ""
- },
- {
- "key": "equip_10005",
- "text_tw": ""
- },
- {
- "key": "skillname_125004011",
- "text_tw": ""
- },
- {
- "key": "skillname_125004111",
- "text_tw": ""
- },
- {
- "key": "skillname_125004211",
- "text_tw": ""
- },
- {
- "key": "skillname_125004311",
- "text_tw": ""
- },
- {
- "key": "skillname_925004211",
- "text_tw": ""
- },
- {
- "key": "skillname_135002011",
- "text_tw": ""
- },
- {
- "key": "skillname_135002111",
- "text_tw": ""
- },
- {
- "key": "skillname_135002211",
- "text_tw": ""
- },
- {
- "key": "skillname_135002311",
- "text_tw": ""
- },
- {
- "key": "skillname_935002321",
- "text_tw": ""
- },
- {
- "key": "skillname_124003011",
- "text_tw": ""
- },
- {
- "key": "skillname_124003111",
- "text_tw": ""
- },
- {
- "key": "skillname_124003211",
- "text_tw": ""
- },
- {
- "key": "skillname_124003311",
- "text_tw": ""
- },
- {
- "key": "skillname_924003411",
- "text_tw": ""
- },
- {
- "key": "skill_1250040111",
- "text_tw": ""
- },
- {
- "key": "skill_1250041111",
- "text_tw": ""
- },
- {
- "key": "skill_1250041112",
- "text_tw": ""
- },
- {
- "key": "skill_1250041113",
- "text_tw": ""
- },
- {
- "key": "skill_1250041114",
- "text_tw": ""
- },
- {
- "key": "skill_1250041115",
- "text_tw": ""
- },
- {
- "key": "skill_1250041116",
- "text_tw": ""
- },
- {
- "key": "skill_1250042111",
- "text_tw": ""
- },
- {
- "key": "skill_1250042112",
- "text_tw": ""
- },
- {
- "key": "skill_1250042113",
- "text_tw": ""
- },
- {
- "key": "skill_1250043111",
- "text_tw": ""
- },
- {
- "key": "skill_1250043112",
- "text_tw": ""
- },
- {
- "key": "skill_1250043113",
- "text_tw": ""
- },
- {
- "key": "skill_1250043114",
- "text_tw": ""
- },
- {
- "key": "skill_1250043115",
- "text_tw": ""
- },
- {
- "key": "skill_1350020111",
- "text_tw": ""
- },
- {
- "key": "skill_1350021111",
- "text_tw": ""
- },
- {
- "key": "skill_1350021112",
- "text_tw": ""
- },
- {
- "key": "skill_1350021113",
- "text_tw": ""
- },
- {
- "key": "skill_1350021114",
- "text_tw": ""
- },
- {
- "key": "skill_1350021115",
- "text_tw": ""
- },
- {
- "key": "skill_1350021116",
- "text_tw": ""
- },
- {
- "key": "skill_1350022111",
- "text_tw": ""
- },
- {
- "key": "skill_1350023111",
- "text_tw": ""
- },
- {
- "key": "skill_1350023112",
- "text_tw": ""
- },
- {
- "key": "skill_1350023113",
- "text_tw": ""
- },
- {
- "key": "skill_1350023114",
- "text_tw": ""
- },
- {
- "key": "skill_1350023115",
- "text_tw": ""
- },
- {
- "key": "skill_1350023116",
- "text_tw": ""
- },
- {
- "key": "skill_9350023211",
- "text_tw": ""
- },
- {
- "key": "skill_9350023212",
- "text_tw": ""
- },
- {
- "key": "skill_9350023213",
- "text_tw": ""
- },
- {
- "key": "skill_9350023214",
- "text_tw": ""
- },
- {
- "key": "skill_9350023215",
- "text_tw": ""
- },
- {
- "key": "skill_9350023216",
- "text_tw": ""
- },
- {
- "key": "skill_1240030111",
- "text_tw": ""
- },
- {
- "key": "skill_1240031111",
- "text_tw": ""
- },
- {
- "key": "skill_1240031112",
- "text_tw": ""
- },
- {
- "key": "skill_1240031113",
- "text_tw": ""
- },
- {
- "key": "skill_1240031114",
- "text_tw": ""
- },
- {
- "key": "skill_1240031115",
- "text_tw": ""
- },
- {
- "key": "skill_1240032111",
- "text_tw": ""
- },
- {
- "key": "skill_1240032112",
- "text_tw": ""
- },
- {
- "key": "skill_1240033111",
- "text_tw": ""
- },
- {
- "key": "skill_1240033112",
- "text_tw": ""
- },
- {
- "key": "skill_1240033113",
- "text_tw": ""
- },
- {
- "key": "skill_1240033114",
- "text_tw": ""
- },
- {
- "key": "skill_1240033115",
- "text_tw": ""
- },
- {
- "key": "skill_1240033116",
- "text_tw": ""
- },
- {
- "key": "skill_9240034111",
- "text_tw": ""
- },
- {
- "key": "skill_9240034112",
- "text_tw": ""
- },
- {
- "key": "skill_190011000",
- "text_tw": ""
- },
- {
- "key": "skill_190012000",
- "text_tw": ""
- },
- {
- "key": "skill_190013000",
- "text_tw": ""
- },
- {
- "key": "skill_190014000",
- "text_tw": ""
- },
- {
- "key": "skill_190015000",
- "text_tw": ""
- },
- {
- "key": "skill_190016000",
- "text_tw": ""
- },
- {
- "key": "skill_190017000",
- "text_tw": ""
- },
- {
- "key": "skill_190018000",
- "text_tw": ""
- },
- {
- "key": "skill_190011001",
- "text_tw": ""
- },
- {
- "key": "skill_190011002",
- "text_tw": ""
- },
- {
- "key": "skill_190011003",
- "text_tw": ""
- },
- {
- "key": "skill_190011004",
- "text_tw": ""
- },
- {
- "key": "skill_buff_390001001",
- "text_tw": ""
- },
- {
- "key": "skill_buff_390001002",
- "text_tw": ""
- },
- {
- "key": "skill_buff_390001003",
- "text_tw": ""
- },
- {
- "key": "skill_buff_390001004",
- "text_tw": ""
- },
- {
- "key": "skill_buff_390001005",
- "text_tw": ""
- },
- {
- "key": "skill_buff_390001006",
- "text_tw": ""
- },
- {
- "key": "skill_buff_390001007",
- "text_tw": ""
- },
- {
- "key": "skill_buff_390001008",
- "text_tw": ""
- },
- {
- "key": "skill_buff_390002001",
- "text_tw": ""
- },
- {
- "key": "skill_buff_390002002",
- "text_tw": ""
- },
- {
- "key": "skill_buff_390002003",
- "text_tw": ""
- },
- {
- "key": "skill_buff_390002004",
- "text_tw": ""
- },
- {
- "key": "skill_buff_390002005",
- "text_tw": ""
- },
- {
- "key": "skill_buff_390002006",
- "text_tw": ""
- },
- {
- "key": "skill_buff_390003001",
- "text_tw": ""
- },
- {
- "key": "skill_buff_390003002",
- "text_tw": ""
- },
- {
- "key": "skill_buff_390003003",
- "text_tw": ""
- },
- {
- "key": "skill_buff_390003004",
- "text_tw": ""
- },
- {
- "key": "skill_buff_390004001",
- "text_tw": ""
- },
- {
- "key": "skill_buff_390004002",
- "text_tw": ""
- },
- {
- "key": "skill_buff_390004003",
- "text_tw": ""
- },
- {
- "key": "skill_buff_390004004",
- "text_tw": ""
- },
- {
- "key": "skill_buff_390004005",
- "text_tw": ""
- },
- {
- "key": "skill_buff_390004006",
- "text_tw": ""
- },
- {
- "key": "skill_buff_390004007",
- "text_tw": ""
- },
- {
- "key": "skill_buff_390004008",
- "text_tw": ""
- },
- {
- "key": "skill_buff_390005001",
- "text_tw": ""
- },
- {
- "key": "skill_buff_390005002",
- "text_tw": ""
- },
- {
- "key": "skill_buff_390005003",
- "text_tw": ""
- },
- {
- "key": "skill_buff_390006001",
- "text_tw": ""
- },
- {
- "key": "skill_buff_300192114",
- "text_tw": ""
- },
- {
- "key": "skill_buff_300192115",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_390001001",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_390001002",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_390001003",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_390001004",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_390001005",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_390001006",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_390001007",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_390001008",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_390002001",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_390002002",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_390002003",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_390002004",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_390002005",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_390002006",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_390003001",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_390003002",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_390003003",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_390003004",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_390004001",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_390004002",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_390004003",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_390004004",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_390004005",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_390004006",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_390004007",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_390004008",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_390005001",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_390005002",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_390005003",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_390006001",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_300102103",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_300162105",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_300192114",
- "text_tw": ""
- },
- {
- "key": "skill_buffdes_300192115",
- "text_tw": ""
- },
- {
- "key": "hero_10001",
- "text_tw": ""
- },
- {
- "key": "hero_10002",
- "text_tw": ""
- },
- {
- "key": "hero_10003",
- "text_tw": ""
- },
- {
- "key": "hero_10004",
- "text_tw": ""
- },
- {
- "key": "hero_10005",
- "text_tw": ""
- },
- {
- "key": "hero_10006",
- "text_tw": ""
- },
- {
- "key": "hero_10007",
- "text_tw": ""
- },
- {
- "key": "hero_10008",
- "text_tw": ""
- },
- {
- "key": "star_2",
- "text_tw": ""
- },
- {
- "key": "star_3",
- "text_tw": ""
- },
- {
- "key": "star_4",
- "text_tw": ""
- },
- {
- "key": "star_5",
- "text_tw": ""
- },
- {
- "key": "color_1",
- "text_tw": ""
- },
- {
- "key": "color_2",
- "text_tw": ""
- },
- {
- "key": "color_3",
- "text_tw": ""
- },
- {
- "key": "color_4",
- "text_tw": ""
- },
- {
- "key": "color_5",
- "text_tw": ""
- },
- {
- "key": "color_6",
- "text_tw": ""
- },
- {
- "key": "race_1",
- "text_tw": ""
- },
- {
- "key": "race_2",
- "text_tw": ""
- },
- {
- "key": "race_3",
- "text_tw": ""
- },
- {
- "key": "race_4",
- "text_tw": ""
- },
- {
- "key": "job_1",
- "text_tw": ""
- },
- {
- "key": "job_2",
- "text_tw": ""
- },
- {
- "key": "job_3",
- "text_tw": ""
- },
- {
- "key": "job_4",
- "text_tw": ""
- },
- {
- "key": "job_5",
- "text_tw": ""
- },
- {
- "key": "itemdesc_10001",
- "text_tw": ""
- },
- {
- "key": "itemdesc_10002",
- "text_tw": ""
- },
- {
- "key": "itemdesc_10003",
- "text_tw": ""
- },
- {
- "key": "itemdesc_10004",
- "text_tw": ""
- },
- {
- "key": "itemdesc_10005",
- "text_tw": ""
- },
- {
- "key": "itemdesc_10006",
- "text_tw": ""
- },
- {
- "key": "itemdesc_10007",
- "text_tw": ""
- },
- {
- "key": "itemdesc_10008",
- "text_tw": ""
- },
- {
- "key": "itemdesc_10009",
- "text_tw": ""
- },
- {
- "key": "itemdesc_10010",
- "text_tw": ""
- },
- {
- "key": "itemdesc_10011",
- "text_tw": ""
- },
- {
- "key": "itemdesc_10012",
- "text_tw": ""
- },
- {
- "key": "itemdesc_10013",
- "text_tw": ""
- },
- {
- "key": "itemdesc_10014",
- "text_tw": ""
- },
- {
- "key": "itemdesc_10015",
- "text_tw": ""
- },
- {
- "key": "itemdesc_10016",
- "text_tw": ""
- },
- {
- "key": "itemname_10001",
- "text_tw": ""
- },
- {
- "key": "itemname_10002",
- "text_tw": ""
- },
- {
- "key": "itemname_10003",
- "text_tw": ""
- },
- {
- "key": "itemname_10004",
- "text_tw": ""
- },
- {
- "key": "itemname_10005",
- "text_tw": ""
- },
- {
- "key": "itemname_10006",
- "text_tw": ""
- },
- {
- "key": "itemname_10007",
- "text_tw": ""
- },
- {
- "key": "itemname_10008",
- "text_tw": ""
- },
- {
- "key": "itemname_10009",
- "text_tw": ""
- },
- {
- "key": "itemname_10010",
- "text_tw": ""
- },
- {
- "key": "itemname_10011",
- "text_tw": ""
- },
- {
- "key": "itemname_10012",
- "text_tw": ""
- },
- {
- "key": "itemname_10013",
- "text_tw": ""
- },
- {
- "key": "itemname_10014",
- "text_tw": ""
- },
- {
- "key": "itemname_10015",
- "text_tw": ""
- },
- {
- "key": "itemname_10016",
- "text_tw": ""
- },
- {
- "key": "server_10001",
- "text_tw": ""
- },
- {
- "key": "server_10006",
- "text_tw": ""
- },
- {
- "key": "server_10003",
- "text_tw": ""
- },
- {
- "key": "server_10004",
- "text_tw": ""
- },
- {
- "key": "server_10005",
- "text_tw": ""
- },
- {
- "key": "skillname_190011000",
- "text_tw": ""
- },
- {
- "key": "skillname_190012000",
- "text_tw": ""
- },
- {
- "key": "skillname_190013000",
- "text_tw": ""
- },
- {
- "key": "skillname_190011003",
- "text_tw": ""
- },
- {
- "key": "skillname_190014000",
- "text_tw": ""
- },
- {
- "key": "skillname_190016000",
- "text_tw": ""
- },
- {
- "key": "skillname_190017000",
- "text_tw": ""
- },
- {
- "key": "skillname_190018000",
- "text_tw": ""
- },
- {
- "key": "tips_1001",
- "text_tw": ""
- },
- {
- "key": "tips_1002",
- "text_tw": ""
- },
- {
- "key": "tips_1003",
- "text_tw": ""
- },
- {
- "key": "tips_1004",
- "text_tw": ""
- },
- {
- "key": "nonactivated",
- "text_tw": ""
- },
- {
- "key": "activated",
- "text_tw": ""
- },
- {
- "key": "opencond_prompt_10001",
- "text_tw": ""
- },
- {
- "key": "opencond_prompt_10002",
- "text_tw": ""
- },
- {
- "key": "opencond_prompt_10003",
- "text_tw": ""
- },
- {
- "key": "num_1001",
- "text_tw": ""
- },
- {
- "key": "num_1002",
- "text_tw": ""
- },
- {
- "key": "num_1003",
- "text_tw": ""
- },
- {
- "key": "num_1004",
- "text_tw": ""
- },
- {
- "key": "num_1005",
- "text_tw": ""
- },
- {
- "key": "num_1006",
- "text_tw": ""
- },
- {
- "key": "num_1007",
- "text_tw": ""
- },
- {
- "key": "num_1008",
- "text_tw": ""
- },
- {
- "key": "num_1009",
- "text_tw": ""
- },
- {
- "key": "num_1010",
- "text_tw": ""
- },
- {
- "key": "num_1011",
- "text_tw": ""
- },
- {
- "key": "num_1012",
- "text_tw": ""
- },
- {
- "key": "num_1013",
- "text_tw": ""
- },
- {
- "key": "num_1014",
- "text_tw": ""
- },
- {
- "key": "num_1015",
- "text_tw": ""
- },
- {
- "key": "num_1016",
- "text_tw": ""
- },
- {
- "key": "num_1017",
- "text_tw": ""
- },
- {
- "key": "num_1018",
- "text_tw": ""
- },
- {
- "key": "num_1019",
- "text_tw": ""
- },
- {
- "key": "num_1020",
- "text_tw": ""
- },
- {
- "key": "num_1021",
- "text_tw": ""
- },
- {
- "key": "num_1022",
- "text_tw": ""
- },
- {
- "key": "num_1023",
- "text_tw": ""
- },
- {
- "key": "num_1024",
- "text_tw": ""
- },
- {
- "key": "opencond_name_10001",
- "text_tw": ""
- },
- {
- "key": "opencond_name_10002",
- "text_tw": ""
- },
- {
- "key": "opencond_name_10003",
- "text_tw": ""
- },
- {
- "key": "opencond_name_10004",
- "text_tw": ""
- },
- {
- "key": "opencond_name_10005",
- "text_tw": ""
- },
- {
- "key": "opencond_name_10006",
- "text_tw": ""
- },
- {
- "key": "opencond_name_10007",
- "text_tw": ""
- },
- {
- "key": "opencond_name_10008",
- "text_tw": ""
- },
- {
- "key": "opencond_name_10009",
- "text_tw": ""
- },
- {
- "key": "opencond_name_10010",
- "text_tw": ""
- },
- {
- "key": "hero_help_10001",
- "text_tw": ""
- },
- {
- "key": "hero_help_10002",
- "text_tw": ""
- },
- {
- "key": "hero_help_10003",
- "text_tw": ""
- },
- {
- "key": "hero_help_10004",
- "text_tw": ""
- },
- {
- "key": "hero_help_10005",
- "text_tw": ""
- },
- {
- "key": "hero_help_10006",
- "text_tw": ""
- },
- {
- "key": "hero_help_10007",
- "text_tw": ""
- }
-]
\ No newline at end of file
diff --git a/bin/json/game_drawcom.json b/bin/json/game_drawcom.json
deleted file mode 100644
index 195027285..000000000
--- a/bin/json/game_drawcom.json
+++ /dev/null
@@ -1,18 +0,0 @@
-[
- {
- "key": "star3_click",
- "value": 2
- },
- {
- "key": "star4_click",
- "value": 4
- },
- {
- "key": "star5_click",
- "value": 6
- },
- {
- "key": "progress_bar_time",
- "value": 10
- }
-]
\ No newline at end of file
diff --git a/bin/json/game_drawcost.json b/bin/json/game_drawcost.json
deleted file mode 100644
index 6fb741b05..000000000
--- a/bin/json/game_drawcost.json
+++ /dev/null
@@ -1,132 +0,0 @@
-[
- {
- "key": 1,
- "count": 1,
- "cost": {
- "a": "item",
- "t": "10001",
- "n": 1
- },
- "floor4": 50,
- "floor5": 100,
- "floor4cards": 2,
- "floor5cards": 11
- },
- {
- "key": 2,
- "count": 10,
- "cost": {
- "a": "item",
- "t": "10001",
- "n": 10
- },
- "floor4": 50,
- "floor5": 100,
- "floor4cards": 2,
- "floor5cards": 11
- },
- {
- "key": 3,
- "count": 1,
- "cost": {
- "a": "item",
- "t": "10002",
- "n": 1
- },
- "floor4": 50,
- "floor5": 100,
- "floor4cards": 2,
- "floor5cards": 11
- },
- {
- "key": 4,
- "count": 10,
- "cost": {
- "a": "item",
- "t": "10002",
- "n": 10
- },
- "floor4": 50,
- "floor5": 100,
- "floor4cards": 2,
- "floor5cards": 11
- },
- {
- "key": 5,
- "count": 1,
- "cost": {
- "a": "item",
- "t": "10003",
- "n": 1
- },
- "floor4": 50,
- "floor5": 100,
- "floor4cards": 2,
- "floor5cards": 11
- },
- {
- "key": 6,
- "count": 10,
- "cost": {
- "a": "item",
- "t": "10003",
- "n": 10
- },
- "floor4": 50,
- "floor5": 100,
- "floor4cards": 2,
- "floor5cards": 11
- },
- {
- "key": 7,
- "count": 1,
- "cost": {
- "a": "item",
- "t": "10004",
- "n": 1
- },
- "floor4": 50,
- "floor5": 100,
- "floor4cards": 2,
- "floor5cards": 11
- },
- {
- "key": 8,
- "count": 10,
- "cost": {
- "a": "item",
- "t": "10004",
- "n": 10
- },
- "floor4": 50,
- "floor5": 100,
- "floor4cards": 2,
- "floor5cards": 11
- },
- {
- "key": 9,
- "count": 1,
- "cost": {
- "a": "item",
- "t": "10005",
- "n": 1
- },
- "floor4": 50,
- "floor5": 100,
- "floor4cards": 2,
- "floor5cards": 11
- },
- {
- "key": 10,
- "count": 10,
- "cost": {
- "a": "item",
- "t": "10005",
- "n": 10
- },
- "floor4": 50,
- "floor5": 100,
- "floor4cards": 2,
- "floor5cards": 11
- }
-]
\ No newline at end of file
diff --git a/bin/json/game_drawupdraw.json b/bin/json/game_drawupdraw.json
deleted file mode 100644
index 563a6c61a..000000000
--- a/bin/json/game_drawupdraw.json
+++ /dev/null
@@ -1,20 +0,0 @@
-[
- {
- "key": 1,
- "time_on": 934041600,
- "time_off": 935251200,
- "up_hero": [
- "10001",
- "10002"
- ],
- "up_weight": [
- 5000,
- 5000
- ],
- "trigger_num": 50,
- "Increase_weight": [
- 100,
- 100
- ]
- }
-]
\ No newline at end of file
diff --git a/bin/json/game_gourmetskill.json b/bin/json/game_gourmetskill.json
index efd243c55..c82b3e212 100644
--- a/bin/json/game_gourmetskill.json
+++ b/bin/json/game_gourmetskill.json
@@ -610,7 +610,7 @@
{
"id": 10051,
"type": 1005,
- "initial": 0,
+ "initial": 1,
"level": 1,
"levelname": {
"key": "gourmet_ln1",
diff --git a/bin/json/game_pagodaseasonloop.json b/bin/json/game_pagodaseasonloop.json
new file mode 100644
index 000000000..7d9536e78
--- /dev/null
+++ b/bin/json/game_pagodaseasonloop.json
@@ -0,0 +1,21 @@
+[
+ {
+ "key": 2,
+ "disposable_loop": [
+ 201,
+ 203,
+ 202,
+ 204,
+ 203,
+ 202,
+ 201,
+ 204
+ ],
+ "fixed_loop": [
+ 201,
+ 202,
+ 203,
+ 204
+ ]
+ }
+]
\ No newline at end of file
diff --git a/bin/json/game_serverlist.json b/bin/json/game_serverlist.json
deleted file mode 100644
index 1dc4001d8..000000000
--- a/bin/json/game_serverlist.json
+++ /dev/null
@@ -1,30 +0,0 @@
-[
- {
- "id": 1,
- "ip": "10.0.1.238",
- "port": 7981,
- "groupId": 0,
- "name": "熊猫"
- },
- {
- "id": 2,
- "ip": "10.0.1.239",
- "port": 7982,
- "groupId": 0,
- "name": "野鸡"
- },
- {
- "id": 3,
- "ip": "10.0.1.237",
- "port": 7983,
- "groupId": 0,
- "name": "鸭子"
- },
- {
- "id": 4,
- "ip": "10.0.0.9",
- "port": 7984,
- "groupId": 0,
- "name": "乌龟"
- }
-]
\ No newline at end of file
diff --git a/bin/json/game_skillafteratk.json b/bin/json/game_skillafteratk.json
index 2d2a12a4b..65fbd4d68 100644
--- a/bin/json/game_skillafteratk.json
+++ b/bin/json/game_skillafteratk.json
@@ -5,6 +5,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -31,6 +32,7 @@
"From": 2,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -57,6 +59,7 @@
"From": 2,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [
"Type=ProJudge,Judge0,Key=Total_Atk,Op=0"
],
@@ -85,6 +88,7 @@
"From": 2,
"Limit": 3,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [
"Type=MyProJudge"
],
@@ -115,6 +119,7 @@
"From": 2,
"Limit": 3,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Sort,Sort0,Key=Total_Def,SortMet=0"
@@ -141,6 +146,7 @@
"From": 2,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [
"Type=ProJudge,Judge1,Key=Total_Def,Op=1,Val=100"
],
@@ -169,6 +175,7 @@
"From": 2,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -197,6 +204,7 @@
"From": 2,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [
"Type=MyProJudge,Key=Total_Atk,Op=0,Val=100",
"Type=ProJudge,Judge0,Key=Total_Atk,Op=0"
@@ -226,6 +234,7 @@
"From": 1,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -247,6 +256,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -268,6 +278,7 @@
"From": 1,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -289,6 +300,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -310,6 +322,7 @@
"From": 1,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -331,6 +344,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -352,6 +366,7 @@
"From": 1,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -373,6 +388,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -394,6 +410,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -415,6 +432,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -436,6 +454,7 @@
"From": 1,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -457,6 +476,7 @@
"From": 1,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -478,6 +498,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -499,6 +520,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -520,6 +542,7 @@
"From": 1,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -541,6 +564,7 @@
"From": 1,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -562,6 +586,7 @@
"From": 1,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -583,6 +608,7 @@
"From": 1,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -604,6 +630,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -625,6 +652,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -651,6 +679,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 500,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -677,6 +706,7 @@
"From": 2,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -705,6 +735,7 @@
"From": 0,
"Limit": 0,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -731,6 +762,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -757,6 +789,7 @@
"From": 0,
"Limit": 0,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -783,6 +816,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -809,6 +843,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -835,6 +870,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -861,6 +897,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -887,6 +924,7 @@
"From": 2,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -913,6 +951,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -939,6 +978,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -965,6 +1005,7 @@
"From": 2,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -993,6 +1034,7 @@
"From": 2,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1019,6 +1061,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1045,6 +1088,7 @@
"From": 6,
"Limit": 4,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1071,6 +1115,7 @@
"From": 1,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1096,6 +1141,7 @@
"From": 1,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1121,6 +1167,7 @@
"From": 1,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1142,6 +1189,7 @@
"From": 2,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1163,6 +1211,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1184,6 +1233,7 @@
"From": 1,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1209,6 +1259,7 @@
"From": 2,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1234,6 +1285,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1259,6 +1311,7 @@
"From": 1,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1284,6 +1337,7 @@
"From": 1,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1305,6 +1359,7 @@
"From": 2,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1326,6 +1381,7 @@
"From": 1,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1347,6 +1403,7 @@
"From": 2,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1368,6 +1425,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1394,6 +1452,7 @@
"From": 3,
"Limit": 0,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1415,6 +1474,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1436,6 +1496,7 @@
"From": 4,
"Limit": 0,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1461,6 +1522,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1489,6 +1551,7 @@
"From": 4,
"Limit": 0,
"EmitPR": 500,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1510,6 +1573,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1536,6 +1600,7 @@
"From": 4,
"Limit": 0,
"EmitPR": 500,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1559,6 +1624,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1580,6 +1646,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1601,6 +1668,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1622,6 +1690,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1643,6 +1712,7 @@
"From": 2,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1671,6 +1741,7 @@
"From": 0,
"Limit": 0,
"EmitPR": 500,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -1695,6 +1766,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1719,6 +1791,7 @@
"From": 2,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1742,6 +1815,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1766,6 +1840,7 @@
"From": 2,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1789,6 +1864,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1810,6 +1886,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1831,6 +1908,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1852,6 +1930,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 0,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1875,6 +1954,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1896,6 +1976,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1917,6 +1998,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1938,6 +2020,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1959,6 +2042,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -1980,6 +2064,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2001,6 +2086,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2022,6 +2108,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2043,6 +2130,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2066,6 +2154,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2087,6 +2176,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2108,6 +2198,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2129,6 +2220,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2150,6 +2242,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2171,6 +2264,7 @@
"From": 2,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2192,6 +2286,7 @@
"From": 1,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2213,6 +2308,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2234,6 +2330,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2255,6 +2352,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2276,6 +2374,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2297,6 +2396,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2318,6 +2418,7 @@
"From": 2,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2344,6 +2445,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2365,6 +2467,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2386,6 +2489,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2407,6 +2511,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2428,6 +2533,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2449,6 +2555,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2470,6 +2577,7 @@
"From": 1,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2491,6 +2599,7 @@
"From": 1,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2512,6 +2621,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2535,6 +2645,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2556,6 +2667,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2577,6 +2689,7 @@
"From": 0,
"Limit": 0,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "NowHpDmg",
@@ -2598,6 +2711,7 @@
"From": 0,
"Limit": 0,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "BuffAction",
@@ -2619,6 +2733,7 @@
"From": 0,
"Limit": 0,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -2638,6 +2753,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2659,6 +2775,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2680,6 +2797,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2701,6 +2819,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2722,6 +2841,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2743,6 +2863,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2764,6 +2885,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2785,6 +2907,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2806,6 +2929,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2827,6 +2951,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2848,6 +2973,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2873,6 +2999,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2894,6 +3021,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2915,6 +3043,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2936,6 +3065,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2959,6 +3089,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -2980,6 +3111,7 @@
"From": 0,
"Limit": 0,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [
"BuffRely,Rely1,Key=1,Op=0,Val=1"
],
@@ -3003,6 +3135,7 @@
"From": 0,
"Limit": 0,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [
"BuffRely,Rely1,Key=1,Op=3,Val=0"
],
@@ -3026,6 +3159,7 @@
"From": 0,
"Limit": 0,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -3047,6 +3181,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -3068,6 +3203,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -3089,6 +3225,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -3110,6 +3247,7 @@
"From": 2,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [
"BuffRely,Rely0,Key=390004008,Op=4,Val=1"
],
@@ -3133,6 +3271,7 @@
"From": 3,
"Limit": 0,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -3154,6 +3293,7 @@
"From": 3,
"Limit": 0,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -3175,6 +3315,7 @@
"From": 3,
"Limit": 0,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -3196,6 +3337,7 @@
"From": 3,
"Limit": 0,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -3217,6 +3359,7 @@
"From": 3,
"Limit": 0,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -3238,6 +3381,7 @@
"From": 3,
"Limit": 0,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -3259,6 +3403,7 @@
"From": 3,
"Limit": 0,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -3280,6 +3425,7 @@
"From": 3,
"Limit": 0,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -3301,6 +3447,7 @@
"From": 3,
"Limit": 0,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -3322,6 +3469,7 @@
"From": 3,
"Limit": 0,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -3343,6 +3491,7 @@
"From": 0,
"Limit": 0,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Again",
@@ -3362,6 +3511,7 @@
"From": 0,
"Limit": 0,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -3383,6 +3533,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -3404,6 +3555,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -3425,6 +3577,7 @@
"From": 0,
"Limit": 0,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -3451,6 +3604,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -3472,6 +3626,7 @@
"From": 2,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -3496,6 +3651,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddPas",
@@ -3515,6 +3671,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -3534,6 +3691,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddPas",
@@ -3553,6 +3711,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddPas",
@@ -3572,6 +3731,7 @@
"From": 2,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -3593,6 +3753,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -3612,6 +3773,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Tre",
@@ -3631,6 +3793,7 @@
"From": 1,
"Limit": 5,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [
"Type=Rnd"
@@ -3652,6 +3815,7 @@
"From": 1,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -3671,6 +3835,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -3692,6 +3857,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 400,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -3711,6 +3877,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -3732,6 +3899,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 400,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -3751,6 +3919,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -3772,6 +3941,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 500,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -3791,6 +3961,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -3812,6 +3983,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 500,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -3831,6 +4003,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -3852,6 +4025,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 600,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -3871,6 +4045,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -3892,6 +4067,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 600,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -3911,6 +4087,7 @@
"From": 1,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "RemoveDebuff",
@@ -3930,6 +4107,7 @@
"From": 1,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AveTre",
@@ -3949,6 +4127,7 @@
"From": 1,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -3968,6 +4147,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -3987,6 +4167,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -4006,6 +4187,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddPas",
@@ -4025,6 +4207,7 @@
"From": 1,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Tre",
@@ -4044,6 +4227,7 @@
"From": 1,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "RemoveDebuff",
@@ -4063,6 +4247,7 @@
"From": 1,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -4082,6 +4267,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -4103,6 +4289,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -4124,6 +4311,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "ShiftBuff",
@@ -4145,6 +4333,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -4164,6 +4353,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -4185,6 +4375,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -4204,6 +4395,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -4225,6 +4417,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -4244,6 +4437,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -4265,6 +4459,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -4284,6 +4479,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -4305,6 +4501,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -4324,6 +4521,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -4345,6 +4543,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -4364,6 +4563,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -4383,6 +4583,7 @@
"From": 3,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddPas",
@@ -4402,6 +4603,7 @@
"From": 9,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "NowHpDps",
@@ -4421,6 +4623,7 @@
"From": 9,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "RemoveDebuff",
@@ -4440,6 +4643,7 @@
"From": 9,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -4459,6 +4663,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -4480,6 +4685,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "RemoveDebuff",
@@ -4501,6 +4707,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -4520,6 +4727,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -4541,6 +4749,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "RemoveDebuff",
@@ -4562,6 +4771,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -4583,6 +4793,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "RemoveDebuff",
@@ -4604,6 +4815,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -4625,6 +4837,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "RemoveDebuff",
@@ -4646,6 +4859,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -4667,6 +4881,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "RemoveDebuff",
@@ -4688,6 +4903,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -4710,6 +4926,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "RemoveDebuff",
@@ -4731,6 +4948,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -4750,6 +4968,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "BuffCD",
@@ -4769,6 +4988,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -4791,6 +5011,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "RemoveDebuff",
@@ -4812,6 +5033,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -4834,6 +5056,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "RemoveDebuff",
@@ -4855,6 +5078,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -4877,6 +5101,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "RemoveDebuff",
@@ -4898,6 +5123,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -4920,6 +5146,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "RemoveDebuff",
@@ -4941,6 +5168,7 @@
"From": 1,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -4960,6 +5188,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -4981,6 +5210,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -5000,6 +5230,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -5021,6 +5252,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -5040,6 +5272,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -5061,6 +5294,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -5080,6 +5314,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -5101,6 +5336,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -5120,6 +5356,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -5141,6 +5378,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -5160,6 +5398,7 @@
"From": 1,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "RemoveDebuff",
@@ -5179,6 +5418,7 @@
"From": 1,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -5198,6 +5438,7 @@
"From": 1,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "RemoveDebuff",
@@ -5217,6 +5458,7 @@
"From": 1,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -5236,6 +5478,7 @@
"From": 1,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -5255,6 +5498,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -5274,6 +5518,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddActValue",
@@ -5293,6 +5538,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -5312,6 +5558,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddActValue",
@@ -5331,6 +5578,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -5350,6 +5598,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddActValue",
@@ -5369,6 +5618,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -5388,6 +5638,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddActValue",
@@ -5407,6 +5658,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -5426,6 +5678,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddActValue",
@@ -5445,6 +5698,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -5464,6 +5718,7 @@
"From": 1,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -5483,6 +5738,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -5504,6 +5760,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -5523,6 +5780,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -5544,6 +5802,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -5563,6 +5822,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -5584,6 +5844,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -5603,6 +5864,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -5624,6 +5886,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -5643,6 +5906,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -5664,6 +5928,7 @@
"From": 4,
"Limit": 1,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -5683,6 +5948,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -5704,6 +5970,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddActValue",
@@ -5723,6 +5990,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -5744,6 +6012,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddActValue",
@@ -5763,6 +6032,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -5784,6 +6054,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddActValue",
@@ -5803,6 +6074,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -5824,6 +6096,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddActValue",
@@ -5843,6 +6116,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -5864,6 +6138,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -5883,6 +6158,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -5902,6 +6178,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -5924,6 +6201,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -5943,6 +6221,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -5962,6 +6241,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -5984,6 +6264,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -6003,6 +6284,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -6022,6 +6304,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -6044,6 +6327,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -6063,6 +6347,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddBuff",
@@ -6082,6 +6367,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -6104,6 +6390,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddActValue",
@@ -6123,6 +6410,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddPas",
@@ -6142,6 +6430,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddActValue",
@@ -6161,6 +6450,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -6183,6 +6473,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddActValue",
@@ -6202,6 +6493,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -6224,6 +6516,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddActValue",
@@ -6243,6 +6536,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "Dmg",
@@ -6265,6 +6559,7 @@
"From": 2,
"Limit": 10,
"EmitPR": 1000,
+ "AfteratkAct": "",
"Where": [],
"Order": [],
"Type": "AddActValue",
diff --git a/bin/json/game_ui.json b/bin/json/game_ui.json
index f22d4714a..6a7d64ccd 100644
--- a/bin/json/game_ui.json
+++ b/bin/json/game_ui.json
@@ -684,16 +684,16 @@
"des": "装备强化"
},
{
- "id": "strengthenup",
- "file": "StrengthenUpWindow",
+ "id": "equistrengthenup",
+ "file": "EquiStrengthenUpPopup",
"unloadpkg": 5,
"loadtype": 1,
"full": 0,
"blur": 1,
"package": "roledetails/roledetails",
"packagename": "roledetails",
- "comname": "strengthen",
- "des": "英雄升级升星详情"
+ "comname": "equistrengthenup",
+ "des": "装备强化成功弹窗"
},
{
"id": "croppingwindow",
@@ -746,7 +746,7 @@
{
"id": "examine",
"file": "ExaminePopup",
- "unloadpkg": 5,
+ "unloadpkg": 3,
"loadtype": 1,
"full": 0,
"blur": 1,
@@ -806,7 +806,7 @@
{
"id": "resonancepopup",
"file": "ResonancePopup",
- "unloadpkg": 5,
+ "unloadpkg": 3,
"loadtype": 1,
"full": 0,
"blur": 1,
@@ -818,7 +818,7 @@
{
"id": "materialsynthesispopup",
"file": "MaterialSynthesisPopup",
- "unloadpkg": 5,
+ "unloadpkg": 3,
"loadtype": 1,
"full": 0,
"blur": 1,
@@ -850,5 +850,77 @@
"packagename": "pagoda",
"comname": "main",
"des": "心魔之塔"
+ },
+ {
+ "id": "pagodaadoptreward",
+ "file": "PagodaAdoptRewardPopup",
+ "unloadpkg": 3,
+ "loadtype": 1,
+ "full": 0,
+ "blur": 0,
+ "package": "pagoda/pagoda",
+ "packagename": "pagoda",
+ "comname": "pagodaadoptreward",
+ "des": "心魔之塔奖励弹窗"
+ },
+ {
+ "id": "pagodalineup",
+ "file": "PagodaLineupPopup",
+ "unloadpkg": 3,
+ "loadtype": 1,
+ "full": 0,
+ "blur": 0,
+ "package": "pagoda/pagoda",
+ "packagename": "pagoda",
+ "comname": "pagodalineup",
+ "des": "心魔之塔推荐阵容弹窗"
+ },
+ {
+ "id": "pagodarankingpopup",
+ "file": "PagodaRankingPopup",
+ "unloadpkg": 3,
+ "loadtype": 1,
+ "full": 0,
+ "blur": 0,
+ "package": "pagoda/pagoda",
+ "packagename": "pagoda",
+ "comname": "pagodaranking",
+ "des": "心魔之塔排行弹窗"
+ },
+ {
+ "id": "pagodaseasonpopup",
+ "file": "PagodaRankingPopup",
+ "unloadpkg": 3,
+ "loadtype": 1,
+ "full": 0,
+ "blur": 0,
+ "package": "pagoda/pagoda",
+ "packagename": "pagoda",
+ "comname": "pagodaranking",
+ "des": "心魔之塔排行弹窗"
+ },
+ {
+ "id": "friendsystemwin",
+ "file": "FriendSystemWindow",
+ "unloadpkg": 2,
+ "loadtype": 1,
+ "full": 1,
+ "blur": 0,
+ "package": "friendsystem/friendsystem",
+ "packagename": "friendsystem",
+ "comname": "main",
+ "des": "好友系统"
+ },
+ {
+ "id": "frienddetailspop",
+ "file": "FriendDetailsPopup",
+ "unloadpkg": 3,
+ "loadtype": 1,
+ "full": 0,
+ "blur": 0,
+ "package": "friendsystem/friendsystem",
+ "packagename": "friendsystem",
+ "comname": "details",
+ "des": "好详细信息"
}
]
\ No newline at end of file
diff --git a/modules/rtask/config.go b/modules/rtask/config.go
index 052dd2246..3370b26ed 100644
--- a/modules/rtask/config.go
+++ b/modules/rtask/config.go
@@ -107,7 +107,7 @@ func (this *configureComp) getFirstTask() *cfg.GameRdtaskAllData {
}
if cfg != nil {
for _, v := range cfg.GetDataList() {
- if v.IdLast == 0 {
+ if v.Aftertaks == 0 {
return v
}
}
diff --git a/modules/rtask/model_rtask.go b/modules/rtask/model_rtask.go
index 9dc44caa3..d4c57e34f 100644
--- a/modules/rtask/model_rtask.go
+++ b/modules/rtask/model_rtask.go
@@ -41,7 +41,7 @@ func (this *ModelRtask) doRtaskHandle(uid string, param *pb.RtaskParam) (rtaskId
if len(rtask.FrtaskIds) == 0 {
conf := this.moduleRtask.configure.getFirstTask()
if conf != nil {
- taskId = conf.IdLast
+ taskId = conf.Aftertaks
}
} else {
//TODO
diff --git a/modules/rtask/module.go b/modules/rtask/module.go
index 1be0f62c0..0991ffe10 100644
--- a/modules/rtask/module.go
+++ b/modules/rtask/module.go
@@ -66,7 +66,7 @@ func (this *ModuleRtask) initRtaskHandle() {
for _, v := range data {
var handlers []*rtaskCondi
rtask := &rtask{
- rtaskId: v.RdtaksId,
+ rtaskId: v.Id,
handlers: handlers,
}
@@ -109,7 +109,7 @@ func (this *ModuleRtask) initRtaskHandle() {
}
}
- this.register(v.RdtaksId, rtask)
+ this.register(v.Id, rtask)
}
}
diff --git a/modules/web/config.go b/modules/web/config.go
index b714579a9..e0e38f411 100644
--- a/modules/web/config.go
+++ b/modules/web/config.go
@@ -1,14 +1,8 @@
package web
import (
- "fmt"
"go_dreamfactory/lego/core"
"go_dreamfactory/modules"
- cfg "go_dreamfactory/sys/configure/structs"
-)
-
-const (
- game_serverlist = "game_serverlist.json"
)
type configureComp struct {
@@ -17,35 +11,6 @@ type configureComp struct {
func (this *configureComp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
err = this.MCompConfigure.Init(service, module, comp, options)
- err = this.LoadConfigure(game_serverlist, cfg.NewGame_serverList)
- return
-}
-
-func (this *configureComp) getConfig() (data *cfg.Game_serverList, err error) {
- var (
- v interface{}
- ok bool
- )
- if v, err = this.GetConfigure(game_serverlist); err != nil {
- return
- } else {
- if data, ok = v.(*cfg.Game_serverList); !ok {
- err = fmt.Errorf("%T no is *cfg.Game_ActiveReward", v)
- return
- }
- }
- return
-}
-
-func (this *configureComp) getServerListConf() (data []*cfg.Game_serverListData) {
- conf, err := this.getConfig()
- if err != nil {
- return data
- }
-
- if conf != nil {
- return conf.GetDataList()
- }
return
}
diff --git a/sys/configure/structs/ALocalizeConfig.go b/sys/configure/structs/ALocalizeConfig.go
deleted file mode 100644
index 2fab4df79..000000000
--- a/sys/configure/structs/ALocalizeConfig.go
+++ /dev/null
@@ -1,40 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// 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 ALocalizeConfig struct {
- Key string
-}
-
-const TypeId_ALocalizeConfig = 1703856460
-
-func (*ALocalizeConfig) GetTypeId() int32 {
- return 1703856460
-}
-
-func (_v *ALocalizeConfig)Deserialize(_buf map[string]interface{}) (err error) {
- { var _ok_ bool; if _v.Key, _ok_ = _buf["key"].(string); !_ok_ { err = errors.New("key error"); return } }
- return
-}
-
-func DeserializeALocalizeConfig(_buf map[string]interface{}) (interface{}, error) {
- var id string
- var _ok_ bool
- if id, _ok_ = _buf["$type"].(string) ; !_ok_ {
- return nil, errors.New("type id missing")
- }
- switch id {
- case "LocalizeConfig_CN": _v := &LocalizeConfig_CN{}; if err := _v.Deserialize(_buf); err != nil { return nil, errors.New("LocalizeConfig_CN") } else { return _v, nil }
- case "LocalizeConfig_EN": _v := &LocalizeConfig_EN{}; if err := _v.Deserialize(_buf); err != nil { return nil, errors.New("LocalizeConfig_EN") } else { return _v, nil }
- case "LocalizeConfig_TW": _v := &LocalizeConfig_TW{}; if err := _v.Deserialize(_buf); err != nil { return nil, errors.New("LocalizeConfig_TW") } else { return _v, nil }
- default: return nil, errors.New("unknown type id")
- }
-}
diff --git a/sys/configure/structs/Localize.LocalizeConfig_CNCategory.go b/sys/configure/structs/Localize.LocalizeConfig_CNCategory.go
deleted file mode 100644
index f36e1c142..000000000
--- a/sys/configure/structs/Localize.LocalizeConfig_CNCategory.go
+++ /dev/null
@@ -1,42 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// 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 LocalizeLocalizeConfig_CNCategory struct {
- _dataMap map[string]*LocalizeConfig_CN
- _dataList []*LocalizeConfig_CN
-}
-
-func NewLocalizeLocalizeConfig_CNCategory(_buf []map[string]interface{}) (*LocalizeLocalizeConfig_CNCategory, error) {
- _dataList := make([]*LocalizeConfig_CN, 0, len(_buf))
- dataMap := make(map[string]*LocalizeConfig_CN)
- for _, _ele_ := range _buf {
- if _v, err2 := DeserializeLocalizeConfig_CN(_ele_); err2 != nil {
- return nil, err2
- } else {
- _dataList = append(_dataList, _v)
- dataMap[_v.Key] = _v
- }
- }
- return &LocalizeLocalizeConfig_CNCategory{_dataList:_dataList, _dataMap:dataMap}, nil
-}
-
-func (table *LocalizeLocalizeConfig_CNCategory) GetDataMap() map[string]*LocalizeConfig_CN {
- return table._dataMap
-}
-
-func (table *LocalizeLocalizeConfig_CNCategory) GetDataList() []*LocalizeConfig_CN {
- return table._dataList
-}
-
-func (table *LocalizeLocalizeConfig_CNCategory) Get(key string) *LocalizeConfig_CN {
- return table._dataMap[key]
-}
-
-
diff --git a/sys/configure/structs/Localize.LocalizeConfig_ENCategory.go b/sys/configure/structs/Localize.LocalizeConfig_ENCategory.go
deleted file mode 100644
index 72d72195d..000000000
--- a/sys/configure/structs/Localize.LocalizeConfig_ENCategory.go
+++ /dev/null
@@ -1,42 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// 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 LocalizeLocalizeConfig_ENCategory struct {
- _dataMap map[string]*LocalizeConfig_EN
- _dataList []*LocalizeConfig_EN
-}
-
-func NewLocalizeLocalizeConfig_ENCategory(_buf []map[string]interface{}) (*LocalizeLocalizeConfig_ENCategory, error) {
- _dataList := make([]*LocalizeConfig_EN, 0, len(_buf))
- dataMap := make(map[string]*LocalizeConfig_EN)
- for _, _ele_ := range _buf {
- if _v, err2 := DeserializeLocalizeConfig_EN(_ele_); err2 != nil {
- return nil, err2
- } else {
- _dataList = append(_dataList, _v)
- dataMap[_v.Key] = _v
- }
- }
- return &LocalizeLocalizeConfig_ENCategory{_dataList:_dataList, _dataMap:dataMap}, nil
-}
-
-func (table *LocalizeLocalizeConfig_ENCategory) GetDataMap() map[string]*LocalizeConfig_EN {
- return table._dataMap
-}
-
-func (table *LocalizeLocalizeConfig_ENCategory) GetDataList() []*LocalizeConfig_EN {
- return table._dataList
-}
-
-func (table *LocalizeLocalizeConfig_ENCategory) Get(key string) *LocalizeConfig_EN {
- return table._dataMap[key]
-}
-
-
diff --git a/sys/configure/structs/Localize.LocalizeConfig_TWCategory.go b/sys/configure/structs/Localize.LocalizeConfig_TWCategory.go
deleted file mode 100644
index 8a6459c02..000000000
--- a/sys/configure/structs/Localize.LocalizeConfig_TWCategory.go
+++ /dev/null
@@ -1,42 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// 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 LocalizeLocalizeConfig_TWCategory struct {
- _dataMap map[string]*LocalizeConfig_TW
- _dataList []*LocalizeConfig_TW
-}
-
-func NewLocalizeLocalizeConfig_TWCategory(_buf []map[string]interface{}) (*LocalizeLocalizeConfig_TWCategory, error) {
- _dataList := make([]*LocalizeConfig_TW, 0, len(_buf))
- dataMap := make(map[string]*LocalizeConfig_TW)
- for _, _ele_ := range _buf {
- if _v, err2 := DeserializeLocalizeConfig_TW(_ele_); err2 != nil {
- return nil, err2
- } else {
- _dataList = append(_dataList, _v)
- dataMap[_v.Key] = _v
- }
- }
- return &LocalizeLocalizeConfig_TWCategory{_dataList:_dataList, _dataMap:dataMap}, nil
-}
-
-func (table *LocalizeLocalizeConfig_TWCategory) GetDataMap() map[string]*LocalizeConfig_TW {
- return table._dataMap
-}
-
-func (table *LocalizeLocalizeConfig_TWCategory) GetDataList() []*LocalizeConfig_TW {
- return table._dataList
-}
-
-func (table *LocalizeLocalizeConfig_TWCategory) Get(key string) *LocalizeConfig_TW {
- return table._dataMap[key]
-}
-
-
diff --git a/sys/configure/structs/LocalizeConfig_CN.go b/sys/configure/structs/LocalizeConfig_CN.go
deleted file mode 100644
index 9450e03a8..000000000
--- a/sys/configure/structs/LocalizeConfig_CN.go
+++ /dev/null
@@ -1,37 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// 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 LocalizeConfig_CN struct {
- Key string
- TextCn string
-}
-
-const TypeId_LocalizeConfig_CN = 2049582687
-
-func (*LocalizeConfig_CN) GetTypeId() int32 {
- return 2049582687
-}
-
-func (_v *LocalizeConfig_CN)Deserialize(_buf map[string]interface{}) (err error) {
- { var _ok_ bool; if _v.Key, _ok_ = _buf["key"].(string); !_ok_ { err = errors.New("key error"); return } }
- { var _ok_ bool; if _v.TextCn, _ok_ = _buf["text_cn"].(string); !_ok_ { err = errors.New("text_cn error"); return } }
- return
-}
-
-func DeserializeLocalizeConfig_CN(_buf map[string]interface{}) (*LocalizeConfig_CN, error) {
- v := &LocalizeConfig_CN{}
- if err := v.Deserialize(_buf); err == nil {
- return v, nil
- } else {
- return nil, err
- }
-}
diff --git a/sys/configure/structs/LocalizeConfig_EN.go b/sys/configure/structs/LocalizeConfig_EN.go
deleted file mode 100644
index 6f63a12c6..000000000
--- a/sys/configure/structs/LocalizeConfig_EN.go
+++ /dev/null
@@ -1,37 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// 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 LocalizeConfig_EN struct {
- Key string
- TextEn string
-}
-
-const TypeId_LocalizeConfig_EN = 2049582749
-
-func (*LocalizeConfig_EN) GetTypeId() int32 {
- return 2049582749
-}
-
-func (_v *LocalizeConfig_EN)Deserialize(_buf map[string]interface{}) (err error) {
- { var _ok_ bool; if _v.Key, _ok_ = _buf["key"].(string); !_ok_ { err = errors.New("key error"); return } }
- { var _ok_ bool; if _v.TextEn, _ok_ = _buf["text_en"].(string); !_ok_ { err = errors.New("text_en error"); return } }
- return
-}
-
-func DeserializeLocalizeConfig_EN(_buf map[string]interface{}) (*LocalizeConfig_EN, error) {
- v := &LocalizeConfig_EN{}
- if err := v.Deserialize(_buf); err == nil {
- return v, nil
- } else {
- return nil, err
- }
-}
diff --git a/sys/configure/structs/LocalizeConfig_TW.go b/sys/configure/structs/LocalizeConfig_TW.go
deleted file mode 100644
index 32a02e88a..000000000
--- a/sys/configure/structs/LocalizeConfig_TW.go
+++ /dev/null
@@ -1,37 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// 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 LocalizeConfig_TW struct {
- Key string
- TextTw string
-}
-
-const TypeId_LocalizeConfig_TW = 2049583223
-
-func (*LocalizeConfig_TW) GetTypeId() int32 {
- return 2049583223
-}
-
-func (_v *LocalizeConfig_TW)Deserialize(_buf map[string]interface{}) (err error) {
- { var _ok_ bool; if _v.Key, _ok_ = _buf["key"].(string); !_ok_ { err = errors.New("key error"); return } }
- { var _ok_ bool; if _v.TextTw, _ok_ = _buf["text_tw"].(string); !_ok_ { err = errors.New("text_tw error"); return } }
- return
-}
-
-func DeserializeLocalizeConfig_TW(_buf map[string]interface{}) (*LocalizeConfig_TW, error) {
- v := &LocalizeConfig_TW{}
- if err := v.Deserialize(_buf); err == nil {
- return v, nil
- } else {
- return nil, err
- }
-}
diff --git a/sys/configure/structs/Tables.go b/sys/configure/structs/Tables.go
index 1c8bef618..2734d2c0d 100644
--- a/sys/configure/structs/Tables.go
+++ b/sys/configure/structs/Tables.go
@@ -68,9 +68,9 @@ type Tables struct {
pagodaTaskReward *GamepagodaTaskReward
pagodaSeasonReward *GamepagodaSeasonReward
pagodaseasonLoop *GamepagodaseasonLoop
- rdtaskAll *GamerdtaskAll
- rdtaskType *GamerdtaskType
- rdtaskChoose *GamerdtaskChoose
+ RdtaskAll *GameRdtaskAll
+ RdtaskType *GameRdtaskType
+ RdtaskChoose *GameRdtaskChoose
kungfu_unlock *Gamekungfu_unlock
kungfu_masterworker *Gamekungfu_masterworker
Gourmet *GameGourmet
@@ -427,19 +427,19 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if buf, err = loader("game_rdtaskall") ; err != nil {
return nil, err
}
- if tables.rdtaskAll, err = NewGamerdtaskAll(buf) ; err != nil {
+ if tables.RdtaskAll, err = NewGameRdtaskAll(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_rdtasktype") ; err != nil {
return nil, err
}
- if tables.rdtaskType, err = NewGamerdtaskType(buf) ; err != nil {
+ if tables.RdtaskType, err = NewGameRdtaskType(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_rdtaskchoose") ; err != nil {
return nil, err
}
- if tables.rdtaskChoose, err = NewGamerdtaskChoose(buf) ; err != nil {
+ if tables.RdtaskChoose, err = NewGameRdtaskChoose(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_kungfu_unlock") ; err != nil {
diff --git a/sys/configure/structs/game.RdtaksAll.go b/sys/configure/structs/game.RdtaksAll.go
deleted file mode 100644
index e8b38f20e..000000000
--- a/sys/configure/structs/game.RdtaksAll.go
+++ /dev/null
@@ -1,42 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// 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 GameRdtaksAll struct {
- _dataMap map[int32]*GameRdtaksAllData
- _dataList []*GameRdtaksAllData
-}
-
-func NewGameRdtaksAll(_buf []map[string]interface{}) (*GameRdtaksAll, error) {
- _dataList := make([]*GameRdtaksAllData, 0, len(_buf))
- dataMap := make(map[int32]*GameRdtaksAllData)
- for _, _ele_ := range _buf {
- if _v, err2 := DeserializeGameRdtaksAllData(_ele_); err2 != nil {
- return nil, err2
- } else {
- _dataList = append(_dataList, _v)
- dataMap[_v.RdtaksId] = _v
- }
- }
- return &GameRdtaksAll{_dataList:_dataList, _dataMap:dataMap}, nil
-}
-
-func (table *GameRdtaksAll) GetDataMap() map[int32]*GameRdtaksAllData {
- return table._dataMap
-}
-
-func (table *GameRdtaksAll) GetDataList() []*GameRdtaksAllData {
- return table._dataList
-}
-
-func (table *GameRdtaksAll) Get(key int32) *GameRdtaksAllData {
- return table._dataMap[key]
-}
-
-
diff --git a/sys/configure/structs/game.RdtaksAllData.go b/sys/configure/structs/game.RdtaksAllData.go
deleted file mode 100644
index 039999325..000000000
--- a/sys/configure/structs/game.RdtaksAllData.go
+++ /dev/null
@@ -1,105 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// 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 GameRdtaksAllData struct {
- RdtaksId int32
- TaskType int32
- RdtaksNum []int32
- IdLast []int32
- IdAfter int32
- IdTag int32
- Story int32
- Completetask int32
- Reword []*Gameatn
- ChooseId []int32
-}
-
-const TypeId_GameRdtaksAllData = -100955128
-
-func (*GameRdtaksAllData) GetTypeId() int32 {
- return -100955128
-}
-
-func (_v *GameRdtaksAllData)Deserialize(_buf map[string]interface{}) (err error) {
- { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["rdtaks_id"].(float64); !_ok_ { err = errors.New("rdtaks_id error"); return }; _v.RdtaksId = int32(_tempNum_) }
- { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["task_type"].(float64); !_ok_ { err = errors.New("task_type error"); return }; _v.TaskType = int32(_tempNum_) }
- {
- var _arr_ []interface{}
- var _ok_ bool
- if _arr_, _ok_ = _buf["rdtaks_num"].([]interface{}); !_ok_ { err = errors.New("rdtaks_num error"); return }
-
- _v.RdtaksNum = 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.RdtaksNum = append(_v.RdtaksNum, _list_v_)
- }
- }
-
- {
- var _arr_ []interface{}
- var _ok_ bool
- if _arr_, _ok_ = _buf["id_last"].([]interface{}); !_ok_ { err = errors.New("id_last error"); return }
-
- _v.IdLast = 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.IdLast = append(_v.IdLast, _list_v_)
- }
- }
-
- { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id_after"].(float64); !_ok_ { err = errors.New("id_after error"); return }; _v.IdAfter = int32(_tempNum_) }
- { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id_tag"].(float64); !_ok_ { err = errors.New("id_tag error"); return }; _v.IdTag = int32(_tempNum_) }
- { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["story"].(float64); !_ok_ { err = errors.New("story error"); return }; _v.Story = int32(_tempNum_) }
- { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["completetask"].(float64); !_ok_ { err = errors.New("completetask error"); return }; _v.Completetask = int32(_tempNum_) }
- {
- var _arr_ []interface{}
- var _ok_ bool
- if _arr_, _ok_ = _buf["reword"].([]interface{}); !_ok_ { err = errors.New("reword error"); return }
-
- _v.Reword = 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.Reword = append(_v.Reword, _list_v_)
- }
- }
-
- {
- var _arr_ []interface{}
- var _ok_ bool
- if _arr_, _ok_ = _buf["choose_id"].([]interface{}); !_ok_ { err = errors.New("choose_id error"); return }
-
- _v.ChooseId = 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.ChooseId = append(_v.ChooseId, _list_v_)
- }
- }
-
- return
-}
-
-func DeserializeGameRdtaksAllData(_buf map[string]interface{}) (*GameRdtaksAllData, error) {
- v := &GameRdtaksAllData{}
- if err := v.Deserialize(_buf); err == nil {
- return v, nil
- } else {
- return nil, err
- }
-}
diff --git a/sys/configure/structs/game.RdtaksChoose.go b/sys/configure/structs/game.RdtaksChoose.go
deleted file mode 100644
index 8b8c6b67c..000000000
--- a/sys/configure/structs/game.RdtaksChoose.go
+++ /dev/null
@@ -1,42 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// 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 GameRdtaksChoose struct {
- _dataMap map[int32]*GameRdtaksChooseData
- _dataList []*GameRdtaksChooseData
-}
-
-func NewGameRdtaksChoose(_buf []map[string]interface{}) (*GameRdtaksChoose, error) {
- _dataList := make([]*GameRdtaksChooseData, 0, len(_buf))
- dataMap := make(map[int32]*GameRdtaksChooseData)
- for _, _ele_ := range _buf {
- if _v, err2 := DeserializeGameRdtaksChooseData(_ele_); err2 != nil {
- return nil, err2
- } else {
- _dataList = append(_dataList, _v)
- dataMap[_v.ChooseId] = _v
- }
- }
- return &GameRdtaksChoose{_dataList:_dataList, _dataMap:dataMap}, nil
-}
-
-func (table *GameRdtaksChoose) GetDataMap() map[int32]*GameRdtaksChooseData {
- return table._dataMap
-}
-
-func (table *GameRdtaksChoose) GetDataList() []*GameRdtaksChooseData {
- return table._dataList
-}
-
-func (table *GameRdtaksChoose) Get(key int32) *GameRdtaksChooseData {
- return table._dataMap[key]
-}
-
-
diff --git a/sys/configure/structs/game.RdtaksChooseData.go b/sys/configure/structs/game.RdtaksChooseData.go
deleted file mode 100644
index 74b20694a..000000000
--- a/sys/configure/structs/game.RdtaksChooseData.go
+++ /dev/null
@@ -1,41 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// 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 GameRdtaksChooseData struct {
- ChooseId int32
- Num int32
- RdtaksNum int32
- RdtaksId int32
-}
-
-const TypeId_GameRdtaksChooseData = -1888133596
-
-func (*GameRdtaksChooseData) GetTypeId() int32 {
- return -1888133596
-}
-
-func (_v *GameRdtaksChooseData)Deserialize(_buf map[string]interface{}) (err error) {
- { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["choose_id"].(float64); !_ok_ { err = errors.New("choose_id error"); return }; _v.ChooseId = int32(_tempNum_) }
- { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["num"].(float64); !_ok_ { err = errors.New("num error"); return }; _v.Num = int32(_tempNum_) }
- { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["rdtaks_num"].(float64); !_ok_ { err = errors.New("rdtaks_num error"); return }; _v.RdtaksNum = int32(_tempNum_) }
- { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["rdtaks_id"].(float64); !_ok_ { err = errors.New("rdtaks_id error"); return }; _v.RdtaksId = int32(_tempNum_) }
- return
-}
-
-func DeserializeGameRdtaksChooseData(_buf map[string]interface{}) (*GameRdtaksChooseData, error) {
- v := &GameRdtaksChooseData{}
- if err := v.Deserialize(_buf); err == nil {
- return v, nil
- } else {
- return nil, err
- }
-}
diff --git a/sys/configure/structs/game.RdtaksType.go b/sys/configure/structs/game.RdtaksType.go
deleted file mode 100644
index df279548b..000000000
--- a/sys/configure/structs/game.RdtaksType.go
+++ /dev/null
@@ -1,42 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// 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 GameRdtaksType struct {
- _dataMap map[int32]*GameRdtaksTypeData
- _dataList []*GameRdtaksTypeData
-}
-
-func NewGameRdtaksType(_buf []map[string]interface{}) (*GameRdtaksType, error) {
- _dataList := make([]*GameRdtaksTypeData, 0, len(_buf))
- dataMap := make(map[int32]*GameRdtaksTypeData)
- for _, _ele_ := range _buf {
- if _v, err2 := DeserializeGameRdtaksTypeData(_ele_); err2 != nil {
- return nil, err2
- } else {
- _dataList = append(_dataList, _v)
- dataMap[_v.RdtaksNum] = _v
- }
- }
- return &GameRdtaksType{_dataList:_dataList, _dataMap:dataMap}, nil
-}
-
-func (table *GameRdtaksType) GetDataMap() map[int32]*GameRdtaksTypeData {
- return table._dataMap
-}
-
-func (table *GameRdtaksType) GetDataList() []*GameRdtaksTypeData {
- return table._dataList
-}
-
-func (table *GameRdtaksType) Get(key int32) *GameRdtaksTypeData {
- return table._dataMap[key]
-}
-
-
diff --git a/sys/configure/structs/game.RdtaksTypeData.go b/sys/configure/structs/game.RdtaksTypeData.go
deleted file mode 100644
index ca2461f89..000000000
--- a/sys/configure/structs/game.RdtaksTypeData.go
+++ /dev/null
@@ -1,47 +0,0 @@
-//------------------------------------------------------------------------------
-//
-// 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 GameRdtaksTypeData struct {
- RdtaksNum int32
- Typdes int32
- Datatime int32
- TyptaskId int32
- Data1 int32
- Data2 int32
- Data3 int32
-}
-
-const TypeId_GameRdtaksTypeData = -1284226425
-
-func (*GameRdtaksTypeData) GetTypeId() int32 {
- return -1284226425
-}
-
-func (_v *GameRdtaksTypeData)Deserialize(_buf map[string]interface{}) (err error) {
- { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["rdtaks_num"].(float64); !_ok_ { err = errors.New("rdtaks_num error"); return }; _v.RdtaksNum = int32(_tempNum_) }
- { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["typdes"].(float64); !_ok_ { err = errors.New("typdes error"); return }; _v.Typdes = int32(_tempNum_) }
- { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["datatime"].(float64); !_ok_ { err = errors.New("datatime error"); return }; _v.Datatime = int32(_tempNum_) }
- { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["typtask_id"].(float64); !_ok_ { err = errors.New("typtask_id error"); return }; _v.TyptaskId = int32(_tempNum_) }
- { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["data1"].(float64); !_ok_ { err = errors.New("data1 error"); return }; _v.Data1 = int32(_tempNum_) }
- { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["data2"].(float64); !_ok_ { err = errors.New("data2 error"); return }; _v.Data2 = int32(_tempNum_) }
- { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["data3"].(float64); !_ok_ { err = errors.New("data3 error"); return }; _v.Data3 = int32(_tempNum_) }
- return
-}
-
-func DeserializeGameRdtaksTypeData(_buf map[string]interface{}) (*GameRdtaksTypeData, error) {
- v := &GameRdtaksTypeData{}
- if err := v.Deserialize(_buf); err == nil {
- return v, nil
- } else {
- return nil, err
- }
-}
diff --git a/sys/configure/structs/game.pagodaseasonLoop.go b/sys/configure/structs/game.pagodaseasonLoop.go
new file mode 100644
index 000000000..db23c348d
--- /dev/null
+++ b/sys/configure/structs/game.pagodaseasonLoop.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 GamepagodaseasonLoop struct {
+ _dataMap map[int32]*GamepagodaseasonLoopData
+ _dataList []*GamepagodaseasonLoopData
+}
+
+func NewGamepagodaseasonLoop(_buf []map[string]interface{}) (*GamepagodaseasonLoop, error) {
+ _dataList := make([]*GamepagodaseasonLoopData, 0, len(_buf))
+ dataMap := make(map[int32]*GamepagodaseasonLoopData)
+ for _, _ele_ := range _buf {
+ if _v, err2 := DeserializeGamepagodaseasonLoopData(_ele_); err2 != nil {
+ return nil, err2
+ } else {
+ _dataList = append(_dataList, _v)
+ dataMap[_v.Key] = _v
+ }
+ }
+ return &GamepagodaseasonLoop{_dataList:_dataList, _dataMap:dataMap}, nil
+}
+
+func (table *GamepagodaseasonLoop) GetDataMap() map[int32]*GamepagodaseasonLoopData {
+ return table._dataMap
+}
+
+func (table *GamepagodaseasonLoop) GetDataList() []*GamepagodaseasonLoopData {
+ return table._dataList
+}
+
+func (table *GamepagodaseasonLoop) Get(key int32) *GamepagodaseasonLoopData {
+ return table._dataMap[key]
+}
+
+
diff --git a/sys/configure/structs/game.pagodaseasonLoopData.go b/sys/configure/structs/game.pagodaseasonLoopData.go
new file mode 100644
index 000000000..bcbf62ca5
--- /dev/null
+++ b/sys/configure/structs/game.pagodaseasonLoopData.go
@@ -0,0 +1,65 @@
+//------------------------------------------------------------------------------
+//
+// 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 GamepagodaseasonLoopData struct {
+ Key int32
+ DisposableLoop []int32
+ FixedLoop []int32
+}
+
+const TypeId_GamepagodaseasonLoopData = -1606971581
+
+func (*GamepagodaseasonLoopData) GetTypeId() int32 {
+ return -1606971581
+}
+
+func (_v *GamepagodaseasonLoopData)Deserialize(_buf map[string]interface{}) (err error) {
+ { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["key"].(float64); !_ok_ { err = errors.New("key error"); return }; _v.Key = int32(_tempNum_) }
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["disposable_loop"].([]interface{}); !_ok_ { err = errors.New("disposable_loop error"); return }
+
+ _v.DisposableLoop = 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.DisposableLoop = append(_v.DisposableLoop, _list_v_)
+ }
+ }
+
+ {
+ var _arr_ []interface{}
+ var _ok_ bool
+ if _arr_, _ok_ = _buf["fixed_loop"].([]interface{}); !_ok_ { err = errors.New("fixed_loop error"); return }
+
+ _v.FixedLoop = 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.FixedLoop = append(_v.FixedLoop, _list_v_)
+ }
+ }
+
+ return
+}
+
+func DeserializeGamepagodaseasonLoopData(_buf map[string]interface{}) (*GamepagodaseasonLoopData, error) {
+ v := &GamepagodaseasonLoopData{}
+ if err := v.Deserialize(_buf); err == nil {
+ return v, nil
+ } else {
+ return nil, err
+ }
+}
diff --git a/sys/configure/structs/game.rdtaskAll.go b/sys/configure/structs/game.rdtaskAll.go
index 7ccb34b8b..cbd2288a3 100644
--- a/sys/configure/structs/game.rdtaskAll.go
+++ b/sys/configure/structs/game.rdtaskAll.go
@@ -8,34 +8,34 @@
package cfg
-type GamerdtaskAll struct {
- _dataMap map[int32]*GamerdtaskAllData
- _dataList []*GamerdtaskAllData
+type GameRdtaskAll struct {
+ _dataMap map[int32]*GameRdtaskAllData
+ _dataList []*GameRdtaskAllData
}
-func NewGamerdtaskAll(_buf []map[string]interface{}) (*GamerdtaskAll, error) {
- _dataList := make([]*GamerdtaskAllData, 0, len(_buf))
- dataMap := make(map[int32]*GamerdtaskAllData)
+func NewGameRdtaskAll(_buf []map[string]interface{}) (*GameRdtaskAll, error) {
+ _dataList := make([]*GameRdtaskAllData, 0, len(_buf))
+ dataMap := make(map[int32]*GameRdtaskAllData)
for _, _ele_ := range _buf {
- if _v, err2 := DeserializeGamerdtaskAllData(_ele_); err2 != nil {
+ if _v, err2 := DeserializeGameRdtaskAllData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Id] = _v
}
}
- return &GamerdtaskAll{_dataList:_dataList, _dataMap:dataMap}, nil
+ return &GameRdtaskAll{_dataList:_dataList, _dataMap:dataMap}, nil
}
-func (table *GamerdtaskAll) GetDataMap() map[int32]*GamerdtaskAllData {
+func (table *GameRdtaskAll) GetDataMap() map[int32]*GameRdtaskAllData {
return table._dataMap
}
-func (table *GamerdtaskAll) GetDataList() []*GamerdtaskAllData {
+func (table *GameRdtaskAll) GetDataList() []*GameRdtaskAllData {
return table._dataList
}
-func (table *GamerdtaskAll) Get(key int32) *GamerdtaskAllData {
+func (table *GameRdtaskAll) Get(key int32) *GameRdtaskAllData {
return table._dataMap[key]
}
diff --git a/sys/configure/structs/game.rdtaskAllData.go b/sys/configure/structs/game.rdtaskAllData.go
index c438ec8b7..2ded0d1fa 100644
--- a/sys/configure/structs/game.rdtaskAllData.go
+++ b/sys/configure/structs/game.rdtaskAllData.go
@@ -10,7 +10,7 @@ package cfg
import "errors"
-type GamerdtaskAllData struct {
+type GameRdtaskAllData struct {
Id int32
Type int32
Lastend int32
@@ -24,13 +24,13 @@ type GamerdtaskAllData struct {
Reword []*Gameatn
}
-const TypeId_GamerdtaskAllData = 762735928
+const TypeId_GameRdtaskAllData = 1561697560
-func (*GamerdtaskAllData) GetTypeId() int32 {
- return 762735928
+func (*GameRdtaskAllData) GetTypeId() int32 {
+ return 1561697560
}
-func (_v *GamerdtaskAllData)Deserialize(_buf map[string]interface{}) (err error) {
+func (_v *GameRdtaskAllData)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 _tempNum_ float64; if _tempNum_, _ok_ = _buf["lastend"].(float64); !_ok_ { err = errors.New("lastend error"); return }; _v.Lastend = int32(_tempNum_) }
@@ -84,8 +84,8 @@ func (_v *GamerdtaskAllData)Deserialize(_buf map[string]interface{}) (err error)
return
}
-func DeserializeGamerdtaskAllData(_buf map[string]interface{}) (*GamerdtaskAllData, error) {
- v := &GamerdtaskAllData{}
+func DeserializeGameRdtaskAllData(_buf map[string]interface{}) (*GameRdtaskAllData, error) {
+ v := &GameRdtaskAllData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
diff --git a/sys/configure/structs/game.rdtaskChoose.go b/sys/configure/structs/game.rdtaskChoose.go
index a848533a1..6d34008d7 100644
--- a/sys/configure/structs/game.rdtaskChoose.go
+++ b/sys/configure/structs/game.rdtaskChoose.go
@@ -8,34 +8,34 @@
package cfg
-type GamerdtaskChoose struct {
- _dataMap map[int32]*GamerdtaskChooseData
- _dataList []*GamerdtaskChooseData
+type GameRdtaskChoose struct {
+ _dataMap map[int32]*GameRdtaskChooseData
+ _dataList []*GameRdtaskChooseData
}
-func NewGamerdtaskChoose(_buf []map[string]interface{}) (*GamerdtaskChoose, error) {
- _dataList := make([]*GamerdtaskChooseData, 0, len(_buf))
- dataMap := make(map[int32]*GamerdtaskChooseData)
+func NewGameRdtaskChoose(_buf []map[string]interface{}) (*GameRdtaskChoose, error) {
+ _dataList := make([]*GameRdtaskChooseData, 0, len(_buf))
+ dataMap := make(map[int32]*GameRdtaskChooseData)
for _, _ele_ := range _buf {
- if _v, err2 := DeserializeGamerdtaskChooseData(_ele_); err2 != nil {
+ if _v, err2 := DeserializeGameRdtaskChooseData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Chooseid] = _v
}
}
- return &GamerdtaskChoose{_dataList:_dataList, _dataMap:dataMap}, nil
+ return &GameRdtaskChoose{_dataList:_dataList, _dataMap:dataMap}, nil
}
-func (table *GamerdtaskChoose) GetDataMap() map[int32]*GamerdtaskChooseData {
+func (table *GameRdtaskChoose) GetDataMap() map[int32]*GameRdtaskChooseData {
return table._dataMap
}
-func (table *GamerdtaskChoose) GetDataList() []*GamerdtaskChooseData {
+func (table *GameRdtaskChoose) GetDataList() []*GameRdtaskChooseData {
return table._dataList
}
-func (table *GamerdtaskChoose) Get(key int32) *GamerdtaskChooseData {
+func (table *GameRdtaskChoose) Get(key int32) *GameRdtaskChooseData {
return table._dataMap[key]
}
diff --git a/sys/configure/structs/game.rdtaskChooseData.go b/sys/configure/structs/game.rdtaskChooseData.go
index f8b4fbe9d..6a72027a8 100644
--- a/sys/configure/structs/game.rdtaskChooseData.go
+++ b/sys/configure/structs/game.rdtaskChooseData.go
@@ -10,20 +10,20 @@ package cfg
import "errors"
-type GamerdtaskChooseData struct {
+type GameRdtaskChooseData struct {
Chooseid int32
Num int32
RdtaksNum int32
Need []int32
}
-const TypeId_GamerdtaskChooseData = 1478012660
+const TypeId_GameRdtaskChooseData = 635237140
-func (*GamerdtaskChooseData) GetTypeId() int32 {
- return 1478012660
+func (*GameRdtaskChooseData) GetTypeId() int32 {
+ return 635237140
}
-func (_v *GamerdtaskChooseData)Deserialize(_buf map[string]interface{}) (err error) {
+func (_v *GameRdtaskChooseData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["chooseid"].(float64); !_ok_ { err = errors.New("chooseid error"); return }; _v.Chooseid = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["num"].(float64); !_ok_ { err = errors.New("num error"); return }; _v.Num = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["rdtaks_num"].(float64); !_ok_ { err = errors.New("rdtaks_num error"); return }; _v.RdtaksNum = int32(_tempNum_) }
@@ -44,8 +44,8 @@ func (_v *GamerdtaskChooseData)Deserialize(_buf map[string]interface{}) (err err
return
}
-func DeserializeGamerdtaskChooseData(_buf map[string]interface{}) (*GamerdtaskChooseData, error) {
- v := &GamerdtaskChooseData{}
+func DeserializeGameRdtaskChooseData(_buf map[string]interface{}) (*GameRdtaskChooseData, error) {
+ v := &GameRdtaskChooseData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
diff --git a/sys/configure/structs/game.rdtaskType.go b/sys/configure/structs/game.rdtaskType.go
index a666ffac2..b1ec19cb7 100644
--- a/sys/configure/structs/game.rdtaskType.go
+++ b/sys/configure/structs/game.rdtaskType.go
@@ -8,34 +8,34 @@
package cfg
-type GamerdtaskType struct {
- _dataMap map[int32]*GamerdtaskTypeData
- _dataList []*GamerdtaskTypeData
+type GameRdtaskType struct {
+ _dataMap map[int32]*GameRdtaskTypeData
+ _dataList []*GameRdtaskTypeData
}
-func NewGamerdtaskType(_buf []map[string]interface{}) (*GamerdtaskType, error) {
- _dataList := make([]*GamerdtaskTypeData, 0, len(_buf))
- dataMap := make(map[int32]*GamerdtaskTypeData)
+func NewGameRdtaskType(_buf []map[string]interface{}) (*GameRdtaskType, error) {
+ _dataList := make([]*GameRdtaskTypeData, 0, len(_buf))
+ dataMap := make(map[int32]*GameRdtaskTypeData)
for _, _ele_ := range _buf {
- if _v, err2 := DeserializeGamerdtaskTypeData(_ele_); err2 != nil {
+ if _v, err2 := DeserializeGameRdtaskTypeData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.RdtaksNum] = _v
}
}
- return &GamerdtaskType{_dataList:_dataList, _dataMap:dataMap}, nil
+ return &GameRdtaskType{_dataList:_dataList, _dataMap:dataMap}, nil
}
-func (table *GamerdtaskType) GetDataMap() map[int32]*GamerdtaskTypeData {
+func (table *GameRdtaskType) GetDataMap() map[int32]*GameRdtaskTypeData {
return table._dataMap
}
-func (table *GamerdtaskType) GetDataList() []*GamerdtaskTypeData {
+func (table *GameRdtaskType) GetDataList() []*GameRdtaskTypeData {
return table._dataList
}
-func (table *GamerdtaskType) Get(key int32) *GamerdtaskTypeData {
+func (table *GameRdtaskType) Get(key int32) *GameRdtaskTypeData {
return table._dataMap[key]
}
diff --git a/sys/configure/structs/game.rdtaskTypeData.go b/sys/configure/structs/game.rdtaskTypeData.go
index 880f3aecf..a779729f6 100644
--- a/sys/configure/structs/game.rdtaskTypeData.go
+++ b/sys/configure/structs/game.rdtaskTypeData.go
@@ -10,7 +10,7 @@ package cfg
import "errors"
-type GamerdtaskTypeData struct {
+type GameRdtaskTypeData struct {
RdtaksNum int32
Typdes int32
Datatime int32
@@ -20,13 +20,13 @@ type GamerdtaskTypeData struct {
Data3 int32
}
-const TypeId_GamerdtaskTypeData = -279607465
+const TypeId_GameRdtaskTypeData = -1281600649
-func (*GamerdtaskTypeData) GetTypeId() int32 {
- return -279607465
+func (*GameRdtaskTypeData) GetTypeId() int32 {
+ return -1281600649
}
-func (_v *GamerdtaskTypeData)Deserialize(_buf map[string]interface{}) (err error) {
+func (_v *GameRdtaskTypeData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["rdtaks_num"].(float64); !_ok_ { err = errors.New("rdtaks_num error"); return }; _v.RdtaksNum = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["typdes"].(float64); !_ok_ { err = errors.New("typdes error"); return }; _v.Typdes = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["datatime"].(float64); !_ok_ { err = errors.New("datatime error"); return }; _v.Datatime = int32(_tempNum_) }
@@ -37,8 +37,8 @@ func (_v *GamerdtaskTypeData)Deserialize(_buf map[string]interface{}) (err error
return
}
-func DeserializeGamerdtaskTypeData(_buf map[string]interface{}) (*GamerdtaskTypeData, error) {
- v := &GamerdtaskTypeData{}
+func DeserializeGameRdtaskTypeData(_buf map[string]interface{}) (*GameRdtaskTypeData, error) {
+ v := &GameRdtaskTypeData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
diff --git a/sys/configure/structs/game.serverList.go b/sys/configure/structs/game.serverList.go
deleted file mode 100644
index 3b5f79227..000000000
--- a/sys/configure/structs/game.serverList.go
+++ /dev/null
@@ -1,42 +0,0 @@
-
-//------------------------------------------------------------------------------
-//
-// 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 Game_serverList struct {
- _dataMap map[int32]*Game_serverListData
- _dataList []*Game_serverListData
-}
-
-func NewGame_serverList(_buf []map[string]interface{}) (*Game_serverList, error) {
- _dataList := make([]*Game_serverListData, 0, len(_buf))
- dataMap := make(map[int32]*Game_serverListData)
- for _, _ele_ := range _buf {
- if _v, err2 := NewGame_serverListData(_ele_); err2 != nil {
- return nil, err2
- } else {
- _dataList = append(_dataList, _v)
- dataMap[_v.Id] = _v
- }
- }
- return &Game_serverList{_dataList:_dataList, _dataMap:dataMap}, nil
-}
-
-func (table *Game_serverList) GetDataMap() map[int32]*Game_serverListData {
- return table._dataMap
-}
-
-func (table *Game_serverList) GetDataList() []*Game_serverListData {
- return table._dataList
-}
-
-func (table *Game_serverList) Get(key int32) *Game_serverListData {
- return table._dataMap[key]
-}
-
-
diff --git a/sys/configure/structs/game.serverListData.go b/sys/configure/structs/game.serverListData.go
deleted file mode 100644
index d220bfbd7..000000000
--- a/sys/configure/structs/game.serverListData.go
+++ /dev/null
@@ -1,33 +0,0 @@
-
-//------------------------------------------------------------------------------
-//
-// 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 Game_serverListData struct {
- Id int32
- Ip string
- Port int32
- GroupId int32
- Name string
-}
-
-func (Game_serverListData) GetTypeId() int {
- return 292904775
-}
-
-func NewGame_serverListData(_buf map[string]interface{}) (_v *Game_serverListData, err error) {
- _v = &Game_serverListData{}
- { 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.Ip, _ok_ = _buf["ip"].(string); !_ok_ { err = errors.New("ip error"); return } }
- { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["port"].(float64); !_ok_ { err = errors.New("port error"); return }; _v.Port = int32(_tempNum_) }
- { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["groupId"].(float64); !_ok_ { err = errors.New("groupId error"); return }; _v.GroupId = int32(_tempNum_) }
- { var _ok_ bool; if _v.Name, _ok_ = _buf["name"].(string); !_ok_ { err = errors.New("name error"); return } }
- return
-}
diff --git a/sys/configure/structs/game.skillAfteratkData.go b/sys/configure/structs/game.skillAfteratkData.go
index 59a22a598..340bf2215 100644
--- a/sys/configure/structs/game.skillAfteratkData.go
+++ b/sys/configure/structs/game.skillAfteratkData.go
@@ -16,6 +16,7 @@ type GameskillAfteratkData struct {
From int32
Limit int32
EmitPR int32
+ AfteratkAct string
Where []string
Order []string
Type string
@@ -42,6 +43,7 @@ func (_v *GameskillAfteratkData)Deserialize(_buf map[string]interface{}) (err er
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["From"].(float64); !_ok_ { err = errors.New("From error"); return }; _v.From = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["Limit"].(float64); !_ok_ { err = errors.New("Limit error"); return }; _v.Limit = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["EmitPR"].(float64); !_ok_ { err = errors.New("EmitPR error"); return }; _v.EmitPR = int32(_tempNum_) }
+ { var _ok_ bool; if _v.AfteratkAct, _ok_ = _buf["AfteratkAct"].(string); !_ok_ { err = errors.New("AfteratkAct error"); return } }
{
var _arr_ []interface{}
var _ok_ bool
From 98f149b3ee00800435cf5383fbef21a767227957 Mon Sep 17 00:00:00 2001
From: liwei1dao
Date: Thu, 18 Aug 2022 09:52:18 +0800
Subject: [PATCH 09/10] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E8=81=8A=E5=A4=A9?=
=?UTF-8?q?=E6=88=90=E5=8A=9F=E8=BF=94=E5=9B=9E?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
modules/chat/api_send.go | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/modules/chat/api_send.go b/modules/chat/api_send.go
index 028dfd5c1..0057b1fae 100644
--- a/modules/chat/api_send.go
+++ b/modules/chat/api_send.go
@@ -93,6 +93,6 @@ func (this *apiComp) Send(session comm.IUserSession, req *pb.ChatSendReq) (code
this.module.PushToUsers(userexpand.Chatchannel, msg)
break
}
- session.SendMsg(string(this.module.GetType()), "send", &pb.ChatSendResp{})
+ session.SendMsg(string(this.module.GetType()), "send", &pb.ChatSendResp{Issucc: true})
return
}
From bad7c449037dce07b00d17e43eb0d7daaa12b591 Mon Sep 17 00:00:00 2001
From: wh_zcy
Date: Thu, 18 Aug 2022 10:00:43 +0800
Subject: [PATCH 10/10] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E9=85=8D=E7=BD=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
modules/friend/api_addblack.go | 2 +-
modules/friend/api_apply.go | 4 ++--
modules/friend/api_zan.go | 2 +-
modules/friend/api_zanreceive.go | 4 ++--
modules/friend/module.go | 32 --------------------------------
modules/rtask/config.go | 4 ++--
modules/rtask/module.go | 4 +++-
7 files changed, 11 insertions(+), 41 deletions(-)
diff --git a/modules/friend/api_addblack.go b/modules/friend/api_addblack.go
index 6c74b5461..17d11f5d8 100644
--- a/modules/friend/api_addblack.go
+++ b/modules/friend/api_addblack.go
@@ -70,7 +70,7 @@ func (this *apiComp) Addblack(session comm.IUserSession, req *pb.FriendBlackAddR
}
// 判断是否黑名单人数已满
- if len(self.BlackIds) >= this.moduleFriend.getBlackMax() {
+ if len(self.BlackIds) >= int(this.moduleFriend.configure.GetGlobalConf().FriendBlack) {
code = pb.ErrorCode_FriendBlackMax
return
}
diff --git a/modules/friend/api_apply.go b/modules/friend/api_apply.go
index 067af6ab5..388b3bf84 100644
--- a/modules/friend/api_apply.go
+++ b/modules/friend/api_apply.go
@@ -63,13 +63,13 @@ func (this *apiComp) Apply(session comm.IUserSession, req *pb.FriendApplyReq) (c
}
//判断是否超过最大好友数量
- if len(self.FriendIds) >= this.moduleFriend.getFriendMax() {
+ if len(self.FriendIds) >= int(this.moduleFriend.configure.GetGlobalConf().FriendMaxnum) {
code = pb.ErrorCode_FriendSelfMax
return
}
//判断对方是否也超过最大好友数量
- if len(target.FriendIds) >= this.moduleFriend.getFriendMax() {
+ if len(target.FriendIds) >= int(this.moduleFriend.configure.GetGlobalConf().FriendMaxnum) {
code = pb.ErrorCode_FriendTargetMax
return
}
diff --git a/modules/friend/api_zan.go b/modules/friend/api_zan.go
index f99295839..886bdbe62 100644
--- a/modules/friend/api_zan.go
+++ b/modules/friend/api_zan.go
@@ -56,7 +56,7 @@ func (this *apiComp) Zan(session comm.IUserSession, req *pb.FriendZanReq) (code
}
// 今日送出的友情点是否达到上限
- if ue.FriendPointOD >= int32(this.moduleFriend.getOutFriendPointMax()) {
+ if ue.FriendPointOD >= this.moduleFriend.configure.GetGlobalConf().FriendMaxsendnum {
code = pb.ErrorCode_FriendPointLimit
return
}
diff --git a/modules/friend/api_zanreceive.go b/modules/friend/api_zanreceive.go
index 3caf4de1a..21bbb2600 100644
--- a/modules/friend/api_zanreceive.go
+++ b/modules/friend/api_zanreceive.go
@@ -56,13 +56,13 @@ func (this *apiComp) Zanreceive(session comm.IUserSession, req *pb.FriendZanrece
}
// 今日获赠的友情点是否达到上限
- if ue.FriendPointID >= int32(this.moduleFriend.getInFriendPointMax()) {
+ if ue.FriendPointID >= int32(this.moduleFriend.configure.GetGlobalConf().FriendMaxgetnum) {
code = pb.ErrorCode_FriendPointLimit
return
}
update := map[string]interface{}{
- "friendPoint": ue.FriendPoint + 10,
+ "friendPoint": ue.FriendPoint + 10,
"friendPointID": ue.FriendPointID + 10,
}
if err := this.moduleFriend.ModuleUser.ChangeUserExpand(session.GetUserId(), update); err != nil {
diff --git a/modules/friend/module.go b/modules/friend/module.go
index 7c06158a2..2bb91fb83 100644
--- a/modules/friend/module.go
+++ b/modules/friend/module.go
@@ -36,38 +36,6 @@ func (this *Friend) OnInstallComp() {
this.modelFriend = this.RegisterComp(new(ModelFriend)).(*ModelFriend)
}
-//获取最大好友数
-func (this *Friend) getFriendMax() int {
- // if maxHy := this.configure.GetGlobalConf("friend_maxnum"); maxHy != "" {
- // return cast.ToInt(maxHy)
- // }
- return 0
-}
-
-//获取最大黑名单数
-func (this *Friend) getBlackMax() int {
- // if maxHy := this.configure.GetGlobalConf("friend_black"); maxHy != "" {
- // return cast.ToInt(maxHy)
- // }
- return 0
-}
-
-// 每日最大送出友情点
-func (this *Friend) getOutFriendPointMax() int {
- // if max := this.configure.GetGlobalConf("friend_maxsendnum"); max != "" {
- // return cast.ToInt(max)
- // }
- return 0
-}
-
-// 每日最大获赠友情点
-func (this *Friend) getInFriendPointMax() int {
- // if max := this.configure.GetGlobalConf("friend_maxsendnum"); max != "" {
- // return cast.ToInt(max)
- // }
- return 0
-}
-
func (this *Friend) ResetFriend(uid string) {
// 重置点赞列表
zanUpdate := map[string]interface{}{
diff --git a/modules/rtask/config.go b/modules/rtask/config.go
index 3370b26ed..5b6d6a980 100644
--- a/modules/rtask/config.go
+++ b/modules/rtask/config.go
@@ -9,8 +9,8 @@ import (
const (
gameRtask = "game_rdtaskall.json"
- gameRtaskChoose = "rdtaskchoose.json"
- gameRtaskType = "rdtasktype.json"
+ gameRtaskChoose = "game_rdtaskchoose.json"
+ gameRtaskType = "game_rdtasktype.json"
)
type configureComp struct {
diff --git a/modules/rtask/module.go b/modules/rtask/module.go
index 0991ffe10..48beb246b 100644
--- a/modules/rtask/module.go
+++ b/modules/rtask/module.go
@@ -52,7 +52,9 @@ func (this *ModuleRtask) Init(service core.IService, module core.IModule, option
func (this *ModuleRtask) OnInstallComp() {
this.ModuleBase.OnInstallComp()
-
+ this.api = this.RegisterComp(new(apiComp)).(*apiComp)
+ this.modelRtask = this.RegisterComp(new(ModelRtask)).(*ModelRtask)
+ this.configure = this.RegisterComp(new(configureComp)).(*configureComp)
}
func (this *ModuleRtask) register(rtaskId int32, rtask *rtask) {