var
x,y,z:single;
ps,tmp:string;
procedure GetPos;
var
i:integer;
begin
tmp:='';
i:=pos(' ',ps)+1;
while (ps[i]<>' ') do
begin
if (ps[i]<>'.') then
tmp:=tmp+ps[i]
else
tmp:=tmp+',';
inc(i);
end;
x:=StrToFloat(tmp);
tmp:='';
i:=i+1;
while (ps[i]<>' ') do
begin
if (ps[i]<>'.') then
tmp:=tmp+ps[i]
else
tmp:=tmp+',';
inc(i);
end;
y:=StrToFloat(tmp);
tmp:='';
i:=pos(']',ps)+1;
if (i<>Length(ps)) then
z:=z+StrToFloat(Copy(ps,i+1,Length(ps)-i));
z:=z+20;
end;
procedure SendTP;
begin
buf:=HStr('C2 00 65 3D FF 04');
WriteN(x);
WriteN(y);
WriteN(z);
buf := buf + hstr('00');
SendToServer;
buf:=hstr('F7 00 65 08 FF');
WriteN(x);
WriteN(y);
WriteN(z);
buf := buf + hstr('2B C0');
sendtoserver;
end;
procedure FixTP;
begin
z:=z+1;
buf:=hstr('F7 00 65 08 FF');
WriteN(x);
WriteN(y);
WriteN(z);
buf := buf + hstr('2B C0 00 00 00 00 00 00 00 00 00 00 00 00');
sendtoserver;
buf:=hstr('C2 00 65 3D FF 03');
sendtoserver;
end;
begin
if FromClient and (ReadC(1)=$F2) and (ReadC(7)=$5B) and (ReadC(9)=$70) and (ReadC(11)=$6F) and (ReadC(13)=$73) then
begin
ps:=ReadS(15);
GetPos;
SendTP;
FixTP;
pck:='';
end;
if fromserver and (ReadC(1)=$FB) then
begin
buf:=hstr('C2 00 65 3D FF 04');
writed(readD(18));
writed(readD(22));
writed(readD(26));
buf := buf + hstr('00');
sendtoserver;
buf:=hstr('F7 00 65 08 FF');
writed(readD(18));
writed(readD(22));
writed(readD(26));
buf := buf + hstr('2B C0 00 00 00 00 00 00 00 00 00 00 00 00');
sendtoserver;
buf:=hstr('C2 00 65 3D FF 03');
sendtoserver;
end;
if fromserver and (ReadC(1)=$45) then
begin
buf:=hstr('C2 00 65 3D FF 04');
writed(readD(12));
writed(readD(16));
writed(readD(20));
buf := buf + hstr('00');
sendtoserver;
buf:=hstr('F7 00 65 08 FF');
writed(readD(12));
writed(readD(16));
writed(readD(20));
buf := buf + hstr('2B C0 00 00 00 00 00 00 00 00 00 00 00 00');
sendtoserver;
buf:=hstr('C2 00 65 3D FF 03');
sendtoserver;
end;
end.
Отдельный скрипт для Gamezaion
Код:
var
x,y,z:single;
c:integer;
ps,tmp:string;
procedure GetPos;
var
i:integer;
begin
tmp:='';
i:=pos(' ',ps)+1;
while (ps[i]<>' ') do
begin
if (ps[i]<>'.') then
tmp:=tmp+ps[i]
else
tmp:=tmp+',';
inc(i);
end;
x:=StrToFloat(tmp);
tmp:='';
i:=i+1;
while (ps[i]<>' ') do
begin
if (ps[i]<>'.') then
tmp:=tmp+ps[i]
else
tmp:=tmp+',';
inc(i);
end;
y:=StrToFloat(tmp);
tmp:='';
i:=pos(']',ps)+1;
if (i<>Length(ps)) then
z:=z+StrToFloat(Copy(ps,i+1,Length(ps)-i));
z:=z+50;
end;
procedure SendTP;
begin
Z:=Z+20;
buf:=HStr('C2 00 65 3D FF 04');
WriteN(x);
WriteN(y);
WriteN(z);
buf := buf + hstr('00');
SendToServer;
buf:=hstr('F7 00 65 08 FF');
WriteN(x);
WriteN(y);
WriteN(z);
buf := buf + hstr('5E 84 00');
sendtoserver;
buf := hstr('C2 00 65 3D FF 02');
sendtoserver;
buf := hstr('C2 00 65 3D FF 03');
sendtoserver;
end;
begin
if FromClient and (ReadC(1)=$F2) and (ReadC(7)=$5B) and (ReadC(9)=$70) and (ReadC(11)=$6F) and (ReadC(13)=$73) then
begin
ps:=ReadS(15);
GetPos;
SendTP;
pck:='';
end;
if fromserver and (ReadC(1)=$FB) then
begin
buf:=hstr('C2 00 65 3D FF 04');
writed(readD(18));
writed(readD(22));
writed(readD(26));
buf := buf + hstr('00');
sendtoserver;
buf:=hstr('F7 00 65 08 FF');
writed(readD(18));
writed(readD(22));
writed(readD(26));
buf := buf + hstr('5E 84 00');
sendtoserver;
buf := hstr('C2 00 65 3D FF 02');
sendtoserver;
buf := hstr('C2 00 65 3D FF 03');
sendtoserver;
end;
if fromserver and (ReadC(1)=$45) then
begin
c:=ReadD(20);
c:=c+1;
buf:=hstr('C2 00 65 3D FF 04');
writed(readD(12));
writed(readD(16));
writed(readD(20));
buf := buf + hstr('00');
sendtoserver;
buf:=hstr('F7 00 65 08 FF');
writed(readD(12));
writed(readD(16));
writed(readD(20));
buf := buf + hstr('5E 84 00');
sendtoserver;
buf := hstr('C2 00 65 3D FF 02');
sendtoserver;
buf:=hstr('C2 00 65 3D FF 03');
sendtoserver;
end;
end.
Что может скрипт:
Тп по клику на карте.
Тп к любому НПС,мобу,заданию.
Тп к любому игроку вашей расы.
Скрипт только для 4.0 серверов. Все Тп работают в пределах локации. Добавлен фикс откидывания назад (Бывает срабатывает не с первого раза, просто повторяем действие) Если вас кидает ниже нужного места (в текстуры), повторяем отправление в чат места на карте(ентер-->кнопка вверх-->ентер) до тех пор пока не вылезем из текстур. Проверялось на atr*iaworld, notai*n, aion.s*
Как работает скрипт смотрим на видео:
[Ссылки могут видеть только зарегистрированные пользователи. ]
________________ Gods,give me strength Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось happytorn; 09.11.2013 в 00:28.
________________
Помог жми спасибо! Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось aion programmer; 05.11.2013 в 22:31.
А если при тп в указанную точку тпешит под текстуры всегда,можно это как то исправить?
Пропиши в строке z:=z+20;
вместо двадцати сотню например и попробуй
________________ Gods,give me strength Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
я так понял там где стоит геодата нормальная работать априори не может,ну а гавнафришки они и есть гавнафришки.
________________
Помог жми спасибо! Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
ТПшит обратно сервер геймзайон, как при вводе поиска, так и кликом по карте, одно и то же
Добавил в шапку отдельный скрипт для сервера Gamezaion с фиксом откидывания назад.
________________ Gods,give me strength Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
________________ Gods,give me strength Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).