Browse Source

1 拉米也修改为用后台配置

2 修改机器人少了一个
dev
MoQingYu 5 months ago
parent
commit
b1e14c3fbe
  1. 8
      build.sh
  2. 2
      game-server/game/21Game/app/core/game/game_robot.go
  3. 12
      game-server/game/21Game/app/core/game/game_robot_timer.go
  4. 2
      game-server/game/DZ/app/core/game/game_repeat_room.go
  5. 2
      game-server/game/DZ/app/core/game/game_robot.go
  6. 12
      game-server/game/DZ/app/core/game/game_robot_timer.go
  7. 2
      game-server/game/SixAndarBahar/app/core/game/game_robot.go
  8. 12
      game-server/game/SixAndarBahar/app/core/game/game_robot_timer.go
  9. 2
      game-server/game/rummy/app/core/game/game.go
  10. 45
      game-server/game/rummy/app/core/game/game_robot.go
  11. 122
      game-server/game/rummy/app/core/game/game_robot_timer.go

8
build.sh

@ -16,8 +16,11 @@ else
fi
echo "当前目录是: $TARGET_DIR"
go mod tidy
echo "go mod tidy 完成"
# 使用空格分隔的字符串定义数组
my_array="/game-server/mesh /game-server/login /game-server/hall /game-server/https/trackdot /game-server/backend/backstage"
my_array="/game-server/game/rummy"
# 遍历数组(使用 set 命令将字符串转换为位置参数)
set -- $my_array
@ -44,12 +47,15 @@ if [ -n "$WSL_DISTRO_NAME" ]; then
cp move.sh "$TARGET_DIR/BuildServer"
cp startserver.sh "$TARGET_DIR/BuildServer"
cp stopserver.sh "$TARGET_DIR/BuildServer"
cp cleanLog.sh "$TARGET_DIR/BuildServer"
elif [ -n "$BASH_VERSION" ]; then
cp move.sh "$TARGET_DIR/BuildServer"
cp startserver.sh "$TARGET_DIR/BuildServer"
cp stopserver.sh "$TARGET_DIR/BuildServer"
cp cleanLog.sh "$TARGET_DIR/BuildServer"
else
copy move.sh "$TARGET_DIR/BuildServer"
copy startserver.sh "$TARGET_DIR/BuildServer"
copy stopserver.sh "$TARGET_DIR/BuildServer"
copy cleanLog.sh "$TARGET_DIR/BuildServer"
fi

2
game-server/game/21Game/app/core/game/game_robot.go

@ -93,7 +93,7 @@ func (r *RobotManager) OnInit(conf string, GameRoom *Room) {
if GameRoom.TableConfig.ZeroMaxNum <= GameRoom.TableConfig.ZeroMinNum {
r.MaxCount = int(GameRoom.TableConfig.ZeroMinNum)
} else {
r.MaxCount = int(rand.Int63n(GameRoom.TableConfig.ZeroMaxNum-GameRoom.TableConfig.ZeroMinNum) + GameRoom.TableConfig.ZeroMinNum)
r.MaxCount = int(rand.Int63n(GameRoom.TableConfig.ZeroMaxNum-GameRoom.TableConfig.ZeroMinNum+1) + GameRoom.TableConfig.ZeroMinNum)
}
r.FlushCountTimer = nowMilliSeconds + GameRoom.TableConfig.CheckFrequency*1000

12
game-server/game/21Game/app/core/game/game_robot_timer.go

@ -59,42 +59,42 @@ func (r *RobotManager) run() {
if r.GameRoom.TableConfig.ZeroMaxNum <= r.GameRoom.TableConfig.ZeroMinNum {
r.MaxCount = int(r.GameRoom.TableConfig.ZeroMinNum)
} else {
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.ZeroMaxNum-r.GameRoom.TableConfig.ZeroMinNum) + r.GameRoom.TableConfig.ZeroMinNum)
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.ZeroMaxNum-r.GameRoom.TableConfig.ZeroMinNum+1) + r.GameRoom.TableConfig.ZeroMinNum)
}
case 1:
r.MaxCount = 0
if r.GameRoom.TableConfig.OneMaxNum <= r.GameRoom.TableConfig.OneMinNum {
r.MaxCount = int(r.GameRoom.TableConfig.OneMinNum)
} else {
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.OneMaxNum-r.GameRoom.TableConfig.OneMinNum) + r.GameRoom.TableConfig.OneMinNum)
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.OneMaxNum-r.GameRoom.TableConfig.OneMinNum+1) + r.GameRoom.TableConfig.OneMinNum)
}
case 2:
r.MaxCount = 0
if r.GameRoom.TableConfig.TwoMaxNum <= r.GameRoom.TableConfig.TwoMinNum {
r.MaxCount = int(r.GameRoom.TableConfig.TwoMinNum)
} else {
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.TwoMaxNum-r.GameRoom.TableConfig.TwoMinNum) + r.GameRoom.TableConfig.TwoMinNum)
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.TwoMaxNum-r.GameRoom.TableConfig.TwoMinNum+1) + r.GameRoom.TableConfig.TwoMinNum)
}
case 3:
r.MaxCount = 0
if r.GameRoom.TableConfig.ThreeMaxNum <= r.GameRoom.TableConfig.ThreeMinNum {
r.MaxCount = int(r.GameRoom.TableConfig.ThreeMinNum)
} else {
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.ThreeMaxNum-r.GameRoom.TableConfig.ThreeMinNum) + r.GameRoom.TableConfig.ThreeMinNum)
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.ThreeMaxNum-r.GameRoom.TableConfig.ThreeMinNum+1) + r.GameRoom.TableConfig.ThreeMinNum)
}
case 4:
r.MaxCount = 0
if r.GameRoom.TableConfig.FourMaxNum <= r.GameRoom.TableConfig.FourMinNum {
r.MaxCount = int(r.GameRoom.TableConfig.FourMinNum)
} else {
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.FourMaxNum-r.GameRoom.TableConfig.FourMinNum) + r.GameRoom.TableConfig.FourMinNum)
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.FourMaxNum-r.GameRoom.TableConfig.FourMinNum+1) + r.GameRoom.TableConfig.FourMinNum)
}
case 5:
r.MaxCount = 0
if r.GameRoom.TableConfig.FiveMaxNum <= r.GameRoom.TableConfig.FiveMinNum {
r.MaxCount = int(r.GameRoom.TableConfig.FiveMinNum)
} else {
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.FiveMaxNum-r.GameRoom.TableConfig.FiveMinNum) + r.GameRoom.TableConfig.FiveMinNum)
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.FiveMaxNum-r.GameRoom.TableConfig.FiveMinNum+1) + r.GameRoom.TableConfig.FiveMinNum)
}
}

2
game-server/game/DZ/app/core/game/game_repeat_room.go

@ -13,7 +13,7 @@ func (rr *Room) RepeatRoom() {
rr.TableScore = 0
rr.CanCheck = true
rr.PokersCount = 0 //
rr.CurrOperationPlayer = -1 //
rr.CurrOperationPlayer = 0xFF //
rr.CurrBanker = INVALID_VALUE //
rr.IsP2pControls = false //点控

2
game-server/game/DZ/app/core/game/game_robot.go

@ -93,7 +93,7 @@ func (r *RobotManager) OnInit(conf string, GameRoom *Room) {
if GameRoom.TableConfig.ZeroMaxNum <= GameRoom.TableConfig.ZeroMinNum {
r.MaxCount = int(GameRoom.TableConfig.ZeroMinNum)
} else {
r.MaxCount = int(rand.Int63n(GameRoom.TableConfig.ZeroMaxNum-GameRoom.TableConfig.ZeroMinNum) + GameRoom.TableConfig.ZeroMinNum)
r.MaxCount = int(rand.Int63n(GameRoom.TableConfig.ZeroMaxNum-GameRoom.TableConfig.ZeroMinNum+1) + GameRoom.TableConfig.ZeroMinNum)
}
r.FlushCountTimer = nowMilliSeconds + GameRoom.TableConfig.CheckFrequency*1000

12
game-server/game/DZ/app/core/game/game_robot_timer.go

@ -59,42 +59,42 @@ func (r *RobotManager) run() {
if r.GameRoom.TableConfig.ZeroMaxNum <= r.GameRoom.TableConfig.ZeroMinNum {
r.MaxCount = int(r.GameRoom.TableConfig.ZeroMinNum)
} else {
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.ZeroMaxNum-r.GameRoom.TableConfig.ZeroMinNum) + r.GameRoom.TableConfig.ZeroMinNum)
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.ZeroMaxNum-r.GameRoom.TableConfig.ZeroMinNum+1) + r.GameRoom.TableConfig.ZeroMinNum)
}
case 1:
r.MaxCount = 0
if r.GameRoom.TableConfig.OneMaxNum <= r.GameRoom.TableConfig.OneMinNum {
r.MaxCount = int(r.GameRoom.TableConfig.OneMinNum)
} else {
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.OneMaxNum-r.GameRoom.TableConfig.OneMinNum) + r.GameRoom.TableConfig.OneMinNum)
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.OneMaxNum-r.GameRoom.TableConfig.OneMinNum+1) + r.GameRoom.TableConfig.OneMinNum)
}
case 2:
r.MaxCount = 0
if r.GameRoom.TableConfig.TwoMaxNum <= r.GameRoom.TableConfig.TwoMinNum {
r.MaxCount = int(r.GameRoom.TableConfig.TwoMinNum)
} else {
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.TwoMaxNum-r.GameRoom.TableConfig.TwoMinNum) + r.GameRoom.TableConfig.TwoMinNum)
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.TwoMaxNum-r.GameRoom.TableConfig.TwoMinNum+1) + r.GameRoom.TableConfig.TwoMinNum)
}
case 3:
r.MaxCount = 0
if r.GameRoom.TableConfig.ThreeMaxNum <= r.GameRoom.TableConfig.ThreeMinNum {
r.MaxCount = int(r.GameRoom.TableConfig.ThreeMinNum)
} else {
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.ThreeMaxNum-r.GameRoom.TableConfig.ThreeMinNum) + r.GameRoom.TableConfig.ThreeMinNum)
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.ThreeMaxNum-r.GameRoom.TableConfig.ThreeMinNum+1) + r.GameRoom.TableConfig.ThreeMinNum)
}
case 4:
r.MaxCount = 0
if r.GameRoom.TableConfig.FourMaxNum <= r.GameRoom.TableConfig.FourMinNum {
r.MaxCount = int(r.GameRoom.TableConfig.FourMinNum)
} else {
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.FourMaxNum-r.GameRoom.TableConfig.FourMinNum) + r.GameRoom.TableConfig.FourMinNum)
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.FourMaxNum-r.GameRoom.TableConfig.FourMinNum+1) + r.GameRoom.TableConfig.FourMinNum)
}
case 5:
r.MaxCount = 0
if r.GameRoom.TableConfig.FiveMaxNum <= r.GameRoom.TableConfig.FiveMinNum {
r.MaxCount = int(r.GameRoom.TableConfig.FiveMinNum)
} else {
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.FiveMaxNum-r.GameRoom.TableConfig.FiveMinNum) + r.GameRoom.TableConfig.FiveMinNum)
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.FiveMaxNum-r.GameRoom.TableConfig.FiveMinNum+1) + r.GameRoom.TableConfig.FiveMinNum)
}
}

2
game-server/game/SixAndarBahar/app/core/game/game_robot.go

