Вернуться   CoderX :: Forums > Lineage II > L2PacketHack
Войти через OpenID

L2PacketHack Форум программы L2PacketHack, всё что с ней связано находится тут.
Правила раздела! Обсуждение багов Lineage ЗАПРЕЩЕНО!

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Закрытая тема
 
Опции темы Опции просмотра
Старый 13.07.2010, 02:15   #1
Новичок
 
Регистрация: 23.02.2010
Сообщений: 10
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
MaJIou_DoGG пока неопределено
По умолчанию Скорость работы скрипта

Всегда пользовался скриптом где в боксах выбираются предметы и т д , но при переходе на епилог он перестал определять id части предметов ( некоторые видит а большую чать нет ) Ну дело не в этом , вот нашел другой скрипт , но он оч долго точит , в скриптах я нуб и как в том скрипте надписей delay с цифрами в милисекундах от 400 до 1000 я не нашел, плз подскажите как в этом скрипте ускорить срабатывание (отправку) пакетов, что б он точил порезвее.

// Auto_enchant + 1 - gracia_final_selectskroll - скрипт который мне надо ускорить , я выложил бы его сюда , но я тупорылый бот и не пойму какие фигни надо поставить по краям скрипта что б он прокручивался и я мог вляпать его в эту тему , плз подкажите какими тегами скрипт выделять
MaJIou_DoGG вне форума  
Старый 13.07.2010, 04:00   #2
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Цитата:
Сообщение от MaJIou_DoGG Посмотреть сообщение
одкажите какими тегами скрипт выделять
[HIGHLIGHT ="delphi"]
...скрипт писать сюда...
[/ HIGHLIGHT]

PS: в тегах пробелы все убрать!
PPS: ещё, этот тег находится справа (решётка), параметр для него - delphi
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни


NLObP вне форума  
Старый 13.07.2010, 13:51   #3
Новичок
 
Регистрация: 23.02.2010
Сообщений: 10
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
MaJIou_DoGG пока неопределено
По умолчанию

Чтот у меня не получается его втулить т к он 16+к символов, попробую кусками
delphi Код:
//  Auto_enchant + 1 - gracia_final_selectskroll //  хроники  Грация ФИНАЛ //===========================================    const    myname='DoGG'; //<<== пишем свой НИК    max=150;//<<== колличество ячеек в рюкзаке    xxx=3;//<<== безопасный уровень заточки    chat = 3;// <<== какой ЧАТ выводить сообщения //  3 - Party; 4 - Clan; 9 - Alli; 10 - anons ; 17 - Hero; //========================================== //  в пати чат пишем уровень заточки //  можно менять в процесе работы скрипта //  заточить один предмет чтоб запомнить чем и что точить //  СТАРТ нажать соцдействие ДА //  СТОП нажать соцдействие  НЕТ //  включить системные сообщения соцдействие - приветствие \ hello //  выключить системные сообщения соцдействие - победа \ victory //---------------------------- //  возможно использовать скрол до безопасного уровеня заточки //  выше  использовать  блесс скрол //  для этого заточить предмет один раз скрол  и  один раз блесс скрол //---------------------------- //  дальше скрипт сам точит до указаного уровня заточки //  все предметы ОДИНАКОВЫЕ  с  ПЕРВЫМ  заточеным //  скрипт  точит первый предмет до +1, потом второй до +1 и т.д //  если предмет при заточки блесс скрол слетел на 0 или на уровень как у вас на сервере //  то будет точиться он пока несравняется с остальными //   и т.д //  пока недостигнете заданого уровня заточки //  если предметов более одного : один предмет остается //  АВТОР ==>>>> TAMBIK //==========================================    var  BaseItems:array[1..max,1..11] of integer;  Baselvl:array[1..max] of integer;  Timer01: TTimer;  Timer02: TTimer;  Timer03: TTimer;   mytext:string;  autostart,start,autoMsg:Boolean;  flag : Boolean;  selectskrol,selectblessedskrol:Boolean;  autoselect:Boolean;  t,l,d,x,y,ii,i:integer;  ListSize,ItemEnch:word;  textID:integer;  enchantObjectID:integer;  enchantID,skrolObjectID,skrolObject:integer;  itemID,objectOID:integer;   sumskroll,sumskrol,sumitemID,sumitem:integer;  maxlvl,minlvl,enchlvl,selectlvl:integer;  ID,skrolID,blessedskrolID:integer;  skrolOID,blessedskrolOID:integer;  index :integer; //=========================================== procedure SendMsg2(msg:string); begin if autoMsg then begin   buf:=#$4A;   WriteD(0);   WriteD(chat);// <<=куда выводить сообщения   WriteS('');   WriteS(msg);   SendToClientEx(myname); end; end; //=========================================== procedure Resultmaxlvl; var   i:integer; begin  i:=2;  mytext:=ReadS(i);  textID:=ReadD(i);  if (textID=3)  then begin   maxlvl:=StrToInt(mytext); SendMsg2( ' Установлен  МАХ  Уровень Заточки: '+IntToStr(maxlvl)+'' ); pck:=''; exit; end; end; //========================================== procedure ActionUse;  begin    case ReadD(2) of  12:begin  autoMsg:=true; end;  13:begin  autoMsg:=false; end;  24:begin if (autostart=false) then SendMsg2( 'предмет незаточен или пакеты неприняты !' ); if (maxlvl=0) then SendMsg2( '  Неуказан Уровень Заточки  !' ); SendMsg2( '_______________________________' ); if autostart and  (maxlvl>0)  then begin  buf:=hstr('14');  SendToServerEx(myname);  SendMsg2( '        ! ! !   П О Е Х А Л И    ! ! !' );  SendMsg2( '_______________________________' );  start:=true;   end;   end;  25:begin   SendMsg2( '         ! ! !   С Т О П   ! ! ! ' );   stopEnchantItem;// остановка скрипта  end;  end; end; //========== procedure  stopEnchantItem;// остановка скрипта begin  autoMsg:=true;  start:=false;  deleteBase;  enchantID:=0;  ItemEnch:=0;  stopselectskrol;// отмена выбора скролл  SendMsg2 ('  ___ О С Т А Н О В Л Е Н О ___ ');  Timer01.enabled:=false;  Timer02.enabled:=false;  Timer03.enabled:=false;   index :=0;  for ii:=1 to max do   Baselvl[ii]:=-1; end;
MaJIou_DoGG вне форума  
Старый 13.07.2010, 13:52   #4
Новичок
 
Регистрация: 23.02.2010
Сообщений: 10
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
MaJIou_DoGG пока неопределено
По умолчанию

delphi Код:
//.............................................................................. procedure ItemList; var   i, j, k: integer;   count,x:integer;  begin  deleteBase;    count:=0;    x:=0;    y:=0;    j:=4;   ListSize:=ReadH(j);    count:=round((Length(pck)-5) / ListSize);   for i:=1 to ListSize do   if (i<=ListSize) then begin   BaseItems[i,1]:=ReadH(j);    BaseItems[i,2]:=ReadD(j);//ObjectID   BaseItems[i,3]:=ReadD(j);//ItemID   BaseItems[i,4]:=ReadD(j);//LocationSlot   BaseItems[i,5]:=ReadD(j);//  Amount:   BaseItems[i,6]:=ReadD(j);//  Amount:   BaseItems[i,7]:=ReadH(j);//ItemType2   BaseItems[i,8]:=ReadH(j);// CustomType1   BaseItems[i,9]:=ReadH(j);//isEquipped:   BaseItems[i,10]:=ReadD(j);//BodyPart   BaseItems[i,11]:=ReadH(j);//EnchantLevel    inc(x);   y:=count*x-(j-6);    inc(j,y);  end else for k:=1 to 11 do BaseItems[i,k]:=0;  if start then addenchantitemID;   skrolObject:=0;   sumskrol:=0;   sumskroll:=0;    minlvl:=Baselvl[1];    for ii:=2 to index do     if (Baselvl[ii] < minlvl) then      minlvl:=Baselvl[ii];// мин заточка //------------------------------ if start and selectskrol and (selectblessedskrol=false) then enchantSkroll; //------------------------------ if start and selectblessedskrol and (selectskrol=false)  then enchantblessedskroll; //------------------------------ if start and selectskrol and selectblessedskrol then enchantautoSelectSkroll;    end; //============================= procedure enchantSkroll; begin  skrolObject:=skrolOID;  sumskrol:=Getitem(skrolID,3,5);//считаем SKROL  SendMsg2 ('   SKROLL ... c  ID : '+IntToStr(skrolID)+' =  '+IntToStr(sumskrol)+' ШТ '); if (sumskrol>0) then Timer01.enabled:=true;// вкл таймер выбора свитка if (sumskrol=0) then begin    autoMsg:=true;    stopEnchantItem;   SendMsg2 ('........ НЕДОСТАТОЧНО  SKROLL........  ');  end; end; //============================= procedure enchantblessedskroll; begin    skrolObject:=blessedskrolOID;    sumskroll:=Getitem(blessedskrolID,3,5);//считаем blessedSKROL  SendMsg2 ('  blessed.  SKROLL ... c  ID : '+IntToStr(blessedskrolID)+' =  '+IntToStr(sumskroll)+' ШТ '); if (sumskroll>0) then Timer01.enabled:=true;// вкл таймер выбора свитка if (sumskroll=0) then  begin     autoMsg:=true;     stopEnchantItem;     SendMsg2 ('........ НЕДОСТАТОЧНО  blessed SKROLL........  ');      end; end; //============================= procedure enchantautoSelectSkroll;   begin  SendMsg2(' .........' ); if (minlvl<xxx) then begin    skrolObject:=skrolOID;    sumskrol:=Getitem(skrolID,3,5);//считаем SKROL   SendMsg2 ('      ___  БЕЗОПАСНО  ___ ');  SendMsg2 ('   применяем :  ...Просто .. skroll.  '); if (sumskrol>0) then Timer01.enabled:=true;// вкл таймер выбора свитка  SendMsg2 ('   SKROLL .. c  ID : '+IntToStr(skrolID)+' : =  '+IntToStr(sumskrol)+' ШТ ');  if (sumskrol=0) then begin    autoMsg:=true;    stopEnchantItem;    SendMsg2 ('........ НЕДОСТАТОЧНО  SKROLL........  ');    end;   end; if (minlvl>=xxx)  then  begin    skrolObject:=blessedskrolOID;    sumskroll:=Getitem(blessedskrolID,3,5);//считаем blessedSKROL    SendMsg2 ('      ___  О П А С Н О С Т Ь    ___ ');   SendMsg2 ('   применяем :   ...blessed. ... skroll...  '); if (sumskroll>0) then Timer01.enabled:=true;// вкл таймер выбора свитка  SendMsg2 ('  blessed.  SKROLL .. c  ID : '+IntToStr(blessedskrolID)+' =  '+IntToStr(sumskroll)+' ШТ ');       if (sumskroll=0) then  begin    autoMsg:=true;    stopEnchantItem;   SendMsg2 ('........ НЕДОСТАТОЧНО  blessedSKROLL........  ');     end; end; end;  //============================= procedure EnchantResult;   begin      index :=0;  for ii:=1 to max do   Baselvl[ii]:=-1;   end; //============================= procedure deleteBase; var   i,j,k:integer;   begin  for i:=1 to max do if (BaseItems[i,2] > 0) then begin   BaseItems[i,1]:=0;   BaseItems[i,2]:=0; //ObjectID    BaseItems[i,3]:=0//ItemID   BaseItems[i,4]:=0;    BaseItems[i,5]:=0;   BaseItems[i,6]:=0;   BaseItems[i,7]:=0;   BaseItems[i,8]:=0;   BaseItems[i,9]:=0;   BaseItems[i,10]:=0;   BaseItems[i,11]:=0;   end; end;          //=========================== function Getitem(Obj,up,down:integer): integer; var   i: integer; begin  Result:= 0;  for i:=1 to max do if (BaseItems[i,up]=Obj) then begin  Result:=BaseItems[i,down]; end; end; //=========================== function Getsumitem(Obj,up,down:integer): integer; var   i: integer; begin  Result:= 0;  for i:=1 to max do if (BaseItems[i,up]=Obj)  then begin Result:=Result+BaseItems[i,down]; end; end;
MaJIou_DoGG вне форума  
Старый 13.07.2010, 13:54   #5
Новичок
 
Регистрация: 23.02.2010
Сообщений: 10
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
MaJIou_DoGG пока неопределено
По умолчанию

delphi Код:
//============================= // добавляем в базу  ЛВЛ заточки  procedure  addenchantitemID;  begin    for i:=1 to max do if (BaseItems[i,3] = itemID)  then  begin   enchlvl:=BaseItems[i,11];   flag:=false;   for ii:=1 to max do if (Baselvl[ii] = enchlvl) then  begin // текущий  уже есть в массиве,   flag := true;    BREAK; { прекращаем цикл }    end; if (flag = false) then begin     for ii:=1 to max do if (Baselvl[ii]=-1) then begin // добавим   в массив,     Baselvl[ii]:=enchlvl;      index :=ii;   BREAK; { прекращаем цикл } end; end; end; end; //==========================  procedure ChooseInventory; var OID, lvl:integer; begin  if (itemID>0) and start then  begin    sumitemID:=0;    sumitemID:=Getsumitem(itemID,3,5); // считаем предметы для заточки  SendMsg2(''+IntToStr(sumitem)+' Предметов для заточки с ID :  '+IntToStr(itemID)+'  =  '+IntToStr(sumitemID)+' ШТ');         objectOID:=0;  SendMsg2( '*******************************************' );  SendMsg2('  ---- П О И С К     П Р Е Д М Е Т А ----' );  if (sumitemID > sumitem) then objectOID:=GetObjectID(itemID);//находим по ItemID  предмет с ObjectID  if (objectOID = 0)  then begin     autoMsg:=true;    stopEnchantItem;// остановка скрипта   SendMsg2('Больше предметов c ID : '+IntToStr(itemID)+' для заточки НЕТ ! ! ! ');   SendMsg2('----' );         lvl:=0;  for i:=1 to max do  if (BaseItems[i,3] = itemID) then  begin    OID:=BaseItems[i,2];    lvl:=BaseItems[i,11]; SendMsg2('  . . П р е д м е т . .' ); SendMsg2(' ID: '+IntToStr(itemID)+'  ObjectID: '+IntToStr(OID)+' заточен до: '+IntToStr(lvl)+' ');      SendMsg2(' .................' );    end;  end; end; end; //========================= //находим enchantID предмета по  ItemID для заточки function GetObjectID(itemID:integer) : integer; var   ID,i:integer; begin enchantID:= 0;   ItemEnch:=0;    Result:= 0;  if (itemID > 0) then begin   SendMsg2 ('    ищем ObjectID предмета с ID  :  ' +IntToStr(itemID)+' ');   SendMsg2('------------------------------' );     for i:=1 to max do  if (BaseItems[i,3] = itemID) and (BaseItems[i,11] = minlvl) and (BaseItems[i,11] < maxlvl) then begin    enchantID:=BaseItems[i,2];    Result:=BaseItems[i,2];    ItemEnch:=BaseItems[i,11];  SendMsg2('   ..... Найден  Предмет  для  Заточки  ..... ');  SendMsg2(' ID  : '+IntToStr(itemID)+' и ObjectID : '+IntToStr(enchantID)+'   заточен до : '+IntToStr(ItemEnch)+'');  SendMsg2('------------------------------' );  if start and (enchantID>0) then  Timer02.enabled:=true;   Break// прерываем дальнейший перебор массива.  end; end; end; //========================== procedure stopselectskrol;// отмена выбора скролл begin   buf:=hstr('D04E00');  SendToServerEx(myname); end; //=================================== procedure OnTimer01(Sender: TObject); begin  buf:=#$19;  WriteD(skrolObject);  WriteD(0);  SendToServerEx(myname);  Timer01.enabled:=false; end; //-------------------------- procedure OnTimer02(Sender: TObject); begin  buf:=hstr('D04C00');  WriteD(enchantID);  SendToServerEx(myname);  Timer02.enabled:=false; // Timer03.enabled:=true; end; procedure OnTimer03(Sender: TObject); begin  buf:=#$5F;  WriteD(enchantID);  WriteD(0);  SendToServerEx(myname);  Timer03.enabled:=false;  end;
MaJIou_DoGG вне форума  
Старый 13.07.2010, 13:55   #6
Новичок
 
Регистрация: 23.02.2010
Сообщений: 10
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
MaJIou_DoGG пока неопределено
По умолчанию

delphi Код:
//----------------------------------------- procedure Init; begin    minlvl:=0;    maxlvl:=0;  enchlvl:=0; ItemEnch:=0;   sumskrol:=0;  sumitem:=0; sumitemID:=0;   objectOID:=0; enchantObjectID:=0;   enchantID:=0; skrolObjectID:=0;   itemID:=0;   ID:=0;skrolID:=0; blessedskrolID:=0;    skrolOID:=0; blessedskrolOID:=0;   skrolObject:=0;   t:=0;l:=0;d:=0;index:=0;        flag:=false;    autostart:=false;    start:=false;    autoMsg:=true;    selectskrol:=false;selectblessedskrol:=false;    autoselect:=false;    Timer01:=TTimer.Create(nil);    Timer01.OnTimer:=@OnTimer01;    Timer01.enabled:=false;    Timer01.interval:=1000; //<<== время  выбора свитка      Timer02:=TTimer.Create(nil);    Timer02.OnTimer:=@OnTimer02;    Timer02.enabled:=false;    Timer02.interval:=1000; //<<== время  выбора предмета    Timer03:=TTimer.Create(nil);    Timer03.OnTimer:=@OnTimer03;    Timer03.enabled:=false;    Timer03.interval:=2400; //<<== время между заточкой    SendMsg2( '     привет от TAMBIKa' );  SendMsg2( 'в пати чат пишем уровень заточки' );  SendMsg2( '    заточить предмет один раз ! ! !' );  SendMsg2( '  СТАРТ  соцдействие  ДА ' );  SendMsg2( '  СТОП   соцдействие  НЕТ' );  SendMsg2('В К Л сообщения соцдействие-приветствие\hello  ' );  SendMsg2('ВЫКЛ  сообщения соцдействие-победа\victory   ' );  SendMsg2( '------------------------------------- ' );   deleteBase;   OpenInventory;//открыть инвентарь   for ii:=1 to max do   Baselvl[ii]:=-1;  end; procedure Free; begin   Timer01.free;   Timer02.free;   Timer03.free; end; //========================= procedure OpenInventory;//открыть инвентарь.14=RequestItemList begin buf:=hstr('14'); SendToServerEx(myname); end; //========================= procedure addtoskrolID;  begin  OpenInventory;//открыть инвентарь    SendMsg2('           ........ = UseItem = .........' );    skrolObjectID:=ReadD(2);    ID:=0;    ID:=Getitem(skrolObjectID,2,3);//находим по ObjectID скрол с ItemID  if (ID>0) then t:=1;     case ID of  6569..6578:begin     blessedskrolID:=ID;     blessedskrolOID:=skrolObjectID;     SendMsg2(' активирован Blessed SKROLL  ID : '+IntToStr(blessedskrolID)+'');     selectblessedskrol:=true;     SendMsg2(' .................' );     end;  729..732,947..962:begin     skrolID:=ID;     skrolOID:=skrolObjectID;     SendMsg2(' активирован SKROLL  ID : '+IntToStr(skrolID)+'');     selectskrol:=true;     SendMsg2(' .................' );   end; end; end;  //========================= begin //не обрабатываем пустые пакеты   if pck='' then exit;  if FromServer and (pck[1]=#$FE) and (pck[2]=#$81) and start then begin    Timer03.enabled:=true; SendMsg2('      .....    Точим Предмет    ..... '); SendMsg2( ' ID :  '+IntToStr(itemID)+' и ObjectID : '+IntToStr(enchantID)+'  -  до  :  '+IntToStr(maxlvl)+'' ); SendMsg2( '*******************************************' );end;  if FromServer and (pck[1]=#$87) then  EnchantResult;  if FromServer and (pck[1]=#$11) then ItemList;  if FromServer and (pck[1]=#$7C) then ChooseInventory;  if FromClient and (pck[1]=#$49) then begin Resultmaxlvl;end;  if FromClient and (pck[1]=#$56) then begin ActionUse; pck:='';exit;end; begin  if (start=false) and FromClient then        case pck[1] of  #$19:addtoskrolID;  #$D0:if  ReadH(2)=76 then  begin        l:=1;        SendMsg2('  выбор ________ предмета ' );        SendMsg2(' .................' );      end;  #$5F:begin        d:=1;     enchantObjectID:=ReadD(2);  if (t=1) and (l=1) and (d=1) then begin    itemID:=0;    itemID:= Getitem(enchantObjectID,2,3);//находим по ObjectID предмет с ItemID  if (itemID > 0) then autostart:=true;    SendMsg2 ('  ID предмета :  '+IntToStr(itemID)+'   для заточки');   sumitem:=0;   sumitemID:=0;   sumitemID:=Getsumitem(itemID,3,5); // считаем предметы для заточки    if (sumitemID > 1) then sumitem:=1;   SendMsg2 (''+IntToStr(sumitem)+' Предметов для заточки с  ID :  '+IntToStr(itemID)+'  =  '+IntToStr(sumitemID)+' ШТ ');   SendMsg2(' .................' );        stopselectskrol;         end;      end;    end; end; end.

Плз не судите строго если выложил чего не так, это весь скрипт , рубанул его на 4 части
MaJIou_DoGG вне форума  
Старый 13.07.2010, 14:12   #7
Местный
 
Аватар для Breadfan
 
Регистрация: 29.04.2008
Сообщений: 830
Сказал Спасибо: 80
Имеет 230 спасибок в 169 сообщенях
Breadfan пока неопределено
По умолчанию

Ну вот же, в 4ом блоке, специально помечены комментарием строки: "//<<== время выбора предмета", "//<<== время выбора свитка", "2400; //<<== время между заточкой " - в данный момент сумма значений приводит к задержке между заточками в 4.4 секунды. Пробуй изменить значения интервалов таймера, и следи за изменениями в работе.
__________________
На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."

А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?
Breadfan вне форума  
Старый 13.07.2010, 14:23   #8
Новичок
 
Регистрация: 23.02.2010
Сообщений: 10
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
MaJIou_DoGG пока неопределено
По умолчанию

Точняк , спс , я несколько раз просматривал не заметил. Болшое спс.

Добавлено через 4 минуты
Изменил все 3 строки на 400мс и сразу же выбило с игры с надписью что админ проинформирован . Играю на Епилоге, какое оптимальное значение посоветуете?

Добавлено через 2 минуты
Поставил 400 400 и время между точками 1000 - вродь пашит ( вдруг кому пригодится)

Последний раз редактировалось MaJIou_DoGG, 13.07.2010 в 14:23. Причина: Добавлено сообщение
MaJIou_DoGG вне форума  
Закрытая тема

  CoderX :: Forums > Lineage II > L2PacketHack



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

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


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

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!