PDA

Просмотр полной версии : [Информация] Скриптинг или от новичка к профи


happytorn
09.02.2012, 01:31
Здесь я постараюсь объединить наиболее популярные вопросы по скриптам. Так как почти на всех серверах пакеты 2.7 и 3.0,затрагивать пакеты ранних версий не буду. И так, приступим.

1) Как сделать скрипт автоатаки для своего класса?
Пример скрипта 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); //Вставляем в начальный пакет ID скила
WriteC(Level, 8); //Всталяем в начальный пакет уровень скила
WriteD(TargetID, 10); //Вставляем в начальный пакет ID таргета
SendToServer;
end;
begin

StartSkill := 578; //Стремительный удар V
if (FromClient) and (ReadC(1) = $D0) and (ReadH(6) = StartSkill) then

begin
TargetID := ReadD(10);
DoTheSkill(580, 9); //Рассекающий удар V
DoTheSkill(932, 9); //Нанесение древнего клейма III
DoTheSkill(581, 9); //Контратака V
end;

end.

Нам остается только подставить свои скилы.Как это сделать.Пишем свои строки DoTheSkill.Где первая цифра в скобках это ID нужного скила, а вторая -уровень скила.Узнать ID скила можно в базе,например:[Ссылки могут видеть только зарегистрированные и активированные пользователи] ,где 580-это ID. А так же назначаем скил, который будет активировать наш скрипт StartSkill := 578 ,578 меняем на нужный нам ID скила.

2) Как сделать задержку между пакетами чтобы не палиться?
Пример скрипта

var
name:string;
Timer:TTimer;
TimerStep:integer;
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); //Вставляем в начальный пакет ID скила
WriteC(Level, 8); //Всталяем в начальный пакет уровень скила
WriteD(TargetID, 10); //Вставляем в начальный пакет ID таргета
SendToServerEx(name);
end;

procedure Init;
begin
TimerStep:=1; //Шаг
Timer:=TTimer.Create(nil); //выделяем память
Timer.OnTimer:=@OnTimer; //привязываем процедуру к событию
Timer.enabled:=false; //начальное положение выключен(false)
Timer.interval:=900; //интервал(в миллисекундах) как часто таймер срабатывает
end;


procedure Free;
begin
Timer.free;
end;

procedure OnTimer(Sender: TObject);
begin
case TimerStep of
1:
begin
DoTheSkill(580, 9); //Рассекающий удар V
Inc(TimerStep);
end;

2:
begin
DoTheSkill(932, 9); //Нанесение древнего клейма III
Inc(TimerStep);
end;

3:
begin
DoTheSkill(581, 9); //Контратака V
Inc(TimerStep);
end;

4:
begin
DoTheSkill(875, 9); //Рев Зверя IV
Inc(TimerStep);
end;

5:
begin
DoTheSkill(860, 9); //Удар Зверя IV
Inc(TimerStep);

end;

6:
begin
DoTheSkill(2110, 9); //Бросок зверя II
Timer.enabled:=false; //выключаем таймер
Inc(TimerStep);
TimerStep:=1; //Переходим на первый шаг
end;
end;
end;

begin

StartSkill := 578; //Стремительный удар V
if (FromClient) and (ReadC(1) = $D0) and (ReadH(6) = StartSkill) then
begin
name:=ConnectName;
TargetID := ReadD(10);
Timer.enabled:=true; //включаем таймер
end;
end.

В строке Timer.interval:=900; меняем по желанию 900 на любое нужное вам время задержки.
Время задержки между скилами будет одинаковое.

3) Как сделать скрипт для ТП по локации?
Пример скрипта begin
If FromClient and (pck=Hstr('B2 00 57 71 FF 00 67 00 67 00 00 00')) // gg
then
begin
buf:=HStr('C2 00 57 61 FF 04 CC DB A7 44 A4 20 F9 44 00 80 2A 42 36');
SendToServer;
pck:='';

end;
If FromClient and (pck=Hstr('B2 00 57 71 FF 00 57 00 67 55 45 00 00 00'))
then
begin
buf:=HStr('C2 00 57 61 FF 04 DC GB A9 44 A4 20 F9 44 00 80 2A 42 36');
SendToServer;
pck:='';

end;
end.
В моем примере две точки телепорта. Рассмотрим на примере первой точки.
И так, что делать чтобы создать свои точки ТП.
1) Идем в нужную нам точку локации.Ловим последний пакет 9F. Например
9F 00 57 5C FF CC DB A7 44 A4 20 F9 44 00 80 2A 42 6E 00
CC DB A7 44 A4 20 F9 44 00 80 2A 42- это координаты нашего местоположения.Запоминаем их.
Делаем новый пакет телепорта с нашими координатами:
C2 00 57 61 FF 04 CC DB A7 44 A4 20 F9 44 00 80 2A 42 36
2) Создаем команду для активации ТП. Придумываем название для точки ТП. Например:gg .Пишем его в чат и ловим пакет B2.
Получилось B2 00 57 71 FF 00 67 00 67 00 00 00
Подставляем в скрипт полученные пакеты.

1) Как сделать скрипт автоатаки для своего класса?
Пример скрипта var

TargetID:integer;
StartSkill:word;

procedure DoTheSkill(SkillID:word; Level:byte); //Формируем пакет нового скила
begin
buf := HStr('EF 00 6D 10 FF 34 02 09 00 08 A4 00 00 00 00 00 00 00 00'); //Начальный пакет на скил
WriteH(SkillID, 6); //Вставляем в начальный пакет ID скила
WriteC(Level, 8); //Всталяем в начальный пакет уровень скила
WriteD(TargetID, 10); //Вставляем в начальный пакет ID таргета
SendToServer;
end;
begin

StartSkill := 578; //Стремительный удар V
if (FromClient) and (ReadC(1) = $EF) and (ReadH(6) = StartSkill) then

begin
TargetID := ReadD(10);
DoTheSkill(580, 9); //Рассекающий удар V
DoTheSkill(932, 9); //Нанесение древнего клейма III
DoTheSkill(581, 9); //Контратака V
end;

end.

Нам остается только подставить свои скилы.Как это сделать.Пишем свои строки DoTheSkill.Где первая цифра в скобках это ID нужного скила, а вторая -уровень скила.Узнать ID скила можно в базе,например:[Ссылки могут видеть только зарегистрированные и активированные пользователи] ,где 580-это ID. А так же назначаем скил, который будет активировать наш скрипт StartSkill := 578 ,578 меняем на нужный нам ID скила.

2) Как сделать задержку между пакетами чтобы не палиться?
Пример скрипта

var
name:string;
Timer:TTimer;
TimerStep:integer;
TargetID:integer;
StartSkill:word;

procedure DoTheSkill(SkillID:word; Level:byte); //Формируем пакет нового скила
begin
buf := HStr('EF 00 6D 10 FF 34 02 09 00 08 A4 00 00 00 00 00 00 00 00'); //Начальный пакет на скил
WriteH(SkillID, 6); //Вставляем в начальный пакет ID скила
WriteC(Level, 8); //Всталяем в начальный пакет уровень скила
WriteD(TargetID, 10); //Вставляем в начальный пакет ID таргета
SendToServerEx(name);
end;

procedure Init;
begin
TimerStep:=1; //Шаг
Timer:=TTimer.Create(nil); //выделяем память
Timer.OnTimer:=@OnTimer; //привязываем процедуру к событию
Timer.enabled:=false; //начальное положение выключен(false)
Timer.interval:=900; //интервал(в миллисекундах) как часто таймер срабатывает
end;


procedure Free;
begin
Timer.free;
end;

procedure OnTimer(Sender: TObject);
begin
case TimerStep of
1:
begin
DoTheSkill(580, 9); //Рассекающий удар V
Inc(TimerStep);
end;

2:
begin
DoTheSkill(932, 9); //Нанесение древнего клейма III
Inc(TimerStep);
end;

3:
begin
DoTheSkill(581, 9); //Контратака V
Inc(TimerStep);
end;

4:
begin
DoTheSkill(875, 9); //Рев Зверя IV
Inc(TimerStep);
end;

5:
begin
DoTheSkill(860, 9); //Удар Зверя IV
Inc(TimerStep);

end;

6:
begin
DoTheSkill(2110, 9); //Бросок зверя II
Timer.enabled:=false; //выключаем таймер
Inc(TimerStep);
TimerStep:=1; //Переходим на первый шаг
end;
end;
end;

begin

StartSkill := 578; //Стремительный удар V
if (FromClient) and (ReadC(1) = $EF) and (ReadH(6) = StartSkill) then
begin
name:=ConnectName;
TargetID := ReadD(10);
Timer.enabled:=true; //включаем таймер
end;
end.

