商队盈利调整

This commit is contained in:
meixiongfeng 2023-09-22 15:26:14 +08:00
parent 1cb46ae804
commit f7469a9560

View File

@ -26,6 +26,7 @@ func (this *apiComp) BuyOrSell(session comm.IUserSession, req *pb.CaravanBuyOrSe
sellValue int32 // 任务统计 贩卖货物价值
buyValue int32 // 任务统计 贩卖货物价值
sellSpValue int32 // 任务统计 向指定X城市贩卖货物贩卖货物价值
profitValue int32 // 盈利
)
update = make(map[string]interface{})
if errdata = this.BuyOrSellCheck(session, req); errdata != nil {
@ -65,31 +66,37 @@ func (this *apiComp) BuyOrSell(session comm.IUserSession, req *pb.CaravanBuyOrSe
}
items := caravan.Items[k]
var price int32
var prePrice int32 // 之前的价格
price = items.Price
prePrice = items.Price
bFound := false
for _, key := range cityInfo.Special {
if key == k {
if cityConf, err := this.module.configure.GetCaravanCity(req.City); err == nil {
price = cityConf.Specialnum * price / 1000
sellSpValue += cityConf.Specialnum * price * v / 1000
bFound = true
} else {
errdata = &pb.ErrorData{
Code: pb.ErrorCode_TrollItemNoEnough, // 道具数量不足
Title: pb.ErrorCode_TrollItemNoEnough.ToString(),
Message: err.Error(),
}
return
}
break
}
}
if !bFound {
price = cityInfo.ExspecialPCT * price / 1000
for _, key := range cityInfo.Exspecial {
if key == k {
bFound = true
price = cityInfo.ExspecialPCT * price / 1000
break
}
}
}
if !bFound {
if cityConf, err := this.module.configure.GetCaravanCity(req.City); err == nil {
price = cityConf.Orspecial * price / 1000
}
}
sellValue += price * v
if price > prePrice {
profitValue = (price - prePrice) * v
}
}
var addRes []*cfg.Gameatn
@ -102,13 +109,12 @@ func (this *apiComp) BuyOrSell(session comm.IUserSession, req *pb.CaravanBuyOrSe
addRes = append(addRes, &cfg.Gameatn{
A: "attr",
T: "profit",
N: sellValue,
N: profitValue,
})
if errdata = this.module.DispenseRes(session, addRes, true); errdata != nil {
this.module.Errorf("获得虚拟币失败:%v", errdata)
}
this.module.ArrayBag(caravan)
//curProfit := this.module.ModuleUser.QueryAttributeValue(session.GetUserId(), "profit")
// 统计 收益
var lvReward []*cfg.Gameatn
@ -139,20 +145,6 @@ func (this *apiComp) BuyOrSell(session comm.IUserSession, req *pb.CaravanBuyOrSe
if len(lvReward) > 0 { // 商队等级奖励 改发邮件
this.module.mail.SendRewardMailByCid(session, comm.CaravanLvReward, lvReward)
}
// 商队盈利收益奖励
// reward := this.configure.GetCaravanReward()
// for _, v := range reward {
// if v.Key > 0 {
// if curProfit > int64(v.Key) {
// if _, ok := caravan.Reward[v.Key]; !ok {
// this.module.mail.SendRewardMailByCid(session, comm.CaravanLvReward, v.Reward)
// caravan.Reward[v.Key] = true
// update["reward"] = caravan.Reward
// }
// }
// }
// }
} else { // 买入
for k, v := range req.Items {
if _, ok := caravan.Items[k]; !ok {