PDA

Просмотр полной версии : Переделка скрипта СпидХаК для 2.5 в 2.7.


2256402
01.02.2012, 07:35
Очень удобный скрипт спидхака но проблема что он для серверов 2.1-2.5. Может кто переделать для 2.7 версиии

var
SpeedhackTimer:TTimer;
Speed:string;
StartSpeed:string;
PlayerID:integer;

procedure Init;
begin
SpeedhackTimer := TTimer.Create(nil);
SpeedhackTimer.OnTimer := @SpeedHackEvent;
SpeedhackTimer.Enabled := false;
SpeedhackTimer.Interval := 50;

Speed := '00 00 00 42';
StartSpeed := '00 00 C0 40';
PlayerID := $00022792; //id персонажа
end;

procedure Free;
begin
SpeedhackTimer.Free;
end;

procedure SpeedHackEvent(Sender: TObject);
begin
buf := HStr('42 65 D4');
WriteD(PlayerID);
buf := buf + HStr('23 01 00');
buf := buf + HStr(Speed);
WriteD(PlayerID);
SendToClientEx(ConnectName);
end;

begin
if FromClient and (ReadC(1)=$C9) and (ReadH(4)=$0C15) then // эмоция включ.
begin
if SpeedhackTimer.Enabled = true then
begin
SpeedhackTimer.Enabled := false;
buf := HStr('17 54 D4 19 00 00 00 00 00 00 00');
WriteS('SpeedHack ВЫКЛЮЧЕН!');
buf := buf + HStr('00 00');
SendToClient;

buf := HStr('42 65 D4');
WriteD(PlayerID);
buf := buf + HStr('23 01 00');
buf := buf + HStr(StartSpeed);
WriteD(PlayerID);
SendToClientEx(ConnectName);
end
else
begin
SpeedhackTimer.Enabled := true;
buf := HStr('17 54 D4 19 00 00 00 00 00 00 00');
WriteS('SpeedHack ВКЛЮЧЕН!');
buf := buf + HStr('00 00');
SendToClient;
end;
pck := '';
end;
if FromServer and (ReadC(1)=$42) and (ReadC(8)=$23) and (ReadD(4)=PlayerID) then
begin
pck := '';
end;
end

Getar
01.02.2012, 10:29
[Ссылки могут видеть только зарегистрированные и активированные пользователи] поиск...

happytorn
01.02.2012, 11:22
[Ссылки могут видеть только зарегистрированные и активированные пользователи] поиск...
Это два разных скрипта.
Насколько я помню скрипт из первого поста имел весомое преимущество.Скорость не сбрасывалась при прыжке.

strepsil
01.02.2012, 14:29
Это два разных скрипта.
Насколько я помню скрипт из первого поста имел весомое преимущество.Скорость не сбрасывалась при прыжке.

Совершенно точно, и там, по моему, куча ненужной чепухи добавлена:wtf:

510145
01.02.2012, 15:31
эх если бы кто нибудь запилил под2,7 эти скрипты я его закакал
бы спасибками

[Ссылки могут видеть только зарегистрированные и активированные пользователи]
begin
If FromClient and (pck=Hstr('C9 57 66 15 01 00 00 00 00 00')) // эмоция Смех
then
begin
buf:=HStr('D1 57 6E 64 06 01');
SendToServer;
pck:='';

buf:=HStr('D1 57 6E 95 06 01');
SendToServer;
pck:='';

end;

end.


[Ссылки могут видеть только зарегистрированные и активированные пользователи]
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.

vlad_as
01.02.2012, 16:09
пилить указанное ... хм, нет времени

Предложу свой вариант скрипта для v2.7, без излишеств. Не копипаст.

Вкл/выкл "скоростного режима" бега и полета через "." + прыжок
т.е. "." активация/деактивация. Прыжок чтоб режим включился на клиенте.

Если "скоростной режим" сбросился при ТП или входе в данж или еще как - сделайте прыжок, например.

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

Вопросы по скрипту прошу не задавать, т.к. редко на форуме появляюсь.
Пояснения по значению скорости в коментах скрипта.
Скрипт 100% рабочий на версии 2.7


var
PlayerID, SpeedID, SpeedFlyID: integer;
SX: boolean;

procedure Init;
begin
SpeedID := 1093140480; // бег скорость 10.5
SpeedFlyID := 1098907648; // полет скорость 16
SX := False;
end;

begin

if FromClient then
case pck[1] of

#$45: // ID перса типа 45 01 57 E2 FE XX XX XX XX 00 00 00 00 00 00
begin
PlayerId := readD(6);
end;

#$C2: // проверяет эмоцию ходьба/бег (вкл/выкл)
begin
if pck[6]=#$1A then
begin
pck:='';
if not SX then SX := True else SX := False;
end;
end;
end;

if SX and FromServer then
case pck[1] of

#$45:
begin
if readD(6) = PlayerId then
begin
Buf := pck;
if (readC(11) = 3) or (readC(11) = 35) then WriteD(SpeedFlyID,13) else WriteD(SpeedID,13);
SendToClient;
pck:='';
end;
end;
end;
end.

2256402
01.02.2012, 17:57
пилить указанное ... хм, нет времени

Предложу свой вариант скрипта для v2.7, без излишеств. Не копипаст.

Вкл/выкл "скоростного режима" бега и полета через "." + прыжок
т.е. "." активация/деактивация. Прыжок чтоб режим включился на клиенте.

Если "скоростной режим" сбросился при ТП или входе в данж или еще как - сделайте прыжок, например.

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

Вопросы по скрипту прошу не задавать, т.к. редко на форуме появляюсь.
Пояснения по значению скорости в коментах скрипта.
Скрипт 100% рабочий на версии 2.7


var
PlayerID, SpeedID, SpeedFlyID: integer;
SX: boolean;

procedure Init;
begin
SpeedID := 1093140480; // бег скорость 10.5
SpeedFlyID := 1098907648; // полет скорость 16
SX := False;
end;

begin

if FromClient then
case pck[1] of

#$45: // ID перса типа 45 01 57 E2 FE XX XX XX XX 00 00 00 00 00 00
begin
PlayerId := readD(6);
end;

#$C2: // проверяет эмоцию ходьба/бег (вкл/выкл)
begin
if pck[6]=#$1A then
begin
pck:='';
if not SX then SX := True else SX := False;
end;
end;
end;

if SX and FromServer then
case pck[1] of

#$45:
begin
if readD(6) = PlayerId then
begin
Buf := pck;
if (readC(11) = 3) or (readC(11) = 35) then WriteD(SpeedFlyID,13) else WriteD(SpeedID,13);
SendToClient;
pck:='';
end;
end;
end;
end.
как изменить скорость с 10.5 на более высокую?

Добавлено через 21 минуту
разобрался. спасиб автору жмем.

vlad_as
01.02.2012, 18:38
ага, предустановленные значения в скрипте:
SpeedID := 1093140480; // бег скорость 10.5

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

Как получить нужное значение SpeedID. Использовать преобразование:
меню ph2 "дополнительно/преобразования"

1. в левой части указываем нужную скорость + стрелку преобразование вправо. (тип преобразования Single)
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

2. меняем тип преобразования на DWord + стрелку преобразования влево
[Ссылки могут видеть только зарегистрированные и активированные пользователи]

слева получаем нужное значение SpeedID или SpeedFlyID.

D*j*o***
08.02.2012, 11:19
Код:
var
PlayerID, SpeedID, SpeedFlyID: integer;
SX: boolean;

procedure Init;
begin
SpeedID := 1093140480; // бег скорость 10.5
SpeedFlyID := 1098907648; // полет скорость 16
SX := False;
end;

begin

if FromClient then
case pck[1] of

#$45: // ID перса типа 45 01 57 E2 FE XX XX XX XX 00 00 00 00 00 00
begin
PlayerId := readD(6);
end;

#$C2: // проверяет эмоцию ходьба/бег (вкл/выкл)
begin
if pck[6]=#$1A then
begin
pck:='';
if not SX then SX := True else SX := False;
end;
end;
end;

if SX and FromServer then
case pck[1] of

#$45:
begin
if readD(6) = PlayerId then
begin
Buf := pck;
if (readC(11) = 3) or (readC(11) = 35) then WriteD(SpeedFlyID,13) else WriteD(SpeedID,13);
SendToClient;
pck:='';
end;
end;
end;
end.


а можно где припесать К этому скрипту
.spd1 2 3

vlad_as
08.02.2012, 16:36
а можно где припесать К этому скрипту
.spd1 2 3

В этой версии такого функционала нет.
Нужно "допиливать".

jasons
07.03.2012, 15:59
пилить указанное ... хм, нет времени

Предложу свой вариант скрипта для v2.7, без излишеств. Не копипаст.

Вкл/выкл "скоростного режима" бега и полета через "." + прыжок
т.е. "." активация/деактивация. Прыжок чтоб режим включился на клиенте.

Если "скоростной режим" сбросился при ТП или входе в данж или еще как - сделайте прыжок, например.

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

Вопросы по скрипту прошу не задавать, т.к. редко на форуме появляюсь.
Пояснения по значению скорости в коментах скрипта.
Скрипт 100% рабочий на версии 2.7


var
PlayerID, SpeedID, SpeedFlyID: integer;
SX: boolean;

procedure Init;
begin
SpeedID := 1093140480; // бег скорость 10.5
SpeedFlyID := 1098907648; // полет скорость 16
SX := False;
end;

begin

if FromClient then
case pck[1] of

#$45: // ID перса типа 45 01 57 E2 FE XX XX XX XX 00 00 00 00 00 00
begin
PlayerId := readD(6);
end;

#$C2: // проверяет эмоцию ходьба/бег (вкл/выкл)
begin
if pck[6]=#$1A then
begin
pck:='';
if not SX then SX := True else SX := False;
end;
end;
end;

if SX and FromServer then
case pck[1] of

#$45:
begin
if readD(6) = PlayerId then
begin
Buf := pck;
if (readC(11) = 3) or (readC(11) = 35) then WriteD(SpeedFlyID,13) else WriteD(SpeedID,13);
SendToClient;
pck:='';
end;
end;
end;
end.

А можно отсуда убрать спид хак на скорость полёта ???
Если кто может плиз уберити и скинет суда

vlad_as
08.03.2012, 15:27
А можно отсуда убрать спид хак на скорость полёта ???
Если кто может плиз уберити и скинет суда

строку:
if (readC(11) = 3) or (readC(11) = 35) then WriteD(SpeedFlyID,13) else WriteD(SpeedID,13);

заменить на строчку:
if (readC(11) <> 3) and (readC(11) <> 35) then WriteD(SpeedID,13);

AngelofDead666
08.03.2012, 15:58
Чем эта тема отличается от 100 других? поиск рулит!