В строке Timer.interval:=900; меняем по желанию 900 на любое нужное вам время задержки.
Время задержки между скилами будет одинаковое.

3) Как сделать скрипт для ТП по локации?
Пример скрипта begin
If FromClient and (pck=Hstr('A9 00 6D 56 FF 00 67 00 67 00 00 00')) // gg
then
begin
buf:=HStr('F9 00 6D 06 FF 04 1F 8E D8 44 18 22 D0 44 05 C5 7A 43 36');
SendToServer;
pck:='';

end;
If FromClient and (pck=Hstr('A9 00 6D 56 FF 00 68 00 68 00 00 00'))
then
begin
buf:=HStr('C2 00 57 61 FF 04 DC GB A9 44 A4 20 F9 44 00 80 2A 42 36');
SendToServer;
pck:='';

end;
end.
В моем примере две точки телепорта. Рассмотрим на примере первой точки.
И так, что делать чтобы создать свои точки ТП.
1) Идем в нужную нам точку локации.Ловим последний пакет FE. Например
FE 00 6D 01 FF 1F 8E D8 44 18 22 D0 44 05 C5 7A 43 6E 00
1F 8E D8 44 18 22 D0 44 05 C5 7A 43- это координаты нашего местоположения.Запоминаем их.
Делаем новый пакет телепорта с нашими координатами:
F9 00 6D 06 FF 04 1F 8E D8 44 18 22 D0 44 05 C5 7A 43 36
2) Создаем команду для активации ТП. Придумываем название для точки ТП. Например:gg .Пишем его в чат и ловим пакет A9.
Получилось A9 00 6D 56 FF 00 67 00 67 00 00 00
Подставляем в скрипт полученные пакеты.

1) Как сделать скрипт автоатаки для своего класса?
Пример скрипта var

TargetID:integer;
StartSkill:word;

procedure DoTheSkill(SkillID:word; Level:byte); //Формируем пакет нового скила
begin
buf := HStr('E7 00 65 18 FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00'); //Начальный пакет на скил
WriteH(SkillID, 6); //Вставляем в начальный пакет ID скила
WriteC(Level, 8); //Всталяем в начальный пакет уровень скила
WriteD(TargetID, 10); //Вставляем в начальный пакет ID таргета
SendToServer;
end;
begin

StartSkill := 578; //Стремительный удар V
if (FromClient) and (ReadC(1) = $E7) and (ReadH(6) = StartSkill) then

begin
TargetID := ReadD(10);
DoTheSkill(580, 9); //Рассекающий удар V
DoTheSkill(932, 9); //Нанесение древнего клейма III
DoTheSkill(581, 9); //Контратака V
end;

end.

Нам остается только подставить свои скилы.Как это сделать.Пишем свои строки DoTheSkill.Где первая цифра в скобках это ID нужного скила, а вторая -уровень скила.Узнать ID скила можно в базе,например:[Ссылки могут видеть только зарегистрированные и активированные пользователи] ,где 580-это ID. А так же назначаем скил, который будет активировать наш скрипт StartSkill := 578 ,578 меняем на нужный нам ID скила.

2) Как сделать задержку между пакетами чтобы не палиться?
Пример скрипта

var
name:string;
Timer:TTimer;
TimerStep:integer;
TargetID:integer;
StartSkill:word;

procedure DoTheSkill(SkillID:word; Level:byte); //Формируем пакет нового скила
begin
buf := HStr('E7 00 65 18 FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00'); //Начальный пакет на скил
WriteH(SkillID, 6); //Вставляем в начальный пакет ID скила
WriteC(Level, 8); //Вставляем в начальный пакет уровень скила
WriteD(TargetID, 10); //Вставляем в начальный пакет ID таргета
SendToServerEx(name);
end;

procedure Init;
begin
TimerStep:=1; //Шаг
Timer:=TTimer.Create(nil); //выделяем память
Timer.OnTimer:=@OnTimer; //привязываем процедуру к событию
Timer.enabled:=false; //начальное положение выключен(false)
Timer.interval:=900; //интервал(в миллисекундах) как часто таймер срабатывает
end;


procedure Free;
begin
Timer.free;
end;

procedure OnTimer(Sender: TObject);
begin
case TimerStep of
1:
begin
DoTheSkill(580, 9); //Рассекающий удар V
Inc(TimerStep);
end;

2:
begin
DoTheSkill(932, 9); //Нанесение древнего клейма III
Inc(TimerStep);
end;

3:
begin
DoTheSkill(581, 9); //Контратака V
Inc(TimerStep);
end;

4:
begin
DoTheSkill(875, 9); //Рев Зверя IV
Inc(TimerStep);
end;

5:
begin
DoTheSkill(860, 9); //Удар Зверя IV
Inc(TimerStep);

end;

6:
begin
DoTheSkill(2110, 9); //Бросок зверя II
Timer.enabled:=false; //выключаем таймер
Inc(TimerStep);
TimerStep:=1; //Переходим на первый шаг
end;
end;
end;

begin

StartSkill := 578; //Стремительный удар V
if (FromClient) and (ReadC(1) = $E7) and (ReadH(6) = StartSkill) then
begin
name:=ConnectName;
TargetID := ReadD(10);
Timer.enabled:=true; //включаем таймер
end;
end.

В строке Timer.interval:=900; меняем по желанию 900 на любое нужное вам время задержки.
Время задержки между скилами будет одинаковое.

1) Как сделать скрипт автоатаки для своего класса?
Пример скрипта var

TargetID:integer;
StartSkill:word;

procedure DoTheSkill(SkillID:word; Level:byte); //Формируем пакет нового скила
begin
buf := HStr('E4 00 65 1B FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00'); //Начальный пакет на скил
WriteH(SkillID, 6); //Вставляем в начальный пакет ID скила
WriteC(Level, 8); //Всталяем в начальный пакет уровень скила
WriteD(TargetID, 10); //Вставляем в начальный пакет ID таргета
SendToServer;
end;
begin

StartSkill := 578; //Стремительный удар V
if (FromClient) and (ReadC(1) = $E4) and (ReadH(6) = StartSkill) then

begin
TargetID := ReadD(10);
DoTheSkill(580, 9); //Рассекающий удар V
DoTheSkill(932, 9); //Нанесение древнего клейма III
DoTheSkill(581, 9); //Контратака V
end;

end.

Нам остается только подставить свои скилы.Как это сделать.Пишем свои строки DoTheSkill.Где первая цифра в скобках это ID нужного скила, а вторая -уровень скила.Узнать ID скила можно в базе,например:[Ссылки могут видеть только зарегистрированные и активированные пользователи] ,где 580-это ID. А так же назначаем скил, который будет активировать наш скрипт StartSkill := 578 ,578 меняем на нужный нам ID скила.

2) Как сделать задержку между пакетами чтобы не палиться?
Пример скрипта

var
name:string;
Timer:TTimer;
TimerStep:integer;
TargetID:integer;
StartSkill:word;

procedure DoTheSkill(SkillID:word; Level:byte); //Формируем пакет нового скила
begin
buf := HStr('E4 00 65 1B FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00'); //Начальный пакет на скил
WriteH(SkillID, 6); //Вставляем в начальный пакет ID скила
WriteC(Level, 8); //Вставляем в начальный пакет уровень скила
WriteD(TargetID, 10); //Вставляем в начальный пакет ID таргета
SendToServerEx(name);
end;

procedure Init;
begin
TimerStep:=1; //Шаг
Timer:=TTimer.Create(nil); //выделяем память
Timer.OnTimer:=@OnTimer; //привязываем процедуру к событию
Timer.enabled:=false; //начальное положение выключен(false)
Timer.interval:=900; //интервал(в миллисекундах) как часто таймер срабатывает
end;


procedure Free;
begin
Timer.free;
end;

procedure OnTimer(Sender: TObject);
begin
case TimerStep of
1:
begin
DoTheSkill(580, 9); //Рассекающий удар V
Inc(TimerStep);
end;

2:
begin
DoTheSkill(932, 9); //Нанесение древнего клейма III
Inc(TimerStep);
end;

3:
begin
DoTheSkill(581, 9); //Контратака V
Inc(TimerStep);
end;

4:
begin
DoTheSkill(875, 9); //Рев Зверя IV
Inc(TimerStep);
end;

5:
begin
DoTheSkill(860, 9); //Удар Зверя IV
Inc(TimerStep);

end;

6:
begin
DoTheSkill(2110, 9); //Бросок зверя II
Timer.enabled:=false; //выключаем таймер
Inc(TimerStep);
TimerStep:=1; //Переходим на первый шаг
end;
end;
end;

begin

StartSkill := 578; //Стремительный удар V
if (FromClient) and (ReadC(1) = $E4) and (ReadH(6) = StartSkill) then
begin
name:=ConnectName;
TargetID := ReadD(10);
Timer.enabled:=true; //включаем таймер
end;
end.

В строке Timer.interval:=900; меняем по желанию 900 на любое нужное вам время задержки.
Время задержки между скилами будет одинаковое.

c-lavr
09.02.2012, 16:19
CC DB A7 44 A4 20 F9 44 00 80 2A 42- это координаты нашего местоположения.

Какие цифры отвечают за координаты по высоте?

happytorn
09.02.2012, 16:28
Какие цифры отвечают за координаты по высоте?

CC DB A7 44 A4 20 F9 44 00 80 2A 42

c-lavr
09.02.2012, 17:10
сяб. значит по 4 пары чисел на каждую координату) над будет поиграться с ними. Сегодня этим займусь. может получиться сделать по карте сразу собирать пакет)

x-miskalin-x
11.02.2012, 19:23
2) Как сделать задержку между пакетами чтобы не палиться?
Пример скрипта
Не работает.
После Засады ничего не происходит.
Где ошибка?


const
name = 'xborrovx'; //имя соединения
var
Timer:TTimer;
TimerStep:integer;
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;



procedure Init;
begin
TimerStep:=1; //Шаг
Timer:=TTimer.Create(nil); //выделяем память
Timer.OnTimer:=@OnTimer; //привязываем процедуру к событию
Timer.enabled:=false; //начальное положение выключен(false)
Timer.interval:=1000; //интервал(в миллисекундах) как часто таймер срабатывает
end;


procedure Free;
begin
Timer.free;
end;

procedure OnTimer(Sender: TObject);
begin
case TimerStep of
1:
begin
//Timer.interval:=900;
DoTheSkill(1987, 1); //Атака ядом
Inc(TimerStep);
end;

2:
begin
//Timer.interval:=900;
DoTheSkill(1990, 1); //Клинок обморока
Inc(TimerStep);
TimerStep:=1; //Переходим на первый шаг
end;
end;
end;

begin

StartSkill := 2126;
if (FromClient) and (ReadC(1) = $CF) and (ReadH(4) = StartSkill) then
begin
TargetID := ReadD(8);
Timer.enabled:=true; //включаем таймер
end;
end.

happytorn
11.02.2012, 19:54
Не работает.
После Засады ничего не происходит.
Где ошибка?


const
name = 'xborrovx'; //имя соединения
var
Timer:TTimer;
TimerStep:integer;
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;



procedure Init;
begin
TimerStep:=1; //Шаг
Timer:=TTimer.Create(nil); //выделяем память
Timer.OnTimer:=@OnTimer; //привязываем процедуру к событию
Timer.enabled:=false; //начальное положение выключен(false)
Timer.interval:=1000; //интервал(в миллисекундах) как часто таймер срабатывает
end;


procedure Free;
begin
Timer.free;
end;

procedure OnTimer(Sender: TObject);
begin
case TimerStep of
1:
begin
//Timer.interval:=900;
DoTheSkill(1987, 1); //Атака ядом
Inc(TimerStep);
end;

2:
begin
//Timer.interval:=900;
DoTheSkill(1990, 1); //Клинок обморока
Inc(TimerStep);
TimerStep:=1; //Переходим на первый шаг
end;
end;
end;

begin

StartSkill := 2126;
if (FromClient) and (ReadC(1) = $D0) and (ReadH(6) = StartSkill) then
begin
TargetID := ReadD(10);
Timer.enabled:=true; //включаем таймер
end;
end.


Будьте внимательней.

x-miskalin-x
12.02.2012, 11:20
Будьте внимательней.

Нее, я ж переделал для НьюАйона, там под 2.7 идут пакеты от 2.5 )

happytorn
12.02.2012, 11:45
Нее, я ж переделал для НьюАйона, там под 2.7 идут пакеты от 2.5 )

name = 'xborrovx';
Заместо xborrovx у тебя должен быть реальный логин который ты используешь для захода на сервер.

x-miskalin-x
12.02.2012, 13:10
name = 'xborrovx';
Заместо xborrovx у тебя должен быть реальный логин который ты используешь для захода на сервер.

Меняю на логин (в логине правда есть "-" такой знак) и после засады не идут удары.
Меняю на ник перса = тоже не выходит.

У тебя это работает?

happytorn
12.02.2012, 13:16
Меняю на логин (в логине правда есть "-" такой знак) и после засады не идут удары.
Меняю на ник перса = тоже не выходит.

У тебя это работает?
Чет я сразу не увидел. У тебя
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; // поменяй на SendToServerEx(name);
end;

x-miskalin-x
12.02.2012, 17:35
Ну уже тупо беру твой скрипт и только заменяю пакет с 2.7 на 2.5
И ничего не происходит после скила активатора.


const
name = 'x-miskalin-x'; //Логин к Акаунту
var
Timer:TTimer;
TimerStep:integer;
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); //Вставляем в начальный пакет ID скила
WriteC(Level, 6); //Всталяем в начальный пакет уровень скила
WriteD(TargetID, 8); //Вставляем в начальный пакет ID таргета
SendToServerEx(name);
end;

procedure Init;
begin
TimerStep:=1; //Шаг
Timer:=TTimer.Create(nil); //выделяем память
Timer.OnTimer:=@OnTimer; //привязываем процедуру к событию
Timer.enabled:=false; //начальное положение выключен(false)
Timer.interval:=900; //интервал(в миллисекундах) как часто таймер срабатывает
end;


procedure Free;
begin
Timer.free;
end;

procedure OnTimer(Sender: TObject);
begin
case TimerStep of
1:
begin
DoTheSkill(580, 9); //Рассекающий удар V
Inc(TimerStep);
end;

2:
begin
DoTheSkill(932, 9); //Нанесение древнего клейма III
Inc(TimerStep);
end;

3:
begin
DoTheSkill(581, 9); //Контратака V
Inc(TimerStep);
end;

4:
begin
DoTheSkill(875, 9); //Рев Зверя IV
Inc(TimerStep);
end;

5:
begin
DoTheSkill(860, 9); //Удар Зверя IV
Inc(TimerStep);

end;

6:
begin
DoTheSkill(2110, 9); //Бросок зверя II
Timer.enabled:=false; //выключаем таймер
Inc(TimerStep);
TimerStep:=1; //Переходим на первый шаг
end;
end;
end;

begin

StartSkill := 578; //Стремительный удар V
if (FromClient) and (ReadC(1) = $CF) and (ReadH(4) = StartSkill) then
begin
TargetID := ReadD(8);
Timer.enabled:=true; //включаем таймер
end;
end.

happytorn
12.02.2012, 21:48
x-miskalin-x, скачай новую версию l2ph,походу у тебя имя соединения неправильно определяет.


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

Зубочистка
13.02.2012, 19:31
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 := 177;
if (FromClient) and (ReadC(1) = $D0) and (ReadH(6) = StartSkill) then
begin
TargetID := ReadD(10);
DoTheSkill(168, 9);
DoTheSkill(304, 9);
DoTheSkill(303, 9);
DoTheSkill(2017, 9);

от куда он берётся и как правильно найти этот паке?

happytorn
14.02.2012, 15:44
от куда он берётся и как правильно найти этот паке?
Это пакет на атаку скилом.Его не нужно трогать в скрипте,это как бы "шаблон" .

Abensur
16.02.2012, 18:36
у меня не получается написать скрипт((( играю на Ньюшке
вот мой скрипт, подскажи что я делаю не так?
const
name = 'borrow'; //тут логин
var
Timer:TTimer;
TimerStep:integer;
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);
SendToServerEx(name);
end;


procedure Init;
begin
TimerStep:=1;
Timer:=TTimer.Create(nil);
Timer.OnTimer:=@OnTimer;
Timer.enabled:=false;
Timer.interval:=300;
end;

procedure Free;
begin
Timer.free;
end;

procedure OnTimer(Sender: TObject);

begin

case TimerStep of
1:
begin
DoTheSkill(1990,1);
Inc(TimerStep);
end;
2:
begin
DoTheSkill(839,1);
TimerStep:=1;
end;
end;
end;

begin

StartSkill := 1987;
if (FromClient) and (ReadC(6) = $CF) and (ReadH(4) = StartSkill) then

begin
TargetID := ReadD(8);
Timer.enabled:=true;
end;

end.

happytorn
16.02.2012, 21:30
Если на сервере 2.6 пакеты то как-то
const
name = 'borrow'; //тут логин
var
Timer:TTimer;
TimerStep:integer;
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);
SendToServerEx(name);
end;


procedure Init;
begin
TimerStep:=1;
Timer:=TTimer.Create(nil);
Timer.OnTimer:=@OnTimer;
Timer.enabled:=false;
Timer.interval:=300;
end;

procedure Free;
begin
Timer.free;
end;

procedure OnTimer(Sender: TObject);

begin

case TimerStep of
1:
begin
DoTheSkill(1990,1);
Inc(TimerStep);
end;
2:
begin
DoTheSkill(839,1);
Timer.enabled:=false; //выключаем таймер
Inc(TimerStep);
TimerStep:=1; //Переходим на первый шаг

end;
end;
end;

begin

StartSkill := 1987;
if (FromClient) and (ReadC(1) = $CF) and (ReadH(4) = StartSkill) then

begin
TargetID := ReadD(8);
Timer.enabled:=true;
end;

end.

/\0/\
16.02.2012, 23:16
спасибо, сделал беспалевный скрипт на сина, а как сделать чтобы при тп перс появлялся в воздухе? чтобы можно было парировать куда хочешь.

happytorn
16.02.2012, 23:51
спасибо, сделал беспалевный скрипт на сина, а как сделать чтобы при тп перс появлялся в воздухе? чтобы можно было парировать куда хочешь.

C2 00 57 61 FF 04 CC DB A7 44 A4 20 F9 44 00 80 2A 42 36
04 нужно поменять на что-то,что бы перс не садился.Хз на что менять,над тестить.
00 80 2A 42-координаты по высоте.Меняем на нужные нам.

syler1993
17.02.2012, 13:28
var
TargetID:integer;
StartSkill:word;

procedure DoTheSkill(SkillID:word; Level:byte);
begin
buf := HStr('CF 57 6C B2 00 06 00 24 AB 00 00 F4 01 F9 AB 00 00');
WriteH(SkillID, 6);
WriteC(Level, 8);
WriteD(TargetID, 10);
SendToServer;
end;

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

DoTheSkill(515, 9);
DoTheSkill(427, 9);
DoTheSkill(177, 2);
DoTheSkill(545, 4);
DoTheSkill(412, 1);
DoTheSkill(465, 1);
DoTheSkill(505, 6);
DoTheSkill(510, 6);
DoTheSkill(2271, 1);
DoTheSkill(529, 4);
DoTheSkill(157, 5);
DoTheSkill(405, 1);
DoTheSkill(529, 4);
DoTheSkill(509, 9);
DoTheSkill(449, 3);
DoTheSkill(410, 1);
end;
end.


Здравствуйте, попробовал сам склепать скриптик на автоатаку всеми боевыми скилами Стража 45 лвл на "нюшке"
Скрипт не работает не могу найти ошибку...
Особенно непонятно где берутся следующие значения :
WriteH(SkillID, 6);
WriteC(Level, 8);
WriteD(TargetID, 10);
Помогите разобраться ./okay

Abensur
17.02.2012, 13:56
Здравствуйте, попробовал сам склепать скриптик на автоатаку всеми боевыми скилами Стража 45 лвл на "нюшке"
Скрипт не работает не могу найти ошибку...
Особенно непонятно где берутся следующие значения :
WriteH(SkillID, 6);
WriteC(Level, 8);
WriteD(TargetID, 10);
Помогите разобраться ./okay

в этом скрипте все скилы которые ты указал будут вылетать за 1ну сек, в пвп тебя сразу спалят и забанят... но если так хочешь вот
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 := 178;
if (FromClient) and (ReadC(1) = $CF) and (ReadH(4) = StartSkill) then
begin
TargetID := ReadD(8);

DoTheSkill(515, 9);
DoTheSkill(427, 9);
DoTheSkill(177, 2);
DoTheSkill(545, 4);
DoTheSkill(412, 1);
DoTheSkill(465, 1);
DoTheSkill(505, 6);
DoTheSkill(510, 6);
DoTheSkill(2271, 1);
DoTheSkill(529, 4);
DoTheSkill(157, 5);
DoTheSkill(405, 1);
DoTheSkill(529, 4);
DoTheSkill(509, 9);
DoTheSkill(449, 3);
DoTheSkill(410, 1);
end;
end

syler1993
17.02.2012, 14:38
Благодарочка все работает!
По поводу задержки скилов...мне скрипт нужен исключительно для РБ-боссов,ведь пвп я вижу Более интересным когда оно "честное".
Ещё мне непонятные пару вещей:

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);
begin
StartSkill := 178;
if (FromClient) and (ReadC(1) = $CF) and (ReadH(4) = StartSkill) then
begin
TargetID := ReadD(8);

Хотелось бы не быть нубом и самому понимать что к чему)
Как наберу 10 сообщений поставлю обязательно спасибо!

happytorn
17.02.2012, 16:03
Хотелось бы не быть нубом и самому понимать что к чему)
Как наберу 10 сообщений поставлю обязательно спасибо!

CF 57 6C CC CC DD 00 FF FF FF FF 00 00 00 00 00 00 это пакет из которого мы "стряпаем" (подставляем в него ID скила, ID таргета, Уровень скила)
WriteH(SkillID, 4); //пишем ID скила(заменяем 2 байта,начиная с четвертого)
WriteC(Level, 6); //пишем уровень скила(заменяем 1 байт,шестой по счету)
WriteD(TargetID, 8); //пишем ID таргета (заменяем 4 байта,начиная с восьмого)

Levapishe
17.02.2012, 17:11
Кстати - данная строчка WriteD(TargetID, 8); //пишем ID таргета (заменяем 4 байта,начиная с восьмого), как и сама переменная TargetID - вещь ненужная. в своих скриптах на скиллы я ее игнорирую - что на результате не сказывается. Ведь когда мы жмем активатор скилла - у нас уже в таргете есть "кто-то".

Abensur
17.02.2012, 18:49
чёт всё равно скрипт не работает(( подскажите плиз где ошибка?
const
name = 'nnn'; //тут логин
var
Timer:TTimer;
TimerStep:integer;
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);
SendToServerEx(name);
end;


procedure Init;
begin
TimerStep:=1;
Timer:=TTimer.Create(nil);
Timer.OnTimer:=@OnTimer;
Timer.enabled:=false;
Timer.interval:=800;
end;

procedure Free;
begin
Timer.free;
end;

procedure OnTimer(Sender: TObject);

begin

case TimerStep of
1:
begin
DoTheSkill(1990,1);
Inc(TimerStep);
end;
2:
begin
DoTheSkill(839,1);
Timer.enabled:=false;
Inc(TimerStep);
TimerStep:=1;
end;
end;
end;

begin

StartSkill := 1987;
if (FromClient) and (ReadC(1) = $CF) and (ReadH(4) = StartSkill) then

begin
TargetID := ReadD(8);
Timer.enabled:=true;
end;
end.

happytorn
17.02.2012, 19:41
чёт всё равно скрипт не работает(( подскажите плиз где ошибка?

Или у тебя пакеты 2.7 на сервере или старая версия l2ph.Можешь написать мне в личку или скайп, найдем траблу.

strepsil
20.02.2012, 12:40
C2 00 57 61 FF 04 CC DB A7 44 A4 20 F9 44 00 80 2A 42 36

Из чего этот пакет взял, из обычного возвращения?

happytorn
20.02.2012, 16:50
Из чего этот пакет взял, из обычного возвращения?

[Ссылки могут видеть только зарегистрированные и активированные пользователи]

world.ru
28.02.2012, 18:21
WriteH(SkillID, 4); //пишем ID скила(заменяем 2 байта,начиная с четвертого)
WriteC(Level, 6); //пишем уровень скила(заменяем 1 байт,шестой по счету)
WriteD(TargetID, 8); //пишем ID таргета (заменяем 4 байта,начиная с восьмого)

Если честно , то не понял про байты

happytorn
28.02.2012, 18:47
Если честно , то не понял про байты

CF 57 6C CC CC DD 00 FF FF FF FF 00 00 00 00 00 00 это пакет из которого мы "стряпаем" (подставляем в него ID скила, ID таргета, Уровень скила)
WriteH(SkillID, 4); //пишем ID скила(заменяем 2 байта,начиная с четвертого) то есть CC CC меняем на наш ID
WriteC(Level, 6); //пишем уровень скила(заменяем 1 байт,шестой по счету) т.е. DD меняем на наш ур. скила
WriteD(TargetID, 8); //пишем ID таргета (заменяем 4 байта,начиная с восьмого) т.е. FF FF FF FF меняем на наш ID

Все это находится в теле процедуры и менять здесь ничего не нужно. И если вы не имеете представления о том что такое процедура и как она вызывается, то можно просто упустить эту часть.

world.ru
28.02.2012, 19:13
const
name = 'borrow'; //имя соединения
var
Timer:TTimer;
TimerStep:integer;
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); //Вставляем в начальный пакет ID скила
WriteC(Level, 6); //Всталяем в начальный пакет уровень скила
WriteD(TargetID, 8); //Вставляем в начальный пакет ID таргета
SendToServerEx(name);
end;

procedure Init;
begin
TimerStep:=1; //Шаг
Timer:=TTimer.Create(nil); //выделяем память
Timer.OnTimer:=@OnTimer; //привязываем процедуру к событию
Timer.enabled:=false; //начальное положение выключен(false)
Timer.interval:=300; //интервал(в миллисекундах) как часто таймер срабатывает
end;
Блин не знаю где ошибка.Все перечитал- нифига. Вот как посмотрел темку решил со всеми скриптами разобраться.И когда я захожу при этих значениях, юзаю активацию и тогда вылет из серва

happytorn
28.02.2012, 19:28
Блин не знаю где ошибка.Все перечитал- нифига. Вот как посмотрел темку решил со всеми скриптами разобраться.И когда я захожу при этих значениях, юзаю активацию и тогда вылет из серва

Ну я же не экстрасенс по куску кода определять ошибку. Сервер какой?И вообще лучше в скайп пиши, если много вопросов.

kikboks
05.03.2012, 07:14
ребята вот мой скрипт все работает но проблема в другом СКРИПТ ЛУПИТ САМ ПО СЕБЕ!!!!! Я ЖМУ НА АКТИВИРУЮЩЕЙ СКИЛ ПЕРВЫЙ РАЗ ВСЕ ПРОХОДИТ ОТЛИЧЬНО а потом он лупит как хочет и все кто попадает в таргет получают не серию ударов один за другим а какуюто кашу



ВОПРОС: как зделать чтов все било также как в первый раз и на одном прохождении остановилось?????
тоисть нажал оно з всеми задержками ударело прошло серию и остановилось как???

очь прошу помогите

сори за ошыбки))))




