Регистрация Главная Сообщество
Сообщения за день Справка Регистрация

PW Library OOG

-

Разработка ПО для Perfect World

- Бюро разработчиков Zhyk.Ru: создание ботов, снифферов и прочих программ для Perfect World

Ответ
 
Опции темы
Старый 13.08.2013, 14:39   #1
 Пехотинец
Аватар для Desmond Hume
 
Desmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небе
Регистрация: 13.08.2013
Сообщений: 68
Популярность: 829
Золото Zhyk.Ru: 100
Сказал(а) спасибо: 25
Поблагодарили 13 раз(а) в 6 сообщениях
 
По умолчанию PW Library OOG

Введение

PW Library OOG — библиотека для работы с пакетами игры Perfect World, базирующаяся на новой технологии Out of Game (Вне игры), позволяя тем самым реализовать бота, который будет работать без клиента игры.
Язык разработки — C#, библиотека может использоваться на всех dotNet языках программирования.
Взаимодействие между библиотекой и целевой программой осуществляется посредством событий, вызываемых из библиотеки.

Структура

PWProtocol.cs — класс–инициализатор.
SocketsClient.cs — асинхронная реализация сокетов.
RC4.cs — шифрование/дешифрование методом RC4.
MPPCUnpacker.cs — распаковщик по алгоритму MPPC.
Packet.cs — инкапсулированная структура для сборки пакетов.

Пакеты

На данный момент реализованы следующие пакеты:
0x01 (ServerInfo) (Server -> Client)
0x02 (SMKey) (Server -> Client)
0x02 (CMKey) (Client -> Server)
0x03 (LogginAnnounce) (Client -> Server)
0x04 (OnlineAnnounce) (Server -> Client)
0x05 (ServerError) (Server -> Client)
0x46 (SelectRole) (Client -> Server)
0x47 (SelectRole_Re) (Server -> Client)
0x48 (EnterWorld) (Client -> Server)
0x52 (RoleList) (Client -> Server)
0x53 (RoleList_Re) (Server -> Client)
0x5A (KeepAlive) (Client -> Server)
0x60 (ReadPrivateMessage) (Server -> Client)
0x60 (SendPrivateMessage) (Client -> Server)

Этот список будет постепенно дополняться.
Использование

Добавляем ссылку на библиотеку, на форму кидаем кнопки два textBox, один listView и три Button.

После определения класс определяем класс для работы с протоколом и List<byte>, где будут храниться UID персонажей.

Код:
        PWProtocol Session;
        List<byte[]> chars = new List<byte[]>();
В обработчик первой кнопки пишем
Код:
            Session = new PWProtocol();
            Session.Login = textBox1.Text;
            Session.Password = maskedTextBox1.Text;
            Session.Disconnected += Session_Disconnected;
            Session.AuthFailed += Session_AuthFailed;
            Session.CharDataOnList += Session_CharDataOnList;
            Session.CharDataOnListEnd += Session_CharDataOnListEnd;
            Invoke(new ButtonEnabledDelegate(ButtonEnabled), new object[] { button1, false });
            Session.Connect("link3.pwonline.ru", 29000);
В обработчик второй
Код:
            Invoke(new ButtonEnabledDelegate(ButtonEnabled), new object[] { button1, true });
            Invoke(new ButtonEnabledDelegate(ButtonEnabled), new object[] { button2, false });
            Invoke(new ButtonEnabledDelegate(ButtonEnabled), new object[] { button3, false });
            Invoke(new ListViewEnabledDelegate(ListViewEnabledEnabled), new object[] { true });
            listView1.Items.Clear();
            Session.Disconnect();
И в обработчик третьей
Код:
            Session.SelectRole(chars[listView1.SelectedIndices[0]], listView1.SelectedItems[0].Text);
            Invoke(new ButtonEnabledDelegate(ButtonEnabled), new object[] { button3, false });
            Invoke(new ListViewEnabledDelegate(ListViewEnabledEnabled), new object[] { false });
Вешаем обработчики событий
Код:
        private void Session_AuthFailed(object sender, EventArgs e)
        {
            MessageBox.Show("Неправильный логин или пароль.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            Invoke(new ButtonEnabledDelegate(ButtonEnabled), new object[] { button1, true });
        }

        private void Session_Disconnected(object sender, EventArgs e)
        {
            MessageBox.Show("Соединение с сервером было разорвано.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
            Invoke(new ButtonEnabledDelegate(ButtonEnabled), new object[] { button1, true });
            Invoke(new ButtonEnabledDelegate(ButtonEnabled), new object[] { button2, false });
            Invoke(new ButtonEnabledDelegate(ButtonEnabled), new object[] { button3, false });
            Invoke(new ListViewEnabledDelegate(ListViewEnabledEnabled), new object[] { true });
            listView1.Items.Clear();
        }

        private void Session_CharDataOnList(byte[] charid, byte gender, byte race, byte occupation, byte[] level, byte[] charname)
        {
            Invoke(new ListViewAddDelegate(ListViewAdd), new object[] { charid, gender, race, occupation, level, charname });
        }

        private void Session_CharDataOnListEnd(object sender, EventArgs e)
        {
            if (listView1.Items.Count == 0)
            {
                MessageBox.Show("Не найдено ни одного персонажа." + Environment.NewLine + "Проверьте присутствие персонажей на выбранном сервере." + Environment.NewLine + Environment.NewLine + "Соединение с сервером было закрыто.", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error);
                Invoke(new ButtonEnabledDelegate(ButtonEnabled), new object[] { button1, true });
                Invoke(new ButtonEnabledDelegate(ButtonEnabled), new object[] { button2, false });
                Session.Disconnect();
            }
        }
А также методы и делегаты для доступа к элементам окна из других потоков через Invoke.
Код:
        private delegate void ButtonEnabledDelegate(Button button, bool enabled);
        private delegate void ListViewEnabledDelegate(bool enabled);

        private void ButtonEnabled(Button _button, bool enabled)
        {
            _button.Enabled = enabled;
        }

        private void ListViewEnabledEnabled(bool enabled)
        {
            listView1.Enabled = enabled;
        }

        private delegate void ListViewAddDelegate(byte[] charid, byte gender, byte race, byte occupation, byte[] level, byte[] charname);

        private void ListViewAdd(byte[] charid, byte gender, byte race, byte occupation, byte[] level, byte[] charname)
        {
            string level_string = Convert.ToInt32(String.Format("{0:X}", level[0]) + String.Format("{0:X}", level[1]) + String.Format("{0:X}", level[2]) + String.Format("{0:X}", level[3]), 16).ToString();
            listView1.Items.Add(Encoding.Unicode.GetString(charname)).SubItems.AddRange(new string[] { Occupation(occupation), level_string });
            chars.Add(charid);
            Invoke(new ButtonEnabledDelegate(ButtonEnabled), new object[] { button2, true });
        }

        private string Occupation(byte occupation)
        {
            string occupation_name = null;
            switch (occupation)
            {
                case 0x00:
                    occupation_name = "Воин";
                    break;
                case 0x01:
                    occupation_name = "Маг";
                    break;
                case 0x02:
                    occupation_name = "Шаман";
                    break;
                case 0x03:
                    occupation_name = "Друид";
                    break;
                case 0x04:
                    occupation_name = "Оборотень";
                    break;
                case 0x05:
                    occupation_name = "Убийца";
                    break;
                case 0x06:
                    occupation_name = "Лучник";
                    break;
                case 0x07:
                    occupation_name = "Жрец";
                    break;
                case 0x08:
                    occupation_name = "Страж";
                    break;
                case 0x09:
                    occupation_name = "Мистик";
                    break;
                default:
                    occupation_name = "Неизвестно";
                    break;
            }
            return occupation_name;
        }
В обработчик изменения индекса listView помещаем код
Код:
            if (listView1.SelectedIndices.Count != 0)
            {
                Invoke(new ButtonEnabledDelegate(ButtonEnabled), new object[] { button3, true });
            }
            else
            {
                Invoke(new ButtonEnabledDelegate(ButtonEnabled), new object[] { button3, false });
            }
Компилируем.

Библиотеку и исходный код примера можно скачать в прикреплениях к этому сообщению.

Последний раз редактировалось Desmond Hume; 10.07.2014 в 14:21.
  Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
DevZI (24.11.2013), rufat2005 (11.09.2014)
Старый 14.08.2013, 05:07   #2
Бандеровец
 Лейтенант-командор
Аватар для VeTaL_UA
 
VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
Отправить сообщение для VeTaL_UA с помощью ICQ Отправить сообщение для VeTaL_UA с помощью Skype™
 
По умолчанию Re: PW Library OOG

Ооооооочень сомневаюсь в вашем авторстве.
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.

Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.


  Ответить с цитированием
Старый 14.08.2013, 07:21   #3
 Пехотинец
Аватар для Desmond Hume
 
Desmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небе
Регистрация: 13.08.2013
Сообщений: 68
Популярность: 829
Золото Zhyk.Ru: 100
Сказал(а) спасибо: 25
Поблагодарили 13 раз(а) в 6 сообщениях
 
По умолчанию Re: PW Library OOG

VeTaL_UA, могу предоставить исходные коды (в пм, естественно;а можете и сами декомплировать), если есть какие-то сомнения.
Я, конечно, особенно код не комментировал, но тем не менее могу и подробно рассказать, что и для чего, а также предоставить прототип пакетов движения (на данный момент есть некоторая проблема с 0x07 (MoveStop) (Client -> Server), связанная с углом поворота чара).

Последний раз редактировалось Desmond Hume; 14.08.2013 в 09:34. Причина: Слово пропустил
  Ответить с цитированием
Старый 14.08.2013, 16:25   #4
Бандеровец
 Лейтенант-командор
Аватар для VeTaL_UA
 
VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
Отправить сообщение для VeTaL_UA с помощью ICQ Отправить сообщение для VeTaL_UA с помощью Skype™
 
По умолчанию Re: PW Library OOG

Если вы и правда автор, то прошу прощения и снимаю шляпу. Просто видел ну очень похожую библиотеку другого автора
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.

Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.


  Ответить с цитированием
Старый 14.08.2013, 18:19   #5
 Пехотинец
Аватар для Desmond Hume
 
Desmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небе
Регистрация: 13.08.2013
Сообщений: 68
Популярность: 829
Золото Zhyk.Ru: 100
Сказал(а) спасибо: 25
Поблагодарили 13 раз(а) в 6 сообщениях
 
По умолчанию Re: PW Library OOG

VeTaL_UA, да ничего страшного, ошибаться может каждый.
Собственно, на немного новой библиотеки (эта более стабильна, хотя стоит поправить маленькую ошибку с куинтом) у меня стоит OOG бот, который копает рес на одной точке. Палится ужасно, правда...
Если где–то и есть похожая библиотека с нормально реализованными пакетами движения, хотелось бы получить ссылку на неё, или же, если у кого-то хватит мысли, алгоритм (на словах) вычисления угла поворота чара. Пока удается поворачивать его лишь в четырех направлениях (С, Ю, З, В).
  Ответить с цитированием
Старый 14.08.2013, 18:41   #6
 Разведчик
Аватар для nitrotek
 
nitrotek душа компанииnitrotek душа компанииnitrotek душа компанииnitrotek душа компанииnitrotek душа компанииnitrotek душа компанииnitrotek душа компанииnitrotek душа компании
Регистрация: 10.06.2010
Сообщений: 30
Популярность: 940
Сказал(а) спасибо: 7
Поблагодарили 139 раз(а) в 22 сообщениях
 
По умолчанию Re: PW Library OOG

Напиши чему равны значения: С, Ю, З, В. Есть одно предположение.
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 14.08.2013, 19:20   #7
 Пехотинец
Аватар для Desmond Hume
 
Desmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небе
Регистрация: 13.08.2013
Сообщений: 68
Популярность: 829
Золото Zhyk.Ru: 100
Сказал(а) спасибо: 25
Поблагодарили 13 раз(а) в 6 сообщениях
 
По умолчанию Re: PW Library OOG

С — 40 HEX (64 DEC)
Ю — С0 HEX (192 DEC)
З — 80 HEX (128 DEC)
В — 00 HEX (0 DEC)

Последний раз редактировалось Desmond Hume; 05.11.2013 в 15:11. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 14.08.2013, 19:40   #8
 Разведчик
Аватар для nitrotek
 
nitrotek душа компанииnitrotek душа компанииnitrotek душа компанииnitrotek душа компанииnitrotek душа компанииnitrotek душа компанииnitrotek душа компанииnitrotek душа компании
Регистрация: 10.06.2010
Сообщений: 30
Популярность: 940
Сказал(а) спасибо: 7
Поблагодарили 139 раз(а) в 22 сообщениях
 
По умолчанию Re: PW Library OOG

Ну вот как я и думал, простая математика.
Максимальное значение байта: 255. Значит необходимо составить биекцию Y = F(X) такой чтобы Y было множество: {0..256}, а X {0..360}.

Биекция:
Y = (256 / 360) * X

Обратная функция:
X = Round(Y * 360 / 256)

Иначе говоря в PW не 360 градусов, а всего 256. Т.е каждый PW градус это эквивалент 1,40625 градусам.
________________
[Ссылки могут видеть только зарегистрированные пользователи. ]

Последний раз редактировалось nitrotek; 14.08.2013 в 19:49.
  Ответить с цитированием
Старый 14.08.2013, 19:49   #9
 Пехотинец
Аватар для Desmond Hume
 
Desmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небе
Регистрация: 13.08.2013
Сообщений: 68
Популярность: 829
Золото Zhyk.Ru: 100
Сказал(а) спасибо: 25
Поблагодарили 13 раз(а) в 6 сообщениях
 
По умолчанию Re: PW Library OOG

nitrotek, была идея совсем не из этой песни, но сама идея бредова и сложна в реализации.

Последний раз редактировалось Desmond Hume; 05.11.2013 в 15:11.
  Ответить с цитированием
Старый 14.08.2013, 22:20   #10
 Сержант
Аватар для BritishColonist
 
BritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауру
Регистрация: 11.12.2010
Сообщений: 110
Популярность: 541
Сказал(а) спасибо: 5
Поблагодарили 66 раз(а) в 39 сообщениях
 
По умолчанию Re: PW Library OOG

Цитата:
Сообщение от nitrotekПосмотреть сообщение
Иначе говоря в PW не 360 градусов, а всего 256.

Да уж, и система координат у них XZY.
PW такой PW..

Не знаю, как обстоят в этом плане дела с ООГ, но если можно получить структуру игрока, то в её начале есть косинус и синус угла поворота игрока (смещения раньше были +0xC для синуса и +0x2C для косинуса, думаю, сейчас ничего не изменилось).
________________
Принимаю реквесты на статьи, программы. Всё будет запилено в лучшем виде :3
  Ответить с цитированием
Старый 14.08.2013, 22:36   #11
 Пехотинец
Аватар для Desmond Hume
 
Desmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небе
Регистрация: 13.08.2013
Сообщений: 68
Популярность: 829
Золото Zhyk.Ru: 100
Сказал(а) спасибо: 25
Поблагодарили 13 раз(а) в 6 сообщениях
 
По умолчанию Re: PW Library OOG

BritishColonist, в пакетах позиции данных фиксированы (иначе в редких случаях), смещения тут не требуются. Позиция отсылается сервером в пакете 0x08 (PlayerPos) (Server -> Client), длина её составляет 12 байт (по 4 байта на каждую из мировых осей).
  Ответить с цитированием
Старый 15.08.2013, 00:09   #12
 Сержант
Аватар для BritishColonist
 
BritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауруBritishColonist излучает ауру
Регистрация: 11.12.2010
Сообщений: 110
Популярность: 541
Сказал(а) спасибо: 5
Поблагодарили 66 раз(а) в 39 сообщениях
 
По умолчанию Re: PW Library OOG

Цитата:
Сообщение от Desmond HumeПосмотреть сообщение
в пакетах позиции данных фиксированы (иначе в редких случаях), смещения тут не требуются

Благодарю за пояснения, но я давал смещения не для пакетов (лолшто?), а для структуры игрока.
Ну, на всякий случай. Если в ООГ можно получить структуру, то можно будет узнать и угол поворота персонажа.
________________
Принимаю реквесты на статьи, программы. Всё будет запилено в лучшем виде :3
  Ответить с цитированием
Старый 15.08.2013, 02:00   #13
Бандеровец
 Лейтенант-командор
Аватар для VeTaL_UA
 
VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(VeTaL_UA сломал счётчик популярности :(
Регистрация: 12.08.2010
Сообщений: 727
Популярность: 30569
Золото Zhyk.Ru: 1
Сказал(а) спасибо: 57
Поблагодарили 645 раз(а) в 386 сообщениях
Отправить сообщение для VeTaL_UA с помощью ICQ Отправить сообщение для VeTaL_UA с помощью Skype™
 
По умолчанию Re: PW Library OOG

BritishColonist, не в ту оперу залез
________________
Принимаются пожертвования любых размеров в фонд поддержки начинающих программистов
Кошельки: WMZ - Z276844220882; WMR - R231028582939; WMU - U394136909210; ЯД - 410011494605270.

Perfect World: PWDatabaseScanner, Client, PWNickRenamer, PWClientRenamer, База логинов PW, Гайд по варУ, Зарабатываем репутацию.
Delphi: Авторизация на сайте с помощью Indy, Загрузка изображений с интернета в TImage с помощью Indy, Автоматическая смена стандартной версии Indy в Delphi на Indy 10.0.76 / 10.1.5, Основы парсинга с помощью Indy, Делаем Updater до программы с помощью Indy.
Other: ShowIP, FFUUU смайлы в QIP, Как играть в Minecraft (видеокурс), Как мы захватили человечество :D, Энергия в Лицемер/TopFace, PasGen.


  Ответить с цитированием
Старый 21.08.2013, 22:26   #14
 Разведчик
Аватар для Envy12
 
Envy12 определенно авторитетная личностьEnvy12 определенно авторитетная личностьEnvy12 определенно авторитетная личностьEnvy12 определенно авторитетная личностьEnvy12 определенно авторитетная личностьEnvy12 определенно авторитетная личностьEnvy12 определенно авторитетная личностьEnvy12 определенно авторитетная личностьEnvy12 определенно авторитетная личность
Регистрация: 11.06.2010
Сообщений: 3
Популярность: 1189
Сказал(а) спасибо: 0
Поблагодарили 5 раз(а) в 1 сообщении
Отправить сообщение для Envy12 с помощью Skype™
 
По умолчанию Re: PW Library OOG

Как я понял, этой либой можно пользоваться только в dotNet?
  Ответить с цитированием
Старый 22.08.2013, 20:28   #15
 Пехотинец
Аватар для Desmond Hume
 
Desmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небеDesmond Hume лучик света в грозовом небе
Регистрация: 13.08.2013
Сообщений: 68
Популярность: 829
Золото Zhyk.Ru: 100
Сказал(а) спасибо: 25
Поблагодарили 13 раз(а) в 6 сообщениях
 
По умолчанию Re: PW Library OOG

Envy12, да.
  Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Аккаунты] huge-library.org Tenebris Халява для Читера 2 16.08.2013 11:41
[Помогите!] Как вылечить? Couldn't load library Dickk Общение и обсуждение, архив Point Blank 5 09.05.2013 00:47
[Помогите!] Runtime Library Online59 Общение и обсуждение Counter-Strike 2 19.01.2011 00:06
[Помогите!] Unable to load authentication library, Exiting... DeMoN:) Вопросы и ответы, обсуждения 2 07.08.2010 21:06

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

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

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