diff --git a/src/server/conf/charge/ChargeCfg.go b/src/server/conf/charge/ChargeCfg.go index 50c5ff33..6898a60f 100644 --- a/src/server/conf/charge/ChargeCfg.go +++ b/src/server/conf/charge/ChargeCfg.go @@ -10,14 +10,15 @@ import ( const ( CFG_CHARGE = "Charge" - CFG_DIAMOND_SHOP = "DiamondShop" - CFG_ENERGY_SHOP = "EnergyShop" - CFG_SEPCIAL_SHOP = "SpecialShop" - CFG_FREE_SHOP = "FreeShop" - CFG_CHARGE_CONST = "ChargeConst" - CFG_CHARGE_GIFT = "ChargeGift" - CFG_CHARGE_WISH = "ChargeWish" + CFG_DIAMOND_SHOP = "DiamondShop" // 钻石商店 + CFG_ENERGY_SHOP = "EnergyShop" // 体力商店 + CFG_SEPCIAL_SHOP = "SpecialShop" // 特惠商店 + CFG_FREE_SHOP = "FreeShop" // 免费商店 + CFG_CHARGE_CONST = "ChargeConst" // 充值常量配置 + CFG_CHARGE_GIFT = "ChargeGift" // 充值礼包 + CFG_CHARGE_WISH = "ChargeWish" // 许愿配置 CFG_CHARGE_PETCOIN = "ChargePetCoin" // 宠物币充值配置 + CFG_CHARGE_AD = "ChargeAD" // 广告充值配置 ) func init() { @@ -30,6 +31,20 @@ func init() { gamedata.InitCfg(CFG_CHARGE_GIFT) gamedata.InitCfg(CFG_CHARGE_WISH) gamedata.InitCfg(CFG_CHARGE_PETCOIN) + gamedata.InitCfg(CFG_CHARGE_AD) +} + +func GetADReward(ChargeId int) ([]*item.Item, int) { + data, err := gamedata.GetData(CFG_CHARGE_AD) + if err != nil { + return nil, 0 + } + for _, v := range data { + if gamedata.GetIntValue(v, "ChargeId") == ChargeId { + return item.ParseItem(gamedata.GetValue(v, "Items")), gamedata.GetIntValue(v, "PetWork") + } + } + return nil, 0 } func GetMoneyCharge(ChargeId int) float64 { diff --git a/src/server/game/ChargeFunc.go b/src/server/game/ChargeFunc.go index b01e2912..9ee8e820 100644 --- a/src/server/game/ChargeFunc.go +++ b/src/server/game/ChargeFunc.go @@ -17,6 +17,7 @@ func Charge(p *Player, ChargeId int) { PiggyBankFire(p, ChargeId) // 猪猪银行 PlayroomFire(p, ChargeId) // 游乐场 ActivityFire(p, ChargeId) // 活动礼包 + ADPetWorkFire(p, ChargeId) // 广告宠物工作 OrderMod := p.PlayMod.getOrderMod() OrderMod.SetIsCharge() // 设置订单模块为充值状态 p.QuestTrigger(&quest.Trigger{Label: quest.TRIGGER_LABEL_PURCHASE, A: []interface{}{}}) @@ -32,6 +33,14 @@ func SendCharge(p *Player, d *ChargeExtra) { }) } +func ADPetWorkFire(p *Player, ChargeId int) { + ChargeMod := p.PlayMod.getChargeMod() + Item := ChargeMod.FireAd(ChargeId) + if Item == nil { + return + } +} + func ActivityFire(p *Player, ChargeId int) { ActivityMod := p.PlayMod.getActivityMod() ActivityId := activityCfg.GetActivityGiftId(ChargeId) diff --git a/src/server/game/mod/charge/Charge.go b/src/server/game/mod/charge/Charge.go index 629a10b3..2cf79867 100644 --- a/src/server/game/mod/charge/Charge.go +++ b/src/server/game/mod/charge/Charge.go @@ -32,9 +32,9 @@ type ChargeMod struct { Gift map[int]int // 礼包 - Ad bool // 是否购买免广告 - - WishList *WishList + Ad bool // 是否购买免广告 + AdEndTime int64 + WishList *WishList } type WishList struct { @@ -181,7 +181,6 @@ func (c *ChargeMod) Fire(ChargeId int) (Item []*item.Item) { return } Item = c.FireGift(ChargeId) - c.FireAd(ChargeId) return } @@ -235,12 +234,17 @@ func (c *ChargeMod) FireGift(ChargeId int) []*item.Item { // 免广告礼包 func (c *ChargeMod) FireAd(ChargeId int) []*item.Item { - AdChargeId := chargeCfg.GetAdChargeId() - if ChargeId != AdChargeId { - return nil + Items, PetWorkDay := chargeCfg.GetADReward(ChargeId) + if PetWorkDay != 0 { + Now := GoUtil.Now() + if c.AdEndTime < Now { + c.AdEndTime = Now + int64(PetWorkDay*24*3600) + } else { + c.AdEndTime += int64(PetWorkDay * 24 * 3600) + } + c.Ad = true } - c.Ad = true - return nil + return Items } // 免费商店