// package battle_wait -- заставляет ожидать начало битвы package battle_wait import ( "strings" "time" . "gitp78su.ipnodns.ru/svi/kern/krn/ktypes" . "wartank/app/lev0/alias" . "wartank/app/lev0/types" "wartank/app/lev2/arena" "wartank/app/lev2/arena/arena_build" ) // СражениеОжидание -- ожидатель начала битвы type СхваткаОжидание struct { ИАренаСтроение конт ILocalCtx } // НовСражениеОжидание -- возвращает новый ожидатель битвы func НовСражениеОжидание(конт ILocalCtx) *СхваткаОжидание { сам := &СхваткаОжидание{ конт: конт, } аренаКонфиг := arena.АренаКонфиг{ Конт_: конт, АренаИмя_: "Ожидание сражения", СтрКонтроль_: `Сражения`, ФнПуск_: сам.пуск, СтрУрл_: "https://wartank.ru/pve", } сам.ИАренаСтроение = arena_build.НовАренаСтроение(конт, аренаКонфиг) return сам } func (сам *СхваткаОжидание) пуск() { } // Ожидать -- ожидает начало сражения func (сам *СхваткаОжидание) Ожидать() { // Зайти в цикл ожидания сражения for { // countTime := сам.ВремяОпрос().Получ() // if countTime > 0 { // time.Sleep(time.Millisecond * 500) // // log.Printf("BattleWait.Wait(): countTime=%v\n", сам.CountDown().String()) // continue // } стрВрем := сам.ждать() if стрВрем == "" { return } лстВрем := strings.Split(стрВрем, ":") стрЧас := лстВрем[0] if стрЧас > "00" { time.Sleep(time.Hour * 1) continue } стрМин := лстВрем[1] if стрМин > "10" { time.Sleep(time.Minute * 10) continue } if стрМин > "01" { time.Sleep(time.Minute * 1) continue } if "00:00:05" < стрВрем && стрВрем < "00:00:59" { time.Sleep(time.Second * 5) continue } time.Sleep(time.Second * 1) } } // Ждёт пока время не обнулится func (сам *СхваткаОжидание) ждать() string { сам.Обновить() var ( strOut string lstBattle = сам.СписПолучить() еслиНайдено bool ) for _, strOut = range lstBattle { if strings.Contains(strOut, `до начала `) { еслиНайдено = true break } // if strings.Contains(strOut, `>ОБЫЧНЫЕ<`) { // Это уже битва // if len(сам.chBattle) == 0 { // сам.chBattle <- 1 // } // return // } } if !еслиНайдено { // Сражение уже идёт return "" } // Найдена строка ожидания начала сражения lstTime := strings.Split(strOut, `до начала `) strTime := lstTime[1] lstTime = strings.Split(strTime, ` (`) strTime = lstTime[0] сам.ОбратВремяУст(АВремя(strTime)) return strTime }