Merge branch 'meixiongfeng' of http://git.legu.cc/liwei_3d/go_dreamfactory into dev
This commit is contained in:
commit
b1932382bf
@ -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
|
||||
|
@ -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 {
|
||||
|
56
modules/smithy/api_stoveskilllv.go
Normal file
56
modules/smithy/api_stoveskilllv.go
Normal 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
|
||||
}
|
@ -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 { // 担心配置错误 为负数情况 所以这里做下判断
|
||||
|
Loading…
Reference in New Issue
Block a user