|
|
@@ -13,7 +13,9 @@ import (
|
|
|
. "wartank/app/lev0/types"
|
|
|
"wartank/app/lev2/arena"
|
|
|
"wartank/app/lev2/arena/arena_build"
|
|
|
+ "wartank/app/lev2/arena/arena_market/bf_gold_by"
|
|
|
"wartank/app/lev2/arena/arena_market/bf_market_build"
|
|
|
+ "wartank/app/lev2/arena/arena_market/bf_market_upgrade"
|
|
|
)
|
|
|
|
|
|
// АренаРынок -- объект рынка
|
|
|
@@ -49,6 +51,8 @@ func (сам *АренаРынок) Пуск() {
|
|
|
}
|
|
|
фнОбновить()
|
|
|
bf_market_build.РынокПостроить(сам.конт)
|
|
|
+ bf_market_upgrade.РынокАпгрейд(сам.конт)
|
|
|
+ bf_gold_by.ЗолотоКупить(сам.конт)
|
|
|
}
|
|
|
|
|
|
// выполняет опрос рынка базы, должен работать как горутина
|
|
|
@@ -60,8 +64,6 @@ func (сам *АренаРынок) пуск() {
|
|
|
}
|
|
|
сам.ускорениеПровер()
|
|
|
сам.проверОжидание()
|
|
|
- for сам.купитьЗолото() {
|
|
|
- }
|
|
|
}
|
|
|
for {
|
|
|
select {
|
|
|
@@ -121,89 +123,6 @@ func (сам *АренаРынок) уровеньОбновить() bool {
|
|
|
return true
|
|
|
}
|
|
|
|
|
|
-/*
|
|
|
-// Строит шахту при нулевом уровне
|
|
|
-func (сам *АренаРынок) построить() bool {
|
|
|
- time.Sleep(time.Millisecond * 1000)
|
|
|
- // <td style="width:50%;padding-left:1px;"><a class="simple-but border mb5" href="building-upgrade/Market"><span><span>Построить</span></span></a></td>
|
|
|
- var (
|
|
|
- еслиНайти = false
|
|
|
- списСтр []string
|
|
|
- стр = ""
|
|
|
- )
|
|
|
- фнКупить := func() bool {
|
|
|
- defer time.Sleep(time.Millisecond * 1000)
|
|
|
- списСтр = сам.Сеть().ВебВоркер().Получ("https://wartank.ru/building-upgrade/Market")
|
|
|
- for _, стр = range списСтр {
|
|
|
- // <a class="simple-but border mb5" href="Market?19-1.ILinkListener-upgradeLink-link">
|
|
|
- if strings.Contains(стр, `ILinkListener-upgradeLink-link`) {
|
|
|
- еслиНайти = true
|
|
|
- break
|
|
|
- }
|
|
|
- }
|
|
|
- if !еслиНайти {
|
|
|
- return true
|
|
|
- }
|
|
|
- // Пробуем построить шахту
|
|
|
- _стр := strings.TrimPrefix(стр, "<a class=\"simple-but border mb5\" href=\"")
|
|
|
- _стр = strings.TrimSuffix(_стр, "\">")
|
|
|
- // https://wartank.ru/building-upgrade/Market?18-1.ILinkListener-upgradeLink-link
|
|
|
- // <a class="simple-but border mb5" href="Market?19-1.ILinkListener-upgradeLink-link">
|
|
|
- ссылка := "https://wartank.ru/building-upgrade/" + _стр
|
|
|
- списСтр = сам.Сеть().ВебВоркер().Получ(ссылка)
|
|
|
- // Проверить, что постройка состоялась
|
|
|
- for _, стр := range списСтр {
|
|
|
- if strings.Contains(стр, "ILinkListener-upgradeLink-link") {
|
|
|
- log.Printf("Рынок.построить().фнКупить(): покупка склада топлива не прошла\n\tlink=%v\n\tстр=\n\t%v\n", ссылка, стр)
|
|
|
- return false // Покупка не оплачена
|
|
|
- }
|
|
|
- }
|
|
|
- log.Printf("+++++Рынок.построить().фнКупить(): покупка склада топлива прошла\n")
|
|
|
- return true
|
|
|
- }
|
|
|
-
|
|
|
- фнПодтверждение := func() bool {
|
|
|
- for _, стр = range списСтр {
|
|
|
- // <a class="simple-but border w50 mXa mb10" w:id="confirmLink" href="../wicket/page?21-1.ILinkListener-confirmLink"><span><span>да, подтверждаю</span></span></a>
|
|
|
- if strings.Contains(стр, `ILinkListener-confirmLink`) {
|
|
|
- еслиНайти = true
|
|
|
- break
|
|
|
- }
|
|
|
- }
|
|
|
- if !еслиНайти {
|
|
|
- return true
|
|
|
- }
|
|
|
- // Пробуем построить шахту
|
|
|
- _стр := strings.TrimPrefix(стр, `<a class="simple-but border w50 mXa mb10" w:id="confirmLink" href="..`)
|
|
|
- _стр = strings.TrimSuffix(_стр, `"><span><span>да, подтверждаю</span></span></a>`)
|
|
|
- // https://wartank.ru/wicket/page?20-1.ILinkListener-confirmLink
|
|
|
- ссылка := "https://wartank.ru" + _стр
|
|
|
- списСтр = сам.Сеть().ВебВоркер().Получ(ссылка)
|
|
|
- // Проверить, что постройка состоялась
|
|
|
- for _, стр := range списСтр {
|
|
|
- if strings.Contains(стр, "<title>Вы сделали слишком большую паузу</title>") {
|
|
|
- log.Printf("Рынок.построить().фнПодтверждение(): подтверждение покупка склада топлива не прошла\n\tlink=%v\n\tстр=\n\t%v\n", ссылка, стр)
|
|
|
- return false // Покупка не оплачена
|
|
|
- }
|
|
|
- }
|
|
|
- log.Printf("+++++Рынок.построить().фнПодтверждение(): подтверждение покупка склада топлива прошла\n")
|
|
|
- return true
|
|
|
- }
|
|
|
-
|
|
|
- фнКомплекс := func() {
|
|
|
- for {
|
|
|
- if фнКупить() {
|
|
|
- if фнПодтверждение() {
|
|
|
- break
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- фнКомплекс()
|
|
|
- return true
|
|
|
-}
|
|
|
-*/
|
|
|
-
|
|
|
// Проверяет время ожидания рынка
|
|
|
func (сам *АренаРынок) проверОжидание() {
|
|
|
var (
|
|
|
@@ -259,64 +178,3 @@ func (сам *АренаРынок) проверОжидание() {
|
|
|
}
|
|
|
fnGetCountDown()
|
|
|
}
|
|
|
-
|
|
|
-// Проверяет рынок на режим покупки
|
|
|
-func (сам *АренаРынок) купитьЗолото() bool {
|
|
|
- var (
|
|
|
- ind int
|
|
|
- еслиНайдено bool
|
|
|
- strOut string
|
|
|
- lstMarket = сам.СписПолучить()
|
|
|
- strSilver string
|
|
|
- )
|
|
|
- for ind, strOut = range lstMarket {
|
|
|
- if strings.Contains(strOut, `alt="Серебро" title="Серебро"> `) {
|
|
|
- еслиНайдено = true
|
|
|
- break
|
|
|
- }
|
|
|
- }
|
|
|
- if !еслиНайдено { // Не найдена продажа золота за серебро
|
|
|
- return false
|
|
|
- }
|
|
|
- lstSilver := strings.Split(strOut, `<img class="ico vm" src="/images/icons/silver.png?2" alt="Серебро" title="Серебро"> `)
|
|
|
- strSilver = lstSilver[1]
|
|
|
- серебро := сам.конт.Get("серебро").Val().(int)
|
|
|
- еслиКупить := false
|
|
|
- switch strSilver {
|
|
|
- case "10", "50", "100", "500": // Допустимые суммы трат
|
|
|
- еслиКупить = true
|
|
|
- case "1000": // Если стоит тысяча серебра
|
|
|
- if серебро > 500_000 { // Если серебра больше полумиллиона -- покупаем
|
|
|
- еслиКупить = true
|
|
|
- }
|
|
|
- case "5000", "10000": // Если большая сумма -- можно купить и больше
|
|
|
- if серебро > 1_000_000 {
|
|
|
- еслиКупить = true
|
|
|
- }
|
|
|
- }
|
|
|
- if !еслиКупить {
|
|
|
- return false
|
|
|
- }
|
|
|
- ind -= 15
|
|
|
- strOut = lstMarket[ind]
|
|
|
- lstLink := strings.Split(strOut, `<a class="simple-but border mb5" href="`)
|
|
|
- if len(lstLink) < 2 {
|
|
|
- return false
|
|
|
- }
|
|
|
- strLink := lstLink[1]
|
|
|
- lstLink = strings.Split(strLink, `"><span><span>Получить `)
|
|
|
- strLink = "https://wartank.ru/" + lstLink[0]
|
|
|
- lstMarket, err := сам.Сеть().Get(strLink)
|
|
|
- if err != nil {
|
|
|
- // log._rintf("ERRO Market.buyGold(): при выполнении GET-команды на покупку золота, err=\n\t%v\n", err)
|
|
|
- return true
|
|
|
- }
|
|
|
- for _, strOut = range lstMarket {
|
|
|
- if strings.Contains(strOut, `Ошибка на сервере. Сообщение админу уже отправлено.`) {
|
|
|
- // log._rintf("ERRO Market.buyGold(): при получении lstMarket, strHTML=%v, err=\nt%v\n", strOut, err)
|
|
|
- return false
|
|
|
- }
|
|
|
- }
|
|
|
- сам.СтрОбновить(lstMarket)
|
|
|
- return true
|
|
|
-}
|