const
name = 'tomi555'; //имя соединения
var
Timer:TTimer;
TimerStep:integer;
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); //Вставляем в начальный пакет ID скила
WriteC(Level, 8); //Всталяем в начальный пакет уровень скила
WriteD(TargetID, 10); //Вставляем в начальный пакет ID таргета
SendToServerEx(name);
end;

procedure Init;
begin
TimerStep:=1; //Шаг
Timer:=TTimer.Create(nil); //выделяем память
Timer.OnTimer:=@OnTimer; //привязываем процедуру к событию
Timer.enabled:=false; //начальное положение выключен(false)
Timer.interval:=500; //интервал(в миллисекундах) как часто таймер срабатывает
end;


procedure Free;
begin
Timer.free;
end;

procedure OnTimer(Sender: TObject);
begin
case TimerStep of
1:
begin
DoTheSkill(578, 9); //Стремительный удар V
Inc(TimerStep);
end;

2:
begin
DoTheSkill(580, 9); //Рассекающий удар V
Inc(TimerStep);
end;


3:
begin
DoTheSkill(932, 9); //Нанесение древнего клейма III
Inc(TimerStep);
end;

4:
begin
DoTheSkill(2112, 9); //Разрушение клейма V
Inc(TimerStep);
TimerStep:=1; //Переходим на первый шаг
end;
end;
end;

begin

StartSkill := 578; //Стремительный удар V
if (FromClient) and (ReadC(1) = $D0) and (ReadH(6) = StartSkill) then
begin
TargetID := ReadD(10);
Timer.enabled:=true; //включаем таймер
end;

end.

Добавлено через 7 минут
все ребят 4 года учьобы на програмиста не прошло зря))))


нашол сам что здел
над было тут

3:
begin
DoTheSkill(2112, 9); //Разрушение клейма V
Timer.enabled:=false;
Inc(TimerStep);
TimerStep:=1; //Переходим на первый шаг


вписать ето Timer.enabled:=false;

Amid_awars
15.03.2012, 16:13
Всем привет, сервер awars.net л2пх настроил правильно!!! проверенно скриптом на тп( робит)
вот проблема с ударами написал скрипт а он не работает, либо как то криво через чур( написан правильно)
Мне подсказали что проблема с пакетами на серверами как бы больше 2-ух ударов за 1 сек не сделать, так вот попробывал скрипт с паузами но не получается его написать, кто может сделать скрипт на лука с этими ударами
ссылки:
[Ссылки могут видеть только зарегистрированные и активированные пользователи] выстрел
[Ссылки могут видеть только зарегистрированные и активированные пользователи] аркан

если вы настроите и будет работать, сам уже разберусь))) спасибо большое за внимания!



если кто то не понял мне нужно вот это:
2) Как сделать задержку между пакетами чтобы не палиться?
Пример скрипта тут
В строке name = 'borrov'; меняем borrov на свое имя соединения(логин).
В строке Timer.interval:=900; меняем по желанию 900 на любое нужное вам время задержки.
Время задержки между скилами будет одинаковое.А что если мы хотим разное время задержки между скилами.Тогда просто добавляем перед скилом строку Timer.interval:=. Например:


только сделайте мне готовый, а то у меня не выходит)

happytorn
15.03.2012, 18:41
только сделайте мне готовый, а то у меня не выходит)

const
name = 'borrov'; //имя соединения
var
Timer:TTimer;
TimerStep:integer;
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); //Вставляем в начальный пакет ID скила
WriteC(Level, 8); //Всталяем в начальный пакет уровень скила
WriteD(TargetID, 10); //Вставляем в начальный пакет ID таргета
SendToServerEx(name);
end;

procedure Init;
begin
TimerStep:=1; //Шаг
Timer:=TTimer.Create(nil); //выделяем память
Timer.OnTimer:=@OnTimer; //привязываем процедуру к событию
Timer.enabled:=false; //начальное положение выключен(false)
Timer.interval:=900; //интервал(в миллисекундах) как часто таймер срабатывает
end;


procedure Free;
begin
Timer.free;
end;

procedure OnTimer(Sender: TObject);
begin
case TimerStep of
1:
begin
DoTheSkill(721, 9); //выстрел
Inc(TimerStep);
end;
2:
begin
DoTheSkill(722, 9); //аркан
Timer.enabled:=false; //выключаем таймер
Inc(TimerStep);
TimerStep:=1; //Переходим на первый шаг
end;
end;
end;

begin

StartSkill := 691; //Ядовитая стрела III
if (FromClient) and (ReadC(1) = $D0) and (ReadH(6) = StartSkill) then
begin
TargetID := ReadD(10);
Timer.enabled:=true; //включаем таймер
end;
end.
Активация скилом Ядовитая стрела III
Не забудь в скрипте в строке borrov поменять на свой логин.

Amid_awars
15.03.2012, 18:44
happytorn добавься в скаип плиз)) я тебе кинул в личку данные ну или тут на vanek26rus96

Добавлено через 9 минут
не выходит вот смотри

const
name = 'blaki'; //имя соединения
var
Timer:TTimer;
TimerStep:integer;
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); //Вставляем в начальный пакет ID скила
WriteC(Level, 8); //Всталяем в начальный пакет уровень скила
WriteD(TargetID, 10); //Вставляем в начальный пакет ID таргета
SendToServerEx(name);
end;

procedure Init;
begin
TimerStep:=1; //Шаг
Timer:=TTimer.Create(nil); //выделяем память
Timer.OnTimer:=@OnTimer; //привязываем процедуру к событию
Timer.enabled:=false; //начальное положение выключен(false)
Timer.interval:=900; //интервал(в миллисекундах) как часто таймер срабатывает
end;


procedure Free;
begin
Timer.free;
end;

procedure OnTimer(Sender: TObject);
begin
case TimerStep of
1:
begin
DoTheSkill(721, 9); //выстрел
Inc(TimerStep);
end;
2:
begin
DoTheSkill(722, 9); //аркан
Timer.enabled:=false; //выключаем таймер
Inc(TimerStep);
TimerStep:=1; //Переходим на первый шаг
end;
end;
end;

begin

StartSkill := 691; //Ядовитая стрела III
if (FromClient) and (ReadC(1) = $D0) and (ReadH(6) = StartSkill) then
begin
TargetID := ReadD(10);
Timer.enabled:=true; //включаем таймер
end;
end.




не чего после ядовитой не идет.



Timer.interval:=900; //интервал(в миллисекундах) как часто таймер срабатывает
пробовал тут заменять на более ниже цифру пишет умение не готово к импользованию (раза 3-4)

happytorn
15.03.2012, 22:40
На аварсе небольшой фикс.
const
name = 'borrov'; //имя соединения
var
Timer:TTimer;
TimerStep:integer;
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 E2 01 F9 C3 00 00'); //Начальный пакет на скил
WriteH(SkillID, 6); //Вставляем в начальный пакет ID скила
WriteC(Level, 8); //Всталяем в начальный пакет уровень скила
WriteD(TargetID, 10); //Вставляем в начальный пакет ID таргета
SendToServerEx(name);
end;

