PDA

Просмотр полной версии : [Скрипт] Скрипт все скилы сина


Chiter959
01.01.2012, 09:44
активируется Усмирение IV сначала бафается патом идут удары
var
TargetID:integer;
StartSkill:word;

procedure DoTheSkill(SkillID:word; Level:byte);
begin
buf := HStr('CF 57 6C CC CC DD 00 FF FF FF FF 00 00 00 00 00 00');
WriteH(SkillID, 4);
WriteC(Level, 6);
WriteD(TargetID, 8);
SendToServer;
end;

begin
StartSkill := 2117;
if (FromClient) and (ReadC(1) = $CF) and (ReadH(4) = StartSkill) then
begin
TargetID := ReadD(8);

DoTheSkill(826, 7);
DoTheSkill(862, 5);
DoTheSkill(919, 1);
DoTheSkill(2123, 1);
DoTheSkill(813, 1);
DoTheSkill(913, 1);
DoTheSkill(836, 1);
DoTheSkill(1984, 1);
DoTheSkill(1988, 1);
DoTheSkill(927, 1);
DoTheSkill(850, 1);
DoTheSkill(839, 1);
DoTheSkill(577, 1);
DoTheSkill(572, 1);
DoTheSkill(920, 1);
DoTheSkill(2113, 1);
DoTheSkill(2126, 1);
DoTheSkill(1987, 1);
DoTheSkill(1990, 1);
DoTheSkill(2125, 1);
DoTheSkill(579, 9);
DoTheSkill(875, 5);
DoTheSkill(860, 5);
DoTheSkill(2110, 4);
DoTheSkill(2121, 1);
DoTheSkill(1989, 1);
DoTheSkill(2114, 1);
DoTheSkill(2115, 1);
DoTheSkill(853, 8);
DoTheSkill(939, 1);
DoTheSkill(578, 9);
DoTheSkill(580, 6);
DoTheSkill(932, 9);
DoTheSkill(868, 9);
DoTheSkill(1983, 1);
DoTheSkill(915, 1);
DoTheSkill(804, 1);
DoTheSkill(815, 4);
DoTheSkill(801, 1);
DoTheSkill(553, 9);
DoTheSkill(820, 9);
DoTheSkill(557, 7);
DoTheSkill(567, 1);
DoTheSkill(570, 7);
DoTheSkill(865, 1);
DoTheSkill(808, 9);
DoTheSkill(812, 1);
DoTheSkill(844, 7);
DoTheSkill(847, 7);
DoTheSkill(911, 1);
DoTheSkill(834, 9);
DoTheSkill(822, 1);
end;
end.

celsi
01.01.2012, 12:56
для 2.7 ? или тока 2,5 + )

Mr.Phoenix
01.01.2012, 14:50
на 2.7 стоит шифрация. И не все,а только те которые есть. Если играть на серверах где авто изученеи скилов\стигм,то все.

svetorobot
01.01.2012, 15:03
автор зделай скрипт рев зверя плиз)))

Добавлено через 2 минуты
типа на всю серию

shade-murder
10.01.2012, 17:00
как такими скриптами вообще пользоваться?) дайте ссылочку или объясните, тока так, чтобы совсем для нубов) (ибо в этом мало понимаю)
заранее спасибо

Swepkol
10.01.2012, 17:28
2.7 не работает .

aion programmer
12.01.2012, 12:20
как такими скриптами вообще пользоваться?) дайте ссылочку или объясните, тока так, чтобы совсем для нубов) (ибо в этом мало понимаю)
заранее спасибо

Описываю:
Запустил Л2ПХ---->автоматизация---->скрипты---->новый скрипт---->пиши любое имя,жми ок---->Все родное в скрипте стираешь,и вставляешь скрипт который скопировал на жуке---->жмешь в квадратике галочку,всё скрипт работает=))

happytorn
12.01.2012, 20:02
Переделал для 2.7.Активируется скилом Стремительный удар V
Проверялось на aion1.
var
TargetID:integer;
StartSkill:word;

procedure DoTheSkill(SkillID:word; Level:byte);
begin
buf := HStr('D0 00 57 6F FF CC CC DD 00 60 CA 00 00 00 00 79 8D 00 00');
WriteH(SkillID, 6);
WriteC(Level, 8);
WriteD(TargetID, 10);
SendToServer;
end;

begin
StartSkill := 578;
if (FromClient) and (ReadC(1) = $D0) and (ReadH(6) = StartSkill) then
begin
TargetID := ReadD(10);

DoTheSkill(826, 7);
DoTheSkill(862, 5);
DoTheSkill(919, 1);
DoTheSkill(2123, 1);
DoTheSkill(813, 1);
DoTheSkill(913, 1);
DoTheSkill(836, 1);
DoTheSkill(1984, 1);
DoTheSkill(1988, 1);
DoTheSkill(927, 1);
DoTheSkill(850, 1);
DoTheSkill(839, 1);
DoTheSkill(577, 1);
DoTheSkill(572, 1);
DoTheSkill(920, 1);
DoTheSkill(2113, 1);
DoTheSkill(2126, 1);
DoTheSkill(1987, 1);
DoTheSkill(1990, 1);
DoTheSkill(2125, 1);
DoTheSkill(579, 9);
DoTheSkill(875, 5);
DoTheSkill(860, 5);
DoTheSkill(2110, 4);
DoTheSkill(2121, 1);
DoTheSkill(1989, 1);
DoTheSkill(2114, 1);
DoTheSkill(2115, 1);
DoTheSkill(853, 8);
DoTheSkill(939, 1);
DoTheSkill(578, 9);
DoTheSkill(580, 6);
DoTheSkill(932, 9);
DoTheSkill(868, 9);
DoTheSkill(1983, 1);
DoTheSkill(915, 1);
DoTheSkill(804, 1);
DoTheSkill(815, 4);
DoTheSkill(801, 1);
DoTheSkill(553, 9);
DoTheSkill(820, 9);
DoTheSkill(557, 7);
DoTheSkill(567, 1);
DoTheSkill(570, 7);
DoTheSkill(865, 1);
DoTheSkill(808, 9);
DoTheSkill(812, 1);
DoTheSkill(844, 7);
DoTheSkill(847, 7);
DoTheSkill(911, 1);
DoTheSkill(834, 9);
DoTheSkill(822, 1);
end;
end.

Swepkol
14.01.2012, 17:32
Переделал для 2.7.Активируется скилом Стремительный удар V
Проверялось на aion1.

Какие именно скиллы пойдут в бой ?
Все которые у тебя открыты ( стигмы ) ?

happytorn
14.01.2012, 18:00
Какие именно скиллы пойдут в бой ?
Все которые у тебя открыты ( стигмы ) ?

Ну я всего лишь переделал под 2.7 пакеты и сменил скилл активации.Скилы не все.Например точно нет в списке Клык зверя.Будет время отредактирую и добавлю другие в список.

hobnob
18.01.2012, 14:38
Класс)) подросту -тыкну спасибку!)
Подскажите, пжлст, возможно как-то поставить небольшой промежуток между скилами в этом скрипте? а то уж сильно палевно, когда танк в каменке падает за 1 секунду)

mihai
20.01.2012, 18:33
у меня вопрос , а как самому сделать скрипт под скилами других классов ? расшифруйите плз "DoTheSkill(826, 7);" "826" это ид скила кажется да ? а "7" это что за число ?

happytorn
20.01.2012, 19:38
у меня вопрос , а как самому сделать скрипт под скилами других классов ? расшифруйите плз "DoTheSkill(826, 7);" "826" это ид скила кажется да ? а "7" это что за число ?

ID скила узнать можно в базе.Например [Ссылки могут видеть только зарегистрированные и активированные пользователи]
7 это уровень скила.
Отредактировал скрипт для 2.7 и добавил еще несколько скилов сину
var
TargetID:integer;
StartSkill:word;

procedure DoTheSkill(SkillID:word; Level:byte);
begin
buf := HStr('D0 00 57 6F FF CC CC DD 00 60 CA 00 00 00 00 79 8D 00 00');
WriteH(SkillID, 6);
WriteC(Level, 8);
WriteD(TargetID, 10);
SendToServer;
end;

begin
StartSkill := 578;
if (FromClient) and (ReadC(1) = $D0) and (ReadH(6) = StartSkill) then
begin
TargetID := ReadD(10);

DoTheSkill(862, 9);
DoTheSkill(913, 1);
DoTheSkill(949, 1);
DoTheSkill(831, 9);
DoTheSkill(862, 5);
DoTheSkill(919, 1);
DoTheSkill(2123, 1);
DoTheSkill(813, 1);
DoTheSkill(913, 1);
DoTheSkill(836, 1);
DoTheSkill(1984, 1);
DoTheSkill(1988, 1);
DoTheSkill(927, 1);
DoTheSkill(850, 1);
DoTheSkill(839, 1);
DoTheSkill(577, 1);
DoTheSkill(572, 1);
DoTheSkill(920, 1);
DoTheSkill(2113, 1);
DoTheSkill(2126, 1);
DoTheSkill(1987, 1);
DoTheSkill(1990, 1);
DoTheSkill(2125, 1);
DoTheSkill(579, 9);
DoTheSkill(875, 5);
DoTheSkill(860, 5);
DoTheSkill(2110, 4);
DoTheSkill(2121, 1);
DoTheSkill(1989, 1);
DoTheSkill(2280, 9);
DoTheSkill(2279, 9);
DoTheSkill(2114, 1);
DoTheSkill(2115, 1);
DoTheSkill(853, 8);
DoTheSkill(939, 1);
DoTheSkill(578, 9);
DoTheSkill(580, 6);
DoTheSkill(932, 9);
DoTheSkill(581, 3);
DoTheSkill(932, 9);
DoTheSkill(868, 9);
DoTheSkill(856, 4);
DoTheSkill(1983, 1);
DoTheSkill(915, 1);
DoTheSkill(804, 1);
DoTheSkill(815, 4);
DoTheSkill(801, 1);
DoTheSkill(553, 9);
DoTheSkill(820, 9);
DoTheSkill(557, 7);
DoTheSkill(567, 1);
DoTheSkill(570, 7);
DoTheSkill(865, 1);
DoTheSkill(808, 9);
DoTheSkill(812, 1);
DoTheSkill(845, 7);
DoTheSkill(847, 7);
DoTheSkill(848, 7);
DoTheSkill(849, 9);
DoTheSkill(911, 1);
DoTheSkill(834, 9);
DoTheSkill(822, 1);
DoTheSkill(826, 9);
end;
end.

mihai
21.01.2012, 15:21
а что изменить чтобы например скрипт не активировался скилом а эмоцией ? знаю что вот сдесь ставишь ид скила которого хочешь активировать "begin
StartSkill := 578;
if (FromClient) and (ReadC(1) = $D0) and (ReadH(6) = StartSkill) then
begin" а как эмоцие изменить ?

happytorn
21.01.2012, 21:32
а что изменить чтобы например скрипт не активировался скилом а эмоцией ? знаю что вот сдесь ставишь ид скила которого хочешь активировать "begin
StartSkill := 578;
if (FromClient) and (ReadC(1) = $D0) and (ReadH(6) = StartSkill) then
begin" а как эмоцие изменить ?

Это лишний геморрой.Благодаря скилу-активатору мы узнаем Id моба в таргете.Поставив улыбку в качестве активатора придется еще дописывать код для поиска ID моба.

Abensur
24.01.2012, 18:13
автор, вот я попробовал сам написать скрипт на цепочку рёв зверя, но возникла проблемка: у меня начинает атаковать не со стартового скила StartSkill := 875; а с тех скилов которые идут после стартового
DoTheSkill(860,5);
DoTheSkill(2110,1);
тоесть начинает бить с середины цепочки ударов, а стартовый скил идёт последним...
как это можно исправить?

happytorn
25.01.2012, 18:02
автор, вот я попробовал сам написать скрипт на цепочку рёв зверя, но возникла проблемка: у меня начинает атаковать не со стартового скила StartSkill := 875; а с тех скилов которые идут после стартового
DoTheSkill(860,5);
DoTheSkill(2110,1);
тоесть начинает бить с середины цепочки ударов, а стартовый скил идёт последним...
как это можно исправить?

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

Растаман
26.01.2012, 05:23
а под аион уа пойдет 3.0 у них поставили 8 гб обновлений вчера было

hobnob
26.01.2012, 06:31
кто-нибудь скажет как поставить паузы в этом скрипте?
уж слишком палево так бить...

happytorn
26.01.2012, 06:51
кто-нибудь скажет как поставить паузы в этом скрипте?
уж слишком палево так бить...
Например Delay(1000); //пауза 1сек.
а под аион уа пойдет 3.0 у них поставили 8 гб обновлений вчера было
У них пакеты 2.7 так что все работать должно.

Растаман
26.01.2012, 09:53
а можно на стража - что-то типа баф, удочка, блестательный удар, опракидовалка, подсечка, запредельный удар

efreues
26.01.2012, 13:32
А можэш выложить скрипт только на фул баф сина?

