Бот работал отлично, работал 3 дня без сбоев, но вот пришло время качать Детонацию, и сразу же выявился очень неприятный глюк, как с ним бороться не знаю=( Когда есть камни, он нормально использует заклинание, когда камней нету и красных и зелёных, он нормально разбирает поле, а вот если 1-их камней на заклинание хватает, а 2-ых нет он пытается использовать заклинание и у него нечего не получается, дисквалификация=( Хотел найти где встроенные ИИ редактируются, но не нашёл. Может быть знаете как решить эту проблему? или готовы выложить свой ИИ на тупой кач этим заклинанием?
Детонация 2. Ошибка.
Сообщений 1 страница 13 из 13
Поделиться22009-06-14 14:38:15
Ещё определил то что, если красных камней хватает, а зелёных нет бот начинает тупить, а если зелёных хватает, а красных нет, то он нормально раскладывает поле в ручную без магии.
Очень сильно хотелось бы точно такой же скрипт, только рабочий=)
Отредактировано Axz (2009-06-14 14:39:24)
Поделиться32009-06-15 07:56:34
Вот код встроенной детонации. Адаптировать под скрипт не сложно, да и выйдет короче.
Point[] BotAIDitka()
{
Point[] p = new Point[2];
int creestCountR = Convert.ToInt32(tbScill1StownR.Text);
int creestCountB = Convert.ToInt32(tbScill1StownB.Text);
int creestCountG = Convert.ToInt32(tbScill1StownG.Text);
int lifeMinMyCreet = (int)(100 / 100 * 50);
Otchet currentViborOtchet = new Otchet();
if (MainOtchet.subOtchets.Count != 0)
{
if (StownRMe > StownGMe)
{
MainOtchet.subOtchets.Sort(new OtchetListComparerG(SortOrder.Descending));
}
else
{
MainOtchet.subOtchets.Sort(new OtchetListComparerR(SortOrder.Descending));
}
if (StownRMe >= creestCountR & StownBMe >= creestCountB & StownGMe >= creestCountG)
{
p[1] = p[0] = ((Otchet)MainOtchet.subOtchets[0]).p1;
lbCell11.Text = Convert.ToString(p[0].X);
lbCell12.Text = Convert.ToString(p[0].Y);
lbCell21.Text = Convert.ToString(p[1].X);
lbCell22.Text = Convert.ToString(p[1].Y);
if (p[0].X < 10)
{
p[0].X = 240 + p[0].X * (325 / 6) + (325 / 12);
p[0].Y = 20 + p[0].Y * (325 / 6) + (325 / 12);
}
return p;
}
for (int i = 0; i < MainOtchet.subOtchets.Count; i++)
{
Otchet tempOtchet;
tempOtchet = (Otchet)MainOtchet.subOtchets[i];
if (tempOtchet.DeadM == 0)
if (tempOtchet.combo6 > 0 | tempOtchet.combo5 > 0 | tempOtchet.combo4 > 0)
{
currentViborOtchet = (Otchet)MainOtchet.subOtchets[i];
p[0] = currentViborOtchet.p1;
p[1] = currentViborOtchet.p2;
if (tempOtchet.result == Result.Combo4)
break;
}
else
if (tempOtchet.result == Result.EndHod & (currentViborOtchet.combo6 == 0 & currentViborOtchet.combo5 == 0 & currentViborOtchet.combo4 == 0))
{
currentViborOtchet = (Otchet)MainOtchet.subOtchets[i];
p[0] = currentViborOtchet.p1;
p[1] = currentViborOtchet.p2;
break;
}
//MainOtchet.subOtchets.Sort(new MainOtchet.subOtchetsComparer(SortOrder.Descending));
if ((i == MainOtchet.subOtchets.Count - 1 & p[0] == p[1] & p[0] == new Point()) & (StownGMe < 84 & StownRMe < 84))
{
//if (StownRMe - 3 >= 0 & StownGMe - 3 >= 0 & StownBMe - 3 >= 0)
//{
// p[0] = p[1] = puhaMesto;
//}
//else
{
currentViborOtchet = (Otchet)MainOtchet.subOtchets[0];
p[0] = currentViborOtchet.p1;
p[1] = currentViborOtchet.p2;
}
}
}
if (/*LifeMe > lifeMinMy &*/ currentViborOtchet.combo4 == 0 & currentViborOtchet.combo5 == 0 & currentViborOtchet.combo6 == 0)
{
if (StownRMe > StownGMe)
{
MainOtchet.subOtchets.Sort(new OtchetListComparerG(SortOrder.Descending));
}
else
{
MainOtchet.subOtchets.Sort(new OtchetListComparerR(SortOrder.Descending));
}
for (int i = 0; i < MainOtchet.subOtchets.Count; i++)
{
Otchet tempOtchet;
tempOtchet = (Otchet)MainOtchet.subOtchets[i];
if (tempOtchet.DeadM == 0)
{
currentViborOtchet = (Otchet)MainOtchet.subOtchets[i];
p[0] = currentViborOtchet.p1;
p[1] = currentViborOtchet.p2;
break;
}
}
}
if (LifeMe < lifeMinMyCreet)
{
MainOtchet.subOtchets.Sort(new OtchetListComparerD(SortOrder.Descending));
currentViborOtchet = (Otchet)MainOtchet.subOtchets[0];
p[0] = currentViborOtchet.p1;
p[1] = currentViborOtchet.p2;
if (currentViborOtchet.DeadM < 5)
{
if (StownRMe - 3 >= 0 & StownGMe - 3 >= 0 & StownBMe - 3 >= 0)
{
p[0] = p[1] = puhaMesto;
}
}
}
lbCell11.Text = Convert.ToString(p[0].X);
lbCell12.Text = Convert.ToString(p[0].Y);
lbCell21.Text = Convert.ToString(p[1].X);
lbCell22.Text = Convert.ToString(p[1].Y);
if (p[0].X < 10)
{
p[0].X = 240 + p[0].X * (325 / 6) + (325 / 12);
p[0].Y = 20 + p[0].Y * (325 / 6) + (325 / 12);
p[1].X = 240 + p[1].X * (325 / 6) + (325 / 12);
p[1].Y = 20 + p[1].Y * (325 / 6) + (325 / 12);
}
}
return p;
}Поделиться42009-06-15 09:12:24
Ай-ай.. тут Си=(( йа его не знаю..
Может кто уже сталкивался с такой проблемой и есть уже готовый ИИ?
Отредактировано Axz (2009-06-15 09:13:36)
Поделиться52009-06-15 13:11:03
ну напиши ты скрипт на тупое тыкание в одну точку. это несложно.
Поделиться62009-06-15 14:26:57
Камней надо оч много, что бы тупо тыкать в 1 точку, встроенный то умный, но с небольшим косяком...
Я думал кто-нибудь уже с этим сталкивался и исправил уже=(
Поделиться72009-06-16 10:40:09
ммм... прокачал много мультов. Дитка качается идеально.
Проблем со встроеным скриптом не наблюдал. Может проблема в другом? А дитка просто попала в эти крит. моменты?
Камни на использование заклинания правильно выставил в боте?
Косяк может выйти, если ты установил дитку, допустим 1 лвла, апнул перс уровень, ты апнул следующий уровень дитки, а колличество необходимых камней не изменил в боте, вот он и тычет.
Проверь все как следует.
Повторюсь. У меня проблем не было, а мультов штук 30)))))
Поделиться82009-06-16 22:34:19
Не не, всё проверил, симптомы не изменилсь, когда красных камней больше, а зелёных не хватает.. всё бот начинает тупить и пропускает ходы.не верите проверьте сами)
Поделиться92009-06-17 09:36:57
тупит, есть такое дело, лечил тыканьем...
Поделиться102009-06-17 16:41:37
Может быть на помощь придёт создатель бота?)
Поделиться112009-07-03 00:36:06
TMGameBot реши пожалуйста проблему с диткой
Поделиться122009-07-03 18:43:10
TMGameBot реши пожалуйста проблему с диткой
сильно его разглядывать было лень, стер какой то участок(вроде из за него проблема) жди обновленную версию).
Поделиться132009-07-03 20:44:32
Спасибо, жду с нетерпением.