PDA

Просмотр полной версии : Рабочие Скрипты: Пишу скрипты сам ...


f1qwer
24.12.2011, 14:55
var

SpeedTable1:array[1..10] of integer;
cSpeed:integer;
rSpeed:single;
vx1:variant;

DangePacket:array[1..10] of string;
//DangePacket1:string;
//DangePacket2:string;

CharID:array[1..4] of integer;
TargetID:integer;

{
$413F851F - 12.0(9.0+3.0)
$40C00000 - 6.0
$3FC00000 - 1.5
$40EA3D71 - 7.3 (6.0+1.3) ($2A3D71)

}

procedure Init; //Вызывается при включении скрипта
begin
SpeedTable1[1]:=$413F851F;
SpeedTable1[2]:=$41C00000;
SpeedTable1[3]:=$42C00000;
SpeedTable1[4]:=$42C00000;

cSpeed:=SpeedTable1[1];


rSpeed:=11.7;
vx1:=rSpeed;
//cSpeed:=vx1;

//sendmsg(Format('%x',[WriteSi(11.7)]));

end;

procedure Free; //Вызывается при выключении скрипта
begin

end;

var
msgName:string;

procedure PHX_Message(msg1:string);

begin
buf:=HStr('17 54 D4 07 00 00 00 00 00 ');
msgName:='[PHX]';
WriteS(msgName);
WriteS(msg1);
SendToClient;
end;


procedure Resurect;
begin
pck:='';
buf:=HStr('6B 57 08 03 ');
SendToServer;
end;


procedure SetSpeed1;
begin
pck:='';
PHX_Message('Use Speed 1');
cSpeed:=SpeedTable1[1];
end;

procedure SetSpeed2;
begin
pck:='';
PHX_Message('Use Speed 2');
cSpeed:=SpeedTable1[2];
end;

procedure SetSpeed3;
begin
pck:='';
PHX_Message('Use Speed 3');
cSpeed:=SpeedTable1[3];
end;

procedure InitDange(d1:integer);
begin
DangePacket[d1]:='';
pck:='';
PHX_Message(Format('Обнулил Данж %d',[d1]));
end;


procedure TP_To_Dange(d1:integer);
begin
buf:=DangePacket[d1];
pck:='';
SendToServer;
PHX_Message(Format('Телепорт в Данж %d',[d1]));
end;



procedure OpenAuk1;
begin
pck:='';
buf:=HStr('9C 57 5B 00 00 00 00 0D 00 01 00 0A 00 00 00 00 00 00 00 ');
WriteD(TargetID,4);
SendToServer;

end;

procedure OpenWrh1;
begin
pck:='';
buf:=HStr('9C 57 5B 00 00 00 00 14 00 01 00 0A 00 00 00 00 00 00 00 ');
WriteD(TargetID,4);
SendToServer;

end;

procedure TestTP1;
begin
pck:='';
buf:=HStr('9E 57 5D B3 D2 C0 44 1D 1A C2 44 06 0F 98 43 0C 00 ');
SendToServer;
buf:=HStr('67 57 04 ');
SendToServer;

end;

procedure StealLoot;
var
i:integer;
begin
pck:='';

for i:=1 to 30 do
begin
buf:=Hstr('39 57 F6 ');
writeD(TargetID);
writeC(i);
SendToServer;
end;



end;




var
x1,y1,z1:integer;
speed_triger1:boolean;
sp1:single;



procedure TpToSave1;
begin
pck:='';
buf:=HStr('9E 57 5D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ');
WriteD(X1,4);
WriteD(Y1,8);
WriteD(Z1,12);
SendToServer;
buf:=HStr('67 57 04 ');
SendToServer;


end;



begin

// buf:=Hstr('42 54 E1 BA A0 0B 00 0B 02 00 00 00 40 41 ');
// buf:=Hstr('42 54 E1 BA A0 0B 00 0B 02 00 00 00 40 42 ');
// SendToClient;

if FromServer and (ReadC(1)=$42) and (speed_triger1) then
begin
buf:=pck;
// sp1:=(readd(11));
// PHX_Message(FloatToStr(sp1));
pck:='';
WriteD(cSpeed,11);
SendToClient;

end;

if FromClient and (ReadD(1)=$1A6657C9) then
begin
speed_triger1:=not speed_triger1;
pck:='';
buf:=HStr('AC 57 4B 79 63 01 00 58 02 00 00 07 00 00 00 ');
SendToServer;
if speed_triger1 then PHX_Message('Set Fast Speed') else PHX_Message('Set Normal Speed');

end;






if FromServer and (ReadC(1)=$56) then
begin
x1:=ReadD(16);
y1:=ReadD(20);
z1:=ReadD(24);

//sendMSG(Format('sdfsdfsd %d',[x1]));
buf:=HStr('17 54 D4 08 00 00 00 00 00 5B 00 50 00 48 00 58 00 5D 00 00 00 ');
WriteS(Format('Save Coordinates [%d, %d, %d]',[x1,y1,z1]));
SendToClient;

end;

if FromClient and (ReadC(1)=$C9) and (ReadH(4)=533) then
begin
pck:='';
buf:=HStr('9E 57 5D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ');
WriteD(X1,4);
WriteD(Y1,8);
WriteD(Z1,12);
SendToServer;
buf:=HStr('67 57 04 ');
SendToServer;
end;

//Видеть инвиз 2
if FromServer and (ReadC(1)=$63) then
begin
buf:=pck;
pck:='';
WriteC(2,9);
SendToClient;

end;

if FromClient and (ReadC(1)=$9A{Use Target}) then
begin
if DangePacket[1]='' then
begin
DangePacket[1]:=pck;
PHX_Message(Format('Set Dange 1 %x',[ReadD(4)]));
end;
if DangePacket[2]='' then
begin
DangePacket[2]:=pck;
PHX_Message(Format('Set Dange 2 %x',[ReadD(4)]));
end;

end;

if FromClient and (ReadC(1)=$B5{select}) then
begin
TargetID:=ReadD(4);
if DangePacket[1]='' then
begin
buf:=HStr('9A 57 59 ');
WriteD(TargetID);
DangePacket[1]:=buf;
PHX_Message(Format('Set Dange 1 %x',[TargetID]));
end;
if DangePacket[2]='' then
begin
buf:=HStr('9A 57 59 ');
WriteD(TargetID);
DangePacket[2]:=buf;
PHX_Message(Format('Set Dange 2 %x',[TargetID]));
end;

end;




if FromClient and (ReadC(1)=$66) then
CharID[1]:=ReadD(4);


if FromClient and (ReadC(1)=$B5) then TargetID:=ReadD(4);


if FromClient and (ReadC(1)=$B9) then
begin
if (ReadS(5)='.') then Resurect;
if (ReadS(5)='.spd1') then SetSpeed1;
if (ReadS(5)='.spd2') then SetSpeed2;
if (ReadS(5)='.spd3') then SetSpeed3;

if (ReadS(5)='.initD1') then InitDange(1);
if (ReadS(5)='.initD2') then InitDange(2);

if (ReadS(5)='.tptoD1') then TP_To_Dange(1);
if (ReadS(5)='.tptoD2') then TP_To_Dange(2);
if (ReadS(5)='.openAuk') then OpenAuk1;
if (ReadS(5)='.openWrh') then OpenWrh1;
if (ReadS(5)='.tpToP1') then TestTP1;
if (ReadS(5)='.steal') then StealLoot;
if (ReadS(5)='.tpToSave1') then TpToSave1;


end;




end.

Скил пак на инвиз скорость бега 12

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

DoTheSkill(2126, 5);
Delay(500);
DoTheSkill(1987, 1);
Delay(500);
DoTheSkill(1990, 1);
end;
end.

Скил пак на сина Засада Атака ядом Клинок обморока С паузами 0,5 сек


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

DoTheSkill(2115, 2);
Delay(500);
DoTheSkill(2280, 2);
Delay(500);
DoTheSkill(853, 3);
end;
end.

Скил пак 2 на сина Кровоточащий порез Клык зверя воздушный плен

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

DoTheSkill(721, 4);
Delay(500);
DoTheSkill(737, 4);
Delay(500);
DoTheSkill(2074, 3);
end;
end.

Скил пак 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 := 736;
if (FromClient) and (ReadC(1) = $CF) and (ReadH(4) = StartSkill) then
begin
TargetID := ReadD(8);

DoTheSkill(736, 4);
Delay(500);
DoTheSkill(719, 3);
end;
end.
Скил пак для лучника 2 Внезаптный выстрел Взрывной выстрел


Позже сделаю на эти 2 класса бафы с паузами что бы не было паливно.
Скил паки рабочие сам тестил на каком сервере не буду говорить.
Факт в том что скил пак работает но нужно учитывать еще и вашь пинг. Если пинг слишком высокий то вам лутше убрать со скрипта паузы ..
Но тогда больше палива для вас ((.
Для отдельных классов приму заявку на скилпак только сразу оговариваю прописывайте мне серию которую вы хотели бы видеть на своем персонаже ..
Кому помог ловлю спасибо .../bonk

Yukikaze
24.12.2011, 15:07
Что бы не парить мозг автору, объясню пару моментов:

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 := 2238; //ID скилла при котором начнется макрос
if (FromClient) and (ReadC(1) = $CF) and (ReadH(4) = StartSkill) then
begin
TargetID := ReadD(8);

DoTheSkill(2238, 4); //первое значение ID выполняемого скила, второе значение его уровень
Delay(500); //Задержка в миллисекундах
DoTheSkill(2233, 5); //первое значение ID выполняемого скила, второе значение его уровень

//Сюда можете добавить еще сколько угодно скиллов в формате DoTheSkill(<ID скила>,<уровень скила>);
end;
end.

ЗЫ Нафига еще одна такая тема, мне вообще не понятно, но кто я такой что бы судить

ioann
24.12.2011, 15:09
автор напишы что рабоает только до 2.5 версии !

f1qwer
24.12.2011, 15:50
автор напишы что рабоает только до 2.5 версии !


Эти скилпаки работаю на версиях 2.6 2.7

Помог поставь спасибо ...

Добавлено через 2 минуты
Что бы не парить мозг автору, объясню пару моментов:

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 := 2238; //ID скилла при котором начнется макрос
if (FromClient) and (ReadC(1) = $CF) and (ReadH(4) = StartSkill) then
begin
TargetID := ReadD(8);

DoTheSkill(2238, 4); //первое значение ID выполняемого скила, второе значение его уровень
Delay(500); //Задержка в миллисекундах
DoTheSkill(2233, 5); //первое значение ID выполняемого скила, второе значение его уровень

//Сюда можете добавить еще сколько угодно скиллов в формате DoTheSkill(<ID скила>,<уровень скила>);
end;
end.

ЗЫ Нафига еще одна такая тема, мне вообще не понятно, но кто я такой что бы судить




Не все люди которые только начинают играть понимают такие вот темы им проще взять срисовать и поставь себе готовый скил пак для того и нужна такая тема..

Кому помог поставь спасибку ...

Yukikaze
24.12.2011, 16:10
и как ты юзаешь их на 2.7 не расскажешь ? тут тебе 100 спс на ставят если раскроешь секрет ... на 2.7 пх не корректно работает , как ты там можешь юзать эти сприпты ?

всего то надо написать newxor.dll для расшифровки трафика 2.7, а этим пока никто не занимался, а если и занимался то в паблике этого нет

talala
24.12.2011, 16:24
всего то надо написать newxor.dll для расшифровки трафика 2.7, а этим пока никто не занимался, а если и занимался то в паблике этого нет
Обсуждается здесь ([Ссылки могут видеть только зарегистрированные и активированные пользователи]) и больше нигде. :flood:

happytorn
24.12.2011, 16:36
Сам лично проверял на 2 разных серверах скрипты работаю даже щас в скап знакомы отписал что все пашет на 2.7 если ты не пробывал не пиши ерунду...
На каких серверах тестилось можешь написать?

mars2107
24.12.2011, 18:29
Автор, скрипты для классов писать Тут ([Ссылки могут видеть только зарегистрированные и активированные пользователи]) тема, прежде чем корзину создавать, посмотри на полках.

Pocuk
25.12.2011, 14:08
ахахах афтар красавчег))
первый скрипт нагло стырен отсюда - [Ссылки могут видеть только зарегистрированные и активированные пользователи]
то как сделать все остальние скрипты я думаю все уже знают, а то что вы в них добавили ( Delay(500) ) сразу показивает что в скриптах вы ничерта не разбираетесь)) [Ссылки могут видеть только зарегистрированные и активированные пользователи]

idtoria007
12.01.2012, 10:40
можно написать скрипт на обнуления Отката ДАНЖА(данжей)?

Pocuk
12.01.2012, 16:08
можно написать скрипт на обнуления Отката ДАНЖА(данжей)?
сначала надо баг найти которым можно обнулить, а потом скрипт писать./kidding

f1qwer
25.01.2012, 11:20
Скрипт для глада активация серии Яростный удар


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

DoTheSkill(177, 5);
Delay(500);
DoTheSkill(180, 5);
Delay(500);
DoTheSkill(304, 4);
end;
end.



Скрипт для глада активация серии Вамперическая волна

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

DoTheSkill(2268, 2);
Delay(800);
DoTheSkill(2017, 3);
Delay(500);
DoTheSkill(297, 3);
end;
end.

ioann
25.01.2012, 11:40
Эти скилпаки работаю на версиях 2.6 2.7

Помог поставь спасибо ..

на 2.7 он не будет работать , да и на 2.6 тоже !
тк сменились пакеты на 2 байтные
форма будет такого типа D0 но не как не CF !!!
пс . это 101 повтор ! таких тем на форуме полного ....
есть даже гайд как их состовлять [Ссылки могут видеть только зарегистрированные и активированные пользователи]

и за что тебе спасибку ? ты мне лично нечем не помог !

haiivan
26.01.2012, 18:43
Интересно 1 скрипт только инвиз кросов и стрелков палит или админа может попалить?? хД

Радзюкевич
26.01.2012, 19:24
Сможешь прописать скрипт на закла,что то вроде бы атака элементаля земли "Волнение"?

f1qwer
01.02.2012, 09:50
на 2.7 он не будет работать , да и на 2.6 тоже !
тк сменились пакеты на 2 байтные
форма будет такого типа D0 но не как не CF !!!
пс . это 101 повтор ! таких тем на форуме полного ....
есть даже гайд как их состовлять [Ссылки могут видеть только зарегистрированные и активированные пользователи]

и за что тебе спасибку ? ты мне лично нечем не помог !

Почему я пишу версия 2.5 2.6 2.7 да все просто потому что ставят админы версию 2.7 а там только оболочка и на многих серваках где написанно что 2.7 скрипты работают так что не надо разубеждать людей ...

Добавлено через 3 минуты
Сможешь прописать скрипт на закла,что то вроде бы атака элементаля земли "Волнение"?

На счет скрипта для заклинателя. Такое не реально сделать так как айди мобов и персонажей будет разный ... Можно только сделать на скилы которые не имеют задерки по серии ...

Растаман
01.02.2012, 10:12
чет не найти не как айди скилов 3.0

и хотелось бы увидеть если есть возможность скрипт на дамаг сумоном 2.7-3.0

f1qwer
03.02.2012, 19:04
чет не найти не как айди скилов 3.0

и хотелось бы увидеть если есть возможность скрипт на дамаг сумоном 2.7-3.0
Пока над 2,7 3,0 работаю в скором времени сделю скрипты ждите ...

Растаман
03.02.2012, 19:27
спасибо , будем ждать

f1qwer
12.02.2012, 08:01
Выложу архив со скриптами готовыми на 2,7 для Ua не годиться пока..Чуток обясню, 3 скил не всегда выпадает на некоторых серверах где 1 ветка и не 100% шанс так-же и у отсальных скриптов которые будут добовляться. Для Aion Ua скрипты будут сделаны отдельно на следующей неделе ... Новый л2пх выложу в понедельник с новыми надстройками под сервера 2,7 и 3,0.


Скрипты там же еще сх на 10,5 и полет на 16.

Скрипты написанны для Глада, сина, лука, хила. Позже будут для Волша закла и чанта. Для юа будут отдельно...



Для глада с нижней веткой ... Активация колющий удар ..

Работает только на серверах 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 := 2038;
if (FromClient) and (ReadC(1) = $D0) and (ReadH(6) = StartSkill) then
begin
TargetID := ReadD(10);

DoTheSkill(2038, 4);
Delay(500);
DoTheSkill(2031, 2);
Delay(500);
DoTheSkill(235, 1);
end;
end.

Сделал твою жизнь счастливие поставь спасибо :)

Не ФЛУДИ не то Админ скушает

x-miskalin-x
12.02.2012, 11:25
DoTheSkill(2238, 4); //первое значение ID выполняемого скила, второе значение его уровень
Delay(500); //Задержка в миллисекундах
DoTheSkill(2233, 5); //первое значение ID выполняемого скила, второе значение его уровень

Задержки не работают.
Не важно где вы их поставите в теле скрипта, вначале будут обработаны все задержки, и лишь потом все скилы уйдут за 1сек. на сервер.

Автор = ты сам проверял хотя бы это?

f1qwer
12.02.2012, 12:38
DoTheSkill(2238, 4); //первое значение ID выполняемого скила, второе значение его уровень
Delay(500); //Задержка в миллисекундах
DoTheSkill(2233, 5); //первое значение ID выполняемого скила, второе значение его уровень

Задержки не работают.
Не важно где вы их поставите в теле скрипта, вначале будут обработаны все задержки, и лишь потом все скилы уйдут за 1сек. на сервер.

Автор = ты сам проверял хотя бы это?

Зайди и проверь перед тем как флудить !!!

happytorn
12.02.2012, 12:45
Можешь смело убирать Delay() из своих скриптов ибо никакой задержки нет между пакетами.Если не замечаешь,то поставь побольше скилов в свой скрипт.

f1qwer
12.02.2012, 14:09
Можешь смело убирать Delay() из своих скриптов ибо никакой задержки нет между пакетами.Если не замечаешь,то поставь побольше скилов в свой скрипт.

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

happytorn
12.02.2012, 14:45
скачай и зайди поробуй , мне кажетьсмя ты будешь удивлен ...

Скачал,зашел,проверил именно твой скрипт.Юзаю скилл активатор.Идет пауза....затем вылетают все скилы за одну секунду.
Вот почитай [Ссылки могут видеть только зарегистрированные и активированные пользователи]
и [Ссылки могут видеть только зарегистрированные и активированные пользователи]

Furydose
12.02.2012, 15:30
Из официального описания:

procedure Delay(msec: Cardinal)
Делает задержку в скрипте. передаваемый параметр - милисекунды.
Стоит учесть что на время задержки для текущего соединения полностью блокируеться передача данных между клиентом и сервером.

f1qwer
12.02.2012, 16:33
Скачал,зашел,проверил именно твой скрипт.Юзаю скилл активатор.Идет пауза....затем вылетают все скилы за одну секунду.
Вот почитай [Ссылки могут видеть только зарегистрированные и активированные пользователи]
и [Ссылки могут видеть только зарегистрированные и активированные пользователи]

Ну либо у тебя инет (сори ) ***** либо хз я что у тебя не так .. у меня все норм пашет с паузами и вылетает так как надо ...

happytorn
12.02.2012, 17:34
Ну либо у тебя инет (сори ) ***** либо хз я что у тебя не так .. у меня все норм пашет с паузами и вылетает так как надо ...
Получается у тебя одного это работает/facepalm что весьма странно.

Растаман
15.02.2012, 09:40
happytorn, поставь больше задержку - увидишь что она работает

happytorn
15.02.2012, 12:36
happytorn, поставь больше задержку - увидишь что она работает
Когда тестил, я ставил пол секунды и секунду и две.Ну не суть,спишем это на специфику работы разных версий l2ph. Вы почитайте выше, что делает delay и сколько минусов из этого истекает.Уже давно все пришли к выводу, что правильнее будет использовать таймеры.Подробный способ с таймерами есть на форуме.

Levapishe
15.02.2012, 16:57
Согласен с happytorn, тоже пробовал Delay использовать в скриптах на скиллы - но он вызывает лишь общую задержку величина которой зависит от количества Delay и времени = то есть 1 общая задержка суммирующая все Delay.

dkolee1
16.02.2012, 14:13
у меня тут появилась одна мысль забавная....возможно ли сделать скрипт чтобы допустим при применении одного скилла *пример баф чанта благословение защиты* сам пакет D0 00 57 6F FF BB 03 01 00 00 00 00 00 00 00 F9 2F 00 00 и Id 955
он заменялся на баф мага стальной защитный барьер....ну и так же допустим отловить у мага этот пакет....вот)