周卡礼包
This commit is contained in:
parent
5be9e98ae0
commit
cc56a160af
|
@ -313,6 +313,8 @@ const (
|
|||
GainWay_TaskReward = 62 //62.任务奖励
|
||||
GainWay_Interact = 63 //63.房间内互动效果
|
||||
GainWay_Collect = 64 //64.集卡活动
|
||||
GainWay_WeekCardBuy = 65 //65.周卡购买
|
||||
GainWay_WeekCardAward = 66 //66.周卡每日奖励
|
||||
)
|
||||
|
||||
// 后台选择 金币变化类型 的充值 类型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
|
||||
}
|
||||
|
||||
// 获取周卡权益
|
||||
// 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 vipScore int64 // vip加成
|
||||
var roleScore int64 // 角色加成
|
||||
var weekCardScore int64 // 周卡加成
|
||||
var roleAdd int32
|
||||
var otherScore int64 // 额外总加分
|
||||
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)
|
||||
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.winCoin -= gainScore
|
||||
|
@ -1730,6 +1735,13 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
|||
Addition: roleAdd,
|
||||
Score: roleScore,
|
||||
})
|
||||
// 周卡加成
|
||||
billData.AddItems = append(billData.AddItems, &tienlen.AddItem{
|
||||
ItemType: 6,
|
||||
ItemId: 0,
|
||||
Addition: 5,
|
||||
Score: weekCardScore,
|
||||
})
|
||||
}
|
||||
isWin := int32(0)
|
||||
billCoin := losePlayer.bombScore - gainScore
|
||||
|
@ -1807,6 +1819,7 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
|||
var rankScore int64 // 排位积分
|
||||
var sceneTypeScore int64 // 场次额外积分
|
||||
var vipScore int64 // vip加成
|
||||
var weekCardScore int64 // 周卡加成
|
||||
var otherScore int64 // 额外总加分
|
||||
oldRankScore := lastWinPlayer.GetRankScore(sceneEx.GetDBGameFree().GetRankType())
|
||||
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))
|
||||
// 角色加成分
|
||||
_, 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))
|
||||
}
|
||||
otherScore = sceneTypeScore + vipScore + roleScore
|
||||
otherScore = sceneTypeScore + vipScore + roleScore + weekCardScore
|
||||
lastWinPlayer.AddRankScore(sceneEx.GetDBGameFree().GetRankType(), rankScore+otherScore) // 炸弹分一起算
|
||||
}
|
||||
lastWinPlayer.winCoin -= astWinGainScore
|
||||
|
@ -1879,6 +1897,13 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
|||
Addition: roleAdd,
|
||||
Score: roleScore,
|
||||
})
|
||||
// 周卡加成
|
||||
billData.AddItems = append(billData.AddItems, &tienlen.AddItem{
|
||||
ItemType: 6,
|
||||
ItemId: 0,
|
||||
Addition: 5,
|
||||
Score: weekCardScore,
|
||||
})
|
||||
}
|
||||
isWin := int32(0)
|
||||
billCoin := lastWinPlayer.bombScore - astWinGainScore
|
||||
|
@ -1934,6 +1959,7 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
|||
var rankScore int64 // 排位积分
|
||||
var sceneTypeScore int64 // 场次额外积分
|
||||
var vipScore int64 // vip加成
|
||||
var weekCardScore int64 // 周卡加成
|
||||
var otherScore int64 // 额外总加分
|
||||
oldRankScore := playerEx.GetRankScore(sceneEx.GetDBGameFree().GetRankType())
|
||||
rankScore = loseRankScore
|
||||
|
@ -1960,8 +1986,12 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
|||
// 角色加成分
|
||||
_, roleAdd = srvdata.RolePetMgrSington.GetRoleAdd(&playerEx.PlayerData, common.RoleAddRankScore)
|
||||
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.winCoin += gainScore
|
||||
|
@ -1997,6 +2027,13 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
|||
Addition: roleAdd,
|
||||
Score: roleScore,
|
||||
})
|
||||
// 周卡加成
|
||||
billData.AddItems = append(billData.AddItems, &tienlen.AddItem{
|
||||
ItemType: 6,
|
||||
ItemId: 0,
|
||||
Addition: 5,
|
||||
Score: weekCardScore,
|
||||
})
|
||||
}
|
||||
isWin := int32(0)
|
||||
billCoin := playerEx.bombScore + gainScore
|
||||
|
@ -2051,6 +2088,7 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
|||
var rankScore int64 // 排位积分
|
||||
var sceneTypeScore int64 // 场次额外积分
|
||||
var vipScore int64 // vip加成
|
||||
var weekCardScore int64 // 周卡加成
|
||||
var otherScore int64 // 额外总加分
|
||||
oldRankScore := playerEx.GetRankScore(sceneEx.GetDBGameFree().GetRankType())
|
||||
rankScore = lastWinPlayerRankScore
|
||||
|
@ -2072,8 +2110,12 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
|||
// 角色加成分
|
||||
_, roleAdd = srvdata.RolePetMgrSington.GetRoleAdd(&playerEx.PlayerData, common.RoleAddRankScore)
|
||||
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.winCoin += gainScore
|
||||
|
@ -2109,6 +2151,13 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
|||
Addition: roleAdd,
|
||||
Score: roleScore,
|
||||
})
|
||||
// 周卡加成
|
||||
billData.AddItems = append(billData.AddItems, &tienlen.AddItem{
|
||||
ItemType: 6,
|
||||
ItemId: 0,
|
||||
Addition: 5,
|
||||
Score: weekCardScore,
|
||||
})
|
||||
}
|
||||
isWin := int32(0)
|
||||
billCoin := playerEx.bombScore + gainScore
|
||||
|
@ -2164,6 +2213,7 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
|||
var rankScore int64 // 排位积分
|
||||
var sceneTypeScore int64 // 场次额外积分
|
||||
var vipScore int64 // vip加成
|
||||
var weekCardScore int64 // 周卡加成
|
||||
var roleScore int64 // 角色加成
|
||||
var roleAdd int32
|
||||
var otherScore int64 // 额外总加分
|
||||
|
@ -2230,8 +2280,12 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
|||
// 角色加成分
|
||||
_, roleAdd = srvdata.RolePetMgrSington.GetRoleAdd(&playerEx.PlayerData, common.RoleAddRankScore)
|
||||
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.winCoin -= gainScore
|
||||
|
@ -2268,6 +2322,13 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
|||
Addition: roleAdd,
|
||||
Score: roleScore,
|
||||
})
|
||||
// 周卡加成
|
||||
billData.AddItems = append(billData.AddItems, &tienlen.AddItem{
|
||||
ItemType: 6,
|
||||
ItemId: 0,
|
||||
Addition: 5,
|
||||
Score: weekCardScore,
|
||||
})
|
||||
}
|
||||
|
||||
isWin := int32(0)
|
||||
|
@ -2349,6 +2410,7 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
|||
var sceneTypeScore int64 // 场次额外积分
|
||||
var vipScore int64 // vip加成
|
||||
var roleScore int64 // 角色加成
|
||||
var weekCardScore int64 // 周卡加成
|
||||
var roleAdd int32
|
||||
var otherScore int64 // 额外总加分
|
||||
playerEx := sceneEx.players[winSnid]
|
||||
|
@ -2371,7 +2433,11 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
|||
// 角色加成分
|
||||
_, roleAdd = srvdata.RolePetMgrSington.GetRoleAdd(&playerEx.PlayerData, common.RoleAddRankScore)
|
||||
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.winCoin += gainScore
|
||||
|
@ -2406,6 +2472,13 @@ func (this *SceneBilledStateTienLen) OnEnter(s *base.Scene) {
|
|||
Addition: roleAdd,
|
||||
Score: roleScore,
|
||||
})
|
||||
// 周卡加成
|
||||
billData.AddItems = append(billData.AddItems, &tienlen.AddItem{
|
||||
ItemType: 6,
|
||||
ItemId: 0,
|
||||
Addition: 5,
|
||||
Score: weekCardScore,
|
||||
})
|
||||
|
||||
isWin := int32(0)
|
||||
billCoin := playerEx.bombScore + gainScore
|
||||
|
|
|
@ -453,6 +453,8 @@ type PlayerData struct {
|
|||
InviteSnId int32 // 邀请人
|
||||
InviteScore int64 // 邀请积分
|
||||
OtherCode string // 绑定的邀请码
|
||||
WeekCardTime map[int32]int64 // 周卡结束时间 key:类型 value:结束时间
|
||||
WeekCardAward map[int32]bool //周卡奖励领取状态false-未领取,true已领取
|
||||
}
|
||||
|
||||
// 七日签到数据
|
||||
|
@ -462,6 +464,7 @@ type NewSignData struct {
|
|||
AddupIndex []int32 //领取累计奖励
|
||||
TurnplateIdx []int32 //领取转盘下标
|
||||
VideoTicket int64 // 领取视频奖励时间戳
|
||||
|
||||
}
|
||||
|
||||
type TaskData struct {
|
||||
|
@ -770,6 +773,8 @@ func NewPlayerData(acc string, name string, id int32, channel, platform, promote
|
|||
//测试数据
|
||||
PowerList: []int32{1}, //默认炮台
|
||||
UnMaxPower: 10, //初始化炮倍最小倍数
|
||||
WeekCardTime: make(map[int32]int64),
|
||||
WeekCardAward: make(map[int32]bool),
|
||||
}
|
||||
|
||||
if tel != "" {
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -203,6 +203,8 @@ enum PlayerPacketID {
|
|||
PACKET_SC_PhoneLotteryCount = 2820;//抽奖次数
|
||||
PACKET_CSADV = 2821; // 看广告
|
||||
PACKET_SCADV = 2822; // 看广告
|
||||
PACKET_SCGetWeekCardAwary = 2823;//领取周卡每日奖励返回
|
||||
|
||||
}
|
||||
|
||||
// 账变记录
|
||||
|
@ -310,6 +312,14 @@ message PlayerData {
|
|||
int32 VipShopRefreshCount =45; //vip当前已使用免费刷新次数
|
||||
string Signature = 46; //签名
|
||||
int32 Age = 47; // 年龄
|
||||
repeated WeekInfo WeekCard = 48;//周卡
|
||||
}
|
||||
|
||||
//周卡数据
|
||||
message WeekInfo{
|
||||
int32 Id =1;
|
||||
int64 WeekCardTime =2; //结束时间
|
||||
bool weekCardAward = 3;//领取奖励状态
|
||||
}
|
||||
//断线重连小游戏中的数据 当前玩家在哪个房间 哪个游戏 对应的LogicId
|
||||
message MiniGameInfo{
|
||||
|
@ -1151,3 +1161,10 @@ message CSADV {
|
|||
message SCADV {
|
||||
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;
|
||||
}
|
||||
|
||||
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 {
|
||||
|
||||
int32 Id = 1;
|
||||
|
|
|
@ -1015,7 +1015,7 @@ type AddItem struct {
|
|||
sizeCache protoimpl.SizeCache
|
||||
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
|
||||
Addition int32 `protobuf:"varint,3,opt,name=Addition,proto3" json:"Addition,omitempty"` // 加成(百分比)
|
||||
Score int64 `protobuf:"varint,4,opt,name=Score,proto3" json:"Score,omitempty"` // 加成分数
|
||||
|
|
|
@ -131,7 +131,7 @@ message SCTienLenPlayerLeave {
|
|||
}
|
||||
|
||||
message AddItem {
|
||||
int32 ItemType = 1; // 类型; 1场次加成 2道具 3宠物 4角色 5vip加成
|
||||
int32 ItemType = 1; // 类型; 1场次加成 2道具 3宠物 4角色 5vip加成 6周卡加成
|
||||
int32 ItemId = 2; // ID
|
||||
int32 Addition = 3; // 加成(百分比)
|
||||
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
|
||||
}
|
||||
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_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_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
|
||||
}
|
||||
}
|
||||
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]
|
||||
if shopInfo.Page == ShopPageVip {
|
||||
|
@ -216,6 +222,9 @@ func (this *CSVCPayShopHandler) Process(s *netlib.Session, packetid int, data in
|
|||
return nil
|
||||
}
|
||||
op := ShopMgrSington.ReceiveVCPayShop(shopInfo, p, msg.VipShopId, msg.GetPosition())
|
||||
if shopInfo.Page == ShopPageGift {
|
||||
p.UpdateWeekCardData(shopInfo.Id)
|
||||
}
|
||||
SendClient(op)
|
||||
}
|
||||
return nil
|
||||
|
@ -355,6 +364,11 @@ func (this *CSPayInfoHandler) Process(s *netlib.Session, packetid int, data inte
|
|||
SendClient(shop.OpResultCode_OPRC_Error)
|
||||
return nil
|
||||
}
|
||||
if shopInfo.Page == ShopPageGift {
|
||||
if !p.CheckWeekCard(shopInfo.Id) {
|
||||
SendClient(shop.OpResultCode_OPRC_Error)
|
||||
}
|
||||
}
|
||||
if shopInfo.Page == ShopPageVip {
|
||||
//判断是否购买过了
|
||||
vipLevel := p.VIP
|
||||
|
|
|
@ -374,6 +374,26 @@ func (this *Player) OnLogined() {
|
|||
TaskSubjectSingleton.Touch(common.TaskTypeLogin, &TaskData{SnId: this.SnId, Num: 1}) // 登录游戏
|
||||
|
||||
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
|
||||
//VIP商城数据更新
|
||||
this.UpdateVipShopData()
|
||||
//周卡数据更新
|
||||
this.WeekCardAward = make(map[int32]bool)
|
||||
// 重置每日任务
|
||||
if this.WelfData != nil {
|
||||
if this.WelfData.Task != nil {
|
||||
|
@ -2990,7 +3012,18 @@ func (this *Player) SendPlayerInfo() {
|
|||
} else {
|
||||
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)
|
||||
logger.Logger.Tracef("Send SCPlayerData %v", scPlayerData)
|
||||
this.SendToClient(int(player_proto.PlayerPacketID_PACKET_SC_PLAYERDATA), scPlayerData)
|
||||
|
@ -4259,6 +4292,10 @@ func (this *Player) UpdatePlayerVipBag(shopId int32) {
|
|||
}
|
||||
}), "UpdatePlayerVipBag").Start()
|
||||
}
|
||||
//判断是否是礼包周卡
|
||||
if shopInfo.Page == ShopPageGift {
|
||||
this.UpdateWeekCardData(shopId)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -4618,3 +4655,123 @@ func (this *Player) CollectTask(taskId int32, num int64) {
|
|||
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特权礼包
|
||||
ShopPagePhoneScore = 61 //手机积分商城
|
||||
ShopPagePhoneScore_google = 62
|
||||
ShopPageGift = 7 //礼包页面
|
||||
)
|
||||
|
||||
// 商品类型
|
||||
|
|
|
@ -92,6 +92,10 @@ func (this *WelfareMgr) GetReliefFund(p *Player, isVideo bool) {
|
|||
coin = coin + add
|
||||
}
|
||||
}
|
||||
//周卡加成
|
||||
if p.GetWeekCardPrivilege(1) {
|
||||
coin = coin * 2
|
||||
}
|
||||
p.AddCoin(coin, add, gainWay, "ReliefFund",
|
||||
fmt.Sprintf("领取救济金-%v-%v倍", coin, rate))
|
||||
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue