У кого-нибуть есть скрипт\процедура готовая бега за лидером, использующая координаты приходящие от сервера\или идущие от клиента, а не как где-то описан вариант был - тыканье по персонажу...вобщем нужен бег без смены таргета
Свое написал, но чето он у меня периодически координаты прекращает верно обрабатывать, и голова не работает уже
__________________ На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."
А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?
Последний раз редактировалось Breadfan, 24.07.2010 в 20:39.
if FromServer and pck[1]=#$2F{MoveToLocation} and CharID=ReadD(2); then
begin
x:=ReadD(6);
y:=ReadD(10);
z:=ReadD(14);
buf:=#$0F; //MoveBackwardToLocation
WriteD(x+rand(-100,100));
WriteD(y+rand(-100,100));
WriteD(z);
WriteD(OriginX);
WriteD(OriginY);
WriteD(OriginZ);
WriteD(1);
SendToServerEx(name);
end;
Процедура rand генерирует рандомное число от -100 до 100, ее отдельно надо писать(если надо могу выложить ее, но я думаю вы с ней знакомы ). CharID - id чара за которым будем бежать, можно задать жестко в скрипте (этот ид не меняется даже после рестарта сервера), а можно и вытащить из некоторых пакетов.
Когда от сервера приходит информация о передвижении кого-то мы проверяем не наш ли это чар и если он оказывается нашим отсылаем пакет движения предварительно определив куда именно наш чар пошел. И встаем возле него в рандомной точке.
Не гарантирую работоспособности, это просто идея
__________________
В любом из нас спит гений. И с каждым днем все крепче.
Идеи мне вполне хватит Спасибо. Главное ночью особо не писать, иначе утром разгребать кучу бреда периодически приходится)
__________________ На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."
А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?
Последний раз редактировалось Breadfan, 24.07.2010 в 23:11.
Not enough actual parameters видать на коленке писал)) а у меня отношения с функциями - както не сложились...)
Да то сам уже посмотрю)
__________________ На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."
А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?
Последний раз редактировалось Breadfan, 25.07.2010 в 00:42.
У нас в стране на коленке атомную бомбу собрать можно
В делфи эта функция работает, а пх под рукой нету сейчас, так лениво смотреть смотреть документацию к фастскрипту
__________________
В любом из нас спит гений. И с каждым днем все крепче.
var
x,y,z:integer;
function Rnd(min,max:integer): integer;
var
i: extended;
begin
i:=Random;
result:=min+int((max-min)*i);
end;
procedure Init;
beginend;
procedure Free;
beginend;
beginRandomize;
x:=Rnd(-100,100);
y:=Rnd(50,500);
z:=Rnd(-1500,-1000);
sendmsg ('Число x: '+Inttostr(x));
sendmsg ('Число y: '+Inttostr(y));
sendmsg ('Число z: '+Inttostr(z));
end.
Добавлено через 38 минут
Вылилось в такое (скрипт сырой, в частности нет блока считывающего Origin-координаты): Оффтоп
delphi Код:
const
Name='Begun';
var
multt,multh,multl:string;
CharID,x,y,z,mult:integer;
OriginX,OriginY,OriginZ:integer;
function Rand(min,max:integer): integer;
var
i: extended;
begin
i:=Random;
result:=min+int((max-min)*i);
end;
procedure Init; //Вызывается при включении скриптаbegin
mult:=99; //стартовое значение разброса
CharID:=268535632; //OID ведущего - может выясняться в процессе работыend;
procedure Free; //Вызывается при выключении скриптаbeginend;
//основная часть скрипта//вызывается при приходе каждого пакета если скрипт включенbeginif FromServer and(connectname=name)and(pck[1]=#$2F)and(CharID=ReadD(2))thenbegin
x:=ReadD(6);
y:=ReadD(10);
z:=ReadD(14);
buf:=#$0F;
WriteMask('ddddddd',[(x+rand(-mult,mult)),(y+rand(-mult,mult)),z,OriginX,OriginY,OriginZ,1]);
SendToServerEx(name);
end;
if Fromserver and(connectname=name)and(pck[1]=#$4a)and(ReadD(2)=CharID)and(Copy(ReadS(24),1,5)='mult ')thenbegin
multh:=Copy(ReadS(24),6,1);
multl:=Copy(ReadS(24),7,1);
if(multh<'0')or(multh>'9')then multh:=''; //проверки на опечатку в чатеif(multl<'0')or(multl>'9')then multl:=''; // если введено не число - то сброс в 99
multt:=multh+multl;
if(multt='')then multt:='99';
mult:=Strtoint(multt);
end;
end.
При команде в чат от главного "mult XX" - меняет значение min\max (-+mult) на введенное (число от 0 до 99 - в скрипте так же есть проверка на верность введенного), для случаев бега по мостикам всяким.
PS: оптимизация - приветствуется
__________________ На фразы в аську типа "слух карочь 1)как точить 2)как раскачаться за 5 мин" - игнор. ИМХО идиотизм
Дай голодному рыбу - он будет один день сыт. Покажи ему, как удить рыбу - он пошлёт тебя и скажет, что у него есть более интересные занятия, чем забрасывать снасти в воду
David Kastrup @ de.comp.text.tex.
"Приобретенные навыки общения с маленькими детьми - сильно упрощают взаимопонимание на форумах..."
А вы знаете, что для качественной сварки - место шва нужно протереть спиртом?
Последний раз редактировалось Breadfan, 25.07.2010 в 15:32.
Причина: Добавлено сообщение
За это сообщение Breadfan нажился 3 спасибками от: