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 {
|
for _, value := range data {
|
||||||
szW = append(szW, value.P)
|
szW = append(szW, value.P)
|
||||||
}
|
}
|
||||||
index := comm.GetRandW(szW)
|
if len(szW) > 0 {
|
||||||
res = append(res, data[index].Prize...)
|
index := comm.GetRandW(szW)
|
||||||
|
res = append(res, data[index].Prize...)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
for _, v := range res {
|
for _, v := range res {
|
||||||
bFind := false
|
bFind := false
|
||||||
|
@ -56,7 +56,7 @@ func (this *apiComp) DeskSkillLv(session comm.IUserSession, req *pb.SmithyDeskSk
|
|||||||
if n.Int64() < int64(curSkillCfg.Probability) { // 可以升级
|
if n.Int64() < int64(curSkillCfg.Probability) { // 可以升级
|
||||||
// 技能升级成功
|
// 技能升级成功
|
||||||
_smithy.Skill[req.DeskType] += 1
|
_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 {
|
} 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)
|
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)
|
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
|
mapData["skill"] = Smithy.Skill
|
||||||
this.module.ModifySmithyData(uid, mapData)
|
this.module.ModifySmithyData(uid, mapData)
|
||||||
}
|
}
|
||||||
|
|
||||||
// 技能升级 重计算时间消耗
|
func (this *modelSmithy) CalculationStoveSkillLv(uid string, Smithy *pb.DBSmithy, stoveSkillLv int32) {
|
||||||
func (this *modelSmithy) CalculationDeskSkillLv(uid string, Smithy *pb.DBSmithy, skillType int32, skilllv int32) {
|
|
||||||
mapData := make(map[string]interface{}, 0)
|
mapData := make(map[string]interface{}, 0)
|
||||||
for _, v := range Smithy.Orders {
|
for _, v := range Smithy.Orders {
|
||||||
if v.Count > 0 {
|
if v.Count > 0 {
|
||||||
_skillCfg := this.module.configure.GetSmithyStoveConfigData(skilllv)
|
_skillCfg := this.module.configure.GetSmithyStoveConfigData(stoveSkillLv)
|
||||||
if _skillCfg != nil {
|
if _skillCfg != nil {
|
||||||
v.NeedTime += _skillCfg.Time * v.Count
|
v.NeedTime += _skillCfg.Time * v.Count
|
||||||
if v.NeedTime < 0 { // 担心配置错误 为负数情况 所以这里做下判断
|
if v.NeedTime < 0 { // 担心配置错误 为负数情况 所以这里做下判断
|
||||||
|
Loading…
Reference in New Issue
Block a user