procedure Init;
begin
TimerStep:=1; //Шаг
Timer:=TTimer.Create(nil); //выделяем память
Timer.OnTimer:=@OnTimer; //привязываем процедуру к событию
Timer.enabled:=false; //начальное положение выключен(false)
Timer.interval:=900; //интервал(в миллисекундах) как часто таймер срабатывает
end;


procedure Free;
begin
Timer.free;
end;

procedure OnTimer(Sender: TObject);
begin
case TimerStep of
1:
begin
DoTheSkill(721, 9); //выстрел
Inc(TimerStep);
end;
2:
begin
DoTheSkill(722, 9); //аркан
Timer.enabled:=false; //выключаем таймер
Inc(TimerStep);
TimerStep:=1; //Переходим на первый шаг
end;
end;
end;

begin

StartSkill := 691; //Ядовитая стрела III
if (FromClient) and (ReadC(1) = $D0) and (ReadH(6) = StartSkill) then
begin
TargetID := ReadD(10);
Timer.enabled:=true; //включаем таймер
end;
end.

DragonValle
16.03.2012, 16:27
hey guys, sorry but my russian ist bad >:< i have a problem to put different times betveen the skills.

2:
begin
Timer.interval:=200;
DoTheSkill(577, 1);
Inc(TimerStep);
end;

the Script should use only the one skill "577" in 0,2 sec, and the next one again with 900 (0,9), butafter this, (Timer.interval:=200;) it use all other skills in 0.2 sec... whats wrong ?: O

Here is my script

const
name = 'Valera';
var
Timer:TTimer;
TimerStep:integer;
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);
SendToServerEx(name);
end;

procedure Init;
begin
TimerStep:=1;
Timer:=TTimer.Create(nil);
Timer.OnTimer:=@OnTimer;
Timer.enabled:=false;
Timer.interval:=600; //Zeit zwischen den Skills (500=0,5 sek)
end;


procedure Free;
begin
Timer.free;
end;

procedure OnTimer(Sender: TObject);
begin
case TimerStep of

1:
begin
DoTheSkill(873, 9); //Rückenbrecher II
Inc(TimerStep);
end;

2:
begin
Timer.interval:=200;
DoTheSkill(577, 1); //Hingabe I (Buff)
Inc(TimerStep);
end;

3:
begin
DoTheSkill(2126, 1); //Hinterhalt IV
Inc(TimerStep);
end;

4:
begin
Timer.interval:=500;
DoTheSkill(940, 6); //Strahlende Rune I
Inc(TimerStep);
end;

5:
begin
DoTheSkill(2125, 1); //Attentat III
Inc(TimerStep);
end;

6:
begin
DoTheSkill(1987, 1); //Giftangriff I
Inc(TimerStep);
end;

7:
begin
Timer.interval:=200;
DoTheSkill(839, 1); //Folgeschlag I (Buff)
Inc(TimerStep);
end;

8:
begin
DoTheSkill(1990, 1); //Beschleunigter Untergang I
Inc(TimerStep);
end;

9:
begin
Timer.interval:=200;
DoTheSkill(1984, 1); //Sinnesverstärkung I (Buff)
Inc(TimerStep);
end;

10:
begin
Timer.interval:=200;
DoTheSkill(572, 1); //Konzentriertes Ausweichen I (Buff)
Inc(TimerStep);
end;

11:
begin
DoTheSkill(867, 9); //Siegelgravur IV
Inc(TimerStep);
end;

12:
begin
DoTheSkill(875, 5); //Brüllen der Bestie IV
Inc(TimerStep);
end;

13:
begin
DoTheSkill(860, 5); //Tritt der Bestie III
Inc(TimerStep);
end;

14:
begin
DoTheSkill(2110, 4); //Schlag der Bestie V
Inc(TimerStep);
end;

15:
begin
DoTheSkill(853, 8); //Himmelsklinge III
Timer.enabled:=false;
Inc(TimerStep);
TimerStep:=1;
end;
end;
end;

begin

StartSkill := 2280; //Aktivierungsskill!!!!!!
if (FromClient) and (ReadC(1) = $D0) and (ReadH(6) = StartSkill) then
begin
TargetID := ReadD(10);
Timer.enabled:=true;
end;
end.

lightspirit
16.03.2012, 22:46
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); //Вставляем в начальный пакет ID скила
WriteC(Level, 8); //Всталяем в начальный пакет уровень скила
WriteD(TargetID, 10); //Вставляем в начальный пакет ID таргета
SendToServerEx(name);
end;

как TargetID нужного скилла найти?

happytorn
16.03.2012, 23:42
d;

как TargetID нужного скилла найти?

TargetID - это ID того, что ты взял в таргет.
Тебе его не нужно находить.

lokini
17.03.2012, 02:45
ай бред полный то у меня не чего не происходит то бьет всех сам по себе а тп работает короче имхо все это руками своими быстрее убиваю чем этим всем

x-miskalin-x
23.03.2012, 15:57
const
name = 'Valera';
var
Timer:TTimer;
TimerStep:integer;
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);
SendToServerEx(name);
end;

procedure Init;
begin
TimerStep:=1;
Timer:=TTimer.Create(nil);
Timer.OnTimer:=@OnTimer;
Timer.enabled:=false;
//Timer.interval:=600; //Zeit zwischen den Skills (500=0,5 sek)
end;


procedure Free;
begin
Timer.free;
end;

procedure OnTimer(Sender: TObject);
begin
case TimerStep of

1:
begin
Timer.interval:=600;
DoTheSkill(873, 9); //Rückenbrecher II
Inc(TimerStep);
end;

2:
begin
Timer.interval:=200;
DoTheSkill(577, 1); //Hingabe I (Buff)
Inc(TimerStep);
end;

3:
begin
Timer.interval:=600;
DoTheSkill(2126, 1); //Hinterhalt IV
Inc(TimerStep);
end;

4:
begin
Timer.interval:=500;
DoTheSkill(940, 6); //Strahlende Rune I
Inc(TimerStep);
end;

5:
begin
Timer.interval:=600;
DoTheSkill(2125, 1); //Attentat III
Inc(TimerStep);
end;

6:
begin
Timer.interval:=600;
DoTheSkill(1987, 1); //Giftangriff I
Inc(TimerStep);
end;

7:
begin
Timer.interval:=200;
DoTheSkill(839, 1); //Folgeschlag I (Buff)
Inc(TimerStep);
end;

8:
begin
Timer.interval:=600;
DoTheSkill(1990, 1); //Beschleunigter Untergang I
Inc(TimerStep);
end;

9:
begin
Timer.interval:=200;
DoTheSkill(1984, 1); //Sinnesverstärkung I (Buff)
Inc(TimerStep);
end;

10:
begin
Timer.interval:=200;
DoTheSkill(572, 1); //Konzentriertes Ausweichen I (Buff)
Inc(TimerStep);
end;

11:
begin
Timer.interval:=600;
DoTheSkill(867, 9); //Siegelgravur IV
Inc(TimerStep);
end;

12:
begin
Timer.interval:=600;
DoTheSkill(875, 5); //Brüllen der Bestie IV
Inc(TimerStep);
end;

13:
begin
Timer.interval:=600;
DoTheSkill(860, 5); //Tritt der Bestie III
Inc(TimerStep);
end;

14:
begin
Timer.interval:=600;
DoTheSkill(2110, 4); //Schlag der Bestie V
Inc(TimerStep);
end;

15:
begin
Timer.interval:=600;
DoTheSkill(853, 8); //Himmelsklinge III
Timer.enabled:=false;
Inc(TimerStep);
TimerStep:=1;
end;
end;
end;

begin

StartSkill := 2280; //Aktivierungsskill!!!!!!
if (FromClient) and (ReadC(1) = $D0) and (ReadH(6) = StartSkill) then
begin
TargetID := ReadD(10);
Timer.enabled:=true;
end;
end.

Timer.interval:=600;
Put it in each Case of

Djagernaut
25.03.2012, 16:33
Помогите разобраться!!!!! :bow:

const
name = 'djagernaut';
var
Timer:TTimer;
TimerStep:integer;
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); //Вставляем в начальный пакет ID скила
WriteC(Level, 8); //Всталяем в начальный пакет уровень скила
WriteD(TargetID, 10); //Вставляем в начальный пакет ID таргета
SendToServerEx(name);
end;

procedure Init;
begin
TimerStep:=1; //Шаг
Timer:=TTimer.Create(nil); //выделяем память
Timer.OnTimer:=@OnTimer; //привязываем процедуру к событию
Timer.enabled:=false; //начальное положение выключен(false)
Timer.interval:=900; //интервал(в миллисекундах) как часто таймер срабатывает
end;


