Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Lineage II (https://forum.zone-game.info/forumdisplay.php?f=34)
-   -   Работа над Goddess of Destruction (part 5) (https://forum.zone-game.info/showthread.php?t=17274)

tuningxtreme 13.06.2013 22:28

Re: Работа над Goddess of Destruction (part 5)
 
Help in lindvior protocol 531:
I'm in trouble, could change soon with character usually created in glory days however I can not create a new character, when I select the race, gender, class, choose the name and click on create nothing happens.

Gaikotsu 13.06.2013 22:55

Re: Работа над Goddess of Destruction (part 5)
 
Цитата:

Сообщение от smeli (Сообщение 305265)
протокол 530
пакет
EXSend:0xFE:0x154: ExTeleportToLocationActivate

неподходит, явно другой опкод. или же опкод такойже но другой формат пакета?

формат остался тот же.
вопрос только в том, в какой последовательности ты шлешь пакеты?

в глори сначала надо было слать ExTeleportToLocationActivate, потом уже TeleportToLocation, а в линдвиоре - наоборот, иначе никакого эффекта от отправки ExTeleportToLocationActivate нет.

Добавлено через 4 минуты
Цитата:

Сообщение от tuningxtreme (Сообщение 305297)
Help in lindvior protocol 531:
I'm in trouble, could change soon with character usually created in glory days however I can not create a new character, when I select the race, gender, class, choose the name and click on create nothing happens.

maybe wrong client packets opcodes?

P.S. in lindvior changed not only the server packets opcodes, but also client packets opcodes

alexteam 14.06.2013 02:06

Re: Работа над Goddess of Destruction (part 5)
 
Бог в помощь:
Свернуть ↑Развернуть ↓

smeli 14.06.2013 06:40

Re: Работа над Goddess of Destruction (part 5)
 
Цитата:

Сообщение от Gaikotsu (Сообщение 305302)
формат остался тот же.
вопрос только в том, в какой последовательности ты шлешь пакеты?

в глори сначала надо было слать ExTeleportToLocationActivate, потом уже TeleportToLocation, а в линдвиоре - наоборот, иначе никакого эффекта от отправки ExTeleportToLocationActivate нет.

спасибо

а вы неподумали что до 530 я занимался другими протоколами линдвиора
и в других протоколах было всё в норме, так что небудем о глори дейз

попробую посылать етот пакет 2 раза, один до и другой после
почему? чтоб была поддержка линдвиора а не линвсиора с протоколом 530 ONLY

---

сработало, спасибо ещё раз

сейчас другой вопрос. я поменял пакет клан креста. захожу в игру, допустим я его вижу. делаю релогин и невижу, логин, опять невижу
коро4е иногда я его вижу а иногда нет. где копать?

Be3geBJIa3 14.06.2013 10:55

Re: Работа над Goddess of Destruction (part 5)
 
alexteam, чем вам WPF не угодил? файл описатель легко переделать, почти все что нужно есть.
И еще, alexteam, как я уже писал в теме Lindvior протокол 532
не правильно строку Name определили, формат строки как в dat файлах, корейцы действительно долго курили, чтобы придумать конструкцию вида 2 байта длина widestring+widestring без конечного 00.
alexteam, программа понравилась, круто, но строку Name из ExUserInfo определяет не правильно. Может реализуете оператор для чтения такой строки, но при разборе dat файлов иногда длина строки не соответствовала самой строке и приходилось проверять каждый символ на соответствие, т.е. на самом деле строки попадались длиннее, возможно были и короче, но я сразу сделал проверку.

Может стоит протокол 532 в отдельную тему выделить?

ANZO 14.06.2013 11:40

Re: Работа над Goddess of Destruction (part 5)
 
Прям событие , 532 протокол :D Протокол как протокол, не геморнее любого другого до. А тут уже тему аж отдельную создавать собрались :D

smeli 14.06.2013 11:44

Re: Работа над Goddess of Destruction (part 5)
 
Цитата:

Сообщение от ANZO (Сообщение 305371)
Прям событие , 532 протокол :D Протокол как протокол, не геморнее любого другого до. А тут уже тему аж отдельную создавать собрались :D

рас патриарx ботоводства всея руси говорит что надо отделную тему, то значит что надо оно на 100%

Be3geBJIa3 14.06.2013 12:32

Re: Работа над Goddess of Destruction (part 5)
 
А ха-ха, насмешили, гении флудоводства.

alexteam 14.06.2013 14:36

Re: Работа над Goddess of Destruction (part 5)
 
Цитата:

alexteam, чем вам WPF не угодил?
я его не использую. вообще. основная причина - у него интерфейс аля "fuckuser".
хотя, логи онного могу прикрутить (если расскажете формат онных + дадите "пример")

Цитата:

я уже писал в теме Lindvior протокол 532
не заметил этой темы

Цитата:

2 байта длина widestring+widestring без конечного 00.
function RSEx(name:ansistring):ansistring

обновил ссылку в пред сообщении.

VezdeVlaz 14.06.2013 16:54

Re: Работа над Goddess of Destruction (part 5)
 
alexteam, у WPF серьезный файл лога, т.к. много дополнительной информации логируется, а то что можно перевести в txt,
1:
Свернуть ↑Развернуть ↓

так что не нужно.

alexteam 14.06.2013 19:29

Re: Работа над Goddess of Destruction (part 5)
 
ясно. еще раз апдейтнул добавив ментальную связь с глобальным разумом.
думаю этого вполне хватит.
ап. RSex() оказался немножко багованым. не смещал оффсет после прочтения значения.

serk 15.06.2013 17:50

Re: Работа над Goddess of Destruction (part 5)
 
привет у меня проблема я не могу показать новые питомцы навыки я добавил тэм ин. XML, я добавил умениям и навыкам в таблице pet_skills, и я не цан найти что-то из пакетов. Может кто поможет мне? Я использую ProtocolVersion 530

жаль, но я использовал Google Translator

elastic 15.06.2013 19:31

Re: Работа над Goddess of Destruction (part 5)
 
Цитата:

Сообщение от serk (Сообщение 305613)
привет у меня проблема я не могу показать новые питомцы навыки я добавил тэм ин. XML, я добавил умениям и навыкам в таблице pet_skills, и я не цан найти что-то из пакетов. Может кто поможет мне? Я использую ProtocolVersion 520

жаль, но я использовал Google Translator

Use english please

serk 15.06.2013 19:47

Re: Работа над Goddess of Destruction (part 5)
 
the skills from new summons are not displayed i have added them in requestactionuse,in xml. and in pet_skills datatable.i also scan for opcodse changes but i cant find something.im using protocolversion 530

Krasavella 19.06.2013 00:28

Re: Работа над Goddess of Destruction (part 5)
 
Подскажите, как получить значение из прайса на "Возвращаемое Sp" при использовании забвения, со сдвигом на одну строку вниз?

Вот наше значение возврата Sp - 14,639,421

http://image.zone-game.info/images/2013/06/19/e2URJ.jpg

Оно находится на четвертом месте в Sp для изучения:

{1332450, 2091345},
{3997349, 6274037},
{6662250, 10456729},
{9327150, 14639421},
Code: C++

Получится должно следующее:

http://image.zone-game.info/images/2013/06/19/TA3Ow.jpg

Кто знает решение проблемы?

Deazer 19.06.2013 01:11

Re: Работа над Goddess of Destruction (part 5)
 
Красавела , какой то у вас фришард.....

http://s017.radikal.ru/i442/1306/de/e6c412b4d3cc.bmp
http://s40.radikal.ru/i089/1306/24/ecd88d79acea.bmp

Bacek 19.06.2013 01:59

Re: Работа над Goddess of Destruction (part 5)
 
Цитата:

Сообщение от Krasavella (Сообщение 306414)
Подскажите, как получить значение из прайса на "Возвращаемое Sp" при использовании забвения, со сдвигом на одну строку вниз?

Вот наше значение возврата Sp - 14,639,421

Оно находится на четвертом месте в Sp для изучения:

{1332450, 2091345},
{3997349, 6274037},
{6662250, 10456729},
{9327150, 14639421},
Code: C++


Кто знает решение проблемы?

о "-" не думали когда код писали ? =)

Krasavella 19.06.2013 10:08

Re: Работа над Goddess of Destruction (part 5)
 
Цитата:

Сообщение от Deazer (Сообщение 306421)
Красавела

Меня интересует разучивание!!!

Добавлено через 44 минуты
Уже помогли, нужно было +1 добавить =)

Добавлено через 4 часа 32 минуты
Скажите пожалуйста, "Возмездие Валакаса" это какой тип оружия?

http://image.zone-game.info/images/2013/06/19/kVRS.jpg

Судя по информации - http://l2central.info/articles/items...uzhie-drakonov

Это Дробящее / Двуручное Магическое верно?

..Kirito.. 20.06.2013 04:04

Re: Работа над Goddess of Destruction (part 5)
 
Цитата:

Скажите пожалуйста, "Возмездие Валакаса" это какой тип оружия?
Да вы совершенно правы)))

Krasavella 20.06.2013 10:20

Re: Работа над Goddess of Destruction (part 5)
 
Цитата:

Сообщение от MarioUP (Сообщение 306595)
Да вы совершенно правы)))

Спасибо большое !!!))

..Kirito.. 29.06.2013 15:18

Re: Работа над Goddess of Destruction (part 5)
 
Поделитесь пожалуйста ddf'ками episodion )))

Krasavella 29.06.2013 16:07

Re: Работа над Goddess of Destruction (part 5)
 
От Lindvior подходят =)

iquelite 29.06.2013 20:08

Re: Работа над Goddess of Destruction (part 5)
 
anyone know about the 0x169 packet name in Lindvior 532 ?

DXVSI 11.07.2013 15:00

Re: Работа над Goddess of Destruction (part 5)
 
Здравствуйте столкнулся с проблемой что у оружия меняется вид в пвп, заметил я это на оружие R-R99 т.е GoD,такая же проблема с камнями обработки, в большинстве моментов невидно шмота!
Если кто сталкивался и справился с этой проблемой прошу его пожалуйста поделиться)))

Mifesto 11.07.2013 15:58

Re: Работа над Goddess of Destruction (part 5)
 
кривые пакеты UserInfo и/или CharInfo

lnkognlto 12.07.2013 08:32

Re: Работа над Goddess of Destruction (part 5)
 
Вот столкнулся с проблемой мульти профы на своем сервере. Нашел выход "автоизучение". Помучался с ним прописывал разные конфиги которые есть на просторах форумов ничего не подошло. Сам в етом деле не очень шарю. Подскажите что можно сделать чтоб сделать автоизучение.

lamo386 12.07.2013 18:43

Re: Работа над Goddess of Destruction (part 5)
 
Цитата:

Сообщение от iquelite (Сообщение 308204)
anyone know about the 0x169 packet name in Lindvior 532 ?

name: ExUserInfoInvenWeight
Opcode : FE;
ExOpcode : 169
Size: 15 + 2

0003 d ObjId :
0007 d CurrentLoad :
000B d MaxLoad :

iquelite 13.07.2013 14:19

Re: Работа над Goddess of Destruction (part 5)
 
Цитата:

Сообщение от lamo386 (Сообщение 310730)
name: ExUserInfoInvenWeight
Opcode : FE;
ExOpcode : 169
Size: 15 + 2

0003 d ObjId :
0007 d CurrentLoad :
000B d MaxLoad :

Thanks~ :)

kloni1 15.07.2013 14:56

Re: Работа над Goddess of Destruction (part 5)
 
Подскажите пожалуйста какой пакетик и что поменялось в Lindvior отвечающий за телепортацию, решил апнуть сборку с Glory Days до Lindvior, на глори все работало.

Все тему почитал нашел ))

Mifesto 15.07.2013 15:42

Re: Работа над Goddess of Destruction (part 5)
 
нечего не поменялось, поменялась очередь отправки пакета.

ExTeleportToLocationActivate нужно слать после TeleportToLocation, искать в Creature, в методе типо teleToLocation(...);

DXVSI 15.07.2013 19:18

Re: Работа над Goddess of Destruction (part 5)
 
Кто может скинуть рабочие пакеть UserInfo и CharInfo?

kloni1 16.07.2013 22:15

Re: Работа над Goddess of Destruction (part 5)
 
Подскажите пожалуйста, какой пакетик отвечает за то, что когда персонаж получает 4 профессию он подлетает вверх.

Gaikotsu 16.07.2013 23:27

Re: Работа над Goddess of Destruction (part 5)
 
обычный пакет использования социалки

kloni1 17.07.2013 00:02

Re: Работа над Goddess of Destruction (part 5)
 
Цитата:

Сообщение от Gaikotsu (Сообщение 311288)
обычный пакет использования социалки

Спасибо нашел :)

Seneon 18.07.2013 10:36

Re: Работа над Goddess of Destruction (part 5)
 
Ребята может кто дать ссылку на папку system с devmode для LineageII Goddess of Destruction - Epeisodion
буду благодарен!

Hint 18.07.2013 10:50

Re: Работа над Goddess of Destruction (part 5)
 
Пакет ExUserInfo. Разбирал "на глаз", анализируя трафик, поэтому мог где-нибудь ошибиться. Если заполните пробелы, буду благодарен.

procedure TGameStream.ExUserInfoPacket(Packet: TGamePacket);
var
  I, Flags, Size: Integer;
  Clan: TClan;
 
  function ReadBlockSize(Fixed: Integer = 0): Integer;
  begin
    Result := Packet.ReadH;
    if (Fixed > 0) and (Result <> Fixed) then raise EBadPacket.Create('Invalid block size!');
  end;
 
begin
  with Packet do
    begin
      Player.ObjectId := ReadD;
      ReadH; // Size
      ReadH;
      ReadC;
      Flags := ReadD;
 
      if ((Flags shr 15) and 1) = 1 then
        begin
          ReadD;
        end;
 
      if ((Flags shr 14) and 1) = 1 then // 12, 14?
        begin
          ReadBlockSize;
 
          Player.Name := ReadS2;
          ReadC;
          Player.Race := ReadC;
          Player.Sex := ReadC;
          Player.BaseClassId := ReadD;
          Player.ClassId := ReadD;          
          Player.Level := ReadC;
        end;
 
      if ((Flags shr 13) and 1) = 1 then
        begin
          ReadBlockSize(14);
 
          Player.Str := ReadH;
          Player.Dex := ReadH;
          Player.Con := ReadH;
          Player.Int := ReadH;
          Player.Wit := ReadH;
          Player.Men := ReadH;
        end;
 
      if ((Flags shr 12) and 1) = 1 then // 12, 14?
        begin
          ReadBlockSize(14);
 
          Player.MaxHP := ReadD;
          Player.MaxMP := ReadD;
          Player.MaxCP := ReadD;
        end;
 
      if ((Flags shr 11) and 1) = 1 then
        begin
          ReadBlockSize(38);
 
          Player.HP := ReadD;
          Player.MP := ReadD;
          Player.CP := ReadD;
          Player.SP := ReadQ;
          Player.Exp := ReadQ;
          Player.ExpProgress := ReadF;
        end;
 
      if ((Flags shr 10) and 1) = 1 then
        begin
          ReadBlockSize(3);
 
          ReadC;
        end;
 
      if ((Flags shr 9) and 1) = 1 then // ?
        begin
          ReadBlockSize(15);
 
          Skip(13);
        end;
 
      if ((Flags shr 8) and 1) = 1 then
        begin
          ReadBlockSize(5);
 
          ReadC;
          Player.PrivateStoreType := ReadC;
          ReadC;
        end;
 
      if ((Flags shr 23) and 1) = 1 then
        begin
          ReadBlockSize(56);
 
          ReadH;
          Player.PAtk := ReadD;
          Player.PAtkSpd := ReadD;
          Player.PDef := ReadD;
          Player.EvasionRate := ReadD;
          Player.Accuracy := ReadD;
          Player.CriticalHit := ReadD;
          Player.MAtk := ReadD;
          Player.MAtkSpd := ReadD;
          Player.PAtkSpd := ReadD;
          Player.MAccuracy := ReadD;
          Player.MDef := ReadD;
          Player.MEvasionRate := ReadD;
          Player.MCriticalHit := ReadD;
        end;
 
      if ((Flags shr 22) and 1) = 1 then // 17 or 22
        begin
          ReadBlockSize(14);
 
          Player.Elements.Fire := ReadH;
          Player.Elements.Water := ReadH;
          Player.Elements.Wind := ReadH;
          Player.Elements.Earth := ReadH;
          Player.Elements.Holy := ReadH;
          Player.Elements.Dark := ReadH;
        end;
 
      if ((Flags shr 21) and 1) = 1 then
        begin
          ReadBlockSize(18);
 
          Player.Pos.X := ReadD;
          Player.Pos.Y := ReadD;
          Player.Pos.Z := ReadD;
          ReadD;
        end;
 
      if ((Flags shr 20) and 1) = 1 then // ?
        begin
          ReadBlockSize(18);
 
          for I := 1 to 4 do
            begin
              ReadH; // Run Speed
              ReadH; // Walk Speed
            end;
        end;
 
      if ((Flags shr 19) and 1) = 1 then
        begin
          ReadBlockSize(18);
 
          ReadF;
          ReadF;
        end;
 
      if ((Flags shr 18) and 1) = 1 then // ?
        begin
          ReadBlockSize(18);
 
          ReadF;
          ReadF;
        end;
 
      if ((Flags shr 17) and 1) = 1 then // 17 or 22
        begin
          ReadBlockSize(5);
 
          Player.Elements.AttackType := ReadC;
          Player.Elements.AttackPower := ReadH;
        end;
 
      if ((Flags shr 16) and 1) = 1 then
        begin
          ReadBlockSize;
 
          Player.Title := ReadS2;
          ReadH; // Subdivision
          Player.Clan.Id := ReadD;
          ReadD;
          Player.Clan.CrestId := ReadD;
          ReadD;
          ReadC;
          Player.Clan.AllyId :=ReadD;
          Player.Clan.AllyCrestId := ReadD;
          ReadC; // PartyRoom
        end;
 
      if ((Flags shr 31) and 1) = 1 then
        begin
          ReadBlockSize(22);
 
          Skip(12);
          Player.PvP := ReadD;
          Player.Recomendations := ReadH;
          ReadH;
        end;
 
      if ((Flags shr 30) and 1) = 1 then // ?
        begin
          Size := ReadBlockSize;
 
          Skip(Size - 2);
        end;
 
      if ((Flags shr 29) and 1) = 1 then // ?
        begin
          Size := ReadBlockSize;
 
          Skip(Size - 2);
        end;
 
      if ((Flags shr 28) and 1) = 1 then
        begin
          ReadBlockSize(4);
 
          ReadC;
          Player.IsStanding := ReadBoolC;
        end;
 
      if ((Flags shr 27) and 1) = 1 then // ?
        begin
          ReadBlockSize(10);
 
          Player.NameColor := ReadD;
          Player.TitleColor := ReadD;
        end;
 
      if ((Flags shr 26) and 1) = 1 then // ?
        begin
          Size := ReadBlockSize;
 
          Skip(Size - 2);
        end;
 
      if ((Flags shr 25) and 1) = 1 then // ?
        begin
          Size := ReadBlockSize;
 
          Skip(Size - 2);
        end;
 
      EndOfPacket;
    end;       
 
  ...
end;
Code: Pascal

DXVSI 18.07.2013 12:31

Re: Работа над Goddess of Destruction (part 5)
 
Кто может поделится рабочим shuttle_data ?

alexteam 18.07.2013 13:06

Re: Работа над Goddess of Destruction (part 5)
 
remove this post.

Hint 18.07.2013 13:49

Re: Работа над Goddess of Destruction (part 5)
 
Цитата:

Сообщение от alexteam (Сообщение 311453)
стало не так увлекательно. правда ?

Сути не меняет. Только номера от 0 и выше, а не задом наперёд.

Добавлено через 3 минуты
ExNPCInfo пока так:
procedure TGameStream.ExNPCInfoPacket(Packet: TGamePacket);
var
  I, Count, Flags: Integer;
  NPC: TNPC;
  Clan: TClan;
begin
  with Packet do
    begin
      NPC.ObjectId := ReadD;
      NPCs.Get(NPC.ObjectId, NPC);
 
      ReadC; // Packet Type (0, 1, 2)
      ReadH; // $25
      ReadC; // $ED or $60
      Flags := ReadD;
      ReadC;
      NPC.IsAttackable := ReadBoolC;
      ReadH;
      NPC.Name := ReadS;
      NPC.Title := ReadS;
      ReadH; // Data Size
 
      if ((Flags shr 27) and 1) = 1 then
        begin
          NPC.ClassId := ReadD - 1000000;
          NPC.Pos.X := ReadD;
          NPC.Pos.Y := ReadD;
          NPC.Pos.Z := ReadD;
          NPC.Heading := ReadD;
          NPC.MAtkSpd := ReadD;
          NPC.PAtkSpd := ReadD;
          ReadH;
          ReadH;
          ReadH;
          ReadH;
        end;
 
      if ((Flags shr 6) and 1) = 1 then
        begin
          ReadD;
          ReadD;
          ReadD;
        end;
 
      if ((Flags shr 27) and 1) = 1 then
        begin
          NPC.VisibleName := ReadBoolC;
          NPC.IsRunning := ReadBoolC;
          NPC.IsInCombat := ReadBoolC;
          NPC.IsAlikeDead := ReadBoolC;
          NPC.Invisible := ReadBoolC;
          Skip(6);
          NPC.CurHP := ReadD;
          NPC.MaxHP := ReadD;
          ReadC;
 
          Count := ReadH;
          for I := 1 to Count do ReadH;
        end;
    end;
Code: Pascal

alexteam 18.07.2013 14:07

Re: Работа над Goddess of Destruction (part 5)
 
Цитата:

Сути не меняет
ну если то откуда можно взять длину битовой маски и то как клиент ее чекает сути не меняет. то считайте что вы ничего не видели.

п.с.
Цитата:

ReadH; // $25
ReadC; // $ED or $60
Flags := ReadD;
по тем же причинам. заведомо неправильно.


Текущее время: 03:37. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot