Объявления

Друзья, если не получается зарегистрироваться, напишите на почту vdv_forever@bk.ru.
Я оторву свою задницу от всех дел и обязательно Вас активирую! :smile10:
Добро пожаловать на геройский форум! :smile25:

Турнир по Кампании T-800

Информация об играх и турнирах оffline и online типов. Прими и ты участие в этом поистине увлекательном занятии. Познай вкус победы и горечь поражения! Здесь сражаются плечо о плечо настоящие герои!
offlineАватара пользователя
t800  
Ветеран
Ветеран
 
Сообщения: 982
Зарегистрирован: 22 июл 2015, 11:36
Пол: Не указан
Награды: 4
Наградной знак (1) Деревянный Щит (1) Золотой Меч (1) Серебряные Сапоги (1)
Поблагодарили: 191 раз.

Re: Турнир по Кампании T-800

Сообщение t800 » 16 сен 2016, 19:01

e.aratzev ответил, что на первых неделях компьютер несколько раз обменивается войсками между T-800 и Zom, и что в воровской гильдии это видно, еще сказал, что сейва когда T-800 передает войска Zoo у него нет и предоставил сейв где видно что Zom передает войска обратно T-800.

T_0018_hz_3.zip
(191.77 КБ) Скачиваний: 269
Последний раз редактировалось t800 16 сен 2016, 19:19, всего редактировалось 4 раз(а).
Вернуться к началу

offlineАватара пользователя
Владимир  
Эксперт
Эксперт
 
