diff --git a/src/server/game/mod/charge/Charge.go b/src/server/game/mod/charge/Charge.go index 113a9be0..876ca8e6 100644 --- a/src/server/game/mod/charge/Charge.go +++ b/src/server/game/mod/charge/Charge.go @@ -288,6 +288,26 @@ func (c *ChargeMod) FireAdReward(ChargeId int) []*item.Item { return Items } +func (c *ChargeMod) AddAdTime(PetWorkDay int) { + if PetWorkDay > 0 { + Now := GoUtil.Now() + if c.AdEndTime < Now { + c.AdEndTime = Now + int64(PetWorkDay*secondsIn1Day) + } else { + c.AdEndTime += int64(PetWorkDay * secondsIn1Day) + } + c.PetWorkTime += int64(PetWorkDay * secondsIn1Day) + c.Ad = true + } +} + +func (c *ChargeMod) CheckAd() bool { + if !c.Ad { + return false + } + return true +} + // 免费商店 func (c *ChargeMod) FireFreeShop() ([]*item.Item, error) { if c.FreeShop >= 2 { diff --git a/src/server/game/mod/item/Item.go b/src/server/game/mod/item/Item.go index 3d65dd1d..23eccc73 100644 --- a/src/server/game/mod/item/Item.go +++ b/src/server/game/mod/item/Item.go @@ -59,6 +59,7 @@ const ( ITEM_TYPE_PLAYROOM_BOX = 115 // playroom宝箱 ITEM_TYPE_ACT_PASS = 116 // 通行证活动道具 ITEM_TYPE_PET_FUR = 117 // 宠物毛皮 + ITEM_TYPE_AD_CARD = 118 // 免广告卡 ) func (i *Item) String() string { diff --git a/src/server/game/player_data.go b/src/server/game/player_data.go index 1f778886..011ed567 100644 --- a/src/server/game/player_data.go +++ b/src/server/game/player_data.go @@ -907,6 +907,11 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error { "fur_coin_cost": fur_cfg.GetFurShopCostNum(v.Id), "pet_fur_get_type": Label, }) + case item.ITEM_TYPE_AD_CARD: // 广告卡 + ChargeMod := p.PlayMod.getChargeMod() + Effect := itemCfg.GetItemEffect(v.Id) + ChargeMod.AddAdTime(Effect) + BackDataType[item.ITEM_TYPE_AD_CARD] = struct{}{} default: err := ItemMod.AddItem(v.Id, v.Num) p.TeLog("asset_change", map[string]interface{}{ @@ -949,6 +954,8 @@ func (p *Player) HandleItem(itemList []*item.Item, Label string) error { case item.ITEM_TYPE_PET_FUR: FurMod := p.PlayMod.getFurMod() p.PushClientRes(FurMod.BackData()) + case item.ITEM_TYPE_AD_CARD: + p.ChargeBackData() } } p.PetItemUseLog(itemList)