28 Марта 2024 17:11 
Заработай шерингом
Навигация
 +  - 
Скачать игры
Сейчас на сайте
24.03.2024
4071505
4 дней
offline
20.03.2024
V1ad
1 неделя
offline
19.03.2024
nhocly1
1 неделя
offline
17.03.2024
Jevelin
1 неделя
offline
14.03.2024
albinam...
1 неделя
offline
Последние фото
Game of Blocks : WesterosCraft and Game of Thrones
Game of Blocks : Wes...
Альбом: Скриншоты

Вынос трёх пати куполом
Вынос трёх пати куполом
Альбом: Скриншоты



Альбом: Флора

Последние видео
Видео THE WORLD LIVE -  since 2008 | earthTV : So thank you for the many views of this stream, please enjoy the original classic television version of THE WORLD LIVE, first uploaded here for you in 2008 with just 7 locations.

Онлайн камеры:  THE WORLD LIVE - since 2008 | earthTV

Видео The Best Of Norway's Railway Cab Views : I\

Онлайн камеры:  The Best Of Norway's Railway Cab Views

Видео 130 LIVE World Cameras : 130 LIVE World Cameras, Relaxing Music, Map, Daily Timelapse - Your Armchair Travel

Онлайн камеры:  130 LIVE World Cameras

Наша кнопочка
FAQ7.ru
Код:
RSS каналы
Новости
Комменты
Форум
Статьи
Фото
Файлы
Ссылки
Объявления
Реклама
RU CLICKSРусский трафик
Автор темы: Warhangel
ID темы: 239
Информация о теме:
Имеются 1 сообщений по данной теме, которая была просмотрена 6266 раз.
Реклама
Обменник Обменник
Просмотр темы
Логин:
Пароль:  
Форум » Игровые форумы » Lineage » Боты и скрипты
Просмотр темы
Текущий рейтинг: (Всего: 0 голосов)  
Ответить
Иконка 
Мануал по подключению ОГ бота к JAVA серверам Kamael
Наверх Распечатать сообщение #1
Опубликовано 14-09-2010 03:00
Аватар пользователя

Супер Администратор



Сообщений: 2688
Вас поблагодарили: 23
раз(а) в 23 сообщениях

Зарегистрирован: 24.03.10
Со дня регистрации: 5118
Откуда: Россия

Скрыть награды


Пожаловаться на это сообщение 

>> Программы для подключения:

1) eL2Walker10.9.1
2) WSS 2.7
3) WPF 6.56

Codec-Скрипты для WPF PPC:

>> Corrector-1.fsc (Скрипт для декодирования трафика LineAgeII)
Скрытый текст

Procedure OnDeCode;
var le : integer;
    s : string;
begin
  if _dFromServ and (_gAbsNumPkt = 2) then begin
    if (gSys.TrafType = 2) then begin
      le := length(_dBuff);
      if (le in [$15,$18,$19,$1A,$1C]) then begin
        s := copy(_dBuff,5,8)+ HStr('C8279301A16C3197');
        gSys.Kci := s; gSys.Kco := s; gSys.Ksi := s; gSys.Kso := s;
        gSys.tKeyType := 3;
        if le = $19 then gSys.tKeyType := 4;
        gSys.tPDecode := 2;
        writelogln(format('KeyInit corrected. KT: %d',[gSys.tKeyType]));
      end;
    end;
  end;
end;
begin
end.


Скопируйте код в блокнот и сохраните как Corrector-1.fsc или скачайте готовый файл

>> demo_la2endecGS4m2.fsc (Скрипт для декодирования трафика LineAgeII)

Скрытый текст
var
  Kci : string;
  Kco : string;
  Ksi : string;
  Kso : string;
  s,s1 : string;
  scode : boolean;
  le : integer;
  ID : integer;
  CharName : string;
  _seed : integer;
  _1_byte_table : string;
  _2_byte_table : string;
  _id_mix : boolean;
  temp_seed : integer;

Procedure OnCreate;
begin
  gSys.TrafType := 0;
  gSys.tPDecode := 0;
  gSys.tKeyType := 0;
  gSys.Protocol := -1;
  gSys.isGS := 0;
  gSys.isLS := 0;
  gSys.tParse := 2;
  scode := false;
  Kci := ''; Kco := ''; Ksi := ''; Kso := '';
  CharName := '';
  _id_mix := false;
end;

procedure _DecGS(var bf : string;var ke : string; tk : integer);
var i,j,b,i1,sz,sk : integer;
begin
  sz := length(bf);
  sk := length(ke);
  if sk = 0 then exit;
  b := 0; j := 1;
  for i := 3 to sz do begin
    i1 := ord(bf[i]);
    bf[i] := chr(i1 xor ord(ke[j]) xor b);
    b := i1;
    Inc(j,1);
    if j > sk then j := 1;
  end;
  case tk of
    1: PInt(ke,GInt(ke,1,4)+sz-2,1,4);
    2: PInt(ke,GInt(ke,1,8)+sz-2,1,8);
    3: PInt(ke,GInt(ke,9,8)+sz-2,9,8);
    4: PInt(ke,GInt(ke,9,8)+sz-2,9,8);
  end;
end;

procedure _EncGS(var bf : string;var ke : string; tk : integer);
var i,j,b,i1,sz,sk : integer;
begin
  sz := length(bf);
  sk := length(ke);
  if sk = 0 then exit;
  i1 := 0; j := 1;
  for i := 3 to sz do begin
    bf[i] := chr(ord(bf[i]) xor ord(ke[j]) xor i1);
    i1 := ord(bf[i]);
    Inc(j,1);
    if j > sk then j := 1;
  end;
  case tk of
    1: PInt(ke,GInt(ke,1,4)+sz-2,1,4);
    2: PInt(ke,GInt(ke,1,8)+sz-2,1,8);
    3: PInt(ke,GInt(ke,9,8)+sz-2,9,8);
    4: PInt(ke,GInt(ke,9,8)+sz-2,9,8);
  end;
end;

procedure _pseudo_srand(seed : integer);
begin
     _seed := seed;
end;

function _pseudo_rand: integer;
var
   a : integer;
begin
     a := (Int64(_seed) * $343fd + $269EC3) and $FFFFFFFF;
     _seed := a;
     result := (_seed shr $10) and $7FFF;
end;

procedure _init_tables(seed: integer);
var
   i : integer;
   x : byte;
   rand_pos : integer;
   cur_pos : integer;
begin
     _1_byte_table := '';
     _2_byte_table := '';
     for i := 0 to $D0 do begin
         _1_byte_table := _1_byte_table + chr(i);
     end;
     for i := 0 to $4D do begin
         _2_byte_table := _2_byte_table + chr(i) + #$0;
     end;
     _pseudo_srand(seed);
     for i := 2 to $D1 do begin
         rand_pos := (_pseudo_rand mod i) + 1;
         x := GInt(_1_byte_table, rand_pos, 1);
         PInt(_1_byte_table, GInt(_1_byte_table, i, 1), rand_pos, 1);
         PInt(_1_byte_table, x, i, 1);
     end;
     cur_pos := 3;
     for i := 2 to $4E do begin
         rand_pos := _pseudo_rand mod i;
         x := GInt(_2_byte_table, rand_pos * 2 + 1 , 2);
         PInt(_2_byte_table, GInt(_2_byte_table, cur_pos, 2), rand_pos * 2 + 1, 2);
         PInt(_2_byte_table, x, cur_pos, 2);
         cur_pos := cur_pos + 2;
     end;
     cur_pos := Pos(#$12, _1_byte_table);
     x := GInt(_1_byte_table, $13, 1);
     PInt(_1_byte_table, $12, $13, 1);
     PInt(_1_byte_table, x, cur_pos, 1);
     cur_pos := Pos(#$B1, _1_byte_table);
     x := GInt(_1_byte_table, $B2, 1);
     PInt(_1_byte_table, $B1, $B2, 1);
     PInt(_1_byte_table, x, cur_pos, 1);
end;

procedure _decode_ID(var buff:string);
var
   p: integer;
begin
     PInt(buff, GInt(_1_byte_table, GInt(buff, 3, 1) + 1, 1) , 3, 1);
     if GInt(buff, 3, 1) = $D0 then begin
          PInt(buff, GInt(_2_byte_table, GInt(buff, 4, 1) * 2 + 1, 1) , 4, 1);
     end;
end;

procedure _encode_ID(var buff:string);
var
   p: integer;
begin
     if GInt(buff, 3, 1) = $D0 then begin
        p:= pos(Chr(GInt(buff, 4, 1)), _2_byte_table);
        PInt(buff, ((p + 1) shr 1) - 1, 4, 1);
     end;
     p := pos(Chr(GInt(buff, 3, 1)), _1_byte_table);
     PInt(buff, p-1, 3, 1);
end;

Procedure Trafic_Detector;
var _s : string;
begin
  le := length(_dBuff);
  if (gSys.TrafType = 0) and (_gAbsNumPkt = 1) then begin
    case le of
     $0B,$9B,$AB,$BA: begin
                    gSys.TrafType := 2;
                    gSys.isLS := 1;
                    if le = $0B then gSys.tKeyType := 1 else gSys.tKeyType := 2;
                  end;
     $107: begin
             gSys.TrafType := 2;
             gSys.isGS := 1;
           end;
     $07: begin
             gSys.TrafType := 2;
             gSys.isGS := 2;
          end;
     else if le >= $107 then begin
            if pos(HStr('05 52 05 54 07 51 51 55 07 02 53 53 00 52 05 52'),_dBuff) <> 0 then begin
              gSys.TrafType := 2;
              gSys.isGS := 2;
            end;
            if StrCmp(copy(_dBuff, 3, 5), HStr('0E 3C 03 00 00')) then begin
              writelogln('CT1 traffic detected');
              gSys.TrafType := 2;
              gSys.isGS := 3;
            end;
          end;
    end;
    if gSys.TrafType = 2 then gSys.SetIDposlen(3,1);
    if gSys.isGS > 0 then gSys.Protocol := gInt(_dBuff,4,4);
    if gSys.Protocol >= 828 then gSys.isGS := 3;
  end;
   if (_gAbsNumPkt = 2) then
  if  (gSys.TrafType = 2) and (gSys.isGS > 0) and _dFromServ then begin
    if (le = 12) then gSys.tKeyType := 1;
    if (le = 16) then gSys.tKeyType := 2;
    if (le = $1A) then gSys.tKeyType := 3;
    if (le = $1C) then gSys.tKeyType := 3;
    if (le = $15) then gSys.tKeyType := 3;
    if (le = $19) then gSys.tKeyType := 4;
    if gSys.tKeyType > 0 then begin
      s := copy(_dBuff,5,16);
      if gSys.tKeyType < 3 then s := copy(s,1,4)+Hstr('A1 6C 54 87');
      if gSys.tKeyType = 3 then s := copy(s,1,8)+Hstr('C8 27 93 01 A1 6C 31 97');
      if gSys.tKeyType = 4 then begin
         s := copy(s,1,8)+Hstr('C8 27 93 01 A1 6C 31 97');
         _id_mix := true;
         _init_tables(GInt(_dBuff, $16, 4));
         writelogln('kamael+ trafic detected');
      end;
      Kci := s; Kco := s; Ksi := s; Kso := s;
      scode := true;
      writelogln('key:');writeloghexb(s);
    end else writelogln('неопознанный ключевой пакет GS LA2 протокола')
  end;
end;

Procedure OnDeCode;
begin
  if _gAbsNumPkt < 6 then Trafic_Detector;
  if scode and (_gAbsNumPkt > 2) then begin
    if _dFromServ then
      _DecGS(_dBuff,Ksi,gSys.tKeyType)
    else begin
      _DecGS(_dBuff,Kci,gSys.tKeyType);
      writelogHexB(_dBuff);
      if _id_mix then _decode_id(_dBuff);
    end;
    _dOutBuff := _dBuff;
  end;
end;

Procedure OnEnCode;
begin
  if scode and (_gAbsNumPkt > 2) then begin
  // кодируем пакет, ручная реализация стандартного алгоритма
    if _dFromServ then
      _EncGS(_dBuff,Kco,gSys.tKeyType)
    else begin
      if _id_mix then _encode_id(_dBuff);
      _EncGS(_dBuff,Kso,gSys.tKeyType);
    end;
    _dOutBuff := _dBuff;
  end;
end;

procedure SendMsg(msg : string);
begin
  if (gSys.isGS > 0) and (gSys.TrafType = 2) then  // проверка на трафик LA2 GS
    gSys.EnSendC(FormatPck('%cddss',[#$4A,0,10,#0,msg+#0]));
end;

BEGIN
    if ID = $0B then begin
      ScanPck5(_gBuff, 4, 's-99-99-04d' ,CharName, temp_seed, null, null, null);
      writelogln(format('reseting id tables on CharSelected; Seed = %x',[temp_seed]));
     _init_tables(temp_seed);
  end;
END.


Скопируйте код в блокнот и сохраните как demo_la2endecGS4m2.fsc или скачайте готовый файл


Fix-Скрипты для WPF PPC:

>> FixError.sc: (Если возникает ошибка PacketError)

Скрытый текст требуется (5 сообщение(ий), сейчас у вас 10):

Скрытый текст
BEGIN
if (_gbuff=#$03+#0+#$F9) then gBlockPacket;
If (_gBuff=#$02+#0) then gBlockPacket;
if (length(_gbuff) <> Gint(_gbuff,1,2)) and Gint(_gBuff,1,2)<> 2 then _gOutBuff:=Hpck(BufToHex(Copy(_gBuff,3,length(_gbu ff)-2)));
if (length(_gbuff) <> Gint(_gbuff,1,2)) and (Gint(_gBuff,1,2) = 2) then _gOutBuff:=Copy(_gBuff,3,length(_gbuff)-2);
end;


Скопируйте код в блокнот и сохраните как FixError.sc или скачайте готовый файл


>> FixMove.fsc: (Если бот вылетает при попытке к движению)

Скрытый текст требуется (5 сообщение(ий), сейчас у вас 10):
Код:

Скрытый текст
begin
if (length(_gBuff)<3) or (not (gsys.isgs>0)) then exit;
  if (not _gFromServ) and strcmp(_gBuff[3],#$0F) then
    if (length(_gBuff)<>31) then
      _gOutBuff:=hstr('1F 00')+copy(_gBuff,3,25)+hstr('01 00 00 00');
end.


Скопируйте код в блокнот и сохраните как FixMove.fsc или скачайте готовый файл


>> FixDialogs.fsc: (Если не открываются продолжения диалогов с НПЦ)
Скрытый текст требуется (20 сообщение(ий), сейчас у вас 10):
У вас нет прав чтобы видеть скрытый текст, содержащейся здесь.


>> FixParty.fsc: (Если некорректно отображаются параметры HP/MP/CP у сопартийцев)


>> MultyFix.fsc (Универсальный скрипт-энциклопедия, содержащий 8 Фиксов)

Не все скрипты нужны для каждого Камаэль сервера! Прежде чем скачивать файлы, убедитесь, что они вам нужны!

>> Мануал по подключению:

1) Допустим вы нашли ИП, порт, версию протокола своего сервера. Как это делать ищите на форуме. (Стандартно Port=2106 Protocol=828)
Создаем сет.ини Вот пример сет.ини:

Скрытый текст
[DEFAULT]
CountryList=Groza.ru;
DefaultCountry=0
DefaultServer=0
DefaultCharacter=0
DefaultAccount=allcheats
DefaultPassWord=allcheat s
[Groza.ru]
LoginServerIP=83.167.24.205
LoginServerPort=2106
Proto colVersion=828
ServerList=[1]Bartz;


2) Запускаем WSS (Он должен лежать в паке с ботом вместе с файлом patcher.ini). Ставим галочку "Патчить автоматически", из списка серверов выбираем нужный (IP и версия протокола заполнятся автоматически из файла Set.ini бота). Если у вас в папке с ботом и с WSS нет файла patcher.ini, то создаем его и вписываем как показано в ПРИЛОЖЕНИИ.
3) Запускаем ВПФ и открываем в нем П-Ц панель. В открывшемся окне в выпадающей менюшке ищем свой сервер (который прописан в сет.ини). Как выбрали, жмем кнопку "Добавить". Если список серверов пустой, то жмем "Добавить" и редактируем запись полностью вручную. Сервер добавиться в поле под менюшкой. Выделяем строку со своим сервером. Затем кликаем по полю для скриптов (состоит из 3х строчек). Затем жмем кнопочку "[...] - файл скрипта" и выбираем нужный скрипт. 1-ым скриптом должен быть CODEC-скрипт, если трафик правильно не декодируется силами самого WPF. Если представленные CODEC-скрипты не помогли, то на вашем сервере стоит антибот или просто кодирование трафика идет нестандартно. Все, впф можно свернуть в трей (перед этим проверив, что в нем запущен прокси, например 127.0.0.1:1777)
4) Возвращаемся в окно бота. Вводим свои логин и пароль. Затем жмем Setup->Option Вводим в поля IP и Port ип и порт прокси впф (стандартно 127.0.0.1 1777). Поля ид и пароль оставляем пусыми. Жмем кнопку "add". В выпадающих менюшках выше выбираем чтото типо: 127.0.0.1:1777:: и ставим рядом 2 галочки.
Все! Закрываем окошко и жмем логин. Видим чтото типо:

Скрытый текст
21:40:31 »¶У*К№УГРРХЯЎЈ
21:40:31 Link LoginServer Succeed.
21:40:35 Login LoginServer Success.
21:40:35 &#26381;&#21153;&#22120;[01]&#24403;&#21069;&#2 2312;&#32447;&#29575;:2.50%,&#33021;&#21542;&#30331 ;&#38470;:&#33021;
21:40:37 Link GameServer Succeed.
21:40:42 ->Enter Char[1].
21:40:46 Welcome to the World of Lineage II.
21:40:46 $s2 Copyright 2004-2008
21:40:46 Seven Signs: This is the seal validation period. A new quest event period begins next Monday.
21:40:46 $s2 A brand new Lineage II event, Trick or Transmutation, will begin on February 20th! Players must find materials needed to craft one of six different Philosopher's Stones. Philosopher's Stones are used
21:40:46 $s2 Hearts will stop dropping on February 18. Sprockets the Cat will remain in the villages until February 27.
 Offline
 
Посетить сайт автора
Цитировать
Ответить
Здесь присутствуют: 1 (пользователей: 0, гостей: 1)

« Предыдущая тема | Следующая тема »
 RSS Перейти на форум:
Розыгрыши 728х90

Последние объявления
ФотоЗаголовокГородРазмещено
ООО «ЛУКОЙЛ-Нижневолжскнефть» реализует неликвиды
• Хозяйство - Оборудование Цена: 1 1
Астрахань18.03.2024
(на 1 месяц)
Группа «Илим» реализует неликвиды своих предприятий
• Хозяйство - Оборудование Цена: 1 1
Санкт-Петербург16.03.2024
(на 1 месяц)
ООО «Ставролен» реализует неликвиды
• Хозяйство - Сырье и материалы Цена: 1 1
Ставрополь13.03.2024
(на 1 месяц)
ПАО «Уралкалий» реализует невостребованные ТМЦ в ассортименте
• Хозяйство - Оборудование Цена: 1 1
Пермь09.03.2024
(на 1 месяц)
Облако тегов тем форума
La2offline, ЦБ Австралии протестировал систему на блокчейне Эфириума для межбанковских платежей, Квест на трансформацию, Ford протестировал блокчейн для снижения выбросов гибридных электромобилей, Выход корейской версии Lineage M состоится в конце июня, Компьютерные термины, сокращения..., Облачная платформа Microsoft Azure представила коллекционные токены, Баг передвежения ассасина, Cloaking Device FAQ, Палеонтологи обнаружили древнейшее крылатое насекомое, Evolution of Minecraft, Оссобуко (Osso buco), Гордость Таэрна (Pride of Taern) - браузерная MMORPG от компании Whitemoon, Немцы делают автоматический телефон-переводчик, С 31 мая по 1 июня&#8203; в Санкт-Петербурге &#8203;пройдет Crypto World Cup от CryptoFriend
Главная Статьи Файлы Форум Ссылки Новости Фотогалерея Объявления Видео Файлобменник Гороскоп Торренты Радио Видеочат
Powered by PHP-Fusion copyright © 2002 - 2024 by Nick Jones. Released as free software without warranties under GNU Affero GPL v3.