goProject/.svn/pristine/46/462e834bc4c52b9546cd5900c63f09387213c2e5.svn-base
2025-01-06 16:21:36 +08:00

167 lines
4.0 KiB
Plaintext
Raw 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 gameServerMgr
import (
"fmt"
. "Framework/managecenterModel"
)
var (
mServerMap = make(map[int32][]*Server, 0)
)
//合作商、服务器组合列表
type PartnerServer struct {
//合作商Id
mPartnerId int32
//服务器Id
mServerId int32
}
//解析服务器信息
func ParseServerInfo(serverList []*Server) {
tempServerMap := make(map[int32][]*Server, 0)
for _, server := range serverList {
_, exist := tempServerMap[server.PartnerId]
if !exist {
tempServerMap[server.PartnerId] = make([]*Server, 0)
}
tempServerMap[server.PartnerId] = append(tempServerMap[server.PartnerId], server)
}
mServerMap = tempServerMap
}
//获取服务器对象
func GetServerItem(partnerId, serverId int32) (server *Server, exist bool) {
serverList, existServer := mServerMap[partnerId]
if !existServer {
return
}
for _, serverItem := range serverList {
if serverItem.Id == serverId {
server = serverItem
exist = true
break
}
}
return
}
//判断服务器是否存在
func IfServerExists(partnerId, serverId int32) (exists bool) {
_, exists = GetPartnerItem(partnerId)
if !exists {
return
}
_, exists = GetServerItem(partnerId, serverId)
if !exists {
return
}
return
}
//获取服务器名称
func GetServerName(partnerId, serverId int32) (serverName string) {
_, existPartner := GetPartnerItem(partnerId)
if !existPartner {
return
}
server, existServer := GetServerItem(partnerId, serverId)
if !existServer {
return
}
serverName = server.Name
return
}
//检测是否有游戏版本更新
func CheckNewGameVersion(partnerId, serverId, gameVersionId int32) (gameVersionUrl string, exist bool) {
server, existServer := GetServerItem(partnerId, serverId)
if !existServer {
exist = existServer
return
}
if gameVersionId < server.MinGameVersionId {
partner, existPartner := GetPartnerItem(partnerId)
if !existPartner {
exist = existPartner
return
}
exist = true
gameVersionUrl = partner.GameVersionUrl
}
return
}
//获取合作商、服务器的组合字符串
//字符串格式PartnerId_ServerId|PartnerId_ServerId|
func GetPartnerServerPairString() (partnerServerPair string) {
for _, ps := range GetPartnerServerPairList() {
partnerServerPair += fmt.Sprintf("%d_%d|", ps.mPartnerId, ps.mServerId)
}
return
}
//获取合作商、服务器的组合列表
func GetPartnerServerPairList() (partnerServerList []*PartnerServer) {
for key := range mServerMap {
for _, server := range mServerMap[key] {
if server.GroupId == GetServerGroup().Id {
var ps *PartnerServer = &PartnerServer{server.PartnerId, server.Id}
partnerServerList = append(partnerServerList, ps)
}
}
}
return
}
// // 获取合作商、服务器的组合字符串
// // serverGroupId服务器组Id
// // 返回值
// // 合作商、服务器的组合字符串
// func (this *ManageCenterUtil) GetPartnerServerPairString(serverGroupId int32) string {
// var buf bytes.Buffer
// serverList := managecenterMgr.GetServerList(serverGroupId)
// for _, item := range serverList {
// buf.WriteString(fmt.Sprintf("%d_%d|", item.PartnerId, item.Id))
// }
// return buf.String()
// }
// // 是否是有效的合作商、服务器组合
// // partnerId合作商Id
// // serverId服务器Id
// // parnterServerPairString合作商、服务器的组合字符串,格式为:PartnerId_ServerId|PartnerId_ServerId|
// // 返回值
// // 是否有效
// func (this *ManageCenterUtil) IfValidPartnerServerPair(partnerId, serverId int32, parnterServerPairString string) bool {
// if parnterServerPairString == "" {
// return false
// }
// partnerServerPairStringList := strings.Split(parnterServerPairString, "|")
// if len(partnerServerPairStringList) == 0 {
// return false
// }
// // 获得玩家的合作商、服务器组合字符串
// partnerServerPair := fmt.Sprintf("%d_%d", partnerId, serverId)
// // 遍历寻找
// for _, item := range partnerServerPairStringList {
// if item == partnerServerPair {
// return true
// }
// }
// return false
// }