1

(3 ответов, оставленных в Флейм)

А еще лучше:
()
Там файлик-бот лежит. Вот он на delphi писан. Как его отредактировать, чтобы коннектился не к двум сайтам которые там есть а к 1: wekings.ru???

2

(3 ответов, оставленных в Флейм)

Вот для C#:

//пример был прислан одним из наших пользователей, поэтому за качество не отвечаем smile
 
namespace RA.HTML
{
    public class PostData
    {
        private string s_method = String.Empty;
 
        public string Method { get { return this.s_method; } }
        private string s_action = String.Empty;
 
        public string Action { get { return this.s_action; } }
        public string Param { get { return this.s_param; } }
 
        private string s_param = String.Empty;
        public PostData(string s_PostString)
        {
            if (s_PostString.IndexOf("=") != -1)
 
            {
                this.s_method = s_PostString.Substring(0, s_PostString.IndexOf("="));
                this.s_action = s_PostString.Substring(s_PostString.IndexOf("=") + 1);
                if (this.s_action.IndexOf("!") != -1)
                {
                    this.s_action = s_action.Substring(0, this.s_action.IndexOf("!"));this.s_param = s_PostString.Substring(s_PostString.IndexOf("!") + 1);
                }
 
            }
 
        }
        public static string MultiFormData(string Key, string Value, string Boundary)
        {
            string output = "--" + Boundary + "\r\n"; output += "Content-Disposition: form-data; name=\"" + Key + "\"\r\n\r\n";
            output += Value + "\r\n";
            return output;
        }
        public static string MultiFormDataFile(string Key, string Value, string FileName, string FileType, string Boundary)
        {
            string output = "--" + Boundary + "\r\n"; output += "Content-Disposition: form-data; name=\"" + Key + "\"; filename=\"" + FileName + "\"\r\n"; output += "Content-Type: " + FileType + " \r\n\r\n";
            output += Value + "\r\n";
            return output;
        }
    }
 
 
//Картинка содержится в теле ответа сервера myResp
//Запрос
HttpWebRequest myReq = (HttpWebRequest)HttpWebRequest.Create("http://antigate.com/in.php");
myReq.UserAgent = UserAgent;
myReq.Accept = "*/*";
myReq.Headers.Add("Accept-Language", "ru");
myReq.KeepAlive = true;
myReq.AllowAutoRedirect = false;
myReq.Method = "POST";
 
//пост параметры
string sBoundary = DateTime.Now.Ticks.ToString("x");
myReq.ContentType = "multipart/form-data; boundary="+sBoundary;
string sPostMultiString = "";
sPostMultiString += PostData.MultiFormData("method", "post", sBoundary);
sPostMultiString += PostData.MultiFormData("key", KapchaKey, sBoundary);
sPostMultiString += PostData.MultiFormData("file", "bober.jpg", sBoundary);
sPostMultiString += PostData.MultiFormData("numeric", "1", sBoundary);
 
//копируем файл-картинку из потока
string sFileContent = "";
using (BinaryReader br = new BinaryReader(myResp.GetResponseStream(), Encoding.Default))
{
   byte[] ba = new byte[32768];
   int pos=0;
   byte b;
   while(true)
   {
       try
       { b = br.ReadByte(); }
       catch(EndOfStreamException ex)
       {
           break;
       }
       ba[pos]=b;
       pos++;
   }
   byte[] ba2 = new byte[pos];
   for (int k = 0; k < pos; k++)
   {
       ba2[k] = ba[k];
   }
   sFileContent = Encoding.Default.GetString(ba2);
   }
   sPostMultiString += PostData.MultiFormDataFile("file", sFileContent, "bober.jpg", "image/pjpeg", sBoundary);
   sPostMultiString += "--" + sBoundary + "--\r\n\r\n";
 
   //Получаем массив байт
   byte[] byteArray = Encoding.Default.GetBytes(sPostMultiString);
   //Получаем и записываем общую длинну массива
   myReq.ContentLength = byteArray.Length;
 
   //Отправляем запрос и получаем ответ
   HttpWebResponse ret=null;
   try
   {
   myReq.GetRequestStream().Write(byteArray, 0, byteArray.Length);
   ret = (HttpWebResponse)myReq.GetResponse();
   }
   catch
   {
   AddDebugMessage("Не получен ответ на запрос http://antigate.com/in.php");
   }
 
   //Получаем и разбираем текст ответа сервера
   reader = new System.IO.StreamReader(ret.GetResponseStream(), Encoding.GetEncoding(1251));
   string pg;
   pg = reader.ReadToEnd();
   string[] pars = pg.Split(new char[1] { '|' }, StringSplitOptions.RemoveEmptyEntries);
 
   //Надо добавить обработку ошибок
 
   //Ждём распознавания капчи
   while (true)
   {
   Thread.Sleep(15000);
 
   myReq = (HttpWebRequest)HttpWebRequest.Create("http://antigate.com/res.php?key="+KapchaKey+"&action=get&id="+pars[1]);
   if (useProxy == true) myReq.Proxy = new WebProxy(ProxyIP, ProxyPort);
   myReq.UserAgent = UserAgent;
   myReq.Accept = "*/*";
   myReq.Headers.Add("Accept-Language", "ru");
   myReq.KeepAlive = true;
   myReq.AllowAutoRedirect = false;
   myReq.Method = "GET";
 
   ret = (HttpWebResponse)myReq.GetResponse();
 
   reader = new System.IO.StreamReader(ret.GetResponseStream(), Encoding.GetEncoding(1251));
   pg = reader.ReadToEnd();
   pars = pg.Split(new char[1] { '|' }, StringSplitOptions.RemoveEmptyEntries);
 
   //если капча распознана забираем значениеи и прекращаем ожидание
   if (pars[0] == "OK")
   {
       data = "img_code=" + pars[1];
       break;
   }
}
}

3

(3 ответов, оставленных в Флейм)

Вот еще что нашел:
URL GOTO=http://api.deathbycaptcha.com/decaptcher?function=picture2&print_format=html
TAG POS=1 TYPE=INPUT ATTR=NAME:username CONTENT={{YOUR_DBC_USERNAME}}
TAG POS=1 TYPE=INPUT ATTR=NAME:password CONTENT={{YOUR_DBC_PASSWORD}}
TAG POS=1 TYPE=INPUT ATTR=NAME:pict CONTENT={{CAPTCHA_IMAGE_FILE_NAME}}
TAG POS=1 TYPE=INPUT ATTR=TYPE:submit

TAG POS=6 TYPE=TD ATTR=* EXTRACT=TXT
SET !VAR1 {{!EXTRACT}}

4

(3 ответов, оставленных в Флейм)

hmm Ребята, как совместить iMacros с Antigate? Или как создать скрипт для выполнения 5 задач ( просто 5 переходов по ссылкам) бесконечно долго, но когда выскакивает капча, ее само вводило?
В данном случае это игра wekings.ru.

В iMacros использую простой скрипт:
VERSION BUILD=7401110 RECORDER=FX
TAB T=1
URL GOTO=http://wekings.ru/game/profile/equipment
CLICK X=571 Y=21
CLICK X=388 Y=318
CLICK X=399 Y=379
CLICK X=505 Y=311
CLICK X=568 Y=469
WAIT SECONDS=100

На сайте одного из партнеров Antigate есть это:

Как использовать API клиенты
Загружаете последнюю версию нужного клиента, добавляете в свое приложение, и на основе примеров кода, распространяемых вместе с API, пишете что-то вроде нижеперечисленного; например, для PHP:
 
require_once 'deathbycaptcha.php';
 
// Сюда подставляем свой логин и пароль:
$client = new DeathByCaptcha_SocketClient(USERNAME, PASSWORD);
 
// Сюда подставляем имя капча-файла/хэндлер файла, и максимальное время
// ожидания капчи (таймаут) в секундах:
if ($captcha = $client->decode(CAPTCHA_FILE_NAME, TIMEOUT)) {
    echo $captcha['text'] . "\n";
 
    // ЕСЛИ капча была неверно решена, отмечаем ее как неправильную
    if () {
        $client->report($captcha['captcha']);
    }
}
 
// Повторить для других капчей
…или для C#:
 
// Не забудьте добавить DeathByCaptcha.dll в проект
using DeathByCaptcha;
 
// Сюда подставляем свой логин и пароль:
Client client = (Client) new SocketClient(USERNAME, PASSWORD);
 
// Подставляем имя файла, поток или массив байт
// и необходимый таймаут в секундах:
Captcha captcha = client.Decode(CAPTCHA_FILE_NAME, TIMEOUT);
if (captcha.Solved && captcha.Correct) {
    Console.WriteLine("CAPTCHA {0}: {1}", captcha.Id, captcha.Text);
 
    // Если капча решена неверно, отмечаем капчу как неправильную
    if () {
        client.Report(captcha);
    }
}
 