procedure Free;
begin
Timer.free;
end;

procedure OnTimer(Sender: TObject);
begin
case TimerStep of
1:
begin
DoTheSkill(776, 9); //
Inc(TimerStep);
end;

2:
begin
DoTheSkill(676, 9); //
Inc(TimerStep);
end;

3:
begin
DoTheSkill(706, 9); //
Inc(TimerStep);
end;

4:
begin
DoTheSkill(653, 9); //
Inc(TimerStep);
end;

5:
begin
DoTheSkill(699, 9); //
Inc(TimerStep);
end;

6:
begin
DoTheSkill(679, 9); //
Inc(TimerStep);
end;

7:
begin
DoTheSkill(662, 9); //
Inc(TimerStep);
end;

8:
begin
DoTheSkill(706, 9); //
Inc(TimerStep);
end;

9:
begin
DoTheSkill(779, 9); //
Inc(TimerStep);
end;

10:
begin
DoTheSkill(666, 9); //
Inc(TimerStep);
end;

11:
begin
DoTheSkill(788, 9); //
Timer.enabled:=false; //выключаем таймер
Inc(TimerStep);
TimerStep:=1; //Переходим на первый шаг
end;
end;
end;

begin

StartSkill := 577; //Осторожность І
if (FromClient) and (ReadC(1) = $D0) and (ReadH(12) = StartSkill) then
begin
TargetID := ReadD(10);
Timer.enabled:=true; //включаем таймер
end;
end

Что не так? :omg:

Этот работает на УРА:
[Ссылки могут видеть только зарегистрированные и активированные пользователи] но он палевный.

chilay07
25.03.2012, 16:58
.
StartSkill := 577; //Осторожность І
if (FromClient) and (ReadC(1) = $D0) and (ReadH(12) = StartSkill) then
begin
TargetID := ReadD(10);
t=353124"][Ссылки могут видеть только зарегистрированные и активированные пользователи][/URL] но он палевный.
Попробуй вместо этого вставить if (FromClient) and (ReadC(1) = $D0) and (ReadH(6) = StartSkill) then
мож поможет)

а и попробуй вот это убрать
11:
begin
DoTheSkill(788, 9); //
Timer.enabled:=false; //выключаем таймер
Inc(TimerStep);
TimerStep:=1; //Переходим на первый шаг
end;
end;
end;


а что такие за скилы у лука DoTheSkill(788, 9)?

Djagernaut
25.03.2012, 17:46
.
Попробуй вместо этого вставить if (FromClient) and (ReadC(1) = $D0) and (ReadH(6) = StartSkill) then
мож поможет)

а и попробуй вот это убрать



а что такие за скилы у лука DoTheSkill(788, 9)?
а что такие за скилы у лука DoTheSkill(788, 9)?

788=Ливень стрел IV [Ссылки могут видеть только зарегистрированные и активированные пользователи]

chilay07
26.03.2012, 16:32
а каким оброзом к примеру чтоб вместо этого ,
14:
begin
Timer.interval:=600;
DoTheSkill(2110, 4);
Inc(TimerStep);
end;

вставить прост пакет
D0 00 57 6F FF 37 09 02 00 53 54 00 00 3F 01 05 CC 00 00 чтоб отправлял(вместо ид скила отправлял нужный пакет)

happytorn
26.03.2012, 17:23
а каким оброзом к примеру чтоб вместо этого ,


вставить прост пакет
D0 00 57 6F FF 37 09 02 00 53 54 00 00 3F 01 05 CC 00 00 чтоб отправлял(вместо ид скила отправлял нужный пакет)

buf:=hstr('D0 00 57 6F FF 37 09 02 00 53 54 00 00 3F 01 05 CC 00 00');
SendToServer;

bert4ever
04.06.2012, 15:50
у меня не получается написать скрипт((( играю на Ньюшке
вот мой скрипт, подскажи что я делаю не так?
Код:
const
name = 'borrow'; //тут логин
var
Timer:TTimer;
TimerStep:integer;
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);
SendToServerEx(name);
end;


procedure Init;
begin
TimerStep:=1;
Timer:=TTimer.Create(nil);
Timer.OnTimer:=@OnTimer;
Timer.enabled:=false;
Timer.interval:=300;
end;

procedure Free;
begin
Timer.free;
end;

procedure OnTimer(Sender: TObject);

begin

case TimerStep of
1:
begin
DoTheSkill(1990,1);
Inc(TimerStep);
end;
2:
begin
DoTheSkill(839,1);
TimerStep:=1;
end;
end;
end;

begin

StartSkill := 1987;
if (FromClient) and (ReadC(6) = $CF) and (ReadH(4) = StartSkill) then

begin
TargetID := ReadD(8);
Timer.enabled:=true;
end;

end.


и так вот первая ошибка которая в глаза кинулась

у тебя строчка:
if (FromClient) and (ReadC(1) = $D0) and (ReadH(6) = StartSkill) then


а должно быть:
if (FromClient) and (ReadC(1) = $D0) and (ReadH(6) = StartSkill) then

Djagernaut
08.06.2012, 17:51
Happytorn, подскажи плиз в 3.0 с этим как бороться:

buf := HStr('D0 00 57 6F FF CC CC DD 00 60 CA 00 00 00 00 79 8D 00 00'); //Начальный пакет на скил
WriteH(SkillID, 6); //Вставляем в начальный пакет ID скила
WriteC(Level, 8); //Всталяем в начальный пакет уровень скила
WriteD(TargetID, 10); //Вставляем в начальный пакет ID таргета

:bow::bow::bow:

happytorn
08.06.2012, 21:59
Happytorn, подскажи плиз в 3.0 с этим как бороться
Не совсем понятно в чем проблема. Хотя бы отлови и покажи пару пакетов, использования скилов.

Djagernaut
08.06.2012, 23:04
Не совсем понятно в чем проблема. Хотя бы отлови и покажи пару пакетов, использования скилов.

D0 00 57 6F FF CC CC DD 00 60 CA 00 00 00 00 79 8D 00 00 -- 2.7

3.0:

21 B3 34 F9 FF B5 02 01 CE B3 59 E9 00 00 00 79 43 B3 59 --- без таргета
95 93 34 F9 FF B5 02 01 42 FE 10 FC 00 00 00 79 CF 93 59 --- таргет на себя
31 93 34 F9 FF B5 02 01 DE 96 AC E9 00 00 00 79 53 93 59 --- таргет на цель

x-miskalin-x
15.07.2012, 22:39
Подскажите что означает 14 и 15 байт в Пакете Скила.??
Почему-то клиент посылает не верный пакет на сервер и именно в этих двух байтах проблема... не могу понять из-за чего...
Скил.пак родной :(

===
И из клиента когда формируется пакет на отправку на сервер - Данные берутся из скил.пака? (ну не считая таргета...) или ещё откуда-то...?

fanFermara
23.09.2012, 13:47
Подскажите как должен выглядеть пакет на скил или на юз скила на 3.0 и как его выловить?

Добавлено через 23 минуты
//Script by fanFermara
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); //Вставляем в начальный пакет ID скила
WriteC(Level, 8); //Всталяем в начальный пакет уровень скила
WriteD(TargetID, 10); //Вставляем в начальный пакет ID таргета
SendToServer;
end;
begin

StartSkill := 693; //Ясновидение I
if (FromClient) and (ReadC(1) = $D0) and (ReadH(6) = StartSkill) then

begin
TargetID := ReadD(10);
DoTheSkill(777, 1); //Осторожность I
DoTheSkill(776, 1); //Орлиный глаз I
DoTheSkill(786, 1); //Усиление I
DoTheSkill(646, 1); //Тигриный глаз I
DoTheSkill(684, 1); //Яростный взгляд I
end;

end.

Вот мой скрипт, скажите пожалуйста как мне сделать его под 3.0 подправьте знающие люди!

just4omp
17.10.2012, 04:41
Здравствуйте, что то не могу понять как сделать скрипт на серию.
Сделайте пожалуйста скрипт на вот такие серии:
1) [Ссылки могут видеть только зарегистрированные и активированные пользователи]
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

2)[Ссылки могут видеть только зарегистрированные и активированные пользователи]
[Ссылки могут видеть только зарегистрированные и активированные пользователи]
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

Заранее благодарен, спасибо пока что еще не смогу сказать.

vitalyafox1
17.10.2012, 11:50
как найти на 3.0 ти етого пакета.?
buf := HStr('D0 00 57 6F FF CC CC DD 00 60 CA 00 00 00 00 79 8D 00 00'); //Начальный пакет на скил

Xsadan
23.01.2013, 19:49
Кто подскажет нубу куда эти скрипты вставлять((

Donthappy
28.02.2013, 11:26
может кто-нибудь скинуть скрипт на задержку

happytorn
04.03.2013, 21:14
Обновил первый пост.Добавил для 3.0

Nathan45
05.03.2013, 06:29
на сбор ресурсов для 3.0 напишите скрипт пожалуйста

serega402
25.03.2013, 01:09
Может кто расскажет как написать скрипт на ноаним? а именно пример скрипта и какие пакеты надо отловить с сервера. + желательно что бы изменение скорости анимации можно было менять в скрипте. Патч 3.7

Stinson
10.10.2013, 20:07
Напишите пожалуйста скрипт на авто атаку для 4.0.

4omp
18.10.2013, 02:16
расскажите пожалуйста за что отвечают последние 6 цифр?
E7 00 65 18 FF 4F 0B 03 00 0B A3 00 80 2D 02 05 75 00 00
пакет из 4.0, скилл Spiral Arrow IV ([Ссылки могут видеть только зарегистрированные и активированные пользователи])

xwarez
27.11.2013, 03:09
помогите плиз скажите что не так написал var
TargetID:integer;
StartSkill:word;

procedure DoTheSkill(SkillID:word; Level:byte);
begin
buf := HStr('EF 00 6D 10 FF 34 02 09 00 08 A4 00 00 00 00 00 00 00 00');
WriteH(SkillID, 6);
WriteC(Level, 8);
WriteD(TargetID, 10);
SendToServer;
end;

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

DoTheSkill(674, 1);
DoTheSkill(704, 1);
DoTheSkill(652, 1);
DoTheSkill(2273, 1);
end;

Добавлено через 20 минут
забыл сказать для 4 3 вот пакет который поймал (аркан-1) 37 00 46 C8 FF 4E CD 02 00 23 21 00 00 00 A0 40 92 07 92 07 00
прозьба сделайте шаблон для 4.0+
заранее спасибо)

xwarez
28.11.2013, 00:31
happytorn, уважаемый большая просьба сделайте шаблон для 4.0+ думаю не я один хотел бы) заранее спасибо

happytorn
28.11.2013, 14:45
расскажите пожалуйста за что отвечают последние 6 цифр?
E7 00 65 18 FF 4F 0B 03 00 0B A3 00 80 2D 02 05 75 00 00
пакет из 4.0, скилл Spiral Arrow IV ([Ссылки могут видеть только зарегистрированные и активированные пользователи])
Счетчик ударов насколько я помню.
happytorn, уважаемый большая просьба сделайте шаблон для 4.0+ думаю не я один хотел бы) заранее спасибо
Добавил в шапку темы шаблоны для 4.0 и 4.3

pepper31
28.11.2013, 16:14
простите если что,я нуб полный в скриптинге.
вот сделал все по инструкции для 4.0 заменил ид из базы [Ссылки могут видеть только зарегистрированные и активированные пользователи]
все вроде правильно я хз(
var

TargetID:integer;
StartSkill:word;

procedure DoTheSkill(SkillID:word; Level:byte);
begin
buf := HStr('E7 00 65 18 FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00');
WriteH(SkillID, 6);
WriteC(Level, 8);
WriteD(TargetID, 10);
SendToServer;
end;
begin

StartSkill := 9236;
if (FromClient) and (ReadC(1) = $E7) and (ReadH(6) = StartSkill) then

begin
TargetID := ReadD(10);
DoTheSkill(9256, 6);
DoTheSkill(9214, 4);
DoTheSkill(9165, 7);
end;

end.
ничего не происходит при нажатии на скилл активатор,галочку поставил,пакеты идут.

happytorn
28.11.2013, 18:43
простите если что,я нуб полный в скриптинге.
вот сделал все по инструкции для 4.0 заменил ид из базы [Ссылки могут видеть только зарегистрированные и активированные пользователи]
все вроде правильно я хз(

ничего не происходит при нажатии на скилл активатор,галочку поставил,пакеты идут.

Попробуйте шаблон для 4.3. Если не сработает, значит фикс на вашем сервере.

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

Добавлено через 4 минуты
happytorn, можеш сделать скрипт на 4.3 чтоб анимацию убрать?

bronel
20.12.2013, 08:58
Подскажите пожалуйста не могу сделать серию где я ошибся. Клиент 4.3 сервер EU ( Вот пакет на первый скил E4 00 65 1B FF E3 04 09 00 34 97 00 80 23 02 F9 AB 00 00 но я прочитал в посте в начале сказали не трогать эту строку.Поставил этот пакет теперь вообще не даёт скилл )
var

TargetID:integer;
StartSkill:word;

procedure DoTheSkill(SkillID:word; Level:byte); //Формируем пакет нового скила
begin
buf := HStr('E4 00 65 1B FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00'); //Начальный пакет на скил
WriteH(SkillID, 1251); //Вставляем в начальный пакет ID скила
WriteC(Level, 9); //Всталяем в начальный пакет уровень скила
WriteD(TargetID, 10); //Вставляем в начальный пакет ID таргета
SendToServer;
end;
begin

StartSkill := 1251; //Удар метеора III
if (FromClient) and (ReadC(1) = $E4) and (ReadH(6) = StartSkill) then

begin
TargetID := ReadD(10);
DoTheSkill(1251, 9); //Удар метеора III
DoTheSkill(1248, 9); //Раскаленный удар III
DoTheSkill(1257, 9); //Взрывной удар II
end;

end.

happytorn
20.12.2013, 13:49
Подскажите пожалуйста не могу сделать серию где я ошибся. Клиент 4.3 сервер EU ( Вот пакет на первый скил E4 00 65 1B FF E3 04 09 00 34 97 00 80 23 02 F9 AB 00 00 но я прочитал в посте в начале сказали не трогать эту строку.Поставил этот пакет теперь вообще не даёт скилл )
var

TargetID:integer;
StartSkill:word;

procedure DoTheSkill(SkillID:word; Level:byte); //Формируем пакет нового скила
begin
buf := HStr('E4 00 65 1B FF 00 00 00 00 00 00 00 00 00 00 00 00 00 00'); //Начальный пакет на скил
WriteH(SkillID, 1251); //Вставляем в начальный пакет ID скила
WriteC(Level, 9); //Всталяем в начальный пакет уровень скила
WriteD(TargetID, 10); //Вставляем в начальный пакет ID таргета
SendToServer;
end;
begin

StartSkill := 1251; //Удар метеора III
if (FromClient) and (ReadC(1) = $E4) and (ReadH(6) = StartSkill) then

begin
TargetID := ReadD(10);
DoTheSkill(1251, 9); //Удар метеора III
DoTheSkill(1248, 9); //Раскаленный удар III
DoTheSkill(1257, 9); //Взрывной удар II
end;

end.
Это не надо было трогать, а оставить как было
WriteH(SkillID, 6);
WriteC(Level, 8);
WriteD(TargetID, 10);

bronel
20.12.2013, 14:57
Это не надо было трогать, а оставить как было
WriteH(SkillID, 6);
WriteC(Level, 8);
WriteD(TargetID, 10);


Не получилось сделал всё как вы написали .
И ещё один вопрос у меня лп2пак не работает с reducethelag программой которая понижает пинг , когда её вырубаю пакетник работает , а без этой проги у меня пинг очень больше , а вписал туда как бот прогу не помогло ( что делать ?

happytorn
20.12.2013, 15:20
Не получилось сделал всё как вы написали .
И ещё один вопрос у меня лп2пак не работает с reducethelag программой которая понижает пинг , когда её вырубаю пакетник работает , а без этой проги у меня пинг очень больше , а вписал туда как бот прогу не помогло ( что делать ?

Может фикс? Проверьте отправив несколько пакетов подряд вручную, предварительно отловив их.
По поводу проги. Попробуйте в настройки пакетхака ее экзешник добавить и перехватывать с нее трафик.

shimipwnz
07.05.2016, 01:34
А как узнать начальный пакет на скилл?

И вообще как можно накатать автоатаку на версию 4.7.5?

RemoteAccess
08.05.2016, 03:50
[FONT="Verdana"]2) [SIZE="3"]Как сделать задержку между пакетами чтобы не палиться?
Пример скрипта

В строке Timer.interval:=900; меняем по желанию 900 на любое нужное вам время задержки.
Время задержки между скилами будет одинаковое.
[/MORE]

На coderx.ru был такой вариант рандомного таймера:

Timer.interval := 900+round(random()*1000); // каждый раз у нас будет рандомный промежуток времени от одной до двух секунд.
// нужно для "очеловечивания" нашего скрипта, чтобы не спалили злые админы :)
// random()*1000 - случайное число от 0 до 1000
// round(random()*1000) - округление того случайного числа до ближайшего целого.
// например рандом выбрал 352,2456575474 - нахрена нам эти знаки после запятой? вот и округляем.