diff --git a/comm/imodule.go b/comm/imodule.go index 29ac45894..94e53d145 100644 --- a/comm/imodule.go +++ b/comm/imodule.go @@ -113,7 +113,7 @@ type ( // 随机任务 IRtask interface { //任务触发 - SendToRtask(session IUserSession, rtaskType int32, params ...int32) (code pb.ErrorCode) + SendToRtask(session IUserSession, rtaskType TaskType, params ...int32) (code pb.ErrorCode) } //好友 diff --git a/modules/equipment/api_equip.go b/modules/equipment/api_equip.go index 630b943d6..0a51300ee 100644 --- a/modules/equipment/api_equip.go +++ b/modules/equipment/api_equip.go @@ -5,6 +5,7 @@ import ( "go_dreamfactory/lego/sys/log" "go_dreamfactory/pb" cfg "go_dreamfactory/sys/configure/structs" + "go_dreamfactory/utils" "google.golang.org/protobuf/proto" ) @@ -26,6 +27,9 @@ func (this *apiComp) Equip(session comm.IUserSession, req *pb.EquipmentEquipReq) equipment *pb.DB_Equipment equipments []*pb.DB_Equipment updatequipment []*pb.DB_Equipment + equipNum int32 + equipStr map[int32]int32 = make(map[int32]int32) + equipLv map[int32]int32 = make(map[int32]int32) hero *pb.DBHero ) @@ -43,6 +47,7 @@ func (this *apiComp) Equip(session comm.IUserSession, req *pb.EquipmentEquipReq) for i, v := range req.EquipmentId { if v != "" { + equipNum++ if equipments[i], err = this.module.modelEquipment.QueryUserEquipmentsById(session.GetUserId(), v); err != nil { log.Errorf("Equip_Check err:%v", err) code = pb.ErrorCode_EquipmentOnFoundEquipment @@ -52,12 +57,13 @@ func (this *apiComp) Equip(session comm.IUserSession, req *pb.EquipmentEquipReq) code = pb.ErrorCode_EquipmentIsWorn return } - + equipLv[equipments[i].Lv]++ if confs[i], err = this.module.configure.GetEquipmentConfigureById(equipments[i].CId); err != nil { log.Errorf("Equip_Check err:%v", err) code = pb.ErrorCode_ConfigNoFound return } + equipStr[confs[i].Star]++ } else { equipments[i] = nil } @@ -138,6 +144,13 @@ func (this *apiComp) Equip(session comm.IUserSession, req *pb.EquipmentEquipReq) code = pb.ErrorCode_SystemError return } + this.module.ModuleRtask.SendToRtask(session, comm.Rtype5, utils.ToInt32(hero.HeroID), equipNum) + for k, v := range equipStr { + this.module.ModuleRtask.SendToRtask(session, comm.Rtype41, utils.ToInt32(hero.HeroID), v, k) + } + for k, v := range equipLv { + this.module.ModuleRtask.SendToRtask(session, comm.Rtype42, utils.ToInt32(hero.HeroID), v, k) + } session.SendMsg(string(this.module.GetType()), "equip", &pb.EquipmentEquipResp{Equipments: updatequipment}) return } diff --git a/modules/modulebase.go b/modules/modulebase.go index 61142d8fc..f5bdb68de 100644 --- a/modules/modulebase.go +++ b/modules/modulebase.go @@ -31,6 +31,7 @@ type ModuleBase struct { ModuleEquipment comm.IEquipment //装备模块 ModuleTask comm.ITask //任务 ModuleFriend comm.IFriend //好友 + ModuleRtask comm.IRtask //随机任务 } //重构模块配置对象 @@ -84,6 +85,11 @@ func (this *ModuleBase) Start() (err error) { return } this.ModuleFriend = module.(comm.IFriend) + + if module, err = this.service.GetModule(comm.ModuleRtask); err != nil { + return + } + this.ModuleRtask = module.(comm.IRtask) return } diff --git a/utils/strings.go b/utils/strings.go index dfb17a1ba..ba75ad482 100644 --- a/utils/strings.go +++ b/utils/strings.go @@ -69,3 +69,11 @@ func IsNum(s string) bool { _, err := strconv.ParseFloat(s, 64) return err == nil } + +func ToInt32(s string) int32 { + if j, err := strconv.ParseInt(s, 10, 32); err != nil { + return 0 + } else { + return int32(j) + } +}