Показать сообщение отдельно
Старый 01.08.2011, 11:04   #3
Пользователь
 
Аватар для EmL
 
Регистрация: 21.07.2011
Сообщений: 48
Сказал Спасибо: 6
Имеет 20 спасибок в 12 сообщенях
EmL пока неопределено
По умолчанию

Этот скрипт для интерлюда,настраивал "wimax"
PHP код:
Const
  
NickName 'Shock3D';
  
MaxEnchantLevel Доскольки точить ЧИСЛО;

  
interval 230;   //Интервал между точкой
  
MainDebug false// ПИСАТТЬ СОБОЩЕНИЯ В ЧАТ ИЛИ НЕТ ДА-true НЕТ-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 >= 0) and Wait(tickintervalthen begin
    DebugMsg
('точим');
    
buf := HStr('D0 0F 00');
    
WriteD(SKillID);
    
WriteD(CurLevel+1);
    
SendToServerEx(NickName);
    
CurLevel := -1;
  
end;
end
EmL вне форума   Ответить с цитированием