PDA

Просмотр полной версии : Скрипт по обнаружению хайда L2


atlas28
14.06.2012, 18:33
В общем, не знаю, как это назвать, но суть вот в чем. Никогда на деле не видел, но знаю, что существуют радары, при помощи которых можно видеть ножа в хайде, но т. к. я их никогда не юзал, и искать не собираюсь, решил для начала проверить, а действительно ли это возможно. Загрузил 2 окна, ножом ушел в хайд, и обнаружил, что судя по пакетам, клиенту передаются все данные о персонаже в хайде: позиция, действия и т. п. Соответственно можно написать скрипт, который будет просто немного изменять пакеты, посылаемые клиенту, чтобы он отображал ножа как будто он не в хайде. Но так как я в этом деле полный нуб, и скрипты писать не умею вовсе, хочу обратиться за помощью: мб уже где-то есть готовый скрипт? Гугл не помог. Ну или подкиньте какие-нибудь идеи.

supernewbie
14.06.2012, 18:50
atlas28, очевидно же - если персонаж юзает хайд, а потом для него приходит DeleteObject - убиваешь DeleteObject

atlas28
14.06.2012, 19:26
Если я сделаю скрипт, блокирующий DeleteObject, то получается объекты никакие вообще исчезать не будут) А надо как-то сделать так, чтобы блокировался этот пакет только после юза хайда... И желательно, чтобы персонаж после этого выглядел как-нибудь по-особому, ну например как под шд.

alexteam
14.06.2012, 19:32
supernewbie, разве deleteobject ?
случаем не aeStealth из AbnormalEffects ?

atlas28
14.06.2012, 20:07
supernewbie, разве deleteobject ?
случаем не aeStealth из AbnormalEffects ?

Ну на птс сборке HF после юза хайда (от лица другого персонажа) я вижу 3 пакета: сначала идет пакет о том, какой скил юзается, потом о том, какой скилл заюзался, а потом уже идет DeleteObject, где указывается ID удаляемого объекта.

mira
15.06.2012, 01:24
supernewbie, разве deleteobject ?
случаем не aeStealth из AbnormalEffects ?

и это тоже. персонаж становитса полупрозрачным

затем делете обжект

Добавлено через 42 секунды
а вообще не хотелось бы светить эту тему)

atlas28
15.06.2012, 01:45
Ну в общем простенький скрипт, который не пропускает пакет DeleteObject то я написал, и все работает, как надо, но как сделать так, чтобы он не пропускал только тот DeleteObject, который идет после хайда? Ведь насколько я понял данный пакет не только для этого используется.

Грубо говоря хочу написать, но не знаю как, т. к. никогда не писал скрипты для l2phx. Смысл такой: если от сервера приходит пакет с типом 54 (MagicSkillLaunched) и SkillID там 922 (SkillID: Unknown Skill ID:922(039A)), то не пропускать следующий после этого пакет DeleteObject (тип 08), но только 1 раз.

Не пропускание DeleteObject:
begin
if FromServer and (pck[1]=#$08) then pck:=''
end.

Далее попытался заставить работать этот скрипт только после получения пакета типа 54, но ни вариант:
begin
if FromServer and (pck[1]=#$54) and (pck[6]=#$9A) and (pck[7]=#$03) and (pck[8]=#$00) and (pck[9]=#$00) then
begin
if FromServer and (pck[1]=#$08) then pck:=''
end;
end.

ни:

begin
if FromServer and (pck[1]=#$54) then
begin
if FromServer and (pck[1]=#$08) then pck:=''
end;
end.

работать не хотят. Что я не так пишу?))

Специально для проверки сделал:

begin
if FromServer and (pck[1]=#$54) and (pck[6]=#$9A) and (pck[7]=#$03) and (pck[8]=#$00) and (pck[9]=#$00) then

begin

buf:=#$4A;

WriteD(0);

WriteD(10);

WriteS('');

WriteS('Hello!!!');

SendToClient;

end;
end.

пашет, как надо, но если вместо "написать Hello!!!" ставлю условие, то нифига не пашет... В чем дело?

supernewbie
15.06.2012, 06:19
atlas28, учи механику пх епта

вкратце:
begin
if FromServer and (pck[1]=#$54) and (pck[6]=#$9A) and (pck[7]=#$03) and (pck[8]=#$00) and (pck[9]=#$00) then
begin
if FromServer and (pck[1]=#$08) then pck:=''
end;
end.

при такой проверке ты проверяешь один и тот же pck[1] сначала на #$54 а потом на #$08 - ну и ты сам понимаешь что надо делать в этой ситуации.