game_sync/model/gameparam.go

245 lines
10 KiB
Go
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package model
import (
"encoding/json"
"os"
"github.com/globalsign/mgo"
"mongo.games.com/goserver/core/logger"
)
const TimeFormat = "2006-01-02 15:04:05"
type GameParam struct {
Observers []func()
NewPlayerCoin int32 //新建角色初始金豆数量
VerifyClientVersion bool //验证客户端版本信息
UseEtcd bool //是否使用etcd
SrvMaintain bool //服务器维护切换
HundredScenePreCreate bool //百人场预创建
GuestDefaultName string //游客默认昵称
SpreadAccountQPT int32 //流水上报 条数/每次
FakeVerifyCode string //假的验证码
MorePlayerLimit int //moreplayerdata单次最大查询用户量
SamePlaceLimit int32 //和同一个人游戏的局数限制
RobotInviteInitInterval int64 //机器人邀请的初始间隔时间(s)
RobotInviteIntervalMax int64 //机器人邀请的最大间隔时间(s)
SceneMaxIdle int64 //空房间最大空闲时间(超过指定时间自动销毁)(s)
LoginStateCacheSec int32 //登录态数据缓存时间
KickoutDefaultFreezeMinute int64 //踢下线默认封号几分钟
GameConfigGroupUseRobot bool //游戏分组使用机器人
SameIpNoLimit bool //同ip不做限制
PreLoadRobotCount int //预加载机器人数量
QMOptimization bool //全民推广流水优化
EnterAfterStartSwitch bool //中途加入开关
MongoDebug bool //mongodb调试开关
WhiteHttpAddr []string //白名单
RbAutoBalance bool
RbAutoBalanceRate float64
RbAutoBalanceCoin int64
ThirdPltTransferInterval int32 //查询第三方平台向系统能否转账时间间隔,单位秒
ThirdPltTransferMaxTry int32 //查询第三方平台向系统能否转账,最大尝试次数。默认是1次
ThirdPltReqTimeout int32 //三方平台接口请求超时时间设置,默认是30s
IosStablePrizeMinRecharge int32 //IOS稳定版最低充值需求
IosStableInstallPrize int32 //IOS稳定版安装奖励
ValidDeviceInfo bool //是否验证设备信息
InvalidRobotAccRate int //每次更换过期机器人账号的比例,百分比
InvalidRobotDay int //机器人过期的天数
CreatePrivateSceneCnt int //每人可以创建私有房间数量
BacklogGameHorseRaceLamp int //游戏内公告储备多少条,超出丢弃
IsRobFightTest bool //是否开启机器人自己对战功能
PlayerWatchNum int32 //百人游戏允许围观的局数
NotifyPlayerWatchNum int32 //百人游戏围观多少局的时候开始提示
CgAddr string //后台cg工程地址
ReplayDataUseJson bool //回放数据使用json格式
MaxAudienceNum int //最大观战人数
IsFindRoomByGroup bool //查询房间列表时是否使用互通查询,默认是不使用
NoOpTimes int32 //对战场允许托管的局数
ClosePreCreateRoom bool //关闭予创建房间
CloseQMThr bool //关闭全民三方流水计算
ErrResetMongo bool //发生主从问题,是否重置连接
InvitePromoterBind bool //绑定全民判定是否推广员
CSURL string //客户端域名
InitGameHash []string //初始哈希
AtomGameHash []string //原子哈希
MatchSeasonRankMaxNum int //在榜最大人数
CloseNoviceGame []int // 关闭部分新手补偿调控游戏id
CloseNovice bool // 关闭全部游戏新手补偿调控
RankSeasonMaxNum int // 排位赛排行榜最大人数
RankPlayerCoinMaxNum int // 金币榜最大人数
CloseRankListRobot bool // 关闭排行榜机器人数据
RankTimeout int // 排行榜刷新时间,秒
AgoraAddress string // 客户端语音api服务地址
InviteUrl string // 邀请活动,玩家分享页面地址
WinCoinUpdateTime int // 收入榜每日几点更新
RankWinCoinMaxNum int // 收入榜最大人数
RankInviteMaxNum int32 // 邀请排行榜最大人数
TestActSwitch bool // 开启所有活动开关
RankPlayerLevelMaxNum int //等级榜最大人数
CloseChannelSwitch bool //关闭渠道开关功能
BackendTimeLocal int //后台时区
GameStaticsFightVersion int // 对战场统计数据版本
TestRankMatchAward bool // 测试段位奖励领取通知,直接改玩家排位积分使玩家获得奖励
RankPlayerPermitMaxNum int32 // 赛季通行证积分排行榜最大人数
PermitInitScore int64 // 赛季通行证初始积分
GuideStepMaxNum int32 // 新手引导步骤最大值
GuideTs int64 // 新手引导时间戳,小于这个时间的玩家不显示新手引导
CustomAwardUpdateTime int // 竞技馆奖励更新时间,单位秒
CustomAwardMinAddTime int // 竞技馆假奖励方法周期,单位秒
CustomAwardMaxAddTime int // 竞技馆假奖励方法周期,单位秒
AdminPassword string // 管理员密码
UseAdminPassword bool // 是否使用管理员密码
CloseCustomRoomCreate bool // 关闭自定义房间创建
ClientVersion int32 // 客户端版本号
ClientVersionChannel []string // 客户端版本号包渠道
SwapShopUrl string // 交换商城地址
}
var GameParamPath = "../data/gameparam.json"
var GameParamData = &GameParam{}
func InitGameParam() {
buf, err := os.ReadFile(GameParamPath)
if err != nil {
logger.Logger.Error("InitGameParam os.ReadFile error ->", err)
}
err = json.Unmarshal(buf, GameParamData)
if err != nil {
logger.Logger.Error("InitGameParam json.Unmarshal error ->", err)
}
if GameParamData.SpreadAccountQPT == 0 {
GameParamData.SpreadAccountQPT = 100
}
if GameParamData.MorePlayerLimit == 0 {
GameParamData.MorePlayerLimit = 50
}
if GameParamData.SamePlaceLimit > 10 {
GameParamData.SamePlaceLimit = 10
}
if GameParamData.RobotInviteInitInterval == 0 {
GameParamData.RobotInviteInitInterval = 2
}
if GameParamData.RobotInviteIntervalMax == 0 {
GameParamData.RobotInviteIntervalMax = 10
}
if GameParamData.SceneMaxIdle == 0 {
GameParamData.SceneMaxIdle = 3600
}
if GameParamData.LoginStateCacheSec == 0 {
GameParamData.LoginStateCacheSec = 300
}
if GameParamData.KickoutDefaultFreezeMinute == 0 {
GameParamData.KickoutDefaultFreezeMinute = 5
}
mgo.SetDebug(GameParamData.MongoDebug)
if GameParamData.RbAutoBalance {
if GameParamData.RbAutoBalanceRate == 0 {
GameParamData.RbAutoBalanceRate = 2
}
if GameParamData.RbAutoBalanceCoin == 0 {
GameParamData.RbAutoBalanceCoin = 100000
}
}
if GameParamData.ThirdPltTransferInterval == 0 {
GameParamData.ThirdPltTransferInterval = 3
}
if GameParamData.ThirdPltTransferMaxTry == 0 {
GameParamData.ThirdPltTransferMaxTry = 1
}
if GameParamData.ThirdPltReqTimeout == 0 {
GameParamData.ThirdPltReqTimeout = 30
}
if GameParamData.IosStablePrizeMinRecharge == 0 {
GameParamData.IosStablePrizeMinRecharge = 5000
}
if GameParamData.IosStableInstallPrize == 0 {
GameParamData.IosStableInstallPrize = 100
}
if GameParamData.InvalidRobotDay == 0 {
GameParamData.InvalidRobotDay = 90
}
if GameParamData.CreatePrivateSceneCnt == 0 {
GameParamData.CreatePrivateSceneCnt = 20
}
if GameParamData.PlayerWatchNum <= 2 {
GameParamData.PlayerWatchNum = 20
}
if GameParamData.NotifyPlayerWatchNum <= 2 {
GameParamData.NotifyPlayerWatchNum = 17
}
if GameParamData.NotifyPlayerWatchNum >= GameParamData.PlayerWatchNum {
GameParamData.NotifyPlayerWatchNum = GameParamData.PlayerWatchNum - 3
}
if GameParamData.NoOpTimes <= 2 {
GameParamData.NoOpTimes = 2
}
if GameParamData.BacklogGameHorseRaceLamp == 0 {
GameParamData.BacklogGameHorseRaceLamp = 50
}
if GameParamData.MaxAudienceNum == 0 {
GameParamData.MaxAudienceNum = 20
}
for _, v := range GameParamData.Observers {
v()
}
if len(GameParamData.InitGameHash) == 0 {
GameParamData.InitGameHash = []string{"ff6c5b1daa1068897377f7a64a762eafda4d225f25bf8e3bb476a7c4f2d10468"}
}
if len(GameParamData.AtomGameHash) == 0 {
GameParamData.AtomGameHash = []string{`0ead8d98e67a7c9197a6bb0e664bb84adbeb25e4e0db63d2158e48b98a50534d`}
}
if GameParamData.MatchSeasonRankMaxNum == 0 {
GameParamData.MatchSeasonRankMaxNum = 50
}
if GameParamData.RankSeasonMaxNum == 0 {
GameParamData.RankSeasonMaxNum = 100
}
if GameParamData.RankPlayerCoinMaxNum == 0 {
GameParamData.RankPlayerCoinMaxNum = 100
}
if GameParamData.RankTimeout == 0 {
GameParamData.RankTimeout = 600
}
if GameParamData.RankWinCoinMaxNum == 0 {
GameParamData.RankWinCoinMaxNum = 100
}
if GameParamData.RankInviteMaxNum == 0 {
GameParamData.RankInviteMaxNum = 50
}
if GameParamData.WinCoinUpdateTime == 0 {
GameParamData.WinCoinUpdateTime = 21
}
if GameParamData.RankPlayerLevelMaxNum == 0 {
GameParamData.RankPlayerLevelMaxNum = 100
}
if GameParamData.BackendTimeLocal == 0 {
GameParamData.BackendTimeLocal = 8
}
if GameParamData.RankPlayerPermitMaxNum == 0 {
GameParamData.RankPlayerPermitMaxNum = 20
}
if GameParamData.GuideStepMaxNum == 0 {
GameParamData.GuideStepMaxNum = 4
}
if GameParamData.GuideTs == 0 {
GameParamData.GuideTs = 1724623200
}
if GameParamData.CustomAwardUpdateTime == 0 {
GameParamData.CustomAwardUpdateTime = 60
}
if GameParamData.CustomAwardMinAddTime == 0 {
GameParamData.CustomAwardMinAddTime = 20 * 60
}
if GameParamData.CustomAwardMaxAddTime == 0 {
GameParamData.CustomAwardMaxAddTime = 30 * 60
}
if GameParamData.AdminPassword == "" {
GameParamData.AdminPassword = "fjslowopcserg"
}
if GameParamData.SwapShopUrl == "" {
GameParamData.SwapShopUrl = "https://user.hinasakimiu.com/login"
}
}