From 5306b1eb979fdf777bf69838dbfeb12774cfeb8f Mon Sep 17 00:00:00 2001 From: liwei1dao Date: Thu, 29 Dec 2022 11:43:28 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E8=A3=85=E5=A4=87=E5=87=BA?= =?UTF-8?q?=E5=94=AE=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- comm/imodule.go | 2 ++ modules/equipment/module.go | 54 +++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/comm/imodule.go b/comm/imodule.go index 56f15b4f3..68f8e3c87 100644 --- a/comm/imodule.go +++ b/comm/imodule.go @@ -140,6 +140,8 @@ type ( NewEquipment(uid, cid string) (code pb.ErrorCode, equip *pb.DB_Equipment) //添加装备 AddEquipment(session IUserSession, equip *pb.DB_Equipment) (code pb.ErrorCode) + //出售装备 + SellEquipments(session IUserSession, equs []string) (code pb.ErrorCode, atno []*pb.UserAtno) } IMainline interface { ModifyMainlineDataByNanduID(uid string, nandu, id int32) (code pb.ErrorCode) diff --git a/modules/equipment/module.go b/modules/equipment/module.go index 646265dec..09361e427 100644 --- a/modules/equipment/module.go +++ b/modules/equipment/module.go @@ -7,6 +7,7 @@ import ( "go_dreamfactory/modules" "go_dreamfactory/pb" cfg "go_dreamfactory/sys/configure/structs" + "math" "github.com/go-redis/redis/v8" ) @@ -175,6 +176,59 @@ func (this *Equipment) AddEquipment(session comm.IUserSession, equip *pb.DB_Equi return } +///出售装备 +func (this *Equipment) SellEquipments(session comm.IUserSession, equs []string) (code pb.ErrorCode, atno []*pb.UserAtno) { + var ( + err error + equipments []*pb.DB_Equipment + confs []*cfg.GameEquipData + sale [][]*cfg.Gameatn + ) + if equipments, err = this.modelEquipment.QueryUserEquipmentsByIds(session.GetUserId(), equs); err != nil { + code = pb.ErrorCode_ReqParameterError + return + } + confs = make([]*cfg.GameEquipData, len(equipments)) + sale = make([][]*cfg.Gameatn, len(equipments)) + for i, v := range equipments { + if v.HeroId != "" || v.Islock { + code = pb.ErrorCode_EquipmentNoCanSell + this.Errorf("NoCanSell %v", v) + return + } + if confs[i], err = this.configure.GetEquipmentConfigureById(v.CId); err != nil { + this.Errorln(err) + code = pb.ErrorCode_EquipmentOnFoundEquipment + return + } + if confs[i].Sale == nil || len(confs[i].Sale) == 0 { + code = pb.ErrorCode_EquipmentNoCanSell + return + } + sale[i] = make([]*cfg.Gameatn, len(confs[i].Sale)) + for n, s := range confs[i].Sale { + _s := &cfg.Gameatn{ + A: s.A, + T: s.T, + N: s.N + int32(math.Floor(float64(s.N*(v.Lv-1))*float64(confs[i].Salecoef))), + } + sale[i][n] = _s + } + } + + sales := make([]*cfg.Gameatn, 0) + for _, v := range sale { + sales = append(sales, v...) + } + if code, atno = this.DispenseAtno(session, sales, true); code != pb.ErrorCode_Success { + return + } + if code = this.DelEquipments(session, equs, true); code != pb.ErrorCode_Success { + return + } + return +} + //Evens-------------------------------------------------------------------------------------------------------------------------------- //推送道具变化消息 func (this *Equipment) equipmentsChangePush(session comm.IUserSession, items []*pb.DB_Equipment) (err error) {