@ -85,7 +85,7 @@ func (r *RobotManager) OnInit(conf string, GameRoom *Room) {
if GameRoom.TableConfig.ZeroMaxNum <= GameRoom.TableConfig.ZeroMinNum {
r.MaxCount = int(GameRoom.TableConfig.ZeroMinNum)
} else {
r.MaxCount = int(rand.Int63n(GameRoom.TableConfig.ZeroMaxNum-GameRoom.TableConfig.ZeroMinNum) + GameRoom.TableConfig.ZeroMinNum)
r.MaxCount = int(rand.Int63n(GameRoom.TableConfig.ZeroMaxNum-GameRoom.TableConfig.ZeroMinNum+1) + GameRoom.TableConfig.ZeroMinNum)
}
r.FlushCountTimer = nowMilliSeconds + GameRoom.TableConfig.CheckFrequency*1000

12
game-server/game/SixAndarBahar/app/core/game/game_robot_timer.go

@ -58,42 +58,42 @@ func (r *RobotManager) run() {
if r.GameRoom.TableConfig.ZeroMaxNum <= r.GameRoom.TableConfig.ZeroMinNum {
r.MaxCount = int(r.GameRoom.TableConfig.ZeroMinNum)
} else {
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.ZeroMaxNum-r.GameRoom.TableConfig.ZeroMinNum) + r.GameRoom.TableConfig.ZeroMinNum)
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.ZeroMaxNum-r.GameRoom.TableConfig.ZeroMinNum+1) + r.GameRoom.TableConfig.ZeroMinNum)
}
case 1:
r.MaxCount = 0
if r.GameRoom.TableConfig.OneMaxNum <= r.GameRoom.TableConfig.OneMinNum {
r.MaxCount = int(r.GameRoom.TableConfig.OneMinNum)
} else {
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.OneMaxNum-r.GameRoom.TableConfig.OneMinNum) + r.GameRoom.TableConfig.OneMinNum)
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.OneMaxNum-r.GameRoom.TableConfig.OneMinNum+1) + r.GameRoom.TableConfig.OneMinNum)
}
case 2:
r.MaxCount = 0
if r.GameRoom.TableConfig.TwoMaxNum <= r.GameRoom.TableConfig.TwoMinNum {
r.MaxCount = int(r.GameRoom.TableConfig.TwoMinNum)
} else {
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.TwoMaxNum-r.GameRoom.TableConfig.TwoMinNum) + r.GameRoom.TableConfig.TwoMinNum)
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.TwoMaxNum-r.GameRoom.TableConfig.TwoMinNum+1) + r.GameRoom.TableConfig.TwoMinNum)
}
case 3:
r.MaxCount = 0
if r.GameRoom.TableConfig.ThreeMaxNum <= r.GameRoom.TableConfig.ThreeMinNum {
r.MaxCount = int(r.GameRoom.TableConfig.ThreeMinNum)
} else {
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.ThreeMaxNum-r.GameRoom.TableConfig.ThreeMinNum) + r.GameRoom.TableConfig.ThreeMinNum)
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.ThreeMaxNum-r.GameRoom.TableConfig.ThreeMinNum+1) + r.GameRoom.TableConfig.ThreeMinNum)
}
case 4:
r.MaxCount = 0
if r.GameRoom.TableConfig.FourMaxNum <= r.GameRoom.TableConfig.FourMinNum {
r.MaxCount = int(r.GameRoom.TableConfig.FourMinNum)
} else {
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.FourMaxNum-r.GameRoom.TableConfig.FourMinNum) + r.GameRoom.TableConfig.FourMinNum)
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.FourMaxNum-r.GameRoom.TableConfig.FourMinNum+1) + r.GameRoom.TableConfig.FourMinNum)
}
case 5:
r.MaxCount = 0
if r.GameRoom.TableConfig.FiveMaxNum <= r.GameRoom.TableConfig.FiveMinNum {
r.MaxCount = int(r.GameRoom.TableConfig.FiveMinNum)
} else {
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.FiveMaxNum-r.GameRoom.TableConfig.FiveMinNum) + r.GameRoom.TableConfig.FiveMinNum)
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.FiveMaxNum-r.GameRoom.TableConfig.FiveMinNum+1) + r.GameRoom.TableConfig.FiveMinNum)
}
}

2
game-server/game/rummy/app/core/game/game.go

