Alexell / XEmpireBot

Bot that earn money in X Empire (Musk Empire)
137 stars 35 forks source link

Микробаг PvP #15

Closed asafov closed 4 months ago

asafov commented 4 months ago

Суть в том, что оказывается у лиги есть максимальный уровень и на моем 15 уровне мне доступен минимум Gold. Соответственно есть 2 варианта. Или повышать уровень лиги если указанный недоступен или отключать PvP для аккаунта. Автоповышение уровня лиги можно сделать отдельной настройкой в env, по умолчанию false.

Alexell commented 4 months ago

Я сделал переговоры с рассчетом на то, что лигу вы указываете руками в .env. И поскольку бот пока не прокачивает скиллы, во время его работы уровень сам никак не поднимется. А если вы отключали бот и подняли уровень, то поменяйте лигу перед включением бота. Выбирать лигу автоматически - плохая идея, т.к. переговоры, это и так риски, а если вдруг выбрать лигу выше, то вы можете потерять все деньги в переговорах. Мне показалось, что отдать контроль над лигой пользователю - самый безопасный вариант. Например, как пользователь, я бы не хотел, чтобы у меня silver на gold сменилась, т.к. там уже большие деньги на контракты идут и у меня для gold лиги недостаточная прокачка переговоров.

Я до 15 уровня еще не дошел, поэтому то, что у лиги есть максимальный уровень, для меня тоже новость. Однако, мне не понятно, откуда берётся эта инфа. В dbs про лиги есть только следующее:

        "dbNegotiationsLeague": [
            {
                "key": "bronze",
                "title": "Бронза",
                "minContract": 5000,
                "maxContract": 10000,
                "img": null,
                "dependenciesSkills": [],
                "requiredLevel": 1,
                "color": "#F8B374",
                "bgColor": "linear-gradient(135deg, #c47a45, #5e4136 40%)"
            },
            {
                "key": "silver",
                "title": "Серебро",
                "minContract": 50000,
                "maxContract": 100000,
                "img": null,
                "dependenciesSkills": [],
                "requiredLevel": 4,
                "color": "#DFE8EE",
                "bgColor": "linear-gradient(135deg, #98a6b0, #5c6a7b 40%)"
            },
            {
                "key": "gold",
                "title": "Золото",
                "minContract": 500000,
                "maxContract": 1000000,
                "img": null,
                "dependenciesSkills": [],
                "requiredLevel": 8,
                "color": "#FEDE8E",
                "bgColor": "linear-gradient(135deg, #b39155, #695431 40%)"
            },
            {
                "key": "platina",
                "title": "Платина",
                "minContract": 5000000,
                "maxContract": 10000000,
                "img": null,
                "dependenciesSkills": [],
                "requiredLevel": 10,
                "color": "#FAE7D2",
                "bgColor": "linear-gradient(135deg, #E9DBCC, #80797b 40%)"
            },
            {
                "key": "diamond",
                "title": "Алмаз",
                "minContract": 50000000,
                "maxContract": 100000000,
                "img": null,
                "dependenciesSkills": [],
                "requiredLevel": 13,
                "color": "#FFEFFE",
                "bgColor": "linear-gradient(135deg, #F7DAF4, #9aafbf 40%)"
            }
        ]

То есть есть минимальный уровень, но нет максимального.

asafov commented 4 months ago
  1. Относительно указания лиги руками - у меня 1 прокаченный аккаунт (15 уровень) и два низкого. Какую лигу судя по скрину я указывать должен? image
  2. Насчёт что как пользователь Вы не хотели бы автоматику выбора лиги - я выше предложил в env ограничить данный функционал.
  3. Посмотрите свежий dbs - видимо недавно ввели. image

На самом деле я просто подсветил проблему) Реагировать или нет - дело Ваше)

Alexell commented 4 months ago
  1. По изначальной задумке - какую хотите. Такую, на которую с рисками согласны. Я выше серебрянной не ставлю, пока уровень позволяет.
  2. Похоже я не успеваю за обновлениями игры, не знал, что dbs обновился, надо глянуть, может там что-то еще обновилось.

Раз теперь есть сведения для мин и макс уровня лиги, я сделаю правки, чтобы это учитывалось. Тогда пусть будет как вы предложили: если лига, указанная в настройках стала недоступной (поднялся уровень), поднимаем лигу, но только если еще одна настройка будет True. Или может имеет смысл помимо этого ввести дополнительный режим выбора лиги "auto"? Если указать это в параметре, всегда будет выбираться самая низкая лига, какая доступна по уровню. Так и рисков будет меньше и руками ничего править не надо и подниматься будет сама. Или вообще только auto оставить и убрать этот параметр? Всегда будут переговоры в самой низкой лиге из доступных.

asafov commented 4 months ago

Идея ввести авто для выбора самой низкой доступной лиги мне кажется было бы шикарной. С точки зрения универсальности думаю надо скомбинировать параметр auto с доп. env'ом (AUTO_UPGRADE_LEAGUE например). Проще говоря будет больше возможностей. Захотел - поставил auto и будет выбираться самая низкая. Иначе если стоит например gold, то он автоматически увеличивается если gold перестал быть доступным.

На отвлеченную тему - стоит поправить readme. API_ID и API_HASH врядли имеет отношение, что платформа Android)

Alexell commented 4 months ago

Тогда если PVP_LEAGUE=auto, то выбирается самая низкая из доступных, а AUTO_UPGRADE_LEAGUE не учитывается. А если PVP_LEAGUE=gold (или другая лига), то если она больше недоступна, повышаем, если AUTO_UPGRADE_LEAGUE=True, иначе отключаем PvP. Я все верно понял?

Ок, readme поправлю.

asafov commented 4 months ago

Да, считаю так будет идеально.

Alexell commented 4 months ago

Согласен. Да будет так.