Показать сообщение отдельно
Старый 02.06.2010, 13:18   #637
Новичок
 
Регистрация: 03.03.2009
Сообщений: 5
Сказал Спасибо: 4
Имеет 0 спасибок в 0 сообщенях
KaBuKi пока неопределено
По умолчанию

Нужна помощь в изменении скрипта помошник в PvP и PK. Попытался сделать пакеты на использование банок константами, но при старте скрипта ничего не происходит.
Код:
//by mks
//помошник в PvP и PK.
//пьет CP и HP пробирки в нужное время(можно добавить и MP для пвп серваков), и освобождает вас от небоходимости зажатия клавиши Ctrl, которая так меня раздражает!(думаю это раздражает и не только меня)
///////////////////////////////////////////////////////
///////////////Master PvP by MKS v.1.0/////////////////
///////////////////////////////////////////////////////

//после активации скрипта необходимо выпить сначала банку CP, потом HP для получения их ID
const
   Name='kabUki';  //ник перса
   PckUseCP='14 75 DC 4C 40 00 00 00 00';
   PckUseHP='14 68 E6 4C 40 00 00 00 00';
var
   CurHP,MaxHP,CurCP,MaxCP: integer;
   CPuse,HPuse: string;

   TimerCP,TimerHP: TTimer;

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


  TimerCP:=TTimer.Create(nil);
  TimerCP.OnTimer:=@OnTimerCP;
  TimerCP.enabled:=false;
  TimerCP.interval:=1000;  //интервал 1сек, т.к. чаще пить CP всеравно не будет, дабы не засорять трафик

  TimerHP:=TTimer.Create(nil);
  TimerHP.OnTimer:=@OnTimerHP;
  TimerHP.enabled:=false;
  TimerHP.interval:=15000; //интервал 15сек, т.к. действие одной бутылки = 15сек
end;

procedure OnTimerCP(Sender: TObject);
begin
  buf:=HStr(PckUseCP);
  SendToServerEx(Name);
end;
procedure OnTimerHP(Sender: TObject);
begin
  buf:=HStr(PckUseHP);
  SendToServerEx(Name);
end;

procedure Free; //Вызывается при выключении скрипта
begin
  TimerCP.free;
  TimerHP.free;
  HPuse:='';
  CPuse:='';
end;

//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin

//пьем сначала CP, потом HP банку что б запомнить их ID(я решил взять эти пакеты целиком, дабы не усложнять)
//  if FromClient and (ConnectName=Name) and (pck[1]=#$14) and (CPuse='') then CPuse:=pck;
//  if FromClient and (ConnectName=Name) and (pck[1]=#$14) and (CPuse<>pck) and (HPuse='') then HPuse:=pck;


//считываем текущие и максимальные значения CP и HP
if FromServer and (pck[1]+pck[6]=#$0E#$04) then
  begin
    CurHP:=ReadD(14);
    MaxHP:=ReadD(22);
    CurCP:=ReadD(30);
    MaxCP:=ReadD(38);
  end;

//если вы используете не грэйтер CP то вместо 200 подставьте кол-во CP сколько восстанавливает 1 банка
//if (CurCP<MaxCP-200) and (CPuse<>'') then TimerCP.enabled:=true else TimerCP.enabled:=false;
//if (CurHP<MaxHP) and (HPuse<>'') then TimerHP.enabled:=true else TimerHP.enabled:=false;
if (CurCP<MaxCP-200) then TimerCP.enabled:=true else TimerCP.enabled:=false;
if (CurHP<MaxHP) then TimerHP.enabled:=true else TimerHP.enabled:=false;

//если используем скилы или заклинания добавляем флаг Ctrl, что б не надо было удерживать контрол
if FromClient and (ConnectName=Name) and (pck[1]=#$2F) then pck[6]:=#$01;

//если наводим таргет, повторное нажатие по нему подменивается на атаку, опять же что б не удерживать контрол
//if FromClient and (ConnectName=Name) and (pck[1]=#$04) then pck[1]:=#$0A;

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