А еще лучше:
()
Там файлик-бот лежит. Вот он на delphi писан. Как его отредактировать, чтобы коннектился не к двум сайтам которые там есть а к 1: wekings.ru???
1 2011-11-28 22:58:00
Re: Прошу Вашей помощи. (3 ответов, оставленных в Флейм)
2 2011-11-28 22:36:08
Re: Прошу Вашей помощи. (3 ответов, оставленных в Флейм)
Вот для C#:
//пример был прислан одним из наших пользователей, поэтому за качество не отвечаем
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 2011-11-28 22:18:38
Re: Прошу Вашей помощи. (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 2011-11-28 21:54:21
Тема: Прошу Вашей помощи. (3 ответов, оставленных в Флейм)
Ребята, как совместить 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 использует порты 8123–8130 — проверьте, чтобы исходящие TCP-соединения не были закрыты Вашим файрволом. В противном случае используйте HTTP API. Порты 8123–8130 предназначены только для сокетового API, не пытайтесь использовать их для HTTP API запросов!
Для более подробной информации обратитесь к соответствующим файлам примеров и исходнымому коду клиентов, включенных в необходимый пакет API.
Помогите совместить эти два скрипта, или помогите написать свой скрипт-бот для этой игры. Пожалуйста, очень нужно. Заранее спасибо
5 2011-11-07 13:59:50
Re: Помогите пожалуйста.... (56 ответов, оставленных в Подземелье / Маршруты)
я ж хз)
6 2011-11-07 00:38:27
Re: Помогите пожалуйста.... (56 ответов, оставленных в Подземелье / Маршруты)
Ну постучи просто ты horolya89. пару советов если что дашь?)
А за мультов не банят разве?
7 2011-11-06 23:01:10
Re: Помогите пожалуйста.... (56 ответов, оставленных в Подземелье / Маршруты)
Дай скайп пожалуйста? В личку или постучи horolya89. А то развели тут флуд)
8 2011-11-06 23:00:36
Re: Помогите пожалуйста.... (56 ответов, оставленных в Подземелье / Маршруты)
а де денег брать на 8-9 уровни?
9 2011-11-06 16:27:09
Re: Помогите пожалуйста.... (56 ответов, оставленных в Подземелье / Маршруты)
А чего с 10го?
10 2011-11-06 12:33:05
Re: Помогите пожалуйста.... (56 ответов, оставленных в Подземелье / Маршруты)
а смысл в каче? пещерки копать лучше 8?
11 2011-11-06 01:24:47
Re: Помогите пожалуйста.... (56 ответов, оставленных в Подземелье / Маршруты)
Ясно. Не подскажешь что делать можно на 7 уровне? Просто качаться дальше?
12 2011-11-05 18:19:35
Re: Кач с 4 на 7 (27 ответов, оставленных в Прохождение)
Ребята, а где можно качаться на 7 уровне? Только хаоты или есть и пещерки какие то?
13 2011-11-05 05:45:16
Re: Помогите пожалуйста.... (56 ответов, оставленных в Подземелье / Маршруты)
А есть ли маршрут 3 этажа канализации?
14 2011-11-04 17:09:00
Re: Помогите пожалуйста.... (56 ответов, оставленных в Подземелье / Маршруты)
То есть это передовая за кольцом?)
15 2011-11-04 13:28:14
Re: Помогите пожалуйста.... (56 ответов, оставленных в Подземелье / Маршруты)
что такое передовая?
16 2011-11-03 22:54:46
Re: Помогите пожалуйста.... (56 ответов, оставленных в Подземелье / Маршруты)
Кстати, может у тебя маршрут и за кольцом героическим остался?)
17 2011-11-03 20:19:41
Re: Помогите пожалуйста.... (56 ответов, оставленных в Подземелье / Маршруты)
и как все-таки заставить его использовать плагин??
18 2011-11-03 20:18:50
Re: Помогите пожалуйста.... (56 ответов, оставленных в Подземелье / Маршруты)
читал уже. вот твой маршрут работает, нормально все, только почему у меня умирал и в начале ничего не делал?
19 2011-11-03 14:55:32
Re: Помогите пожалуйста.... (56 ответов, оставленных в Подземелье / Маршруты)
Ну если я подчинюсь полность то ходить сутки он сможет сам. Вопрос только как сделать так, чтобы он смотрел вперед а не в бок?
20 2011-11-03 14:19:47
Re: Помогите пожалуйста.... (56 ответов, оставленных в Подземелье / Маршруты)
Блин. Вопрос походу был в ремонте.
21 2011-11-03 14:03:37
Re: Помогите пожалуйста.... (56 ответов, оставленных в Подземелье / Маршруты)
вот сейчас он стоит и дергается ничего не делает((
22 2011-11-03 14:01:13
Re: Помогите пожалуйста.... (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 2011-11-03 13:07:50
Re: Помогите пожалуйста.... (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 2011-11-03 13:06:50
Re: Помогите пожалуйста.... (56 ответов, оставленных в Подземелье / Маршруты)
И последний вопрос. Во я странный человек, да? Ответил мне раз я 5 вопросов еще кидаю))
Короче с плагином что мне Exile писал, чтобы после канала сразу в бой пока квест не спадет будет работать этот маршрут?
25 2011-11-03 12:42:36
Re: Помогите пожалуйста.... (56 ответов, оставленных в Подземелье / Маршруты)
Как настроить нормально приемы? Ловкача 6 уровня?
У меня утереть пот, воля к победе, сильный удар, полная защита. То есть я только их использую. Нормально или что то опять не так?)