Давненько собирался забацать скрипт на сдачу квестов под 2.7/3.0.
Да такой, чтоб сразу с таймером, и его было легко редактировать под разные квесты.
И вот, что собственно получилось:
PHP код:
//Script by Usilok
var
MyPck:array[1..10] of string; //выделяем память под пакеты квеста (опционально 10 строк)
name:string; //имя соединения (аккаунта)
Timer:TTimer;
i,CountPck:integer; //счетчик пакетов и их количество
procedure Init;
begin
Timer:=TTimer.Create(nil);
Timer.OnTimer:=@OnTimer;
Timer.interval:=100; //интервал отправки пакетов
Timer.enabled:=false;
//тут указываем пакеты, которые будем отправлять
//(поочередно - сначала взятие квеста, потом сдача
//(если необходимо добавить пак на отмену - добавляем в самое начало))
//для примера взял квест "загадочая руда" для Асмо
MyPck[1]:=HStr('FF 01 57 BC FE A7 0A 00 00 '); //отмена квеста (1й пакет в посылку)
MyPck[2]:=HStr('9D 00 57 5A FF 4C 46 01 00 1A 00 01 00 0A 00 A7 0A 00 00 00 00 '); //пакеты
MyPck[3]:=HStr('9D 00 57 5A FF 4C 46 01 00 F1 03 01 00 47 09 A7 0A 00 00 00 00 '); //сдачи
MyPck[4]:=HStr('9D 00 57 5A FF 4C 46 01 00 12 00 01 00 05 00 A7 0A 00 00 00 00 '); //квеста Дулахе
//далее вставляем больше пакетов, если потребуется...
//вставка будет выглядеть примерно так:
//MyPck[5]:=HStr('... ');
//MyPck[6]:=HStr('... ');
//MyPck[7]:=HStr('... ');
// и тогда переменная CountPck будет, само собой, больше! Например равная 7
//CountPck:=7;
CountPck:=4; //количество пакетов всего!
end;
procedure Free;
begin
Timer.enabled:=false;
end;
procedure OnTimer(Sender: TObject);
begin
buf:=MyPck[i];
SendToServerEx(name);
inc(i);
if (i>CountPck) then
i:=1;
end;
begin
//включение/выключение скрипта (команда в чат .ы)
if FromClient and (pck[1]=#$B2) then
begin
if (ReadS(7)='.ы') then //тут можете поменять привязанную к скрипту команду ".ы" на любую другую...
begin
name:=ConnectName;
pck:='';
i:=1;
if(Timer.enabled) then
Timer.enabled:=false
else
Timer.enabled:=true;
end;
end;
end.
Тестилось на нью x75
Все описание собственно в комментариях к скрипту...
Вводите .ы - дюп пошел,
вводите еще раз .ы - дюп остановился!
Для нормального дюпа квестов нужно стоять возле НПС, которому этот квест сдается (вот такая-вот прихоть у корейцев появилась с 2.7 версии)
А вообще, дабы не возникало лишних вопросов - советую прочесть эту тему!
И еще, для 3.0 версиим.б. надо будет убрать точку из команды-активатора, т.е. вместо .ы поставить просто ы
Тестируйте - отписывайте ошибки/предложения по доработке!
________________ Ололо! Я из армии вернулсо!!!)) Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось Usilok77; 01.03.2012 в 04:28.
Re: Шаблон скрипта на множественную сдачу кв 2.7/3.0
Цитата:
Сообщение от daniilka899889
что то не получается вставить больше пакетов,выдает вечно какую то ошибку.а так все робит спасибо автору..)
Опиши, какая ошибка, и напиши, что получилось.
________________ Ололо! Я из армии вернулсо!!!)) Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось Usilok77; 01.03.2012 в 12:56.
Re: Шаблон скрипта на множественную сдачу кв 2.7/3.0
Ну если у тебя всего 4 пакета на отправку - то просто вставляешь свои пакеты...
а если их больше - (описал-ведь) нужно дописывать строчки, как в примере MyPck[5]:=HStr('сам пакет');
и поменять переменную CountPck (это количество пакетов, т.е. если у тебя 5 пакетов - то строка CountPck:=4; будет выглядеть так CountPck:=5;)
________________ Ололо! Я из армии вернулсо!!!)) Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось Usilok77; 01.03.2012 в 13:05.
Re: Шаблон скрипта на множественную сдачу кв 2.7/3.0
спасибо с этим разобрался.понял что нид нпц держать в таргете и быть рядом с ним))да и можно ликак то ускорить процесс чтобы быстрее апп шел,пробую на кв загадочная руда??!!если можно то как опиши,..
Re: Шаблон скрипта на множественную сдачу кв 2.7/3.0
Цитата:
Сообщение от daniilka899889
да и можно ликак то ускорить процесс чтобы быстрее апп шел
можно, но только если у тебя не стоит ограничения на принятые пакеты...
пробуй Timer.interval:=100; поменять на 50 например, или еще меньше...
если все будет норм дюпаться, и почта не будет выскакивать - отпишись плз в этой теме, какой оптимальный интервал!
________________ Ололо! Я из армии вернулсо!!!)) Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Re: Шаблон скрипта на множественную сдачу кв 2.7/3.0
Цитата:
Сообщение от trane_18
Задание провалено пишет, на прайме когда выполняю кв [Ссылки могут видеть только зарегистрированные пользователи. ]
Айди Дулахи нужно отловить заново...
у тебя проходит лишь пакет на отмену квеста, а на сдачу пакеты не правильные значит...
Добавлено через 2 минуты
Цитата:
Сообщение от daniilka899889
почта вылазиет уже на 90...(((((((((
увы...но значит более никак не ускорить процесс...
________________ Ололо! Я из армии вернулсо!!!)) Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось Usilok77; 01.03.2012 в 15:33.
Причина: Добавлено сообщение
Re: Шаблон скрипта на множественную сдачу кв 2.7/3.0
Спс все робит)и еще перед тем как говорить что не робит проверте взят ли у вас этот кв =)
Добавлено через 53 минуты
такс нашел кв который дает по 2к и отловил пакеты, все отлично работает)
вот скрипт
Код:
var
MyPck:array[1..10] of string;
name:string;
Timer:TTimer;
i,CountPck:integer;
procedure Init;
begin
Timer:=TTimer.Create(nil);
Timer.OnTimer:=@OnTimer;
Timer.interval:=100;
Timer.enabled:=false;
MyPck[1]:=HStr('FF 01 57 BC FE 1E 0B 00 00 ');
MyPck[2]:=HStr('9D 00 57 5A FF 00 03 00 00 F1 03 01 00 47 09 1E 0B 00 00 00 00 ');
MyPck[3]:=HStr('9D 00 57 5A FF 00 03 00 00 12 00 01 00 05 00 1E 0B 00 00 00 00 '); //сдачи юснеру
CountPck:=3;
end;
procedure Free;
begin
Timer.enabled:=false;
end;
procedure OnTimer(Sender: TObject);
begin
buf:=MyPck[i];
SendToServerEx(name);
inc(i);
if (i>CountPck) then
i:=1;
end;
begin
//включение/выключение скрипта (команда в чат .ы)
if FromClient and (pck[1]=#$B2) then
begin
if (ReadS(7)='.ы') then
begin
name:=ConnectName;
pck:='';
i:=1;
if(Timer.enabled) then
Timer.enabled:=false
else
Timer.enabled:=true;
end;
end;
end.
берем в таргет нпц "юснера" и включаем скрипт и уался 700к апа за 3 мин
вот сылка на базу [Ссылки могут видеть только зарегистрированные пользователи. ]
а и еще для ленивых вот пакет тп к юснеру (пандемониум)
9F 00 57 5C FF 62 F5 96 44 9F 29 BC 44 10 D6 55 43 3B 00
68 00 57 07 FF
на newaion х75 (новая сборка) робит на ура, на других серверах не тестил
а и еще народ если не будет работать попробуйте взять кв и снова попробовать, вот пакет на взятие квеста
9D 00 57 5A FF 00 00 00 00 EA 03 01 00 04 00 1E 0B 00 00 00 00
Последний раз редактировалось priest.nrts; 01.03.2012 в 18:09.
Причина: Добавлено сообщение