From b9aaff762b86bc457f07b124d6ab15bb12ca30f6 Mon Sep 17 00:00:00 2001 From: liwei1dao Date: Fri, 1 Jul 2022 12:11:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=A8=A1=E5=9D=97=E5=9F=BA?= =?UTF-8?q?=E7=A1=80=E5=AF=B9=E8=B1=A1=E7=9A=84=E9=80=9A=E7=94=A8=E4=BE=9D?= =?UTF-8?q?=E8=B5=96=E5=B0=81=E8=A3=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/equipment/api_equip.go | 4 +- modules/equipment/api_upgrade.go | 4 +- modules/items/api_getlist.go | 8 ++- modules/items/api_sellItem.go | 6 +- modules/items/api_useItem.go | 6 +- modules/modulebase.go | 101 ++++++++++++------------------- 6 files changed, 57 insertions(+), 72 deletions(-) diff --git a/modules/equipment/api_equip.go b/modules/equipment/api_equip.go index 00b05b147..9ed7c0e90 100644 --- a/modules/equipment/api_equip.go +++ b/modules/equipment/api_equip.go @@ -48,7 +48,7 @@ func (this *apiComp) Equip(session comm.IUserSession, req *pb.EquipmentEquipReq) } } //获取英雄数据 - if hero, code = this.module.hero.GetHero(session.GetUserId(), req.HeroCardId); code != pb.ErrorCode_Success { + if hero, code = this.module.ModuleHero.GetHero(session.GetUserId(), req.HeroCardId); code != pb.ErrorCode_Success { return } //读取英雄原装备 @@ -110,7 +110,7 @@ func (this *apiComp) Equip(session comm.IUserSession, req *pb.EquipmentEquipReq) } } //更新装备数据加成 - if code = this.module.hero.UpdateEquipment(hero, equipments); code == pb.ErrorCode_Success { + if code = this.module.ModuleHero.UpdateEquipment(hero, equipments); code == pb.ErrorCode_Success { if err = this.module.modelEquipment.UpdateByHeroId(session.GetUserId(), updatequipment...); err != nil { log.Errorf("Equip err%v", err) code = pb.ErrorCode_SystemError diff --git a/modules/equipment/api_upgrade.go b/modules/equipment/api_upgrade.go index ac6261a46..bfba8cfd3 100644 --- a/modules/equipment/api_upgrade.go +++ b/modules/equipment/api_upgrade.go @@ -124,7 +124,7 @@ func (this *apiComp) Upgrade(session comm.IUserSession, req *pb.EquipmentUpgrade //已装备 重新计算属性 if equipment.HeroId != "" { - if hero, code = this.module.hero.GetHero(session.GetUserId(), equipment.HeroId); code != pb.ErrorCode_Success { + if hero, code = this.module.ModuleHero.GetHero(session.GetUserId(), equipment.HeroId); code != pb.ErrorCode_Success { log.Errorf("Upgrade code:%d", code) return } @@ -142,7 +142,7 @@ func (this *apiComp) Upgrade(session comm.IUserSession, req *pb.EquipmentUpgrade } } } - code = this.module.hero.UpdateEquipment(hero, equipments) + code = this.module.ModuleHero.UpdateEquipment(hero, equipments) } } return diff --git a/modules/items/api_getlist.go b/modules/items/api_getlist.go index 059f7a8ce..d66210dbf 100644 --- a/modules/items/api_getlist.go +++ b/modules/items/api_getlist.go @@ -5,16 +5,18 @@ import ( "go_dreamfactory/lego/sys/log" "go_dreamfactory/pb" "time" + + "google.golang.org/protobuf/proto" ) //参数校验 -func (this *apiComp) GetlistCheck(session comm.IUserSession, req *pb.ItemsGetlistReq) (result map[string]interface{}, code comm.ErrorCode) { - result = map[string]interface{}{"ce": 123} +func (this *apiComp) GetlistCheck(session comm.IUserSession, req *pb.ItemsGetlistReq) (code pb.ErrorCode) { + return } ///获取用户道具 -func (this *apiComp) Getlist(session comm.IUserSession, agrs map[string]interface{}, req *pb.ItemsGetlistReq) (code pb.ErrorCode) { +func (this *apiComp) Getlist(session comm.IUserSession, req *pb.ItemsGetlistReq) (code pb.ErrorCode, data proto.Message) { var ( err error items []*pb.DB_UserItemData diff --git a/modules/items/api_sellItem.go b/modules/items/api_sellItem.go index c3b0b6732..03d05c075 100644 --- a/modules/items/api_sellItem.go +++ b/modules/items/api_sellItem.go @@ -3,16 +3,18 @@ package items import ( "go_dreamfactory/comm" "go_dreamfactory/pb" + + "google.golang.org/protobuf/proto" ) //参数校验 -func (this *apiComp) SellItemCheck(session comm.IUserSession, req *pb.ItemsSellItemReq) (result map[string]interface{}, code comm.ErrorCode) { +func (this *apiComp) SellItemCheck(session comm.IUserSession, req *pb.ItemsSellItemReq) (code pb.ErrorCode) { return } //出售道具 -func (this *apiComp) SellItem(session comm.IUserSession, agrs map[string]interface{}, req *pb.ItemsSellItemReq) (code pb.ErrorCode) { +func (this *apiComp) SellItem(session comm.IUserSession, req *pb.ItemsSellItemReq) (code pb.ErrorCode, data proto.Message) { defer func() { session.SendMsg(string(this.module.GetType()), "sellitem", &pb.ItemsSellItemResp{}) }() diff --git a/modules/items/api_useItem.go b/modules/items/api_useItem.go index 89f50b237..1f2797ba0 100644 --- a/modules/items/api_useItem.go +++ b/modules/items/api_useItem.go @@ -3,16 +3,18 @@ package items import ( "go_dreamfactory/comm" "go_dreamfactory/pb" + + "google.golang.org/protobuf/proto" ) //参数校验 -func (this *apiComp) UseitemCheck(session comm.IUserSession, req *pb.ItemsUseItemReq) (result map[string]interface{}, code comm.ErrorCode) { +func (this *apiComp) UseitemCheck(session comm.IUserSession, req *pb.ItemsUseItemReq) (code pb.ErrorCode) { return } //使用道具 -func (this *apiComp) Useitem(session comm.IUserSession, agrs map[string]interface{}, req *pb.ItemsUseItemReq) (code pb.ErrorCode) { +func (this *apiComp) Useitem(session comm.IUserSession, req *pb.ItemsUseItemReq) (code pb.ErrorCode, data proto.Message) { defer func() { session.SendMsg(string(this.module.GetType()), "useitem", &pb.ItemsUseItemResp{}) }() diff --git a/modules/modulebase.go b/modules/modulebase.go index 5eaf6e347..f5fd333e0 100644 --- a/modules/modulebase.go +++ b/modules/modulebase.go @@ -23,6 +23,11 @@ type ModuleBase struct { cbase.ModuleBase module core.IModule service base.IRPCXService + //常用的一些通用模块 在底层注册好 + ModuleUser comm.IUser //用户模块 + ModuleItems comm.IItems //道具背包模块 + ModuleHero comm.IHero //英雄模块 + ModuleEquipment comm.IEquipment //装备模块 } //模块初始化接口 @@ -33,6 +38,29 @@ func (this *ModuleBase) Init(service core.IService, module core.IModule, options return } +//模块启动接口 +func (this *ModuleBase) Start() (err error) { + err = this.ModuleBase.Start() + var module core.IModule + if module, err = this.service.GetModule(comm.ModuleUser); err != nil { + return + } + this.ModuleUser = module.(comm.IUser) + if module, err = this.service.GetModule(comm.ModuleItems); err != nil { + return + } + this.ModuleItems = module.(comm.IItems) + if module, err = this.service.GetModule(comm.ModuleHero); err != nil { + return + } + this.ModuleHero = module.(comm.IHero) + if module, err = this.service.GetModule(comm.ModuleEquipment); err == nil { + return + } + this.ModuleEquipment = module.(comm.IEquipment) + return +} + //向指定用户发送消息 func (this *ModuleBase) SendMsgToUser(mainType, subType string, msg proto.Message, user *pb.CacheUser) (err error) { reply := &pb.RPCMessageReply{} @@ -80,34 +108,11 @@ func (this *ModuleBase) SendMsgToUsers(mainType, subType string, msg proto.Messa //校验消耗资源 func (this *ModuleBase) CheckConsumeRes(uid string, res []*cfg.Game_atn) (code pb.ErrorCode) { var ( - module core.IModule err error resID int amount int32 - user comm.IUser //用户模块 - items comm.IItems //道具背包模块 - hero comm.IHero //英雄模块 - // equipment comm.IEquipment //装备模块 ) - if module, err = this.service.GetModule(comm.ModuleUser); err != nil { - code = pb.ErrorCode_SystemError - return - } - user = module.(comm.IUser) - if module, err = this.service.GetModule(comm.ModuleItems); err != nil { - code = pb.ErrorCode_SystemError - return - } - items = module.(comm.IItems) - if module, err = this.service.GetModule(comm.ModuleHero); err != nil { - code = pb.ErrorCode_SystemError - return - } - hero = module.(comm.IHero) - // if module, err = this.service.GetModule(comm.SM_EquipmentModule); err == nil { - // return - // } - // equipment = module.(comm.IEquipment) + source := &comm.ModuleCallSource{ Module: string(this.module.GetType()), FuncName: "CheckConsumeRes", @@ -116,7 +121,7 @@ func (this *ModuleBase) CheckConsumeRes(uid string, res []*cfg.Game_atn) (code p //校验消费资源是否充足 for _, v := range res { if v.A == comm.AttrType { //用户属性资源 - if amount = user.QueryAttributeValue(uid, v.T); amount < v.N { + if amount = this.ModuleUser.QueryAttributeValue(uid, v.T); amount < v.N { code = pb.ErrorCode_ResNoEnough return } @@ -125,7 +130,7 @@ func (this *ModuleBase) CheckConsumeRes(uid string, res []*cfg.Game_atn) (code p code = pb.ErrorCode_ConfigurationException return } - if amount = int32(items.QueryItemAmount(source, uid, int32(resID))); amount < v.N { + if amount = int32(this.ModuleItems.QueryItemAmount(source, uid, int32(resID))); amount < v.N { code = pb.ErrorCode_ResNoEnough return } @@ -134,7 +139,7 @@ func (this *ModuleBase) CheckConsumeRes(uid string, res []*cfg.Game_atn) (code p code = pb.ErrorCode_ConfigurationException return } - if amount = int32(hero.QueryHeroAmount(uid, int32(resID))); amount < v.N { + if amount = int32(this.ModuleHero.QueryHeroAmount(uid, int32(resID))); amount < v.N { code = pb.ErrorCode_ResNoEnough return } @@ -154,13 +159,13 @@ func (this *ModuleBase) CheckConsumeRes(uid string, res []*cfg.Game_atn) (code p for _, v := range res { if v.A == comm.AttrType { //用户属性资源 - user.AddAttributeValue(uid, v.T, -1*v.N) + this.ModuleUser.AddAttributeValue(uid, v.T, -1*v.N) } else if v.A == comm.ItemType { //道具资源 resID, _ = strconv.Atoi(v.T) - items.AddItem(source, uid, int32(resID), -1*v.N) + this.ModuleItems.AddItem(source, uid, int32(resID), -1*v.N) } else if v.A == comm.CardType { //卡片资源 resID, _ = strconv.Atoi(v.T) - hero.ChangeCard(uid, int32(resID), -1*v.N) + this.ModuleHero.ChangeCard(uid, int32(resID), -1*v.N) } // } else if v.A == comm.EquipmentType { // resID, _ = strconv.Atoi(v.T) @@ -174,34 +179,8 @@ func (this *ModuleBase) CheckConsumeRes(uid string, res []*cfg.Game_atn) (code p //发放资源 func (this *ModuleBase) DispenseRes(uid string, res []*cfg.Game_atn) (code pb.ErrorCode) { var ( - module core.IModule - err error - resID int - user comm.IUser //用户模块 - items comm.IItems //道具背包模块 - hero comm.IHero //英雄模块 - equipment comm.IEquipment //装备模块 + resID int ) - if module, err = this.service.GetModule(comm.ModuleUser); err != nil { - code = pb.ErrorCode_SystemError - return - } - user = module.(comm.IUser) - if module, err = this.service.GetModule(comm.ModuleItems); err != nil { - code = pb.ErrorCode_SystemError - return - } - items = module.(comm.IItems) - if module, err = this.service.GetModule(comm.ModuleHero); err != nil { - code = pb.ErrorCode_SystemError - return - } - hero = module.(comm.IHero) - if module, err = this.service.GetModule(comm.ModuleEquipment); err != nil { - code = pb.ErrorCode_SystemError - return - } - equipment = module.(comm.IEquipment) source := &comm.ModuleCallSource{ Module: string(this.module.GetType()), FuncName: "DispenseRes", @@ -209,16 +188,16 @@ func (this *ModuleBase) DispenseRes(uid string, res []*cfg.Game_atn) (code pb.Er } for _, v := range res { if v.A == comm.AttrType { //用户属性资源 - user.AddAttributeValue(uid, v.T, v.N) + this.ModuleUser.AddAttributeValue(uid, v.T, v.N) } else if v.A == comm.ItemType { //道具资源 resID, _ = strconv.Atoi(v.T) - items.AddItem(source, uid, int32(resID), v.N) + this.ModuleItems.AddItem(source, uid, int32(resID), v.N) } else if v.A == comm.CardType { //卡片资源 resID, _ = strconv.Atoi(v.T) - hero.ChangeCard(uid, int32(resID), v.N) + this.ModuleHero.ChangeCard(uid, int32(resID), v.N) } else if v.A == comm.EquipmentType { resID, _ = strconv.Atoi(v.T) - equipment.AddNewEquipments(source, uid, map[int32]uint32{int32(resID): uint32(v.N)}) + this.ModuleEquipment.AddNewEquipments(source, uid, map[int32]uint32{int32(resID): uint32(v.N)}) } } return