tl 2 роки тому
батько
коміт
3c59ecf149
2 змінених файлів з 15 додано та 10 видалено
  1. 1 0
      game/qznn/qznn.go
  2. 14 10
      game/qznn/wait.go

+ 1 - 0
game/qznn/qznn.go

@@ -931,6 +931,7 @@ func (p *Game) Ready(playerID int32) error {
 
 			p.WaitReady(roomItem)
 		} else {
+			p.EventInfo(playerID, "准备", "全部都是等待状态,无需等待,马上开始")
 			p.locker.Unlock()
 		}
 

+ 14 - 10
game/qznn/wait.go

@@ -141,15 +141,6 @@ func (p *Game) WaitChooseMul(room Room) error {
 		return err
 	}
 
-	roomUserIDList, err := p.getRoomUserIDList(room.ID)
-	if err != nil {
-		logrus.Error(err)
-
-		//FOCUS:UnLock
-		p.locker.Unlock()
-		return err
-	}
-
 	//master提前发送
 	for _, userID := range userIDList {
 		userItem, exists := p.PlayerMap[userID]
@@ -192,7 +183,7 @@ func (p *Game) WaitChooseMul(room Room) error {
 	p.locker.Lock()
 	defer p.locker.Unlock()
 
-	roomUserIDList, err = p.getRoomUserIDList(room.ID)
+	roomUserIDList, err := p.getRoomUserIDList(room.ID)
 	if err != nil {
 		logrus.Error(err)
 		return err
@@ -450,6 +441,19 @@ func (p *Game) WaitOpen(room Room) error {
 		return err
 	}
 
+	if len(roomUserIDList) != len(userModelList) {
+		logrus.Panicf("len(roomUserIDList) != len(userModelList), %d != %d, %v, %v",
+			len(roomUserIDList), len(userModelList), roomUserIDList, userModelList)
+	}
+
+	for _, userID := range roomUserIDList {
+		userItem := p.PlayerMap[userID]
+		userItem.IsMaster = false
+		userItem.Status = PlayerStatusWaitReady
+
+		p.PlayerMap[userID] = userItem
+	}
+
 	for _, userModel := range userModelList {
 		userID := int32(userModel.ID)
 		userItem := p.PlayerMap[userID]