А я тут отвечу.
1) Видите сообщение с кодом.
2) нажимаете Цитировать
3) Копируете код и он сохраняет своё форматирование.
Да, проблемно, но другого решения нету на данный момент.
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Combots Бот для БК » Сообщения от anahronik
А я тут отвечу.
1) Видите сообщение с кодом.
2) нажимаете Цитировать
3) Копируете код и он сохраняет своё форматирование.
Да, проблемно, но другого решения нету на данный момент.
Update
Обновлено дофига всего.
Добавлено обновление фрэйма для прицепа перед мобами.
Добавлена переменная для приёмов, хранящая значение количества смертей в походе.
Добавлен фильтр подъема/отказа от вещей.
P.S.
Задолбаетесь настраивать, но уж если настроите - то будет вам счастье
P.P.S.
Для тех, кто не в курсе. Пофиг, что мод для прицепа/проводника. Вы всё так же сможете ходить в одиночку в данжи без каких-либо проблем.
anahronik пишет:у меня один из нескольких ботов себя так начал вести....я забил на него и оставил висеть в таком состоянии. вот два боя провел.....простой где-то час был.
Это может быть из-за того то что бк логает?
это может быть из-за чего угодно.
забей и подожди.
Мунг, забей.
Я это уже несколько раз пытался объяснять. Они всё на терминах "крыса" и подобных засели, как крайне узколобые индивиды, не видящие мира вокруг себя.
и хрен им что докажешь.
нервы свои себе дороже.
у меня один из нескольких ботов себя так начал вести....я забил на него и оставил висеть в таком состоянии. вот два боя провел.....простой где-то час был.
больше всего бесят такие суки, которые пастят такие темы на форуме ... уж извините меня
-.
Вобще никто не говорит, что это вобще под Комбатсом Зерговским седит паренёк....такчто вот лично от себя скажу: пофиг и флаг ему в руки
1) прочитайте что такое хэш-функция.
2) прочитайте, что такое md5.
3) открываем Dungeon.js и видим занимательную строку:
dungeonPosition = external.MD5Hash(dungeonCoords + "," + dungeonDirection);
Я задолбался уже одно и то же писать в разных темах.
Логика есть в dungeonCoords и dungeonDirection. В dungeonPosition логики НЕТ и быть не может, ибо необратимый процесс. Хватит мусолить эту тему.
в ФАК читать второй способ определения идентификатора.
тогда не будет вопросов, как его писать. совсем не будет. абсолютно. никогда.
значит ссылка входа в диалог выглядит так:
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text +".combats.com/" + dungName + "?use=" + top.frames[external.mainFrameIndex].arrLayers[1][0]["l"].arrUnits[0].id + "&r="+Math.random();
и более универсальной её не сделать
ну, естественно эта строка - часть перебора объектов из атакМобс.....я просто не в курсе, что и как там у тебя получилось уже
попробуй в боте встать перед нужным нам мобом, но в диалог не заходи.
открой закладку у бота "Браузер" и вставь туда http: //suncity.combats.com/dungeon1.pl?use=1.4.18.105-199&r=0.7959564981689003
мне интересно, сумеет он так зайти в диалог или нет)
если сумеет, то use= циферки - это id персонажа(можно посмотреть в атаке, как этот id прописывается), а &r= циферки - это Math.Random() или как он там прописывается......в любом случае в коде тоже где-то встречается
Давай так:
АтакаМобов() умеет делать перебор по персонажам на карте.
Этот перебор нам явно понадобится в свежеиспеченной SpeakNPC().
Что должно отличаться? Правильно, строка взаимодействия с объектом найденым.
В атаке она выглядит так:
top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text +".combats.com/" + dungName + "?attack=1&use=" + top.frames[external.mainFrameIndex].arrLayers[1][0]["l"].arrUnits[0].id;
Вот на неё и надо переход на диалог повесить.
Возьми да сам зайди в диалог, потом правой кнопкой свойства врхнего фрэйма(где диалог начался) нажми и посмотри URL. И постарайся переложить его на вот эту ссылку для атаки: т.е. распределить, что статическое в ссылке должно быть, а что - динамическое( например город динамический...мы же сможем использовать SpeakNPC() не только в одном городе в однй пещере, но и ещё где нам потребуется)
Понятно, куда двигаться?:)
Скажу прямо - проще написать ещё одну функцию...вместо AttackMobs() SpeakNPC() и в неё всё забить.
У меня в голове есть то, как это лучше сделать и что туда входить должно....а вот с вами всё сложнее.......
давай так: если сумеешь написать SpeakNPC(), чтобы он заходил в диалог (за основу для отталкивания можно взять нападение на мобов) - дальше я подскажу что делать.
*я не угадал...*
Проверили....действительно почему-то стоял и не выходил...
поменяли местами кусочки кода - в сане точно работает....думается мне, что и в остальных должно теперь работать.
короче, перекачайте
То, что в личе, рассчитано на несколько кругов скрипта.
Т.е. вот у нас есть интервал действий бота. И каждый ответ на один интервал расходуется.
Я слабо представляю, что у вас там с пещерой, поэтому не могу ничего посоветовать.
Не ну ребят...у меня ещё куча скриптов в голове нужных висит....и далеко не по пещерам, ибо я о них реально ничего не знаю и даже каналку в нубогородах до конца второй этаж не чистил
Tester, я тебе строки написал и что выключить(конкретно снять галочку со смены комплектов, чтобы он заново сразу не одевался).
Ты привёл строку - вот вместо куска "(Тут верная команда)/main.pl?skmp=1234567890;" вставляешь те, что я написал.
В где раздеться - раздеваешь моей строкой.
Где одеться - одеваешь.
Не сработает - дальше будем думать.
Игрок1, я повторюсь, но ЕСЛИ вас работа полученного скрипта устраивает - не надо ничего менять. Как только(если) возникнут проблемы - будем думать
нда...что-то у меня один ответ на всё....будут проблемы - будем думать
За тем, что сперва идёт условие, а потом что при этом делать.
По поводу 8.5 vs 8.6.
Не в этом проблема точно. В 8.6 только лучники добавлены.
ну, в принцыпе можно:
1) отключить защиту от голых боёв.
2) придумать критерий, по которому он будет снимать/одевать вещи. Например тот же максимум ХП.
Снять:
if(external.hpMaximum>1000)top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?setdown=all&sd4="+sd4+"&"+Math.random();
Одеть:
if(external.hpMaximum<1000)top.frames[external.mainFrameIndex].location = "http://" + external.SCity.Text + ".combats.com/main.pl?skmp=" + external.SComplectBattle.Text;
ну это как пример я не претендую на то, что это сработает
Естественно....
за долю секунды послать 6 запросов на сервак и надеяться, что все обработаются - это прекрасный метод
я как-то делал два запроса подряд: снять вещи - одеть хил....для красных ХП
ох уж и не стабильная фигня получалась
удачи вам с вашим методом передачи в три раза больше запросов, чем делал я и остался недоволен
не, серьёздно....если вам нравится как работает - рад за вас искренне
а ещё более рад, что без меня разобрались
()
будем надеяться, что я правильно вас понял
Вопрос: хочу помогать боту во время боёв и меня раздражает постоянная необходимость переключаться на упрощенный бой. Хочу, чтобы галочка на упрощенный бой выставлялась по-умолчанию в каждом бою
Ответ:
В 9.0 это уже интегрировано - от вас ничего не требуется.
Открываем Main.js и находим строки "function DoArcherBattle()", "function DoWizardBattle()", "function DoWarriorBattle()"
и приводим их к такому виду
1) { - уже есть в скрипте и добавлять этот символ не надо!!
2) 2 строки добавляются, а не заменяют что-либо!function DoWarriorBattle()
{
if(User.Battle.oSettings.getElementsByTagName('BUTTON')[0].className!="RadioChecked")
User.Battle.oSettings.getElementsByTagName('BUTTON')[0].click();function DoWizardBattle()
{
if(User.Battle.oSettings.getElementsByTagName('BUTTON')[0].className!="RadioChecked")
User.Battle.oSettings.getElementsByTagName('BUTTON')[0].click();function DoArcherBattle()
{
if(User.Battle.oSettings.getElementsByTagName('BUTTON')[0].className!="RadioChecked")
User.Battle.oSettings.getElementsByTagName('BUTTON')[0].click();
дык может мы вам просто галочку при заходе в бой будем выставлять на упрощенные бои?
сойдёт? я, просто, как всегда, не в теме, что это такое
как только опубликуем решение с ключами - сразу тут это будет указано
Combots Бот для БК » Сообщения от anahronik