| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985 |
- package model
- import (
- "rocommon/util"
- "roserver/serverproto"
- "strings"
- )
- var GlobalAttrPetNotInheritHeroList []serverproto.Attr //宠物不继承给玩家的属性列表
- var ChatWorldRoleLevel int32 = 0
- var ChatWorldMapLevel int32 = 0
- var ChatWorldTime uint64 = 0
- var ChatWorldTotalRecharge float32 = 30 //发言累计充值
- var GlobalRoleOriginalAttrPoint int32 = 0
- var GlobalDaoChangChallengeCount int32 = 0
- var GlobalDaoChangByCount int32 = 0
- var GlobalDaoChangRewardCount int32 = 0
- var GlobalDaoChangRankMinLevel int32 = 0
- var GlobalArenaByCountCost = map[int32]int32{}
- var GlobalMailIdArenaTopReward int32 = 0
- var GlobalMailIdArenaScoreLevelReward int32 = 0
- var GlobalMailIdBossOwnerReward int32 = 0
- var GlobalMailIdBossOtherReward int32 = 0
- var GlobalMailIdExpeditionReward int32 = 4
- var GlobalMailIdActivitiesReward int32 = 5
- var GlobalMailIdActivitiesCurRechargeReward int32 = 28
- var GlobalMailIdInvitationDelMember int32 = 6
- var GlobalMailIdVipLevelUp int32 = 7
- var GlobalMailIdPayReward int32 = 8
- var GlobalMailRuneExplore int32 = 22
- var GlobalMailBoliShop int32 = 33
- var GlobalMailSpecialPrivilegeCard int32 = 34
- var GlobalRuneGiftGoldShopResetVersion int32 = 0
- //var GlobalMailIdMormalMonthCard int32 = 9
- //var GlobalMailIdVipMonthCard int32 = 10
- var GlobalSystemMsgItemList = map[int32]struct{}{} //获得稀有道具播报系统公告
- var GlobalSocialSubNumLimit int32 = 99
- var GlobalSocialFansNumLimit int32 = 999
- var GlobalSocialBlackNumLimit int32 = 99
- var GlobalFemaleHead int32
- var GlobalMaleHead int32
- var GlobalWorldBossChallengeCount int32 = 0
- var GlobalIncomeTime int32 = 0
- var GlobalIncomeLimitTime int32 = 0
- // evil
- var GlobalEvilRefreshConsume = map[int32]int32{}
- var GlobalEviChallengeCost int32 = 0
- var GlobalEvilExpLimit int32 = 0
- // CreateItemList
- var GlobalCreateItemList = map[int32]int32{}
- var GlobalCreateRoleMailReward = map[int32]int32{}
- // SystemMessageType
- var GlobalSystemMessageTypeArenaWinStreak = 0
- // competition
- var GlobalCompetitionSectionFactor float32 = 0.75
- var GlobalCompetitionSectionTotal int64 = 750
- var GlobalCompetitionScoreItem = map[int32]*serverproto.KeyValueType{} //通缉令兑换积分
- var GlobalCompetitionScoreItemFactor []*serverproto.KeyValueTypeList //通缉令兑换积分权重
- // guild
- var GlobalGuildApplyListMax int32 = 0
- var GlobalGuildVicePreNum int32 = 0
- var GlobalGuildJoinLevel int32 = 0
- var GlobalGuildRoleApplyMax int32 = 0
- var GlobalGuildLogMaxCount int32 = 0
- var GlobalGuildBuildBadge int32 = 0
- var GlobalGuildMinNameStringLen int32 = 0
- var GlobalGuildMaxNameStringLen int32 = 0
- var GlobalGuildMinSearchStringLen int32 = 0
- var GlobalGuildMaxSearchStringLen int32 = 0
- var GlobalGuildHeadFrame int32 = 0
- // 公会战
- var GlobalGuildBattleRewardTime uint64 = 5 * 1000 //5s 公会战收益时间间隔(秒)
- var GlobalGuildBattleChallengeNum int32 = 10 //公会战单场挑战次数
- var GlobalGuildBattleBuyChallengeCost uint64 = 0
- var GlobalGuildBattleRebornCost uint64 = 0
- var GlobalGuildBattleFightPower int32 = 0
- var GlobalGuildBattleWinMaxScore int32 = 0
- var GlobalGuildBattleRebornCdTime uint64 = 60 * 1000 //虚弱时间
- // 宠物技能升级消耗(领悟消耗)
- var GlobalPetSkillUpConsume int32 = 0
- var GlobalPetAdvanceLimit []int32
- var GlobalPetDecomposeItemList = map[int32]*serverproto.KeyValueType{} //分解获得的道具
- var GlobalPetAssistCD int32 = 0 //援助设置CD时间
- var GlobalNormalPetDecompose int32 = 0
- var GlobalPet1LevelDecompose []*serverproto.KeyValueType
- var GlobalVipPetDecompose int32 = 0
- var GlobalPetDecomposeNormal = map[uint32]*serverproto.KeyValueType{} //
- var GlobalPetDecomposeMin = map[uint32]*serverproto.KeyValueType{} //
- var GlobalPetDecomposeMvp = map[uint32]*serverproto.KeyValueType{} //
- var GlobalPetQiyueUnlockCost []serverproto.KeyValueType //宠物觉醒槽位解析消耗
- var GlobalPetQiyueMaxSlotNum = 4 //宠物觉醒最大可解锁槽位
- var GlobalPetQiyueNatureRate int32 = 1000 //宠物契约相同属性额外继承属性比例
- // 远征之门
- var GlobalExpeditionGuildCallForHelpCDTime uint64 = 0
- var GlobalExpeditionGuildHelpNum int32 = 0
- var GlobalExpeditionGuildBeHelpedNum int32 = 0
- var GlobalExpeditionChallengeNum int32 = 0
- var GlobalExpeditionHelpRewardList = map[int32]int32{}
- var GlobalExpeditionResetRankScore int32 = 0
- // invitation
- var GlobalInvitationClickNum int32 = 10
- var GlobalInvitationClickMasterRes int32 = 10
- var GlobalInvitationClickMemberRes int32 = 10
- var GlobalQuickBattleTimes int32 = 0
- var GlobalRMBToVipExpRMB int32 = 0
- var GlobalRMBToVipExpVip int32 = 0
- // 冲榜 爬塔, 道场
- var GlobalMailIdRushTower int32 = 11
- var GlobalMailIdRushArena int32 = 12
- var GlobalRushTowerFightCount int32 = 0
- var GlobalRushDaoFightCount int32 = 0
- var GlobalMailRushPetBaseReward int32 = 25
- var GlobalMailRushPetRankReward int32 = 24
- var GlobalMailRushSkillBaseReward int32 = 30
- var GlobalMailRushSkillRankReward int32 = 29
- var GlobalMailIdRushMap int32 = 15
- var GlobalMailRushMapBaseReward int32 = 16
- // 冲榜邮件Rank奖励ID
- var GlobalRushTowerRewardList []*serverproto.KeyValueType //爬塔冲榜奖励
- var GlobalRushArenaRewardList []*serverproto.KeyValueType //英灵殿冲榜奖励
- // 冲榜邮件战斗次数奖励ID
- var GlobalMailRushTowerBaseReward int32 = 13
- var GlobalMailRushDaoBaseReward int32 = 14
- var GloablMailDivineReward int32 = 27
- var GloablMailIdolFansReward int32 = 32
- // 公会战会长奖励
- var GlobalMailGuildBattlePreReward int32 = 18
- // 公会战成员奖励
- var GlobalMailGuildBattleMemReward int32 = 19
- // 积分奖励
- var GlobalMailGuildBattleScoreReward int32 = 20
- // 击杀奖励
- var GlobalMailGuildBattleKillerReward int32 = 21
- // 公会魔王
- var GlobalMailGuildDemonReward int32 = 31
- // 14天连续登录补领需要金币
- var GlobalActivities14DaysLogin int32 = 0
- // 百人道场
- var GlobalDaoChang100RewardInterval uint64 = 5 * 60 * 1000
- var GlobalDaoChang100BaseRewardList = map[int32]int32{}
- var GlobalDaoChang100ChallengeCount int32 = 3
- var GlobalDaoChang100TotalRewardTime uint64 = 48 * 60 * 60 * 1000
- var GlobalDaoChangBuyCostList []*serverproto.KeyValueType
- var GlobalDaoChangUnlockMapLevelId int32 = 0
- var GlobalDaoChang100BattleCheck []float64 //百人道场最低战力校验配置参数(A1;A2;A3)
- var GlobalArenaBattleCheck []float64 //英灵殿最低战力校验配置参数(A1;A2;A3)
- // 问卷调查奖励
- var GlobalQuestionRewardList = map[int32]int32{}
- var GlobalKeepSakeCrystalToMaterial = map[int32]int32{}
- var GlobalKeepSakeMaterialToCrystal = map[int32]int32{}
- // 职业更换
- var GlobalReplaceJobMainHeroLevel = 30 //主角登记
- var GlobalReplaceJobHeroLevel = 30 //伙伴等级
- var GlobalReplaceJobConsumeList []*serverproto.KeyValueType //更换职业消耗
- // 作弊处理
- var GlobalCheatBanTime = map[int32]uint64{}
- var GlobalMaxCheatBanTime uint64 = 0
- var GlobalMaxCheatBanNum int32 = 0
- var GlobalCheatPersonalChat ConvertCheatMsgData
- var GlobalCheatPublicChat ConvertCheatMsgData
- var GlobalGuildKickMemberCount int32 = 0
- // 玩家累计充值档位
- var GlobalTotalRechargeList []*serverproto.KeyValueType
- var GlobalExchangeGuildPresident int32 = 7
- var GlobalCashShopReward []*serverproto.KeyValueType
- var GlobalCashShopCostId int32 = 40
- var GlobalCashShopCostCount int32 = 100
- var GlobalPetSkillUpCost int32 = 0
- var GlobalPetLevelScore int32 = 0
- var GlobalPetSkillScore int32 = 0
- var GlobalPetQualityScore []*serverproto.KeyValueType
- // 远航试炼
- var GlobalCrossYuanHangTrialMaxNum int32 = 0 //远航每日出发次数上限
- var GlobalCrossYuanHangTrialRewardNum int32 = 0 //远航打劫获得奖励有效次数(每日重置)
- var GlobalCrossYuanHangTrialViewMaxNum int32 = 0 //远航单次同屏所需显示人数上限
- var GlobalCrossYuanHangTrialRankListMaxNum int32 = 0 //远航抢夺排行榜记录数量上限
- var GlobalCrossYuanHangTrialOpenTimeBeginTime string
- var GlobalCrossYuanHangTrialOpenTimeEndTime string
- var GlobalCrossTopTowerOpenTimeBeginTime string
- var GlobalCrossTopTowerOpenTimeEndTime string
- var GlobalCrossMaxFightPowerRankVal int32
- var GlobalCrossMaxFightPowerFightInfoUpdateTime int32
- var GlobalGuildDemonBroadCastLevel int32 = 0
- // 技能装备(神器)重铸
- var GlobalSkillEquipReforgeMinStart int32
- var GlobalSkillEquipReforgePoolList []int32
- var GlobalSkillEquipShiftCost = map[int32]*serverproto.KeyValueType{}
- var GlobalCruiseMax int32 = 0
- var GlobalCompetitonDayRewardLevel int32 = 0
- var GlobalWishSlotMaxCnt int32 = 0
- var GlobalWishSlotCost = serverproto.KeyValueType{}
- // bt服务器常量处理
- // 充值钱包
- var GlobalCreditRechargeFactor float32 = 0 // 充值钱包 免费充值额度神域经验比例
- var GlobalCreditRechargeInitMax int32 = 0 // 充值钱包 初始化最大额度
- var GlobalRoCoinFactor float32 = 60 // rmb获得RO币比例系数
- var GlobalFastBattleTime []serverproto.KeyValueType // 特殊处理使用道具添加战斗倍数时间[道具id:持续时间]
- var GlobalClimbingTowerDayReward []serverproto.KeyValueType // 试炼馈赠(层数:免费充值额度数量)
- var GlobalRoCoinToExp = 1.0 // RO币兑换波利商城经验比例
- var GlobalWorldBossChallengeCost []serverproto.KeyValueType
- type IdolDayReward struct {
- Id int32
- StartTime string
- EndTime string
- ItemId int32
- ItemCount int32
- }
- var GlobalCompetitionIdolDayReward = map[int32]*IdolDayReward{}
- var GlobalCardLevelExchange = map[int32]*serverproto.KeyValueType{} //
- func ConvertOldRedisGlobalCfg() {
- convertGlobalCfg()
- }
- func convertGlobalCfg() {
- //宠物不继承给玩家的属性列表
- tmpAttrStrList := strings.Split(getGlobalCfgValS(230), ";")
- for idx := 0; idx < len(tmpAttrStrList); idx++ {
- tmpAttrId, _ := Str2Num(tmpAttrStrList[idx])
- if tmpAttrId > 0 {
- GlobalAttrPetNotInheritHeroList = append(GlobalAttrPetNotInheritHeroList, serverproto.Attr(tmpAttrId))
- }
- }
- //玩家发言条件
- if cfgData, ok := serverproto.GlobalCfgLoader[int32(serverproto.GlobalType_Global_Chat_World_Role_Level)]; ok {
- strList := strings.Split(cfgData.SVal, ";")
- for idx := range strList {
- key, value := Str2Res(strList[idx])
- if key == int32(serverproto.TaskType_Base_Level) {
- ChatWorldRoleLevel = value
- } else if key == int32(serverproto.TaskType_Level_Battle_Count) {
- ChatWorldMapLevel = value
- } else if key == int32(serverproto.TaskType_Recharge_Num_Accu) {
- ChatWorldTotalRecharge = float32(value)
- }
- }
- }
- //玩家聊天发言间隔时长(S)
- if cfgData, ok := serverproto.GlobalCfgLoader[int32(serverproto.GlobalType_Global_Chat_World_Time)]; ok {
- ChatWorldTime = uint64(cfgData.IVal * 1000)
- }
- //初始化可添加的属性点
- GlobalRoleOriginalAttrPoint = getGlobalCfgValI(serverproto.GlobalType_Global_Role_Original_AddAttrPoint)
- //道场挑战次数
- GlobalDaoChangChallengeCount = getGlobalCfgValI(serverproto.GlobalType_Global_Arena_DaoChang_Challenge)
- //英灵殿可购买挑战次数
- GlobalDaoChangByCount = getGlobalCfgValI(serverproto.GlobalType_Global_Arena_DaoChang_Buy_Count)
- //道场胜利奖励次数
- GlobalDaoChangRewardCount = getGlobalCfgValI(serverproto.GlobalType_Global_Arena_DaoChang_Reward_count)
- //英灵殿匹配对象最低等级
- GlobalDaoChangRankMinLevel = getGlobalCfgValI(serverproto.GlobalType_Global_Arena_DaoChang_RankMin_Level)
- //英灵殿购买挑战次数消耗
- if cfgData, ok := serverproto.GlobalCfgLoader[int32(serverproto.GlobalType_Global_Arena_DaoChang_Buy_Cost)]; ok {
- costStrList := strings.Split(cfgData.SVal, ";")
- for idx := range costStrList {
- key, value := Str2Res(costStrList[idx])
- if key > 0 && value > 0 {
- GlobalArenaByCountCost[key] += value
- }
- }
- }
- //英灵殿排名奖励邮件ID
- GlobalMailIdArenaTopReward = getGlobalCfgValI(serverproto.GlobalType_Global_MailId_Arena_Top_Reward)
- //英灵殿段位奖励邮件ID
- GlobalMailIdArenaScoreLevelReward = getGlobalCfgValI(serverproto.GlobalType_Global_MailId_Arena_ScoreLevel_Reward)
- //枯树枝召唤奖励邮件ID
- GlobalMailIdBossOwnerReward = getGlobalCfgValI(serverproto.GlobalType_Global_MailId_Boss_Owner_Reward)
- //枯树枝参与奖励邮件ID
- GlobalMailIdBossOtherReward = getGlobalCfgValI(serverproto.GlobalType_Global_MailId_Boss_Other_Reward)
- //获得稀有道具播报系统公告
- tmpGlobalSystemMsgItemList := strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_SystemMsg_Item), ";")
- for idx := 0; idx < len(tmpGlobalSystemMsgItemList); idx++ {
- msgItemId, _ := Str2Num(tmpGlobalSystemMsgItemList[idx])
- if msgItemId > 0 {
- GlobalSystemMsgItemList[int32(msgItemId)] = struct{}{}
- }
- }
- //关注列表人数上限
- GlobalSocialSubNumLimit = getGlobalCfgValI(serverproto.GlobalType_Global_Social_SubNum_Limit)
- if GlobalSocialSubNumLimit <= 0 {
- GlobalSocialSubNumLimit = 99
- }
- //粉丝列表人数上限
- GlobalSocialFansNumLimit = getGlobalCfgValI(serverproto.GlobalType_Global_Social_FansNum_Limit)
- if GlobalSocialFansNumLimit <= 0 {
- GlobalSocialFansNumLimit = 999
- }
- //屏蔽列表人数上限
- GlobalSocialBlackNumLimit = getGlobalCfgValI(serverproto.GlobalType_Global_Social_BlackNum_Limit)
- if GlobalSocialBlackNumLimit <= 0 {
- GlobalSocialBlackNumLimit = 99
- }
- //init head
- if cfgData, ok := serverproto.GlobalCfgLoader[int32(serverproto.GlobalType_Global_Init_Head_Portrait)]; ok {
- strList := strings.Split(cfgData.SVal, ";")
- if len(strList) >= 2 {
- value, _ := Str2Num(strList[0])
- GlobalFemaleHead = int32(value)
- value2, _ := Str2Num(strList[1])
- GlobalMaleHead = int32(value2)
- } else {
- util.InfoF("load head failed %v", len(strList))
- }
- }
- //world boss challenge count
- GlobalWorldBossChallengeCount = getGlobalCfgValI(serverproto.GlobalType_Global_World_Boss_ChallengeNum_Limit)
- //income
- GlobalIncomeTime = getGlobalCfgValI(serverproto.GlobalType_Global_Battle_Income_Time)
- GlobalIncomeLimitTime = getGlobalCfgValI(serverproto.GlobalType_Global_Battle_Limit_Time)
- //evil
- GlobalEvilRefreshConsumeStrList := strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_Evil_Consume), ";")
- for idx := 0; idx < len(GlobalEvilRefreshConsumeStrList); idx++ {
- key, val := Str2Res(GlobalEvilRefreshConsumeStrList[idx])
- if key > 0 && val > 0 {
- GlobalEvilRefreshConsume[key] = val
- }
- }
- GlobalEviChallengeCost = getGlobalCfgValI(serverproto.GlobalType_Global_Evil_Challenge_Cost)
- GlobalEvilExpLimit = getGlobalCfgValI(serverproto.GlobalType_Global_Evil_Exp_Limit)
- //CreateItemList
- GlobalCreateItemListStr := strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_Create_Item_List), ";")
- for idx := 0; idx < len(GlobalCreateItemListStr); idx++ {
- key, val := Str2Res(GlobalCreateItemListStr[idx])
- if key > 0 && val > 0 {
- GlobalCreateItemList[key] = val
- }
- }
- GlobalCreateRoleMailStr := strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_Create_Role_Reward), ";")
- for idx := 0; idx < len(GlobalCreateRoleMailStr); idx++ {
- key, val := Str2Res(GlobalCreateRoleMailStr[idx])
- if key > 0 && val > 0 {
- GlobalCreateRoleMailReward[key] = val
- }
- }
- //GlobalSystemMessageTypeArenaWinStreak
- sysStr := getGlobalCfgValS(serverproto.GlobalType_Global_Competition_Streak_Win)
- GlobalSystemMessageTypeArenaWinStreak, _ = Str2Num(sysStr)
- //Competition
- //赛季公式计算参数
- competitionSectionStr := getGlobalCfgValS(serverproto.GlobalType_Global_Competition_Factor)
- factor, total := Str2Res(competitionSectionStr)
- if factor > 0 {
- GlobalCompetitionSectionFactor = float32(factor) / 10000
- }
- if total > 0 {
- GlobalCompetitionSectionTotal = int64(total)
- }
- //赛季获取积分道具
- var tmpFactor int32 = 0
- var tmpLeftScore int32 = 0
- tmpStrList := strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_Competition_ScoreItem), ";")
- for idx := 0; idx < len(tmpStrList); idx++ {
- key, v1, v2 := Str2Res_3(tmpStrList[idx])
- if key > 0 && v1 > 0 && v2 > 0 {
- tmpLeftScore = v1 //初始积分
- GlobalCompetitionScoreItem[key] = &serverproto.KeyValueType{Key: v1, Value: v2}
- } else {
- key, v1 = Str2Res(tmpStrList[idx])
- if key > 0 && v1 > 0 {
- GlobalCompetitionScoreItem[key] = &serverproto.KeyValueType{Key: v1, Value: 0}
- }
- }
- }
- GlobalCompetitionScoreItemFactor = []*serverproto.KeyValueTypeList{}
- tmpStrList = strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_Competition_ScoreItem_Factor), ";")
- for idx := 0; idx < len(tmpStrList); idx++ {
- v1, v2 := Str2Res(tmpStrList[idx])
- if v1 > 0 && v2 > 0 {
- tmpFactor += v2
- GlobalCompetitionScoreItemFactor = append(GlobalCompetitionScoreItemFactor, &serverproto.KeyValueTypeList{
- Key: tmpFactor, //权重
- ValueList: []int32{tmpLeftScore, v1},
- })
- tmpLeftScore = v1
- }
- }
- tmpLeftScore = 0
- GlobalGuildApplyListMax = getGlobalCfgValI(serverproto.GlobalType_Global_Guild_Apply_List_Max)
- GlobalGuildVicePreNum = getGlobalCfgValI(serverproto.GlobalType_Global_Guild_VicePre_Num)
- GlobalGuildJoinLevel = getGlobalCfgValI(serverproto.GlobalType_Global_Guild_Join_Level)
- GlobalGuildRoleApplyMax = getGlobalCfgValI(serverproto.GlobalType_Global_Guild_Role_Apply_Max)
- GlobalGuildLogMaxCount = getGlobalCfgValI(serverproto.GlobalType_Global_Guild_Log_Max_Count)
- GlobalGuildBuildBadge = getGlobalCfgValI(serverproto.GlobalType_Global_Guild_OnBuild_Badge)
- //公会名字
- guildNameStr := getGlobalCfgValS(serverproto.GlobalType_Global_Guild_Name_String_Len)
- guildNameMin, guildNameMax := Str2Res(guildNameStr)
- if guildNameMin > 0 {
- GlobalGuildMinNameStringLen = guildNameMin
- }
- if guildNameMax > 0 {
- GlobalGuildMaxNameStringLen = guildNameMax
- }
- guildSearchStr := getGlobalCfgValS(serverproto.GlobalType_Global_Guild_Search_String_Len)
- guildSearchMin, guildSearchMax := Str2Res(guildSearchStr)
- if guildSearchMin > 0 {
- GlobalGuildMinSearchStringLen = guildSearchMin
- }
- if guildSearchMax > 0 {
- GlobalGuildMaxSearchStringLen = guildSearchMax
- }
- //petskill
- GlobalPetSkillUpConsume = getGlobalCfgValI(serverproto.GlobalType_Global_Pet_SkillUp_Consume)
- GlobalPetAdvanceLimit = []int32{}
- GlobalPetAdvanceLimitStrList := strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_Pet_Advance_Limit), ";")
- for idx := 0; idx < len(GlobalPetAdvanceLimitStrList); idx++ {
- val, _ := Str2Num(GlobalPetAdvanceLimitStrList[idx])
- if val > 0 {
- GlobalPetAdvanceLimit = append(GlobalPetAdvanceLimit, int32(val))
- }
- }
- //宠物分解
- GlobalPetDecomposeMultiStr := strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_Decompose_Pet_Stone_Noraml), ";")
- for idx := 0; idx < len(GlobalPetDecomposeMultiStr); idx++ {
- level, itemId, itemNum := Str2Res_3(GlobalPetDecomposeMultiStr[idx])
- if itemNum > 0 {
- GlobalPetDecomposeNormal[uint32(level)] = &serverproto.KeyValueType{
- Key: itemId,
- Value: itemNum,
- }
- }
- }
- GlobalPetDecomposeMinStr := strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_Decompose_Pet_Stone_Min), ";")
- for idx := 0; idx < len(GlobalPetDecomposeMinStr); idx++ {
- level, itemId, itemNum := Str2Res_3(GlobalPetDecomposeMinStr[idx])
- if itemNum > 0 {
- GlobalPetDecomposeMin[uint32(level)] = &serverproto.KeyValueType{
- Key: itemId,
- Value: itemNum,
- }
- }
- }
- GlobalPetDecomposeMvpStr := strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_Decompose_Pet_Stone_Mvp), ";")
- for idx := 0; idx < len(GlobalPetDecomposeMvpStr); idx++ {
- level, itemId, itemNum := Str2Res_3(GlobalPetDecomposeMvpStr[idx])
- if itemNum > 0 {
- GlobalPetDecomposeMvp[uint32(level)] = &serverproto.KeyValueType{
- Key: itemId,
- Value: itemNum,
- }
- }
- }
- GlobalPetDecomposeItemListStr := strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_Pet_Decompose), ";")
- for idx := 0; idx < len(GlobalPetDecomposeItemListStr); idx++ {
- v1, v2, v3 := Str2Res_3(GlobalPetDecomposeItemListStr[idx])
- if v1 > 0 && v2 > 0 && v3 > 0 {
- GlobalPetDecomposeItemList[v1] = &serverproto.KeyValueType{Key: v2, Value: v3}
- }
- }
- //宠物契约
- qiyueListStr := strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_PetQiyue_Slot_Unlock_Cost), ";")
- for idx := 0; idx < len(qiyueListStr); idx++ {
- k, v := Str2Res(qiyueListStr[idx])
- if k > 0 && v > 0 {
- GlobalPetQiyueUnlockCost = append(GlobalPetQiyueUnlockCost, serverproto.KeyValueType{Key: k, Value: v})
- }
- }
- GlobalPetQiyueMaxSlotNum = len(GlobalPetQiyueUnlockCost)
- GlobalPetQiyueNatureRate = getGlobalCfgValI(serverproto.GlobalType_Global_PetQiyue_Nature_Attr)
- GlobalPetAssistCD = getGlobalCfgValI(serverproto.GlobalType_Global_Pet_Assist_CD)
- GlobalNormalPetDecompose = getGlobalCfgValI(serverproto.GlobalType_Global_Normal_Pet_Decomposed)
- GlobalVipPetDecompose = getGlobalCfgValI(serverproto.GlobalType_Global_Vip_Pet_Decomposed)
- GlobalPet1LevelDecompose = []*serverproto.KeyValueType{}
- tmpStrList = strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_Pet_1Level_Decompose_Res), ";")
- for idx := 0; idx < len(tmpStrList); idx++ {
- k, v := Str2Res(tmpStrList[idx])
- GlobalPet1LevelDecompose = append(GlobalPet1LevelDecompose,
- &serverproto.KeyValueType{Key: k, Value: v})
- }
- GlobalGuildHeadFrame = getGlobalCfgValI(serverproto.GlobalType_Global_Guild_Head_Frame)
- //expedition
- GlobalExpeditionGuildCallForHelpCDTime = uint64(getGlobalCfgValI(serverproto.GlobalType_Global_Expedition_GuildCallForHelpCDTime))
- GlobalExpeditionGuildCallForHelpCDTime *= 60 * 1000
- GlobalExpeditionGuildHelpNum = getGlobalCfgValI(serverproto.GlobalType_Global_Expedition_Help_Num)
- GlobalExpeditionGuildBeHelpedNum = getGlobalCfgValI(serverproto.GlobalType_Global_Expedition_Be_Help_Num)
- GlobalExpeditionChallengeNum = getGlobalCfgValI(serverproto.GlobalType_Global_Expedition_Challenge_Num)
- helpStr := strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_Expedition_Help_Reward), ";")
- for idx := 0; idx < len(helpStr); idx++ {
- key, val := Str2Res(helpStr[idx])
- if key > 0 && val > 0 {
- GlobalExpeditionHelpRewardList[key] += val
- }
- }
- //invitation
- GlobalInvitationClickNum = getGlobalCfgValI(serverproto.GlobalType_Global_Invitation_Click_Num)
- GlobalInvitationClickMasterRes = getGlobalCfgValI(serverproto.GlobalType_Global_Invitation_Click_Res_Master)
- GlobalInvitationClickMemberRes = getGlobalCfgValI(serverproto.GlobalType_Global_Invitation_Click_Res_Member)
- GlobalQuickBattleTimes = getGlobalCfgValI(serverproto.GlobalType_Global_Quick_Battle_Times)
- rmbToVipStr := strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_RMB_To_VipExp), ":")
- if len(rmbToVipStr) >= 2 {
- value, _ := Str2Num(rmbToVipStr[0])
- GlobalRMBToVipExpRMB = int32(value)
- value2, _ := Str2Num(rmbToVipStr[1])
- GlobalRMBToVipExpVip = int32(value2)
- }
- GlobalRushTowerFightCount = getGlobalCfgValI(serverproto.GlobalType_Global_Rush_Tower_Count_Reward)
- rushTowerStr := strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_Rush_Tower_Count_Reward), ";")
- for _, data := range rushTowerStr {
- strList := strings.Split(data, ":")
- if len(strList) >= 2 {
- key, _ := Str2Num(strList[0])
- value, _ := Str2Num(strList[1])
- GlobalRushTowerRewardList = append(GlobalRushTowerRewardList, &serverproto.KeyValueType{
- Key: int32(key),
- Value: int32(value),
- })
- }
- }
- GlobalRushDaoFightCount = getGlobalCfgValI(serverproto.GlobalType_Global_Rush_Arena_Count_Reward)
- rushArenaStr := strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_Rush_Arena_Count_Reward), ";")
- for _, data := range rushArenaStr {
- strList := strings.Split(data, ":")
- if len(strList) >= 2 {
- key, _ := Str2Num(strList[0])
- value, _ := Str2Num(strList[1])
- GlobalRushArenaRewardList = append(GlobalRushArenaRewardList, &serverproto.KeyValueType{
- Key: int32(key),
- Value: int32(value),
- })
- }
- }
- GlobalActivities14DaysLogin = getGlobalCfgValI(serverproto.GlobalType_Global_Activities_14DaysLogin)
- //百人道场
- GlobalDaoChang100RewardInterval = uint64(getGlobalCfgValI(serverproto.GlobalType_Global_DaoChang100_RewardInterval))
- GlobalDaoChang100RewardInterval = GlobalDaoChang100RewardInterval * 1000
- GlobalDaoChang100ChallengeCount = getGlobalCfgValI(serverproto.GlobalType_Global_DaoChang100_ChallengeCount)
- tmpRewardStrList := strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_DaoChang100_BaseRewardList), ";")
- for idx := 0; idx < len(tmpRewardStrList); idx++ {
- k, v := Str2Res(tmpRewardStrList[idx])
- if k > 0 && v > 0 {
- GlobalDaoChang100BaseRewardList[k] += v
- }
- }
- GlobalDaoChang100TotalRewardTime = uint64(getGlobalCfgValI(serverproto.GlobalType_Global_DaoChang100_TotalRewardTime))
- GlobalDaoChang100TotalRewardTime *= 60 * 60 * 1000
- tmpRewardStrList = strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_DaoChang100_ChallengeCountByCost), ";")
- for idx := 0; idx < len(tmpRewardStrList); idx++ {
- k, v := Str2Res(tmpRewardStrList[idx])
- if k > 0 && v > 0 {
- GlobalDaoChangBuyCostList = append(GlobalDaoChangBuyCostList, &serverproto.KeyValueType{Key: k, Value: v})
- }
- }
- //百人道场最低战力校验配置参数(A1;A2;A3)
- tmpStrList = strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_DaoChang100_Battle_Check), ";")
- for idx := 0; idx < len(tmpStrList); idx++ {
- f, err := Str2Float32(tmpStrList[idx])
- if err == nil {
- GlobalDaoChang100BattleCheck = append(GlobalDaoChang100BattleCheck, float64(f))
- }
- }
- //英灵殿最低战力校验配置参数(A1;A2;A3)
- tmpStrList = strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_Arena_Battle_Check), ";")
- for idx := 0; idx < len(tmpStrList); idx++ {
- f, err := Str2Float32(tmpStrList[idx])
- if err == nil {
- GlobalArenaBattleCheck = append(GlobalArenaBattleCheck, float64(f))
- }
- }
- //问卷礼包
- GlobalQuestionRewardList = map[int32]int32{}
- tmpRewardStrList = strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_Question_Reward), ";")
- for idx := 0; idx < len(tmpRewardStrList); idx++ {
- k, v := Str2Res(tmpRewardStrList[idx])
- if k > 0 && v > 0 {
- GlobalQuestionRewardList[k] += v
- }
- }
- tmpKeepSakeList := strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_KeepSake_Crystal_To_Material), ";")
- for _, keepSake := range tmpKeepSakeList {
- strList := strings.Split(keepSake, ":")
- if len(strList) >= 2 {
- key, _ := Str2Num(strList[0])
- value, _ := Str2Num(strList[1])
- GlobalKeepSakeCrystalToMaterial[int32(key)] += int32(value)
- }
- }
- tmpKeepSakePieceList := strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_KeepSake_Material_To_Crystal), ";")
- for _, keepSake := range tmpKeepSakePieceList {
- strList := strings.Split(keepSake, ":")
- if len(strList) >= 2 {
- key, _ := Str2Num(strList[0])
- value, _ := Str2Num(strList[1])
- GlobalKeepSakeMaterialToCrystal[int32(key)] += int32(value)
- }
- }
- //职业更换
- tmpStrList = strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_ReplaceJob_Level), ";")
- if len(tmpStrList) >= 2 {
- GlobalReplaceJobMainHeroLevel, _ = Str2Num(tmpStrList[0])
- GlobalReplaceJobHeroLevel, _ = Str2Num(tmpStrList[1])
- }
- tmpStrList = strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_ReplaceJob_Consume), ";")
- for idx := 0; idx < len(tmpStrList); idx++ {
- k, v := Str2Res(tmpStrList[idx])
- GlobalReplaceJobConsumeList = append(GlobalReplaceJobConsumeList,
- &serverproto.KeyValueType{Key: k, Value: v})
- }
- //作弊处理cheat
- tmpStrList = strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_Cheat_Ban_Time), ";")
- for idx := 0; idx < len(tmpStrList); idx++ {
- k, v := Str2Res(tmpStrList[idx])
- if k <= 0 || v <= 0 {
- continue
- }
- GlobalCheatBanTime[k] = uint64(v) * 60
- if GlobalMaxCheatBanNum < k {
- GlobalMaxCheatBanNum = k
- GlobalMaxCheatBanTime = GlobalCheatBanTime[k]
- }
- }
- tmpStrList = strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_Cheat_Chat_Personal), ";")
- if len(tmpStrList) >= 5 {
- valTime, _ := Str2Num(tmpStrList[0])
- valLevel, _ := Str2Num(tmpStrList[1])
- valNum, _ := Str2Num(tmpStrList[2])
- valContentNum, _ := Str2Num(tmpStrList[3])
- valRecharge, _ := Str2Num(tmpStrList[4])
- GlobalCheatPersonalChat.ChatDuration = uint64(valTime * 60 * 1000)
- GlobalCheatPersonalChat.Level = int32(valLevel)
- GlobalCheatPersonalChat.RechargeNum = int32(valRecharge)
- GlobalCheatPersonalChat.ParamList = append(GlobalCheatPersonalChat.ParamList, valNum, valContentNum)
- }
- tmpStrList = strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_Cheat_Chat_Public), ";")
- if len(tmpStrList) >= 5 {
- valTime, _ := Str2Num(tmpStrList[0])
- valLevel, _ := Str2Num(tmpStrList[1])
- valNum, _ := Str2Num(tmpStrList[2])
- valContentNum, _ := Str2Num(tmpStrList[3])
- valRecharge, _ := Str2Num(tmpStrList[4])
- GlobalCheatPublicChat.ChatDuration = uint64(valTime * 60 * 1000)
- GlobalCheatPublicChat.Level = int32(valLevel)
- GlobalCheatPublicChat.RechargeNum = int32(valRecharge)
- GlobalCheatPublicChat.ParamList = append(GlobalCheatPublicChat.ParamList, valNum, valContentNum)
- }
- GlobalGuildKickMemberCount = getGlobalCfgValI(serverproto.GlobalType_Global_Guild_Kick_Max_Count)
- GlobalTotalRechargeList = []*serverproto.KeyValueType{}
- tmpStrList = strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_TotalRecharge_List), ";")
- for idx := 0; idx < len(tmpStrList); idx++ {
- tmpRecharge, err := Str2Num(tmpStrList[idx])
- if err != nil {
- continue
- }
- GlobalTotalRechargeList = append(GlobalTotalRechargeList, &serverproto.KeyValueType{
- Key: int32(idx + 1),
- Value: int32(tmpRecharge),
- })
- }
- GlobalGuildBattleFightPower = getGlobalCfgValI(serverproto.GlobalType_Global_Guild_Battle_FightPower)
- GlobalGuildBattleWinMaxScore = getGlobalCfgValI(serverproto.GlobalType_Global_Guild_Battle_WinScore)
- _, rebornPrice := Str2Res(getGlobalCfgValS(serverproto.GlobalType_Global_Guild_Battle_Buy_Reborn))
- GlobalGuildBattleRebornCost = uint64(rebornPrice)
- GlobalGuildBattleRebornCdTime = uint64(getGlobalCfgValI(serverproto.GlobalType_Global_Guild_Battle_Reborn_CD)) * 1000
- _, challengePrice := Str2Res(getGlobalCfgValS(serverproto.GlobalType_Global_Guild_Battle_Buy_challenge))
- GlobalGuildBattleBuyChallengeCost = uint64(challengePrice)
- GlobalExchangeGuildPresident = getGlobalCfgValI(serverproto.GlobalType_Global_Guild_Exchange_President)
- if cfgData, ok := serverproto.GlobalCfgLoader[int32(serverproto.GlobalType_Global_Cash_Shop_Exchange_Cost)]; ok {
- strList := strings.Split(cfgData.SVal, ":")
- if len(strList) >= 2 {
- itemId, _ := Str2Num(strList[0])
- GlobalCashShopCostId = int32(itemId)
- itemCount, _ := Str2Num(strList[1])
- GlobalCashShopCostCount = int32(itemCount)
- } else {
- util.InfoF("load cash shop config failed %v", len(strList))
- }
- }
- cashShopStrList := strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_Cash_Shop_Exchange_Reward), ";")
- for idx := 0; idx < len(cashShopStrList); idx++ {
- itemId, itemCount := Str2Res(cashShopStrList[idx])
- if itemId != 0 && itemCount != 0 {
- GlobalCashShopReward = append(GlobalCashShopReward, &serverproto.KeyValueType{
- Key: int32(itemId),
- Value: int32(itemCount),
- })
- }
- }
- GlobalPetSkillUpCost = getGlobalCfgValI(serverproto.GlobalType_Global_Pet_SkillUp_Cost_Pet)
- calcPetScore, okScore := serverproto.GlobalCfgLoader[int32(serverproto.GlobalType_Global_Rush_Pet_Calc_Score)]
- if okScore {
- strList := strings.Split(calcPetScore.SVal, ";")
- if len(strList) >= 2 {
- petLevelArg, _ := Str2Num(strList[0])
- GlobalPetLevelScore = int32(petLevelArg)
- petSkillArg, _ := Str2Num(strList[1])
- GlobalPetSkillScore = int32(petSkillArg)
- }
- }
- calcPetScoreList := strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_Pet_Quality_Calc_Score), ";")
- for idx := 0; idx < len(calcPetScoreList); idx++ {
- quality, score := Str2Res(calcPetScoreList[idx])
- if quality > 0 && score > 0 {
- GlobalPetQualityScore = append(GlobalPetQualityScore, &serverproto.KeyValueType{
- Key: int32(quality),
- Value: int32(score),
- })
- }
- }
- GlobalRuneGiftGoldShopResetVersion = getGlobalCfgValI(serverproto.GlobalType_Global_Rune_GiftBag_Label_4_Reset)
- //远航试炼
- GlobalCrossYuanHangTrialMaxNum = getGlobalCfgValI(serverproto.GlobalType_Global_YuanHangTrialMaxNum)
- GlobalCrossYuanHangTrialRewardNum = getGlobalCfgValI(serverproto.GlobalType_Global_CrossYuanHangTrialRewardNum)
- GlobalCrossYuanHangTrialViewMaxNum = getGlobalCfgValI(serverproto.GlobalType_Global_CrossYuanHangTrialViewMaxNum)
- GlobalCrossYuanHangTrialRankListMaxNum = getGlobalCfgValI(serverproto.GlobalType_Global_CrossYuanHangTrialRankListMaxNum)
- tmpStrList = strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_CrossYuanHangTrialOpenTime), ";")
- if len(tmpStrList) >= 2 {
- GlobalCrossYuanHangTrialOpenTimeBeginTime = tmpStrList[0]
- GlobalCrossYuanHangTrialOpenTimeEndTime = tmpStrList[1]
- //tmpStr1 := util.GetDayByTimeStr2(util.GetTimeMilliseconds())
- //tmpStartTimeStr := tmpStr1.Format(util.DATE_FORMAT1) + " " + tmpStrList[0]
- //tmpTime := util.GetTimeByStr(tmpStartTimeStr)
- //util.InfoF("CrossYuanHangTrial OpenTime=%v", tmpTime.String())
- //tmpEndTimeStr := tmpStr1.Format(util.DATE_FORMAT1) + " " + tmpStrList[1]
- //tmpTime = util.GetTimeByStr(tmpEndTimeStr)
- //util.InfoF("CrossYuanHangTrial endTime=%v", tmpTime.String())
- }
- //巅峰之塔
- tmpStrList = strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_CrossTopTowerOpenTime), ";")
- if len(tmpStrList) >= 2 {
- GlobalCrossTopTowerOpenTimeBeginTime = tmpStrList[0]
- GlobalCrossTopTowerOpenTimeEndTime = tmpStrList[1]
- //tmpStr1 := util.GetDayByTimeStr2(util.GetTimeMilliseconds())
- //tmpStartTimeStr := tmpStr1.Format(util.DATE_FORMAT1) + " " + tmpStrList[0]
- //tmpTime := util.GetTimeByStr(tmpStartTimeStr)
- //util.InfoF("TopTower OpenTime=%v", tmpTime.String())
- //tmpEndTimeStr := tmpStr1.Format(util.DATE_FORMAT1) + " " + tmpStrList[1]
- //tmpTime = util.GetTimeByStr(tmpEndTimeStr)
- //util.InfoF("TopTower endTime=%v", tmpTime.String())
- }
- GlobalCrossMaxFightPowerRankVal = getGlobalCfgValI(serverproto.GlobalType_Global_CrossMaxFightPowerRankVal)
- GlobalCrossMaxFightPowerFightInfoUpdateTime = getGlobalCfgValI(serverproto.GlobalType_Global_CrossMaxFightPowerFightInfoUpdateTime)
- GlobalGuildDemonBroadCastLevel = getGlobalCfgValI(serverproto.GlobalType_Global_GuildDemon_BroadCast_Level)
- GlobalSkillEquipReforgeMinStart = getGlobalCfgValI(serverproto.GlobalType_Global_SKillEquip_ReforgeCost)
- reforgePoolList := strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_SKillEquip_ReforgeCost), ":")
- for _, poolStr := range reforgePoolList {
- configId, err := Str2Num(poolStr)
- if err != nil {
- continue
- }
- GlobalSkillEquipReforgePoolList = append(GlobalSkillEquipReforgePoolList, int32(configId))
- }
- shiftCost := strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_SKillEquip_ShiftCost), ";")
- for _, Str := range shiftCost {
- v1, v2, v3 := Str2Res_3(Str)
- if v1 <= 0 || v2 <= 0 || v3 <= 0 {
- continue
- }
- GlobalSkillEquipShiftCost[v1] = &serverproto.KeyValueType{Key: v2, Value: v3}
- }
- idolDayReward := strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_Competition_Idol_Day_Reward), ";")
- for _, idolReward := range idolDayReward {
- convertIdol := &IdolDayReward{}
- detail := strings.Split(idolReward, ":")
- if len(detail) >= 9 {
- id, _ := Str2Num(detail[0])
- convertIdol.Id = int32(id)
- convertIdol.StartTime = detail[1] + ":" + detail[2] + ":" + detail[3]
- convertIdol.EndTime = detail[4] + ":" + detail[5] + ":" + detail[6]
- itemId, _ := Str2Num(detail[7])
- itemCount, _ := Str2Num(detail[8])
- convertIdol.ItemId = int32(itemId)
- convertIdol.ItemCount = int32(itemCount)
- }
- GlobalCompetitionIdolDayReward[convertIdol.Id] = convertIdol
- }
- globalCfg2, ok2 := serverproto.GlobalCfgLoader[int32(serverproto.GlobalType_Global_Cruise_Max)]
- if ok2 {
- GlobalCruiseMax = globalCfg2.IVal
- }
- GlobalCompetitonDayRewardLevel = getGlobalCfgValI(serverproto.GlobalType_Global_Competition_Idol_Day_Reward)
- GlobalWishSlotMaxCnt = getGlobalCfgValI(serverproto.GlobalType_Global_Unlock_WishBox_Slot)
- strCost := getGlobalCfgValS(serverproto.GlobalType_Global_Unlock_WishBox_Slot)
- itemId, itemCnt := Str2Res(strCost)
- GlobalWishSlotCost = serverproto.KeyValueType{Key: itemId, Value: itemCnt}
- cardLevelExchange := strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_Card_Level_Exchange), ";")
- for _, cardSourceStr := range cardLevelExchange {
- detail := strings.Split(cardSourceStr, ":")
- if len(detail) >= 3 {
- level, _ := Str2Num(detail[0])
- itemId, _ := Str2Num(detail[1])
- itemNum, _ := Str2Num(detail[2])
- GlobalCardLevelExchange[int32(level)] = &serverproto.KeyValueType{
- Key: int32(itemId),
- Value: int32(itemNum),
- }
- }
- }
- // bt服务器常量处理
- convertGlobalCfgBT()
- }
- func getGlobalCfgValI(idx serverproto.GlobalType) int32 {
- if cfgData, ok := serverproto.GlobalCfgLoader[int32(idx)]; ok {
- return cfgData.IVal
- }
- return 0
- }
- func getGlobalCfgValS(idx serverproto.GlobalType) string {
- if cfgData, ok := serverproto.GlobalCfgLoader[int32(idx)]; ok {
- return cfgData.SVal
- }
- return ""
- }
- // 恶意聊天
- type ConvertCheatMsgData struct {
- ChatDuration uint64 //ms
- Level int32
- //1,私聊对象数量,聊天字数大于3
- //2,相同聊天内容条数
- ParamList []int
- RechargeNum int32 //充值金额
- }
- func convertGlobalCfgBT() {
- // 充值钱包 免费充值额度神域经验比例
- GlobalCreditRechargeFactorStr := getGlobalCfgValS(serverproto.GlobalType_Global_CreditRechargeVip_Factor)
- f1, f2 := Str2Res(GlobalCreditRechargeFactorStr)
- // f1:rmb f2:res
- if f1 > 0 {
- GlobalCreditRechargeFactor = float32(f2) / float32(f1)
- }
- // 充值钱包 初始化最大额度
- GlobalCreditRechargeInitMax = getGlobalCfgValI(serverproto.GlobalType_Global_CreditRechargeInitMax)
- // rmb获得RO币比例系数
- //GlobalRoCoinFactor
- GlobalRMBTOROCoinFactorStr := getGlobalCfgValS(serverproto.GlobalType_Global_RmbToROCoinFactor)
- f1, f2 = Str2Res(GlobalRMBTOROCoinFactorStr)
- // f1:rmb f2:res
- if f1 > 0 {
- GlobalRoCoinFactor = float32(f2) / float32(f1)
- }
- // 特殊处理使用道具添加战斗倍数时间[道具id:持续时间]
- tmpStrList := strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_FastBattleTime), ";")
- for idx := 0; idx < len(tmpStrList); idx++ {
- k, v := Str2Res(tmpStrList[idx])
- if k > 0 && v > 0 {
- GlobalFastBattleTime = append(GlobalFastBattleTime, serverproto.KeyValueType{
- Key: k,
- Value: v,
- })
- }
- }
- // 试炼馈赠(层数:免费充值额度数量)
- tmpStrList = strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_ClimbingTowerDayReward), ";")
- for idx := 0; idx < len(tmpStrList); idx++ {
- k, v := Str2Res(tmpStrList[idx])
- if k <= 0 || v <= 0 {
- continue
- }
- GlobalClimbingTowerDayReward = append(GlobalClimbingTowerDayReward, serverproto.KeyValueType{
- Key: k,
- Value: v,
- })
- }
- // RO币兑换波利商城经验比例
- GlobalRoCoinToExpStr := getGlobalCfgValS(serverproto.GlobalType_Global_RoCoinToBoliExp_Factor)
- f1, f2 = Str2Res(GlobalRoCoinToExpStr)
- // f1:RoCoin f2:exp
- if f1 > 0 {
- GlobalRoCoinToExp = float64(f2) / float64(f1)
- }
- //挑战者大厅购买次数消耗
- tmpStrList = strings.Split(getGlobalCfgValS(serverproto.GlobalType_Global_WorldBossChallengeCost), ";")
- for idx := 0; idx < len(tmpStrList); idx++ {
- k, v := Str2Res(tmpStrList[idx])
- if k <= 0 || v <= 0 {
- continue
- }
- GlobalWorldBossChallengeCost = append(GlobalWorldBossChallengeCost, serverproto.KeyValueType{
- Key: k,
- Value: v,
- })
- }
- }
|