Сообщения: 1031
Зарегистрирован: 30 окт 2012, 18:37
Пол: Не указан
Награды: 3
Высшая медаль (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (1)
Поблагодарили: 614 раз.

Re: Турнир по Кампании T-800

Сообщение Владимир » 16 сен 2016, 19:12

Это читерство, пока не будет подтверждения обратного. :smile3:
Вернуться к началу

offlineАватара пользователя
t800  
Ветеран
Ветеран
 
Сообщения: 982
Зарегистрирован: 22 июл 2015, 11:36
Пол: Не указан
Награды: 4
Наградной знак (1) Деревянный Щит (1) Золотой Меч (1) Серебряные Сапоги (1)
Поблагодарили: 191 раз.

Re: Турнир по Кампании T-800

Сообщение t800 » 16 сен 2016, 19:21

Владимир писал(а):

Это читерство, пока не будет подтверждения обратного. :smile3:


Я сейв посмотрел, после хода компьютера в воровской гильдии видно что основной герой изменяется с Zom на T-800

[youtube]http://youtu.be/H8lANaInF20[/youtube]
Вернуться к началу

offlineАватара пользователя
Владимир  
Эксперт
Эксперт
 
Сообщения: 1031
Зарегистрирован: 30 окт 2012, 18:37
Пол: Не указан
Награды: 3
Высшая медаль (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (1)
Поблагодарили: 614 раз.

Re: Турнир по Кампании T-800

Сообщение Владимир » 16 сен 2016, 19:24

Естественно и логично. Под доказательством не-читерства я понимаю исключительно передачу войск от Т-800 к другому герою.
Вернуться к началу

offlineАватара пользователя
t800  
Ветеран
Ветеран
 
Сообщения: 982
Зарегистрирован: 22 июл 2015, 11:36
Пол: Не указан
Награды: 4
Наградной знак (1) Деревянный Щит (1) Золотой Меч (1) Серебряные Сапоги (1)
Поблагодарили: 191 раз.

Re: Турнир по Кампании T-800

Сообщение t800 » 17 сен 2016, 05:16

Владимир писал(а):

Естественно и логично. Под доказательством не-читерства я понимаю исключительно передачу войск от Т-800 к другому герою.


Мне кажется что обвинять игроков без доказательств в читерстве будет не совсем правильно.
Вернуться к началу

offlineАватара пользователя
t800  
Ветеран
Ветеран
 
Сообщения: 982
Зарегистрирован: 22 июл 2015, 11:36
Пол: Не указан
Награды: 4
Наградной знак (1) Деревянный Щит (1) Золотой Меч (1) Серебряные Сапоги (1)
Поблагодарили: 191 раз.

Re: Турнир по Кампании T-800

Сообщение t800 » 17 сен 2016, 05:42

Я сейчас посмотрел как AI делает обмен войсками.

Он делает его вот так:

Код: Выделить всё
void AIMeeting(Heroes & hero1, Heroes & hero2)
{
    if(Settings::Get().ExtWorldEyeEagleAsScholar())
        Heroes::ScholarAction(hero1, hero2);

    if(hero1.Modes(AI::HEROES_HUNTER))
   hero1.GetArmy().JoinStrongestFromArmy(hero2.GetArmy());
    else
    if(hero2.Modes(AI::HEROES_HUNTER))
   hero2.GetArmy().JoinStrongestFromArmy(hero1.GetArmy());
    else
    if(hero1.Modes(AI::HEROES_SCOUTER))
   hero1.GetArmy().KeepOnlyWeakestTroops(hero2.GetArmy());
    else
    if(hero2.Modes(AI::HEROES_SCOUTER))
   hero2.GetArmy().KeepOnlyWeakestTroops(hero1.GetArmy());

    // artifacts change
}


Т.е. полный обмен войсками между T-800 и Zom это нормально.

А статус кто HUNTER а кто SCOUTER AI назначает вот так

Код: Выделить всё
void AI::HeroesLevelUp(Heroes & hero)
{
    if(4 < hero.GetLevel() && !hero.Modes(AI::HEROES_HUNTER))
   hero.SetModes(AI::HEROES_HUNTER);

    if(9 < hero.GetLevel() && hero.Modes(AI::HEROES_SCOUTER))
   hero.ResetModes(AI::HEROES_SCOUTER);
}


Оценка идет по уровню героев ( стартовый опыт у T-800 (10 000 ), т.е. восьмой уровень (артифакты и знания при оценке не учитываются)

Еще AI может присваивать значение HUNTER или SCOUTER героям вот здесь

Код: Выделить всё
void AI::KingdomTurn(Kingdom & kingdom)
{
    KingdomHeroes & heroes = kingdom.GetHeroes();
    KingdomCastles & castles = kingdom.GetCastles();

    const int color = kingdom.GetColor();

    if(kingdom.isLoss() || color == Color::NONE)
    {
   kingdom.LossPostActions();
   return;
    }

    DEBUG(DBG_AI, DBG_INFO, Color::String(kingdom.GetColor()) << " funds: " << kingdom.GetFunds().String());

    if(! Settings::Get().MusicMIDI()) AGG::PlayMusic(MUS::COMPUTER);

    Interface::StatusWindow & status = Interface::Basic::Get().GetStatusWindow();
    AIKingdom & ai = AIKingdoms::Get(color);

    // turn indicator
    status.RedrawTurnProgress(0);

    // scan map
    ai.scans.clear();
    WorldStoreObjects(color, ai.scans);
    DEBUG(DBG_AI, DBG_INFO, Color::String(color) << ", size cache objects: " << ai.scans.size());

    // set capital
    if(NULL == ai.capital && castles.size())
    {
   KingdomCastles::iterator it = std::find_if(castles.begin(), castles.end(), Castle::PredicateIsCastle);

   if(castles.end() != it)
   {
       if(*it)
       {
      ai.capital = *it;
      ai.capital->SetModes(Castle::CAPITAL);
       }
   }
   else
   // first town
   {
       ai.capital = castles.front();
       ai.capital->SetModes(Castle::CAPITAL);
   }
    }

    // turn indicator
    status.RedrawTurnProgress(1);

    // castles AI turn
    std::for_each(castles.begin(), castles.end(), AICastleTurn);

    // need capture town?
    if(castles.empty())
   std::for_each(heroes.begin(), heroes.end(), AIHeroesCaptureNearestTown);

    // buy hero in capital
    if(ai.capital && ai.capital->isCastle())
    {
   u32 modes = 0;
   const u32 maxhero = Maps::XLARGE > world.w() ? (Maps::LARGE > world.w() ? 3 : 2) : 4;

   if(heroes.empty())
       modes = AI::HEROES_HUNTER|AI::HEROES_SCOUTER;
   else
   if(heroes.size() < maxhero ||
       0 == std::count_if(heroes.begin(), heroes.end(), std::bind2nd(std::mem_fun(&Heroes::Modes), AI::HEROES_SCOUTER)))
       modes = AI::HEROES_SCOUTER;

   if(modes &&
       heroes.size() < Kingdom::GetMaxHeroes())
   {
       Recruits & rec = kingdom.GetRecruits();
       Heroes* hero = ai.capital->GetHeroes().Guest();

       if(!hero)
       {
      if(rec.GetHero1() && rec.GetHero2())
          hero = ai.capital->RecruitHero(rec.GetHero1()->GetLevel() >= rec.GetHero2()->GetLevel() ? rec.GetHero1() : rec.GetHero2());
      else
      if(rec.GetHero1())
          hero = ai.capital->RecruitHero(rec.GetHero1());
      else
      if(rec.GetHero2())
          hero = ai.capital->RecruitHero(rec.GetHero2());

      if(hero)
          hero->SetModes(modes);
       }
   }
    }

    // set hunters
    if(ai.capital)
    {
   const size_t hunters =
      std::count_if(heroes.begin(), heroes.end(),
         std::bind2nd(std::mem_fun(&Heroes::Modes), AI::HEROES_HUNTER));

   // every time
   if(0 == hunters &&
       heroes.size())
   {
       KingdomHeroes::iterator it = std::find_if(heroes.begin(), heroes.end(),
            std::not1(std::bind2nd(std::mem_fun(&Heroes::Modes), Heroes::PATROL)));

       if(it != heroes.end() &&
      ! ai.capital->GetHeroes().Guest())
      AIHeroesSetHunterWithTarget((*it), ai.capital->GetIndex());
   }
   else
   // each month
   if(world.BeginMonth() && 1 < world.CountDay())
   {
       KingdomHeroes::iterator it =
          std::find_if(heroes.begin(), heroes.end(),
         std::bind2nd(std::mem_fun(&Heroes::Modes), AI::HEROES_HUNTER));

       if(it != heroes.end() &&
      ! ai.capital->GetHeroes().Guest())
      AIHeroesSetHunterWithTarget(*it, ai.capital->GetIndex());
   }
    }

    // update roles
    {
   std::for_each(heroes.begin(), heroes.end(), std::bind2nd(std::mem_fun(&Heroes::ResetModes), AI::HEROES_STUPID|AI::HEROES_WAITING));

   // init roles
   if(heroes.end() != std::find_if(heroes.begin(), heroes.end(),
      std::not1(std::bind2nd(std::mem_fun(&Heroes::Modes), AI::HEROES_SCOUTER|AI::HEROES_HUNTER))))
   {
       KingdomHeroes::iterator ith, first = heroes.end();

       while(heroes.end() != (ith = std::find_if(heroes.begin(), heroes.end(),
            std::not1(std::bind2nd(std::mem_fun(&Heroes::Modes),
                      // also skip patrol
                      AI::HEROES_HUNTER|AI::HEROES_SCOUTER|Heroes::PATROL)))))
       {
      if(first == heroes.end())
      {
          first = ith;
          if(*ith) (*ith)->SetModes(AI::HEROES_HUNTER|AI::HEROES_SCOUTER);
      }
      else
      if(*ith) (*ith)->SetModes(AI::HEROES_SCOUTER);
       }
   }
    }

    // turn indicator
    status.RedrawTurnProgress(2);

    // heroes turns
    std::for_each(heroes.begin(), heroes.end(), std::ptr_fun(&AIHeroesTurn));
    //std::for_each(heroes.begin(), heroes.end(), std::bind2nd(std::mem_fun(&Heroes::ResetModes), AI::HEROES_STUPID|AI::HEROES_WAITING));
    std::for_each(heroes.begin(), heroes.end(), std::ptr_fun(&AIHeroesTurn));
    std::for_each(heroes.begin(), heroes.end(), std::ptr_fun(&AIHeroesEnd));

    // turn indicator
    status.RedrawTurnProgress(9);

    DEBUG(DBG_AI, DBG_INFO, Color::String(color) << " moved");
}
Вернуться к началу

offlineАватара пользователя
Владимир  
Эксперт
Эксперт
 
Сообщения: 1031
Зарегистрирован: 30 окт 2012, 18:37
Пол: Не указан
Награды: 3
Высшая медаль (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (1)
Поблагодарили: 614 раз.

Re: Турнир по Кампании T-800

Сообщение Владимир » 17 сен 2016, 08:13

Насколько я помню поведение ИИ в обычных H2, там усиление героя, которого компьютеру нельзя терять, имеет чуть ли не высший приоритет, передача войск другому герою оказывается в принципе невозможной.

t800 писал(а):

Мне кажется что обвинять игроков без доказательств в читерстве будет не совсем правильно.

Если так уверен, покажи сам, как войска передаются второстепенному герою. Не в виде "вот этот код делает", а в виде игровой ситуации.
Вернуться к началу

offlineАватара пользователя
t800  
Ветеран
Ветеран
 
Сообщения: 982
Зарегистрирован: 22 июл 2015, 11:36
Пол: Не указан
Награды: 4
Наградной знак (1) Деревянный Щит (1) Золотой Меч (1) Серебряные Сапоги (1)
Поблагодарили: 191 раз.

Re: Турнир по Кампании T-800

Сообщение t800 » 17 сен 2016, 12:06

Владимир писал(а):

t800 писал(а):

Мне кажется что обвинять игроков без доказательств в читерстве будет не совсем правильно.

Если так уверен, покажи сам, как войска передаются второстепенному герою. Не в виде "вот этот код делает", а в виде игровой ситуации.


Ну на все 100 я не уверен, просто если смотреть каманды как работает AI то такой обмен он сделать может.
Вернуться к началу

offlineQwerty  
Подмастерье
Подмастерье
 
Сообщения: 198
Зарегистрирован: 20 янв 2012, 12:04
Пол: Не указан
Награды: 3
Наградной знак (3)
Поблагодарили: 67 раз.

Re: Турнир по Кампании T-800

Сообщение Qwerty » 17 сен 2016, 12:10

Ну что ж. в духе олдскула было бы выиграть турнир честно несмотря на "странности".
Думается мне, если я смогу это сделать, мой судейский и турнирный опыт станет восприниматься у молодого поколения серьёзней.

Насколько я понял, есть время до 30 сентября.
Вернуться к началу

offlineАватара пользователя
t800  
Ветеран
Ветеран
 
Сообщения: 982
Зарегистрирован: 22 июл 2015, 11:36
Пол: Не указан
Награды: 4
Наградной знак (1) Деревянный Щит (1) Золотой Меч (1) Серебряные Сапоги (1)
Поблагодарили: 191 раз.

Re: Турнир по Кампании T-800

Сообщение t800 » 17 сен 2016, 13:47

Qwerty писал(а):

Насколько я понял, есть время до 30 сентября.


Да, все правильно: Сроки проведения турнира: с 1 августа 2016 года по 30 сентября 2016 (включительно!)
Вернуться к началу

Пред.След.

Вернуться в Игры и Турниры

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2