周卡礼包
This commit is contained in:
parent
5be9e98ae0
commit
cc56a160af
|
@ -313,6 +313,8 @@ const (
|
||||||
GainWay_TaskReward = 62 //62.任务奖励
|
GainWay_TaskReward = 62 //62.任务奖励
|
||||||
GainWay_Interact = 63 //63.房间内互动效果
|
GainWay_Interact = 63 //63.房间内互动效果
|
||||||
GainWay_Collect = 64 //64.集卡活动
|
GainWay_Collect = 64 //64.集卡活动
|
||||||
|
GainWay_WeekCardBuy = 65 //65.周卡购买
|
||||||
|
GainWay_WeekCardAward = 66 //66.周卡每日奖励
|
||||||
)
|
)
|
||||||
|
|
||||||
// 后台选择 金币变化类型 的充值 类型id号起始
|
// 后台选择 金币变化类型 的充值 类型id号起始
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
|
||||||
|
6‘š;
7日礼å“<C3A5>å<EFBFBD>¡" ¡<>À–±"ц
|
||||||
|
*¡<>À„=08
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"Arr": [
|
||||||
|
{
|
||||||
|
"Id": 1,
|
||||||
|
"ShopID": 970001,
|
||||||
|
"Name": "7日礼品卡",
|
||||||
|
"Rewards": {
|
||||||
|
"100001": 5000000,
|
||||||
|
"50001": 10
|
||||||
|
},
|
||||||
|
"DayRewards": {
|
||||||
|
"100001": 1000000
|
||||||
|
},
|
||||||
|
"Time": 7,
|
||||||
|
"Equity": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -1494,3 +1494,19 @@ func (this *Player) UnPlayerPowerListEx(powerId int32) {
|
||||||
}
|
}
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 获取周卡权益
|
||||||
|
// typeId : 1-破产救济金领取翻倍 2-排位赛积分提升5%
|
||||||
|
func (this *Player) GetWeekCardPrivilege(typeId int32) bool {
|
||||||
|
logger.Logger.Trace("玩家请求获取周卡权益!")
|
||||||
|
now := time.Now().Unix()
|
||||||
|
for id, endTime := range this.WeekCardTime {
|
||||||
|
if endTime > now {
|
||||||
|
data := srvdata.PBDB_GiftCardMgr.GetData(id)
|
||||||
|
if data.Equity == typeId {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
|
@ -1657,6 +1657,7 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
||||||
var sceneTypeScore int64 // 场次额外积分
|
var sceneTypeScore int64 // 场次额外积分
|
||||||
var vipScore int64 // vip加成
|
var vipScore int64 // vip加成
|
||||||
var roleScore int64 // 角色加成
|
var roleScore int64 // 角色加成
|
||||||
|
var weekCardScore int64 // 周卡加成
|
||||||
var roleAdd int32
|
var roleAdd int32
|
||||||
var otherScore int64 // 额外总加分
|
var otherScore int64 // 额外总加分
|
||||||
oldRankScore := losePlayer.GetRankScore(sceneEx.GetDBGameFree().GetRankType())
|
oldRankScore := losePlayer.GetRankScore(sceneEx.GetDBGameFree().GetRankType())
|
||||||
|
@ -1693,8 +1694,12 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
||||||
// 角色加成分
|
// 角色加成分
|
||||||
_, roleAdd = srvdata.RolePetMgrSington.GetRoleAdd(&losePlayer.PlayerData, common.RoleAddRankScore)
|
_, roleAdd = srvdata.RolePetMgrSington.GetRoleAdd(&losePlayer.PlayerData, common.RoleAddRankScore)
|
||||||
roleScore = int64(math.Ceil(float64(rankScore) * float64(roleAdd) / 100.0))
|
roleScore = int64(math.Ceil(float64(rankScore) * float64(roleAdd) / 100.0))
|
||||||
|
//周卡加成
|
||||||
|
if losePlayer.GetWeekCardPrivilege(2) {
|
||||||
|
weekCardScore = int64(math.Ceil(float64(rankScore) * float64(5) / 100.0))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
otherScore = sceneTypeScore + vipScore + roleScore
|
otherScore = sceneTypeScore + vipScore + roleScore + weekCardScore
|
||||||
losePlayer.AddRankScore(sceneEx.GetDBGameFree().GetRankType(), rankScore+otherScore) // 炸弹分一起算
|
losePlayer.AddRankScore(sceneEx.GetDBGameFree().GetRankType(), rankScore+otherScore) // 炸弹分一起算
|
||||||
}
|
}
|
||||||
losePlayer.winCoin -= gainScore
|
losePlayer.winCoin -= gainScore
|
||||||
|
@ -1730,6 +1735,13 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
||||||
Addition: roleAdd,
|
Addition: roleAdd,
|
||||||
Score: roleScore,
|
Score: roleScore,
|
||||||
})
|
})
|
||||||
|
// 周卡加成
|
||||||
|
billData.AddItems = append(billData.AddItems, &tienlen.AddItem{
|
||||||
|
ItemType: 6,
|
||||||
|
ItemId: 0,
|
||||||
|
Addition: 5,
|
||||||
|
Score: weekCardScore,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
isWin := int32(0)
|
isWin := int32(0)
|
||||||
billCoin := losePlayer.bombScore - gainScore
|
billCoin := losePlayer.bombScore - gainScore
|
||||||
|
@ -1807,6 +1819,7 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
||||||
var rankScore int64 // 排位积分
|
var rankScore int64 // 排位积分
|
||||||
var sceneTypeScore int64 // 场次额外积分
|
var sceneTypeScore int64 // 场次额外积分
|
||||||
var vipScore int64 // vip加成
|
var vipScore int64 // vip加成
|
||||||
|
var weekCardScore int64 // 周卡加成
|
||||||
var otherScore int64 // 额外总加分
|
var otherScore int64 // 额外总加分
|
||||||
oldRankScore := lastWinPlayer.GetRankScore(sceneEx.GetDBGameFree().GetRankType())
|
oldRankScore := lastWinPlayer.GetRankScore(sceneEx.GetDBGameFree().GetRankType())
|
||||||
lastWinScore := rule.GetLoseScore(lastWinPlayer.cards, true)
|
lastWinScore := rule.GetLoseScore(lastWinPlayer.cards, true)
|
||||||
|
@ -1841,9 +1854,14 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
||||||
vipScore = int64(math.Ceil(float64(rankScore) * float64(lastWinPlayer.VipExtra) / 100.0))
|
vipScore = int64(math.Ceil(float64(rankScore) * float64(lastWinPlayer.VipExtra) / 100.0))
|
||||||
// 角色加成分
|
// 角色加成分
|
||||||
_, roleAdd = srvdata.RolePetMgrSington.GetRoleAdd(&lastWinPlayer.PlayerData, common.RoleAddRankScore)
|
_, roleAdd = srvdata.RolePetMgrSington.GetRoleAdd(&lastWinPlayer.PlayerData, common.RoleAddRankScore)
|
||||||
|
//周卡加成
|
||||||
|
if lastWinPlayer.GetWeekCardPrivilege(2) {
|
||||||
|
weekCardScore = int64(math.Ceil(float64(rankScore) * float64(5) / 100.0))
|
||||||
|
}
|
||||||
|
|
||||||
roleScore = int64(math.Ceil(float64(rankScore) * float64(roleAdd) / 100.0))
|
roleScore = int64(math.Ceil(float64(rankScore) * float64(roleAdd) / 100.0))
|
||||||
}
|
}
|
||||||
otherScore = sceneTypeScore + vipScore + roleScore
|
otherScore = sceneTypeScore + vipScore + roleScore + weekCardScore
|
||||||
lastWinPlayer.AddRankScore(sceneEx.GetDBGameFree().GetRankType(), rankScore+otherScore) // 炸弹分一起算
|
lastWinPlayer.AddRankScore(sceneEx.GetDBGameFree().GetRankType(), rankScore+otherScore) // 炸弹分一起算
|
||||||
}
|
}
|
||||||
lastWinPlayer.winCoin -= astWinGainScore
|
lastWinPlayer.winCoin -= astWinGainScore
|
||||||
|
@ -1879,6 +1897,13 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
||||||
Addition: roleAdd,
|
Addition: roleAdd,
|
||||||
Score: roleScore,
|
Score: roleScore,
|
||||||
})
|
})
|
||||||
|
// 周卡加成
|
||||||
|
billData.AddItems = append(billData.AddItems, &tienlen.AddItem{
|
||||||
|
ItemType: 6,
|
||||||
|
ItemId: 0,
|
||||||
|
Addition: 5,
|
||||||
|
Score: weekCardScore,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
isWin := int32(0)
|
isWin := int32(0)
|
||||||
billCoin := lastWinPlayer.bombScore - astWinGainScore
|
billCoin := lastWinPlayer.bombScore - astWinGainScore
|
||||||
|
@ -1934,6 +1959,7 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
||||||
var rankScore int64 // 排位积分
|
var rankScore int64 // 排位积分
|
||||||
var sceneTypeScore int64 // 场次额外积分
|
var sceneTypeScore int64 // 场次额外积分
|
||||||
var vipScore int64 // vip加成
|
var vipScore int64 // vip加成
|
||||||
|
var weekCardScore int64 // 周卡加成
|
||||||
var otherScore int64 // 额外总加分
|
var otherScore int64 // 额外总加分
|
||||||
oldRankScore := playerEx.GetRankScore(sceneEx.GetDBGameFree().GetRankType())
|
oldRankScore := playerEx.GetRankScore(sceneEx.GetDBGameFree().GetRankType())
|
||||||
rankScore = loseRankScore
|
rankScore = loseRankScore
|
||||||
|
@ -1960,8 +1986,12 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
||||||
// 角色加成分
|
// 角色加成分
|
||||||
_, roleAdd = srvdata.RolePetMgrSington.GetRoleAdd(&playerEx.PlayerData, common.RoleAddRankScore)
|
_, roleAdd = srvdata.RolePetMgrSington.GetRoleAdd(&playerEx.PlayerData, common.RoleAddRankScore)
|
||||||
roleScore = int64(math.Ceil(float64(rankScore) * float64(roleAdd) / 100.0))
|
roleScore = int64(math.Ceil(float64(rankScore) * float64(roleAdd) / 100.0))
|
||||||
|
//周卡加成
|
||||||
|
if playerEx.GetWeekCardPrivilege(2) {
|
||||||
|
weekCardScore = int64(math.Ceil(float64(rankScore) * float64(5) / 100.0))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
otherScore = sceneTypeScore + vipScore + roleScore
|
otherScore = sceneTypeScore + vipScore + roleScore + weekCardScore
|
||||||
playerEx.AddRankScore(sceneEx.GetDBGameFree().GetRankType(), rankScore+otherScore) // 炸弹分一起算
|
playerEx.AddRankScore(sceneEx.GetDBGameFree().GetRankType(), rankScore+otherScore) // 炸弹分一起算
|
||||||
}
|
}
|
||||||
playerEx.winCoin += gainScore
|
playerEx.winCoin += gainScore
|
||||||
|
@ -1997,6 +2027,13 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
||||||
Addition: roleAdd,
|
Addition: roleAdd,
|
||||||
Score: roleScore,
|
Score: roleScore,
|
||||||
})
|
})
|
||||||
|
// 周卡加成
|
||||||
|
billData.AddItems = append(billData.AddItems, &tienlen.AddItem{
|
||||||
|
ItemType: 6,
|
||||||
|
ItemId: 0,
|
||||||
|
Addition: 5,
|
||||||
|
Score: weekCardScore,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
isWin := int32(0)
|
isWin := int32(0)
|
||||||
billCoin := playerEx.bombScore + gainScore
|
billCoin := playerEx.bombScore + gainScore
|
||||||
|
@ -2051,6 +2088,7 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
||||||
var rankScore int64 // 排位积分
|
var rankScore int64 // 排位积分
|
||||||
var sceneTypeScore int64 // 场次额外积分
|
var sceneTypeScore int64 // 场次额外积分
|
||||||
var vipScore int64 // vip加成
|
var vipScore int64 // vip加成
|
||||||
|
var weekCardScore int64 // 周卡加成
|
||||||
var otherScore int64 // 额外总加分
|
var otherScore int64 // 额外总加分
|
||||||
oldRankScore := playerEx.GetRankScore(sceneEx.GetDBGameFree().GetRankType())
|
oldRankScore := playerEx.GetRankScore(sceneEx.GetDBGameFree().GetRankType())
|
||||||
rankScore = lastWinPlayerRankScore
|
rankScore = lastWinPlayerRankScore
|
||||||
|
@ -2072,8 +2110,12 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
||||||
// 角色加成分
|
// 角色加成分
|
||||||
_, roleAdd = srvdata.RolePetMgrSington.GetRoleAdd(&playerEx.PlayerData, common.RoleAddRankScore)
|
_, roleAdd = srvdata.RolePetMgrSington.GetRoleAdd(&playerEx.PlayerData, common.RoleAddRankScore)
|
||||||
roleScore = int64(math.Ceil(float64(rankScore) * float64(roleAdd) / 100.0))
|
roleScore = int64(math.Ceil(float64(rankScore) * float64(roleAdd) / 100.0))
|
||||||
|
//周卡加成
|
||||||
|
if playerEx.GetWeekCardPrivilege(2) {
|
||||||
|
weekCardScore = int64(math.Ceil(float64(rankScore) * float64(5) / 100.0))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
otherScore = sceneTypeScore + vipScore + roleScore
|
otherScore = sceneTypeScore + vipScore + roleScore + weekCardScore
|
||||||
playerEx.AddRankScore(sceneEx.GetDBGameFree().GetRankType(), rankScore+otherScore) // 炸弹分一起算
|
playerEx.AddRankScore(sceneEx.GetDBGameFree().GetRankType(), rankScore+otherScore) // 炸弹分一起算
|
||||||
}
|
}
|
||||||
playerEx.winCoin += gainScore
|
playerEx.winCoin += gainScore
|
||||||
|
@ -2109,6 +2151,13 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
||||||
Addition: roleAdd,
|
Addition: roleAdd,
|
||||||
Score: roleScore,
|
Score: roleScore,
|
||||||
})
|
})
|
||||||
|
// 周卡加成
|
||||||
|
billData.AddItems = append(billData.AddItems, &tienlen.AddItem{
|
||||||
|
ItemType: 6,
|
||||||
|
ItemId: 0,
|
||||||
|
Addition: 5,
|
||||||
|
Score: weekCardScore,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
isWin := int32(0)
|
isWin := int32(0)
|
||||||
billCoin := playerEx.bombScore + gainScore
|
billCoin := playerEx.bombScore + gainScore
|
||||||
|
@ -2164,6 +2213,7 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
||||||
var rankScore int64 // 排位积分
|
var rankScore int64 // 排位积分
|
||||||
var sceneTypeScore int64 // 场次额外积分
|
var sceneTypeScore int64 // 场次额外积分
|
||||||
var vipScore int64 // vip加成
|
var vipScore int64 // vip加成
|
||||||
|
var weekCardScore int64 // 周卡加成
|
||||||
var roleScore int64 // 角色加成
|
var roleScore int64 // 角色加成
|
||||||
var roleAdd int32
|
var roleAdd int32
|
||||||
var otherScore int64 // 额外总加分
|
var otherScore int64 // 额外总加分
|
||||||
|
@ -2230,8 +2280,12 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
||||||
// 角色加成分
|
// 角色加成分
|
||||||
_, roleAdd = srvdata.RolePetMgrSington.GetRoleAdd(&playerEx.PlayerData, common.RoleAddRankScore)
|
_, roleAdd = srvdata.RolePetMgrSington.GetRoleAdd(&playerEx.PlayerData, common.RoleAddRankScore)
|
||||||
roleScore = int64(math.Ceil(float64(rankScore) * float64(roleAdd) / 100.0))
|
roleScore = int64(math.Ceil(float64(rankScore) * float64(roleAdd) / 100.0))
|
||||||
|
//周卡加成
|
||||||
|
if playerEx.GetWeekCardPrivilege(2) {
|
||||||
|
weekCardScore = int64(math.Ceil(float64(rankScore) * float64(5) / 100.0))
|
||||||
|
}
|
||||||
}
|
}
|
||||||
otherScore = sceneTypeScore + vipScore + roleScore
|
otherScore = sceneTypeScore + vipScore + roleScore + weekCardScore
|
||||||
playerEx.AddRankScore(sceneEx.GetDBGameFree().GetRankType(), rankScore+otherScore) // 炸弹分一起算
|
playerEx.AddRankScore(sceneEx.GetDBGameFree().GetRankType(), rankScore+otherScore) // 炸弹分一起算
|
||||||
}
|
}
|
||||||
playerEx.winCoin -= gainScore
|
playerEx.winCoin -= gainScore
|
||||||
|
@ -2268,6 +2322,13 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
||||||
Addition: roleAdd,
|
Addition: roleAdd,
|
||||||
Score: roleScore,
|
Score: roleScore,
|
||||||
})
|
})
|
||||||
|
// 周卡加成
|
||||||
|
billData.AddItems = append(billData.AddItems, &tienlen.AddItem{
|
||||||
|
ItemType: 6,
|
||||||
|
ItemId: 0,
|
||||||
|
Addition: 5,
|
||||||
|
Score: weekCardScore,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
isWin := int32(0)
|
isWin := int32(0)
|
||||||
|
@ -2349,6 +2410,7 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
||||||
var sceneTypeScore int64 // 场次额外积分
|
var sceneTypeScore int64 // 场次额外积分
|
||||||
var vipScore int64 // vip加成
|
var vipScore int64 // vip加成
|
||||||
var roleScore int64 // 角色加成
|
var roleScore int64 // 角色加成
|
||||||
|
var weekCardScore int64 // 周卡加成
|
||||||
var roleAdd int32
|
var roleAdd int32
|
||||||
var otherScore int64 // 额外总加分
|
var otherScore int64 // 额外总加分
|
||||||
playerEx := sceneEx.players[winSnid]
|
playerEx := sceneEx.players[winSnid]
|
||||||
|
@ -2371,7 +2433,11 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
||||||
// 角色加成分
|
// 角色加成分
|
||||||
_, roleAdd = srvdata.RolePetMgrSington.GetRoleAdd(&playerEx.PlayerData, common.RoleAddRankScore)
|
_, roleAdd = srvdata.RolePetMgrSington.GetRoleAdd(&playerEx.PlayerData, common.RoleAddRankScore)
|
||||||
roleScore = int64(math.Ceil(float64(rankScore) * float64(roleAdd) / 100.0))
|
roleScore = int64(math.Ceil(float64(rankScore) * float64(roleAdd) / 100.0))
|
||||||
otherScore = sceneTypeScore + vipScore + roleScore
|
//周卡加成
|
||||||
|
if playerEx.GetWeekCardPrivilege(2) {
|
||||||
|
weekCardScore = int64(math.Ceil(float64(rankScore) * float64(5) / 100.0))
|
||||||
|
}
|
||||||
|
otherScore = sceneTypeScore + vipScore + roleScore + weekCardScore
|
||||||
playerEx.AddRankScore(sceneEx.GetDBGameFree().GetRankType(), rankScore+otherScore)
|
playerEx.AddRankScore(sceneEx.GetDBGameFree().GetRankType(), rankScore+otherScore)
|
||||||
}
|
}
|
||||||
playerEx.winCoin += gainScore
|
playerEx.winCoin += gainScore
|
||||||
|
@ -2406,6 +2472,13 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
||||||
Addition: roleAdd,
|
Addition: roleAdd,
|
||||||
Score: roleScore,
|
Score: roleScore,
|
||||||
})
|
})
|
||||||
|
// 周卡加成
|
||||||
|
billData.AddItems = append(billData.AddItems, &tienlen.AddItem{
|
||||||
|
ItemType: 6,
|
||||||
|
ItemId: 0,
|
||||||
|
Addition: 5,
|
||||||
|
Score: weekCardScore,
|
||||||
|
})
|
||||||
|
|
||||||
isWin := int32(0)
|
isWin := int32(0)
|
||||||
billCoin := playerEx.bombScore + gainScore
|
billCoin := playerEx.bombScore + gainScore
|
||||||
|
|
|
@ -453,6 +453,8 @@ type PlayerData struct {
|
||||||
InviteSnId int32 // 邀请人
|
InviteSnId int32 // 邀请人
|
||||||
InviteScore int64 // 邀请积分
|
InviteScore int64 // 邀请积分
|
||||||
OtherCode string // 绑定的邀请码
|
OtherCode string // 绑定的邀请码
|
||||||
|
WeekCardTime map[int32]int64 // 周卡结束时间 key:类型 value:结束时间
|
||||||
|
WeekCardAward map[int32]bool //周卡奖励领取状态false-未领取,true已领取
|
||||||
}
|
}
|
||||||
|
|
||||||
// 七日签到数据
|
// 七日签到数据
|
||||||
|
@ -462,6 +464,7 @@ type NewSignData struct {
|
||||||
AddupIndex []int32 //领取累计奖励
|
AddupIndex []int32 //领取累计奖励
|
||||||
TurnplateIdx []int32 //领取转盘下标
|
TurnplateIdx []int32 //领取转盘下标
|
||||||
VideoTicket int64 // 领取视频奖励时间戳
|
VideoTicket int64 // 领取视频奖励时间戳
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type TaskData struct {
|
type TaskData struct {
|
||||||
|
@ -768,8 +771,10 @@ func NewPlayerData(acc string, name string, id int32, channel, platform, promote
|
||||||
ShopLastLookTime: make(map[int32]int64),
|
ShopLastLookTime: make(map[int32]int64),
|
||||||
IsFoolPlayer: make(map[string]bool),
|
IsFoolPlayer: make(map[string]bool),
|
||||||
//测试数据
|
//测试数据
|
||||||
PowerList: []int32{1}, //默认炮台
|
PowerList: []int32{1}, //默认炮台
|
||||||
UnMaxPower: 10, //初始化炮倍最小倍数
|
UnMaxPower: 10, //初始化炮倍最小倍数
|
||||||
|
WeekCardTime: make(map[int32]int64),
|
||||||
|
WeekCardAward: make(map[int32]bool),
|
||||||
}
|
}
|
||||||
|
|
||||||
if tel != "" {
|
if tel != "" {
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -203,6 +203,8 @@ enum PlayerPacketID {
|
||||||
PACKET_SC_PhoneLotteryCount = 2820;//抽奖次数
|
PACKET_SC_PhoneLotteryCount = 2820;//抽奖次数
|
||||||
PACKET_CSADV = 2821; // 看广告
|
PACKET_CSADV = 2821; // 看广告
|
||||||
PACKET_SCADV = 2822; // 看广告
|
PACKET_SCADV = 2822; // 看广告
|
||||||
|
PACKET_SCGetWeekCardAwary = 2823;//领取周卡每日奖励返回
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// 账变记录
|
// 账变记录
|
||||||
|
@ -310,6 +312,14 @@ message PlayerData {
|
||||||
int32 VipShopRefreshCount =45; //vip当前已使用免费刷新次数
|
int32 VipShopRefreshCount =45; //vip当前已使用免费刷新次数
|
||||||
string Signature = 46; //签名
|
string Signature = 46; //签名
|
||||||
int32 Age = 47; // 年龄
|
int32 Age = 47; // 年龄
|
||||||
|
repeated WeekInfo WeekCard = 48;//周卡
|
||||||
|
}
|
||||||
|
|
||||||
|
//周卡数据
|
||||||
|
message WeekInfo{
|
||||||
|
int32 Id =1;
|
||||||
|
int64 WeekCardTime =2; //结束时间
|
||||||
|
bool weekCardAward = 3;//领取奖励状态
|
||||||
}
|
}
|
||||||
//断线重连小游戏中的数据 当前玩家在哪个房间 哪个游戏 对应的LogicId
|
//断线重连小游戏中的数据 当前玩家在哪个房间 哪个游戏 对应的LogicId
|
||||||
message MiniGameInfo{
|
message MiniGameInfo{
|
||||||
|
@ -1150,4 +1160,11 @@ message CSADV {
|
||||||
// PACKET_SCADV
|
// PACKET_SCADV
|
||||||
message SCADV {
|
message SCADV {
|
||||||
repeated int32 Param = 1; //参数列表 位置0广告类型
|
repeated int32 Param = 1; //参数列表 位置0广告类型
|
||||||
|
}
|
||||||
|
//周卡每日奖励返回
|
||||||
|
//PACKET_SCGetWeekCardAwary
|
||||||
|
message SCGetWeekCardAwary{
|
||||||
|
int32 id = 1;
|
||||||
|
repeated PayItem Items =2;
|
||||||
|
bool weekCardAward = 3;
|
||||||
}
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -1055,6 +1055,28 @@ message DB_GiftBoxArray {
|
||||||
repeated DB_GiftBox Arr = 1;
|
repeated DB_GiftBox Arr = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
message DB_GiftCard {
|
||||||
|
|
||||||
|
int32 Id = 1;
|
||||||
|
|
||||||
|
int32 ShopID = 2;
|
||||||
|
|
||||||
|
string Name = 3;
|
||||||
|
|
||||||
|
map<int64, int64> Rewards = 4;
|
||||||
|
|
||||||
|
map<int64, int64> DayRewards = 5;
|
||||||
|
|
||||||
|
int32 Time = 6;
|
||||||
|
|
||||||
|
int32 Equity = 7;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
message DB_GiftCardArray {
|
||||||
|
repeated DB_GiftCard Arr = 1;
|
||||||
|
}
|
||||||
|
|
||||||
message DB_IceAgeElementRate {
|
message DB_IceAgeElementRate {
|
||||||
|
|
||||||
int32 Id = 1;
|
int32 Id = 1;
|
||||||
|
|
|
@ -1015,7 +1015,7 @@ type AddItem struct {
|
||||||
sizeCache protoimpl.SizeCache
|
sizeCache protoimpl.SizeCache
|
||||||
unknownFields protoimpl.UnknownFields
|
unknownFields protoimpl.UnknownFields
|
||||||
|
|
||||||
ItemType int32 `protobuf:"varint,1,opt,name=ItemType,proto3" json:"ItemType,omitempty"` // 类型; 1场次加成 2道具 3宠物 4角色 5vip加成
|
ItemType int32 `protobuf:"varint,1,opt,name=ItemType,proto3" json:"ItemType,omitempty"` // 类型; 1场次加成 2道具 3宠物 4角色 5vip加成 6周卡加成
|
||||||
ItemId int32 `protobuf:"varint,2,opt,name=ItemId,proto3" json:"ItemId,omitempty"` // ID
|
ItemId int32 `protobuf:"varint,2,opt,name=ItemId,proto3" json:"ItemId,omitempty"` // ID
|
||||||
Addition int32 `protobuf:"varint,3,opt,name=Addition,proto3" json:"Addition,omitempty"` // 加成(百分比)
|
Addition int32 `protobuf:"varint,3,opt,name=Addition,proto3" json:"Addition,omitempty"` // 加成(百分比)
|
||||||
Score int64 `protobuf:"varint,4,opt,name=Score,proto3" json:"Score,omitempty"` // 加成分数
|
Score int64 `protobuf:"varint,4,opt,name=Score,proto3" json:"Score,omitempty"` // 加成分数
|
||||||
|
|
|
@ -131,7 +131,7 @@ message SCTienLenPlayerLeave {
|
||||||
}
|
}
|
||||||
|
|
||||||
message AddItem {
|
message AddItem {
|
||||||
int32 ItemType = 1; // 类型; 1场次加成 2道具 3宠物 4角色 5vip加成
|
int32 ItemType = 1; // 类型; 1场次加成 2道具 3宠物 4角色 5vip加成 6周卡加成
|
||||||
int32 ItemId = 2; // ID
|
int32 ItemId = 2; // ID
|
||||||
int32 Addition = 3; // 加成(百分比)
|
int32 Addition = 3; // 加成(百分比)
|
||||||
int64 Score = 4; // 加成分数
|
int64 Score = 4; // 加成分数
|
||||||
|
|
|
@ -0,0 +1,69 @@
|
||||||
|
|
||||||
|
// Code generated by xlsx2proto.
|
||||||
|
// DO NOT EDIT!
|
||||||
|
|
||||||
|
package srvdata
|
||||||
|
|
||||||
|
import (
|
||||||
|
"google.golang.org/protobuf/proto"
|
||||||
|
|
||||||
|
"mongo.games.com/game/protocol/server"
|
||||||
|
)
|
||||||
|
|
||||||
|
var PBDB_GiftCardMgr = &DB_GiftCardMgr{pool: make(map[int32]*server.DB_GiftCard), Datas: &server.DB_GiftCardArray{}}
|
||||||
|
|
||||||
|
type DB_GiftCardMgr struct {
|
||||||
|
Datas *server.DB_GiftCardArray
|
||||||
|
pool map[int32]*server.DB_GiftCard
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *DB_GiftCardMgr) unmarshal(data []byte) error {
|
||||||
|
err := proto.Unmarshal(data, this.Datas)
|
||||||
|
if err == nil {
|
||||||
|
this.arrangeData()
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *DB_GiftCardMgr) reunmarshal(data []byte) error {
|
||||||
|
newDatas := &server.DB_GiftCardArray{}
|
||||||
|
err := proto.Unmarshal(data, newDatas)
|
||||||
|
if err == nil {
|
||||||
|
for _, item := range newDatas.Arr {
|
||||||
|
existItem := this.GetData(item.GetId())
|
||||||
|
if existItem == nil {
|
||||||
|
this.pool[item.GetId()] = item
|
||||||
|
this.Datas.Arr = append(this.Datas.Arr, item)
|
||||||
|
} else {
|
||||||
|
*existItem = *item
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *DB_GiftCardMgr) arrangeData() {
|
||||||
|
if this.Datas == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
dataArr := this.Datas.GetArr()
|
||||||
|
if dataArr == nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, data := range dataArr {
|
||||||
|
this.pool[data.GetId()] = data
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (this *DB_GiftCardMgr) GetData(id int32) *server.DB_GiftCard {
|
||||||
|
if data, ok := this.pool[id]; ok {
|
||||||
|
return data
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
DataMgr.RegisteLoader("DB_GiftCard.dat", &ProtobufDataLoader{dh: PBDB_GiftCardMgr})
|
||||||
|
}
|
|
@ -8012,6 +8012,207 @@ func AgcConvertDB_GiftBox(fi,fo string) {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
break
|
||||||
|
}
|
||||||
|
arr.Arr = append(arr.Arr, data)
|
||||||
|
}
|
||||||
|
|
||||||
|
byteData, err := proto.Marshal(arr)
|
||||||
|
if err == nil{
|
||||||
|
err := os.WriteFile(fo, byteData, os.ModePerm)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
byteData, err = json.MarshalIndent(arr, "", "\t")
|
||||||
|
if err == nil {
|
||||||
|
foJson := strings.Replace(fo, ".dat", ".json", -1)
|
||||||
|
err := os.WriteFile(foJson, byteData, os.ModePerm)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break //only fetch first sheet
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func AgcConvertDB_GiftCard(fi,fo string) {
|
||||||
|
xlsxFile, err := xlsx.OpenFile(fi)
|
||||||
|
if err != nil {
|
||||||
|
fmt.Println("excel file open error:", err, "filename:", fi)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if err := recover(); err != nil {
|
||||||
|
fmt.Println(" panic,error=", err)
|
||||||
|
var buf [4096]byte
|
||||||
|
lens := runtime.Stack(buf[:], false)
|
||||||
|
fmt.Println("stack--->", string(buf[:lens]))
|
||||||
|
}
|
||||||
|
for _, sheet := range xlsxFile.Sheets {
|
||||||
|
arr:=&server.DB_GiftCardArray{
|
||||||
|
Arr:make([]*server.DB_GiftCard, 0, len(sheet.Rows)),
|
||||||
|
}
|
||||||
|
|
||||||
|
for i, row := range sheet.Rows {
|
||||||
|
if i <= 1 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
if len(row.Cells) == 0 {
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
temp := int64(0)
|
||||||
|
var arrInt []int32
|
||||||
|
var arrInt64 []int64
|
||||||
|
var arrStr []string
|
||||||
|
var _ = arrInt
|
||||||
|
var _ = arrStr
|
||||||
|
var _ = arrInt64
|
||||||
|
|
||||||
|
temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
|
||||||
|
data := &server.DB_GiftCard{}
|
||||||
|
|
||||||
|
for {
|
||||||
|
|
||||||
|
if len(row.Cells)<0+1{
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
temp, _ = strconv.ParseInt(row.Cells[0].String(), 10, 32)
|
||||||
|
data.Id = int32(temp)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if len(row.Cells)<1+1{
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
temp, _ = strconv.ParseInt(row.Cells[1].String(), 10, 32)
|
||||||
|
data.ShopID = int32(temp)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if len(row.Cells)<2+1{
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
data.Name = row.Cells[2].String()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if len(row.Cells)<3+1{
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if row.Cells[3].String() != ""{
|
||||||
|
pairs := strings.Split(row.Cells[3].String(), ";")
|
||||||
|
resultMap := make(map[int64]int64)
|
||||||
|
for _, pair := range pairs {
|
||||||
|
kv := strings.Split(pair, ",")
|
||||||
|
key, err := strconv.ParseInt(kv[0], 10, 64)
|
||||||
|
if err != nil {
|
||||||
|
// 错误处理
|
||||||
|
fmt.Println("无法转换为int64:", kv[0])
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
value, err := strconv.ParseInt(kv[1], 10, 64)
|
||||||
|
if err != nil {
|
||||||
|
// 错误处理
|
||||||
|
fmt.Println("无法转换为int64:", kv[1])
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
resultMap[key] = value
|
||||||
|
}
|
||||||
|
data.Rewards = resultMap
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if len(row.Cells)<4+1{
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if row.Cells[4].String() != ""{
|
||||||
|
pairs := strings.Split(row.Cells[4].String(), ";")
|
||||||
|
resultMap := make(map[int64]int64)
|
||||||
|
for _, pair := range pairs {
|
||||||
|
kv := strings.Split(pair, ",")
|
||||||
|
key, err := strconv.ParseInt(kv[0], 10, 64)
|
||||||
|
if err != nil {
|
||||||
|
// 错误处理
|
||||||
|
fmt.Println("无法转换为int64:", kv[0])
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
value, err := strconv.ParseInt(kv[1], 10, 64)
|
||||||
|
if err != nil {
|
||||||
|
// 错误处理
|
||||||
|
fmt.Println("无法转换为int64:", kv[1])
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
resultMap[key] = value
|
||||||
|
}
|
||||||
|
data.DayRewards = resultMap
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
if len(row.Cells)<5+1{
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
temp, _ = strconv.ParseInt(row.Cells[5].String(), 10, 32)
|
||||||
|
data.Time = int32(temp)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if len(row.Cells)<6+1{
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
|
temp, _ = strconv.ParseInt(row.Cells[6].String(), 10, 32)
|
||||||
|
data.Equity = int32(temp)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
arr.Arr = append(arr.Arr, data)
|
arr.Arr = append(arr.Arr, data)
|
||||||
|
@ -12408,6 +12609,8 @@ func main(){
|
||||||
|
|
||||||
AgcConvertDB_GiftBox(`D:\trunk\src\mongo.games.com\game\xlsx\DB_GiftBox.xlsx`,`..\..\data\DB_GiftBox.dat`)
|
AgcConvertDB_GiftBox(`D:\trunk\src\mongo.games.com\game\xlsx\DB_GiftBox.xlsx`,`..\..\data\DB_GiftBox.dat`)
|
||||||
|
|
||||||
|
AgcConvertDB_GiftCard(`D:\trunk\src\mongo.games.com\game\xlsx\DB_GiftCard.xlsx`,`..\..\data\DB_GiftCard.dat`)
|
||||||
|
|
||||||
AgcConvertDB_IceAgeElementRate(`D:\trunk\src\mongo.games.com\game\xlsx\DB_IceAgeElementRate.xlsx`,`..\..\data\DB_IceAgeElementRate.dat`)
|
AgcConvertDB_IceAgeElementRate(`D:\trunk\src\mongo.games.com\game\xlsx\DB_IceAgeElementRate.xlsx`,`..\..\data\DB_IceAgeElementRate.dat`)
|
||||||
|
|
||||||
AgcConvertDB_Legend_Odds(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Legend_Odds.xlsx`,`..\..\data\DB_Legend_Odds.dat`)
|
AgcConvertDB_Legend_Odds(`D:\trunk\src\mongo.games.com\game\xlsx\DB_Legend_Odds.xlsx`,`..\..\data\DB_Legend_Odds.dat`)
|
||||||
|
|
|
@ -185,6 +185,12 @@ func (this *CSVCPayShopHandler) Process(s *netlib.Session, packetid int, data in
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
if shopInfo.Page == ShopPageGift {
|
||||||
|
if !p.CheckWeekCard(shopInfo.Id) {
|
||||||
|
SendClient(shop.OpResultCode_OPRC_Error)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
}
|
||||||
//不需要观看广告的
|
//不需要观看广告的
|
||||||
var money int32 = rand.Int31n(shopInfo.CostArea[1]-shopInfo.CostArea[0]+1) + shopInfo.CostArea[0]
|
var money int32 = rand.Int31n(shopInfo.CostArea[1]-shopInfo.CostArea[0]+1) + shopInfo.CostArea[0]
|
||||||
if shopInfo.Page == ShopPageVip {
|
if shopInfo.Page == ShopPageVip {
|
||||||
|
@ -216,6 +222,9 @@ func (this *CSVCPayShopHandler) Process(s *netlib.Session, packetid int, data in
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
op := ShopMgrSington.ReceiveVCPayShop(shopInfo, p, msg.VipShopId, msg.GetPosition())
|
op := ShopMgrSington.ReceiveVCPayShop(shopInfo, p, msg.VipShopId, msg.GetPosition())
|
||||||
|
if shopInfo.Page == ShopPageGift {
|
||||||
|
p.UpdateWeekCardData(shopInfo.Id)
|
||||||
|
}
|
||||||
SendClient(op)
|
SendClient(op)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
@ -355,6 +364,11 @@ func (this *CSPayInfoHandler) Process(s *netlib.Session, packetid int, data inte
|
||||||
SendClient(shop.OpResultCode_OPRC_Error)
|
SendClient(shop.OpResultCode_OPRC_Error)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
if shopInfo.Page == ShopPageGift {
|
||||||
|
if !p.CheckWeekCard(shopInfo.Id) {
|
||||||
|
SendClient(shop.OpResultCode_OPRC_Error)
|
||||||
|
}
|
||||||
|
}
|
||||||
if shopInfo.Page == ShopPageVip {
|
if shopInfo.Page == ShopPageVip {
|
||||||
//判断是否购买过了
|
//判断是否购买过了
|
||||||
vipLevel := p.VIP
|
vipLevel := p.VIP
|
||||||
|
|
|
@ -374,6 +374,26 @@ func (this *Player) OnLogined() {
|
||||||
TaskSubjectSingleton.Touch(common.TaskTypeLogin, &TaskData{SnId: this.SnId, Num: 1}) // 登录游戏
|
TaskSubjectSingleton.Touch(common.TaskTypeLogin, &TaskData{SnId: this.SnId, Num: 1}) // 登录游戏
|
||||||
|
|
||||||
this.LoadAfter()
|
this.LoadAfter()
|
||||||
|
//测试代码
|
||||||
|
this.UpdatePlayerVipBag(970001)
|
||||||
|
//周卡领取奖励
|
||||||
|
now := time.Now().Unix()
|
||||||
|
for id, endTime := range this.WeekCardTime {
|
||||||
|
if endTime < now {
|
||||||
|
this.WeekCardTime[id] = 0
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if this.WeekCardTime[id] == 0 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if now > this.WeekCardTime[id] {
|
||||||
|
logger.Logger.Trace("周卡已过期,不能领取!")
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
if !this.WeekCardAward[id] {
|
||||||
|
this.GetWeekCardAwary(id)
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2223,6 +2243,8 @@ func (this *Player) OnDayTimer(login, continuous bool, t int) {
|
||||||
this.VipMatchTimes = 0
|
this.VipMatchTimes = 0
|
||||||
//VIP商城数据更新
|
//VIP商城数据更新
|
||||||
this.UpdateVipShopData()
|
this.UpdateVipShopData()
|
||||||
|
//周卡数据更新
|
||||||
|
this.WeekCardAward = make(map[int32]bool)
|
||||||
// 重置每日任务
|
// 重置每日任务
|
||||||
if this.WelfData != nil {
|
if this.WelfData != nil {
|
||||||
if this.WelfData.Task != nil {
|
if this.WelfData.Task != nil {
|
||||||
|
@ -2990,7 +3012,18 @@ func (this *Player) SendPlayerInfo() {
|
||||||
} else {
|
} else {
|
||||||
scPlayerData.BindOption = proto.Int32(7)
|
scPlayerData.BindOption = proto.Int32(7)
|
||||||
}
|
}
|
||||||
|
//周卡数据
|
||||||
|
for id, endTime := range this.WeekCardTime {
|
||||||
|
if endTime == 0 {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
weekInfo := player_proto.WeekInfo{
|
||||||
|
Id: id,
|
||||||
|
WeekCardTime: endTime,
|
||||||
|
WeekCardAward: this.WeekCardAward[id],
|
||||||
|
}
|
||||||
|
scPlayerData.Data.WeekCard = append(scPlayerData.Data.WeekCard, &weekInfo)
|
||||||
|
}
|
||||||
proto.SetDefaults(scPlayerData)
|
proto.SetDefaults(scPlayerData)
|
||||||
logger.Logger.Tracef("Send SCPlayerData %v", scPlayerData)
|
logger.Logger.Tracef("Send SCPlayerData %v", scPlayerData)
|
||||||
this.SendToClient(int(player_proto.PlayerPacketID_PACKET_SC_PLAYERDATA), scPlayerData)
|
this.SendToClient(int(player_proto.PlayerPacketID_PACKET_SC_PLAYERDATA), scPlayerData)
|
||||||
|
@ -4259,6 +4292,10 @@ func (this *Player) UpdatePlayerVipBag(shopId int32) {
|
||||||
}
|
}
|
||||||
}), "UpdatePlayerVipBag").Start()
|
}), "UpdatePlayerVipBag").Start()
|
||||||
}
|
}
|
||||||
|
//判断是否是礼包周卡
|
||||||
|
if shopInfo.Page == ShopPageGift {
|
||||||
|
this.UpdateWeekCardData(shopId)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4618,3 +4655,123 @@ func (this *Player) CollectTask(taskId int32, num int64) {
|
||||||
default:
|
default:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 购买周卡检查
|
||||||
|
func (this *Player) CheckWeekCard(shopId int32) bool {
|
||||||
|
srvdata.PBDB_GiftCardMgr.Datas.GetArr()
|
||||||
|
id := int32(-1)
|
||||||
|
for _, card := range srvdata.PBDB_GiftCardMgr.Datas.GetArr() {
|
||||||
|
if card.ShopID == shopId {
|
||||||
|
id = card.Id
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if id == -1 {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
logger.Logger.Trace("玩家请求购买周卡!")
|
||||||
|
//获取当前时间
|
||||||
|
now := time.Now().Unix()
|
||||||
|
//计算时间差
|
||||||
|
timeDiff := int32(this.WeekCardTime[id]-now) / 86400
|
||||||
|
if timeDiff > 3 {
|
||||||
|
logger.Logger.Trace("当前剩余时间大于3天,无法购买周卡!")
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
// 购买周卡
|
||||||
|
func (this *Player) UpdateWeekCardData(shopId int32) bool {
|
||||||
|
id := int32(-1)
|
||||||
|
CardTime := 0
|
||||||
|
for _, card := range srvdata.PBDB_GiftCardMgr.Datas.GetArr() {
|
||||||
|
if card.ShopID == shopId {
|
||||||
|
id = card.Id
|
||||||
|
CardTime = int(card.Time)
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if id == -1 {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
if this.WeekCardTime == nil {
|
||||||
|
this.WeekCardTime = make(map[int32]int64)
|
||||||
|
}
|
||||||
|
logger.Logger.Trace("玩家请求购买周卡!")
|
||||||
|
//获取当前时间
|
||||||
|
now := time.Now().Unix()
|
||||||
|
//计算时间差
|
||||||
|
timeDiff := int32(this.WeekCardTime[id]-now) / 86400
|
||||||
|
if timeDiff > 3 {
|
||||||
|
logger.Logger.Trace("当前剩余时间大于3天,无法购买周卡!")
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
//计算剩余时间
|
||||||
|
addTime := 0
|
||||||
|
if timeDiff > 0 {
|
||||||
|
addTime = int(timeDiff)
|
||||||
|
}
|
||||||
|
//计算7天后0点时间
|
||||||
|
sevenDaysLater := time.Now().AddDate(0, 0, CardTime+addTime+1)
|
||||||
|
zeroTime := time.Date(sevenDaysLater.Year(), sevenDaysLater.Month(), sevenDaysLater.Day(), 0, 0, 0, 0, sevenDaysLater.Location())
|
||||||
|
logger.Logger.Trace("购买周卡后,时间变为:", zeroTime.Unix())
|
||||||
|
|
||||||
|
this.WeekCardTime[id] = zeroTime.Unix()
|
||||||
|
this.GetWeekCardAwary(id)
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
|
// 领取周卡奖励
|
||||||
|
func (this *Player) GetWeekCardAwary(id int32) {
|
||||||
|
logger.Logger.Trace("玩家请求领取周卡奖励!")
|
||||||
|
data := srvdata.PBDB_GiftCardMgr.GetData(id)
|
||||||
|
|
||||||
|
if this.WeekCardAward == nil {
|
||||||
|
this.WeekCardAward = make(map[int32]bool)
|
||||||
|
}
|
||||||
|
now := time.Now().Unix()
|
||||||
|
if this.WeekCardTime[id] != 0 && now > this.WeekCardTime[id] {
|
||||||
|
logger.Logger.Trace("周卡已过期,不能领取!")
|
||||||
|
return
|
||||||
|
}
|
||||||
|
if this.WeekCardAward[id] {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
ret := &player_proto.SCGetWeekCardAwary{}
|
||||||
|
//获取周卡奖励
|
||||||
|
items := data.GetDayRewards()
|
||||||
|
addItem := []*Item{}
|
||||||
|
for itemId, itemNum := range items {
|
||||||
|
item := &Item{ItemId: int32(itemId), ItemNum: itemNum, ObtainTime: time.Now().Unix()}
|
||||||
|
addItem = append(addItem, item)
|
||||||
|
itemInfo := &player_proto.PayItem{}
|
||||||
|
itemInfo.ItemId = int32(itemId)
|
||||||
|
itemInfo.ItemNum = itemNum
|
||||||
|
ret.Items = append(ret.Items, itemInfo)
|
||||||
|
BagMgrSingleton.RecordItemLog(this.Platform, this.SnId, ItemObtain, int32(itemId), data.Name, itemNum, "周卡每日奖励")
|
||||||
|
}
|
||||||
|
BagMgrSingleton.AddJybBagInfo(this, addItem, 0, common.GainWay_WeekCardAward, "system", "周卡每日奖励")
|
||||||
|
//返回消息
|
||||||
|
this.WeekCardAward[id] = true
|
||||||
|
ret.WeekCardAward = this.WeekCardAward[id]
|
||||||
|
ret.Items = nil
|
||||||
|
this.SendToClient(int(player_proto.PlayerPacketID_PACKET_SCGetWeekCardAwary), ret)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取周卡权益
|
||||||
|
// typeId : 1-破产救济金领取翻倍 2-排位赛积分提升5%
|
||||||
|
func (this *Player) GetWeekCardPrivilege(typeId int32) bool {
|
||||||
|
logger.Logger.Trace("玩家请求获取周卡权益!")
|
||||||
|
now := time.Now().Unix()
|
||||||
|
for id, endTime := range this.WeekCardTime {
|
||||||
|
if endTime > now {
|
||||||
|
data := srvdata.PBDB_GiftCardMgr.GetData(id)
|
||||||
|
if data.Equity == typeId {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
|
@ -51,6 +51,7 @@ const (
|
||||||
ShopPagePrivilege //VIP特权礼包
|
ShopPagePrivilege //VIP特权礼包
|
||||||
ShopPagePhoneScore = 61 //手机积分商城
|
ShopPagePhoneScore = 61 //手机积分商城
|
||||||
ShopPagePhoneScore_google = 62
|
ShopPagePhoneScore_google = 62
|
||||||
|
ShopPageGift = 7 //礼包页面
|
||||||
)
|
)
|
||||||
|
|
||||||
// 商品类型
|
// 商品类型
|
||||||
|
|
|
@ -92,6 +92,10 @@ func (this *WelfareMgr) GetReliefFund(p *Player, isVideo bool) {
|
||||||
coin = coin + add
|
coin = coin + add
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//周卡加成
|
||||||
|
if p.GetWeekCardPrivilege(1) {
|
||||||
|
coin = coin * 2
|
||||||
|
}
|
||||||
p.AddCoin(coin, add, gainWay, "ReliefFund",
|
p.AddCoin(coin, add, gainWay, "ReliefFund",
|
||||||
fmt.Sprintf("领取救济金-%v-%v倍", coin, rate))
|
fmt.Sprintf("领取救济金-%v-%v倍", coin, rate))
|
||||||
|
|
||||||
|
|
Binary file not shown.
Loading…
Reference in New Issue