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

Возможен ли перевод в Hex?

-

Общение и обсуждение Aion

- События, информация, вопросы и ответы по Aion

Ответ
 
Опции темы
Старый 14.05.2013, 16:51   #1
 Разведчик
Аватар для martiniFresh
 
martiniFresh никому не известный тип
Регистрация: 21.10.2011
Сообщений: 14
Популярность: 12
Сказал(а) спасибо: 4
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Возможен ли перевод в Hex?

Здравствуйте форумчане!
Вот у меня какой вопросик -
Допустим есть пакет вида:
Цитата:
A1 00 6D 5E FF 0A 5B 00 69 00 74 00 65 00 6D 00 3A 00 31 00 36 00 30 00 30 00 30 00 32 00 33 00 33 00 37 00 3B 00 76 00 65 00 72 00 33 00 3B 00 3B 00 3B 00 3B 00 5D 00 00 00

где красным выделена надпись в чат -
Цитата:
[item:160002337;ver3;;;;]

Дак вот возможно ли вот эту часть:
Цитата:
31 00 36 00 30 00 30 00 30 00 32 00 33 00 33 00 37 00

считывать из сообщения и выводить в чат уже в таком виде:
Цитата:
160002337

???
Сразу скажу, да это ссылки вещи в чат и 160002337 - ид этой вещи в игровой памяти.
У меня есть скрипт который переводит из 15 CD 5B 07 (4 байта) в понятный нам всем вид 123456789, но это не то.

Добавлено через 15 часов 47 минут
Народ, не засыпайте мою тему позязя.) помогите лучше, а то работа встала на этом только.(

Последний раз редактировалось martiniFresh; 15.05.2013 в 08:38. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 15.05.2013, 09:06   #2
 Пехотинец
Аватар для zombiee
 
zombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слуху
Регистрация: 30.11.2009
Сообщений: 83
Популярность: 1436
Сказал(а) спасибо: 20
Поблагодарили 94 раз(а) в 54 сообщениях
Отправить сообщение для zombiee с помощью ICQ Отправить сообщение для zombiee с помощью Skype™
 
По умолчанию Re: Возможен ли перевод в Hex?

Код:
function AionLinkToItemID(S: String): Integer;
var
  sTmp: String;
begin
  Result := 0;
  sTmp := Copy(S, pos('[item:', S) + 6, Length(S));
  if(sTmp = '') then Exit;
  sTmp := Copy(sTmp, 1, pos(';', sTmp) - 1);
  Result := StrToInt(sTmp);
end;

procedure Init; //Вызывается при включении скрипта
var
  sLink: String;
  iID:   Integer;
begin
  sLink := HStr('5B 69 74 65 6D 3A 31 36 30 30 30 32 33 33 37 3B 76 65 72 33 3B 3B 3B 3B 5D');
  iID := AionLinkToItemID(sLink);
  SendMSG('ID for "'+sLink+'" == '+IntToStr(iID));
end;
Цитата:
15.05.2013 09:04:03 Script: ID for "[item:160002337;ver3;;;;]" == 160002337

________________
Хакер - не преступник.
Взлом - для искусства.
Смысл - в свободе.


ZOMG ZUFALL!
  Ответить с цитированием
Пользователь сказал cпасибо:
martiniFresh (15.05.2013)
Старый 15.05.2013, 12:25   #3
 Разведчик
Аватар для martiniFresh
 
martiniFresh никому не известный тип
Регистрация: 21.10.2011
Сообщений: 14
Популярность: 12
Сказал(а) спасибо: 4
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Возможен ли перевод в Hex?

ох огромная спасибка тебе! приду домой, буду пробовать.

Добавлено через 8 минут
Хм... я правильно поняла, что скрипт переводит только то сообщение которое задано в нём, а не берёт из пакета ссылки вещи в чат?
Я просто не увидела проверки идёт ли пакет A1... Или эту часть с процедурой нужно интегрировать в скрипт?
И ещё ниже в цитате это то как выглядит сообщение в чате?

Последний раз редактировалось martiniFresh; 15.05.2013 в 12:33. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 15.05.2013, 12:44   #4
 Пехотинец
Аватар для zombiee
 
zombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слуху
Регистрация: 30.11.2009
Сообщений: 83
Популярность: 1436
Сказал(а) спасибо: 20
Поблагодарили 94 раз(а) в 54 сообщениях
Отправить сообщение для zombiee с помощью ICQ Отправить сообщение для zombiee с помощью Skype™
 
По умолчанию Re: Возможен ли перевод в Hex?

В краце (пока я на обеде):

Код:
function AionLinkToItemID(S: String): Integer;
var
  sTmp: String;
begin
  Result := 0;
  sTmp := Copy(S, pos('[item:', S) + 6, Length(S));
  if(sTmp = '') then Exit;
  sTmp := Copy(sTmp, 1, pos(';', sTmp) - 1);
  Result := StrToInt(sTmp);
end;
Эту функцию просто копируешь в свой скрипт, далее, где необходимо получить айди вещи - просто передаешь в функцию сообщение с чата (не важно, в каком месте будет ссылка).
Вполне сойдет передача возврата функции ReadS(), без какого-либо форматирования

функция вернет:
  • Идентификатор вещи целым числом (Integer)
  • 0, если ссылка на вещь ( [item: ) не найдена

Цитата:
Сообщение от martiniFreshПосмотреть сообщение
И ещё ниже в цитате это то как выглядит сообщение в чате?

Ниже - это вывод этого куска кода:
Код:
procedure Init; //Вызывается при включении скрипта
var
  sLink: String;
  iID:   Integer;
begin
  sLink := HStr('5B 69 74 65 6D 3A 31 36 30 30 30 32 33 33 37 3B 76 65 72 33 3B 3B 3B 3B 5D');
  iID := AionLinkToItemID(sLink);
  SendMSG('ID for "'+sLink+'" == '+IntToStr(iID));
end;
Просто как пример.
________________
Хакер - не преступник.
Взлом - для искусства.
Смысл - в свободе.


ZOMG ZUFALL!

Последний раз редактировалось zombiee; 15.05.2013 в 12:47.
  Ответить с цитированием
Старый 15.05.2013, 12:55   #5
 Разведчик
Аватар для martiniFresh
 
martiniFresh никому не известный тип
Регистрация: 21.10.2011
Сообщений: 14
Популярность: 12
Сказал(а) спасибо: 4
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Возможен ли перевод в Hex?

Вот на примере:
Допустим в игре я отправляю ссылку в чат и ловлю пакет вида
Цитата:
A1 00 6D 5E FF 0A 5B 00 69 00 74 00 65 00 6D 00 3A 00 31 00 36 00 30 00 30 00 30 00 32 00 33 00 33 00 37 00 3B 00 76 00 65 00 72 00 33 00 3B 00 3B 00 3B 00 3B 00 5D 00 00 00

Скрипт реагирует на пойманный пакет A1 и берёт из него некое количество байт начиная допустим в моём случае с 19 байта вот это количество байт
Цитата:
31 00 36 00 30 00 30 00 30 00 32 00 33 00 33 00 37 00

что и есть в переводе с юникода ид - 160002337 и вставляет его в сообщение на клиент, по моему 09 синий в виде DF 53 FE 3D (4 байта) тоесть от отправляет уже в чат уже в виде 4 байта. Чтоб при желании можно было поставить условие на приход пакета 09 и чтоб скрипт брал оттуда уже работоспособный ID вещи.

В общем кратко: Как перевести взятое и линканутой ссылки вещи в чат
Цитата:
31 00 36 00 30 00 30 00 30 00 32 00 33 00 33 00 37 00

в
Цитата:
DF 53 FE 3D (4 байта)

и вывести в сообщении в чат на клиент?


Добавлено через 9 минут
Цитата:
Сообщение от zombieeПосмотреть сообщение
В краце (пока я на обеде):

хм... То есть вот этот кусок пакета
Цитата:
31 00 36 00 30 00 30 00 30 00 32 00 33 00 33 00 37 00

String?
И как мне в функцию возвратить ReadS? (этого я ещё не освоила *в печальке*)
и как я поняла всё же она переводит из String в Integer но обрезая всякую ерунду? В мне то видишь что нужно, чтоб функция либо переводила в вид 123456789, а потом в 1D 2E 3F 4A (4 байта). У меня просто задумка написать скрипт который бы автоматизировал работу поиска шмотки в базе и перевода её ида 123456789 в удобный для допустим прописывания его себе вид D2 4A 4D 5E (4 байта.)

Последний раз редактировалось martiniFresh; 15.05.2013 в 13:05. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 15.05.2013, 16:02   #6
 Пехотинец
Аватар для zombiee
 
zombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слуху
Регистрация: 30.11.2009
Сообщений: 83
Популярность: 1436
Сказал(а) спасибо: 20
Поблагодарили 94 раз(а) в 54 сообщениях
Отправить сообщение для zombiee с помощью ICQ Отправить сообщение для zombiee с помощью Skype™
 
По умолчанию Re: Возможен ли перевод в Hex?

Толком ничего не понял из этой стены текста (ну, кроме нескольких предложений )
У тебя хотя бы начальный опыт программирования есть?

Зачем такие трудности с 19-ым байтом и прочее? Ловишь пакет 0xA1, выдергиваешь из него сообщение функцией ReadS (полное) и передаешь его в функцию AionLinkToItemID, принимаешь от неё идентификатор вещи и работаешь уже с ним.

Как пример (рабочий скрипт, можешь сразу запустить и проверить):
Код:
function AionLinkToItemID(S: String): Integer;
var
  sTmp: String;
begin
  Result := 0;
  sTmp := Copy(S, pos('[item:', S) + 6, Length(S));
  if(sTmp = '') then Exit;
  sTmp := Copy(sTmp, 1, pos(';', sTmp) - 1);
  Result := StrToInt(sTmp);
end;

var
  sMsg: String;
  iID: Integer;
begin
  if((FromClient) AND (pck[1] = #$A1)) then begin
    sMsg := ReadS(7); // Поправь смещение, если я не прав и сообщение начинается не с 7-го байта
    // в sMsg будет сообщение, вида: "Продам [item:101700208;ver2;;;], 100500кк, не дорого! ПМ"
    iID := AionLinkToItemID(sMsg); // Функция вырежет все, что идет до и после айди вещи, в примере выше - 101700208 и вернет его
    if(iID <> 0) then begin
      // в iID - идентификатор вещи, к примеру, 160002337, 160204337 и т. д
      // Тут работаешь с ним
      SendMSG('RECV ID FROM LINK: ' + IntToStr(iID)); // вывод можешь посмотреть в логе л2пх
    end;
  end;
end.
________________
Хакер - не преступник.
Взлом - для искусства.
Смысл - в свободе.


ZOMG ZUFALL!
  Ответить с цитированием
Пользователь сказал cпасибо:
martiniFresh (15.05.2013)
Старый 15.05.2013, 17:44   #7
 Разведчик
Аватар для martiniFresh
 
martiniFresh никому не известный тип
Регистрация: 21.10.2011
Сообщений: 14
Популярность: 12
Сказал(а) спасибо: 4
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Возможен ли перевод в Hex?

Цитата:
Сообщение от zombieeПосмотреть сообщение
У тебя хотя бы начальный опыт программирования есть?

О_О конечно же есть)) иначе я бы всё это не понимала, просто ещё не всё освоила.)
Спасибо, сейчас попробую.
а там где работать с iID можно не вот так выводить в чат:
Цитата:
SendMSG('RECV ID FROM LINK: ' + IntToStr(iID));

а допустим вот так:
Цитата:
buf := HStr('09 00 44 F6 FF 00 00 00 00 00 00 01 00 00 00');
WriteD(iID);
SendToClient;

???
  Ответить с цитированием
Старый 15.05.2013, 17:52   #8
 Пехотинец
Аватар для zombiee
 
zombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слуху
Регистрация: 30.11.2009
Сообщений: 83
Популярность: 1436
Сказал(а) спасибо: 20
Поблагодарили 94 раз(а) в 54 сообщениях
Отправить сообщение для zombiee с помощью ICQ Отправить сообщение для zombiee с помощью Skype™
 
По умолчанию Re: Возможен ли перевод в Hex?

Цитата:
Сообщение от martiniFreshПосмотреть сообщение
О_О конечно же есть)) иначе я бы всё это не понимала, просто ещё не всё освоила.)

Извини, конечно, но впечатление совершенно другое.
Такое ощущение, что ты с бухты - барахты, начитавшись статей про то, как писать скрипты, разработала логику, но вот никак не можешь разобраться с реализацией.
Даже банально понять то, что возвращает функция...
Какой язык изучала?) Наверняка, какой-нибудь скриптовый язык без типизации? Что-то вроде питона или пхп?


Цитата:
Сообщение от martiniFreshПосмотреть сообщение
а допустим вот так:
Код:
buf := HStr('09 00 44 F6 FF 00 00 00 00 00 00 01 00 00 00'); 
WriteD(iID); 
SendToClient;

Конечно.

P.S: Вопрос из разряда "А можно сесть в мерседес, если денег на вертолет хватает?".
________________
Хакер - не преступник.
Взлом - для искусства.
Смысл - в свободе.


ZOMG ZUFALL!
  Ответить с цитированием
Старый 15.05.2013, 18:03   #9
 Разведчик
Аватар для martiniFresh
 
martiniFresh никому не известный тип
Регистрация: 21.10.2011
Сообщений: 14
Популярность: 12
Сказал(а) спасибо: 4
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Возможен ли перевод в Hex?

Всё отлично получилось! Спасибо ещё раз, но вот почему он выводит сообщение в виде иероглифов а не в виде : D4 5F 1A 44???

Добавлено через 3 минуты
Нет, я в техникуме на программиста училась и мы в Delphi писали ну и просто паскаль, со школы чуток QBasic помню, но уже начинаю забывать. Тут же тоже на основе паскаля, но вот функции это моё слабое место. Хотя и PHP и HTML тоже обладаю, начала JAVAScript, но думаю зря потому как в голове уже винигрет.

Последний раз редактировалось martiniFresh; 15.05.2013 в 18:07. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 15.05.2013, 18:08   #10
 Пехотинец
Аватар для zombiee
 
zombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слуху
Регистрация: 30.11.2009
Сообщений: 83
Популярность: 1436
Сказал(а) спасибо: 20
Поблагодарили 94 раз(а) в 54 сообщениях
Отправить сообщение для zombiee с помощью ICQ Отправить сообщение для zombiee с помощью Skype™
 
По умолчанию Re: Возможен ли перевод в Hex?

Цитата:
Сообщение от martiniFreshПосмотреть сообщение
Всё отлично получилось! Спасибо ещё раз, но вот почему он выводит сообщение в виде иероглифов а не в виде : D4 5F 1A 44???

Да не за что...
Кто "он"?
Лучше покажи кусок кода, ответственный за отправку сообщения.
________________
Хакер - не преступник.
Взлом - для искусства.
Смысл - в свободе.


ZOMG ZUFALL!
  Ответить с цитированием
Старый 15.05.2013, 18:10   #11
 Разведчик
Аватар для martiniFresh
 
martiniFresh никому не известный тип
Регистрация: 21.10.2011
Сообщений: 14
Популярность: 12
Сказал(а) спасибо: 4
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Возможен ли перевод в Hex?

а по поводу иероглифов для меня проблемка в том, почему на WriteS(iID) он ругается в таком виде:
Цитата:
begin
if FromClient and (ReadC(1) = $A1) then begin
sMsg := ReadS(7); // Поправь смещение, если я не прав и сообщение начинается не с 7-го байта
// в sMsg будет сообщение, вида: "Продам [item:101700208;ver2;;;], 100500кк, не дорого! ПМ"
iID := AionLinkToItemID(sMsg); // Функция вырежет все, что идет до и после айди вещи, в примере выше - 101700208 и вернет его
if(iID <> 0) then begin
// в iID - идентификатор вещи, к примеру, 160002337, 160204337 и т. д
// Тут работаешь с ним
buf:=hstr('09 00 44 F6 FF 00 00 00 00 00 00 01 00 00 00 '); //записываем в buf начало пакета (до координат)
writeS(iID); //записываем iID в buf в формате Single
buf:=buf+hstr('00 00 00 00'); //записываем в buf конец пакета
SendToClient;
//SendMSG('RECV ID FROM LINK: ' + IntToStr(iID)); // вывод можешь посмотреть в логе л2пх
end;

Добавлено через 12 минут
Не ругайся.(( я правда запуталась почему WriteS тут не идёт.((

Последний раз редактировалось martiniFresh; 15.05.2013 в 18:23. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 15.05.2013, 19:12   #12
 Пехотинец
Аватар для zombiee
 
zombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слухуzombiee у всех на слуху
Регистрация: 30.11.2009
Сообщений: 83
Популярность: 1436
Сказал(а) спасибо: 20
Поблагодарили 94 раз(а) в 54 сообщениях
Отправить сообщение для zombiee с помощью ICQ Отправить сообщение для zombiee с помощью Skype™
 
По умолчанию Re: Возможен ли перевод в Hex?

Цитата:
Сообщение от martiniFreshПосмотреть сообщение
а по поводу иероглифов для меня проблемка в том, почему на WriteS(iID) он ругается

В том, что iID - целое число (Integer), а WriteS - записывает строку.
Лучше скачай делфи, вспомни, что к чему - позже за пхп и прочее возьмешься

По поводу кода, попробуй:
Код:
begin
if FromClient and (ReadC(1) = $A1) then begin
  // в sMsg будет сообщение, вида: "Продам [item:101700208;ver2;;;], 100500кк, не дорого! ПМ"
  // Обрати внимание, ты уже считала первый байт функцией ReadC - л2пх передвинул смещение на один байт влево (в конец)
  sMsg := ReadS(6); // Поправь смещение, если я не прав и сообщение начинается не с 6-го байта
  iID := AionLinkToItemID(sMsg); // Функция вырежет все, что идет до и после айди вещи, в примере выше - 101700208 и вернет его
  if(iID <> 0) then begin // в iID - идентификатор вещи, к примеру, 160002337, 160204337 и т. д
    // Тут работаешь с ним 
    buf:=hstr('09 00 44 F6 FF 00 00 00 00 00 00 01 00 00 00 '); //записываем в buf начало пакета (до координат)
    writeD(iID); //записываем iID в buf в формате Single
    // buf:=buf+hstr('00 00 00 00'); //записываем в buf конец пакета - не обязательно, л2, вроде, сам три нулевых байта дописывает
    SendToClient;
    //SendMSG('RECV ID FROM LINK: ' + IntToStr(iID)); // вывод можешь посмотреть в логе л2пх
end;
А пакет на отправку сообщения (09 00 44 F6 FF) - точно верный?
И поиграйся с параметром ReadS, возможно, что неверно указано смещение

Или можно подправить мою функцию - будет возвращать строку:

Код:
function AionLinkToItemID(S: String): String;
begin
  Result := Copy(S, pos('[item:', S) + 6, Length(S));
  if(Result = '') then Exit;
  Result := Copy(Result , 1, pos(';', Result ) - 1);
end;
________________
Хакер - не преступник.
Взлом - для искусства.
Смысл - в свободе.


ZOMG ZUFALL!
  Ответить с цитированием
Старый 16.05.2013, 07:24   #13
 Разведчик
Аватар для martiniFresh
 
martiniFresh никому не известный тип
Регистрация: 21.10.2011
Сообщений: 14
Популярность: 12
Сказал(а) спасибо: 4
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Возможен ли перевод в Hex?

Цитата:
Сообщение от zombieeПосмотреть сообщение
В том, что iID - целое число (Integer), а WriteS - записывает строку.
Лучше скачай делфи, вспомни, что к чему - позже за пхп и прочее возьмешься

По поводу кода, попробуй:
Код:
begin
if FromClient and (ReadC(1) = $A1) then begin
  // в sMsg будет сообщение, вида: "Продам [item:101700208;ver2;;;], 100500кк, не дорого! ПМ"
  // Обрати внимание, ты уже считала первый байт функцией ReadC - л2пх передвинул смещение на один байт влево (в конец)
  sMsg := ReadS(6); // Поправь смещение, если я не прав и сообщение начинается не с 6-го байта
  iID := AionLinkToItemID(sMsg); // Функция вырежет все, что идет до и после айди вещи, в примере выше - 101700208 и вернет его
  if(iID <> 0) then begin // в iID - идентификатор вещи, к примеру, 160002337, 160204337 и т. д
    // Тут работаешь с ним 
    buf:=hstr('09 00 44 F6 FF 00 00 00 00 00 00 01 00 00 00 '); //записываем в buf начало пакета (до координат)
    writeD(iID); //записываем iID в buf в формате Single
    // buf:=buf+hstr('00 00 00 00'); //записываем в buf конец пакета - не обязательно, л2, вроде, сам три нулевых байта дописывает
    SendToClient;
    //SendMSG('RECV ID FROM LINK: ' + IntToStr(iID)); // вывод можешь посмотреть в логе л2пх
end;
А пакет на отправку сообщения (09 00 44 F6 FF) - точно верный?
И поиграйся с параметром ReadS, возможно, что неверно указано смещение

Или можно подправить мою функцию - будет возвращать строку:

Код:
function AionLinkToItemID(S: String): String;
begin
  Result := Copy(S, pos('[item:', S) + 6, Length(S));
  if(Result = '') then Exit;
  Result := Copy(Result , 1, pos(';', Result ) - 1);
end;

Да, точно верный. Я делала активацию на скрипт для мерцания ради эксперемента. Прикрепляла подсказку после ввода команды в чат:
Цитата:
buf:=hstr('09 00 44 F6 FF 00 00 00 00 00 00 01 00 00 00 ');
writeS('Пример моей подсказки в чат только для игрока');
SendToClient;

  Ответить с цитированием
Ответ


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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Статья] Перевод текста с помощью переводчика Google в скрипте на PHP dwa83 Web-программирование и технологии 1 24.09.2012 10:38
[Скрипт] WP переводчик demon-rus-nsk Общение и обсуждение 5 16.10.2011 15:49
[Обсуждение] Возможен ли бан Отвертка Общение и обсуждение Perfect World 20 29.12.2010 23:35

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

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

Пишите нам: forum@zhyk.ru
Copyright © 2025 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net