// Повторить для других капчей
Сокетовый API использует порты 81238130 — проверьте, чтобы исходящие TCP-соединения не были закрыты Вашим файрволом. В противном случае используйте HTTP API. Порты 81238130 предназначены только для сокетового API, не пытайтесь использовать их для HTTP API запросов!
 
Для более подробной информации обратитесь к соответствующим файлам примеров и исходнымому коду клиентов, включенных в необходимый пакет API.

Помогите совместить эти два скрипта, или помогите написать свой скрипт-бот для этой игры. Пожалуйста, очень нужно. Заранее спасибо hmm

5

(56 ответов, оставленных в Подземелье / Маршруты)

я ж хз)

6

(56 ответов, оставленных в Подземелье / Маршруты)

Ну постучи просто ты horolya89. пару советов если что дашь?)
А за мультов не банят разве?

7

(56 ответов, оставленных в Подземелье / Маршруты)

Дай скайп пожалуйста? В личку или постучи horolya89. А то развели тут флуд)

8

(56 ответов, оставленных в Подземелье / Маршруты)

а де денег брать на 8-9 уровни?

9

(56 ответов, оставленных в Подземелье / Маршруты)

А чего с 10го?

10

(56 ответов, оставленных в Подземелье / Маршруты)

а смысл в каче? пещерки копать лучше  8?

11

(56 ответов, оставленных в Подземелье / Маршруты)

Ясно. Не подскажешь что делать можно на 7 уровне? Просто качаться дальше?

12

(27 ответов, оставленных в Прохождение)

Ребята, а где можно качаться на 7 уровне? Только хаоты или есть и пещерки какие то?

13

(56 ответов, оставленных в Подземелье / Маршруты)

А есть ли маршрут 3 этажа канализации?

14

(56 ответов, оставленных в Подземелье / Маршруты)

То есть это передовая за кольцом?)

15

(56 ответов, оставленных в Подземелье / Маршруты)

что такое передовая?

16

(56 ответов, оставленных в Подземелье / Маршруты)

Кстати, может у тебя маршрут и за кольцом героическим остался?)

17

(56 ответов, оставленных в Подземелье / Маршруты)

и как все-таки заставить его использовать плагин??

18

(56 ответов, оставленных в Подземелье / Маршруты)

читал уже. вот твой маршрут работает, нормально все, только почему у меня умирал и в начале ничего не делал?

19

(56 ответов, оставленных в Подземелье / Маршруты)

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

20

(56 ответов, оставленных в Подземелье / Маршруты)

Блин. Вопрос походу был в ремонте.

21

(56 ответов, оставленных в Подземелье / Маршруты)

вот сейчас он стоит и дергается ничего не делает((

22

(56 ответов, оставленных в Подземелье / Маршруты)

Спасибо. Гиппо, вот проблемма сс маршрутом. Умирает и стоит лицом в стену, тоесть нужно повернуть направо чтобы он начал работать(
что делать? И проверь мои приемы с условиями пожалуйста:

if((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP)  <  33 && parseInt(top.Battle.oBattle.arrRes["spirit"].innerHTML) > 0){    _name = "hit_willpowe";} else _name = "hit_strong";

и еще

if((top.Battle.oBattle.oMySlot.nHP * 100 / top.Battle.oBattle.oMySlot.nMaxHP) > 33 && parseInt(top.Battle.oBattle.arrRes["hit"].innerHTML) > 10){    _name = "hit_strong";}

23

(56 ответов, оставленных в Подземелье / Маршруты)

var currentRoom = '';
var lowLevelTimer = {};
var lowRoomTimer = {};
var goToDungTimer = {};
var randomValue;
var min = 360000;
var fileName = '';
var max = 400000;
var dungeonLocked = false;
 
function lowLevelDungeon(enabled)
{
    if(enabled)
    {
        lowRoomTimer[mylogin] = setInterval("GetRoomName()", 500);
        lowLevelTimer[mylogin] = setInterval("proverkaHandler()",2000);       
    }
    else
    {
        if(goToDungTimer[mylogin]) clearInterval(goToDungTimer[mylogin]);
        clearInterval(lowRoomTimer[mylogin]);
        clearInterval(lowLevelTimer[mylogin]);       
    }
}
 
function GetRoomName()
{
    try
    {
        if(top.Battle.bInBattle || top.frames[external.mainFrameIndex].location.toString().match(/dungeon\d+\.pl/i) || !external.Started()) return;
        var pageSource = top.frames[external.mainFrameIndex].document.all[0].innerHTML;
        if(currentRoom = pageSource.match(/<nobr>([^<]+)<\/nobr>/))currentRoom = String(currentRoom[1]);
        else currentRoom = "inDialog";
        if(currentRoom == "inDialog") external.ClickLink("Вернуться",4);
    }
    catch(err)
    {
        external.AddToChat("Error in GetRoomName function");
    }
}
 
function proverkaHandler()
{
    try
    {
        clearInterval(lowLevelTimer[mylogin]);
        randomValue = Math.floor(Math.random()*(max - min) + min);
        lowLevelTimer[mylogin] = setInterval("proverkaHandler()", randomValue);
 
        if(top.Battle.bInBattle || !external.Started())
        {
            external.SBattleAbovePercent.Text = 100;
            return;
        }
 
        if(top.frames[external.mainFrameIndex].location.toString().match(/dungeon\d+\.pl/i))
            external.SBattleAbovePercent.Text = 100;       
        else
            external.SBattleAbovePercent.Text = 101;
 
        var tempstr = '';
        var temp_inf = doLoad("http://" + external.SCity.Text + ".combats.com/main.pl?skills=1&rand=" + Math.random());
 
        if(!goToDungTimer[mylogin]) goToDungTimer[mylogin] = setInterval("goToDungHandler()",3000);       
 
        if(temp_inf.match(/Время до подземелья/)) dungeonLocked = true;
        else dungeonLocked = false;
    }
    catch(err)
    {
        external.AddToChat("Error in proverkaHandler function");
    }
}
 
function goToDungHandler()
{
    try
    {
        if(top.Battle.bInBattle || top.frames[external.mainFrameIndex].location.toString().match(/dungeon\d+\.pl/i) || !external.Started()) return;
        if(dungeonLocked)
        {
            if(!currentRoom.match(/Зал воинов/i))
                MoveFromDung();
            else
            {
                if(external.dungeonEnabled) external.dungeonEnabled = false;
                external.SBattleAbovePercent.Text = 100;
            }
        }
        else
        {
            if(!currentRoom.match(/Спуск в канализацию/i))
            {
 
                external.DungeonLoadPath(fileName);
                if(!external.dungeonEnabled) external.dungeonEnabled = true;
                external.SBattleAbovePercent.Text = 100;
            }
        }
    }
    catch(err)
    {
        external.AddToChat("Error in goToDungHandler function");
    }
}
 
function MoveFromDung()
{
    try
    {
        if(currentRoom.match(/Спуск в канализацию/))
            external.ClickLink("Страшилкина улица",2);
        else if(currentRoom == "Бойцовский Клуб")
            external.ClickLink("Зал воинов",1);
        else if(currentRoom.match(/Центральная площадь/i))
            external.ClickLink("Бойцовский Клуб",1);
        else if(currentRoom.match(/Страшилкина улица/i))
            external.ClickLink("Центральная площадь",1);
    }
    catch(err)
    {
        external.AddToChat("Error in MoveFromDung function");
    }
}
 
function MoveToDung()
{
    try
    {
        if(currentRoom.match(/Зал воинов/))
            external.ClickLink("Бойцовский Клуб",1);
        else if(currentRoom == "Бойцовский Клуб")
            external.ClickLink("Центральная площадь",1);
        else if(currentRoom.match(/Центральная площадь/i))
            external.ClickLink("Страшилкина улица",1);
        else if(currentRoom.match(/Страшилкина улица/i))
            external.ClickLink("Спуск в канализацию",1);
    }
    catch(err)
    {
        external.AddToChat("Error in MoveToDung function");
    }
}
 
function doLoad(url)
{
    try
    {
        if (window.XMLHttpRequest) req = new XMLHttpRequest();
        else req = new ActiveXObject("Microsoft.XMLHTTP");     
        req.open("GET", url, false);
        req.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT");
        req.send(null);
        return req.responseText;
    }
    catch(err)
    {
        external.AddToChat("Error in doLoad function");
    }
}

24

(56 ответов, оставленных в Подземелье / Маршруты)

И последний вопрос. Во я странный человек, да? Ответил мне раз я 5 вопросов еще кидаю))
Короче с плагином что мне Exile писал, чтобы после канала сразу в бой пока квест не спадет будет работать этот маршрут?

25

(56 ответов, оставленных в Подземелье / Маршруты)

Как настроить нормально приемы? Ловкача 6 уровня?
У меня утереть пот, воля к победе, сильный удар, полная защита. То есть я только их использую. Нормально или что то опять не так?)