Procházet zdrojové kódy

邮件改为150上限,特权卡bug修复,飞艇排行奖励

leitao666 před 1 rokem
rodič
revize
9e3ff5a99e

+ 3 - 3
RO_Server_Trunk-branch_0.1.39/rocommon/util/timer.go

@@ -186,12 +186,12 @@ func GetLatestWeek10HourTime(ms uint64) time.Time {
 	if curWeekDay == 0 {
 		curWeekDay = 7
 	}
-	//delDay := 7 - curWeekDay
+	delDay := 7 - curWeekDay
 
-	//nowTime = nowTime.AddDate(0, 0, int(delDay))
+	nowTime = nowTime.AddDate(0, 0, int(delDay))
 	dayTimeStr := nowTime.Format(DATE_FORMAT1)
 	tempDayTime, _ := time.ParseInLocation(DATE_FORMAT1, dayTimeStr, loc)
-	tempDayTime = tempDayTime.Add(time.Hour * 22)
+	tempDayTime = tempDayTime.Add(time.Hour * 10)
 	return tempDayTime
 }
 

+ 2 - 1
RO_Server_Trunk-branch_0.1.39/roserver/baseserver/model/base_config_global.go

@@ -34,7 +34,8 @@ var GlobalMailSpecialPrivilegeCard int32 = 34
 
 var GlobalRuneGiftGoldShopResetVersion int32 = 0
 
-//var GlobalMailIdMormalMonthCard int32 = 9
+var GlobalMailyuanhangRankAward int32 = 9
+
 //var GlobalMailIdVipMonthCard int32 = 10
 
 var GlobalSystemMsgItemList = map[int32]struct{}{} //获得稀有道具播报系统公告

+ 2 - 0
RO_Server_Trunk-branch_0.1.39/roserver/baseserver/model/service_con.go

@@ -335,6 +335,8 @@ func SelectServiceNode(serviceName string, id uint64) string {
 		return selectServiceNode(serviceName, id)
 	case SERVICE_NODE_TYPE_CROSSROUTER_STR:
 		return selectServiceNode(serviceName, id)
+	case SERVICE_NODE_TYPE_CROSSSERVER_STR:
+		return selectServiceNode(serviceName, id)
 	}
 	return ""
 }

+ 16 - 3
RO_Server_Trunk-branch_0.1.39/roserver/cross_server/model/yuanhang_trial.go

@@ -522,8 +522,10 @@ var crossTopRankReward = map[uint64]int{}
 
 // 远航试炼排行榜刷新
 func (this *YuanHangTrialManager) RefreshTrialRank(lastSeasonId int32, rewardPlayerList *[]uint64, outList *[]*serverproto.KeyValueType64) serverproto.ErrorCode {
-
-	err := model.GetMessageFromRedis("", YuanHangTrialRankAwardPrefix, outList)
+	data := &serverproto.SSFriendDataSaveReq{
+		SubList: make([]*serverproto.KeyValueType64, 0),
+	}
+	err := model.GetMessageFromRedis("", YuanHangTrialRankAwardPrefix, data)
 	if err == redis.Nil {
 		//获得前100排行玩家数据
 		for idx := 0; idx < 5; idx++ {
@@ -542,11 +544,22 @@ func (this *YuanHangTrialManager) RefreshTrialRank(lastSeasonId int32, rewardPla
 					Key:   rankUid,
 					Value: int32(int(startIdx) + i + 1),
 				})
+				data.SubList = append(data.SubList, &serverproto.KeyValueType64{
+					Key:   rankUid,
+					Value: int32(int(startIdx) + i + 1),
+				})
 			}
 		}
-		model.SetRankMessageToRedis(YuanHangTrialRankAwardPrefix, outList)
+		model.SetRankMessageToRedis(YuanHangTrialRankAwardPrefix, data)
 		//清除排行榜数据
 		service.GetRedis().Del(YuanHangTrialRankPrefix)
+	} else {
+		for _, v := range data.SubList {
+			*outList = append(*outList, &serverproto.KeyValueType64{
+				Key:   v.Key,
+				Value: v.Value,
+			})
+		}
 	}
 
 	//for i := 0; i < len(*rewardPlayerList); i++ {

+ 10 - 3
RO_Server_Trunk-branch_0.1.39/roserver/game/model/cross_manager.go

@@ -273,6 +273,7 @@ type CrossManager struct {
 	updateTimer                    util.ServerTimer //更新定时器
 	initStartUp                    bool
 	seasonStartTime, seasonEndTime time.Time
+	refreshTime                    time.Time
 }
 
 func newCrossMag() *CrossManager {
@@ -282,10 +283,16 @@ func newCrossMag() *CrossManager {
 }
 
 func (this *CrossManager) init(ms uint64) {
+	nowTime := util.GetTimeByUint64(ms)
+	if nowTime.Before(this.refreshTime.AddDate(0, 0, 7)) {
+		return
+	}
 	endTime := util.GetLatestWeek10HourTime(ms)
-	if time.Now().After(endTime) {
+	if nowTime.After(endTime) {
 		msg := &serverproto.SSCrossYuanHangTrialRankUpdateReq{}
 		SendCrossService(msg)
+		util.InfoF("cross rank refresh time:%v", nowTime)
+		this.refreshTime = nowTime
 	}
 
 }
@@ -331,8 +338,8 @@ func (this *CrossManager) GetSeasonReward(role uint64, selfRank, rewardSeasonId
 				})
 			}
 			//发送邮件