@ -38,7 +38,7 @@ const (
GER_USER_GIVEUP = int32(4) //没操结算
MAX_USER_NUM = 2 //房间最大人数
// TODO: 机器人测试先不加
MAX_ROBOT_BUN = 1 //房间最多机器人
MAX_ROBOT_BUN = 2 //房间最多机器人
TIME_ID_OUT_CARD = 100 //出牌状态
TIME_ID_STROKE_CARD = 200 //摸牌状态
TIME_ID_LIANG_CARD = 300 //亮牌状态

45
game-server/game/rummy/app/core/game/game_robot.go

@ -33,6 +33,9 @@ type RobotManager struct {
GronTimer *gron.Cron
Lock sync.RWMutex
GameRoom *Room
NextEnterTimer int64 //下个机器人进入时间
FlushCountTimer int64 //下次刷新机器人数量的时间
MaxCount int //机器人数量
PlayerMaps map[int32]*Player
PlayerStat map[int32]int32
RobotStat int32
@ -79,8 +82,41 @@ func (r *RobotManager) OnInit(conf string, GameRoom *Room) {
nowUnixNano := time.Now().UnixNano()
nowMilliSeconds := nowUnixNano / 1e6
rTime := rand.Int63n(ROBOT_ENTER_TIME_MAX-ROBOT_ENTER_TIME_MIN) + ROBOT_ENTER_TIME_MIN
r.CurrentOperationTimer = nowMilliSeconds + rTime
// 这里现在修改立马进入一个机器人
r.NextEnterTimer = nowMilliSeconds + 100
//MinInterTime := GameRoom.BloodCtrl.AndroidOprateConfig.JoinHZ[0] * 1000
//MaxInterTime := GameRoom.BloodCtrl.AndroidOprateConfig.JoinHZ[1] * 1000
//rTime := int64(rand.Intn(MaxInterTime-MinInterTime) + MinInterTime)
//r.NextEnterTimer = nowMilliSeconds + rTime
if GameRoom.TableConfig != nil {
r.MaxCount = 0
if GameRoom.TableConfig.ZeroMaxNum <= GameRoom.TableConfig.ZeroMinNum {
r.MaxCount = int(GameRoom.TableConfig.ZeroMinNum)
} else {
r.MaxCount = int(rand.Int63n(GameRoom.TableConfig.ZeroMaxNum-GameRoom.TableConfig.ZeroMinNum+1) + GameRoom.TableConfig.ZeroMinNum)
}
r.FlushCountTimer = nowMilliSeconds + GameRoom.TableConfig.CheckFrequency*1000
log.Debug("从后台配置 最大机器人数 ", r.MaxCount, " 刷新时间 ", GameRoom.TableConfig.CheckFrequency)
} else {
ProMax := 0
for _, tempCount := range GameRoom.BloodCtrl.AndroidOprateConfig.CountMax0 {
ProMax += tempCount[1]
}
ProNow := rand.Intn(ProMax)
r.MaxCount = 0
for _, tempCount := range GameRoom.BloodCtrl.AndroidOprateConfig.CountMax0 {
if ProNow < tempCount[1] {
r.MaxCount = tempCount[0]
break
} else {
ProNow -= tempCount[1]
}
}
r.FlushCountTimer = nowMilliSeconds + int64(GameRoom.BloodCtrl.AndroidOprateConfig.FlushHZ*1000)
}
r.GronTimer.Start()
}
@ -354,6 +390,11 @@ func (r *RobotManager) OnRobotMessage(msgId int32, player *Player, msg interface
return
}
log.Debug(" 桌子号", r.GameRoom.RId, "胡牌了==>机器人接收到胡牌消息", message)
if r.GameRoom.GetInRoomRobotCount() > int32(r.MaxCount) {
r.GameRoom.OnGetOutRoom(player.Uid, 0)
log.Debug(r.GameRoom.RId, " 机器人 ", player.Uid, " 需要离开 当前机器人个数", r.GameRoom.GetInRoomRobotCount(), "需要的人数", r.MaxCount)
}
//player
//raw := rand.Intn(100)
//if raw >= 50 && r.GameRoom.Round >= 2 {

122
game-server/game/rummy/app/core/game/game_robot_timer.go

@ -17,13 +17,127 @@ func (r *RobotManager) KickRobotTimer() {
func (r *RobotManager) run() {
milliseconds := time.Now().UnixMilli()
if milliseconds >= r.CurrentOperationTimer {
//空闲状态
if r.GameRoom.State <= EN_TABLE_STATE_WAIT && r.GameRoom.GetInRoomRobotCount() < r.GameRoom.MaxRobotPlayerCount {
if milliseconds >= r.NextEnterTimer {
if r.GameRoom.CreatorId == 0 && r.GameRoom.GetInRoomRobotCount() < int32(r.MaxCount) {
//r.Lock.Lock()
r.RobotsEnterGameRoom()
MinInterTime := 0
MaxInterTime := 0
if r.GameRoom.TableConfig != nil {
MinInterTime = int(r.GameRoom.TableConfig.RobotCheckMinFrequency) * 1000
MaxInterTime = int(r.GameRoom.TableConfig.RobotCheckMaxFrequency) * 1000
log.Debug(" 后台配置 机器人进入频率 最小 ", MinInterTime, " 最大 ", MaxInterTime)
} else {
MinInterTime = r.GameRoom.BloodCtrl.AndroidOprateConfig.JoinHZ[0] * 1000
MaxInterTime = r.GameRoom.BloodCtrl.AndroidOprateConfig.JoinHZ[1] * 1000
}
rTime := int64(0)
if MaxInterTime <= MinInterTime {
rTime = int64(MinInterTime)
} else {
rTime = int64(rand.Intn(MaxInterTime-MinInterTime) + MinInterTime)
}
//处理个意外
if rTime == 0 {
rTime = 2000
log.Error(" 出现0了 是不行的 ", r.GameRoom.RoomID)
}
r.NextEnterTimer = milliseconds + rTime
//r.Lock.Unlock()
}
}
if r.GameRoom.TableConfig != nil {
if milliseconds >= r.FlushCountTimer {
switch r.GameRoom.GetRoomRealPlayerCount() {
case 0:
r.MaxCount = 0
if r.GameRoom.TableConfig.ZeroMaxNum <= r.GameRoom.TableConfig.ZeroMinNum {
r.MaxCount = int(r.GameRoom.TableConfig.ZeroMinNum)
} else {
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.ZeroMaxNum-r.GameRoom.TableConfig.ZeroMinNum+1) + r.GameRoom.TableConfig.ZeroMinNum)
}
case 1:
r.MaxCount = 0
if r.GameRoom.TableConfig.OneMaxNum <= r.GameRoom.TableConfig.OneMinNum {
r.MaxCount = int(r.GameRoom.TableConfig.OneMinNum)
} else {
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.OneMaxNum-r.GameRoom.TableConfig.OneMinNum+1) + r.GameRoom.TableConfig.OneMinNum)
}
case 2:
r.MaxCount = 0
if r.GameRoom.TableConfig.TwoMaxNum <= r.GameRoom.TableConfig.TwoMinNum {
r.MaxCount = int(r.GameRoom.TableConfig.TwoMinNum)
} else {
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.TwoMaxNum-r.GameRoom.TableConfig.TwoMinNum+1) + r.GameRoom.TableConfig.TwoMinNum)
}
case 3:
r.MaxCount = 0
if r.GameRoom.TableConfig.ThreeMaxNum <= r.GameRoom.TableConfig.ThreeMinNum {
r.MaxCount = int(r.GameRoom.TableConfig.ThreeMinNum)
} else {
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.ThreeMaxNum-r.GameRoom.TableConfig.ThreeMinNum+1) + r.GameRoom.TableConfig.ThreeMinNum)
}
case 4:
r.MaxCount = 0
if r.GameRoom.TableConfig.FourMaxNum <= r.GameRoom.TableConfig.FourMinNum {
r.MaxCount = int(r.GameRoom.TableConfig.FourMinNum)
} else {
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.FourMaxNum-r.GameRoom.TableConfig.FourMinNum+1) + r.GameRoom.TableConfig.FourMinNum)
}
case 5:
r.MaxCount = 0
if r.GameRoom.TableConfig.FiveMaxNum <= r.GameRoom.TableConfig.FiveMinNum {
r.MaxCount = int(r.GameRoom.TableConfig.FiveMinNum)
} else {
r.MaxCount = int(rand.Int63n(r.GameRoom.TableConfig.FiveMaxNum-r.GameRoom.TableConfig.FiveMinNum+1) + r.GameRoom.TableConfig.FiveMinNum)
}
}
r.FlushCountTimer = milliseconds + r.GameRoom.TableConfig.CheckFrequency*1000
log.Debug("从后台配置 最大机器人数 ", r.MaxCount, " 刷新时间 ", r.GameRoom.TableConfig.CheckFrequency)
}
} else {
if milliseconds >= r.FlushCountTimer {
var TempCountMax [][]int
switch r.GameRoom.GetRoomRealPlayerCount() {
case 0:
TempCountMax = r.GameRoom.BloodCtrl.AndroidOprateConfig.CountMax0
case 1:
TempCountMax = r.GameRoom.BloodCtrl.AndroidOprateConfig.CountMax1
case 2:
TempCountMax = r.GameRoom.BloodCtrl.AndroidOprateConfig.CountMax2
case 3:
TempCountMax = r.GameRoom.BloodCtrl.AndroidOprateConfig.CountMax3
case 4:
TempCountMax = r.GameRoom.BloodCtrl.AndroidOprateConfig.CountMax4
case 5:
TempCountMax = r.GameRoom.BloodCtrl.AndroidOprateConfig.CountMax5
}
ProMax := 0
for _, tempCount := range TempCountMax {
ProMax += tempCount[1]
}
ProNow := 0
if ProMax != 0 {
ProNow = rand.Intn(ProMax)
}
r.MaxCount = 0
for _, tempCount := range TempCountMax {
if ProNow < tempCount[1] {
r.MaxCount = tempCount[0]
break
} else {
ProNow -= tempCount[1]
}
}
r.FlushCountTimer = milliseconds + int64(r.GameRoom.BloodCtrl.AndroidOprateConfig.FlushHZ*1000)
}
}

Loading…
Cancel
Save