道具记录增加消耗道具数量
This commit is contained in:
parent
e9b80f805e
commit
7a0500c5eb
|
|
@ -24,6 +24,7 @@ type ItemLog struct {
|
||||||
TypeId int32 // 变化类型
|
TypeId int32 // 变化类型
|
||||||
GameId int32 // 游戏id,游戏中获得时有值
|
GameId int32 // 游戏id,游戏中获得时有值
|
||||||
GameFreeId int32 // 场次id,游戏中获得时有值
|
GameFreeId int32 // 场次id,游戏中获得时有值
|
||||||
|
Cost []*ItemInfo // 消耗的道具
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewItemLog() *ItemLog {
|
func NewItemLog() *ItemLog {
|
||||||
|
|
@ -42,6 +43,7 @@ type ItemParam struct {
|
||||||
TypeId int32 // 变化类型
|
TypeId int32 // 变化类型
|
||||||
GameId int64 // 游戏id,游戏中获得时有值
|
GameId int64 // 游戏id,游戏中获得时有值
|
||||||
GameFreeId int64 // 场次id,游戏中获得时有值
|
GameFreeId int64 // 场次id,游戏中获得时有值
|
||||||
|
Cost []*ItemInfo // 消耗的道具
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewItemLogEx(param ItemParam) *ItemLog {
|
func NewItemLogEx(param ItemParam) *ItemLog {
|
||||||
|
|
@ -57,5 +59,6 @@ func NewItemLogEx(param ItemParam) *ItemLog {
|
||||||
itemLog.TypeId = param.TypeId
|
itemLog.TypeId = param.TypeId
|
||||||
itemLog.GameId = int32(param.GameId)
|
itemLog.GameId = int32(param.GameId)
|
||||||
itemLog.GameFreeId = int32(param.GameFreeId)
|
itemLog.GameFreeId = int32(param.GameFreeId)
|
||||||
|
itemLog.Cost = param.Cost
|
||||||
return itemLog
|
return itemLog
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1029,6 +1029,7 @@ func CSPermitExchange(s *netlib.Session, packetid int, data interface{}, sid int
|
||||||
var items []*Item
|
var items []*Item
|
||||||
var costItems []*Item
|
var costItems []*Item
|
||||||
var cost, gain []model.AwardItem
|
var cost, gain []model.AwardItem
|
||||||
|
var cost1 []*model.ItemInfo
|
||||||
for _, v := range exchangeConfig.GetCost() {
|
for _, v := range exchangeConfig.GetCost() {
|
||||||
item := BagMgrSingleton.GetItem(p.SnId, v.GetItemId())
|
item := BagMgrSingleton.GetItem(p.SnId, v.GetItemId())
|
||||||
if item == nil || item.ItemNum < v.GetItemNum() {
|
if item == nil || item.ItemNum < v.GetItemNum() {
|
||||||
|
|
@ -1046,6 +1047,10 @@ func CSPermitExchange(s *netlib.Session, packetid int, data interface{}, sid int
|
||||||
Id: v.GetItemId(),
|
Id: v.GetItemId(),
|
||||||
Num: v.GetItemNum(),
|
Num: v.GetItemNum(),
|
||||||
})
|
})
|
||||||
|
cost1 = append(cost1, &model.ItemInfo{
|
||||||
|
ItemId: v.GetItemId(),
|
||||||
|
ItemNum: v.GetItemNum(),
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for _, v := range exchangeConfig.GetGain() {
|
for _, v := range exchangeConfig.GetGain() {
|
||||||
|
|
@ -1064,10 +1069,22 @@ func CSPermitExchange(s *netlib.Session, packetid int, data interface{}, sid int
|
||||||
}
|
}
|
||||||
// 扣除背包物品
|
// 扣除背包物品
|
||||||
for _, item := range costItems {
|
for _, item := range costItems {
|
||||||
BagMgrSingleton.AddItem(p, int64(item.ItemId), -item.ItemNum, 0, common.GainWayPermitExchangeCost, "system", "赛季通行证兑换消耗", 0, 0, false)
|
BagMgrSingleton.AddItem(p, int64(item.ItemId), -item.ItemNum, 0,
|
||||||
|
common.GainWayPermitExchangeCost, "system", "赛季通行证兑换消耗", 0, 0, false)
|
||||||
}
|
}
|
||||||
// 增加背包物品
|
// 增加背包物品
|
||||||
BagMgrSingleton.AddItems(p, items, 0, common.GainWayPermitExchangeGain, "system", "赛季通行证兑换获得", 0, 0, false)
|
BagMgrSingleton.AddItemsV2(&ItemParam{
|
||||||
|
P: p,
|
||||||
|
Change: items,
|
||||||
|
Cost: cost1,
|
||||||
|
Add: 0,
|
||||||
|
GainWay: common.GainWayPermitExchangeGain,
|
||||||
|
Operator: "system",
|
||||||
|
Remark: "赛季通行证兑换获得",
|
||||||
|
gameId: 0,
|
||||||
|
gameFreeId: 0,
|
||||||
|
noLog: false,
|
||||||
|
})
|
||||||
p.WelfData.PermitExchange[msg.GetId()] = append(p.WelfData.PermitExchange[msg.GetId()], now.Unix())
|
p.WelfData.PermitExchange[msg.GetId()] = append(p.WelfData.PermitExchange[msg.GetId()], now.Unix())
|
||||||
// 兑换记录
|
// 兑换记录
|
||||||
LogChannelSingleton.WriteLog(&model.BackendPermitExchange{
|
LogChannelSingleton.WriteLog(&model.BackendPermitExchange{
|
||||||
|
|
|
||||||
|
|
@ -139,6 +139,27 @@ func (this *BagMgr) GetItem(snid, itemId int32) *Item {
|
||||||
return item
|
return item
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type ItemParam struct {
|
||||||
|
P *Player
|
||||||
|
Change []*Item // 道具变化数量
|
||||||
|
Cost []*model.ItemInfo // 获得道具时消耗的道具数量
|
||||||
|
Add int64 // 加成数量
|
||||||
|
GainWay int32 // 记录类型
|
||||||
|
Operator, Remark string // 操作人,备注
|
||||||
|
gameId, gameFreeId int64 // 游戏id,场次id
|
||||||
|
noLog bool // 是否不记录日志
|
||||||
|
}
|
||||||
|
|
||||||
|
type AddItemParam struct {
|
||||||
|
Cost []*model.ItemInfo // 获得道具时消耗的道具数量
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *BagMgr) AddItemsV2(args *ItemParam) (*BagInfo, bag.OpResultCode, bool) {
|
||||||
|
return this.AddItems(args.P, args.Change, args.Add, args.GainWay, args.Operator, args.Remark, args.gameId, args.gameFreeId, args.noLog, AddItemParam{
|
||||||
|
Cost: args.Cost,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// AddItems 给玩家背包添加道具
|
// AddItems 给玩家背包添加道具
|
||||||
// add 加成数量
|
// add 加成数量
|
||||||
// gainWay 记录类型
|
// gainWay 记录类型
|
||||||
|
|
@ -147,8 +168,14 @@ func (this *BagMgr) GetItem(snid, itemId int32) *Item {
|
||||||
// gameId 游戏id
|
// gameId 游戏id
|
||||||
// gameFreeId 场次id
|
// gameFreeId 场次id
|
||||||
// noLog 是否不记录日志
|
// noLog 是否不记录日志
|
||||||
|
// Deprecated: use [ AddItemsV2 ] instead
|
||||||
func (this *BagMgr) AddItems(p *Player, addItems []*Item, add int64, gainWay int32, operator, remark string,
|
func (this *BagMgr) AddItems(p *Player, addItems []*Item, add int64, gainWay int32, operator, remark string,
|
||||||
gameId, gameFreeId int64, noLog bool) (*BagInfo, bag.OpResultCode, bool) {
|
gameId, gameFreeId int64, noLog bool, params ...AddItemParam) (*BagInfo, bag.OpResultCode, bool) {
|
||||||
|
var cost []*model.ItemInfo
|
||||||
|
if len(params) > 0 {
|
||||||
|
cost = params[0].Cost
|
||||||
|
}
|
||||||
|
|
||||||
longItem := this.GetItem(p.SnId, common.ItemIDPermit)
|
longItem := this.GetItem(p.SnId, common.ItemIDPermit)
|
||||||
var items []*Item
|
var items []*Item
|
||||||
for _, v := range addItems {
|
for _, v := range addItems {
|
||||||
|
|
@ -278,6 +305,7 @@ func (this *BagMgr) AddItems(p *Player, addItems []*Item, add int64, gainWay int
|
||||||
TypeId: gainWay,
|
TypeId: gainWay,
|
||||||
GameId: gameId,
|
GameId: gameId,
|
||||||
GameFreeId: gameFreeId,
|
GameFreeId: gameFreeId,
|
||||||
|
Cost: cost,
|
||||||
})
|
})
|
||||||
if log != nil {
|
if log != nil {
|
||||||
LogChannelSingleton.WriteLog(log)
|
LogChannelSingleton.WriteLog(log)
|
||||||
|
|
@ -340,9 +368,10 @@ func (this *BagMgr) AddItems(p *Player, addItems []*Item, add int64, gainWay int
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Deprecated: use [ AddItemsV2 ] instead
|
||||||
func (this *BagMgr) AddItem(p *Player, itemId, itemNum int64, add int64, gainWay int32, operator, remark string,
|
func (this *BagMgr) AddItem(p *Player, itemId, itemNum int64, add int64, gainWay int32, operator, remark string,
|
||||||
gameId, gameFreeId int64, noLog bool) (*BagInfo, bag.OpResultCode, bool) {
|
gameId, gameFreeId int64, noLog bool, params ...AddItemParam) (*BagInfo, bag.OpResultCode, bool) {
|
||||||
return this.AddItems(p, []*Item{{ItemId: int32(itemId), ItemNum: itemNum}}, add, gainWay, operator, remark, gameId, gameFreeId, noLog)
|
return this.AddItems(p, []*Item{{ItemId: int32(itemId), ItemNum: itemNum}}, add, gainWay, operator, remark, gameId, gameFreeId, noLog, params...)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (this *BagMgr) AddItemsOffline(platform string, snid int32, addItems []*Item, gainWay int32, operator, remark string,
|
func (this *BagMgr) AddItemsOffline(platform string, snid int32, addItems []*Item, gainWay int32, operator, remark string,
|
||||||
|
|
|
||||||
|
|
@ -840,6 +840,7 @@ func (this *WelfareMgr) GetAddUp2Award(p *Player, day int32) {
|
||||||
}
|
}
|
||||||
typeId := addUpDate2Type[0].Id
|
typeId := addUpDate2Type[0].Id
|
||||||
addUpDate2Num := addUpDate2Type[0].Num
|
addUpDate2Num := addUpDate2Type[0].Num
|
||||||
|
var cost []*model.ItemInfo
|
||||||
if typeId == 1 {
|
if typeId == 1 {
|
||||||
Num += 1
|
Num += 1
|
||||||
//看广告任务
|
//看广告任务
|
||||||
|
|
@ -855,6 +856,10 @@ func (this *WelfareMgr) GetAddUp2Award(p *Player, day int32) {
|
||||||
p.AddDiamond(int64(-addUpDate2Num), 0, common.GainWaySign7Con, "system", "累计签到进阶奖励钻石消耗")
|
p.AddDiamond(int64(-addUpDate2Num), 0, common.GainWaySign7Con, "system", "累计签到进阶奖励钻石消耗")
|
||||||
logger.Logger.Trace("累计签到进阶奖励,扣除钻石uid = ", p.SnId)
|
logger.Logger.Trace("累计签到进阶奖励,扣除钻石uid = ", p.SnId)
|
||||||
EndTime = -1
|
EndTime = -1
|
||||||
|
cost = append(cost, &model.ItemInfo{
|
||||||
|
ItemId: common.ItemIDDiamond,
|
||||||
|
ItemNum: int64(addUpDate2Num),
|
||||||
|
})
|
||||||
}
|
}
|
||||||
p.WelfData.Sign7.Addup2Data[day] = make(map[int32]int64)
|
p.WelfData.Sign7.Addup2Data[day] = make(map[int32]int64)
|
||||||
p.WelfData.Sign7.Addup2Data[day][Num+1] = EndTime
|
p.WelfData.Sign7.Addup2Data[day][Num+1] = EndTime
|
||||||
|
|
@ -873,7 +878,18 @@ func (this *WelfareMgr) GetAddUp2Award(p *Player, day int32) {
|
||||||
items = append(items, item)
|
items = append(items, item)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
BagMgrSingleton.AddItems(p, items, 0, common.GainWaySign7Add, "system", "累计签到进阶奖励获得", 0, 0, false)
|
BagMgrSingleton.AddItemsV2(&ItemParam{
|
||||||
|
P: p,
|
||||||
|
Change: items,
|
||||||
|
Cost: cost,
|
||||||
|
Add: 0,
|
||||||
|
GainWay: common.GainWaySign7Add,
|
||||||
|
Operator: "system",
|
||||||
|
Remark: "累计签到进阶奖励获得",
|
||||||
|
gameId: 0,
|
||||||
|
gameFreeId: 0,
|
||||||
|
noLog: false,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
//通知客户端
|
//通知客户端
|
||||||
this.UpdateAddUp2Date(p, Num, day, EndTime)
|
this.UpdateAddUp2Date(p, Num, day, EndTime)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue