diff --git a/common/constant.go b/common/constant.go index 9ab1bd8..603f456 100644 --- a/common/constant.go +++ b/common/constant.go @@ -315,6 +315,7 @@ const ( GainWay_Collect = 64 //64.集卡活动 GainWay_WeekCardAward = 65 //65.周卡每日奖励 GainWay_PigrankTakeCoin = 66 //66.存钱罐领取耗费钻石 + GainWay_PigrankGainCoin = 67 //66.存钱罐打开获取金币 ) // 后台选择 金币变化类型 的充值 类型id号起始 diff --git a/worldsrv/action_welfare.go b/worldsrv/action_welfare.go index 6565640..b9631d4 100644 --- a/worldsrv/action_welfare.go +++ b/worldsrv/action_welfare.go @@ -454,13 +454,13 @@ func (this *CSPigBankTakeCoinPacketFactory) CreatePacket() interface{} { func (this *CSPigBankTakeCoinHandler) Process(s *netlib.Session, packetid int, data interface{}, sid int64) error { logger.Logger.Trace("CSPigbankTakeCoin Process recv ", data) - if _, ok := data.(*welfare.CSPigbankGetInfo); ok { + if _, ok := data.(*welfare.CSPigbankTakeCoin); ok { p := PlayerMgrSington.GetPlayer(sid) if p == nil { logger.Logger.Warnf("CSPigBankTakeCoinHandler p == nil p.SnId = %v", p.SnId) return nil } - WelfareMgrSington.PigbankGetInfo(p) + WelfareMgrSington.PigbankTakeCoin(p) } return nil } diff --git a/worldsrv/welfmgr.go b/worldsrv/welfmgr.go index da77019..6813700 100644 --- a/worldsrv/welfmgr.go +++ b/worldsrv/welfmgr.go @@ -1559,7 +1559,7 @@ func (this *WelfareMgr) PigbankTakeCoin(p *Player) { // 先扣钻石 costDiamond := fGetCostDiamond(p.WelfData.PigBank.TakeTimes + 1) - if costDiamond >= p.Diamond { + if p.Diamond >= costDiamond { logger.Logger.Trace("开存钱罐消耗钻石", costDiamond) p.AddDiamond(-costDiamond, 0, common.GainWay_PigrankTakeCoin, "system", "-开存钱罐消耗钻石") } else { @@ -1572,14 +1572,16 @@ func (this *WelfareMgr) PigbankTakeCoin(p *Player) { if p.WelfData.PigBank.BankCoin == int64(fGetPropValue("BankMaxCoin")) { pack.OpRetCode = welfare.OpResultCode_OPRC_Sucess pack.TakeCoinNum = p.WelfData.PigBank.BankCoin - pack.TakeTimes = p.WelfData.PigBank.TakeTimes // 领取完之后 设置为0 p.WelfData.PigBank.BankCoin = 0 p.WelfData.PigBank.TakeTimes++ + pack.TakeTimes = p.WelfData.PigBank.TakeTimes pack.CostDiamond = fGetCostDiamond(p.WelfData.PigBank.TakeTimes + 1) + p.AddCoin(p.WelfData.PigBank.BankCoin, 0, common.GainWay_PigrankGainCoin, "sys", "存钱罐领取") + logger.Logger.Tracef("PigbankTakeCoin snid: %v pack: %v", p.SnId, pack) p.SendToClient(int(welfare.SPacketID_PACKET_SCPigbankTakeCoin), pack) }