kpa9pt
01.02.2012, 19:45
Здравствуйте.
Пишу скрипт, на проверку бафов у сопартийцев.
Решил вывести их ники на экран в 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)
Пишу скрипт, на проверку бафов у сопартийцев.
Решил вывести их ники на экран в 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)