xy 1 săptămână în urmă
părinte
comite
a7288a1554

+ 6 - 0
src/server/game/ludo/battle.go

@@ -16,6 +16,8 @@ func init() {
 
 // 清理解散的房间
 func ClearRoomInfoWrapperDisbandRoom() {
+	gameConfig.mu.Lock()
+	defer gameConfig.mu.Unlock()
 	for k := range gameConfig.BattleRoom {
 		if gameConfig.BattleRoom[k].RoomStatus == msg.RoomStatus_END {
 			delete(gameConfig.BattleRoom, k)
@@ -24,6 +26,8 @@ func ClearRoomInfoWrapperDisbandRoom() {
 }
 
 func runBattle(room_info *RoomInfoWrapper) {
+	gameConfig.mu.Lock()
+	defer gameConfig.mu.Unlock()
 	// cur_color_key := getCurColorEventKey(room_info)
 	// TimerManager.AddEvent(cur_color_key,)
 	gameConfig.BattleRoom[room_info.Id] = room_info
@@ -33,6 +37,8 @@ func runBattle(room_info *RoomInfoWrapper) {
 }
 
 func getBattleRoomById(id int32) *RoomInfoWrapper {
+	gameConfig.mu.Lock()
+	defer gameConfig.mu.Unlock()
 	room_info, exists := gameConfig.BattleRoom[id]
 	if !exists {
 		return nil

+ 2 - 1
src/server/game/ludo/ludo.go

@@ -84,7 +84,8 @@ var TimerManager = tools.NewTimerManager()
 
 func InitGame() {
 	gameConfig = &Config{
-		RoomMap: make(map[int32]*msg.RoomInfo),
+		RoomMap:    make(map[int32]*msg.RoomInfo),
+		BattleRoom: make(map[int32]*RoomInfoWrapper),
 	}
 	go handleEvents()
 }

+ 3 - 3
src/server/game/ludo/match.go

@@ -21,12 +21,12 @@ func RecvMatchLudo(args []interface{}) {
 //根据玩家要匹配的对局,给玩家寻找和的房间
 
 func matchRoom(matchInfo *msg.MatchLudo, userId string, user_agent gate.Agent) {
-	fmt.Printf("matchRoom")
+	fmt.Printf("matchRoom\n")
 	roomList := GetRoomsByLevel(matchInfo, msg.RoomStatus_AWAIT)
 
 	if len(roomList) == 0 {
 		// Create new room if none available
-		log.Error("没找到房间匹配一个!")
+		fmt.Printf("没找到房间匹配一个!\n")
 		room_info := CreateRoom(matchInfo, userId)
 		if room_info == nil {
 			sendMatchErrorMsg(user_agent, 101, "not find player")
@@ -38,7 +38,7 @@ func matchRoom(matchInfo *msg.MatchLudo, userId string, user_agent gate.Agent) {
 		isFullPlayer, err_info := JoinRoom(roomList[0], matchInfo, userId)
 		if err_info != nil {
 			if isFullPlayer {
-				print("匹配成功开始游戏!")
+				fmt.Printf("匹配成功开始游戏!")
 				startGame(roomList[0])
 				NotifyRoomPlayerMatch(roomList[0])
 			}