PDA

Просмотр полной версии : Нужен простенький скриптик


KreeDoZz
31.08.2009, 18:42
Здарова всем железным умам этого сайта.
нужен не большой слабенький скриптик для пх.
Скрипт должен выполнять отправку пакетов которых сам вписываешь и при окончании скрипта должен заного с начала отправлять пакеты , как бы цикл бесконечный по отправке.

Пример:
Старт
отправить пакет "код пакета"
задержка 1 сек
отправить пакет "код пакета"
задержка 1 сек
отправить пакет "код пакета"
вернуться в начало скрипта
конец.

Вот примерно как-то так ... ;)

Fer123
31.08.2009, 18:58
Делаеться с помощью таймера... Найди в поиске. Уже писали такой скрипт

TAMBIK
31.08.2009, 18:59
отправка пакетов (http://coderx.ru/search.php)

KreeDoZz
31.08.2009, 19:37
Большое спасибо, тему можно закрыть.

Добавлено через 5 минут
Только там как-то всё намудрено, я думал всё намного проще .... и скрипт тот не пашет =\

Добавлено через 28 минут
народ напишите пожалуйста ктонить простой скриптик, тот что показали в поиске, это на заточку, там до такой степени намудрено что непонятно как работает, мне просто скриптик надо по отсыланию пакетов через промежуток времени, грубо говоря 1 секунда и чтобы при окончании скрипт запускался заного.... воот.

Добавлено через 2 минуты
или скажите пожалуйста команду которая переносит выполнение в начало скрипта

TAMBIK
31.08.2009, 20:01
что то так
const
Name='nick';
var timer:TTimer;
phase:integer;
procedure Init;
begin
timer:=TTimer.Create(nil);
timer.interval:=100;
timer.OnTimer:=@fireTimer;
timer.enabled:=false;//изначально таймер выключен

phase:=1;//начальная фаза
end;
procedure Free;
begin
timer.Free;
end;
procedure fireTimer(Sender: TObject);
begin
case phase of
1:begin
buf:=hstr('{здесь пакет на таргет гмшопа}');
SendToServerEx(Name);
inc(phase);
end;
2:begin
buf:=hstr('{здесь пакет на второй таргет гмшопа}');
SendToServerEx(Name);
inc(phase);
end;
3:begin
buf:=hstr('{здесь пакет на выбор магазина}');
SendToServerEx(Name);
inc(phase);
end;
4:begin
buf:=hstr('{здесь пакет на покупку нужного кол-ва итемов}');
SendToServerEx(Name);
inc(phase);
end;
5:begin
buf:=hstr('{здесь пакет на таргет гк}');
SendToServerEx(Name);
inc(phase);
end;
6:begin
buf:=hstr('{здесь пакет на второй таргет гк}');
SendToServerEx(Name);
inc(phase);
end;
7:begin
buf:=hstr('{здесь пакет на выбор магазина}');
SendToServerEx(Name);
inc(phase);
end;
8:begin
buf:=hstr('{здесь пакет на обмен}');
SendToServerEx(Name);
phase:=1;//вернулись к началу
end;
end;
begin
if FromClient and (ConnectName=Name) and (pck = HStr('{здесь пакет на старт точки, например социальное действие}' )) then begin
timer.enabled:=true;
end;

if FromClient and (ConnectName=Name) and (pck = HStr('{здесь пакет на стоп точки, например социальное действие}' )) then begin
timer.enabled:=false;
end;

end.

Добавлено через 2 минуты
или так
const
Name='ххххх';

var
timer1 TTimer;
x integer;


procedure OnTimer1(Sender TObject);
begin

case x of
0 begin
timer1.interval = интервал_через_который_будет_отослан_первый_пакет;
end;

1 begin
buf=hstr('пакет №1');
SendToServerEx(Name);
timer1.interval = интервал_через_который_будет_отослан_второй_пакет;
end;

2 begin
buf=hstr('пакет №2');
SendToServerEx(Name);
timer1.interval = интервал_через_который_будет_отослан_третий_пакет;
end;

3 begin
buf=hstr('пакет №3');
SendToServerEx(Name);
end;

else
begin
timer1.enabled = false;
x = 0;
end;
end;
inc(x);
end;


Вызывается при включении скрипта

procedure Init;
begin
x = 0;
timer1=TTimer.Create(nil);выделяем памать и т.п.
timer1.OnTimer=@OnTimer1;привязываем процедуру к событию
timer1.enabled=true;начальное положение true-включенfalse-выключен
timer1.interval=1;интервал
end;

procedure Free;
begin
timer1.free;
end;

begin
end.

KreeDoZz
31.08.2009, 20:17
Первый скрипт ругаеться на end

TAMBIK
31.08.2009, 20:51
Первый скрипт ругаеться на end

ихм много

KreeDoZz
31.08.2009, 21:08
лучше скажи команду которая переводит в начало выполнения скрипта, как бы зацикливает....

alexteam
31.08.2009, 21:28
KreeDoZz, допустим: ProceduraSkidivayushayaS4et4ikV0iTemSamimZacikliva yushayaSkript;

TAMBIK, бакслеши (ремарки) и ":" во втором скрипте отсутствуют.. в жизни не запустит..

TAMBIK
31.08.2009, 23:09
KreeDoZz, допустим: ProceduraSkidivayushayaS4et4ikV0iTemSamimZacikliva yushayaSkript;

TAMBIK, бакслеши (ремарки) и ":" во втором скрипте отсутствуют.. в жизни не запустит..

это было найдено мной на сайте
я просто как пример показал

Добавлено через 35 минут
вот так наверно
ЖМЕМ СПАСИБО
и ДОБАВЛЯЕМ ОТЗЫВ
// запуск соцдействие ДА
//остонов соцдействие НЕТ
const
Name='nick'; // пишем имя чара
var
Timer01: TTimer;
phase:integer;
//-----------------------------------------
procedure Init;
begin
Timer01:=TTimer.Create(nil);
Timer01.OnTimer:=@OnTimer01;
Timer01.enabled:=false;
Timer01.interval:=1000; //<<== время между отправкой
phase:=1;//начальная фаза
end;
procedure Free;
begin
Timer01.Free;
end;
//-----------------------------------------
procedure SendMsg2(msg:string);
begin
buf:=#$4A;
WriteD(0);
WriteD(10);
WriteS('');
WriteS(msg);
SendToClientEx(Name);
end;
//------------------------------------------
procedure fireTimer(Sender: TObject);
begin
case phase of
1:begin
buf:=hstr(' пакет ');// вместо : пакет -->>пишем свой пакет на отправку
SendToServerEx(Name);
inc(phase);
SendMsg2( ' 1 пакет ' ); // сообщение об отправки
end;
2:begin
buf:=hstr(' пакет');
SendToServerEx(Name);
inc(phase);
SendMsg2( ' 2 пакет ' ); // сообщение об отправки
end;
3:begin
buf:=hstr(' пакет ');
SendToServerEx(Name);
inc(phase);
SendMsg2( ' 3 пакет ' ); // сообщение об отправки
end;
4:begin
buf:=hstr(' пакет ');
SendToServerEx(Name);
phase:=1;//вернулись к началу
SendMsg2( ' 4 пакет ' ); // сообщение об отправки
end;
end;
end;
//-------------------------------------------
begin
if FromClient and (pck[1]=#$34) then
case ReadD(2) of
6:begin
Timer01.enabled:=true;
SendMsg2( ' П О Е Х А Л И ! ! !' );
pck:='';
exit;
end;
5:begin
Timer01.enabled:=false;
phase:=1;//начальная фаза
SendMsg2( ' С Т О П ! ! !' );
pck:='';
exit;
end;
end;
end.

NLObP
31.08.2009, 23:41
Первый скрипт ругаеться на end

Мне кажется, если вы не можете найти из-за чего ошибка в скрипте и исправить её, то не стоит даже браться за скрипты.