PDA

Просмотр полной версии : [Скрипт] Телепорт по имени НПЦ(2.7)


kviki1990
20.07.2012, 15:42
Пишите в чат "/где Имя_НПЦ" и вас телепортирует к НПЦ.
НПЦ обязательно должен быть в той же локе, что и вы, иначе вас кинет хрен знает куда. можно еще проверить на всяких сундуках, мобах, подлоках, ресурсах.
procedure Init; //Вызывается при включении скрипта
begin

end;

procedure Free; //Вызывается при выключении скрипта
begin

end;

//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if fromserver and (ReadC(1)=$59) then begin
buf:=hstr('9F 00 57 5C FF');
writed(readD(18));
writed(readD(22));
writed(readD(26));
buf := buf + hstr('3C 00');
sendtoserver;
buf:=hstr('68 00 57 07 FF');
SendToServer;
pck:='';
end;
end.


Так же можно телепортироваться по локе используя координаты.
Например: "port 123 456 789"
Разделять 1 пробелом. Всего 3 пробела в строке. Других пробелов быть не должно.
var
str:string;
position: integer;
koordx, koordy, koordz: string;

procedure Init; //Вызывается при включении скрипта
begin

end;

procedure Free; //Вызывается при выключении скрипта
begin

end;

//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin

if FromClient and (ReadC(1)=$B2) and (pos('port',ReadS(7))=1) then
begin
str := reads(7);
position := pos(' ', str);
str := copy(str, position + 1, length(str) - position);
koordx := copy(str, 1, pos(' ', str));
position := pos(' ', str);
str := copy(str, position + 1, length(str) - position);
koordy := copy(str, 1, pos(' ', str));
position := pos(' ', str);
koordz := copy(str, position + 1, length(str) - position);
buf:= hstr('9F 00 57 5C FF');
writeN(strtofloat(koordx));
writeN(strtofloat(koordy));
writeN(strtofloat(koordz));
buf := buf + hstr('3C 00');
sendtoserver;
buf:=hstr('68 00 57 07 FF');
SendToServer;
pck:='';
end;
end.

Сам писал. Ставим спасибки. :cool:

phell
20.07.2012, 18:35
Очень удобно, спс. И появляешся возле НПС, как при входе, "мягко" ). НО, можно ли сделать скрипт чтобы ТПшило ТОЛЬКО при команде с чата? А то иногда бывает нужно посмотреть просто где НПС а при нажатии показа на карте в описании квеста тоже ТПшит к НПС)). Это же относится и к мобам (по квесту например, нажимаешь посмотреть на карте а вас ТПшит к ним, но ТПшит только к первому которого на карте определило, и соответственно при каждом последующем нажатии ТПшит туда же, а не следующему. Из-за этого нельзя определить на карте следующего моба).

kviki1990
20.07.2012, 20:42
нужно отключать скрипт, так как когда ты пишеш "/где ..." клиент отсылает на сервер пакет с ID НПЦ и принимает пакет с его координатами. Если б я знал как по-другому достать ID НПЦ, то сделал бы так как ты просиш. Ну или сделаю вкл/выкл для скрипта через чат. Если нужно, конечно. Сделать?

beo18indus
21.07.2012, 15:51
полезный скрипт) работает. проверено на Awars.net

phell
23.07.2012, 19:50
нужно отключать скрипт, так как когда ты пишеш "/где ..." клиент отсылает на сервер пакет с ID НПЦ и принимает пакет с его координатами. Если б я знал как по-другому достать ID НПЦ, то сделал бы так как ты просиш. Ну или сделаю вкл/выкл для скрипта через чат. Если нужно, конечно. Сделать?

Извини отсутствовал, не, тогда уже и так можно конечно клацать.

c-lavr
25.07.2012, 09:23
сделай включение/отключение по команде и кинь ее в макросс, или привяжи к кнопке)
и мигалка еще где-то работает?) У кого будут проблемы с ТП пишем - подкину новые пакеты)

edwardmell
25.07.2012, 11:46
Блин, тупанул. Неправильно НПЦ назвал. ТПшит прекрасно. Спасибо.)

И еще вопрос, а можно ли так ТПшнуться, например, к Именным мобам?

c-lavr
25.07.2012, 15:16
да можно, к любому, кого на карте показывает) хоть к Рудре бегай)

Rustas
25.07.2012, 16:09
да можно, к любому, кого на карте показывает) хоть к Рудре бегай)

Ну не совсем ко всем, некоторых по старинке только на карте отмечает

altairalentus
25.07.2012, 17:04
Вот переделал под себя.
/где - работает как обычно
для телепорта к НПС надо написать в чат .тп и отправить, потом использовать команду /где ??????

var
capture: boolean;
tmp,s:string;
i: byte;
procedure Init;
begin

end;

procedure Free;
begin

end;

procedure teleport;
begin
if capture then
begin
buf:=hstr('C2 00 57 61 FF 05');
writed(readD(18));
writed(readD(22));
writed(readD(26));
writec(0);
sendtoserver;
pck:='';
capture:=false;
end;

end;

begin
if fromserver and (ReadC(1)=$59) and capture then teleport;
if FromClient and (pck[1]=#$b2) and (reads(7)='.тп') then capture:=true;




end.

kviki1990
25.07.2012, 18:06
И еще вопрос, а можно ли так ТПшнуться, например, к Именным мобам?
Еще и к ресурсам можно тпшиться
и мигалка еще где-то работает?)
на моем серве работает. а какая альтернатива есть? на будущее
сделай включение/отключение по команде и кинь ее в макросс, или привяжи к кнопке)
altairalentus уже сделал. спасибо.

c-lavr
26.07.2012, 16:18
на моем серве работает. а какая альтернатива есть? на будущее


пакет сесть. можно еще прыжок, можно координаты дописывать в 45 пакете)))

KAPRIZzNIK
26.07.2012, 23:50
Вот переделал под себя.
/где - работает как обычно
для телепорта к НПС надо написать в чат .тп и отправить, потом использовать команду /где ??????

var
capture: boolean;
tmp,s:string;
i: byte;
procedure Init;
begin

end;

procedure Free;
begin

end;

procedure teleport;
begin
if capture then
begin
buf:=hstr('C2 00 57 61 FF 05');
writed(readD(18));
writed(readD(22));
writed(readD(26));
writec(0);
sendtoserver;
pck:='';
capture:=false;
end;

end;

begin
if fromserver and (ReadC(1)=$59) and capture then teleport;
if FromClient and (pck[1]=#$b2) and (reads(7)='.тп') then capture:=true;




end.

Еще вчера и сегодня ночью все работало на ура, на ++w Aion... теперь же при команде /где ----- персонаж садится и встает 1 раз... и все.
В чем дело может быть?

kviki1990
27.07.2012, 00:16
может пофиксили? мигалку пробовал?
if fromserver and (ReadC(1)=$59) then begin
buf:=hstr('9F 00 57 5C FF');
writed(readD(18));
writed(readD(22));
writed(readD(26));
buf := buf + hstr('3C 00');
sendtoserver;
buf:=hstr('68 00 57 07 FF');
SendToServer;
pck:='';
end;

KAPRIZzNIK
27.07.2012, 01:55
Не знаю, может и пофиксили. Нет не пробовал, я в скриптах не разбираюсь... Я умею в этом только копироват ьи вставлять)

kviki1990
27.07.2012, 02:28
тот скрипт, что в самом верху. попробуй

KAPRIZzNIK
27.07.2012, 03:32
Первый скрипт работает, а вот через команду ".тп" который - не работает.

iulian
27.07.2012, 09:20
Еще вчера и сегодня ночью все работало на ура, на ++w Aion... теперь же при команде /где ----- персонаж садится и встает 1 раз... и все.
В чем дело может быть?


Не знаю вот сейчас зашел проверил все пашет на ура..

KAPRIZzNIK
28.07.2012, 02:33
Не знаю вот сейчас зашел проверил все пашет на ура..

Может быть ты на другом сервере проверял... ++w Aion x2 не работает скрипт с командой ".тп".../kidding Перс просто садится и встает один раз.