Вернуться   CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг
Войти через OpenID

Скриптинг Форум посвещенный созданию скриптов для L2PacketHack

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 15.07.2009, 16:43   #1
Новичок
 
Регистрация: 14.07.2009
Сообщений: 6
Сказал Спасибо: 11
Имеет 0 спасибок в 0 сообщенях
Алексей пока неопределено
По умолчанию Скриптинг для нуба

Ребятки, помогите с основными функциями, надо скрипт для отправки разных пакетов через разные промежутки времени, замкнутый в цыкл.
Как я понял,

buf:=hstr('пакет');
SendToServerEx(Name);

в скрипте отправляет "пакет" на сервер.
Помогите теперь разобраться, как выставить задержку в 10 секунд между, например

buf:=hstr('пакет№1');
SendToServerEx(Name);

и

buf:=hstr('пакет№2');
SendToServerEx(Name);

и замкнуть ето в цыкл.
Пытался, как в паскале, зделать цыкл через Label's ничего не вышло)
И с таймером не могу разобраться, phx не читает такую команду как delay()?
Заранее спасибо!
Алексей вне форума   Ответить с цитированием
Старый 15.07.2009, 16:46   #2
Рыцарь
 
Аватар для QaK
 
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
QaK пока неопределено
По умолчанию

Алексей,Я же тебе и ссылку дал и скрипт поправил, что ты еще хочешь? Если хочешь разобраться, что как работает - ищи книжку по паскалю/основам дельфы.
QaK вне форума   Ответить с цитированием
Старый 15.07.2009, 16:47   #3
Рыцарь
 
Аватар для alexteam
 
Регистрация: 07.03.2009
Сообщений: 9,139
Сказал Спасибо: 70
Имеет 2,820 спасибок в 1,735 сообщенях
alexteam на пути к лучшему
По умолчанию

таймер + счетчик + case
delay ( он же sleep) не рекомендуется к использованию.
__________________
L2Ext - project closed.
alexteam вне форума   Ответить с цитированием
Старый 15.07.2009, 16:57   #4
Новичок
 
Регистрация: 14.07.2009
Сообщений: 6
Сказал Спасибо: 11
Имеет 0 спасибок в 0 сообщенях
Алексей пока неопределено
По умолчанию

Если бы я делал ето в обычном паскале, ето бы имело следующий вид:

Label l1;
Begin
l1:
buf:=hstr('1');
SendToserverEx(name);
Delay(10000);
buf:=hstr('2');
SendToserverEx(name);
Delay(500);
buf:=hstr('2');
SendToserverEx(name);
Delay(500);buf:=hstr('2');
SendToserverEx(name);
Delay(500);
buf:=hstr('3');
SendToserverEx(name);
Delay(10000);
buf:=hstr('2');
SendToserverEx(name);
Delay(500);buf:=hstr('2');
SendToserverEx(name);
Delay(500);buf:=hstr('2');
SendToserverEx(name);
Delay(500);
Goto l1;
end.

Если не трудно, напишыте как ето должно выглядеть под phx

Книжку я обязательно прочитаю, но мне кажеться что для создания такого простого скрипта ето делать не обязательно, а смотря на

timer1:=TTimer.Create(nil);
timer1.OnTimer:=@OnTimer;
timer1.enabled:=true;
timer1.interval:=10000;
Просто ни.у. не понимаю

В твоем скрипте нельзя ставить разное время задержки между разными пакетами

Неужели вам легче посылать на разные темки форума, чем написать 2-3 команды?

Последний раз редактировалось Алексей, 15.07.2009 в 17:04.
Алексей вне форума   Ответить с цитированием
Старый 15.07.2009, 17:16   #5
Рыцарь
 
Аватар для QaK
 
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
QaK пока неопределено
По умолчанию

Цитата:
Сообщение от Алексей Посмотреть сообщение
Неужели вам легче посылать на разные темки форума, чем написать 2-3 команды?
неужели тебе легче донимать всех вопросом, чем просто почитать теорию и самому во всем разобраться. Мой стрипт поправить - будут разные задержки между отправкой.
QaK вне форума   Ответить с цитированием
Старый 15.07.2009, 17:21   #6
Новичок
 
Регистрация: 14.07.2009
Сообщений: 6
Сказал Спасибо: 11
Имеет 0 спасибок в 0 сообщенях
Алексей пока неопределено
По умолчанию

ну а как менять задержку?)
Приведи пример на своем же скрипте
Алексей вне форума   Ответить с цитированием
Старый 15.07.2009, 17:36   #7
Рыцарь
 
Аватар для QaK
 
Регистрация: 28.09.2007
Сообщений: 1,558
Сказал Спасибо: 71
Имеет 351 спасибок в 244 сообщенях
QaK пока неопределено
По умолчанию

Алексей,
delphi Код:
timer1.interval:={сюда пишешь величину паузы в милисекундах};
Погуглить не судьба?

AlbeNeC, остальное сам правь,если кто попросит меня еще что-то в этом скрипте исправить, не являющееся конструктивной доработкой по моему субъективному мнению - дам бан, 7 дней.

Добавлено через 2 минуты
delphi Код:
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);      timer1.interval:=1000;//1 секунда    end; 2:begin      buf:=hstr('{здесь пакет на второй таргет гмшопа}');      SendToServerEx(Name);      inc(phase);      timer1.interval:=1000;//1 секунда    end; 3:begin      buf:=hstr('{здесь пакет на выбор магазина}');      SendToServerEx(Name);      inc(phase);      timer1.interval:=1000;//1 секунда    end; 4:begin      buf:=hstr('{здесь пакет на покупку нужного кол-ва итемов}');      SendToServerEx(Name);      inc(phase);      timer1.interval:=1000;//1 секунда    end; 5:begin      buf:=hstr('{здесь пакет на таргет гк}');      SendToServerEx(Name);      inc(phase);      timer1.interval:=1000;//1 секунда    end; 6:begin      buf:=hstr('{здесь пакет на второй таргет гк}');      SendToServerEx(Name);      inc(phase);      timer1.interval:=1000;//1 секунда    end; 7:begin      buf:=hstr('{здесь пакет на выбор магазина}');      SendToServerEx(Name);      inc(phase);      timer1.interval:=1000;//1 секунда    end; 8:begin      buf:=hstr('{здесь пакет на обмен}');      SendToServerEx(Name);      phase:=1;//вернулись к началу      timer1.interval:=1000;//1 секунда    end; 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.

Последний раз редактировалось QaK, 15.07.2009 в 17:39. Причина: Добавлено сообщение
QaK вне форума   Ответить с цитированием
За это сообщение QaK нажился 4 спасибками от:
Старый 15.07.2009, 17:23   #8
Рыцарь
 
Аватар для mks
 
Регистрация: 21.09.2007
Сообщений: 376
Сказал Спасибо: 11
Имеет 218 спасибок в 106 сообщенях
mks пока неопределено
По умолчанию

Алексей, объясняю, в л2пх то что находится в основной части скрипта проходит 1 раз при проходе одного пакета от клиента либо сервера, поэтому нежелательно там использовать Delay, т.к. следующий пакет л2пх уже не пропустит пока не обработает твой код и не выдержет все твои Delay, и уж темболее, если ты зациклишь этот код, то вообще последующие пакеты от сервера и клиента никуда не дойдут, посему следует использовать таймер
mks вне форума   Ответить с цитированием
За это сообщение mks нажился спасибкой от:
Старый 15.07.2009, 17:27   #9
Новичок
 
Регистрация: 14.07.2009
Сообщений: 6
Сказал Спасибо: 11
Имеет 0 спасибок в 0 сообщенях
Алексей пока неопределено
По умолчанию

Delay блокирует прохождение всех пакетов от сервера и клиента о.О?
Алексей вне форума   Ответить с цитированием
Старый 15.07.2009, 17:25   #10
Новичок
 
Регистрация: 15.07.2009
Сообщений: 2
Сказал Спасибо: 1
Имеет 0 спасибок в 0 сообщенях
AlbeNeC пока неопределено
По умолчанию

Все било б очень просто, если б работали функции Sleep() и Delay(), но нет =(((
п.с. мну опередили, прочетал то что више, ети функции не помогли б =(
пока что рабочая програма имеет такой вид :
const

Name='name';


var

timer1: TTimer;

procedure Init;
begin



timer1:=TTimer.Create(nil);
timer1.OnTimer:=@OnTimer1;
timer1.enabled:=true;
timer1.interval:=10000;
end;

procedure OnTimer1(Sender: TObject);
begin

buf:=hstr('2F 89 05 00 00 00 00 00 00 00 ');
SendToServerEx(Name);


end;



procedure Free;
begin
timer1.Free;
end;

begin
end.
воть, но как ее переделать так чтоб шло:

1) пакет №1
2)ждем 10 сек
3)пакет № 2 три раза через 0,3 сек
4)обратно к пункту 1
попиталса вставить еще 1 таймер аналогично 1му, не работает, хз почему =((

Последний раз редактировалось AlbeNeC, 15.07.2009 в 17:27.
AlbeNeC вне форума   Ответить с цитированием
Ответ

  CoderX :: Forums > Lineage II > L2PacketHack > Скриптинг



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 03:04.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!