Показать сообщение отдельно
Старый 01.03.2011, 04:25   #4
Местный
 
Регистрация: 04.11.2009
Адрес: Где-то в жопе европы
Сообщений: 316
Сказал Спасибо: 32
Имеет 42 спасибок в 39 сообщенях
wimax пока неопределено
По умолчанию

PHP код:
Const
  
// ============= НАСТРОЙКИ ===============
  
NickName ''//ник
  
MaxEnchantLevel 20;  //до какого уровоня точить
  // =======================================

  // задержка между точками в сек.
  
interval 0;
  
// отладочные сообщения
  
MainDebug false;
var
  
CurLevelinteger;
  
tickinteger;
  
SKillIDinteger;

procedure Init//Вызывается при включении скрипта
begin
  CurLevel 
:= -1;
end;


// пауза в секундах
function Wait(var tickintegerTimewaitInteger): Boolean// сквозная проверка без остановки скрипта
var
  
tinteger;
begin
  result
:=false;
  
t:=Round(Time*86400);
  if 
t>(tick+Timewaitthen begin
    
if tick>0 then result:=true;
    
tick:=t;
  
end;
end;

//###################### Сообщения #############################################
// послать сообщение в чат себе
procedure SendMsg_to_Chat(ChatTypeintegermsg:string);                                  // отправка системных сообщений клиенту
begin
  buf
:=#$4A;
  
WriteD(0);
  
WriteD(10);
  
WriteS(NickName);
  
WriteS(msg);
  
SendToClientEx(NickName);
end;
// послать отладочное сообщение себе
procedure DebugMsg(msg:string);
begin
  
if MainDebug then
    SendMsg_to_Private
(msg);
end;
// послать сообщение себе в приват
procedure SendMsg_to_Private(msg:string);
begin
  SendMsg_to_Chat
(2,msg);
end;

//основная часть скрипта
//вызывается при приходе каждого пакета если скрипт включен
begin
  
if pck '' then exit;
  
// Т.к. использоваться будет только для одного чара, остальных сразу отсеиваем
  
if ConnectName<>NickName then Exit;

  
// пакет - сообщение со статусом заточки
  
if FromServer and (pck[1]=#$62) and (pck[3]+pck[4]+pck[5] = HStr('05 00 00')) then begin
    
if (pck[2] = #$A0)or(pck[2] = #$A1)then begin
      
SKillID := ReadD(14);
      
CurLevel := ReadD(18);
      
// заточка была не удачной, обнуляем текущий уровень заточки
      
if pck[2] = #$A1 then
        
CurLevel := (CurLevel div 100)*100;  // округляем
      
DebugMsg('SKillID='+inttostr(SKillID)+'; CurLevel='+inttostr(CurLevel));
      if (
CurLevel mod 100) >= MaxEnchantLevel then
        CurLevel 
:= -1;
      
tick := 0;
      
Wait(tickinterval);
    
end;
  
end;

  
//  Можно закомментировать "and Wait(tick, interval)", точиться будет намного быстрее,
  // только ощущение такое, что шанс точки меньше, хотя может и показалось
  
if (CurLevel >= 0then  begin
    DebugMsg
('точим');
    
buf := HStr('D0 0F 00');
    
WriteD(SKillID);
    
WriteD(CurLevel+1);
    
SendToServerEx(NickName);
    
CurLevel := -1;
  
end;
end
Проверял на фреии работает не забывай что сп не вечное =)

Добавлено через 35 секунд
оправка в чат не работает сам поправиш если надо

Добавлено через 5 минут
P.S добавте етот скрипт в жыстокии скриптинг а то уже тем нащет скрипта точки скилов полно надоедает отвечать одно и тоже.
Учимся юзать поиск!

Последний раз редактировалось wimax, 01.03.2011 в 04:25. Причина: Добавлено сообщение
wimax вне форума   Ответить с цитированием
За это сообщение wimax нажился спасибкой от: