Показать сообщение отдельно
Старый 13.10.2007, 17:33   #3
Новичок
 
Регистрация: 13.10.2007
Сообщений: 14
Сказал Спасибо: 0
Имеет 0 спасибок в 0 сообщенях
StKolya
По умолчанию

Юзнул Bless the Body,получил пакет с такой хнёй
48 92 CA 20 48 92 CA 20 48 0D 08 00 00 01 00 00 00 00 00 00 00 00 00 00 00 42 CF 02 00 4F 4F 00 00 A0 F3 FF FF 00 00 00 00

что и как не пойму,обьясните,плиз :shock:

Добавлено спустя 2 минуты 5 секунд:
Re: Помогите,очень надо...
То что я отредактикровал у меня работает,выкладываю код так,потому как виснет всё нах если прикрепляю файл

//by vimin переделано by St.Kolya
//Скрипт для PP, чтобы бегал, лечил и бафал по команде от командира.

const //баффы
b1='2F 10 04 00 00 00 00 00 00 00'; // Shield
b2='2F 26 04 00 00 00 00 00 00 00'; // Berserker Spirit
b3='2F 3D 04 00 00 00 00 00 00 00'; // Acumen
b4='2F B4 04 00 00 00 00 00 00 00'; // Wind Walk
b5='2F 36 04 00 00 00 00 00 00 00'; // Concentration
b6='2F 15 04 00 00 00 00 00 00 00'; // Bless the Body
b7='2F 18 04 00 00 00 00 00 00 00'; // Bless the Soul
b8='2F 14 04 00 00 00 00 00 00 00'; // Regeneration

var
IDPartyMember, IDAssistTarget: String; //ИД командира и ИД его таргета и Собственный ИД
CoordBufX, CoordBufY, CoordBufZ :String; //координаты бота
NameBuffer, NameKomandos : String; // Имена
x: integer;
timer1: TTimer;

procedure OnTimer(Sender: TObject);
begin
case x of
1: begin
//выделяем командира, эмулируя щелчек мыши
buf:=hstr('04') + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr('00');
SendToServerEX(NameBuffer);

buf:=hstr(b1);
SendToServerEx(NameBuffer);
x:=x+1;
end;
2: begin
buf:=hstr(b2);
SendToServerEx(NameBuffer);
x:=x+1;
end;
3: begin
buf:=hstr(b3);
SendToServerEx(NameBuffer);
x:=x+1;
end;
4: begin
buf:=hstr(b4);
SendToServerEx(NameBuffer);
x:=x+1;
end;
5: begin
buf:=hstr(b5);
SendToServerEx(NameBuffer);
x:=x+1;
end;
6: begin
buf:=hstr(b6);
SendToServerEx(NameBuffer);
x:=x+1;
end;
7: begin
buf:=hstr(b7);
SendToServerEx(NameBuffer);
x:=x+1;
end;
8: begin
buf:=hstr(b8);
SendToServerEx(NameBuffer);
x:=0;
timer1.enabled:=false;
end;
end;
end;

procedure bRun;
begin
if (CoordBufX <> '') and (IDPartyMember <> '') then
begin
//выделяем командира, эмулируя щелчек мыши
buf:=hstr('04') + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr('00');
SendToServerEX(NameBuffer);
//бежим за командиром эмулируя повторный щелчек мыши по таргету
buf:=hstr('04') + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr('00');
SendToServerEX(NameBuffer);
end;
end;

procedure bHeal;
begin
if (CoordBufX <> '') and (IDPartyMember <> '') then
//if (IDPartyMember <> '') then
begin
//выделяем командира, эмулируя щелчек мыши
buf:=hstr('04') + IDPartyMember + CoordBufX + CoordBufY + CoordBufZ + hstr('00');
SendToServerEx(NameBuffer);

// хил
buf:=hstr('2F F7 03 00 00 00 00 00 00 00'); // Battle Heal

//отправляем пакет серваку
SendToServerEx(NameBuffer);
end;
end;

procedure Init; //Вызывается при включении скрипта
begin
NameBuffer:='HellProphet';
NameKomandos:='SpellPower';
timer1:=TTimer.Create(nil);
timer1.OnTimer:=@OnTimer;
timer1.enabled:=false;
timer1.interval:=2000;
x:=0;
end;

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

//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if pck='' then exit;

//если от сервака принят пакет с ИД и Координатами членов пати то
if FromServer and (pck[1]=#$a7) then
begin
//запоминаем ИД командира
IDPartyMember:=pck[6] + pck[7] + pck[8] + pck[9];
end;

//если принят пакет от клиента с кординатами бафера то
if FromClient and (ConnectName=NameBuffer) and (pck[1]=#$48) then
begin
//запоминаем координаты
CoordBufX:= pck[6] + pck[7] + pck[8] + pck[9];
CoordBufY:= pck[10] + pck[11] + pck[12] + pck[13];
CoordBufZ:= pck[14] + pck[15] + pck[16] + pck[17];
end;

//далее идут управляющие команды

//если КОМАНДИР пишет в любой чат цифру "1" (код "#$31 #$00" в юникоде (в юникоде под 1 символ используются 2 байта) я так понял) то
if FromClient and (ConnectName=NameKomandos)and (pck[1]=#$38) then
if (pck[2]=#$31) and (pck[3]=#$00) then
begin
//убиваем этот пакет, чтоб сервер его не получил
pck:='';
//Бафер БЕЖИТ за КОМАНДИРОМ
bRun;

//выйти из рабочей части скрипта чтобы другие услови не проверяли убитый пакет нулевой длинны
exit;
end;

// если КОМАНДИР пишет в любой чат цифру "2" (хил)
if FromClient and (ConnectName=NameKomandos)and (pck[1]=#$38) then
if (pck[2]=#$32) and (pck[3]=#$00) then
begin
//убиваем этот пакет, чтоб сервер его не получил
pck:='';
bHeal;
exit;
end;


// если КОМАНДИР пишет в любой чат цифру "4" (ребаф)
if FromClient and (ConnectName=NameKomandos)and (pck[1]=#$38) then
if (pck[2]=#$34) and (pck[3]=#$00) then
begin
//убиваем этот пакет, чтоб сервер его не получил
pck:='';

// бафы
timer1.enabled:=true;
x:=1;
exit;
end;

end.
StKolya вне форума   Ответить с цитированием