Тема: Скрипт
Показать сообщение отдельно
Старый 09.06.2009, 19:14   #19
Местный
 
Аватар для pmen
 
Регистрация: 16.05.2009
Сообщений: 129
Сказал Спасибо: 66
Имеет 62 спасибок в 34 сообщенях
pmen пока неопределено
По умолчанию



Добавлено через 15 минут
Кто хорошо разбирается в Таймерах....Посмотрите не накуралесил ли я тут случайно

DELPHI Код:
//Скрипт на возрождение на месте после смерти. //Включите скрипт,когда вы умерли возьмите себя в таргет и нажмите в город. //Вы встанете наместе. //Автор Crazy$ //=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+= const //====================================== Name='Qwertyuio'; //**<-----Ник Персонажа-= //====================================== var                a:integer;x:integer;MyID:string;s:integer; y:integer;z:integer;TimerRes:TTimer; b:boolean;ValidatePosition:string;    procedure Init;    //Вызывается при включении скрпта begin      timerRes:=TTimer.Create(nil);    //Задаем настройки тамера      timerRes.OnTimer:=@OnTimer;      timerRes.enabled:=false;   //Таймер выключен      timerRes.interval:=10//интервал 10 милисекунд      s:=0; end; procedure OnTimer; begin buf:=#$48//Тут нужно будет возиться с координатами..Вычислять для каждого места где обычно происходит REVIVE inc(s); SendToServerEX(Name); end; // и Т.Д   procedure SendMsc(msc:string); begin buf:=#$4A; WriteD(0); WriteD(10); WriteS(''); WriteS(msc); SendToClient; end; procedure Free; //Вызывается при выключении скрипта begin   timerRes.free;         //Освобождаем память таймера end; begin //Нечитаем пустые пакеты if pck='' then exit; //Если Имя соединения Name //И Пакет Action от клиента то     if FromClient and (ConnectName=Name) and (pck[1]=#$04) then begin //Сохраняем мой Обжект Ид MyID:= pck[2]+pck[3]+pck[4]+pck[5];  a:=ReadD(2); x:=ReadD(6); //Читаем и запоминаем данные y:=ReadD(10); z:=ReadD(14);    SendMsc('Все данные сохранены!'); //Оповещаем о том что все прошло успешно b:=true; end; begin    if pck='' then exit; //Не читаем пустые пакеты //Если от Клиента пакет RequestRestartPoint //Запоминаем ValidatePosition до revive //Посылаем клиенту TeleportToLocation    if FromClient and (ConnectName=Name) and (pck=hstr('6D 00 00 00 00')) then   //Если от клиента идет пакет RequestRestartPoint то    begin       TimerRes.Enabled := True//Таймер включен     end;    if FromClient and (ConnectName=Name) and (pck[1]=#$48) then ValidatePosition:=pck;    if FromServer and (ConnectName=Name) and (pck[1]=#$28) and (MyID= pck[2]+pck[3]+pck[4]+pck[5]) then   begin     pck:=''; //Убиваем стандартный пакет     buf:=ValidatePosition; //посылаем ValidatePosition   SendToServerEX(Name);     buf:=#$28;     WriteD(A);        //Obj.ID     WriteD(X);       //Coord.X     WriteD(Y);       //Coord.Y     WriteD(Z);       //Coord.Z     SendtoclientEX(Name);     buf:=ValidatePosition;  //посылаем ValidatePosition   SendToServerEX(Name);   timerRes.enabled:=false;   // Таймер выклюяен exit;   end; end; end.

Добавлено через 43 минуты
Правильно ли написана сама процедура таймера?
__________________
Работа программиста и шамана имеет много общего - оба бормочут непонятные слова, совершают непонятные действия и не могут объяснить, как оно работает
__________________________________________________ _____________
Родители частенько вышибали из меня дурь, но я знал где достать еще
__________________________________________________ _____________
Я живу напротив кладбища. БУДЕШЬ выпендриваться - будешь жить напротив меня!!!

Если помог скажи СПАСИБО =)

Последний раз редактировалось pmen, 09.06.2009 в 19:18. Причина: Добавлено сообщение
pmen вне форума   Ответить с цитированием
За это сообщение pmen нажился спасибкой от: