Регистрация Главная Сообщество
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Закрытая тема
 
Опции темы
Старый 18.06.2011, 11:57   #1
 Разведчик
Аватар для R-A-Z-O-R
 
R-A-Z-O-R на правильном путиR-A-Z-O-R на правильном пути
Регистрация: 31.05.2011
Сообщений: 6
Популярность: 194
Сказал(а) спасибо: 9
Поблагодарили 25 раз(а) в 12 сообщениях
 
По умолчанию Основы входа в DO (Darkorbit)

Привет всем! Так как у многих часто возникают вопросы по поводу входа в эту игру и т.д. решил написать эту статью. Что ж, начнем!

Для начала нам понадобится:
Код:
:info: Delphi 2010 (скачать: [Ссылки могут видеть только зарегистрированные пользователи. ]), (через торрент: [Ссылки могут видеть только зарегистрированные пользователи. ])
:info: Библиотека регулярных выражений, очень хороший парсер RegExpr (скачать: [Ссылки могут видеть только зарегистрированные пользователи. ])
:info: Прямые руки! ;)
Все скачали, установили, файлы RegExpr'a закинули в директорию \Embarcadero\RAD Studio\7.0\lib.

Теперь можно запустить Delphi и создать проект, появится форма. На нее кинем 3 Edit'a, 1 Label, 1 Button и самое главное, где мы будем записывать все, что вытащили из страницы ДО - ListBox.

Теперь, настроим форму (это не очень важно), свойство Bordertyle поставим в bsSingle, в BorderIcons впишем [biSystemMenu,biMinimize].

Должно получиться примерно так:
[Ссылки могут видеть только зарегистрированные пользователи. ]

В раздел uses добавим RegExpr и idHTTP. Теперь 2 раза кликнем по кнопке и пропишем код так, как написано ниже:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var Reg: TRegExpr;
    Data: TStringList;
    S: string;
    HTTP: TIdHTTP;
begin
  // Проверям заполнены ли поля
  if (Edit1.Text = '')or(Edit2.Text = '')or(Edit3.Text = '') then
  begin
    ShowMessage('Заполните все поля!');
    Exit;
  end;
  // Создаем компоненты
  Reg := TRegExpr.Create; // Парсер
  Data := TStringList.Create; // Строки для посылки POST запроса
  HTTP := TIdHTTP.Create(nil); // HTTP
  HTTP.HandleRedirects := True; // Чтобы не выдавало ошибку 302, в Delphi 2010 не важно
  // Входим в игру
  Data.Clear; // Очистка не помешает ;)
  Data.Add('loginForm_default_username='+Edit1.Text);
  Data.Add('loginForm_default_password='+Edit2.Text);
  Data.Add('loginForm_default_login_submit=Вход');
  try
    S := HTTP.Post('http://darkorbit.bigpoint.com/?locale=ru&aid=0',Data);
  except
    ShowMessage('Ошибка при посылке данных!');
    Reg.Free;
    Data.Free;
    HTTP.Free;
    Exit;
  end;
  // Проверяем, правильны ли данные?
  if Pos('Выбор сервера',S) = 0 then
  begin
    ShowMessage('Неверные данные!');
    Reg.Free;
    Data.Free;
    HTTP.Free;
    Exit;
  end;
  // Выбираем сервер
  Reg.Expression := '"http://'+Edit3.Text+'\.darkorbit\.bigpoint\.com/GameAPI\.php\?req=(.*?)"';
  if Reg.Exec(S) then
  begin
    try
      S := HTTP.Get('http://'+Edit3.Text+'.darkorbit.bigpoint.com/GameAPI.php?req='+Reg.Match[1]);
      S := HTTP.Get('http://'+Edit3.Text+'.darkorbit.bigpoint.com/indexInternal.es?action=internalStart');
    except
      ShowMessage('Ошибка при запросе выбора сервера!');
      Reg.Free;
      Data.Free;
      HTTP.Free;
      Exit;
    end;
    // Сервер выбрали, проверяем данные
    if Pos('<title>www.DarkOrbit.com</title>',S) <> 0 then
    begin
      Reg.Expression := '<div class="userInfo_left fliess10px-white">Ник:</div><div class="userInfo_right">(.*?)</div>';
      if Reg.Exec(S) then ListBox1.Items.Add('Ник: '+Reg.Match[1]);
      Reg.Expression := '<div class="userInfo_left fliess10px-white">Сервер:</div><div class="userInfo_right">(.*?)</div>';
      if Reg.Exec(S) then ListBox1.Items.Add('Сервер: '+Reg.Match[1]);
      Reg.Expression := '<div class="userInfo_left fliess10px-white">Ранг:</div><div class="userInfo_right"><img src="(.*?)" style="vertical-align: baseline;"> (.*?)</div>';
      if Reg.Exec(S) then ListBox1.Items.Add('Ранг: '+Reg.Match[2]);
      Reg.Expression := '<div class="userInfo_left fliess10px-white">Премиум:</div><div class="userInfo_right">(.*?)</div>';
      if Reg.Exec(S) then ListBox1.Items.Add('Премиум: '+Reg.Match[1]);
      Reg.Expression := '<div class="userInfo_left fliess10px-white">Компания:</div><div class="userInfo_right">(.*?)</div>';
      if Reg.Exec(S) then ListBox1.Items.Add('Компания: '+Reg.Match[1]);
      // Достаточно, теперь вытащим другую инфу
      Reg.Expression := 'cred=(.*?)&amp;xcred=(.*?)&amp';
      if Reg.Exec(S) then ListBox1.Items.Add('Кредитов: '+Reg.Match[1]+' | Уридиума: '+Reg.Match[2]);
      ListBox1.items.Add('Информация загружена!');
    end else
    begin
      ShowMessage('Ошибка при входе на выбранный сервер!');
      Reg.Free;
      Data.Free;
      HTTP.Free;
      Exit;
    end;
  end else
  begin
    ShowMessage('Неудачный выбор сервера!');
    Reg.Free;
    Data.Free;
    HTTP.Free;
    Exit;
  end;
  // Уничтожаем компоненты
  Reg.Free;
  Data.Free;
  HTTP.Free;
end;
На форму можно кинуть IdAntiFreeze с панели Indy Misc, чтобы прога меньше висла.

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

Исходники программы я выложил на RgHost: [Ссылки могут видеть только зарегистрированные пользователи. ]

Если помог, то от спасибок никогда не отказываюсь

Добавлено через 4 минуты
P.S. Если будут вопросы то пишите в теме

Последний раз редактировалось R-A-Z-O-R; 18.06.2011 в 19:34. Причина: Добавлено сообщение
 
10 пользователя(ей) сказали cпасибо:
=PaLeTiZaToR= (07.04.2012), Aleksandr67 (14.11.2011), blad56 (15.10.2011), cunt85 (31.07.2011), Name- (03.08.2011), Number/1/ (23.06.2011), qwert-yg (01.07.2011), sanitar^x_x (28.07.2011), Shook† (07.01.2012), WreckeR/9/2 (27.09.2011)
Старый 18.06.2011, 14:42   #2
Читер-спонсор
 Сержант
Аватар для gum_classis
 
gum_classis в состоянии испепелить взглядомgum_classis в состоянии испепелить взглядомgum_classis в состоянии испепелить взглядомgum_classis в состоянии испепелить взглядомgum_classis в состоянии испепелить взглядомgum_classis в состоянии испепелить взглядомgum_classis в состоянии испепелить взглядомgum_classis в состоянии испепелить взглядомgum_classis в состоянии испепелить взглядомgum_classis в состоянии испепелить взглядомgum_classis в состоянии испепелить взглядом
Регистрация: 03.04.2011
Сообщений: 128
Популярность: 5379
Сказал(а) спасибо: 137
Поблагодарили 209 раз(а) в 111 сообщениях
Отправить сообщение для gum_classis с помощью ICQ Отправить сообщение для gum_classis с помощью Skype™
 
По умолчанию Re: Основы входа в DO (Darkorbit)

Steam~ кстате у тебя есть кусок кода который даёт инфу в мемо только чтобы код подходил к моему вот
Цитата:
procedure TForm1.Button1Click(Sender:TObject);
var
html,html1,html2:string;
data:tstringlist;
begin
try
data:=TStringList.Create;
data.Add('loginForm_default_username='+UTF8Encode( Edit1.Text));
data.Add('loginForm_default_password='+UTF8Encode( Edit2.Text));
data.Add('loginForm_default_login_submit=Вход');
html:=idHTTP1.Post('http://darkorbit.bigpoint.com/?locale=ru&aid=821&aip=.darkorbit.bigpoint.com', data);
html1:=Copy(html,Pos('http://'+Edit3.Text+'.darkorbit.bigpoint.com/GameAPI.php?req=',html),length(html));
Delete(html1,Pos('&ref_pid',html1)-14,length(html1));
html2:=idhttp1.Get(html1);
if Pos('exitURL', html)<>0 then
Label1.Caption:='Вошло'
else
Label1.Caption:='НЕ ВОШЛО';
finally
data.Free;
end;
end;

 
Пользователь сказал cпасибо:
Муха_ (18.06.2011)
Старый 18.06.2011, 14:50   #3
Заблокирован
 Сержант
Аватар для Steam~
 
Steam~ знает себе ценуSteam~ знает себе ценуSteam~ знает себе ценуSteam~ знает себе ценуSteam~ знает себе ценуSteam~ знает себе ценуSteam~ знает себе ценуSteam~ знает себе ценуSteam~ знает себе ценуSteam~ знает себе ценуSteam~ знает себе цену
Регистрация: 09.08.2010
Сообщений: 143
Популярность: 4928
Сказал(а) спасибо: 382
Поблагодарили 254 раз(а) в 175 сообщениях
 
По умолчанию Re: Основы входа в DO (Darkorbit)

Цитата:
Сообщение от gum_classisПосмотреть сообщение
Steam~ кстате у тебя есть кусок кода который даёт инфу в мемо только чтобы код подходил к моему вот

s4:=Copy(html2,Pos('cred',html2)+5,Length(html2));
Delete(s4,Pos('&amp',s4),Length(s4));
Memo.Lines.Add:=s4;

вот пример, показывает кредиты

Последний раз редактировалось Steam~; 18.06.2011 в 14:59.
 
Пользователь сказал cпасибо:
Boss-DEVIL-Boss (18.06.2011)
Старый 18.06.2011, 15:00   #4
Читер-спонсор
 Сержант
Аватар для gum_classis
 
gum_classis в состоянии испепелить взглядомgum_classis в состоянии испепелить взглядомgum_classis в состоянии испепелить взглядомgum_classis в состоянии испепелить взглядомgum_classis в состоянии испепелить взглядомgum_classis в состоянии испепелить взглядомgum_classis в состоянии испепелить взглядомgum_classis в состоянии испепелить взглядомgum_classis в состоянии испепелить взглядомgum_classis в состоянии испепелить взглядомgum_classis в состоянии испепелить взглядом
Регистрация: 03.04.2011
Сообщений: 128
Популярность: 5379
Сказал(а) спасибо: 137
Поблагодарили 209 раз(а) в 111 сообщениях
Отправить сообщение для gum_classis с помощью ICQ Отправить сообщение для gum_classis с помощью Skype™
 
По умолчанию Re: Основы входа в DO (Darkorbit)

Цитата:
s4:=Copy(html3,Pos('cred',html3)+5,Length(html3));
Delete(s4,Pos('&amp',s4),Length(s4));
Memo.Lines.Add:=s4;

вот пример, показывает кредиты

У меня вылазят ошибки первая из них
Цитата:
Undeclared identifier:'s4'

 
Пользователь сказал cпасибо:
Муха_ (18.06.2011)
Старый 18.06.2011, 15:01   #5
Заблокирован
 Сержант
Аватар для Steam~
 
Steam~ знает себе ценуSteam~ знает себе ценуSteam~ знает себе ценуSteam~ знает себе ценуSteam~ знает себе ценуSteam~ знает себе ценуSteam~ знает себе ценуSteam~ знает себе ценуSteam~ знает себе ценуSteam~ знает себе ценуSteam~ знает себе цену
Регистрация: 09.08.2010
Сообщений: 143
Популярность: 4928
Сказал(а) спасибо: 382
Поблагодарили 254 раз(а) в 175 сообщениях
 
По умолчанию Re: Основы входа в DO (Darkorbit)

Цитата:
Сообщение от gum_classisПосмотреть сообщение
У меня вылазят ошибки первая из них

добавь в var переменную s4:= string;
 
Пользователь сказал cпасибо:
Boss-DEVIL-Boss (18.06.2011)
Старый 18.06.2011, 15:01   #6
 Разведчик
Аватар для doctor_flasher
 
doctor_flasher на правильном пути
Регистрация: 15.05.2011
Сообщений: 10
Популярность: 55
Сказал(а) спасибо: 1
Поблагодарили 15 раз(а) в 12 сообщениях
Отправить сообщение для doctor_flasher с помощью ICQ
 
По умолчанию Re: Основы входа в DO (Darkorbit)

gum_classis, не нравится код? Ты вообще ничего не знаешь и не можешь нормально пару строк кода написать, но при этом еще других ругаешь. Нехорошо, да.


R-A-Z-O-R, работа с интернетом в основном потоке - моветон. Сделал бы с BeginThread - всего строк десять бы добавить пришлось, зато аккуратно и никому не мешает. И, да, код ужасен: при ошибках ты выходишь из процедуры нахрен, не освобождая при этом классы, которые инициализировал. Утечка памяти большая, да

Последний раз редактировалось Dinmaite; 18.06.2011 в 16:45.
 
Пользователь сказал cпасибо:
R-A-Z-O-R (18.06.2011)
Старый 18.06.2011, 15:04   #7
Читер-спонсор
 Сержант
Аватар для gum_classis
 
gum_classis в состоянии испепелить взглядомgum_classis в состоянии испепелить взглядомgum_classis в состоянии испепелить взглядомgum_classis в состоянии испепелить взглядомgum_classis в состоянии испепелить взглядомgum_classis в состоянии испепелить взглядомgum_classis в состоянии испепелить взглядомgum_classis в состоянии испепелить взглядомgum_classis в состоянии испепелить взглядомgum_classis в состоянии испепелить взглядомgum_classis в состоянии испепелить взглядом
Регистрация: 03.04.2011
Сообщений: 128
Популярность: 5379
Сказал(а) спасибо: 137
Поблагодарили 209 раз(а) в 111 сообщениях
Отправить сообщение для gum_classis с помощью ICQ Отправить сообщение для gum_classis с помощью Skype™
 
По умолчанию Re: Основы входа в DO (Darkorbit)

Всё ок я разобрался в чём была неудача с s4

Добавлено через 5 минут
Цитата:
добавь в var переменную s4:= string;

С этой ошибкой я сам уже разобрался есть теперь другая ))))
Цитата:
Not enough actual parameters


Последний раз редактировалось gum_classis; 18.06.2011 в 15:10. Причина: Добавлено сообщение
 
Пользователь сказал cпасибо:
Муха_ (18.06.2011)
Старый 18.06.2011, 15:18   #8
 Разведчик
Аватар для doctor_flasher
 
doctor_flasher на правильном пути
Регистрация: 15.05.2011
Сообщений: 10
Популярность: 55
Сказал(а) спасибо: 1
Поблагодарили 15 раз(а) в 12 сообщениях
Отправить сообщение для doctor_flasher с помощью ICQ
 
По умолчанию Re: Основы входа в DO (Darkorbit)

gum_classis, Ты даже строку кода с ошибкой не дал. Учи уже матчасть и уходи отсюда: Memo.Lines.Add(s4);

Последний раз редактировалось Hermein; 22.10.2011 в 00:18.
 
Пользователь сказал cпасибо:
cunt85 (31.07.2011)
Старый 18.06.2011, 17:17   #9
Reaper
 Фельдмаршал
Аватар для Dinmaite
 
Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(Dinmaite сломал счётчик популярности :(
Регистрация: 13.08.2009
Сообщений: 1,004
Популярность: 25098
Золото Zhyk.Ru: 350
Сказал(а) спасибо: 110
Поблагодарили 830 раз(а) в 395 сообщениях
Отправить сообщение для Dinmaite с помощью ICQ
 
По умолчанию Re: Основы входа в DO (Darkorbit)

Флуд в теме = РО на 3 дня.
Оффтопик в теме = РО 3 дня.
Переход на личности в теме = РО 3 дня.
Вопросы класса "Почему у меня такая ошибка?", без указания строки кода и собственно ошибки = красная карта.
 
3 пользователя(ей) сказали cпасибо:
-=ShoN=- (18.06.2011), gum_classis (18.06.2011), Муха_ (18.06.2011)
Старый 18.06.2011, 19:27   #10
 Разведчик
Аватар для R-A-Z-O-R
 
R-A-Z-O-R на правильном путиR-A-Z-O-R на правильном пути
Регистрация: 31.05.2011
Сообщений: 6
Популярность: 194
Сказал(а) спасибо: 9
Поблагодарили 25 раз(а) в 12 сообщениях
 
По умолчанию Re: Основы входа в DO (Darkorbit)

Цитата:
Сообщение от borumПосмотреть сообщение
помоги перенести куки с одной формы на другую. Стукни в скайп blad56rus или в асю 337438

Извини, но не могу помочь, зарегистрируй свой аккаунт, а этот, который ты украл, отдай его владельцу.
Цитата:
Сообщение от Steam~Посмотреть сообщение
использую ХЕ, закинул библиотеку, ругается на RegExpr

Да, на него ругается Delphi 2009 и XE, поэтому я и написал что лучше использовать версию 2010 года
Цитата:
Сообщение от doctor_flasherПосмотреть сообщение
R-A-Z-O-R, работа с интернетом в основном потоке - моветон. Сделал бы с BeginThread - всего строк десять бы добавить пришлось, зато аккуратно и никому не мешает. И, да, код ужасен: при ошибках ты выходишь из процедуры нахрен, не освобождая при этом классы, которые инициализировал. Утечка памяти большая, да

Да, спасибо, как-то не обратил внимания

Последний раз редактировалось R-A-Z-O-R; 18.06.2011 в 19:31.
 
Старый 18.06.2011, 23:20   #11
Заблокирован
 Пехотинец
Аватар для -=ShoN=-
 
-=ShoN=- гордость нации-=ShoN=- гордость нации-=ShoN=- гордость нации-=ShoN=- гордость нации-=ShoN=- гордость нации-=ShoN=- гордость нации-=ShoN=- гордость нации-=ShoN=- гордость нации-=ShoN=- гордость нации-=ShoN=- гордость нации-=ShoN=- гордость нации
Регистрация: 29.05.2011
Сообщений: 79
Популярность: 3379
Сказал(а) спасибо: 314
Поблагодарили 351 раз(а) в 157 сообщениях
Отправить сообщение для -=ShoN=- с помощью ICQ Отправить сообщение для -=ShoN=- с помощью Skype™
 
По умолчанию Re: Основы входа в DO (Darkorbit)

Цитата:
Сообщение от R-A-Z-O-RПосмотреть сообщение
Извини, но не могу помочь, зарегистрируй свой аккаунт, а этот, который ты украл, отдай его владельцу.

Да, на него ругается Delphi 2009 и XE, поэтому я и написал что лучше использовать версию 2010 года

Да, спасибо, как-то не обратил внимания

отличная работа, но опять же, ничего не сказал про int8=))
 
