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

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

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
Ответ
 
Опции темы Опции просмотра
Старый 05.05.2011, 06:47   #1
Новичок
 
Регистрация: 05.05.2011
Сообщений: 5
Сказал Спасибо: 4
Имеет 0 спасибок в 0 сообщенях
Despair пока неопределено
Восклицание Таймер, пакеты с задержкой

Здраствуйте кодеры)
Сразу скажу - я очередной нуб в етом деле, желающий добиться от вас помощи)
Что требуеться:

Отправлять разные пакеты (разное количество, например 10 разных пакетов) с возможностью установки разной задержки между каждым в цыкле)

Чесно скажу, пытался найти решение моей проблемы, находил похожие темки, но исправить в одиночку не в состоянии)
Даже с таймером не могу разобраться и понять как он работает)

Думал надо описать процедуру, суть которой - пауза выполнения скрипта на n миллисекунд, и юзать ету процедуру между отправками пакетов, но нет)

Надеюсь увидеть здесь код програмки) работающей по следующему принцыпу:

buf:=('пакет номер 1');
Senttoserverex('имя перса');
ЗАДЕРЖКА 1 ('миллисекунды');

buf:=('пакет номер 2');
Senttoserverex('имя перса');
ЗАДЕРЖКА 2 ('миллисекунды');

buf:=('пакет номер х');
Senttoserverex('имя перса');
ЗАДЕРЖКА х ('миллисекунды');

И все ето в цыкле при запуске скрипта)

Заранее спасибо)
Despair вне форума   Ответить с цитированием
Старый 05.05.2011, 18:27   #2
Рыцарь
 
Аватар для NLObP
 
Регистрация: 25.02.2008
Адрес: г.Волгоград
Сообщений: 2,009
Сказал Спасибо: 1,285
Имеет 1,458 спасибок в 793 сообщенях
NLObP пока неопределено
По умолчанию

Цитата:
Сообщение от Despair Посмотреть сообщение
Senttoserverex('имя перса');
Сделай примерно так
delphi Код:
const   Name='NLObP'; //Вписать сюда имя чара procedure Init; //Вызывается при включении скрипта begin   UseForConnectName:=Name; end; //...................................... //послать сообщение в чат //use: SendMessage(msg); procedure SendMessage(msg:string)//отправка системных сообщений клиенту begin   buf:=#$4A;     //4A=CreatureSay:d(ObjectID)d(TextType)s(CharName)s(Text)   WriteD(0);   WriteD(10);   WriteS('');   WriteS(msg);   SendToClient end;

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

Рандомную задержку там сделай так
delphi Код:
//рандомное время задержки между улучшениями   timer.interval:=1000+round(random()*1000); //время задержки  
__________________
| Для самых ленивый | Телепаты в отпуске |Мы работаем над этим |
Не умеешь - учись, не хочешь учиться - плати © Суровый Закон Жизни



Последний раз редактировалось NLObP, 05.05.2011 в 18:42.
NLObP вне форума   Ответить с цитированием
За это сообщение NLObP нажился спасибкой от:
Старый 05.05.2011, 19:57   #3
Новичок
 
Регистрация: 05.05.2011
Сообщений: 5
Сказал Спасибо: 4
Имеет 0 спасибок в 0 сообщенях
Despair пока неопределено
По умолчанию

Спасибо) буду разбираццо)
Despair вне форума   Ответить с цитированием
Старый 05.05.2011, 20:02   #4
Местный
 
Регистрация: 11.06.2010
Сообщений: 644
Сказал Спасибо: 119
Имеет 85 спасибок в 77 сообщенях
dyh9l пока неопределено
По умолчанию

NLObP, какая честь
Но стоит ли детям учится по моим скриптам? ведь это быдлокод чистой воды
p.s: мне так говорят
__________________

Последний раз редактировалось dyh9l, 05.05.2011 в 20:04.
dyh9l вне форума   Ответить с цитированием
За это сообщение dyh9l нажился спасибкой от:
Старый 05.05.2011, 21:11   #5
Новичок
 
Регистрация: 05.05.2011
Сообщений: 5
Сказал Спасибо: 4
Имеет 0 спасибок в 0 сообщенях
Despair пока неопределено
По умолчанию

dyh9l, если не затруднит, распишы что делает каждая строчка)

delphi Код:
const     name = ''; var     timer:TTimer;     TimerStep:byte; procedure Init; begin     TimerStep:=1;     timer:=TTimer.Create(nil);     timer.OnTimer:=@OnTimer;     timer.enabled:=true;     timer.interval:=1000; //время задержки между отправкой пакетов. end; procedure Free; begin     timer.free; end; procedure OnTimer;     begin         case TimerStep of             1:                 begin                     timer.interval:=1000;                     buf:=Hstr('D0 0F 00 D3 04 00 00 91 01 00 00');                     SendToServerEx(name);                //   SendMsg('1');                     Inc(TimerStep);                 end;             2:                 begin                     buf:=Hstr('D0 0F 00 D3 04 00 00 92 01 00 00');                     SendToServerEx(name);                //   SendMsg('2');                     Inc(TimerStep);                                end;             3:                 begin                     buf:=Hstr('D0 00 00 00 00 00');                     SendToServerEx(name);                //   SendMsg('3');                     TimerStep:=1;                     timer.interval:=6*60000;   //60000 мс = 1 минута                          end;         end;     end; begin end.

Последний раз редактировалось NLObP, 05.05.2011 в 22:34. Причина: добавил теги [HIGHLIGHT]
Despair вне форума   Ответить с цитированием
Старый 05.05.2011, 21:18   #6
Местный
 
Регистрация: 11.06.2010
Сообщений: 644
Сказал Спасибо: 119
Имеет 85 спасибок в 77 сообщенях
dyh9l пока неопределено
По умолчанию

Цитата:
Сообщение от Despair Посмотреть сообщение
dyh9l, если не затруднит, распишы что делает каждая строчка)

const // константы
name = ''; //сама константа что где в скрипте написано name там будет ''
var
timer:TTimer; // Объясняю скрипту что timer это таймер)
TimerStep:byte; // Даю TimerStep числовое значение от 0 до 256 для шага таймеру
procedure Init; //Процедура при включении скрипта
begin
TimerStep:=1; //Стартовать таймеру с 1 действия
timer:=TTimer.Create(nil);
timer.OnTimer:=@OnTimer; //Процедура которую выполняет таймер
timer.enabled:=true; //Начальное положение таймера
timer.interval:=1000; //время задержки между отправкой пакетов.
end;

procedure Free; //Процедура при выключении скрипта
begin
timer.free; // Освобождаем таймер
end;

procedure OnTimer; //процедура которую вызывает таймер
begin
case TimerStep of //это что-то типо проверки, с какого действия начинать
1: //1 шаг
begin
timer.interval:=1000; //таймер интервад 1 сек
buf:=Hstr('D0 0F 00 D3 04 00 00 91 01 00 00'); //пакет
SendToServerEx(name); //на какое соединение отправить
// SendMsg('1'); //СендМсг функция которая пишет в лог пх всякую дрянь)
Inc(TimerStep); //Увеличиваем шаг, иначе говоря переходим на другое действие
end;
2: //2 шаг
begin
buf:=Hstr('D0 0F 00 D3 04 00 00 92 01 00 00');
SendToServerEx(name);
// SendMsg('2');
Inc(TimerStep);
end;
3: //3 шаг
begin
buf:=Hstr('D0 00 00 00 00 00');
SendToServerEx(name);
// SendMsg('3');
TimerStep:=1; //Переходим сново к шагу 1
timer.interval:=6*60000; //60000 мс = 1 минута
end;
end;
end;


begin

end.
вот
__________________
dyh9l вне форума   Ответить с цитированием
За это сообщение dyh9l нажился 2 спасибками от:
Старый 05.05.2011, 23:52   #7
Новичок
 
Регистрация: 05.05.2011
Сообщений: 5
Сказал Спасибо: 4
Имеет 0 спасибок в 0 сообщенях
Despair пока неопределено
По умолчанию

Спасибо ребятки огромное ^_^
Despair вне форума   Ответить с цитированием
Старый 19.06.2011, 20:57   #8
Местный
 
Аватар для Deffol
 
Регистрация: 17.02.2011
Сообщений: 118
Сказал Спасибо: 51
Имеет 2 спасибок в 2 сообщенях
Deffol пока неопределено
По умолчанию

подниму тему, так как эта тема про таймер, хочу спросить: как сделать 2 условия активации таймера?
Deffol вне форума   Ответить с цитированием
Старый 19.06.2011, 22:47   #9
Местный
 
Аватар для SeregaZ
 
Регистрация: 16.08.2009
Сообщений: 1,224
Сказал Спасибо: 4
Имеет 229 спасибок в 182 сообщенях
SeregaZ пока неопределено
По умолчанию

добавляй в те условия включение таймера и все.
timer.enabled:=true;

выключение соответственно
timer.enabled:=false;

ну и сброс счетчика еще, если у тебя был счетчик таймера.
__________________
хочу картинку в подпись!
SeregaZ вне форума   Ответить с цитированием
Ответ

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



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

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


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

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

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