From b6e490ee173d55ed0f25620b6516d0fad0b37ea6 Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Thu, 29 Dec 2022 11:54:48 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E8=8E=B7=E5=8F=96=E6=9F=90=E7=A7=8D?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E6=89=80=E6=9C=89=E9=81=93=E5=85=B7=EF=BC=88?= =?UTF-8?q?=E9=81=93=E5=85=B7=E7=B1=BB=E5=9E=8B,=E6=95=B0=E9=87=8F?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/comp_configure.go | 11 +++++++++++ modules/gm/api_cmd.go | 1 + modules/gm/module.go | 26 ++++++++++++++++++++++++++ 3 files changed, 38 insertions(+) diff --git a/modules/comp_configure.go b/modules/comp_configure.go index 05b4f8a3b..93bf1b3ca 100644 --- a/modules/comp_configure.go +++ b/modules/comp_configure.go @@ -332,3 +332,14 @@ func (this *MCompConfigure) GetVipConfigureData(lv int32) (item *cfg.GameVipData return } + +func (this *MCompConfigure) GetItemConfigureByType(useType int32) (item []*cfg.GameItemData) { + if v, err := this.GetConfigure(game_item); err == nil { + for _, v1 := range v.(*cfg.GameItem).GetDataMap() { + if v1.Usetype == useType { + item = append(item, v1) + } + } + } + return +} diff --git a/modules/gm/api_cmd.go b/modules/gm/api_cmd.go index 0e430f0ba..c3c739a74 100644 --- a/modules/gm/api_cmd.go +++ b/modules/gm/api_cmd.go @@ -37,6 +37,7 @@ import ( 20、bingo:cleanitem 21、bingo:allequip 21、bingo:chat,1 +22、bingo:itemtype,1,1 // 获取某种类型所有道具(道具类型,数量) */ //参数校验 func (this *apiComp) CmdCheck(session comm.IUserSession, req *pb.GMCmdReq) (code pb.ErrorCode) { diff --git a/modules/gm/module.go b/modules/gm/module.go index 271dad286..9d611d356 100644 --- a/modules/gm/module.go +++ b/modules/gm/module.go @@ -425,6 +425,32 @@ func (this *GM) CreateCmd(session comm.IUserSession, cmd string) (code pb.ErrorC log.Field{Key: "uid", Value: session.GetUserId()}, log.Field{Key: "0", Value: datas[0]}, ) + } else if len(datas) == 3 && (datas[0] == "itemtype") { + num1, err := strconv.Atoi(datas[1]) + if err != nil { + code = pb.ErrorCode_ReqParameterError + return + } + num2, err := strconv.Atoi(datas[2]) + if err != nil { + code = pb.ErrorCode_ReqParameterError + return + } + _data := this.configure.GetItemConfigureByType(int32(num1)) + for _, v := range _data { + res := &cfg.Gameatn{ + A: "item", + T: v.Id, + N: int32(num2), + } + this.DispenseRes(session, []*cfg.Gameatn{res}, true) + } + this.Debug("使用bingo命令:uid = %s ", + log.Field{Key: "uid", Value: session.GetUserId()}, + log.Field{Key: "0", Value: datas[0]}, + log.Field{Key: "1", Value: datas[1]}, + log.Field{Key: "2", Value: datas[2]}, + ) } } } From 8812fc78c22fb27bcf3fc2fa5847a7f6dd704198 Mon Sep 17 00:00:00 2001 From: meixiongfeng <766881921@qq.com> Date: Thu, 29 Dec 2022 12:01:07 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9vip=20=E7=AD=89=E7=BA=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- comm/imodule.go | 1 + modules/gm/api_cmd.go | 1 + modules/gm/module.go | 18 ++++++++++++++++++ modules/user/module.go | 21 +++++++++++++++++++++ 4 files changed, 41 insertions(+) diff --git a/comm/imodule.go b/comm/imodule.go index 68f8e3c87..002aacf23 100644 --- a/comm/imodule.go +++ b/comm/imodule.go @@ -125,6 +125,7 @@ type ( CheckTujianHero(session IUserSession, heros []string) []bool // bingo设置玩家等级 BingoSetUserLv(session IUserSession, lv int32) error + BingoSetUserVipLv(session IUserSession, lv int32) error } //武器模块 IEquipment interface { diff --git a/modules/gm/api_cmd.go b/modules/gm/api_cmd.go index c3c739a74..fd2a59e20 100644 --- a/modules/gm/api_cmd.go +++ b/modules/gm/api_cmd.go @@ -38,6 +38,7 @@ import ( 21、bingo:allequip 21、bingo:chat,1 22、bingo:itemtype,1,1 // 获取某种类型所有道具(道具类型,数量) +18、bingo:viplv,50 */ //参数校验 func (this *apiComp) CmdCheck(session comm.IUserSession, req *pb.GMCmdReq) (code pb.ErrorCode) { diff --git a/modules/gm/module.go b/modules/gm/module.go index 9d611d356..e0e8ed45b 100644 --- a/modules/gm/module.go +++ b/modules/gm/module.go @@ -451,6 +451,24 @@ func (this *GM) CreateCmd(session comm.IUserSession, cmd string) (code pb.ErrorC log.Field{Key: "1", Value: datas[1]}, log.Field{Key: "2", Value: datas[2]}, ) + } else if len(datas) == 2 && (datas[0] == "viplv") { // 玩家等级 + module1, err := this.service.GetModule(comm.ModuleUser) + if err != nil { + return + } + num, err := strconv.Atoi(datas[1]) + if err != nil { + code = pb.ErrorCode_ReqParameterError + return + } + if err = module1.(comm.IUser).BingoSetUserVipLv(session, int32(num)); err == nil { + code = pb.ErrorCode_Success + } + this.Debug("使用bingo命令:uid = %s ", + log.Field{Key: "uid", Value: session.GetUserId()}, + log.Field{Key: "0", Value: datas[0]}, + log.Field{Key: "N", Value: int32(num)}, + ) } } } diff --git a/modules/user/module.go b/modules/user/module.go index 745977669..7a5589651 100644 --- a/modules/user/module.go +++ b/modules/user/module.go @@ -655,3 +655,24 @@ func (this *User) RecoverUserVit() { } } } + +func (this *User) BingoSetUserVipLv(session comm.IUserSession, lv int32) error { + if lv <= 0 { + return comm.NewCustomError(pb.ErrorCode_ReqParameterError) + } + update := map[string]interface{}{ + "vip": lv, + "vipexp": 0, + } + if err := this.modelUser.Change(session.GetUserId(), update); err == nil { + if err := session.SendMsg(string(this.GetType()), UserSubTypeLvChangedPush, + &pb.UserVipChangedPush{Uid: session.GetUserId(), VipExp: 0, VipLv: lv}); err != nil { + this.Error("Bingo玩家等级变化 UserVipChangedPush推送失败", + log.Field{Key: "uid", Value: session.GetUserId()}, + log.Field{Key: "vipexp", Value: 0}, + log.Field{Key: "viplv", Value: lv}, + ) + } + } + return nil +}