优化
This commit is contained in:
parent
7246ba738a
commit
dbad4c408a
@ -52,7 +52,7 @@ func (this *apiComp) BuyOrSell(session comm.IUserSession, req *pb.CaravanBuyOrSe
|
|||||||
}
|
}
|
||||||
for _, k1 := range cityInfo.Like {
|
for _, k1 := range cityInfo.Like {
|
||||||
if k == k1 {
|
if k == k1 {
|
||||||
if v < caravan.Items[k].Count {
|
if v <= caravan.Items[k].Count {
|
||||||
caravan.Items[k].Count -= v
|
caravan.Items[k].Count -= v
|
||||||
} else {
|
} else {
|
||||||
code = pb.ErrorCode_TrollSellMax // 卖出数量不足
|
code = pb.ErrorCode_TrollSellMax // 卖出数量不足
|
||||||
@ -73,6 +73,13 @@ func (this *apiComp) BuyOrSell(session comm.IUserSession, req *pb.CaravanBuyOrSe
|
|||||||
}
|
}
|
||||||
addScore += price * v // 卖出收益
|
addScore += price * v // 卖出收益
|
||||||
}
|
}
|
||||||
|
if this.module.ArrayBag(caravan, upperLimit) { // 背包满了
|
||||||
|
code = pb.ErrorCode_TrollMaxItemCount
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// 统计 收益
|
||||||
|
caravan.Profit += int64(addScore)
|
||||||
|
update["profit"] = caravan.Profit
|
||||||
} else { // 买入
|
} else { // 买入
|
||||||
for k, v := range req.Items {
|
for k, v := range req.Items {
|
||||||
items, ok := caravan.Items[k]
|
items, ok := caravan.Items[k]
|
||||||
@ -99,10 +106,7 @@ func (this *apiComp) BuyOrSell(session comm.IUserSession, req *pb.CaravanBuyOrSe
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
caravan.Items[k].Count += v
|
caravan.Items[k].Count += v
|
||||||
if this.module.ArrayBag(caravan, upperLimit) { // 背包满了
|
|
||||||
code = pb.ErrorCode_TrollMaxItemCount
|
|
||||||
return
|
|
||||||
}
|
|
||||||
totla += price * v
|
totla += price * v
|
||||||
caravan.Items[k].Price = totla / caravan.Items[k].Count
|
caravan.Items[k].Price = totla / caravan.Items[k].Count
|
||||||
// 同步更新该城市的 出售货物信息
|
// 同步更新该城市的 出售货物信息
|
||||||
@ -116,6 +120,10 @@ func (this *apiComp) BuyOrSell(session comm.IUserSession, req *pb.CaravanBuyOrSe
|
|||||||
}
|
}
|
||||||
addScore -= price * v
|
addScore -= price * v
|
||||||
}
|
}
|
||||||
|
if this.module.ArrayBag(caravan, upperLimit) { // 背包满了
|
||||||
|
code = pb.ErrorCode_TrollMaxItemCount
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if code = this.module.DispenseRes(session, []*cfg.Gameatn{{
|
if code = this.module.DispenseRes(session, []*cfg.Gameatn{{
|
||||||
A: "attr",
|
A: "attr",
|
||||||
@ -126,6 +134,7 @@ func (this *apiComp) BuyOrSell(session comm.IUserSession, req *pb.CaravanBuyOrSe
|
|||||||
}
|
}
|
||||||
update["item"] = caravan.Items
|
update["item"] = caravan.Items
|
||||||
update["baglimit"] = caravan.Baglimit
|
update["baglimit"] = caravan.Baglimit
|
||||||
|
update["useCount"] = caravan.UseCount // 更新背包使用数量
|
||||||
this.module.modelCaravan.modifyCaravanDataByObjId(session.GetUserId(), update)
|
this.module.modelCaravan.modifyCaravanDataByObjId(session.GetUserId(), update)
|
||||||
session.SendMsg(string(this.module.GetType()), "buyorsell", &pb.CaravanBuyOrSellResp{
|
session.SendMsg(string(this.module.GetType()), "buyorsell", &pb.CaravanBuyOrSellResp{
|
||||||
Data: caravan,
|
Data: caravan,
|
||||||
|
@ -43,6 +43,7 @@ func (this *modelCaravan) getCaravanList(uid string) (result *pb.DBCaravan, err
|
|||||||
result.Id = primitive.NewObjectID().Hex()
|
result.Id = primitive.NewObjectID().Hex()
|
||||||
result.Resettime = configure.Now().Unix() // 设置起始刷新时间
|
result.Resettime = configure.Now().Unix() // 设置起始刷新时间
|
||||||
result.Lv = 1
|
result.Lv = 1
|
||||||
|
|
||||||
if conf := this.module.configure.GetCaravanLv(1); conf != nil {
|
if conf := this.module.configure.GetCaravanLv(1); conf != nil {
|
||||||
result.Baglimit = conf.Bagtop
|
result.Baglimit = conf.Bagtop
|
||||||
}
|
}
|
||||||
|
@ -320,5 +320,23 @@ func (this *Caravan) ArrayBag(data *pb.DBCaravan, limit int32) (bFull bool) {
|
|||||||
if count > data.Baglimit {
|
if count > data.Baglimit {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
data.UseCount = count
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 校验商队等级
|
||||||
|
func (this *Caravan) CheckCaravavLvUp(data *pb.DBCaravan) (curLv int32) {
|
||||||
|
curLv = data.Lv
|
||||||
|
for {
|
||||||
|
curLv++
|
||||||
|
if conf := this.configure.GetCaravanLv(curLv); conf != nil {
|
||||||
|
if conf.Newmoneyexp > int32(data.Profit) {
|
||||||
|
curLv -= 1
|
||||||
|
break
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return curLv
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user