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

Пакеты Форум о форматах отдельных пакетов или групп пакетов

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 01.02.2012, 19:45   #1
Местный
 
Аватар для kpa9pt
 
Регистрация: 13.01.2010
Сообщений: 159
Сказал Спасибо: 18
Имеет 30 спасибок в 23 сообщенях
kpa9pt имеет немного плохого в прошлом
Лампочка PartySmallWindowAll ReadS

Здравствуйте.
Пишу скрипт, на проверку бафов у сопартийцев.
Решил вывести их ники на экран в lineage.

Пакет PartySmallWindowAll , там есть имена персонажей в пати. Первое имя считываю ReadS(18) а вот последующие координаты имён зависят от длинны имени.
Есть ли способ определить конец ReadS? чтоли или незнаю даже как это сказать.

Пытался сделать на подобии этого:

Код:
if (pck[j]+pck[j+1]+pck[j+2]=#$00#$00#$00)  then //три раза 00 потому что в английских именах всегда идёт на подобии XX 00 XX 00 а дальше 00 00
   begin
          k:=j+2+1+52;
   end;
//тут я догадался что l2phx определяет конец ReadS когда идёт в пакете 00 00
Но почемуто не работает правильно, и не могу определить причину...

Если же нету вариантов других то , могу прислать скрипт полностью , чтобы определить что там не так в определении следущего начала S строчки.

P.S.: Вот сам пакет...
Код:
4E B7 94 60 4B 00 00 00 00 05 00 00 00 B7 94 60 4B 4B 00 79 00 50 00 75 00 4D 00 61 00 4A 00 49 00 6F 00 00 00 50 00 00 00 50 00 00 00 CA 00 00 00 CA 00 00 00 42 00 00 00 42 00 00 00 05 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 93 2B 81 4C 50 00 6F 00 72 00 73 00 68 00 45 00 00 00 2E 0C 00 00 2E 0C 00 00 46 13 00 00 46 13 00 00 C9 05 00 00 C9 05 00 00 4B 00 00 00 75 00 00 00 01 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 7D 63 50 4B 50 00 6F 00 72 00 73 00 68 00 31 00 00 00 3C 0D 00 00 3C 0D 00 00 79 14 00 00 79 14 00 00 C1 06 00 00 C1 06 00 00 4F 00 00 00 37 00 00 00 01 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 41 B8 60 4C 4D 00 75 00 72 00 62 00 65 00 6C 00 6C 00 61 00 00 00 38 08 00 00 38 08 00 00 BD 17 00 00 BD 17 00 00 37 12 00 00 37 12 00 00 53 00 00 00 62 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2A 6B 71 4B 54 00 69 00 61 00 6C 00 69 00 65 00 00 00 B8 11 00 00 B8 11 00 00 83 16 00 00 83 16 00 00 A5 10 00 00 F1 14 00 00 55 00 00 00 69 00 00 00 01 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 24 73 A1 4C E3 80 0F 00 02 00 00 00 00 00 F6 11 00 00 F6 11 00 00 DE 08 00 00 DE 08 00 00 45 00 00 00 

Имена сопартийцев по порядку:
4B 00 79 00 50 00 75 00 4D 00 61 00 4A 00 49 00 6F 00 00 00

50 00 6F 00 72 00 73 00 68 00 45 00 00 00

50 00 6F 00 72 00 73 00 68 00 31 00 00 00 3C 0D 00 00 

и так далее (5 имён + пет там я не понял что надо придумать:D)
kpa9pt вне форума   Ответить с цитированием
Старый 01.02.2012, 20:08   #2
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

readmask ?
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
За это сообщение alexteam нажился 2 спасибками от:
Старый 01.02.2012, 21:06   #3
Местный
 
Аватар для kpa9pt
 
Регистрация: 13.01.2010
Сообщений: 159
Сказал Спасибо: 18
Имеет 30 спасибок в 23 сообщенях
kpa9pt имеет немного плохого в прошлом
По умолчанию

4E=PartySmallWindowAll:d(ObjectID)d(LootDistributi on)d(ListSize:Loop.01.0013)d(MemberObjId)s(MemberN ame)d(CurrentCP)d(MaxCP)d(CurrentHP)d(MaxHP)d(Curr entMP)d(MaxMP)d(Level)d(ClassID:Get.ClassID)d(0)d( Race)d(0)

Голову сломал но так и не понял как через ReadMask прочесть первый S

ReadMask('ddddsdddddddddd',5,X); вот на что хватило фантазии что не правильно?



Такс немного больше разобрался, за что отвечает параметр 5 в моём примере?

Последний раз редактировалось kpa9pt, 01.02.2012 в 21:31.
kpa9pt вне форума   Ответить с цитированием
Старый 01.02.2012, 21:33   #4
Местный
 
Аватар для supernewbie
 
Регистрация: 23.09.2009
Сообщений: 1,232
Сказал Спасибо: 119
Имеет 172 спасибок в 134 сообщенях
supernewbie пока неопределено
По умолчанию

4E=PartySmallWindowAll:d(ObjectID)d(LootDistributi on)d(ListSize:Loop.01.0022)d(MemberObjId)s(MemberN ame)d(CurrentCP)d(MaxCP)d(CurrentHP)d(MaxHP)d(Curr entMP)d(MaxMP)d(Level)d(ClassID:Get.ClassID)d(0)d( Race)d(0)d(0)d(PetOid=0 - skip next 7 values)d(PetNpcId)s(PetName)d(PetHp)d(PetMaxHP)d(P etMP)d(PetMaxMP)d(PetLevel)

delphi Код:
var   values:array [0..100] of variant;   i,j:integer; begin   j:=2;   ReadMask('ddd',j,values); //читаем статичные данные, в values[2] будет кол-во пати мемберов   for i:=0 to values[2]-1 do //цикл по всем пати мемберам   begin     ReadMask('dsddddddddddddd',j,values); //читаем инфу о пати мембере без пета     //тут вся куйня, распределение инфы по классам, etc     if values[14]<>0 then ReadMask('ddsddddd',j,values); //если пет есть (петИд не 0) - читаем инфу о пете   end; end.

PS делал особо не проверяя, так что проверь формат, индексы, синтаксис и тд тп
__________________
Начало.

Последний раз редактировалось supernewbie, 01.02.2012 в 21:41.
supernewbie вне форума   Ответить с цитированием
За это сообщение supernewbie нажился 2 спасибками от:
Старый 01.02.2012, 21:49   #5
Местный
 
Аватар для kpa9pt
 
Регистрация: 13.01.2010
Сообщений: 159
Сказал Спасибо: 18
Имеет 30 спасибок в 23 сообщенях
kpa9pt имеет немного плохого в прошлом
По умолчанию

Всем спасибо, разобрался почти доконца, дальше сам

думаю у меня не получалось потому что массив был другой, не знал о существовании array of Variant
kpa9pt вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Пакеты



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

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


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

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

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