百分比数值计算问题

This commit is contained in:
meixiongfeng 2023-06-29 09:02:19 +08:00
parent 2884bf156f
commit 817f678d5d

View File

@ -29,7 +29,7 @@ func (this *apiComp) ForgeEquip(session comm.IUserSession, req *pb.SmithyForgeEq
costRes []*cfg.Gameatn
customLv int32 // 定制装备的等级
rsp *pb.SmithyForgeEquipResp
needT int32 // 需要消耗的温度
needT float32 // 需要消耗的温度
maxT int32
atno []*pb.UserAtno
lava *cfg.Gameatn
@ -107,32 +107,32 @@ func (this *apiComp) ForgeEquip(session comm.IUserSession, req *pb.SmithyForgeEq
customLv = reelcfg.CustomizedLv[index]
}
}
needT = reelcfg.TemperatureCos * req.Count
needT = float32(reelcfg.TemperatureCos * req.Count)
// 熟练度减少的温度
t := this.module.modelStove.CheckTemperature(req.ReelId, stove.Data[req.ReelId].Lv)
needT = needT * (1000 - t) / 1000 // 千分比
needT *= float32(1000-t) / 1000 // 千分比
// 工具台技能减少
_s := this.module.modelStove.StoveToolsTemperature(stove)
if _s != 0 {
needT *= (1 - _s/1000)
needT *= (1 - float32(_s)/1000)
}
if req.Lava == 0 {
// 检查炉温 是否够
if stove.Temperature < needT {
if stove.Temperature < int32(needT) {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_SmithyNoTemperature,
Title: pb.ErrorCode_SmithyNoTemperature.ToString(),
}
return
}
stove.Temperature -= needT // 消耗温度
stove.Temperature -= int32(needT) // 消耗温度
update["temperature"] = stove.Temperature
} else {
exemption := this.module.ModuleTools.GetGlobalConf().ExemptionTemperatureCos // 预计消耗温度
gloabNum := this.module.ModuleTools.GetGlobalConf().ExemptionTemperatureCosNum // 每个消耗的温度
if gloabNum != 0 {
req.Lava = needT / gloabNum
if needT%gloabNum != 0 {
req.Lava = int32(needT) / gloabNum
if int32(needT)%gloabNum != 0 {
req.Lava += 1
}
// 计算