This commit is contained in:
liwei1dao 2023-10-17 11:20:56 +08:00
commit a5c989583d
3 changed files with 76 additions and 57 deletions

View File

@ -3,16 +3,12 @@ package jielong
import ( import (
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/pb" "go_dreamfactory/pb"
cfg "go_dreamfactory/sys/configure/structs"
) )
// 参数校验 // 参数校验
func (this *apiComp) RewardCheck(session comm.IUserSession, req *pb.JielongRewardReq) (errdata *pb.ErrorData) { func (this *apiComp) RewardCheck(session comm.IUserSession, req *pb.JielongRewardReq) (errdata *pb.ErrorData) {
if req.Rewardkey == 0 {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_ReqParameterError,
Title: pb.ErrorCode_ReqParameterError.ToString(),
}
}
return return
} }
@ -21,6 +17,8 @@ func (this *apiComp) Reward(session comm.IUserSession, req *pb.JielongRewardReq)
list *pb.DBJielongData list *pb.DBJielongData
err error err error
update map[string]interface{} update map[string]interface{}
res []*cfg.Gameatn // 奖励
atno []*pb.UserAtno
) )
update = make(map[string]interface{}, 0) update = make(map[string]interface{}, 0)
if errdata = this.RewardCheck(session, req); errdata != nil { if errdata = this.RewardCheck(session, req); errdata != nil {
@ -37,13 +35,7 @@ func (this *apiComp) Reward(session comm.IUserSession, req *pb.JielongRewardReq)
return return
} }
if req.Cur { if req.Cur {
if _, ok := list.Reward[req.Rewardkey]; ok {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_UserRepeadReward,
Title: pb.ErrorCode_UserRepeadReward.ToString(),
}
return
}
if c, e := this.module.configure.getGameFastDataByType(1); e != nil { if c, e := this.module.configure.getGameFastDataByType(1); e != nil {
errdata = &pb.ErrorData{ errdata = &pb.ErrorData{
Code: pb.ErrorCode_ConfigNoFound, Code: pb.ErrorCode_ConfigNoFound,
@ -51,24 +43,18 @@ func (this *apiComp) Reward(session comm.IUserSession, req *pb.JielongRewardReq)
} }
return return
} else { } else {
if _, ok := c[req.Rewardkey]; !ok { for _, v := range c {
errdata = &pb.ErrorData{ if list.Wincount >= v.Condition {
Code: pb.ErrorCode_ConfigNoFound, if _, ok := c[v.Condition]; !ok {
Title: pb.ErrorCode_ConfigNoFound.ToString(), res = append(res, v.Reward...)
} list.Reward[v.Condition] = 1
return
}
} }
} }
list.Reward[req.Rewardkey] = 1
update["reward"] = list.Reward update["reward"] = list.Reward
}
} else { } else {
if _, ok := list.Gotarr[req.Rewardkey]; ok {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_UserRepeadReward,
Title: pb.ErrorCode_UserRepeadReward.ToString(),
}
return
}
if c, e := this.module.configure.getGameFastDataByType(2); e != nil { if c, e := this.module.configure.getGameFastDataByType(2); e != nil {
errdata = &pb.ErrorData{ errdata = &pb.ErrorData{
Code: pb.ErrorCode_ConfigNoFound, Code: pb.ErrorCode_ConfigNoFound,
@ -76,18 +62,33 @@ func (this *apiComp) Reward(session comm.IUserSession, req *pb.JielongRewardReq)
} }
return return
} else { } else {
if _, ok := c[req.Rewardkey]; !ok { for _, v := range c {
errdata = &pb.ErrorData{ if list.Hisotry >= v.Condition {
Code: pb.ErrorCode_ConfigNoFound, if _, ok := c[v.Condition]; !ok {
Title: pb.ErrorCode_ConfigNoFound.ToString(), res = append(res, v.Reward...)
} list.Gotarr[v.Condition] = 1
return }
} }
} }
list.Gotarr[req.Rewardkey] = 1
update["gotarr"] = list.Gotarr update["gotarr"] = list.Gotarr
} }
}
if len(res) > 0 {
errdata, atno = this.module.DispenseAtno(session, res, true)
if errdata != nil {
return
}
} else { // 没有奖励可以领取
errdata = &pb.ErrorData{
Code: pb.ErrorCode_UserRepeadReward,
Title: pb.ErrorCode_UserRepeadReward.ToString(),
}
return
}
this.module.modelJielong.changeJielongData(session.GetUserId(), update) this.module.modelJielong.changeJielongData(session.GetUserId(), update)
session.SendMsg(string(this.module.GetType()), "reward", &pb.JielongRewardResp{}) session.SendMsg(string(this.module.GetType()), "reward", &pb.JielongRewardResp{
Data: list,
Res: atno,
})
return return
} }