manyunya
26.01.2012, 13:43
Например Delay(1000); //пауза 1сек.


это не пауза между скилами буде, а повиснит весь клиент на 1 секу.

делей в данном случае приостанавливает прохождение пакетов через скрипт, соответственно все висит(не работает), то время, которое указано в команде

для задержки(паузы) в l2ph используются таймеры.

happytorn
26.01.2012, 14:06
это не пауза между скилами буде, а повиснит весь клиент на 1 секу.

делей в данном случае приостанавливает прохождение пакетов через скрипт, соответственно все висит(не работает), то время, которое указано в команде

для задержки(паузы) в l2ph используются таймеры.

То есть по твоему это не вариант?И со стороны другим будет видно что у тебя висит клиент 1 секунду?

freshinin-aion
26.01.2012, 16:30
happytorn, cпасибо, твой скрипт на юа работает. Только не все скилы юзаются. Не мог бы ты на стражика и чара сделать!? Если будет свободное время то сделай. И если впадлу делать объясни в скайпе kind-of-rap плзю

manyunya
26.01.2012, 22:34
То есть по твоему это не вариант?И со стороны другим будет видно что у тебя висит клиент 1 секунду?

не вариант

другим мот и не видно, но действие етой команды аналогчно отсутствию нета на это время.
и не правильно это)

haiivan
26.01.2012, 22:51
Как правильно поставить задержку между скилами ???

manyunya
26.01.2012, 23:17
Как правильно поставить задержку между скилами ???

использовать таймеры

подробная инфа на coderx.ru

happytorn
26.01.2012, 23:27
не вариант

другим мот и не видно, но действие етой команды аналогчно отсутствию нета на это время.
и не правильно это)

Ну как бы тут следует задаться парочкой вопросов.Способ с delay() в данном виде скрипта будет давать нам необходимую задержку между скилами?Думаю да.Человеку,который спрашивает, легче поставить между скилами Delay, или же писать процедуры с таймером?Ответ думаю очевиден.
Ps. В таком скрипте нет смысла писать кучу лишнего кода.
Pss. Может я в чем-то не прав и есть какие-то побочные эффекты ибо не тестил эту задержку на деле.
Psss. Если у кого есть желание, напишите задержку используя таймеры,я на это посмотрю)

manyunya
26.01.2012, 23:47
не правильно это, как ты не поймеш

за эту секунду пакеты приходящие от сервера ставятся в очередь- они не обрабатываются!

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

вот на вскидку простейший таймер
но есть покруче вариант)

var
tick: Integer;

procedure Init;
begin
end;
function Pause(Timewait: Integer):Boolean;
// проверка без остановки скрипта manyunya
var
t : integer;
begin
result := false;
t := Round(Time*86400);
if t > (tick + Timewait) then
begin
tick := t;
result := true;
end;
end;


пример использования:

if pause(2) then //+ 2 секунды ожидания
begin
...........
end;


этим не пользовался)
найду описание таймера встроеного в l2ph отпишу

happytorn
26.01.2012, 23:54
за эту секунду пакеты приходящие от сервера ставятся в очередь- они не обрабатываются!

.

так бы сразу и сказал.Про очередь я не знал.
Ps.Ушел читать мануалы...

manyunya
27.01.2012, 15:43
вот пример скрипта с использыванием таймера
таймер-отдельный поток
const
name = 'AntBuf';

var
timer:TTimer;
TimerStep:byte;
procedure Init;
begin
TimerStep:=1;
timer:=TTimer.Create(nil);
timer.OnTimer:=@OnTimer;
timer.enabled:=false;
timer.interval:=1000; //время задержки между отправкой пакетов.
end;

procedure Free;
begin
timer.free;
end;

procedure OnTimer;
begin
case TimerStep of


1:
begin
timer.interval:=1000;
buf:=Hstr('49 14 04 3E 04 31 04 40 04 3E 04 20 00 3F 04 3E 04 36 04 30 04 3B 04 3E 04 32 04 30 04 42 04 4C 04 20 00 3A 04 20 00 31 04 30 04 44 04 35 04 40 04 43 04 20 00 3A 04 3B 04 30 04 3D 04 30 04 20 00 22 00 1B 04 38 04 33 04 30 04 22 00 20 00 21 00 00 00 03 00 00 00');
SendToServerEx(name);
Inc(TimerStep);
end;

2:
begin
timer.interval:=1000;
buf:=Hstr('39 93 03 00 00 00 00 00 00 00');
SendToServerEx(name);
Inc(TimerStep);
end;
3:
begin
timer.interval:=2000;
buf:=Hstr('39 10 01 00 00 00 00 00 00 00');
SendToServerEx(name);
Inc(TimerStep);
end;
4:
begin
timer.interval:=2000;
buf:=Hstr('39 36 01 00 00 00 00 00 00 00');
SendToServerEx(name);
Inc(TimerStep);
end;
5:
begin
timer.interval:=2000;
buf:=Hstr('39 0F 01 00 00 00 00 00 00 00');
SendToServerEx(name);
Inc(TimerStep);
end;
6:
begin
timer.interval:=2000;
buf:=Hstr('39 DD 03 00 00 00 00 00 00 00');
SendToServerEx(name);
Inc(TimerStep);
end;

7:
begin
timer.interval:=1000;
buf:=Hstr('39 13 01 00 00 00 00 00 00 00');
SendToServerEx(name);
Inc(TimerStep);
end;
8:
begin
timer.interval:=1000;
buf:=Hstr('39 12 01 00 00 00 00 00 00 00');
SendToServerEx(name);
Inc(TimerStep);
end;
9:
begin
timer.interval:=2000;
buf:=Hstr('49 21 04 3F 04 30 04 41 04 38 04 31 04 3E 04 20 00 47 04 42 04 3E 04 20 00 32 04 3E 04 41 04 3F 04 3E 04 3B 04 4C 04 37 04 3E 04 32 04 30 04 3B 04 38 04 41 04 4C 04 20 00 48 04 42 04 30 04 42 04 3D 04 4B 04 3C 04 20 00 3A 04 3B 04 30 04 3D 04 20 00 31 04 30 04 44 04 35 04 40 04 3E 04 3C 04 21 00 1F 04 40 04 38 04 45 04 3E 04 34 04 38 04 42 04 35 04 20 00 35 04 49 04 35 04 20 00 3A 00 29 00 00 00 03 00 00 00');
SendToServerEx(name);
Inc(TimerStep);
end;
10:
begin
buf:=Hstr('44');
SendToServerEx(name);
timer.enabled:=false;
end;
end;
end;

begin
if FromServer and (pck[1]=#$39) then begin //от сервера получен пакет $39
if ReadS(2) = 'Пиротехник' then //проверяем от кого
buf:=Hstr('43 01 00 00 00');
timer.enabled:=true;
TimerStep:=1
else
buf:=hstr('43 00 00 00 00'); //Создаем пакет "Отказать в пати"
pck :=''; //убиваем этот пакет
SendToServer; //Отправляем его на сервер
end;

end.

если что то будет не понятно, то пишите и я добавлю коменты в не понятный строки.

x-miskalin-x
09.02.2012, 15:45
Не понял зачем эта процедура?
---
procedure Free;
begin
timer.free;
end;

---



var
timer:TTimer; //TTimer - это встроенная функция или что?
TimerStep:byte;
procedure Init;
begin
TimerStep:=1;
timer:=TTimer.Create(nil); //Тут не понял чего происходит )
timer.OnTimer:=@OnTimer; //Тут?
timer.enabled:=false;
timer.interval:=1000; //время задержки между отправкой пакетов.
end;

---
Дальше всё понятно... :)

c-lavr
09.02.2012, 16:05
Не понял зачем эта процедура?
---
procedure Free;
begin
timer.free;
end;

---



var
timer:TTimer; //TTimer - это встроенная функция или что?
TimerStep:byte;
procedure Init;
begin
TimerStep:=1;
timer:=TTimer.Create(nil); //Тут не понял чего происходит )
timer.OnTimer:=@OnTimer; //Тут?
timer.enabled:=false;
timer.interval:=1000; //время задержки между отправкой пакетов.
end;

---
Дальше всё понятно... :)

TTimer - это функция таймера. Она используется в процедуре Init - процедура таймера, которая используется в Delfi. На счет использования в скрипте - не знаю.

happytorn
09.02.2012, 16:13
Процедура Init вызывается когда вы устанавливаете рядом со скриптом галочку.
Процедура Free вызывается когда вы убираете рядом со скриптом галочку.
Источник: [Ссылки могут видеть только зарегистрированные и активированные пользователи]
Более подробный скрипт с коментами тут [Ссылки могут видеть только зарегистрированные и активированные пользователи]