xy 1 долоо хоног өмнө
parent
commit
3690c552d8

+ 22 - 2
src/server/game/ludo/battle.go

@@ -249,6 +249,18 @@ func (room_info *RoomInfoWrapper) notify_to_all_player(message interface{}) {
 	}
 }
 
+// 房间里通知所有玩家包括被踢出的玩家
+func (room_info *RoomInfoWrapper) notify_all_player(message interface{}) {
+	for i := range room_info.Colors {
+		color_data := room_info.Colors[i]
+		user_id := color_data.MId
+		user_agent := getAgentByUserId(user_id)
+		if user_agent != nil {
+			user_agent.WriteMsg(message)
+		}
+	}
+}
+
 // 给前端展示一段时间后,再操作
 func (room_info *RoomInfoWrapper) delayActionNextRound(td int32, color msg.RoleType, szNumber int32, isAddRound bool, isFinish bool) {
 	dtn := time.Duration(td) * time.Microsecond
@@ -288,8 +300,7 @@ func (room_info *RoomInfoWrapper) kick_color_of_room(color msg.RoleType) {
 		Status: msg.PlayerStatus_COLOR_KICK,
 		Colors: room_info.getKickColors(),
 	}
-
-	room_info.notify_to_all_player(message)
+	room_info.notify_all_player(message)
 }
 
 // 解散房间
@@ -299,5 +310,14 @@ func (room_info *RoomInfoWrapper) dismiss_room() {
 
 	//移除房间
 	room_info.RoomStatus = msg.RoomStatus_END
+	for i := 0; i < len(room_info.Colors); i++ {
+		color_data := room_info.Colors[i]
+		user_agent := getAgentByUserId(color_data.MId)
+		if user_agent != nil {
+			ud := user_agent.UserData().(*msg.UserInfo)
+			ud.RoomId = 0
+			user_agent.SetUserData(ud)
+		}
+	}
 	ClearRoomInfoWrapperDisbandRoom()
 }