增加playroom广告观看次数限制
This commit is contained in:
parent
6ca18ac8f4
commit
0a4ad94306
@ -583,3 +583,11 @@ func GetPetOrderItemExpByList(ItemList []*item.Item) int {
|
||||
}
|
||||
return r
|
||||
}
|
||||
|
||||
func GetShopItemAdNum(Id int) int {
|
||||
data, err := gamedata.GetDataByIntKey(CFG_PLAYROOM_SHOP, Id)
|
||||
if err != nil {
|
||||
return 0
|
||||
}
|
||||
return gamedata.GetIntValue(data, "Dailystorage")
|
||||
}
|
||||
|
||||
@ -3637,6 +3637,16 @@ func ReqPlayroomBuyItem(player *Player, buf []byte) error {
|
||||
})
|
||||
return err
|
||||
}
|
||||
if CostItem[0].Num == 0 {
|
||||
err := PlayroomMod.AdWatch(AddItems[0].Id)
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResPlayroomBuyItem{
|
||||
Code: msg.RES_CODE_FAIL,
|
||||
Msg: err.Error(),
|
||||
})
|
||||
return err
|
||||
}
|
||||
}
|
||||
err := player.HandleLoseItem(CostItem, msg.ITEM_POP_LABEL_PlayroomBuyItem.String())
|
||||
if err != nil {
|
||||
player.SendErrClienRes(&msg.ResPlayroomBuyItem{
|
||||
|
||||
@ -56,6 +56,12 @@ type PlayroomMod struct {
|
||||
RevengeUid int64 // 复仇Uid
|
||||
FilterVisitor bool // 是否过滤访客
|
||||
TodayVisitedUsers []int // 今日已拜访过的用户
|
||||
ADItem map[int]*ItemInfo
|
||||
}
|
||||
|
||||
type ItemInfo struct {
|
||||
Watch int // 观看次数
|
||||
LastTime int64 // 上次观看时间
|
||||
}
|
||||
|
||||
type DailyTask struct {
|
||||
@ -184,6 +190,9 @@ func (p *PlayroomMod) InitData() {
|
||||
p.Dress[Part] = append(p.Dress[Part], v)
|
||||
}
|
||||
}
|
||||
if p.ADItem == nil {
|
||||
p.ADItem = make(map[int]*ItemInfo)
|
||||
}
|
||||
}
|
||||
|
||||
func (p *PlayroomMod) ZeroUpdate() {
|
||||
@ -193,6 +202,7 @@ func (p *PlayroomMod) ZeroUpdate() {
|
||||
p.UpvoteList = make([]int, 0)
|
||||
p.DailyTaskReward = make([]int, 0)
|
||||
p.TodayVisitedUsers = make([]int, 0)
|
||||
p.ADItem = make(map[int]*ItemInfo)
|
||||
p.InitDailyTask()
|
||||
}
|
||||
|
||||
@ -632,10 +642,19 @@ func (p *PlayroomMod) NotifyMood() *msg.NotifyPlayroomMood {
|
||||
for k, v := range p.MoodInfo {
|
||||
Mood[int32(k)] = int32(v.Num)
|
||||
}
|
||||
resAdItems := make([]*msg.AdItem, 0)
|
||||
for k, v := range p.ADItem {
|
||||
resAdItems = append(resAdItems, &msg.AdItem{
|
||||
ItemId: int32(k),
|
||||
Watch: int32(v.Watch),
|
||||
LastWatch: int32(v.LastTime),
|
||||
})
|
||||
}
|
||||
return &msg.NotifyPlayroomMood{
|
||||
AllMood: int32(p.AllMood),
|
||||
Mood: Mood,
|
||||
Physiology: GoUtil.MapIntToInt32(p.GetPhysiologyList()),
|
||||
AdItem: resAdItems,
|
||||
}
|
||||
}
|
||||
|
||||
@ -739,6 +758,7 @@ func (p *PlayroomMod) GetFlipReward() ([]*item.Item, int, error) {
|
||||
|
||||
func (p *PlayroomMod) BuyItem(Id int) ([]*item.Item, []*item.Item) {
|
||||
return playroomCfg.GetBuyItem(Id)
|
||||
|
||||
}
|
||||
|
||||
func (p *PlayroomMod) UnLock(Lv int) bool {
|
||||
@ -915,3 +935,15 @@ func (p *PlayroomMod) Guide(Type int) error {
|
||||
p.Physiology[Type].Num = 0
|
||||
return nil
|
||||
}
|
||||
|
||||
func (p *PlayroomMod) AdWatch(Id int) error {
|
||||
if _, ok := p.ADItem[Id]; !ok {
|
||||
p.ADItem[Id] = &ItemInfo{Watch: 0, LastTime: 0}
|
||||
}
|
||||
p.ADItem[Id].Watch++
|
||||
p.ADItem[Id].LastTime = GoUtil.Now()
|
||||
if p.ADItem[Id].Watch > playroomCfg.GetShopItemAdNum(Id) {
|
||||
return fmt.Errorf("AdWatch Watch is over limit")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user