-			AddMailOnlineAndOffline([]uint64{role}, model.GlobalMailIdArenaTopReward, int32(serverproto.MailType_MailType_System),
-				itemList, []int32{int32(util.GetTimeSeconds())}, "飞艇排行榜奖励", "第"+strconv.FormatInt(int64(selfRank), 10)+"名")
+			AddMailOnlineAndOffline([]uint64{role}, model.GlobalMailyuanhangRankAward, int32(serverproto.MailType_MailType_GM),
+				itemList, []int32{int32(util.GetTimeSeconds())}, "飞艇排行榜奖励", "恭喜您在遠航試煉中獲得了第"+strconv.FormatInt(int64(selfRank), 10)+"名")
 			util.InfoF("send rank award uid:%v award:%v", role, itemList)
 			break
 		}

+ 2 - 1
RO_Server_Trunk-branch_0.1.39/roserver/game/model/role_bt.go

@@ -132,7 +132,7 @@ func (this *RoleBT) DailyReset(notify bool, oldDailyResetTimeStamp uint64) {
 	if len(addItemList) > 0 {
 		this.role.AddMail(model.GlobalMailBoliShop, serverproto.MailType_MailType_BoliSHop, addItemList, nil, "", "")
 	}
-
+	util.InfoF("send bolishop mail num")
 	//根据当前时间计算间隔多天的邮件数量
 	addItemList = map[int32]int32{}
 	curTime := util.GetTimeMilliseconds()
@@ -152,6 +152,7 @@ func (this *RoleBT) DailyReset(notify bool, oldDailyResetTimeStamp uint64) {
 				this.role.AddMail(model.GlobalMailBoliShop, serverproto.MailType_MailType_BoliSHop, addItemList, nil, "", "")
 			}
 		}
+		util.InfoF("send bolishop mail num:%v old time:%v curtime:%v", diff, oldDailyResetTimeStamp, curTime)
 	}
 
 	//百元大礼包

+ 3 - 1
RO_Server_Trunk-branch_0.1.39/roserver/game/model/role_mail.go

@@ -238,6 +238,8 @@ func (this *RoleMail) setMailReward(mail *serverproto.MailContent) {
 	mail.State |= 2
 	delete(this.unRewardMailList, mail.Id)
 	delete(this.unreadMailList, mail.Id)
+	this.saveMailSet.Add(mail.Id)
+	this.SetDirty(true)
 }
 func (this *RoleMail) addDelMail(mailId int32) {
 	this.delMailSet = append(this.delMailSet, mailId)
@@ -363,7 +365,7 @@ func (this *RoleMail) doMailReward(mail *serverproto.MailContent, addItemList ma
 	for _, data := range mail.RewardList {
 		addItemList[data.Key] += data.Value
 	}
-	this.setMailRead(mail)
+	//this.setMailRead(mail)
 	this.setMailReward(mail)
 	return serverproto.ErrorCode_ERROR_OK
 }

+ 1 - 0
RO_Server_Trunk-branch_0.1.39/roserver/game/model/role_rune.go

@@ -1518,6 +1518,7 @@ func (this *RoleRune) ResetCreditRechargeShop(notify bool) {
 			}
 		}
 		this.runeBase.PrivilegeData.RewardTime = 0
+		this.runeBase.PrivilegeData.ProcessTime = util.GetTimeMilliseconds()
 	}
 
 	if notify {

+ 1 - 1
RO_Server_Trunk-branch_0.1.39/roserver/game/msg/role_msg.go

@@ -1457,7 +1457,7 @@ func init() {
 	//飞艇排行奖励 from cross
 	serverproto.Handle_GAME_SSCrossYuanHangTrialRankUpdateAck = model.HandleBackendMessage(func(ev rocommon.ProcEvent, cliId model.ClientID) {
 		msg := ev.Msg().(*serverproto.SSCrossYuanHangTrialRankUpdateAck)
-		//util.DebugF("receive SSArenaRankUpdateAck msg=%v", msg)
+		util.InfoF("receive SSArenaRankUpdateAck msg=%v", msg)
 
 		if msg.Error == int32(serverproto.ErrorCode_ERROR_OK) {
 			for _, data := range msg.RewardPlayerList {

+ 2 - 0
RO_Server_Trunk-branch_0.1.39/roserver/serverproto/config_csv.go

@@ -286,6 +286,7 @@ func configNameListInit() {
 	CFGNameList["WishCfg"] = WishCfgLoad
 	CFGNameList["WorldBossCfg"] = WorldBossCfgLoad
 	CFGNameList["WorldBossChangePlayCfg"] = WorldBossChangePlayCfgLoad
+	CFGNameList["YuanHangTrialRankCfg"] = YuanHangTrialRankCfgLoad
 }
 
 var XmlFileList = []string{
@@ -463,6 +464,7 @@ func ConfigInit(path string) {
 	WishCfgLoad(path)
 	WorldBossCfgLoad(path)
 	WorldBossChangePlayCfgLoad(path)
+	YuanHangTrialRankCfgLoad(path)
 }
 
 var ActiveCodeCfgLoader map[int32]*ActiveCodeCfg