Показать сообщение отдельно
Старый 10.02.2008, 14:50   #229
Рыцарь
 
Аватар для Grinch
 
Регистрация: 29.02.2008
Сообщений: 928
Сказал Спасибо: 127
Имеет 130 спасибок в 93 сообщенях
Grinch пока неопределено
По умолчанию

народ как говориться стоять зорька :) я выложу скрипт целиуом, а вы попробуйте заставить его работать динамически считывая ид чара :) просто динамически считывается другой пакет $48 (ид мой)(иди кого бафаем или убиваем) (ну и т.д.)( время каста)(время отката), И что получается когда я вбиваю ИД константой всё работает когда считываю не работает причём считывается всё верно.
Код:
const
   PPbafer = 'НИК ТВОЕГО ПП';// ps если нет пп то юзаем чьи нибуть бафы но не меньше 5 
   buff =
   ['2F 3D 04 00 00 00 00 00 00 00 ',   //Acumen
    '2F 18 04 00 00 00 00 00 00 00 ',   //BtS
    '2F 15 04 00 00 00 00 00 00 00 ',   //BtB
    '2F 2C 04 00 00 00 00 00 00 00 ',   //Might
    '2F 10 04 00 00 00 00 00 00 00 ',   //Shield
    '2F 36 04 00 00 00 00 00 00 00 ',   //concentration
    '2F 35 04 00 00 00 00 00 00 00 ',   //Focus
    '2F DA 04 00 00 00 00 00 00 00 ',   //DW
    '2F D8 04 00 00 00 00 00 00 00 ',   //Точночть
    '2F B4 04 00 00 00 00 00 00 00 ',   //WW
    '2F 0C 04 00 00 00 00 00 00 00 ',   //   MB
    '2F 0B 04 00 00 00 00 00 00 00 ',   //   Mental
    '2F 3E 04 00 00 00 00 00 00 00 ',   //   Haste
    '2F 48 05 00 00 00 00 00 00 00 ',   // EP
    '2F DB 04 00 00 00 00 00 00 00 '];  // щит
    SS=0;
    PPbaferID=1212167608;
var
    prof,x,y, SkilID, SkilHIT,{PPbaferID} : integer;
    timer1, timer2: TTimer;
    Target: string;
procedure Say(msg:string);
begin
buf:=hstr('4A 00 00 00 00');
WriteD(2);
WriteS(PPbafer);
WriteS(msg);
SendToClientEx(PPbafer);
end;


procedure Init; //Вызывается при включении скрипта
begin
//делаем таймер
timer1:=TTimer.Create(nil);
timer1.OnTimer:=@OnTimer1;
timer1.enabled:=false;//по начал не баффаемся, толко по команде
timer1.interval:=200;// 0,2 секунды - начальный интервал таймера


end;
//procedure InitStats;
{begin

    PPbaferID:=ReadD(18);
end;  }
procedure OnTimer1(Sender: TObject);
begin
if x = 1 then
Say('Начинаем баффаццо');
buf:=hstr(buff[x]);             //берем нужный элемент из массива
SendToServerEx(PPbafer);
inc(x);                        //увеличиваем х на 1
if x = 15 then
begin Say('Баффаццо вроде закончили');
      Timer1.Enabled:=False;    //закончили баффаццо - таймер отключили
      x:=0;
end;
Say('x='+inttostr(x))// так что б мониторить измение в чате
end;

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

//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
if pck='' then exit;
if FromServer and (ConnectName=PPbafer) and ((pck[1]=#$04)  then InitStats;
if FromServer and (ConnectName=PPbafer) and ((pck[1]=#$48) and (ReadD(18)=SS)) then exit ;
if FromServer and (ConnectName=PPbafer) and ((pck[1]=#$48) and (ReadD(2)=PPbaferID)) then
   begin
   SkilHIT:=ReadD(18);
   SkilID:= ReadD(10);
   Timer1.Interval:=SkilHit+100;      //ставим время отката скила   +100 константа смешения тупо что б паузу сделать маленькую
   Say('Скил='+inttostr(SkilID)); // иди скрипта так для самопроверке кстате можно тестить бафы на ускорение каста и шмот
   Say('Откат='+inttostr(SkilHIT)); //время каста скила
   end;

if FromClient and (pck[1]+pck[2]=#$38#$31) and (ConnectName=PPbafer) then  //1- нажимаем в любой чат окуратней я пакет не убил
begin
  prof:=1;
  Timer1.Enabled:=True;  //врубаем таймер

end;
  if prof=1 then begin
      y:=1;
      prof:=0;
  end;

// Say('ID'+inttostr(PPbaferID));
end.
и в крацее для чего нужен ИД бафера, постойте в геране или в зоне кача сколько летит пакетов $48 выделяем свой просто и скрипт работает прямо и не сбивается

Добавлено спустя 6 минут 30 секунд:
ну 2 варианта там где ид константа надо свой написать :) или закоментировать и попробовать профиксить ошибку которую я допустил не могу понять в чём она т.к. в тонкостях не разбираюсь и половину что вы тут написали просто не понял :cry:
Grinch вне форума   Ответить с цитированием