goProject/trunk/framework/managecenterModel/area.go

70 lines
1.6 KiB
Go
Raw Normal View History

2025-01-06 16:01:02 +08:00
package managecenterModel
import "goutil/stringUtil"
// 大区对象
type Area struct {
// 大区Id
AreaId int32 `json:"AreaId"`
//大区名字
AreaName string `json:"AreaName"`
//客户端显示名字
ClientName string `json:"ClientName"`
//区服范围
ServerRange string `json:"ServerRange"`
//资源包下载地址
ResourceURL string `json:"ResourceURL"`
//推荐服开关0关闭1:打开
RecommendStitch int32 `json:"RecommendStitch"`
//推荐最大注册人数
MaxRegistration int32 `json:"MaxRegistration"`
//限制注册的开关
RegRestrictionSwitch int32 `json:"RegRestrictionSwitch"`
//玩家数量大于该数量,自动开服
AutoOpenServerPlayers int32 `json:"AutoOpenServerPlayers"`
//大区维护状态1正常2维护
AreaMaintainStatus int32 `json:"AreaMaintainStatus"`
//维护消息
AreaMaintainMsg string `json:"AreaMaintainMsg"`
//大区页签集合
AreaLabelList []*AreaLabel `json:"AreaLabelList"`
}
//
//检测服务器是否在大区的区间范围
func (this *Area) CheckServerIdIsInRange(serverId int32) (isVaild bool) {
isVaild = false
for _, serverRangeItem := range stringUtil.Split(this.ServerRange, []string{","}) {
serverRange, _ := stringUtil.SplitToInt32Slice(serverRangeItem, "-")
lower := serverRange[0]
upper := serverRange[1]
//如果范围大小顺序不对,则换位
if lower > upper {
temp := lower
lower = upper
upper = temp
}
//如果服务器在该大区的任意区服区间则返回true
if serverId >= lower && serverId <= upper {
isVaild = true
return
}
}
return
}