|
|
@@ -89,16 +89,13 @@ func (сам *Оружейная) пуск() {
|
|
|
time.Sleep(time.Second * 3)
|
|
|
фнРабота := func() {
|
|
|
defer time.Sleep(time.Minute * 5) // Интервал 5 минут (кратно интервалу производства -- от 40 минут до 1 часа)
|
|
|
- сам.СтатаОбновить()
|
|
|
- if сам.забрать() {
|
|
|
- if сам.сделать() {
|
|
|
- time.Sleep(time.Minute * 5)
|
|
|
- }
|
|
|
- }
|
|
|
if сам.построитьУлучшить() {
|
|
|
time.Sleep(time.Minute * 25)
|
|
|
return
|
|
|
}
|
|
|
+ сам.СтатаОбновить()
|
|
|
+ сам.забрать()
|
|
|
+ сам.сделать()
|
|
|
}
|
|
|
for {
|
|
|
select {
|
|
|
@@ -127,7 +124,7 @@ func (сам *Оружейная) забрать() bool {
|
|
|
lstBase = сам.СписПолучить()
|
|
|
)
|
|
|
for ind, strOut = range lstBase {
|
|
|
- if strings.Contains(strOut, `Производит снаряды, ремкомплекты<br/>`) {
|
|
|
+ if strings.Contains(strOut, `Моя амуниция`) {
|
|
|
еслиНайдено = true
|
|
|
ind += 17
|
|
|
strOut = lstBase[ind]
|
|
|
@@ -370,7 +367,9 @@ func (сам *Оружейная) сделать() bool {
|
|
|
{ // Контроль ремки по времени суток и минимальному количеству
|
|
|
iRemka := сам.Ремки().Получ()
|
|
|
if iRemka < 70 {
|
|
|
- return сам.сделатьРемку()
|
|
|
+ for сам.сделатьРемку() {
|
|
|
+ }
|
|
|
+ return true
|
|
|
}
|
|
|
}
|
|
|
{ // Контроль по числу снарядов. В равных долях без приоритетов
|
|
|
@@ -391,11 +390,14 @@ func (сам *Оружейная) сделать() bool {
|
|
|
}
|
|
|
switch typeArmor {
|
|
|
case стрФугасы: // Мало фугасов
|
|
|
- сам.сдлатьФугасы()
|
|
|
+ for !сам.сделатьФугасы() {
|
|
|
+ }
|
|
|
case стрКумулятивы: // Мало кумулятивов
|
|
|
- сам.сделатьКумули()
|
|
|
+ for !сам.сделатьКумули() {
|
|
|
+ }
|
|
|
case стрБронебойки: // Мало бронебойных
|
|
|
- сам.сделатьБронебойки()
|
|
|
+ for !сам.сделатьБронебойки() {
|
|
|
+ }
|
|
|
default:
|
|
|
// log._rintf("ERRO Оружейная.сделать(): неизвестный тип арсенала(%v)", typeArmor)
|
|
|
}
|
|
|
@@ -404,136 +406,145 @@ func (сам *Оружейная) сделать() bool {
|
|
|
}
|
|
|
|
|
|
// Создать бронебойные
|
|
|
-func (сам *Оружейная) сделатьБронебойки() {
|
|
|
+func (сам *Оружейная) сделатьБронебойки() bool {
|
|
|
var (
|
|
|
- strOut string
|
|
|
- lstArsenal = сам.СписПолучить()
|
|
|
- iсамind bool
|
|
|
+ стрВых string
|
|
|
+ lstArsenal = сам.СписПолучить()
|
|
|
+ еслиНайдено bool
|
|
|
+ инд int
|
|
|
)
|
|
|
- for ind, strArmor := range lstArsenal {
|
|
|
- if strings.Contains(strArmor, `<span class="green2">Бронебойный снаряд</span><br/>`) {
|
|
|
- strOut = lstArsenal[ind+10]
|
|
|
- iсамind = true
|
|
|
+ for инд, стрВых = range lstArsenal {
|
|
|
+ if strings.Contains(стрВых, `<span class="green2">Бронебойный снаряд</span><br/>`) {
|
|
|
+ еслиНайдено = true
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
- if !iсамind {
|
|
|
- return
|
|
|
+ if !еслиНайдено {
|
|
|
+ return false
|
|
|
}
|
|
|
- if strOut == `<div class="clrb"></div>` { // Уже запущено производство
|
|
|
- return
|
|
|
+ стрВых = lstArsenal[инд+10]
|
|
|
+ if стрВых == `<div class="clrb"></div>` { // Уже запущено производство
|
|
|
+ return false
|
|
|
}
|
|
|
- if strOut == `</div></div></div></div></div></div></div></div>` { // Уже запущено производство
|
|
|
- return
|
|
|
+ if стрВых == `</div></div></div></div></div></div></div></div>` { // Уже запущено производство
|
|
|
+ return false
|
|
|
}
|
|
|
// Получить ссылку на бронебойные
|
|
|
- lstArmor := strings.Split(strOut, `<a class="simple-but border" href="`)
|
|
|
+ lstArmor := strings.Split(стрВых, `<a class="simple-but border" href="`)
|
|
|
strLink := lstArmor[1]
|
|
|
lstArmor = strings.Split(strLink, `"><span><span>Начать производство</span></span></a>`)
|
|
|
strLink = "https://wartank.ru/production/" + lstArmor[0]
|
|
|
+ time.Sleep(time.Millisecond * 50)
|
|
|
if _, err := сам.сеть.Get(strLink); err != nil {
|
|
|
// log._rintf("ERRO ArsenalNet.makeArmor(): in update lstArsenal, err=\n\t%v\n", err)
|
|
|
- return
|
|
|
+ return false
|
|
|
}
|
|
|
сам.СценаРежим().РежимУст(стрБронебойки)
|
|
|
+ return true
|
|
|
}
|
|
|
|
|
|
// Создать кумулятивные
|
|
|
-func (сам *Оружейная) сделатьКумули() {
|
|
|
+func (сам *Оружейная) сделатьКумули() bool {
|
|
|
var (
|
|
|
- strOut string
|
|
|
- lstArsenal = сам.СписПолучить()
|
|
|
- iсамind bool
|
|
|
- ind int
|
|
|
+ стрВых string
|
|
|
+ lstArsenal = сам.СписПолучить()
|
|
|
+ еслиНайдено bool
|
|
|
+ инд int
|
|
|
)
|
|
|
- for ind, strOut = range lstArsenal {
|
|
|
- if strings.Contains(strOut, `<span class="green2">Кумулятивный снаряд</span><br/>`) {
|
|
|
- ind += 10
|
|
|
- strOut = lstArsenal[ind]
|
|
|
- iсамind = true
|
|
|
+ for инд, стрВых = range lstArsenal {
|
|
|
+ if strings.Contains(стрВых, `<span class="green2">Кумулятивный снаряд</span><br/>`) {
|
|
|
+ еслиНайдено = true
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
- if !iсамind {
|
|
|
- return
|
|
|
+ if !еслиНайдено {
|
|
|
+ return false
|
|
|
}
|
|
|
- if !strings.Contains(strOut, `>Начать производство<`) {
|
|
|
- return
|
|
|
+ стрВых = lstArsenal[инд+10]
|
|
|
+ if !strings.Contains(стрВых, `>Начать производство<`) {
|
|
|
+ return false
|
|
|
}
|
|
|
// Получить ссылку на кумулятив
|
|
|
- lstKumul := strings.Split(strOut, `<a class="simple-but border" href="`)
|
|
|
+ lstKumul := strings.Split(стрВых, `<a class="simple-but border" href="`)
|
|
|
strLink := lstKumul[1]
|
|
|
lstKumul = strings.Split(strLink, `"><span><span>Начать производство</span></span></a>`)
|
|
|
strLink = "https://wartank.ru/production/" + lstKumul[0]
|
|
|
+ time.Sleep(time.Millisecond * 50)
|
|
|
if _, err := сам.сеть.Get(strLink); err != nil {
|
|
|
// log._rintf("ERRO ArsenalNet.makeKumul(): in make product arsenal kumul , err=\n\t%v\n", err)
|
|
|
- return
|
|
|
+ return false
|
|
|
}
|
|
|
сам.СценаРежим().РежимУст(стрКумулятивы)
|
|
|
+ return true
|
|
|
}
|
|
|
|
|
|
// Создать фугасы
|
|
|
-func (сам *Оружейная) сдлатьФугасы() {
|
|
|
+func (сам *Оружейная) сделатьФугасы() bool {
|
|
|
var (
|
|
|
lstArsenal = сам.СписПолучить()
|
|
|
- strOut = ""
|
|
|
- iсамind bool
|
|
|
- ind int
|
|
|
+ стрВых = ""
|
|
|
+ еслиНадено bool
|
|
|
+ инд int
|
|
|
)
|
|
|
|
|
|
- for ind, strOut = range lstArsenal {
|
|
|
- if strings.Contains(strOut, `<span class="green2">Фугасный снаряд</span><br/>`) {
|
|
|
- strOut = lstArsenal[ind+10]
|
|
|
- iсамind = true
|
|
|
+ for инд, стрВых = range lstArsenal {
|
|
|
+ if strings.Contains(стрВых, `<span class="green2">Фугасный снаряд</span><br/>`) {
|
|
|
+ еслиНадено = true
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
- if !iсамind {
|
|
|
- return
|
|
|
+ if !еслиНадено {
|
|
|
+ return false
|
|
|
}
|
|
|
- if !strings.Contains(strOut, `"><span><span>Начать производство</span></span></a>`) {
|
|
|
- return
|
|
|
+ стрВых = lstArsenal[инд+10]
|
|
|
+ if !strings.Contains(стрВых, `"><span><span>Начать производство</span></span></a>`) {
|
|
|
+ return false
|
|
|
}
|
|
|
// Получить ссылку на ремку
|
|
|
- lstKumul := strings.Split(strOut, `<a class="simple-but border" href="`)
|
|
|
+ lstKumul := strings.Split(стрВых, `<a class="simple-but border" href="`)
|
|
|
strLink := lstKumul[1]
|
|
|
lstKumul = strings.Split(strLink, `"><span><span>Начать производство</span></span></a>`)
|
|
|
strLink = "https://wartank.ru/production/" + lstKumul[0]
|
|
|
+ time.Sleep(time.Millisecond * 50)
|
|
|
if _, err := сам.сеть.Get(strLink); err != nil {
|
|
|
// log._rintf("ERRO ArsenalNet.makeFugas(): in make request arsenal product, err=\n\t%v\n", err)
|
|
|
- return
|
|
|
+ return false
|
|
|
}
|
|
|
сам.СценаРежим().РежимУст(стрФугасы)
|
|
|
// log._rintf("INFO Оружейная.makeFugas()\n")
|
|
|
+ return true
|
|
|
}
|
|
|
|
|
|
// Создать ремку. Выполняется если подходят условия
|
|
|
func (сам *Оружейная) сделатьРемку() bool {
|
|
|
// _mt.Println("\tArsenalNet.makeRemka()")
|
|
|
var (
|
|
|
- strOut = ""
|
|
|
- iсамind bool
|
|
|
+ стрВых = ""
|
|
|
+ еслиНайдено bool
|
|
|
+ инд int
|
|
|
)
|
|
|
lstArsenal, ош := сам.сеть.Клиент().Get("https://wartank.ru/production/Armory")
|
|
|
if ош != nil {
|
|
|
log.Printf("Оружейная.сделатьРемку(): при получении страницы оружейки, err=\n\t%v\n", ош)
|
|
|
return false
|
|
|
}
|
|
|
- // <a class="simple-but border" href="Armory?55-1.ILinkListener-productions-0-production-startProduceLink"><span><span>Начать производство</span></span></a>
|
|
|
- for _, strOut = range lstArsenal {
|
|
|
- if strings.Contains(strOut, `.ILinkListener-productions-0-production-startProduceLink`) {
|
|
|
- iсамind = true
|
|
|
+ // <span class="green2">Ремкомплект</span><br/>
|
|
|
+ for инд, стрВых = range lstArsenal {
|
|
|
+ if strings.Contains(стрВых, `<span class="green2">Ремкомплект</span><br/>`) {
|
|
|
+ еслиНайдено = true
|
|
|
break
|
|
|
}
|
|
|
}
|
|
|
- if !iсамind {
|
|
|
+ if !еслиНайдено {
|
|
|
return false
|
|
|
}
|
|
|
+ стрВых = lstArsenal[инд+10]
|
|
|
// Получить ссылку на ремку
|
|
|
- _ссылка := strings.TrimPrefix(strOut, `<a class="simple-but border" href="`)
|
|
|
+ _ссылка := strings.TrimPrefix(стрВых, `<a class="simple-but border" href="`)
|
|
|
_ссылка = strings.TrimSuffix(_ссылка, `"><span><span>Начать производство</span></span></a>`)
|
|
|
- // https://wartank.ru/production/Armory?54-1.ILinkListener-productions-0-production-startProduceLink
|
|
|
+ // https://wartank.ru/production/Armory?37-1.ILinkListener-productions-3-production-startProduceLink
|
|
|
ссылка := "https://wartank.ru/production/" + _ссылка
|
|
|
+ time.Sleep(time.Millisecond * 50)
|
|
|
if _, err := сам.сеть.Клиент().Get(ссылка); err != nil {
|
|
|
log.Printf("Оружейная.сделатьРемку(): при отдаче команды сделать ремку, err=\n\t%v\n", err)
|
|
|
return false
|