Merge branch 'meixiongfeng' of http://git.legu.cc/liwei_3d/go_dreamfactory into dev

This commit is contained in:
meixiongfeng 2022-08-23 14:55:48 +08:00
commit b1932382bf
4 changed files with 66 additions and 18 deletions

View File

@ -69,8 +69,10 @@ func (this *modelGourmet) GetDropReward(count, dropId int32, Items []*pb.UserAss
for _, value := range data {
szW = append(szW, value.P)
}
index := comm.GetRandW(szW)
res = append(res, data[index].Prize...)
if len(szW) > 0 {
index := comm.GetRandW(szW)
res = append(res, data[index].Prize...)
}
}
for _, v := range res {
bFind := false

View File

@ -56,7 +56,7 @@ func (this *apiComp) DeskSkillLv(session comm.IUserSession, req *pb.SmithyDeskSk
if n.Int64() < int64(curSkillCfg.Probability) { // 可以升级
// 技能升级成功
_smithy.Skill[req.DeskType] += 1
this.module.modelSmithy.CalculationDeskSkillLv(session.GetUserId(), _smithy, req.DeskType, _smithy.Skill[req.DeskType])
this.module.modelSmithy.CalculationDeskSkillLv(session.GetUserId(), _smithy)
}
} else {

View File

@ -0,0 +1,56 @@
package smithy
import (
"crypto/rand"
"go_dreamfactory/comm"
"go_dreamfactory/pb"
"math/big"
"google.golang.org/protobuf/proto"
)
//参数校验
func (this *apiComp) StoveSkillLvCkeck(session comm.IUserSession, req *pb.SmithyStoveSkillLvReq) (code pb.ErrorCode) {
return
}
func (this *apiComp) StoveSkillLv(session comm.IUserSession, req *pb.SmithyStoveSkillLvReq) (code pb.ErrorCode, dat proto.Message) {
code = this.StoveSkillLvCkeck(session, req)
if code != pb.ErrorCode_Success {
return // 参数校验失败直接返回
}
_smithy, err := this.module.modelSmithy.getSmithyList(session.GetUserId())
if err != nil {
code = pb.ErrorCode_DBError
return
}
curLvData := this.configure.GetSmithyStoveConfigData(_smithy.StoveLv)
if curLvData == nil {
code = pb.ErrorCode_GourmetSkillMaxLv
return
}
nextLvData := this.configure.GetSmithyStoveConfigData(_smithy.StoveLv + 1)
if nextLvData == nil {
code = pb.ErrorCode_GourmetSkillMaxLv
return
}
// 升级
code = this.module.ConsumeRes(session, curLvData.Starupneed, true) // 消耗检测
if code != pb.ErrorCode_Success {
return
}
// 概率升级
n, _ := rand.Int(rand.Reader, big.NewInt(100))
if n.Int64() < int64(curLvData.Probability) { // 可以升级
// 技能升级成功
_smithy.StoveLv += 1
this.module.modelSmithy.CalculationStoveSkillLv(session.GetUserId(), _smithy, _smithy.StoveLv)
}
session.SendMsg(string(this.module.GetType()), SmithyDeskSkillLvResp, &pb.SmithyDeskSkillLvResp{Data: _smithy})
return
}

View File

@ -161,29 +161,19 @@ func (this *modelSmithy) CalculationSmithy(uid string, Smithy *pb.DBSmithy) {
this.module.ModifySmithyData(uid, mapData)
}
// 技能等级提高了 重新计算订单时间(只对订单中数据有影响)
func (this *modelSmithy) CalculationSmithybySkiiLv(uid string, Smithy *pb.DBSmithy, skillType int32, skilllv int32) {
// 技能升级 重计算时间消耗
func (this *modelSmithy) CalculationDeskSkillLv(uid string, Smithy *pb.DBSmithy) {
mapData := make(map[string]interface{}, 0)
for _, v := range Smithy.Orders {
if v.DeskType > 0 && v.DeskType == skillType {
_skillCfg := this.module.configure.GetSmithyStoveConfigData(skilllv)
if _skillCfg != nil {
v.NeedTime = _skillCfg.Time * v.Count
mapData["orders"] = Smithy.Orders
}
break
}
}
mapData["skill"] = Smithy.Skill
this.module.ModifySmithyData(uid, mapData)
}
// 技能升级 重计算时间消耗
func (this *modelSmithy) CalculationDeskSkillLv(uid string, Smithy *pb.DBSmithy, skillType int32, skilllv int32) {
func (this *modelSmithy) CalculationStoveSkillLv(uid string, Smithy *pb.DBSmithy, stoveSkillLv int32) {
mapData := make(map[string]interface{}, 0)
for _, v := range Smithy.Orders {
if v.Count > 0 {
_skillCfg := this.module.configure.GetSmithyStoveConfigData(skilllv)
_skillCfg := this.module.configure.GetSmithyStoveConfigData(stoveSkillLv)
if _skillCfg != nil {
v.NeedTime += _skillCfg.Time * v.Count
if v.NeedTime < 0 { // 担心配置错误 为负数情况 所以这里做下判断