View File

@ -222,8 +222,9 @@ func (this *apiComp) ForgeEquip(session comm.IUserSession, req *pb.SmithyForgeEq
} }
} }
// 装备资源分发 // 装备资源分发
if customLv > 0 || bQuality { if customLv > 0 {
for i := 0; i < int(req.Count); i++ { for i := 0; i < int(req.Count); i++ {
sz := make([]int32, 4) // 最高 4个品质 sz := make([]int32, 4) // 最高 4个品质
// 获得极品权重 // 获得极品权重
sz[3] = this.module.modelStove.StoveToolsQualityProbability(stove) sz[3] = this.module.modelStove.StoveToolsQualityProbability(stove)
@ -236,6 +237,32 @@ func (this *apiComp) ForgeEquip(session comm.IUserSession, req *pb.SmithyForgeEq
} }
} }
} else if bQuality { // 精炼打造
newdrop := this.module.modelStove.CheckUnlockSuid(req.ReelId, stove.Data[req.ReelId].Lv, reelcfg.BasicDrop)
user, err := this.module.ModuleUser.GetUser(session.GetUserId())
if err != nil {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_SystemError,
Title: pb.ErrorCode_SystemError.ToString(),
}
return
}
var addEquipId []string // 添加的装备ID
for i := 0; i < int(req.Count); i++ {
res := this.module.ModuleTools.GetGroupDataByLottery(newdrop, user.Vip, user.Lv)
for _, v := range res {
if v.A == "equi" {
addEquipId = append(addEquipId, v.T)
}
}
}
if equip, errcode1 := this.module.ModuleEquipment.NewMaxQualityEquipment(session, addEquipId); err != nil {
errdata = errcode1
this.module.Errorf("GetForgeEquip error: %v,req.SuiteId:%d, req.Position:%d, customLv:%d", errdata, req.SuiteId, req.Position, customLv)
return
} else {
rsp.Equip = append(rsp.Equip, equip...)
}
} else { // 普通打造 } else { // 普通打造
// 获取掉落id // 获取掉落id
newdrop := this.module.modelStove.CheckUnlockSuid(req.ReelId, stove.Data[req.ReelId].Lv, reelcfg.BasicDrop) newdrop := this.module.modelStove.CheckUnlockSuid(req.ReelId, stove.Data[req.ReelId].Lv, reelcfg.BasicDrop)
@ -247,6 +274,7 @@ func (this *apiComp) ForgeEquip(session comm.IUserSession, req *pb.SmithyForgeEq
} }
return return
} }
// 检查是否命中双倍打造 // 检查是否命中双倍打造
for i := 0; i < int(req.Count); i++ { for i := 0; i < int(req.Count); i++ {
res := this.module.ModuleTools.GetGroupDataByLottery(newdrop, user.Vip, user.Lv) res := this.module.ModuleTools.GetGroupDataByLottery(newdrop, user.Vip, user.Lv)

View File

@ -206,7 +206,6 @@ type JielongRewardReq struct {
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
Cur bool `protobuf:"varint,1,opt,name=cur,proto3" json:"cur"` // 0 本周奖励 1 历史奖励 Cur bool `protobuf:"varint,1,opt,name=cur,proto3" json:"cur"` // 0 本周奖励 1 历史奖励
Rewardkey int32 `protobuf:"varint,2,opt,name=rewardkey,proto3" json:"rewardkey"` // 奖励key
} }
func (x *JielongRewardReq) Reset() { func (x *JielongRewardReq) Reset() {
@ -248,20 +247,13 @@ func (x *JielongRewardReq) GetCur() bool {
return false return false
} }
func (x *JielongRewardReq) GetRewardkey() int32 {
if x != nil {
return x.Rewardkey
}
return 0
}
type JielongRewardResp struct { type JielongRewardResp struct {
state protoimpl.MessageState state protoimpl.MessageState
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
Data *DBJielongData `protobuf:"bytes,1,opt,name=data,proto3" json:"data"` Data *DBJielongData `protobuf:"bytes,1,opt,name=data,proto3" json:"data"`
Res *UserAtno `protobuf:"bytes,2,opt,name=res,proto3" json:"res"` Res []*UserAtno `protobuf:"bytes,2,rep,name=res,proto3" json:"res"`
} }
func (x *JielongRewardResp) Reset() { func (x *JielongRewardResp) Reset() {
@ -303,7 +295,7 @@ func (x *JielongRewardResp) GetData() *DBJielongData {
return nil return nil
} }
func (x *JielongRewardResp) GetRes() *UserAtno { func (x *JielongRewardResp) GetRes() []*UserAtno {
if x != nil { if x != nil {
return x.Res return x.Res
} }
@ -328,17 +320,15 @@ var file_jielong_jielong_msg_proto_rawDesc = []byte{
0x6f, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x22, 0x0a, 0x6f, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x22, 0x0a,
0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42,
0x4a, 0x69, 0x65, 0x6c, 0x6f, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x4a, 0x69, 0x65, 0x6c, 0x6f, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74,
0x61, 0x22, 0x42, 0x0a, 0x10, 0x4a, 0x69, 0x65, 0x6c, 0x6f, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, 0x61, 0x22, 0x24, 0x0a, 0x10, 0x4a, 0x69, 0x65, 0x6c, 0x6f, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61,
0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x75, 0x72, 0x18, 0x01, 0x20, 0x01, 0x72, 0x64, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x75, 0x72, 0x18, 0x01, 0x20, 0x01,
0x28, 0x08, 0x52, 0x03, 0x63, 0x75, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x77, 0x61, 0x72, 0x28, 0x08, 0x52, 0x03, 0x63, 0x75, 0x72, 0x22, 0x54, 0x0a, 0x11, 0x4a, 0x69, 0x65, 0x6c, 0x6f,
0x64, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x65, 0x77, 0x61, 0x6e, 0x67, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x22, 0x0a, 0x04,
0x72, 0x64, 0x6b, 0x65, 0x79, 0x22, 0x54, 0x0a, 0x11, 0x4a, 0x69, 0x65, 0x6c, 0x6f, 0x6e, 0x67, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x4a,
0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x22, 0x0a, 0x04, 0x64, 0x61, 0x69, 0x65, 0x6c, 0x6f, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61,
0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x44, 0x42, 0x4a, 0x69, 0x65, 0x12, 0x1b, 0x0a, 0x03, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e,
0x6c, 0x6f, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1b, 0x55, 0x73, 0x65, 0x72, 0x41, 0x74, 0x6e, 0x6f, 0x52, 0x03, 0x72, 0x65, 0x73, 0x42, 0x06, 0x5a,
0x0a, 0x03, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x55, 0x73, 0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
0x65, 0x72, 0x41, 0x74, 0x6e, 0x6f, 0x52, 0x03, 0x72, 0x65, 0x73, 0x42, 0x06, 0x5a, 0x04, 0x2e,
0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (