Телепорт по локе с сохранением координат в список 2,7
Переписал скрипт под 2,7
Доступные команды:
.save - запись координат в буфер(при повторном использовании значение перезаписывается)
.tptosave - телепортация до точки сохраненной командой .save
.addtolist - добавления точки в буфере в список, после команды в общий чат надо написать имя точки
.showlist - показ списка сохраненных точек. Для выбора точки необходимо написать в общий чат порядковый номер точки и именно после команды.
При телепортации убедитесь что точка с той локации в которой вы находитесь.
.chengelist - команда смены листа с координатами, выбор происходит так само как и точку телепортации.
Также папке пакетхака необходимо создать файлы Dange.txt, dange_point.txt, teleport.txt
Код:
//by Alatair_Alentus
var
x,y,z,h,i,c,npc:integer;
np,name,filename,pak:string;
s,n:tstringlist;
action:byte;
procedure init ;
begin
n:=tstringlist.create;
n.CommaText := 'Dange.txt, dange_point.txt, teleport.txt';
s:=tstringlist.create;
filename:='teleport.txt';
s.loadfromfile(filename);
end;
procedure Free ;
begin
s.savetofile(filename);
end;
procedure save;
begin
writed(x);
writed(y);
writed(z);
writec(h);
pak:=buf;
pck:='';
end;
procedure tptosave;
begin
buf:=hstr('C2 00 57 61 FF 04')+pak;
sendtoserver;
pck:='';
end;
procedure addtolist;
begin
if pak='' then message('No point to save',8)
else
begin
message('Type name of point',8);
action:=1;
end;
pck:='';
end;
procedure showlist;
begin
for i:=0 to s.count-1 do
begin
np:=np+HStr('0D 0A')+inttostr(i+1)+' -- '+s.names[i];
end;
action:=2;
message(np,7);
np:='';
pck:='';
end;
procedure savename;
begin
s.add(reads(7)+'='+pak);
action:=0;
message('Point '+reads(7)+' saved',8);
pck:='';
end;
procedure tpfromlist(tpid:byte);
begin
name:=s.names[tpid-1];
buf:=hstr('C2 00 57 61 FF 04')+s.values[name];
sendtoserver;
action:=0;
pck:='';
end;
procedure message(msg:string;chatID:byte);
begin
buf:=HStr('16 00 54 D5 FF 00 00 E3 10 37 00 ');
writec(chatID,6);
WriteS('PHX');
WriteS(msg);
SendToClient;
end;
procedure chengelist;
begin
for i:=0 to n.count-1 do
begin
np:=np+HStr('0D 0A')+inttostr(i+1)+' -- '+n[i];
end;
action:=3;
message(np,7);
np:='';
pck:='';
end;
procedure list(lid:byte);
begin
pck:='';
s.savetofile(filename);
filename:=n[lid-1];
s.loadfromfile(filename);
end;
begin
if FromClient then
case pck[1] of
#$9f:
begin
x:=readD(6);
y:=readD(10);
z:=readD(14);
h:=readc(18);
end;
#$ce: npc:=readd(4);
#$c2: if readh(6)in [24597..26645] then pck:='';
#$b2:
begin
case reads(7) of
'.save': save;
'.addtolist': addtolist;
'.showlist': showlist;
'.tptosave': tptosave;
'.chengelist': chengelist;
else
begin
case action of
0: begin
buf:=pck;
sendtoserver;
end;
1: savename;
2: tpfromlist(strtoint(reads(7)));
3: list(strtoint(reads(7)));
end;
end;
end;
end;
end;
end.
Видео с демонстрацией [Ссылки могут видеть только зарегистрированные пользователи. ]
Понравилось? Тыкни спасибо!!!
Последний раз редактировалось altairalentus; 18.02.2012 в 13:15.
Re: Телепорт по локе с сохранением координат в список 2,7
нью - фикс метода.
________________ Ололо! Я из армии вернулсо!!!)) Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).