PDA

Просмотр полной версии : Подмена пакета


pmen
03.06.2009, 23:33
begin
if FromClient and (pck[1]=#$04)and (not b) then
begin
a:=ReadD(2); x:=ReadD(6);
y:=ReadD(10); z:=ReadD(14);
b:=true;
end;
begin
if fromServer and (pck[1]=#$28) then
pck='28 (как вставить сюда a x y z) ';

Добавлено через 10 минут
пожалуйста подскажите =(

NLObP
03.06.2009, 23:34
Ты имеешь ввиду этот пакет?
28=TeleportToLocation:d(targetId)d(X)d(Y)d(Z)

Вот так

buf:=#$28;
WriteD(a);
WriteD(X);
WriteD(Y);
WriteD(Z);
Sendtoclient

pmen
03.06.2009, 23:48
Так правельно?
begin
if FromClient and (pck[1]=#$04)and (not b) then
begin
a:=ReadD(2); x:=ReadD(6);
y:=ReadD(10); z:=ReadD(14);
b:=true;
end;
begin
if fromServer and (pck[1]=#$28) then
pck='28+Writed(a)+Writed(x)+Writed(y)+Writed(z)';

Добавлено через 8 минут
я имею вввиду замену пакета который шлет сервер на мой


f fromServer and (pck[1]=#$28) then
pck='28+Writed(a)+Writed(x)+Writed(y)+Writed(z)';

NLObP
03.06.2009, 23:52
if fromServer and (pck[1]=#$28) then
pck='28+Writed(a)+Writed(x)+Writed(y)+Writed(z)';

вот так пиши

if fromServer and (pck[1]=#$28) then
begin
pck:''; //убиваем пакет от сервера и делаем свой
buf:=#$28;
WriteD(a);
WriteD(X);
WriteD(Y);
WriteD(Z);
Sendtoclient
end;

pmen
03.06.2009, 23:58
Как только скрипт запоминает мои координаты то он без перебоя тпшит(

La2ReaL
04.06.2009, 00:07
Сухарик учись играть честно)

pmen
04.06.2009, 01:48
Кто-то помогите(
if FromClient and (pck[1]=#$04) and (not b) then begin
a:=ReadD(2); x:=ReadD(6);
y:=ReadD(10); z:=ReadD(14); //скрипт запомнил мой OBj.ID и мои координаты
А вот дальше

begin
if fromServer and (pck[1]=#$28) then
pck:=hstr('28 +Writed(a)+Writed(x)+Writed(y)+Writed(z)'); //как вставить ранне прочитанное именно в этом ввиде не то что предлогал NlobP
buf:=ValidatePosition;
SendToServer;
end

Добавлено через 8 минут
Я нехочу его убивать.Мне нужно чтобы место стандартного посылался мой.
вот так пиши

if fromServer and (pck[1]=#$28) then
begin
pck:''; //убиваем пакет от сервера и делаем свой
buf:=#$28;
WriteD(a);
WriteD(X);
WriteD(Y);
WriteD(Z);
Sendtoclient
end;

NLObP
04.06.2009, 02:41
Если старый пакет не убить, то будет два (плюс твой).
Я тебе показал, как заменить пакет. Зачем тебе именно в pck менять, если все функции типа WriteD работают с переменной buf. Отсылая buf с помощью Sendtoclient ты в итоге получаешь тот же самый измененный pck.
Если прям очень охота в pck менять, то пошарь на форуме, были сообщения как можно менять.

Fer123
04.06.2009, 10:00
Просто вместо Sendtoclient напиши pck:=buf;