Я подумал может поделимся своими секретами по написанию скриптов?
В теме я разберу два скрипта:
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');-это 2.5.пакет.
если вам нужен скрипт под 2.7.клиент то пакет будет такого типа
buf := HStr('D0 00 57 6F FF CC CC DD 00 60 CA 00 00 00 00 79 8D 00 00');
begin
StartSkill := 177;-Стартовый скил (Скил который приводит ваш скрипт в действие)
if (FromClient) and (ReadC(1) = $CF) and (ReadH(4) = StartSkill) then
для 2.7
if (FromClient) and (ReadC(1) = $D0) and (ReadH(6) = StartSkill) then
begin
TargetID := ReadD(8);
для 2.7.
TargetID := ReadD(10);
DoTheSkill(400, 1);
DoTheSkill(388, 5);
DoTheSkill(321, 1);
DoTheSkill(177, 5);
DoTheSkill(180, 5);
DoTheSkill(304, 4);
DoTheSkill(2040, 5);
DoTheSkill(303, 4); - все выше написанные скилы которые идут после стартового скила вылетают одновременно со стартовым скилом.
Разберем эту строчку DoTheSkill(400, 1);
400-это ид скила (не все иды скилов трехзначные бывают и читырехзнычные)
1-это уровень скила (не забываем ставить запятую после того как указали ид скила (304, 4)
end;
end.
Думаю понятно.
2)Скрипт быстрое ТП по локе (многим будет полезен)
begin
If FromClient and (pck=Hstr('B9 57 76 00 2E 00 3A 04 20 00 42 04 3E 04 3D 04 35 04 3B 04 4E 04 00 00'));// - данная строчка B9 активирует вторую строчку C9 (в пакете B9 у меня прописана команда
".к тонелю",вы можете прописать свою и вставить ее в скрипт.
then
begin
buf:=HStr('C9 57 66 04 91 09 B5 44 49 D2 63 44 4A 2A 93 43 5C');// - данный пакет отвечает за координату вашего местонахождения (я нашел координату и вставил ее в скрипт)
SendToServer;
pck:='';
end;
end;
If FromClient and (pck=Hstr('B9 57 76 00 2E 00 38 04 3D 04 33 04 20 00 42 04 3E 04 3D 04 35 04 3B 04 4C 04 00 00')) // .инг тонель
then
begin
buf:=HStr('C9 57 66 04 7D 67 AA 44 4B 96 0F 45 3C 56 94 43 23 00 ');
SendToServer;
pck:='';
end;
If FromClient and (pck=Hstr('B9 57 76 00 2E 00 3A 04 20 00 40 04 3E 04 3C 04 31 04 43 04 00 00')) // .к ромбу
then
begin
buf:=HStr('C9 57 66 04 52 E4 3E 44 3C D3 F0 44 C7 EB A8 43 66 00');
SendToServer;
pck:='';
end;
end.
Если хотим в скрипте указать больше точек телепорта,просто копируем отрывок и делаем все заного.
То есть последовательность такая:
1)Пишите в чат фразу,ловите пакет на эту фразу и вставляете пакет в свой скрипт
2)Идем в то место где хотим запомнить свое местонахождение для того чтоб потом ТПхаться туда,после чего ловите пакет типа 9E вставляете его в посылку,удаляете первых три байта,прыгаете,ловите пакет типа C9,изменяете последний байт с 01 на 04 и вставляете его в первый пакет на место где удалили первых три байта,копируете,и вставляете в свой скрипт (на место где у меня C9)
3)Пишем в чат свою команду и он вас ТПхает на заданную вами координату.
Разобрал два скрипта по которым мне частенько пишут в скайп с просьбами чтоб сделал,теперь сами сможете делать.
Если у кого есть желание разобрать еще какие либо скрипты,пишем в эту тему.
________________
Помог жми спасибо! Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось aion programmer; 04.02.2012 в 23:31.
У тебя явная неразбериха тут и в той теме.Не указано на какую версию сервера идет разбор каждого из скриптов.Далее не понятно зачем ты приводишь пример пакета для 2.7, если остальная часть скрипта остается для 2.5. Например
Для 2.5 серверов
Так-то писал скрипт на 2.5.машинально написал этот отрывок и под 2.5. и под 2.7.
Ок,весь скрипт переделал для обеих версий.
Добавлено через 3 минуты
В той теме удалил пост так-как разбор теперь есть тут.
________________
Помог жми спасибо! Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Последний раз редактировалось aion programmer; 04.02.2012 в 23:39.
Причина: Добавлено сообщение
ыы) разбирал их сам, и считаю что каждый читер должен учиться разбираться в скриптах сам.
но начинающим мож и поможет, да и прост за старания спасибку заслужил!
________________ Ололо! Я из армии вернулсо!!!)) Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
В базе знаний аион ищи!
1)Открой страницу скила
2)посмотри на адрес этой странице
3)в конце адреса будут цифры это и есть айди скила=))
________________
Помог жми спасибо! Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
[Ссылки могут видеть только зарегистрированные пользователи. ]1527/-iv#skills
это айди да
Да
________________
Помог жми спасибо! Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
Итак господа, я понимаю конечно, что такого рода тема уже могла была иметь место на форуме, но всё же...
Скрипт, который можно редактироватьпод любой клас и ЛВЛ (!): на 3.0 не актуально уже!
Код:
const
name = 'имя аккаунта';
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(639, 1); //Благословенная стрела I
Inc(TimerStep);
end;
2:
begin
DoTheSkill(776, 1); //Орлиный глаз 1
Inc(TimerStep);
end;
3:
begin
DoTheSkill(577, 1); //Ритуал 1
Inc(TimerStep);
end;
4:
begin
DoTheSkill(777, 1); //Осторожность 1
Inc(TimerStep);
end;
5:
begin
DoTheSkill(2277, 1); //Поглощение магии I
Inc(TimerStep);
end;
6:
begin
DoTheSkill(672, 1); //Сковывающая стрела 1
Inc(TimerStep);
end;
7:
begin
DoTheSkill(2078, 1); //Разрывная стрела 3
Inc(TimerStep);
end;
8:
begin
DoTheSkill(650, 1); //Стрела кондора I
Inc(TimerStep);
end;
9:
begin
DoTheSkill(648, 1); //Стрела консиода I
Inc(TimerStep);
end;
10:
begin
DoTheSkill(723, 1); //Стрела молчания 5
Inc(TimerStep);
end;
11:
begin
DoTheSkill(722, 1); //Аркан 4
Inc(TimerStep);
end;
12:
begin
DoTheSkill(680, 1); //Внезапный выстрел 3
Inc(TimerStep);
end;
13:
begin
DoTheSkill(719, 1); //Взрывной выстрел 3
Inc(TimerStep);
end;
14:
begin
DoTheSkill(721, 1); //Выстрел 4
Inc(TimerStep);
end;
15:
begin
DoTheSkill(730, 1); //Жалящая стрела 2
Inc(TimerStep);
end;
16:
begin
DoTheSkill(691, 1); //Ядовитая стрела 3
Inc(TimerStep);
end;
17:
begin
DoTheSkill(737, 1); //Град стрел 4
Inc(TimerStep);
end;
18:
begin
DoTheSkill(2074, 1); //Спиральный выстрел 3
Inc(TimerStep);
end;
19:
begin
DoTheSkill(718, 1); //небесный огонь 2
Inc(TimerStep);
end;
20:
begin
DoTheSkill(718, 1); //небесный огонь 2
Inc(TimerStep);
end;
21:
begin
DoTheSkill(718, 1); //небесный огонь 2
Inc(TimerStep);
end;
22:
begin
DoTheSkill(1968, 1); //Снятие шока 1
Inc(TimerStep);
end;
23:
begin
DoTheSkill(618, 1); //Порез в отступлении 1
Inc(TimerStep);
end;
24:
begin
DoTheSkill(695, 1); //Усыпляющая стрела 1
Inc(TimerStep);
end;
25:
begin
DoTheSkill(2076, 1); //Стрела ветра 3
Inc(TimerStep);
end;
26:
begin
DoTheSkill(644, 1); //Стрела яростного ветра 1
Inc(TimerStep);
end;
27:
begin
DoTheSkill(645, 1); //Стрела ярости 1
Inc(TimerStep);
end;
28:
begin
DoTheSkill(578, 1); //Стремительный удар 5
Inc(TimerStep);
end;
29:
begin
DoTheSkill(580, 1); //Рассекающий удар 5
Inc(TimerStep);
end;
30:
begin
DoTheSkill(581, 1); //Контратака 5
Inc(TimerStep);
end;
31:
begin
DoTheSkill(2276, 1); //Прицельный выстрел 4
Timer.enabled:=false; //выключаем таймер
TimerStep:=1; //Переходим на первый шаг
end;
end;
end;
begin
StartSkill := 693; //Ясновидение I
if (FromClient) and (ReadC(1) = $D0) and (ReadH(6) = StartSkill) then
begin
TargetID := ReadD(10);
Timer.enabled:=true; //включаем таймер
end;
end.
Данный скрипт для лука 50-51 лвл! Если вы хотите взять другой клас -- просто меняйте [Ссылки могут видеть только зарегистрированные пользователи. ] (и количество и последовательность) соответственно вашему классу и ЛВЛу
Скорость каста стоит по умолчанию 900 (9 мс).
Для сина и лука оптимально 350, для сорков и т.п. 800-2000.
Кто не хочет палиться -- удалите все скилы ближнего боя!
тестилось на a***.**.*a
Весёлого фана! Не забываем про спасибки
________________ Помог, тыкни Спасибо
Последний раз редактировалось Djagernaut; 06.06.2012 в 23:18.
Причина: не для 3.0
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). Затыкай меня спасибками Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
If FromClient and (pck=Hstr('B9 57 76 0A 2E 00 34 04 00 00'));
Должно быть как
Код:
If FromClient and (pck=Hstr('B9 57 76 0A 2E 00 34 04 00 00')) then
begin
end;
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). | Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). | Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). | Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). | Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). | Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). | Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). | Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). | Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). | Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий). | Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).