This commit is contained in:
liwei1dao 2022-06-27 19:52:14 +08:00
commit 35c5689bb5
48 changed files with 4742 additions and 1054 deletions

File diff suppressed because it is too large Load Diff

View File

@ -2,86 +2,103 @@
{ {
"suittype": 0, "suittype": 0,
"suitnum": 4, "suitnum": 4,
"skill": 100012000 "skill": 100012000,
"skillintr": ""
}, },
{ {
"suittype": 1, "suittype": 1,
"suitnum": 4, "suitnum": 4,
"skill": 100012000 "skill": 100012000,
"skillintr": ""
}, },
{ {
"suittype": 2, "suittype": 2,
"suitnum": 4, "suitnum": 4,
"skill": 100012000 "skill": 100012000,
"skillintr": ""
}, },
{ {
"suittype": 3, "suittype": 3,
"suitnum": 4, "suitnum": 4,
"skill": 100012000 "skill": 100012000,
"skillintr": ""
}, },
{ {
"suittype": 4, "suittype": 4,
"suitnum": 4, "suitnum": 4,
"skill": 100012000 "skill": 100012000,
"skillintr": ""
}, },
{ {
"suittype": 5, "suittype": 5,
"suitnum": 4, "suitnum": 4,
"skill": 100012000 "skill": 100012000,
"skillintr": ""
}, },
{ {
"suittype": 6, "suittype": 6,
"suitnum": 4, "suitnum": 4,
"skill": 100012000 "skill": 100012000,
"skillintr": ""
}, },
{ {
"suittype": 7, "suittype": 7,
"suitnum": 4, "suitnum": 4,
"skill": 100012000 "skill": 100012000,
"skillintr": ""
}, },
{ {
"suittype": 8, "suittype": 8,
"suitnum": 4, "suitnum": 4,
"skill": 100012000 "skill": 100012000,
"skillintr": ""
}, },
{ {
"suittype": 9, "suittype": 9,
"suitnum": 4, "suitnum": 4,
"skill": 100012000 "skill": 100012000,
"skillintr": ""
}, },
{ {
"suittype": 100, "suittype": 100,
"suitnum": 2, "suitnum": 2,
"skill": 100012000 "skill": 100012000,
"skillintr": ""
}, },
{ {
"suittype": 101, "suittype": 101,
"suitnum": 2, "suitnum": 2,
"skill": 100012000 "skill": 100012000,
"skillintr": ""
}, },
{ {
"suittype": 102, "suittype": 102,
"suitnum": 2, "suitnum": 2,
"skill": 100012000 "skill": 100012000,
"skillintr": ""
}, },
{ {
"suittype": 103, "suittype": 103,
"suitnum": 2, "suitnum": 2,
"skill": 100012000 "skill": 100012000,
"skillintr": ""
}, },
{ {
"suittype": 104, "suittype": 104,
"suitnum": 2, "suitnum": 2,
"skill": 100012000 "skill": 100012000,
"skillintr": ""
}, },
{ {
"suittype": 105, "suittype": 105,
"suitnum": 2, "suitnum": 2,
"skill": 100012000 "skill": 100012000,
"skillintr": ""
}, },
{ {
"suittype": 106, "suittype": 106,
"suitnum": 2, "suitnum": 2,
"skill": 100012000 "skill": 100012000,
"skillintr": ""
} }
] ]

File diff suppressed because it is too large Load Diff

View File

@ -2,11 +2,16 @@
{ {
"Id": 200011101, "Id": 200011101,
"Desc": "对敌方1个目标造成攻击力80%", "Desc": "对敌方1个目标造成攻击力80%",
"Target": "", "From": 4,
"EmitPR": 0, "Limit": 1,
"Where": [],
"Order": [
"Type=rand"
],
"EmitPR": 1000,
"Type": "tongyongshanghai", "Type": "tongyongshanghai",
"Argu": [ "Argu": [
"DoVal=1,ProSou1=0,Pro1=Total_Atk,ProPar1=800," "DoVal=1,ProSou1=0,Pro1=Total_Atk,ProPar1=800"
], ],
"AddEffect": false, "AddEffect": false,
"FollowSK": [], "FollowSK": [],
@ -16,9 +21,14 @@
}, },
{ {
"Id": 200012101, "Id": 200012101,
"Desc": "对全体1个目标造成攻击力80%以及防御力120%的伤害", "Desc": "对敌方全体造成攻击力80%以及防御力120%的伤害",
"Target": "", "From": 2,
"EmitPR": 0, "Limit": 5,
"Where": [],
"Order": [
"Type=rand"
],
"EmitPR": 1000,
"Type": "tongyongshanghai", "Type": "tongyongshanghai",
"Argu": [ "Argu": [
"DoVal=1,ProSou1=0,Pro1=Total_Atk,ProPar1=800,ProSou2=0,Pro2=Total_Def,ProPar2=1200" "DoVal=1,ProSou1=0,Pro1=Total_Atk,ProPar1=800,ProSou2=0,Pro2=Total_Def,ProPar2=1200"
@ -31,12 +41,17 @@
}, },
{ {
"Id": 200013101, "Id": 200013101,
"Desc": "对全体攻击小于自身的目标造成攻击力80%的伤害", "Desc": "对敌方全体攻击小于自身的目标造成攻击力80%的伤害",
"Target": "Action=ProJudge,JudgeType=0,Key=Total_Atk,Op=0", "From": 2,
"Limit": 5,
"Where": [
"Type=ProJudge,JudgeType=0,Key=Total_Atk,Op=1"
],
"Order": [],
"EmitPR": 1000, "EmitPR": 1000,
"Type": "tongyongshanghai", "Type": "tongyongshanghai",
"Argu": [ "Argu": [
"DoVal=1,ProSou1=0,Pro1=Total_Atk,ProPar1=800," "DoVal=1,ProSou1=0,Pro1=Total_Atk,ProPar1=800"
], ],
"AddEffect": false, "AddEffect": false,
"FollowSK": [], "FollowSK": [],

View File

@ -99,7 +99,7 @@
"Id": 100013000, "Id": 100013000,
"Name": "", "Name": "",
"Type": 1, "Type": 1,
"Desc": "对全体攻击小于自身的目标造成攻击力80%的伤害", "Desc": "对敌方全体攻击小于自身的目标造成攻击力80%的伤害",
"MaxLV": 6, "MaxLV": 6,
"CD": [ "CD": [
4, 4,

71
comm/const.go Normal file
View File

@ -0,0 +1,71 @@
package comm
import "go_dreamfactory/lego/core"
type LogHandleType string
const (
LogHandleType_Insert LogHandleType = "insert"
LogHandleType_Update LogHandleType = "update"
LogHandleType_Delete LogHandleType = "delete"
)
const (
SC_ServiceGateRouteComp core.S_Comps = "SC_GateRouteComp" //s_comps.ISC_GateRouteComp
)
const (
Service_Gateway = "gateway"
Service_Worker = "worker"
Service_DB = "dbservice"
)
//ERR
const (
MainType_Notify = "notify" //通知
SubType_ErrorNotify = "errornotify" //错误通知
)
//模块名定义处
const (
SM_GateModule core.M_Modules = "gateway" //gate模块 网关服务模块
SM_WebModule core.M_Modules = "web" //web模块
SM_UserModule core.M_Modules = "user" //用户模块
SM_PackModule core.M_Modules = "pack" //背包模块
SM_MailModule core.M_Modules = "mail" //邮件模块
SM_FriendModule core.M_Modules = "friend" //好友模块
SM_LogModelModule core.M_Modules = "model" //日志模块
SM_EquipmentModule core.M_Modules = "equipment" //装备模块
SM_HeroModule core.M_Modules = "hero" //英雄模块
SM_ForumModule core.M_Modules = "forum" //论坛模块
SM_ItemsModule core.M_Modules = "item"
)
//RPC服务接口定义处
const ( //Rpc
Rpc_GatewayRoute core.Rpc_Key = "Rpc_GatewayRoute" //网关路由
Rpc_GatewayAgentBind core.Rpc_Key = "Rpc_GatewayAgentBind" //代理绑定 绑定用户Id
Rpc_GatewayAgentUnBind core.Rpc_Key = "Rpc_GatewayAgentUnBind" //代理解绑 解绑用户Id
Rpc_GatewayAgentSendMsg core.Rpc_Key = "Rpc_GatewayAgentSendMsg" //代理发送消息 向用户发送消息
Rpc_GatewaySendBatchMsg core.Rpc_Key = "Rpc_GatewaySendBatchMsg" //向多个用户发送消息
Rpc_GatewaySendRadioMsg core.Rpc_Key = "Rpc_GatewaySendRadioMsg" //广播消息
Rpc_GatewayAgentClose core.Rpc_Key = "Rpc_GatewayAgentClose" //代理关闭 关闭用户连接
Rpc_NoticeUserClose core.Rpc_Key = "Rpc_NoticeUserClose" //通知用户离线
)
//事件类型定义处
const (
Event_UserLogin core.Event_Key = "Event_UserLogin" //登录事件
Event_CreateUser core.Event_Key = "Event_CreateUser" //创建角色事件
Event_UserOffline core.Event_Key = "Event_UserOffline" //用户离线事件
)
const (
DBService_Status string = "DBService_status"
)
const (
PropertyHp = 1 //生命
PropertyAtk = 2 //攻击
PropertyDef = 3 //防御
)

View File

@ -12,59 +12,6 @@ import (
"google.golang.org/protobuf/types/known/anypb" "google.golang.org/protobuf/types/known/anypb"
) )
const (
SC_ServiceGateRouteComp core.S_Comps = "SC_GateRouteComp" //s_comps.ISC_GateRouteComp
)
const (
Service_Gateway = "gateway"
Service_Worker = "worker"
Service_DB = "dbservice"
)
//ERR
const (
MainType_Notify = "notify" //通知
SubType_ErrorNotify = "errornotify" //错误通知
)
//模块名定义处
const (
SM_GateModule core.M_Modules = "gateway" //gate模块 网关服务模块
SM_WebModule core.M_Modules = "web" //web模块
SM_UserModule core.M_Modules = "user" //用户模块
SM_ItemsModule core.M_Modules = "items" //道具模块
SM_MailModule core.M_Modules = "mail" //邮件模块
SM_FriendModule core.M_Modules = "friend" //好友模块
SM_LogModelModule core.M_Modules = "model" //日志模块
SM_EquipmentModule core.M_Modules = "equipment" //装备模块
SM_HeroModule core.M_Modules = "hero" //英雄模块
SM_ForumModule core.M_Modules = "forum" //论坛模块
)
//RPC服务接口定义处
const ( //Rpc
Rpc_GatewayRoute core.Rpc_Key = "Rpc_GatewayRoute" //网关路由
Rpc_GatewayAgentBind core.Rpc_Key = "Rpc_GatewayAgentBind" //代理绑定 绑定用户Id
Rpc_GatewayAgentUnBind core.Rpc_Key = "Rpc_GatewayAgentUnBind" //代理解绑 解绑用户Id
Rpc_GatewayAgentSendMsg core.Rpc_Key = "Rpc_GatewayAgentSendMsg" //代理发送消息 向用户发送消息
Rpc_GatewaySendBatchMsg core.Rpc_Key = "Rpc_GatewaySendBatchMsg" //向多个用户发送消息
Rpc_GatewaySendRadioMsg core.Rpc_Key = "Rpc_GatewaySendRadioMsg" //广播消息
Rpc_GatewayAgentClose core.Rpc_Key = "Rpc_GatewayAgentClose" //代理关闭 关闭用户连接
Rpc_NoticeUserClose core.Rpc_Key = "Rpc_NoticeUserClose" //通知用户离线
)
//事件类型定义处
const (
Event_UserLogin core.Event_Key = "Event_UserLogin" //登录事件
Event_CreateUser core.Event_Key = "Event_CreateUser" //创建角色事件
Event_UserOffline core.Event_Key = "Event_UserOffline" //用户离线事件
)
const (
DBService_Status string = "DBService_status"
)
// 服务网关组件接口定义 // 服务网关组件接口定义
type ISC_GateRouteComp interface { type ISC_GateRouteComp interface {
core.IServiceComp core.IServiceComp
@ -88,12 +35,10 @@ type Autogenerated struct {
D []interface{} D []interface{}
} }
type LogHandleType string
const ( const (
LogHandleType_Insert LogHandleType = "insert" HeroStarLvRatio int32 = 10 // 卡牌等级上限系数(星级*10
LogHandleType_Update LogHandleType = "update"
LogHandleType_Delete LogHandleType = "delete"
) )
//Api Check 错误返回结构 //Api Check 错误返回结构

View File

@ -37,11 +37,17 @@ type (
QueryCardAmount(uId string, cardId int32) (amount uint32) QueryCardAmount(uId string, cardId int32) (amount uint32)
//添加/减少卡片 //添加/减少卡片
AddCard(uId string, cardId int32, add int32) (code pb.ErrorCode) AddCard(uId string, cardId int32, add int32) (code pb.ErrorCode)
//创建一个新英雄
CreatMultiHero(uid string, heroCfgId ...int32) error
// 获取英雄 // 获取英雄
// heroId 英雄ID // heroId 英雄ID
GetHero(heroId string) (*pb.DB_HeroData, pb.ErrorCode) GetHero(uid, heroId string) (*pb.DB_HeroData, pb.ErrorCode)
// 佩戴装备 // 佩戴装备
UpdateEquipment(hero *pb.DB_HeroData, equip []*pb.DB_Equipment) (code pb.ErrorCode) UpdateEquipment(hero *pb.DB_HeroData, equip []*pb.DB_Equipment) (code pb.ErrorCode)
//获取玩家英雄列表
GetHeroList(uid string) []*pb.DB_HeroData
} }
//玩家 //玩家
@ -50,9 +56,7 @@ type (
QueryAttributeValue(uid string, attr string) (value int32) QueryAttributeValue(uid string, attr string) (value int32)
//添加/减少属性值 //添加/减少属性值
AddAttributeValue(uid string, attr string, add int32) (code pb.ErrorCode) AddAttributeValue(uid string, attr string, add int32) (code pb.ErrorCode)
//获取玩家英雄列表
//uid 玩家ID
GetHeroList(uid string) []*pb.DB_HeroData
} }
//武器模块 //武器模块
IEquipment interface { IEquipment interface {

3
go.mod
View File

@ -3,7 +3,9 @@ module go_dreamfactory
go 1.18 go 1.18
require ( require (
bright v0.0.0
github.com/axgle/mahonia v0.0.0-20180208002826-3358181d7394 github.com/axgle/mahonia v0.0.0-20180208002826-3358181d7394
github.com/dengsgo/math-engine v0.0.0-20220213125415-0351c3c75eca
github.com/go-playground/validator/v10 v10.10.1 github.com/go-playground/validator/v10 v10.10.1
github.com/go-redis/redis/v8 v8.11.5 github.com/go-redis/redis/v8 v8.11.5
github.com/golang-jwt/jwt v3.2.2+incompatible github.com/golang-jwt/jwt v3.2.2+incompatible
@ -29,7 +31,6 @@ require (
golang.org/x/net v0.0.0-20220407224826-aac1ed45d8e3 golang.org/x/net v0.0.0-20220407224826-aac1ed45d8e3
google.golang.org/protobuf v1.28.0 google.golang.org/protobuf v1.28.0
gopkg.in/yaml.v2 v2.4.0 gopkg.in/yaml.v2 v2.4.0
bright v0.0.0
) )
require ( require (

2
go.sum
View File

@ -110,6 +110,8 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/dengsgo/math-engine v0.0.0-20220213125415-0351c3c75eca h1:5R7Xum+9XDxbGDYpBfeedfzbb11wG++geFn7EvMbhuA=
github.com/dengsgo/math-engine v0.0.0-20220213125415-0351c3c75eca/go.mod h1:zkR27k4K0I8FS6rkEd8qBhPeS8i3X2FKfvSPdF64OpQ=
github.com/dgryski/go-jump v0.0.0-20170409065014-e1f439676b57/go.mod h1:4hKCXuwrJoYvHZxJ86+bRVTOMyJ0Ej+RqfSm8mHi6KA= github.com/dgryski/go-jump v0.0.0-20170409065014-e1f439676b57/go.mod h1:4hKCXuwrJoYvHZxJ86+bRVTOMyJ0Ej+RqfSm8mHi6KA=
github.com/dgryski/go-jump v0.0.0-20211018200510-ba001c3ffce0 h1:0wH6nO9QEa02Qx8sIQGw6ieKdz+BXjpccSOo9vXNl4U= github.com/dgryski/go-jump v0.0.0-20211018200510-ba001c3ffce0 h1:0wH6nO9QEa02Qx8sIQGw6ieKdz+BXjpccSOo9vXNl4U=
github.com/dgryski/go-jump v0.0.0-20211018200510-ba001c3ffce0/go.mod h1:4hKCXuwrJoYvHZxJ86+bRVTOMyJ0Ej+RqfSm8mHi6KA= github.com/dgryski/go-jump v0.0.0-20211018200510-ba001c3ffce0/go.mod h1:4hKCXuwrJoYvHZxJ86+bRVTOMyJ0Ej+RqfSm8mHi6KA=

View File

@ -22,11 +22,22 @@ func (this *MComp_Configure) Init(service core.IService, module core.IModule, co
return return
} }
//加载配置文件 //加载一个配置文件
func (this *MComp_Configure) LoadConfigure(name string, fn interface{}) (err error) { func (this *MComp_Configure) LoadConfigure(name string, fn interface{}) (err error) {
return configure.RegisterConfigure(name, fn) return configure.RegisterConfigure(name, fn)
} }
//加载多个配置文件
func (this *MComp_Configure) LoadMultiConfigure(confs map[string]interface{}) (err error) {
for k, v := range confs {
err = configure.RegisterConfigure(k, v)
if err != nil {
break
}
}
return
}
//读取配置数据 //读取配置数据
func (this *MComp_Configure) GetConfigure(name string) (v interface{}, err error) { func (this *MComp_Configure) GetConfigure(name string) (v interface{}, err error) {
return configure.GetConfigure(name) return configure.GetConfigure(name)

View File

@ -33,7 +33,7 @@ func (this *Api_Comp) Equip_Check(session comm.IUserSession, req *pb.Equipment_E
} }
} }
if hero, errorCode = this.module.hero.GetHero(req.HeroCardId); errorCode != pb.ErrorCode_Success { if hero, errorCode = this.module.hero.GetHero(session.GetUserId(), req.HeroCardId); errorCode != pb.ErrorCode_Success {
code.Code = errorCode code.Code = errorCode
return return
} }

View File

@ -118,7 +118,7 @@ func (this *Api_Comp) Upgrade(session comm.IUserSession, agrs map[string]interfa
//已装备 重新计算属性 //已装备 重新计算属性
if equipment.HeroId != "" { if equipment.HeroId != "" {
if hero, code = this.module.hero.GetHero(equipment.HeroId); code != pb.ErrorCode_Success { if hero, code = this.module.hero.GetHero(session.GetUserId(), equipment.HeroId); code != pb.ErrorCode_Success {
log.Errorf("Upgrade code:%d", code) log.Errorf("Upgrade code:%d", code)
return return
} }

View File

@ -13,6 +13,8 @@ type Api_Comp struct {
const ( //消息回复的头名称 const ( //消息回复的头名称
StrengthenUplv = "strengthenherolv" StrengthenUplv = "strengthenherolv"
Hero_SubType_Info = "info" //英雄卡片信息
Hero_SubType_List = "list" //英雄列表
) )
//组件初始化接口 //组件初始化接口

View File

@ -3,15 +3,78 @@ package hero
import ( import (
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/pb" "go_dreamfactory/pb"
"log"
) )
//参数校验 //参数校验
func (this *Api_Comp) StrengthenUplv_Check(session comm.IUserSession, req *pb.Hero_StrengthenUplv_Req) (result map[string]interface{}, code comm.ErrorCode) { func (this *Api_Comp) StrengthenUplv_Check(session comm.IUserSession, req *pb.Hero_StrengthenUplv_Req) (result map[string]interface{}, code comm.ErrorCode) {
if req.HeroObjID == "" { if req.HeroObjID == "" {
code.Code = pb.ErrorCode_ReqParameterError code.Code = pb.ErrorCode_ReqParameterError
return
}
_hero, err := this.module.model_hero.moduleHero.GetHeroInfoByObjID(req.HeroObjID) // 校验升级的对象是否存在
if err != 0 {
code.Code = pb.ErrorCode_HeroNoExist
return
}
_expHero, err := this.module.model_hero.moduleHero.GetHeroInfoByObjID(req.ExpCardID) // 校验需要消耗经验卡牌的对象是否存在
if err != 0 {
code.Code = pb.ErrorCode_HeroNoExist
return
}
if req.Amount <= 0 { // 消耗数量校验
code.Code = pb.ErrorCode_HeroNoExist
return
}
curLv := _hero.Lv
curExp := _hero.Exp // 当前英雄的经验
var costGold int32 // 当前需要消耗金币的数量
var addExp int32 // 需要增加的经验
// 查询 本次消耗会获得多少经验
expConf := this.module.configure_comp.GetHeroExp(_expHero.HeroID)
if expConf != nil {
addExp = expConf.Heroexp * req.Amount
}
if _expHero.Count <= req.Amount { // 消耗经验卡片数量不足
code.Code = pb.ErrorCode_HeroNoEnough
return
}
// 校验当前能不能升级
if _hero.Lv >= _hero.Star*comm.HeroStarLvRatio { // 达到最大等级
code.Code = pb.ErrorCode_HeroMaxLv
return
}
if _data := this.module.configure_comp.GetHeroLv(curLv); _data != nil {
costGold += _data.Gold[0].N
curExp += addExp // 先把经验加上
// 当前升级需要消耗的经验
for { // 死循环判断一键升级
if _data.Heroexp[0].N <= curExp { // 升级操作
curExp = _data.Heroexp[0].N
if curExp >= 0 { // 大于下一级经验
curLv += 1 // 经验够了 那么等级+1
if _data := this.module.configure_comp.GetHeroLv(curLv); _data != nil {
if _data.Heroexp[0].N > curExp { // 经验不足则 直接返回
break
}
costGold += _data.Gold[0].N
} else {
break
}
}
} else {
break
}
}
}
// 校验金币消耗
result = map[string]interface{}{
"costGold": costGold,
"curExp": curExp,
"curLv": curLv,
} }
//this.module.model_hero.moduleHero.GetHeroInfoByObjID()
return return
} }
@ -24,12 +87,5 @@ func (this *Api_Comp) StrengthenUplv(session comm.IUserSession, agrs map[string]
} }
}() }()
if configure, err := this.module.configure_comp.GetHeroConfigure(); err != nil {
_data := configure.GetDataMap()
for key, value := range _data {
log.Fatalf("%d,%v", key, value)
}
}
return return
} }

33
modules/hero/api_info.go Normal file
View File

@ -0,0 +1,33 @@
package hero
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
)
//参数校验
func (this *Api_Comp) Info_Check(session comm.IUserSession, req *pb.Hero_Info_Req) (result map[string]interface{}, code comm.ErrorCode) {
result = map[string]interface{}{}
hero := this.module.model_hero.getOneHero(session.GetUserId(), req.HeroId)
if hero == nil {
code = comm.ErrorCode{Code: pb.ErrorCode_HeroNoExist}
}
result["hero"] = hero
return
}
func (this *Api_Comp) Info(session comm.IUserSession, result map[string]interface{}, req *pb.Hero_Info_Req) (code pb.ErrorCode) {
rsp := &pb.Hero_Info_Rsp{}
defer func() {
err := session.SendMsg(string(this.module.GetType()), Hero_SubType_Info, rsp)
if err != nil {
code = pb.ErrorCode_SystemError
return
}
}()
if v, ok := result["hero"]; ok {
rsp.Base = v.(*pb.DB_HeroData)
}
return
}

32
modules/hero/api_list.go Normal file
View File

@ -0,0 +1,32 @@
package hero
import (
"go_dreamfactory/comm"
"go_dreamfactory/pb"
)
//参数校验
func (this *Api_Comp) List_Check(session comm.IUserSession, req *pb.Hero_List_Req) (result map[string]interface{}, code comm.ErrorCode) {
return
}
func (this *Api_Comp) List(session comm.IUserSession, result map[string]interface{}, req *pb.Hero_List_Req) (code pb.ErrorCode) {
rsp := &pb.Hero_List_Rsp{}
defer func() {
err := session.SendMsg(this.module.api_comp.service.GetType(), Hero_SubType_List, rsp)
if err != nil {
code = pb.ErrorCode_SystemError
}
}()
list, err := this.module.model_hero.getHeroList(session.GetUserId())
if err != nil {
code = pb.ErrorCode_DBError
return
}
rsp.List = list
return
}

View File

@ -9,12 +9,12 @@ import (
) )
const ( const (
game_hero = "game_newhero.json" new_hero = "game_newhero.json" //英雄
game_heroStargrow = "game_heroStargrow.json" hero_stargrow = "game_herostargrow.json" //英雄品质系数
game_heroLevelgrow = "game_heroLevelgrow.json" hero_levelgrow = "game_herolevelgrow.json" //英雄成长系数
game_heroStarup = "game_heroStarup.json" hero_starup = "game_herostarup.json" //
game_heroLevelup = "game_heroLevelup.json" hero_levelup = "game_herolevelup.json" //英雄等级基础属性
game_heroExp = "game_exp.json" hero_exp = "game_exp.json"
) )
///配置管理组件 ///配置管理组件
@ -24,35 +24,33 @@ type Configure_Comp struct {
//组件初始化接口 //组件初始化接口
func (this *Configure_Comp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) { func (this *Configure_Comp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
this.ModuleCompBase.Init(service, module, comp, options)
this.LoadConfigure(game_hero, cfg.NewGame_newHero)
this.LoadConfigure(game_heroStargrow, cfg.NewGame_heroStargrow)
this.LoadConfigure(game_heroLevelgrow, cfg.NewGame_heroLevelgrow)
this.LoadConfigure(game_heroStarup, cfg.NewGame_heroStarup)
this.LoadConfigure(game_heroLevelup, cfg.NewGame_heroLevelup)
this.LoadConfigure(game_heroExp, cfg.NewGame_heroExp)
// this.GetHeroConfigure() err = this.MComp_Configure.Init(service, module, comp, options)
// this.GetHeroStargrowCon() err = this.LoadMultiConfigure(map[string]interface{}{
// this.GetHeroLevelgrowCon() new_hero: cfg.NewGame_newHero,
// this.GetHeroStarupCon() hero_stargrow: cfg.NewGame_heroStargrow,
// this.GetHeroLevelUpCon() hero_levelgrow: cfg.NewGame_heroLevelgrow,
// this.GetHeroExpCon() hero_starup: cfg.NewGame_heroStarup,
hero_levelup: cfg.NewGame_heroLevelup,
hero_exp: cfg.NewGame_heroExp,
})
return return
} }
//获取英雄配置数据 //获取英雄配置数据
func (this *Configure_Comp) GetHeroConfigure() (configure *cfg.Game_newHero, err error) { func (this *Configure_Comp) getHeroConfigure() (configure *cfg.Game_newHero, err error) {
var ( var (
v interface{} v interface{}
ok bool ok bool
) )
if v, err = this.GetConfigure(game_hero); err == nil {
if v, err = this.GetConfigure(new_hero); err != nil {
return
} else {
if configure, ok = v.(*cfg.Game_newHero); !ok { if configure, ok = v.(*cfg.Game_newHero); !ok {
err = fmt.Errorf("%T no is *cfg.Game_hero", v) err = fmt.Errorf("%T no is *cfg.Game_hero", v)
} }
} else {
err = fmt.Errorf("%T no is *cfg.Game_hero", v)
} }
return return
} }
@ -63,7 +61,7 @@ func (this *Configure_Comp) GetHeroStargrowCon() (configure *cfg.Game_heroStargr
v interface{} v interface{}
ok bool ok bool
) )
if v, err = this.GetConfigure(game_heroStargrow); err == nil { if v, err = this.GetConfigure(hero_stargrow); err == nil {
if configure, ok = v.(*cfg.Game_heroStargrow); !ok { if configure, ok = v.(*cfg.Game_heroStargrow); !ok {
err = fmt.Errorf("%T no is *cfg.Game_hero", v) err = fmt.Errorf("%T no is *cfg.Game_hero", v)
return return
@ -81,7 +79,7 @@ func (this *Configure_Comp) GetHeroLevelgrowCon() (configure *cfg.Game_heroLevel
v interface{} v interface{}
ok bool ok bool
) )
if v, err = this.GetConfigure(game_heroLevelgrow); err == nil { if v, err = this.GetConfigure(hero_levelgrow); err == nil {
if configure, ok = v.(*cfg.Game_heroLevelgrow); !ok { if configure, ok = v.(*cfg.Game_heroLevelgrow); !ok {
err = fmt.Errorf("%T no is *cfg.Game_heroLevelgrow", v) err = fmt.Errorf("%T no is *cfg.Game_heroLevelgrow", v)
return return
@ -97,7 +95,7 @@ func (this *Configure_Comp) GetHeroStarupCon() (configure *cfg.Game_heroStarup,
v interface{} v interface{}
ok bool ok bool
) )
if v, err = this.GetConfigure(game_heroStarup); err == nil { if v, err = this.GetConfigure(hero_starup); err == nil {
if configure, ok = v.(*cfg.Game_heroStarup); !ok { if configure, ok = v.(*cfg.Game_heroStarup); !ok {
err = fmt.Errorf("%T no is *cfg.Game_heroStarup", v) err = fmt.Errorf("%T no is *cfg.Game_heroStarup", v)
return return
@ -114,7 +112,7 @@ func (this *Configure_Comp) GetHeroLevelUpCon() (configure *cfg.Game_heroLevelup
v interface{} v interface{}
ok bool ok bool
) )
if v, err = this.GetConfigure(game_heroLevelup); err == nil { if v, err = this.GetConfigure(hero_levelup); err == nil {
if configure, ok = v.(*cfg.Game_heroLevelup); !ok { if configure, ok = v.(*cfg.Game_heroLevelup); !ok {
err = fmt.Errorf("%T no is *cfg.Game_heroLevelup", v) err = fmt.Errorf("%T no is *cfg.Game_heroLevelup", v)
return return
@ -130,7 +128,7 @@ func (this *Configure_Comp) GetHeroExpCon() (configure *cfg.Game_heroExp, err er
v interface{} v interface{}
ok bool ok bool
) )
if v, err = this.GetConfigure(game_heroExp); err == nil { if v, err = this.GetConfigure(hero_exp); err == nil {
if configure, ok = v.(*cfg.Game_heroExp); !ok { if configure, ok = v.(*cfg.Game_heroExp); !ok {
err = fmt.Errorf("%T no is *cfg.Game_heroExp", v) err = fmt.Errorf("%T no is *cfg.Game_heroExp", v)
return return
@ -140,3 +138,117 @@ func (this *Configure_Comp) GetHeroExpCon() (configure *cfg.Game_heroExp, err er
} }
return return
} }
func (this *Configure_Comp) GetHeroExp(hid int32) *cfg.Game_heroExpData {
if v, err := this.GetConfigure(hero_exp); err == nil {
if configure, ok := v.(*cfg.Game_heroExp); !ok {
err = fmt.Errorf("%T no is *cfg.Game_heroExp", v)
return nil
} else {
return configure.Get(hid)
}
} else {
err = fmt.Errorf("%T no is *cfg.Game_heroExp", v)
}
return nil
}
//英雄等级基础属性
func (this *Configure_Comp) GetHeroLevelup() (configure *cfg.Game_heroLevelup, err error) {
var (
v interface{}
ok bool
)
if v, err = this.GetConfigure(hero_levelup); err != nil {
return
} else {
if configure, ok = v.(*cfg.Game_heroLevelup); !ok {
err = fmt.Errorf("%T no is *cfg.Game_heroLevelup", v)
return
}
}
return
}
//英雄品质系数
func (this *Configure_Comp) GetHeroStargrow() (configure *cfg.Game_heroStargrow, err error) {
var (
v interface{}
ok bool
)
if v, err = this.GetConfigure(hero_stargrow); err != nil {
return
} else {
if configure, ok = v.(*cfg.Game_heroStargrow); !ok {
err = fmt.Errorf("%T no is *cfg.Game_heroStargrow", v)
return
}
}
return
}
//获取英雄配置
func (this *Configure_Comp) GetHero(heroId int32) *cfg.Game_newHeroData {
cfg, err := this.getHeroConfigure()
if err != nil {
return nil
}
if v, ok := cfg.GetDataMap()[heroId]; ok {
return v
}
return nil
}
//获取英雄星级配置
func (this *Configure_Comp) GetHeroStar(star int32) *cfg.Game_heroStargrowData {
cfg, err := this.GetHeroStargrow()
if err != nil {
return nil
}
if v, ok := cfg.GetDataMap()[star]; ok {
return v
}
return nil
}
//获取英雄等级配置
func (this *Configure_Comp) GetHeroLv(lv int32) *cfg.Game_heroLevelupData {
cfg, err := this.GetHeroLevelup()
if err != nil {
return nil
}
if v, ok := cfg.GetDataMap()[lv]; ok {
return v
}
return nil
}
// 英雄成长系数
func (this *Configure_Comp) GetHeroLevelgrow() (configure *cfg.Game_heroLevelgrow, err error) {
var (
v interface{}
ok bool
)
if v, err = this.GetConfigure(hero_levelgrow); err != nil {
return
} else {
if configure, ok = v.(*cfg.Game_heroLevelgrow); !ok {
err = fmt.Errorf("%T no is *cfg.Game_heroLevelgrow", v)
return
}
}
return
}
//英雄成长配置
func (this *Configure_Comp) GetHeroLvgrow(heroId int32) *cfg.Game_heroLevelgrowData {
cfg, err := this.GetHeroLevelgrow()
if err != nil {
return nil
}
if v, ok := cfg.GetDataMap()[heroId]; ok {
return v
}
return nil
}

90
modules/hero/hero_test.go Normal file
View File

@ -0,0 +1,90 @@
package hero
import (
"fmt"
"go_dreamfactory/comm"
"go_dreamfactory/lego"
"go_dreamfactory/lego/base/rpcx"
"go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/log"
"go_dreamfactory/services"
"go_dreamfactory/sys/cache"
"go_dreamfactory/sys/configure"
"go_dreamfactory/sys/db"
"os"
"testing"
"time"
)
var service core.IService
var s_gateComp comm.ISC_GateRouteComp = services.NewGateRouteComp()
var module = new(Hero)
type TestService struct {
rpcx.RPCXService
}
func newService(ops ...rpcx.Option) core.IService {
s := new(TestService)
s.Configure(ops...)
return s
}
//初始化相关系统
func (this *TestService) InitSys() {
this.RPCXService.InitSys()
if err := cache.OnInit(this.GetSettings().Sys["cache"]); err != nil {
panic(fmt.Sprintf("init sys.cache err: %s", err.Error()))
} else {
log.Infof("init sys.cache success!")
}
if err := db.OnInit(this.GetSettings().Sys["db"]); err != nil {
panic(fmt.Sprintf("init sys.db err: %s", err.Error()))
} else {
log.Infof("init sys.db success!")
}
if err := configure.OnInit(this.GetSettings().Sys["configure"], configure.SetConfigPath("E:\\projects\\workspace\\go_dreamfactory\\bin\\json")); err != nil {
panic(fmt.Sprintf("init sys.configure err: %s", err.Error()))
} else {
log.Infof("init sys.configure success!")
}
}
func TestMain(m *testing.M) {
service = newService(
rpcx.SetConfPath("../../bin/conf/worker_2.yaml"),
)
service.OnInstallComp( //装备组件
s_gateComp, //此服务需要接受用户的消息 需要装备网关组件
)
go func() {
lego.Run(service, //运行模块
module,
)
}()
time.Sleep(time.Second * 2)
defer os.Exit(m.Run())
}
//创建一个英雄s
func TestCreateOneHero(t *testing.T) {
err := module.model_hero.createOneHero("u1", 25001)
fmt.Println(err)
}
//获取玩家英雄
func TestGetOneHero(t *testing.T) {
d := module.model_hero.getOneHero("u1", "62b534bebf4745d4117acabe")
fmt.Printf("%v", d)
}
func TestPropertyCompute(t *testing.T) {
m := module.model_hero.PropertyCompute("u1", "62b534bebf4745d4117acabe")
fmt.Println(m)
}
func TestHeroList(t *testing.T) {
heroes, err := module.model_hero.getHeroList("u1")
fmt.Printf("%v %v", heroes, err)
}

View File

@ -1,10 +1,16 @@
package hero package hero
import ( import (
"fmt"
"go_dreamfactory/comm"
"go_dreamfactory/lego/core" "go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/log" "go_dreamfactory/lego/sys/log"
"go_dreamfactory/modules" "go_dreamfactory/modules"
"go_dreamfactory/pb" "go_dreamfactory/pb"
"math"
mengine "github.com/dengsgo/math-engine/engine"
"go.mongodb.org/mongo-driver/bson/primitive"
) )
type ModelHero struct { type ModelHero struct {
@ -19,29 +25,89 @@ func (this *ModelHero) Init(service core.IService, module core.IModule, comp cor
return return
} }
//创建一个指定的英雄 //初始化英雄
func (this *ModelHero) createOneHero(uid string, heroId int32) error { func (this *ModelHero) initHero(uid string, heroCfgId int32) *pb.DB_HeroData {
heroCfg, err := this.moduleHero.configure_comp.GetHeroConfigure() heroCfg := this.moduleHero.configure_comp.GetHero(heroCfgId)
if err != nil { if heroCfg == nil {
log.Errorf("%v", err) log.Errorf("%v hero not found from config %v", heroCfgId)
return err return nil
} }
if heroCfg != nil { objId := primitive.NewObjectID().Hex()
oneHeroCfg := heroCfg.Get(heroId)
if oneHeroCfg != nil {
newHero := &pb.DB_HeroData{ newHero := &pb.DB_HeroData{
Id: objId,
Uid: uid, Uid: uid,
HeroID: oneHeroCfg.Id, HeroID: heroCfg.Hid,
Star: oneHeroCfg.Star, Star: heroCfg.Star,
Lv: 1, //初始等级 Lv: 1, //初始等级
NormalSkill: []*pb.SkillData{},
Skins: []int32{},
EquipID: make([]string, 6),
AddProperty: make(map[int32]int32),
Energy: make(map[int32]int32),
Property: make(map[int32]int32),
} }
return this.moduleHero.model_hero.Add(uid, newHero) return newHero
} }
//创建一个指定的英雄
func (this *ModelHero) createOneHero(uid string, heroCfgId int32) error {
hero := this.initHero(uid, heroCfgId)
if hero != nil {
return this.moduleHero.model_hero.AddList(uid, hero.Id, hero)
} }
return nil return nil
} }
//创建多个指定的英雄
func (this *ModelHero) createMultiHero(uid string, heroCfgId ...int32) error {
data := make(map[string]interface{})
for _, v := range heroCfgId {
hero := this.initHero(uid, v)
if hero != nil {
data[hero.Id] = hero
}
}
return this.moduleHero.model_hero.AddLists(uid, data)
}
//获取一个英雄
func (this *ModelHero) getOneHero(uid, heroId string) *pb.DB_HeroData {
hero := &pb.DB_HeroData{}
err := this.moduleHero.model_hero.GetListObj(uid, heroId, hero)
if err != nil {
return nil
}
return hero
}
//获取玩家的英雄列表
func (this *ModelHero) getHeroList(uid string) ([]*pb.DB_HeroData, error) {
herokeys := make(map[string]string)
err := this.Get(uid, herokeys)
if err != nil {
return nil, err
}
heroes := make([]*pb.DB_HeroData, 0)
err = this.GetList(uid, &heroes)
if err != nil {
return nil, err
}
return heroes, nil
}
//更新装备
func (this *ModelHero) setEquipment(uid, heroId string, equipIds []string) pb.ErrorCode {
hero := this.getOneHero(uid, heroId)
if hero == nil {
return pb.ErrorCode_HeroNoExist
}
hero.EquipID = equipIds
return pb.ErrorCode_Success
}
//指定英雄升级 //指定英雄升级
func (this *ModelHero) levelUp(uid string, heroId int32) error { func (this *ModelHero) levelUp(uid string, heroId int32) error {
var heroes []*pb.DB_HeroData var heroes []*pb.DB_HeroData
@ -57,3 +123,57 @@ func (this *ModelHero) levelUp(uid string, heroId int32) error {
func (this *ModelHero) starUp() { func (this *ModelHero) starUp() {
} }
//属性计算 - 暂时放在modelHero里实现
//英雄基础属性 + 英雄等级基础属性 * 英雄成长系数 + 英雄星级对应等级属性 * 英雄品质系数
func (this *ModelHero) PropertyCompute(uid, heroId string) map[int32]int32 {
hero := this.getOneHero(uid, heroId)
if hero == nil {
return nil
}
//英雄等级基础属性levelup
heroLvCfg := this.moduleHero.configure_comp.GetHeroLv(hero.Lv)
if heroLvCfg == nil {
return nil
}
//英雄基础配置 newhero
heroCfg := this.moduleHero.configure_comp.GetHero(hero.HeroID)
if heroCfg == nil {
return nil
}
//品质系数
stargrowCfg := this.moduleHero.configure_comp.GetHeroStar(heroCfg.Star)
if stargrowCfg == nil {
return nil
}
//英雄星级对应等级属性
heroStarCfg := this.moduleHero.configure_comp.GetHeroLv(stargrowCfg.Level)
if heroStarCfg == nil {
return nil
}
//成长系数
lvGrow := this.moduleHero.configure_comp.GetHeroLvgrow(hero.HeroID)
if lvGrow == nil {
return nil
}
exprHp := fmt.Sprintf("%v + %v * %v/1000 + %v * %v", lvGrow.Hp, heroLvCfg.Hp, lvGrow.Hpgrow, heroStarCfg.Hp, stargrowCfg.StarupHp)
hp, _ := mengine.ParseAndExec(exprHp)
exprAtk := fmt.Sprintf("%v +%v * %v/1000 + %v * %v", lvGrow.Atk, heroLvCfg.Atk, lvGrow.Atkgrow, heroStarCfg.Atk, stargrowCfg.StarupAtk)
atk, _ := mengine.ParseAndExec(exprAtk)
exprDef := fmt.Sprintf("%v +%v * %v/1000 + %v * %v", lvGrow.Def, heroLvCfg.Def, lvGrow.Defgrow, heroStarCfg.Def, stargrowCfg.StarupDef)
def, _ := mengine.ParseAndExec(exprDef)
return map[int32]int32{
comm.PropertyHp: int32(math.Floor(hp)),
comm.PropertyAtk: int32(math.Floor(atk)),
comm.PropertyDef: int32(math.Floor(def)),
}
}

View File

@ -50,6 +50,11 @@ func (this *Hero) GetHero(heroId int32) (*pb.DB_HeroData, pb.ErrorCode) {
return nil, pb.ErrorCode_HeroNoExist return nil, pb.ErrorCode_HeroNoExist
} }
func (this *Hero) ModifyHero(heroId *pb.DB_HeroData) (*pb.DB_HeroData, pb.ErrorCode) {
return nil, pb.ErrorCode_HeroNoExist
}
//佩戴装备 //佩戴装备
func (this *Hero) InstallEquip(heroId, equipId string) pb.ErrorCode { func (this *Hero) InstallEquip(heroId, equipId string) pb.ErrorCode {
return pb.ErrorCode_Success return pb.ErrorCode_Success

View File

@ -1,6 +1,7 @@
package user package user
import ( import (
"go_dreamfactory/comm"
"go_dreamfactory/modules" "go_dreamfactory/modules"
"go_dreamfactory/lego/base" "go_dreamfactory/lego/base"
@ -17,6 +18,7 @@ type Api_Comp struct {
modules.MComp_GateComp modules.MComp_GateComp
service base.IRPCXService service base.IRPCXService
module *User module *User
hero comm.IHero
} }
func (this *Api_Comp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) { func (this *Api_Comp) Init(service core.IService, module core.IModule, comp core.IModuleComp, options core.IModuleOptions) (err error) {
@ -28,5 +30,12 @@ func (this *Api_Comp) Init(service core.IService, module core.IModule, comp core
func (this *Api_Comp) Start() (err error) { func (this *Api_Comp) Start() (err error) {
err = this.MComp_GateComp.Start() err = this.MComp_GateComp.Start()
var module core.IModule
//get module hero
if module, err = this.service.GetModule(comm.SM_HeroModule); err != nil {
return
}
this.hero = module.(comm.IHero)
return return
} }

View File

@ -2,12 +2,19 @@ package user
import ( import (
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/lego/sys/event"
"go_dreamfactory/pb" "go_dreamfactory/pb"
"go_dreamfactory/utils" "go_dreamfactory/utils"
) )
func (this *Api_Comp) Create_Check(session comm.IUserSession, req *pb.UserCreateReq) (result map[string]interface{}, code comm.ErrorCode) { func (this *Api_Comp) Create_Check(session comm.IUserSession, req *pb.UserCreateReq) (result map[string]interface{}, code comm.ErrorCode) {
result = make(map[string]interface{})
self := &pb.DB_UserData{}
err := this.module.modelUser.Get(session.GetUserId(), self)
if err != nil {
code = comm.ErrorCode{Code: pb.ErrorCode_DBError}
return
}
result["self"] = self
return return
} }
@ -15,28 +22,25 @@ func (this *Api_Comp) Create_Check(session comm.IUserSession, req *pb.UserCreate
func (this *Api_Comp) Create(session comm.IUserSession, result map[string]interface{}, req *pb.UserCreateReq) (code pb.ErrorCode) { func (this *Api_Comp) Create(session comm.IUserSession, result map[string]interface{}, req *pb.UserCreateReq) (code pb.ErrorCode) {
defer utils.TraceFunc(session.GetUserId(), string(this.module.GetType()), User_SubType_Create, req, nil) defer utils.TraceFunc(session.GetUserId(), string(this.module.GetType()), User_SubType_Create, req, nil)
self := &pb.DB_UserData{}
defer func() { defer func() {
session.SendMsg(string(this.module.GetType()), User_SubType_Create, &pb.UserCreateRsp{}) err := session.SendMsg(string(this.module.GetType()), User_SubType_Create, &pb.UserCreateRsp{})
if err != nil {
code = pb.ErrorCode_SystemError
}
}() }()
//更新昵称 update := map[string]interface{}{
// update := map[string]interface{}{ "name": req.NickName,
// "name": req.NickName,
// }
err := this.module.modelUser.Get(session.GetUserId(), self)
if err != nil {
code = pb.ErrorCode_DBError
return
} }
self.Name = req.NickName
err = this.module.modelUser.Get(session.GetUserId(), self) err := this.module.modelUser.Change(session.GetUserId(), update)
if err != nil { if err != nil {
code = pb.ErrorCode_DBError code = pb.ErrorCode_DBError
return return
} }
event.RegisterGO(comm.Event_CreateUser, session.GetUserId()) //初始化英雄
// this.hero.
return return
} }

View File

@ -10,7 +10,6 @@ import (
uuid "github.com/satori/go.uuid" uuid "github.com/satori/go.uuid"
"go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/bson"
"go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/bson/primitive"
"go.mongodb.org/mongo-driver/mongo/options"
) )
const ( //Redis const ( //Redis
@ -38,16 +37,6 @@ func (this *ModelUser) User_FindByAccount(sid int32, account string) (*pb.DB_Use
return nd, err return nd, err
} }
func (this *ModelUser) User_FindById(id string) (*pb.DB_UserData, error) {
filter := bson.M{
"userid": id,
}
sr := this.DB.FindOne(DB_UserTable, filter)
user := &pb.DB_UserData{}
err := sr.Decode(user)
return user, err
}
func (this *ModelUser) User_Create(user *pb.DB_UserData) (err error) { func (this *ModelUser) User_Create(user *pb.DB_UserData) (err error) {
_id := primitive.NewObjectID().Hex() _id := primitive.NewObjectID().Hex()
user.Id = _id user.Id = _id
@ -57,16 +46,3 @@ func (this *ModelUser) User_Create(user *pb.DB_UserData) (err error) {
_, err = this.DB.InsertOne(DB_UserTable, user) _, err = this.DB.InsertOne(DB_UserTable, user)
return err return err
} }
//更新用户数据到DB
func (this *ModelUser) User_Update(data *pb.DB_UserData) (err error) {
err = this.DB.FindOneAndUpdate(
DB_UserTable,
bson.M{"uid": data.Uid},
bson.M{"$set": bson.M{
"name": data.Name,
}},
options.FindOneAndUpdate().SetUpsert(true),
).Err()
return err
}

68
modules/user/user_test.go Normal file
View File

@ -0,0 +1,68 @@
package user
import (
"fmt"
"go_dreamfactory/comm"
"go_dreamfactory/lego"
"go_dreamfactory/lego/base/rpcx"
"go_dreamfactory/lego/core"
"go_dreamfactory/lego/sys/log"
"go_dreamfactory/services"
"go_dreamfactory/sys/cache"
"go_dreamfactory/sys/configure"
"go_dreamfactory/sys/db"
"os"
"testing"
"time"
)
var service core.IService
var s_gateComp comm.ISC_GateRouteComp = services.NewGateRouteComp()
var module = new(User)
type TestService struct {
rpcx.RPCXService
}
func newService(ops ...rpcx.Option) core.IService {
s := new(TestService)
s.Configure(ops...)
return s
}
//初始化相关系统
func (this *TestService) InitSys() {
this.RPCXService.InitSys()
if err := cache.OnInit(this.GetSettings().Sys["cache"]); err != nil {
panic(fmt.Sprintf("init sys.cache err: %s", err.Error()))
} else {
log.Infof("init sys.cache success!")
}
if err := db.OnInit(this.GetSettings().Sys["db"]); err != nil {
panic(fmt.Sprintf("init sys.db err: %s", err.Error()))
} else {
log.Infof("init sys.db success!")
}
if err := configure.OnInit(this.GetSettings().Sys["configure"], configure.SetConfigPath("E:\\projects\\workspace\\go_dreamfactory\\bin\\json")); err != nil {
panic(fmt.Sprintf("init sys.configure err: %s", err.Error()))
} else {
log.Infof("init sys.configure success!")
}
}
func TestMain(m *testing.M) {
service = newService(
rpcx.SetConfPath("../../bin/conf/worker_2.yaml"),
)
service.OnInstallComp( //装备组件
s_gateComp, //此服务需要接受用户的消息 需要装备网关组件
)
go func() {
lego.Run(service, //运行模块
module,
)
}()
time.Sleep(time.Second * 2)
defer os.Exit(m.Run())
}

View File

@ -41,6 +41,7 @@ const (
ErrorCode_Unknown ErrorCode = 101 //未知错误 ErrorCode_Unknown ErrorCode = 101 //未知错误
ErrorCode_ResNoEnough ErrorCode = 102 //资源不足 ErrorCode_ResNoEnough ErrorCode = 102 //资源不足
ErrorCode_ConfigurationException ErrorCode = 103 //配置异常 ErrorCode_ConfigurationException ErrorCode = 103 //配置异常
ErrorCode_ConfigNoFound ErrorCode = 104 //配置未找到
// user // user
ErrorCode_SecKeyInvalid ErrorCode = 1000 //秘钥无效 ErrorCode_SecKeyInvalid ErrorCode = 1000 //秘钥无效
ErrorCode_SecKey ErrorCode = 1001 //秘钥格式错误 ErrorCode_SecKey ErrorCode = 1001 //秘钥格式错误
@ -65,6 +66,8 @@ const (
ErrorCode_ItemsGirdAmountUpper ErrorCode = 1203 //背包格子容量已达上限 ErrorCode_ItemsGirdAmountUpper ErrorCode = 1203 //背包格子容量已达上限
// hero // hero
ErrorCode_HeroNoExist ErrorCode = 1300 //英雄不存在 ErrorCode_HeroNoExist ErrorCode = 1300 //英雄不存在
ErrorCode_HeroNoEnough ErrorCode = 1301 //英雄数量不足
ErrorCode_HeroMaxLv ErrorCode = 1302 //英雄达到最大等级
// equipment // equipment
ErrorCode_EquipmentOnFoundEquipment ErrorCode = 1400 // 未找到武器 ErrorCode_EquipmentOnFoundEquipment ErrorCode = 1400 // 未找到武器
ErrorCode_EquipmentLvlimitReached ErrorCode = 1401 // 武器等级已达上限 ErrorCode_EquipmentLvlimitReached ErrorCode = 1401 // 武器等级已达上限
@ -91,6 +94,7 @@ var (
101: "Unknown", 101: "Unknown",
102: "ResNoEnough", 102: "ResNoEnough",
103: "ConfigurationException", 103: "ConfigurationException",
104: "ConfigNoFound",
1000: "SecKeyInvalid", 1000: "SecKeyInvalid",
1001: "SecKey", 1001: "SecKey",
1002: "BindUser", 1002: "BindUser",
@ -111,6 +115,8 @@ var (
1202: "ItemsGridNumUpper", 1202: "ItemsGridNumUpper",
1203: "ItemsGirdAmountUpper", 1203: "ItemsGirdAmountUpper",
1300: "HeroNoExist", 1300: "HeroNoExist",
1301: "HeroNoEnough",
1302: "HeroMaxLv",
1400: "EquipmentOnFoundEquipment", 1400: "EquipmentOnFoundEquipment",
1401: "EquipmentLvlimitReached", 1401: "EquipmentLvlimitReached",
} }
@ -133,6 +139,7 @@ var (
"Unknown": 101, "Unknown": 101,
"ResNoEnough": 102, "ResNoEnough": 102,
"ConfigurationException": 103, "ConfigurationException": 103,
"ConfigNoFound": 104,
"SecKeyInvalid": 1000, "SecKeyInvalid": 1000,
"SecKey": 1001, "SecKey": 1001,
"BindUser": 1002, "BindUser": 1002,
@ -153,6 +160,8 @@ var (
"ItemsGridNumUpper": 1202, "ItemsGridNumUpper": 1202,
"ItemsGirdAmountUpper": 1203, "ItemsGirdAmountUpper": 1203,
"HeroNoExist": 1300, "HeroNoExist": 1300,
"HeroNoEnough": 1301,
"HeroMaxLv": 1302,
"EquipmentOnFoundEquipment": 1400, "EquipmentOnFoundEquipment": 1400,
"EquipmentLvlimitReached": 1401, "EquipmentLvlimitReached": 1401,
} }
@ -189,7 +198,7 @@ var File_errorcode_proto protoreflect.FileDescriptor
var file_errorcode_proto_rawDesc = []byte{ var file_errorcode_proto_rawDesc = []byte{
0x0a, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x0a, 0x0f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x63, 0x6f, 0x64, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
0x6f, 0x2a, 0xdc, 0x06, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x6f, 0x2a, 0x92, 0x07, 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, 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, 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, 0x1b, 0x0a, 0x17, 0x4e, 0x6f, 0x46, 0x69, 0x6e, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
@ -212,38 +221,42 @@ var file_errorcode_proto_rawDesc = []byte{
0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x52, 0x65, 0x73, 0x4e, 0x6f, 0x45,
0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x66, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x66, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f, 0x67, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x63, 0x65, 0x70, 0x74, 0x69, 0x6f,
0x6e, 0x10, 0x67, 0x12, 0x12, 0x0a, 0x0d, 0x53, 0x65, 0x63, 0x4b, 0x65, 0x79, 0x49, 0x6e, 0x76, 0x6e, 0x10, 0x67, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4e, 0x6f, 0x46,
0x61, 0x6c, 0x69, 0x64, 0x10, 0xe8, 0x07, 0x12, 0x0b, 0x0a, 0x06, 0x53, 0x65, 0x63, 0x4b, 0x65, 0x6f, 0x75, 0x6e, 0x64, 0x10, 0x68, 0x12, 0x12, 0x0a, 0x0d, 0x53, 0x65, 0x63, 0x4b, 0x65, 0x79,
0x79, 0x10, 0xe9, 0x07, 0x12, 0x0d, 0x0a, 0x08, 0x42, 0x69, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0xe8, 0x07, 0x12, 0x0b, 0x0a, 0x06, 0x53, 0x65,
0x10, 0xea, 0x07, 0x12, 0x12, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4e, 0x6f, 0x74, 0x63, 0x4b, 0x65, 0x79, 0x10, 0xe9, 0x07, 0x12, 0x0d, 0x0a, 0x08, 0x42, 0x69, 0x6e, 0x64, 0x55,
0x53, 0x65, 0x6c, 0x66, 0x10, 0xcc, 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x73, 0x65, 0x72, 0x10, 0xea, 0x07, 0x12, 0x12, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64,
0x64, 0x53, 0x65, 0x6c, 0x66, 0x4d, 0x61, 0x78, 0x10, 0xcd, 0x08, 0x12, 0x14, 0x0a, 0x0f, 0x46, 0x4e, 0x6f, 0x74, 0x53, 0x65, 0x6c, 0x66, 0x10, 0xcc, 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x46, 0x72,
0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4d, 0x61, 0x78, 0x10, 0xce, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x4d, 0x61, 0x78, 0x10, 0xcd, 0x08, 0x12, 0x14,
0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x4e, 0x0a, 0x0f, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4d, 0x61,
0x6f, 0x44, 0x61, 0x74, 0x61, 0x10, 0xcf, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, 0x78, 0x10, 0xce, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x53, 0x65,
0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x10, 0xd0, 0x6c, 0x66, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x10, 0xcf, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x46,
0x08, 0x12, 0x0e, 0x0a, 0x09, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x59, 0x65, 0x74, 0x10, 0xd1, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x4e, 0x6f, 0x44, 0x61, 0x74,
0x08, 0x12, 0x13, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x61, 0x10, 0xd0, 0x08, 0x12, 0x0e, 0x0a, 0x09, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x59, 0x65,
0x59, 0x65, 0x74, 0x10, 0xd2, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x74, 0x10, 0xd1, 0x08, 0x12, 0x13, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70,
0x53, 0x65, 0x6c, 0x66, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x59, 0x65, 0x74, 0x10, 0xd3, 0x08, 0x12, 0x70, 0x6c, 0x79, 0x59, 0x65, 0x74, 0x10, 0xd2, 0x08, 0x12, 0x17, 0x0a, 0x12, 0x46, 0x72, 0x69,
0x19, 0x0a, 0x14, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x42, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x6c, 0x66, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x59, 0x65, 0x74, 0x10,
0x6c, 0x61, 0x63, 0x6b, 0x59, 0x65, 0x74, 0x10, 0xd4, 0x08, 0x12, 0x15, 0x0a, 0x10, 0x46, 0x72, 0xd3, 0x08, 0x12, 0x19, 0x0a, 0x14, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x54, 0x61, 0x72, 0x67,
0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0xd5, 0x65, 0x74, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x59, 0x65, 0x74, 0x10, 0xd4, 0x08, 0x12, 0x15, 0x0a,
0x08, 0x12, 0x13, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x10, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x45, 0x72, 0x72, 0x6f,
0x4d, 0x61, 0x78, 0x10, 0xd6, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x72, 0x10, 0xd5, 0x08, 0x12, 0x13, 0x0a, 0x0e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x42, 0x6c,
0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x10, 0x61, 0x63, 0x6b, 0x4d, 0x61, 0x78, 0x10, 0xd6, 0x08, 0x12, 0x1a, 0x0a, 0x15, 0x46, 0x72, 0x69,
0xd7, 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x4e, 0x6f, 0x45, 0x6e, 0x6f, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4e, 0x61, 0x6d, 0x65, 0x45, 0x6d, 0x70,
0x75, 0x67, 0x68, 0x10, 0xb0, 0x09, 0x12, 0x15, 0x0a, 0x10, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x4e, 0x74, 0x79, 0x10, 0xd7, 0x08, 0x12, 0x12, 0x0a, 0x0d, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x4e, 0x6f,
0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x47, 0x69, 0x72, 0x64, 0x10, 0xb1, 0x09, 0x12, 0x16, 0x0a, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0xb0, 0x09, 0x12, 0x15, 0x0a, 0x10, 0x49, 0x74, 0x65,
0x11, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x47, 0x72, 0x69, 0x64, 0x4e, 0x75, 0x6d, 0x55, 0x70, 0x70, 0x6d, 0x73, 0x4e, 0x6f, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x47, 0x69, 0x72, 0x64, 0x10, 0xb1, 0x09,
0x65, 0x72, 0x10, 0xb2, 0x09, 0x12, 0x19, 0x0a, 0x14, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x47, 0x69, 0x12, 0x16, 0x0a, 0x11, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x47, 0x72, 0x69, 0x64, 0x4e, 0x75, 0x6d,
0x72, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x70, 0x70, 0x65, 0x72, 0x10, 0xb3, 0x09, 0x55, 0x70, 0x70, 0x65, 0x72, 0x10, 0xb2, 0x09, 0x12, 0x19, 0x0a, 0x14, 0x49, 0x74, 0x65, 0x6d,
0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x45, 0x78, 0x69, 0x73, 0x74, 0x10, 0x73, 0x47, 0x69, 0x72, 0x64, 0x41, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x55, 0x70, 0x70, 0x65, 0x72,
0x94, 0x0a, 0x12, 0x1e, 0x0a, 0x19, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x10, 0xb3, 0x09, 0x12, 0x10, 0x0a, 0x0b, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x45, 0x78, 0x69,
0x6e, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x73, 0x74, 0x10, 0x94, 0x0a, 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x65, 0x72, 0x6f, 0x4e, 0x6f, 0x45,
0xf8, 0x0a, 0x12, 0x1c, 0x0a, 0x17, 0x45, 0x71, 0x75, 0x69, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x95, 0x0a, 0x12, 0x0e, 0x0a, 0x09, 0x48, 0x65, 0x72, 0x6f,
0x76, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x61, 0x63, 0x68, 0x65, 0x64, 0x10, 0xf9, 0x0a, 0x4d, 0x61, 0x78, 0x4c, 0x76, 0x10, 0x96, 0x0a, 0x12, 0x1e, 0x0a, 0x19, 0x45, 0x71, 0x75, 0x69,
0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x70, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x6e, 0x46, 0x6f, 0x75, 0x6e, 0x64, 0x45, 0x71, 0x75, 0x69,
0x70, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0xf8, 0x0a, 0x12, 0x1c, 0x0a, 0x17, 0x45, 0x71, 0x75, 0x69,
0x70, 0x6d, 0x65, 0x6e, 0x74, 0x4c, 0x76, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x61, 0x63,
0x68, 0x65, 0x64, 0x10, 0xf9, 0x0a, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06,
0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (

View File

@ -286,49 +286,50 @@ var File_hero_hero_db_proto protoreflect.FileDescriptor
var file_hero_hero_db_proto_rawDesc = []byte{ var file_hero_hero_db_proto_rawDesc = []byte{
0x0a, 0x12, 0x68, 0x65, 0x72, 0x6f, 0x2f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x0a, 0x12, 0x68, 0x65, 0x72, 0x6f, 0x2f, 0x68, 0x65, 0x72, 0x6f, 0x5f, 0x64, 0x62, 0x2e, 0x70,
0x72, 0x6f, 0x74, 0x6f, 0x22, 0x3f, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x02, 0x70, 0x62, 0x22, 0x3f, 0x0a, 0x09, 0x53, 0x6b, 0x69, 0x6c,
0x61, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x44,
0x28, 0x05, 0x52, 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x49, 0x44, 0x12,
0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x6b, 0x18, 0x0a, 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05,
0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x22, 0xd6, 0x06, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x48, 0x65, 0x72, 0x52, 0x07, 0x73, 0x6b, 0x69, 0x6c, 0x6c, 0x4c, 0x76, 0x22, 0xe2, 0x06, 0x0a, 0x0b, 0x44, 0x42,
0x6f, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x5f, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18,
0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64,
0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x68,
0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72, 0x6f, 0x49, 0x44, 0x12, 0x65, 0x72, 0x6f, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x68, 0x65, 0x72,
0x12, 0x0a, 0x04, 0x73, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x73, 0x6f, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x74, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28,
0x74, 0x61, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x52, 0x04, 0x73, 0x74, 0x61, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x05, 0x20,
0x02, 0x6c, 0x76, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x01, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18, 0x06,
0x52, 0x03, 0x65, 0x78, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x6a, 0x75, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x78, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x6a, 0x75, 0x65,
0x4c, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6a, 0x75, 0x65, 0x78, 0x69, 0x6e, 0x78, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x6a, 0x75,
0x67, 0x4c, 0x76, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x53, 0x6b, 0x65, 0x78, 0x69, 0x6e, 0x67, 0x4c, 0x76, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x74, 0x61,
0x69, 0x6c, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x63,
0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x2c, 0x0a, 0x0b, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x61, 0x70, 0x74, 0x61, 0x69, 0x6e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x2f, 0x0a, 0x0b, 0x6e,
0x6c, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x53, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b,
0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52, 0x0b, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x32, 0x0d, 0x2e, 0x70, 0x62, 0x2e, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x44, 0x61, 0x74, 0x61, 0x52,
0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x36, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x0b, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x53, 0x6b, 0x69, 0x6c, 0x6c, 0x12, 0x39, 0x0a, 0x08,
0x79, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x44, 0x42, 0x5f, 0x48, 0x65, 0x72, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d,
0x6f, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x2e, 0x70, 0x62, 0x2e, 0x44, 0x42, 0x5f, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x2e,
0x74, 0x72, 0x79, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x3f, 0x0a, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x70,
0x0b, 0x61, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x03, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x42, 0x0a, 0x0b, 0x61, 0x64, 0x64, 0x50, 0x72,
0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x44, 0x42, 0x5f, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x70,
0x2e, 0x41, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x62, 0x2e, 0x44, 0x42, 0x5f, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x41, 0x64,
0x79, 0x52, 0x0b, 0x61, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x1c, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0b,
0x0a, 0x09, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x61, 0x64, 0x64, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x1c, 0x0a, 0x09, 0x66,
0x05, 0x52, 0x09, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09,
0x63, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x72,
0x63, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x53, 0x64, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x63, 0x61, 0x72,
0x6b, 0x69, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x75, 0x72, 0x53, 0x6b, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x53, 0x6b, 0x69, 0x6e,
0x69, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x6b, 0x69, 0x6e, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x63, 0x75, 0x72, 0x53, 0x6b, 0x69, 0x6e, 0x12,
0x05, 0x52, 0x05, 0x73, 0x6b, 0x69, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x14, 0x0a, 0x05, 0x73, 0x6b, 0x69, 0x6e, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05,
0x6b, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x73, 0x6b, 0x69, 0x6e, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x10,
0x0a, 0x07, 0x65, 0x71, 0x75, 0x69, 0x70, 0x49, 0x44, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x62, 0x6c, 0x6f, 0x63, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x65,
0x07, 0x65, 0x71, 0x75, 0x69, 0x70, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x6f, 0x71, 0x75, 0x69, 0x70, 0x49, 0x44, 0x18, 0x11, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x65, 0x71,
0x6e, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x75, 0x69, 0x70, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74,
0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x32, 0x0a, 0x14, 0x64, 0x69, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x6f,
0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x6e, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x32, 0x0a, 0x14, 0x64, 0x69, 0x73, 0x74, 0x72,
0x74, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x18,
0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x12, 0x30, 0x13, 0x20, 0x01, 0x28, 0x05, 0x52, 0x14, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74,
0x0a, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x6f, 0x6e, 0x61, 0x74, 0x65, 0x12, 0x33, 0x0a, 0x06, 0x65,
0x6e, 0x65, 0x72, 0x67, 0x79, 0x18, 0x14, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x70, 0x62,
0x2e, 0x44, 0x42, 0x5f, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x45, 0x6e, 0x65, 0x2e, 0x44, 0x42, 0x5f, 0x48, 0x65, 0x72, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x45, 0x6e, 0x65,
0x72, 0x67, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x72, 0x67, 0x79, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x65, 0x6e, 0x65, 0x72, 0x67, 0x79,
0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x52,
@ -361,17 +362,17 @@ func file_hero_hero_db_proto_rawDescGZIP() []byte {
var file_hero_hero_db_proto_msgTypes = make([]protoimpl.MessageInfo, 5) var file_hero_hero_db_proto_msgTypes = make([]protoimpl.MessageInfo, 5)
var file_hero_hero_db_proto_goTypes = []interface{}{ var file_hero_hero_db_proto_goTypes = []interface{}{
(*SkillData)(nil), // 0: SkillData (*SkillData)(nil), // 0: pb.SkillData
(*DB_HeroData)(nil), // 1: DB_HeroData (*DB_HeroData)(nil), // 1: pb.DB_HeroData
nil, // 2: DB_HeroData.PropertyEntry nil, // 2: pb.DB_HeroData.PropertyEntry
nil, // 3: DB_HeroData.AddPropertyEntry nil, // 3: pb.DB_HeroData.AddPropertyEntry
nil, // 4: DB_HeroData.EnergyEntry nil, // 4: pb.DB_HeroData.EnergyEntry
} }
var file_hero_hero_db_proto_depIdxs = []int32{ var file_hero_hero_db_proto_depIdxs = []int32{
0, // 0: DB_HeroData.normalSkill:type_name -> SkillData 0, // 0: pb.DB_HeroData.normalSkill:type_name -> pb.SkillData
2, // 1: DB_HeroData.property:type_name -> DB_HeroData.PropertyEntry 2, // 1: pb.DB_HeroData.property:type_name -> pb.DB_HeroData.PropertyEntry
3, // 2: DB_HeroData.addProperty:type_name -> DB_HeroData.AddPropertyEntry 3, // 2: pb.DB_HeroData.addProperty:type_name -> pb.DB_HeroData.AddPropertyEntry
4, // 3: DB_HeroData.energy:type_name -> DB_HeroData.EnergyEntry 4, // 3: pb.DB_HeroData.energy:type_name -> pb.DB_HeroData.EnergyEntry
4, // [4:4] is the sub-list for method output_type 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 method input_type
4, // [4:4] is the sub-list for extension type_name 4, // [4:4] is the sub-list for extension type_name

File diff suppressed because it is too large Load Diff

View File

@ -20,6 +20,7 @@ enum ErrorCode {
Unknown = 101; // Unknown = 101; //
ResNoEnough = 102; // ResNoEnough = 102; //
ConfigurationException = 103; // ConfigurationException = 103; //
ConfigNoFound = 104; //
// user // user
SecKeyInvalid = 1000; // SecKeyInvalid = 1000; //
@ -48,7 +49,8 @@ enum ErrorCode {
// hero // hero
HeroNoExist = 1300; // HeroNoExist = 1300; //
HeroNoEnough = 1301; //
HeroMaxLv = 1302; //
// equipment // equipment
EquipmentOnFoundEquipment = 1400; // EquipmentOnFoundEquipment = 1400; //
EquipmentLvlimitReached = 1401; // EquipmentLvlimitReached = 1401; //

View File

@ -1,5 +1,6 @@
syntax = "proto3"; syntax = "proto3";
option go_package = ".;pb"; option go_package = ".;pb";
package pb;
// enum PropertyType{ // enum PropertyType{
// Hp = 0; // // Hp = 0; //
@ -24,15 +25,18 @@ message DB_HeroData {
int32 captainSkill = 8; //@go_tags(`bson:"captainSkill"`) int32 captainSkill = 8; //@go_tags(`bson:"captainSkill"`)
repeated SkillData normalSkill = 9; //@go_tags(`bson:"normalSkill"`) repeated SkillData normalSkill = 9; //@go_tags(`bson:"normalSkill"`)
map<int32, int32> property = 10; // map<int32, int32> property = 10; //
map<int32, int32> addProperty = 11; //@go_tags(`bson:"addProperty"`) map<int32, int32> addProperty =
11; //@go_tags(`bson:"addProperty"`)
int32 formation = 12; // int32 formation = 12; //
int32 cardType = 13; //@go_tags(`bson:"cardType"`) () int32 cardType =
13; //@go_tags(`bson:"cardType"`) ()
int32 curSkin = 14; //@go_tags(`bson:"curSkin"`) ID int32 curSkin = 14; //@go_tags(`bson:"curSkin"`) ID
repeated int32 skins = 15; // ID repeated int32 skins = 15; // ID
bool block = 16; // bool block = 16; //
repeated string equipID = 17; //@go_tags(`bson:"equipID"`) objID repeated string equipID = 17; //@go_tags(`bson:"equipID"`) objID
int32 resonateNum = 18; //@go_tags(`bson:"resonateNum"`) int32 resonateNum = 18; //@go_tags(`bson:"resonateNum"`)
int32 distributionResonate = 19; //@go_tags(`bson:"distributionResonate"`) int32 distributionResonate =
19; //@go_tags(`bson:"distributionResonate"`)
map<int32, int32> energy = 20; // map<int32, int32> energy = 20; //
int32 count = 21; // int32 count = 21; //
} }

View File

@ -1,7 +1,19 @@
syntax = "proto3"; syntax = "proto3";
option go_package = ".;pb"; option go_package = ".;pb";
package pb;
import "hero/hero_db.proto"; import "hero/hero_db.proto";
//
message Hero_Info_Req {
string heroId = 1; //ID
}
message Hero_Info_Rsp { DB_HeroData base = 1; }
//
message Hero_List_Req {}
message Hero_List_Rsp { repeated DB_HeroData list = 1; }
/// : () /// : ()
/// : (使) /// : (使)
/// : () /// : ()
@ -14,8 +26,8 @@ message ItemData{
// //
message Hero_StrengthenUplv_Req { message Hero_StrengthenUplv_Req {
string heroObjID = 1; // ID string heroObjID = 1; // ID
repeated string expCardID = 2; // ID string expCardID = 2; // ID
int32 amount = 3; // int32 amount = 3; // }
} }
// //

View File

@ -21,4 +21,6 @@ message DB_UserData {
int64 logintime = 10; //@go_tags(`bson:"logintime"`) int64 logintime = 10; //@go_tags(`bson:"logintime"`)
int32 friendPoint = 11; //@go_tags(`bson:"friendPoint"`) int32 friendPoint = 11; //@go_tags(`bson:"friendPoint"`)
int32 avatar = 12; //@go_tags(`bson:"avatar"`) int32 avatar = 12; //@go_tags(`bson:"avatar"`)
int32 gold = 13; //@go_tags(`bson:"gold"`)
int32 exp = 14; //@go_tags(`bson:"exp"`)
} }

View File

@ -100,6 +100,8 @@ type DB_UserData struct {
Logintime int64 `protobuf:"varint,10,opt,name=logintime,proto3" json:"logintime" bson:"logintime"` //最后一次登录时间 Logintime int64 `protobuf:"varint,10,opt,name=logintime,proto3" json:"logintime" bson:"logintime"` //最后一次登录时间
FriendPoint int32 `protobuf:"varint,11,opt,name=friendPoint,proto3" json:"friendPoint" bson:"friendPoint"` //友情点 FriendPoint int32 `protobuf:"varint,11,opt,name=friendPoint,proto3" json:"friendPoint" bson:"friendPoint"` //友情点
Avatar int32 `protobuf:"varint,12,opt,name=avatar,proto3" json:"avatar" bson:"avatar"` //头像 Avatar int32 `protobuf:"varint,12,opt,name=avatar,proto3" json:"avatar" bson:"avatar"` //头像
Gold int32 `protobuf:"varint,13,opt,name=gold,proto3" json:"gold" bson:"gold"` //金币
Exp int32 `protobuf:"varint,14,opt,name=exp,proto3" json:"exp" bson:"exp"` //经验
} }
func (x *DB_UserData) Reset() { func (x *DB_UserData) Reset() {
@ -218,6 +220,20 @@ func (x *DB_UserData) GetAvatar() int32 {
return 0 return 0
} }
func (x *DB_UserData) GetGold() int32 {
if x != nil {
return x.Gold
}
return 0
}
func (x *DB_UserData) GetExp() int32 {
if x != nil {
return x.Exp
}
return 0
}
var File_user_user_db_proto protoreflect.FileDescriptor var File_user_user_db_proto protoreflect.FileDescriptor
var file_user_user_db_proto_rawDesc = []byte{ var file_user_user_db_proto_rawDesc = []byte{
@ -229,7 +245,7 @@ var file_user_user_db_proto_rawDesc = []byte{
0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61,
0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
0x52, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x10, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65,
0x49, 0x64, 0x22, 0xaf, 0x02, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x55, 0x73, 0x65, 0x72, 0x44, 0x61, 0x49, 0x64, 0x22, 0xd5, 0x02, 0x0a, 0x0b, 0x44, 0x42, 0x5f, 0x55, 0x73, 0x65, 0x72, 0x44, 0x61,
0x74, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, 0x61, 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, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01,
@ -248,8 +264,10 @@ var file_user_user_db_proto_rawDesc = []byte{
0x69, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x69, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52,
0x0b, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x0b, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06,
0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x61, 0x76, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x61, 0x76,
0x61, 0x74, 0x61, 0x72, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x61, 0x74, 0x61, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x67, 0x6f, 0x6c, 0x64, 0x18, 0x0d, 0x20, 0x01,
0x6f, 0x74, 0x6f, 0x33, 0x28, 0x05, 0x52, 0x04, 0x67, 0x6f, 0x6c, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x65, 0x78, 0x70, 0x18,
0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x65, 0x78, 0x70, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b,
0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (

View File

@ -44,3 +44,9 @@ func newOptionsByOption(opts ...Option) (Options, error) {
} }
return options, nil return options, nil
} }
func SetConfigPath(v string) Option {
return func(o *Options) {
o.ConfigurePath = v
}
}

View File

@ -1,3 +1,4 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <auto-generated> // <auto-generated>
// This code was generated by a tool. // This code was generated by a tool.
@ -11,6 +12,7 @@ package cfg
type JsonLoader func(string) ([]map[string]interface{}, error) type JsonLoader func(string) ([]map[string]interface{}, error)
type Tables struct { type Tables struct {
hero *Game_hero
ui *Game_ui ui *Game_ui
skill *Game_skill skill *Game_skill
plot *Game_plot plot *Game_plot
@ -25,6 +27,11 @@ type Tables struct {
heroLevelgrow *Game_heroLevelgrow heroLevelgrow *Game_heroLevelgrow
heroStarup *Game_heroStarup heroStarup *Game_heroStarup
heroLevelup *Game_heroLevelup heroLevelup *Game_heroLevelup
equip *Game_equip
equipAttrlibrary *Game_equipAttrlibrary
equipSuit *Game_equipSuit
equipIntensify *Game_equipIntensify
item *Game_item
} }
func NewTables(loader JsonLoader) (*Tables, error) { func NewTables(loader JsonLoader) (*Tables, error) {
@ -32,7 +39,12 @@ func NewTables(loader JsonLoader) (*Tables, error) {
var buf []map[string]interface{} var buf []map[string]interface{}
tables := &Tables{} tables := &Tables{}
if buf, err = loader("game_hero") ; err != nil {
return nil, err
}
if tables.hero, err = NewGame_hero(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_ui") ; err != nil { if buf, err = loader("game_ui") ; err != nil {
return nil, err return nil, err
} }
@ -117,5 +129,35 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if tables.heroLevelup, err = NewGame_heroLevelup(buf) ; err != nil { if tables.heroLevelup, err = NewGame_heroLevelup(buf) ; err != nil {
return nil, err return nil, err
} }
if buf, err = loader("game_equip") ; err != nil {
return nil, err
}
if tables.equip, err = NewGame_equip(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_equipattrlibrary") ; err != nil {
return nil, err
}
if tables.equipAttrlibrary, err = NewGame_equipAttrlibrary(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_equipsuit") ; err != nil {
return nil, err
}
if tables.equipSuit, err = NewGame_equipSuit(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_equipintensify") ; err != nil {
return nil, err
}
if tables.equipIntensify, err = NewGame_equipIntensify(buf) ; err != nil {
return nil, err
}
if buf, err = loader("game_item") ; err != nil {
return nil, err
}
if tables.item, err = NewGame_item(buf) ; err != nil {
return nil, err
}
return tables, nil return tables, nil
} }

View File

@ -1,3 +1,4 @@
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
// <auto-generated> // <auto-generated>
// This code was generated by a tool. // This code was generated by a tool.
@ -21,28 +22,8 @@ func (Game_atn) GetTypeId() int {
func NewGame_atn(_buf map[string]interface{}) (_v *Game_atn, err error) { func NewGame_atn(_buf map[string]interface{}) (_v *Game_atn, err error) {
_v = &Game_atn{} _v = &Game_atn{}
{ { var _ok_ bool; if _v.A, _ok_ = _buf["a"].(string); !_ok_ { err = errors.New("a error"); return } }
var _ok_ bool { var _ok_ bool; if _v.T, _ok_ = _buf["t"].(string); !_ok_ { err = errors.New("t error"); return } }
if _v.A, _ok_ = _buf["a"].(string); !_ok_ { { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["n"].(float64); !_ok_ { err = errors.New("n error"); return }; _v.N = int32(_tempNum_) }
err = errors.New("a error")
return
}
}
{
var _ok_ bool
if _v.T, _ok_ = _buf["t"].(string); !_ok_ {
err = errors.New("t error")
return
}
}
{
var _ok_ bool
var _tempNum_ float64
if _tempNum_, _ok_ = _buf["n"].(float64); !_ok_ {
err = errors.New("n error")
return
}
_v.N = int32(_tempNum_)
}
return return
} }

View File

@ -15,6 +15,7 @@ type Game_equipAttrlibraryData struct {
Libraryid int32 Libraryid int32
Attr []string Attr []string
Probability int32 Probability int32
Addition []int32
} }
func (Game_equipAttrlibraryData) GetTypeId() int { func (Game_equipAttrlibraryData) GetTypeId() int {
@ -40,5 +41,19 @@ func NewGame_equipAttrlibraryData(_buf map[string]interface{}) (_v *Game_equipAt
} }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["probability"].(float64); !_ok_ { err = errors.New("probability error"); return }; _v.Probability = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["probability"].(float64); !_ok_ { err = errors.New("probability error"); return }; _v.Probability = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["Addition"].([]interface{}); !_ok_ { err = errors.New("Addition error"); return }
_v.Addition = 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.Addition = append(_v.Addition, _list_v_)
}
}
return return
} }

View File

@ -14,6 +14,7 @@ type Game_equipSuitData struct {
Suittype int32 Suittype int32
Suitnum int32 Suitnum int32
Skill int32 Skill int32
Skillintr string
} }
func (Game_equipSuitData) GetTypeId() int { func (Game_equipSuitData) GetTypeId() int {
@ -25,5 +26,6 @@ func NewGame_equipSuitData(_buf map[string]interface{}) (_v *Game_equipSuitData,
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["suittype"].(float64); !_ok_ { err = errors.New("suittype error"); return }; _v.Suittype = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["suittype"].(float64); !_ok_ { err = errors.New("suittype error"); return }; _v.Suittype = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["suitnum"].(float64); !_ok_ { err = errors.New("suitnum error"); return }; _v.Suitnum = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["suitnum"].(float64); !_ok_ { err = errors.New("suitnum error"); return }; _v.Suitnum = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["skill"].(float64); !_ok_ { err = errors.New("skill error"); return }; _v.Skill = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["skill"].(float64); !_ok_ { err = errors.New("skill error"); return }; _v.Skill = int32(_tempNum_) }
{ var _ok_ bool; if _v.Skillintr, _ok_ = _buf["skillintr"].(string); !_ok_ { err = errors.New("skillintr error"); return } }
return return
} }

View File

@ -0,0 +1,42 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
type Game_hero struct {
_dataMap map[int32]*Game_heroData
_dataList []*Game_heroData
}
func NewGame_hero(_buf []map[string]interface{}) (*Game_hero, error) {
_dataList := make([]*Game_heroData, 0, len(_buf))
dataMap := make(map[int32]*Game_heroData)
for _, _ele_ := range _buf {
if _v, err2 := NewGame_heroData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Id] = _v
}
}
return &Game_hero{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *Game_hero) GetDataMap() map[int32]*Game_heroData {
return table._dataMap
}
func (table *Game_hero) GetDataList() []*Game_heroData {
return table._dataList
}
func (table *Game_hero) Get(key int32) *Game_heroData {
return table._dataMap[key]
}

View File

@ -0,0 +1,95 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
import "errors"
import "bright/math"
type Game_heroData struct {
Id int32
Name string
Star int32
Color int32
Race int32
Job int32
Type int32
Prefab string
Icon int32
Sound int32
Tujing []int32
Intr string
Events string
Cite string
Effectstay []string
Hpspace math.Vector3
Skill1 int32
Skill2 int32
Skill3 int32
}
func (Game_heroData) GetTypeId() int {
return 650222912
}
func NewGame_heroData(_buf map[string]interface{}) (_v *Game_heroData, err error) {
_v = &Game_heroData{}
{ 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.Name, _ok_ = _buf["name"].(string); !_ok_ { err = errors.New("name error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["star"].(float64); !_ok_ { err = errors.New("star error"); return }; _v.Star = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["color"].(float64); !_ok_ { err = errors.New("color error"); return }; _v.Color = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["race"].(float64); !_ok_ { err = errors.New("race error"); return }; _v.Race = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["job"].(float64); !_ok_ { err = errors.New("job error"); return }; _v.Job = 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; if _v.Prefab, _ok_ = _buf["prefab"].(string); !_ok_ { err = errors.New("prefab error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["icon"].(float64); !_ok_ { err = errors.New("icon error"); return }; _v.Icon = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["sound"].(float64); !_ok_ { err = errors.New("sound error"); return }; _v.Sound = int32(_tempNum_) }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["tujing"].([]interface{}); !_ok_ { err = errors.New("tujing error"); return }
_v.Tujing = 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.Tujing = append(_v.Tujing, _list_v_)
}
}
{ var _ok_ bool; if _v.Intr, _ok_ = _buf["intr"].(string); !_ok_ { err = errors.New("intr error"); return } }
{ var _ok_ bool; if _v.Events, _ok_ = _buf["events"].(string); !_ok_ { err = errors.New("events error"); return } }
{ var _ok_ bool; if _v.Cite, _ok_ = _buf["cite"].(string); !_ok_ { err = errors.New("cite error"); return } }
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["effectstay"].([]interface{}); !_ok_ { err = errors.New("effectstay error"); return }
_v.Effectstay = 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.Effectstay = append(_v.Effectstay, _list_v_)
}
}
{ var _ok_ bool; var _v_ map[string]interface{}; if _v_, _ok_ = _buf["hpspace"].(map[string]interface{}); !_ok_ { err = errors.New("hpspace error"); return }
var _x_, _y_, _z_ float32;
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _v_["x"].(float64); !_ok_ { err = errors.New("x error"); return }; _x_ = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _v_["y"].(float64); !_ok_ { err = errors.New("y error"); return }; _y_ = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _v_["z"].(float64); !_ok_ { err = errors.New("z error"); return }; _z_ = float32(_tempNum_) }
_v.Hpspace = math.NewVector3(_x_, _y_, _z_)
}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["skill1"].(float64); !_ok_ { err = errors.New("skill1 error"); return }; _v.Skill1 = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["skill2"].(float64); !_ok_ { err = errors.New("skill2 error"); return }; _v.Skill2 = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["skill3"].(float64); !_ok_ { err = errors.New("skill3 error"); return }; _v.Skill3 = int32(_tempNum_) }
return
}

View File

@ -12,7 +12,8 @@ import "errors"
type Game_heroLevelupData struct { type Game_heroLevelupData struct {
Level int32 Level int32
Heroexp int32 Heroexp []*Game_atn
Gold []*Game_atn
Hp float32 Hp float32
Atk float32 Atk float32
Def float32 Def float32
@ -25,7 +26,34 @@ func (Game_heroLevelupData) GetTypeId() int {
func NewGame_heroLevelupData(_buf map[string]interface{}) (_v *Game_heroLevelupData, err error) { func NewGame_heroLevelupData(_buf map[string]interface{}) (_v *Game_heroLevelupData, err error) {
_v = &Game_heroLevelupData{} _v = &Game_heroLevelupData{}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["level"].(float64); !_ok_ { err = errors.New("level error"); return }; _v.Level = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["level"].(float64); !_ok_ { err = errors.New("level error"); return }; _v.Level = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["heroexp"].(float64); !_ok_ { err = errors.New("heroexp error"); return }; _v.Heroexp = int32(_tempNum_) } {
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["heroexp"].([]interface{}); !_ok_ { err = errors.New("heroexp error"); return }
_v.Heroexp = make([]*Game_atn, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ *Game_atn
{ 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 = NewGame_atn(_x_); err != nil { return } }
_v.Heroexp = append(_v.Heroexp, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["gold"].([]interface{}); !_ok_ { err = errors.New("gold error"); return }
_v.Gold = make([]*Game_atn, 0, len(_arr_))
for _, _e_ := range _arr_ {
var _list_v_ *Game_atn
{ 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 = NewGame_atn(_x_); err != nil { return } }
_v.Gold = append(_v.Gold, _list_v_)
}
}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["hp"].(float64); !_ok_ { err = errors.New("hp error"); return }; _v.Hp = float32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["hp"].(float64); !_ok_ { err = errors.New("hp error"); return }; _v.Hp = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["atk"].(float64); !_ok_ { err = errors.New("atk error"); return }; _v.Atk = float32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["atk"].(float64); !_ok_ { err = errors.New("atk error"); return }; _v.Atk = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["def"].(float64); !_ok_ { err = errors.New("def error"); return }; _v.Def = float32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["def"].(float64); !_ok_ { err = errors.New("def error"); return }; _v.Def = float32(_tempNum_) }

View File

@ -21,7 +21,7 @@ func NewGame_heroStargrow(_buf []map[string]interface{}) (*Game_heroStargrow, er
return nil, err2 return nil, err2
} else { } else {
_dataList = append(_dataList, _v) _dataList = append(_dataList, _v)
dataMap[_v.Color] = _v dataMap[_v.Star] = _v
} }
} }
return &Game_heroStargrow{_dataList:_dataList, _dataMap:dataMap}, nil return &Game_heroStargrow{_dataList:_dataList, _dataMap:dataMap}, nil

View File

@ -11,7 +11,8 @@ package cfg
import "errors" import "errors"
type Game_heroStargrowData struct { type Game_heroStargrowData struct {
Color int32 Star int32
Level int32
StarupHp float32 StarupHp float32
StarupAtk float32 StarupAtk float32
StarupDef float32 StarupDef float32
@ -24,7 +25,8 @@ func (Game_heroStargrowData) GetTypeId() int {
func NewGame_heroStargrowData(_buf map[string]interface{}) (_v *Game_heroStargrowData, err error) { func NewGame_heroStargrowData(_buf map[string]interface{}) (_v *Game_heroStargrowData, err error) {
_v = &Game_heroStargrowData{} _v = &Game_heroStargrowData{}
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["color"].(float64); !_ok_ { err = errors.New("color error"); return }; _v.Color = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["star"].(float64); !_ok_ { err = errors.New("star error"); return }; _v.Star = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["level"].(float64); !_ok_ { err = errors.New("level error"); return }; _v.Level = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["starup_hp"].(float64); !_ok_ { err = errors.New("starup_hp error"); return }; _v.StarupHp = float32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["starup_hp"].(float64); !_ok_ { err = errors.New("starup_hp error"); return }; _v.StarupHp = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["starup_atk"].(float64); !_ok_ { err = errors.New("starup_atk error"); return }; _v.StarupAtk = float32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["starup_atk"].(float64); !_ok_ { err = errors.New("starup_atk error"); return }; _v.StarupAtk = float32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["starup_def"].(float64); !_ok_ { err = errors.New("starup_def error"); return }; _v.StarupDef = float32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["starup_def"].(float64); !_ok_ { err = errors.New("starup_def error"); return }; _v.StarupDef = float32(_tempNum_) }

View File

@ -21,6 +21,7 @@ type Game_heroStarupData struct {
Needrace []int32 Needrace []int32
Needracestar int32 Needracestar int32
Needracenum int32 Needracenum int32
Gold int32
} }
func (Game_heroStarupData) GetTypeId() int { func (Game_heroStarupData) GetTypeId() int {
@ -52,5 +53,6 @@ func NewGame_heroStarupData(_buf map[string]interface{}) (_v *Game_heroStarupDat
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["needracestar"].(float64); !_ok_ { err = errors.New("needracestar error"); return }; _v.Needracestar = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["needracestar"].(float64); !_ok_ { err = errors.New("needracestar error"); return }; _v.Needracestar = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["needracenum"].(float64); !_ok_ { err = errors.New("needracenum error"); return }; _v.Needracenum = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["needracenum"].(float64); !_ok_ { err = errors.New("needracenum error"); return }; _v.Needracenum = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["gold"].(float64); !_ok_ { err = errors.New("gold error"); return }; _v.Gold = int32(_tempNum_) }
return return
} }

View File

@ -21,7 +21,7 @@ func NewGame_newHero(_buf []map[string]interface{}) (*Game_newHero, error) {
return nil, err2 return nil, err2
} else { } else {
_dataList = append(_dataList, _v) _dataList = append(_dataList, _v)
dataMap[_v.Id] = _v dataMap[_v.Hid] = _v
} }
} }
return &Game_newHero{_dataList:_dataList, _dataMap:dataMap}, nil return &Game_newHero{_dataList:_dataList, _dataMap:dataMap}, nil

View File

@ -12,7 +12,7 @@ import "errors"
import "bright/math" import "bright/math"
type Game_newHeroData struct { type Game_newHeroData struct {
Id int32 Hid int32
Name string Name string
Star int32 Star int32
Color int32 Color int32
@ -40,7 +40,7 @@ func (Game_newHeroData) GetTypeId() int {
func NewGame_newHeroData(_buf map[string]interface{}) (_v *Game_newHeroData, err error) { func NewGame_newHeroData(_buf map[string]interface{}) (_v *Game_newHeroData, err error) {
_v = &Game_newHeroData{} _v = &Game_newHeroData{}
{ 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["hid"].(float64); !_ok_ { err = errors.New("hid error"); return }; _v.Hid = int32(_tempNum_) }
{ var _ok_ bool; if _v.Name, _ok_ = _buf["name"].(string); !_ok_ { err = errors.New("name error"); return } } { var _ok_ bool; if _v.Name, _ok_ = _buf["name"].(string); !_ok_ { err = errors.New("name error"); return } }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["star"].(float64); !_ok_ { err = errors.New("star error"); return }; _v.Star = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["star"].(float64); !_ok_ { err = errors.New("star error"); return }; _v.Star = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["color"].(float64); !_ok_ { err = errors.New("color error"); return }; _v.Color = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["color"].(float64); !_ok_ { err = errors.New("color error"); return }; _v.Color = int32(_tempNum_) }

View File

@ -13,7 +13,10 @@ import "errors"
type Game_skillAfteratkData struct { type Game_skillAfteratkData struct {
Id int32 Id int32
Desc string Desc string
Target string From int32
Limit int32
Where []string
Order []string
EmitPR int32 EmitPR int32
Type string Type string
Argu []string Argu []string
@ -32,7 +35,36 @@ func NewGame_skillAfteratkData(_buf map[string]interface{}) (_v *Game_skillAfter
_v = &Game_skillAfteratkData{} _v = &Game_skillAfteratkData{}
{ 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["Id"].(float64); !_ok_ { err = errors.New("Id error"); return }; _v.Id = int32(_tempNum_) }
{ var _ok_ bool; if _v.Desc, _ok_ = _buf["Desc"].(string); !_ok_ { err = errors.New("Desc error"); return } } { var _ok_ bool; if _v.Desc, _ok_ = _buf["Desc"].(string); !_ok_ { err = errors.New("Desc error"); return } }
{ var _ok_ bool; if _v.Target, _ok_ = _buf["Target"].(string); !_ok_ { err = errors.New("Target error"); return } } { 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 _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["Where"].([]interface{}); !_ok_ { err = errors.New("Where error"); return }
_v.Where = 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.Where = append(_v.Where, _list_v_)
}
}
{
var _arr_ []interface{}
var _ok_ bool
if _arr_, _ok_ = _buf["Order"].([]interface{}); !_ok_ { err = errors.New("Order error"); return }
_v.Order = 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.Order = append(_v.Order, _list_v_)
}
}
{ 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; 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.Type, _ok_ = _buf["Type"].(string); !_ok_ { err = errors.New("Type error"); return } } { var _ok_ bool; if _v.Type, _ok_ = _buf["Type"].(string); !_ok_ { err = errors.New("Type error"); return } }
{ {

1
utils/math_test.go Normal file
View File

@ -0,0 +1 @@
package utils