Browse Source

d03 Исправление ошибки поиска топлива

SVI 2 năm trước cách đây
mục cha
commit
45b01bddc8

+ 13 - 13
server/gui/win_main/win_main.go

@@ -25,8 +25,8 @@ type WinMain struct {
 	fyne.Window
 	serv           types.ИСервер
 	app            fyne.App
-	botLogin       string
-	botPass        string
+	ботВход       string
+	ботПароль        string
 	boxLeft        *fyne.Container
 	tabBot         *container.AppTabs // Просмотр параметров бота
 	entLogin       *widget.Label      // Логин текущего бота
@@ -224,11 +224,11 @@ func (sf *WinMain) resetStat() {
 func (sf *WinMain) showStat() {
 	for {
 		time.Sleep(time.Millisecond * 500)
-		sf.botLogin = sf.entLogin.Text
-		if sf.botLogin == "" {
+		sf.ботВход = sf.entLogin.Text
+		if sf.ботВход == "" {
 			continue
 		}
-		bot := sf.serv.ServBots().Get(sf.botLogin)
+		bot := sf.serv.ServBots().Get(sf.ботВход)
 		{ // Левый фрейм статы
 			sf.lblFuel.Text = fmt.Sprint(bot.Ангар().Топливо().Получ())
 			sf.lblFuel.Refresh()
@@ -309,13 +309,13 @@ func (sf *WinMain) showStat() {
 // Выставляет признак автоматического начала игры при запуске бото-фермы
 func (sf *WinMain) clickAutoGame(isAutoGame bool) {
 	log.Printf("WinMain.clickAutoGame(): login:%q\t isAutoGame=%v\n", sf.entLogin.Text, isAutoGame)
-	sf.botLogin = sf.entLogin.Text
-	if sf.botLogin == "" {
+	sf.ботВход = sf.entLogin.Text
+	if sf.ботВход == "" {
 		sf.checkAutoGame.Checked = false
 		return
 	}
 	// Сохранить автозапуск бота
-	bot := sf.serv.ServBots().Get(sf.botLogin)
+	bot := sf.serv.ServBots().Get(sf.ботВход)
 	switch isAutoGame {
 	case true: // Автозапуск бота
 		bot.АвтоИграУст()
@@ -365,16 +365,16 @@ func (sf *WinMain) addBot(login, pass string) {
 		log.Printf("WinMain.addBot(): pass is empty")
 		return
 	}
-	sf.botLogin = login
-	sf.botPass = pass
-	log.Printf("WinMain.addBot(): %q\n", sf.botLogin)
+	sf.ботВход = login
+	sf.ботПароль = pass
+	log.Printf("WinMain.addBot(): %q\n", sf.ботВход)
 	err := sf.serv.ServBots().NewBot(login, pass)
 	if err != nil {
 		log.Printf("WinMain.addBot() in add bot to ferma, err=\n\t%v\n", err)
 		return
 	}
-	if sf.botPass == strMainPass {
-		sf.botPass = "Default"
+	if sf.ботПароль == strMainPass {
+		sf.ботПароль = "Default"
 	}
 	btnBot := widget.NewButton(login, sf.btnBotClick(login))
 	sf.boxLeft.Add(btnBot)

+ 12 - 12
server/serv_bots/warbot/angar/angar.go

@@ -43,7 +43,7 @@ type Angar struct {
 	золото        types.ИСтатПарам
 	уровень       types.ИСтатПарам
 	progress      types.ИСтатПарам
-	топливо       *fuel.Fuel
+	топливо       *fuel.Топливо
 	игроковОнлайн types.ИСтатПарам
 
 	сереброВсего types.ИСтатПарам
@@ -84,7 +84,7 @@ func НовАнгар(bot types.ИБот) (*Angar, error) {
 	if ош != nil {
 		return nil, fmt.Errorf("НовАнгар(): при создании статистики серебра заработанного за сессию, ош=\n\t%w", ош)
 	}
-	sf := &Angar{
+	сам := &Angar{
 		Section:       section,
 		бот:           bot,
 		золото:        золото,
@@ -96,61 +96,61 @@ func НовАнгар(bot types.ИБот) (*Angar, error) {
 		silverOnline: сереброСессия,
 	}
 	{ // Сеть
-		sf.сеть, err = angarnet.NewAngarNet(sf)
+		сам.сеть, err = angarnet.NewAngarNet(сам)
 		if err != nil {
 			return nil, fmt.Errorf("НовАнгар(): in create <AngarNet>, err=\n\t%w", err)
 		}
 	}
 	{ // Сеть атаки
-		sf.netKill, err = angar_attack.NewAngarAttack(sf)
+		сам.netKill, err = angar_attack.NewAngarAttack(сам)
 		if err != nil {
 			return nil, fmt.Errorf("НовАнгар(): in create <AngarAttackNet>, err=\n\t%w", err)
 		}
 	}
 	{ // Статистика
-		sf.сетьСтат, err = netstat.NewNetStat(sf.бот)
+		сам.сетьСтат, err = netstat.NewNetStat(сам.бот)
 		if err != nil {
 			return nil, fmt.Errorf("НовАнгар(): in create NetResource, err=\n\t%w", err)
 		}
 	}
 	{ // Convoy
-		sf.конвой, err = convoy.NewConvoy(sf.бот)
+		сам.конвой, err = convoy.NewConvoy(сам.бот)
 		if err != nil {
 			return nil, fmt.Errorf("НовАнгар(): in create IConvoy, err=\n\t%w", err)
 		}
 	}
 	{ // Сражение
-		sf.сражение, err = battle.NewBattle(sf.бот)
+		сам.сражение, err = battle.NewBattle(сам.бот)
 		if err != nil {
 			return nil, fmt.Errorf("НовАнгар(): in create IBattle, err=\n\t%w", err)
 		}
 	}
 	{ // Битва мастеров
-		sf.битва, err = batmas.NewBatMas(sf.бот)
+		сам.битва, err = batmas.NewBatMas(сам.бот)
 		if err != nil {
 			return nil, fmt.Errorf("НовАнгар(): in create *BatMas, err=\n\t%w", err)
 		}
 		// go sf.batMas.Run()
 	}
 	{ // База
-		sf.база, err = base.NewBase(sf)
+		сам.база, err = base.NewBase(сам)
 		if err != nil {
 			return nil, fmt.Errorf("НовАнгар(): in make IBase, err=\n\t%w", err)
 		}
 	}
 	{ // Миссии
-		sf.миссии, err = missions.NewMissions(sf.бот)
+		сам.миссии, err = missions.NewMissions(сам.бот)
 		if err != nil {
 			return nil, fmt.Errorf("НовАнгар(): in make *Missions, err=\n\t%w", err)
 		}
 	}
 	{ // Топливо
-		sf.топливо, err = fuel.NewFuel(sf)
+		сам.топливо, err = fuel.НовТопливо(сам)
 		if err != nil {
 			return nil, fmt.Errorf("НовАнгар(): in make *Missions, err=\n\t%w", err)
 		}
 	}
-	return sf, nil
+	return сам, nil
 }
 
 // запускает обработку ангара

+ 19 - 16
server/serv_bots/warbot/angar/fuel/fuel.go

@@ -6,40 +6,41 @@ import (
 	"strconv"
 	"strings"
 	"time"
+	"log"
 
 	"wartank/pkg/types"
 	"wartank/server/serv_bots/warbot/tank/tankstat/static_param"
 )
 
-// Fuel -- топливо в баке
-type Fuel struct {
+// Топливо -- топливо в баке
+type Топливо struct {
 	ангар   types.ИАнгар
 	топливо types.ИСтатПарам
 }
 
-// NewFuel -- возвращает новый топливный бак
-func NewFuel(angar types.ИАнгар) (*Fuel, error) {
-	if angar == nil {
+// НовТопливо -- возвращает новый топливный бак
+func НовТопливо(ангар types.ИАнгар) (*Топливо, error) {
+	if ангар == nil {
 		return nil, fmt.Errorf("NewFuel(): IAngar == nil")
 	}
 	топливо, ош := static_param.НовСтатПарам("fuel")
 	if ош != nil {
 		return nil, fmt.Errorf("NewFuel(): при создании стат топливо, ош=\n\t%w", ош)
 	}
-	sf := &Fuel{
-		ангар:   angar,
+	sf := &Топливо{
+		ангар:   ангар,
 		топливо: топливо,
 	}
 	return sf, nil
 }
 
 // Run -- должен работать в отдельном потоке, контролит топливо
-func (sf *Fuel) Run() {
+func (sf *Топливо) Run() {
 	count := 0 // Каждые 1500 сек (100 топлива проверять принудительно)
 	for {
 		time.Sleep(time.Second * 15)
-		if sf.топливо.Получ() == 0 || count >= 100 {
-			sf.findFuel()
+		if sf.топливо.Получ() < 314 {
+			sf.топливоНайти()
 			count = 0
 			continue
 		}
@@ -52,11 +53,8 @@ func (sf *Fuel) Run() {
 }
 
 // Ищет в теле текста ангара топливо
-func (sf *Fuel) findFuel() {
+func (sf *Топливо) топливоНайти() {
 	// _mt.Println("\tAngarNet.findFuel()")
-	if sf.топливо.Получ() > 314 {
-		return
-	}
 	lstAngar := sf.ангар.СписПолучить()
 	var strOut string
 	for _, strFuel := range lstAngar {
@@ -68,7 +66,12 @@ func (sf *Fuel) findFuel() {
 	// Выделить топливо
 	lstFuel := strings.Split(strOut, `<img title="Топливо" alt="Топливо" src="/images/icons/fuel.png?2"/> `)
 	// Здесь бывает ошибка (когда возвращена пустая строка)
-	if len(lstFuel) == 0 || lstFuel[0] == "" {
+	if len(lstFuel) != 2{
+		log.Printf("ERRO Топливо.топливоНайти(): при поиске строки тплива, стр=\n\t%v\n", strOut)
+		return
+	}
+	if lstFuel[1] == "" {
+		log.Printf("ERRO Топливо.топливоНайти(): пустое значение в строке тплива, стр=\n\t%v\n", strOut)
 		return
 	}
 	strFuel := lstFuel[1]
@@ -85,6 +88,6 @@ func (sf *Fuel) findFuel() {
 }
 
 // Fuel -- возвращает объект сстатическог опараметра топлива
-func (sf *Fuel) Fuel() types.ИСтатПарам {
+func (sf *Топливо) Fuel() types.ИСтатПарам {
 	return sf.топливо
 }