Пользователь сказал cпасибо:
qwert-yg (28.06.2011)
Старый 05.07.2011, 15:25   #12
 Разведчик
Аватар для 000_svhost_000
 
000_svhost_000 никому не известный тип
Регистрация: 05.07.2011
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Основы входа в DO (Darkorbit)

а откуда id вытащить? Reg.Expression := 'uid=(.*?)''&'''; вот так пробовал, вытаскивает какуету ерунду. прошу помочь
 
Старый 05.07.2011, 15:47   #13
 Разведчик
Аватар для *xalyava*
 
*xalyava* на правильном пути
Регистрация: 10.06.2011
Сообщений: 18
Популярность: 59
Сказал(а) спасибо: 7
Поблагодарили 49 раз(а) в 26 сообщениях
 
По умолчанию Re: Основы входа в DO (Darkorbit)

Цитата:
Сообщение от 000_svhost_000Посмотреть сообщение
а откуда id вытащить? Reg.Expression := 'uid=(.*?)''&'''; вот так пробовал, вытаскивает какуету ерунду. прошу помочь


Reg.Expression := 'uid=(.*?)&amp';
вот правильный код!
________________
Info_akkGG Check
 
Старый 06.07.2011, 20:32   #14
 Разведчик
Аватар для *xalyava*
 
*xalyava* на правильном пути
Регистрация: 10.06.2011
Сообщений: 18
Популярность: 59
Сказал(а) спасибо: 7
Поблагодарили 49 раз(а) в 26 сообщениях
 
По умолчанию Re: Основы входа в DO (Darkorbit)

откройте исходный код страницы ДО, нажмите Ctrl+F (поиск), введите UID (ваш ID), и увидите следующее:
uid=67184713&amp



uid=(.*?)&amp
UId= //откуда начинать парсить страничку
(.*?) // то, что нам надо спарсить
&amp // то, на чем заканчиваем парсить
=================================================


Цитата:
а откуда id вытащить? Reg.Expression := 'uid=(.*?)''&'''; вот так пробовал, вытаскивает какуету ерунду. прошу помочь

У вас ошибка была тут: ''&'''
Собственно, не понятно зачем вы поставили кавычки, ведь в коде их нет, а если нет, то при парсере GegExpr их ставить не надо (да и вообще вроде не надо при любых парсерах)....
________________
Info_akkGG Check

Последний раз редактировалось *xalyava*; 06.07.2011 в 20:35.
 
Пользователь сказал cпасибо:
qwert-yg (06.07.2011)
Старый 18.07.2011, 12:26   #15
 Пехотинец
Аватар для Mad_Sanek
 
Mad_Sanek неизвестен в этих краяхMad_Sanek неизвестен в этих краяхMad_Sanek неизвестен в этих краях
Регистрация: 09.04.2010
Сообщений: 79
Популярность: -247
Сказал(а) спасибо: 52
Поблагодарили 73 раз(а) в 21 сообщениях
Отправить сообщение для Mad_Sanek с помощью Skype™
 
По умолчанию Re: Основы входа в DO (Darkorbit)

как в Delphi XE подключить регулярные выражения?
Облазил яндекс и гугл, только описание и уже практическая работа, но как подключать - нигде нет((
 
Закрытая тема


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Основы PHP. FTW*Just Web-программирование и технологии 1 17.06.2011 18:36
Основы хакерства. Урок 2 -SHiSH- Web-программирование и технологии 0 01.08.2010 08:09

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 13:15.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net