L2PacketHackФорум программы L2PacketHack, всё что с ней связано находится тут.
Правила раздела!
Категорически запрещено:
* Просить пакеты/скрипты на шмот/адену/другие вещи;
* Просить (помочь) взломать/сломать сервак/аккаунт или раздеть/наказать кого-то на любом серваке;
* Просить научить работать с программой, если не понимаете элементарных вещей в отношениях клиент-сервер (так как, если вы их понимаете, то вопросов по основным возможностям программы быть недолжно);
* Все посты не удовлетворяющие этим запретам, а так же не относящиеся к теме будут удаляться при первой возможности.
* Запрещается создавать темы с просьбой выполнить какую-то работу за автора темы.
* Форум является средством общения и общего поиска решения. Вашу работу за Вас никто выполнять не будет.
* Данные запреты неподлежат обсуждению.
Вопрос по сабжу : если в через первый запущеный скрипт в списке прошол пакет pck, мы его изменили. Через другие запущеные скрипты он пройдет изменным ?
//СКРИПТ АВТОМАТИЧЕСКОЙ СДАЧИ МАНОРА//использование: скрипт запускается за несколько минут до объявления об олимпиаде//при получении системного сообщения об ее начале засекается системное время и вычисляется время//сдачи манора, также активируется таймер с интервалом ХХХ МС для контроля системного времени.//после этого пытаемся сдать свои всходы- вручную. при этом мы получим ошибку что-//манор система: выключена в данный момент. но при етом пакет на сдачу манора- скрипт запомнит в//память для дальнейшего использования. через заданное время скрипт отправит 10 раз запомненный//пакет с интервалом 0,3сек.//проверено что: если манор сдастся примерно на 4-й раз (4-й повтор пакета) то остальные 6 повторов//сервер принимает без ошибок, хотя в инвенторе отсутствуют нужные всходы- сервер на это не ругаетсяconst
Name='aIreX'; <<== Ник перса который здает
var
PaketManora: string; //Пакет на сдачу манора, который мы отправим серваку зараннее с помощью клиента// и запомним его для того чтобы вручную не формировать его кодом.//важно что оправлять его нужно после после объявления об олимпиаде.//так как в пакете манора используются ИД сессии, которые изменяются//каждый ровный час.
timer1: TTimer; //таймер контролирующий системное время
StartTime: TDateTime;
EndTime: TDateTime;
x:integer;
procedure Init; //Вызывается при включении скриптаbegin
timer1:=TTimer.Create(nil);
timer1.OnTimer:=@OnTimer; //
timer1.enabled:=false; // таймер по умолчанию выключен
timer1.interval:=150; // через каждые 0,4сек будем засекать контрольное время сдачи манора
x:=0;
end;
procedure Free; //Вызывается при выключении скриптаbegin
timer1.Free; //освобождаем занимаемую память таймеромend;
//вызывается при срабатывании таймераprocedure OnTimer(Sender: TObject);
begin//если наступило время сдавать манор и скрипт пока еще не отправил 30 попыток его сдать тоif(time >= EndTime)and(x<30)thenbegin//пишем сами себе в чат - что "ПОПЫТКА"
buf:=hstr('4A AB F6 A0 48 02 00 00 00 2D 00 3E 00 56 00 4F 00 52 00 4F 00 4E 00 37 00 00 00 3F 04 3E 04 3F 04 4B 04 42 04 3A 04 30 04 20 00 41 04 34 04 30 04 42 04 4C 04 00 00');
SendToClientEx('aIreX'); <<<=== Ник перса который здает отправка клиенту
// отправляем пакет на сдачу манора.
buf:=PaketManora;
SendToServerEx('aIreX'); <=== Отправка серверу
//счетчик попыток
x:=x+1;
end;
end;
begin//если перехвачен пакет на сдачу манора тоif FromClient and(pck[1]=#$D0)and(pck[2]=#$09)and(pck[3]=#$00)thenbegin//запоминаем его полностью
PaketManora:=pck;
end;
//если получен пакет об начале олимпиады тоif FromServer and(pck[1]=#$64)and(pck[2]=#$69)and(pck[3]=#$06)thenbegin//засекаем текущее время
StartTime:=time;
//вычисляем время сдачи манора (прибавляем нужное время которое нужно засеч после получения сообщения об илимпиаде)
EndTime:=StartTime + EncodeTime(0,5,49,0); // изменяем и корректируем ето число в формате (ЧЧ,ММ,СС,МС)//активируем таймер
timer1.enabled:=true;
//а ето- отправка сам себе сообщения о том что ВРЕМЯ ПОШЛО
buf:=hstr('4A AB F6 A0 48 02 00 00 00 2D 00 3E 00 56 00 4F 00 52 00 4F 00 4E 00 37 00 00 00 32 04 40 04 35 04 3C 04 4F 04 20 00 3F 04 3E 04 48 04 3B 04 3E 04 00 00');
SendToClientEx('aIreX'); <<<== Опять клиенту
end;
end.
Что не так написано в скрипте?У меня таких 2 скрипта исправленых под 2 персов,здающих разные плоды в разные города в 2 окна.
Но в итоге у меня происходит так что пакет с последней здавшейся поптыкой отправляется на 2 клиента и следовательно они здают одинаковые плоды ну и 1 клиент не здает(
Подскажите что исправить......Зарание балгодарен
Последний раз редактировалось QaK, 01.09.2008 в 10:40.
...
//пишем сами себе в чат - что "ПОПЫТКА"
...
SendToClientEx('aIreX'); <<<=== Ник перса который здает отправка клиенту
// отправляем пакет на сдачу манора.
buf:=PaketManora;
SendToServerEx('aIreX'); <=== Отправка серверу
...
//а ето- отправка сам себе сообщения о том что ВРЕМЯ ПОШЛО
...
SendToClientEx('aIreX'); <<<== Опять клиенту
Подскажите что исправить......Зарание балгодарен
Вместо SendToClientEx('aIreX'); <<<== Опять клиенту
везде пиши SendToClientEx(Name);
или SendToServerEx(Name);
Последний раз редактировалось NLObP, 25.04.2008 в 18:37.
Причина: ошибся
Ты неправильно понял.
в константе NAME задается соединение от которого получаем или которому шлём пакеты. Эта константа в разных скриптах должна быть разная, например:
Scrpt1
Name='first';
Scrpt2
Name='second';
а потом в теле обоих скриптов как
SendToServerEx(Name);
или
SendToClientEx(Name);
то есть универсальная, для Name, которое описывается в начале скрипта.
Последний раз редактировалось NLObP, 26.04.2008 в 01:20.
Здесь заменяем Name-На ник перса который здает правильно?
Name='first;
Scrpt2
Name='second;
Здесь все так и оставлять прально?
И галочки ставить тока в начале First или после тоже?а то у тебя написано ток с 1 галкой)
Две галочки конечно, торопился.
Скрипты у тебя будут отличаться только константой Name='имя_чара'
весь остальной текст скрипта один и тот же. Это так называемая централизация кода, чтобы не искать 100 мест, где надо переменную поменять.
Две галочки конечно, торопился.
Скрипты у тебя будут отличаться только константой Name='имя_чара'
весь остальной текст скрипта один и тот же. Это так называемая централизация кода, чтобы не искать 100 мест, где надо переменную поменять.
Ну вот получается так как я и писал.
const
Name='Ник Чара';
SendToServerEx('Ник чара');
SendToClientEx('Ник чара);
У меня созданы 2 скрипта на здачу в которых поменяны данные о никах,но в итоге получается тоже самое что и с 1 скриптом,Оба окна пытаются здать одно и тоже((((((
Либо я что то недопонимаю,либо хз.
подскажите или просто выкиньте кусок скрипта.