Показать сообщение отдельно
Старый 27.05.2011, 22:03   #2
Пользователь
 
Аватар для metalFan
 
Регистрация: 26.10.2007
Сообщений: 43
Сказал Спасибо: 8
Имеет 21 спасибок в 8 сообщенях
metalFan
По умолчанию

PHP код:

var curposbyte;
    
TITLE_DATA2: array [0..16of string;

const
  
jokes_max 99;
  
CName 'JackSparrow';

var
  
fTStringList;
  
jokes: array [1..jokes_maxof String;
  
jokes_realinteger;
  
IDs: array [1..2000of cardinal;
  
Names: array [1..2000of String;
  
countInteger;
  
MyIDCardinal;
  
MyNameString;
  
mTMemo;
  
tTTimer;

  
InTimerBoolean;

  
procedure OnDisconnect;
  
begin
        NoFreeOnServerDisconnect
;
      
NoFreeOnClientDisconnect;

  
end;

procedure OnTimerProc;
begin
  InTimer 
:= true;
  
buf := #$55;
  
WriteS(MyName);
  
WriteS(TITLE_DATA2[curpos]);
  
SendToServerEx(CName);

  
curpos := curpos 1;
  if 
curpos 16 then curpos := 0;

  
InTimer := false;
end;

procedure Init;

var 
ibyte;
begin
  randomize
;
  
count := 0;

  
:= TStringList.Create;
  
jokes_real := 0;
  for 
:= 1 to jokes_max do
  
begin
    
try
      
f.LoadFromFile('D:\games\Lineage II\l2phx\bash\' + IntToStr(i) + '.txt');
      jokes_real := jokes_real + 1;
    except
    end;
    jokes[jokes_real] := f.Text;
  end;
  f.free;

  TITLE_DATA2[0] := '';
  TITLE_DATA2[1] := '';
  TITLE_DATA2[2] := '';
  TITLE_DATA2[3] := '';
  TITLE_DATA2[4] := '';
  TITLE_DATA2[5] := '';
  TITLE_DATA2[6] := '';
  TITLE_DATA2[7] := '';
  TITLE_DATA2[8] := '';
  TITLE_DATA2[9] := '';
  TITLE_DATA2[10] := '';
  TITLE_DATA2[11] := '';
  TITLE_DATA2[12] := '';
  TITLE_DATA2[13] := '';
  TITLE_DATA2[14] := '';
  TITLE_DATA2[15] := '';
  TITLE_DATA2[16] := '';

  curpos := 0;

  t := TTimer.Create(nil);
  t.Enabled := false;
  t.Interval := 2000;
  t.OnTimer := @OnTimerProc;

  ShowTab;

  m:=TMemo.Create(UserTab);
  m.parent:=UserTab;
  m.align:=alClient;
  m.ReadOnly:=true;
  m.ScrollBars:=ssBoth;
  m.lines.add('
Àíåêäîòîâ çàãðóæåíî: ' + inttostr(jokes_real));
end;

procedure Free;
begin
  NoFreeOnServerDisconnect
;
NoFreeOnClientDisconnect;


  
m.Free;
  
HideTab;

  
t.OnTimer := nil;
  
t.Enabled := false;
  
t.Interval := 0;
  
t.Free;
end;

function 
FindPlayer(ObjIDcardinal): integer;
var 
kcardinal;
begin
  result 
:= -1;
  if 
Count 0 then
    
for := 1 to Count do
      if 
IDs[k] = ObjID then
      begin
        result 
:= k;
        break
      
end;
end;

var
  
ikinteger;
  
objidcardinal;
  
namestring;
begin
{if (ConnectName CNamethen }
  if 
FromServer then
  
case pck[1of
    
#$64:
    
begin
      i 
:= 2;
      if 
ReadD(i) = 380 then {S1_PURCHASED_S3_S2_s}
      
begin
        i 
:= 4*2;
        
name := ReadS(i);
        if (
name ''then
        begin
          
// âíåñåì â ëîã (blacklist)
          
m.Lines.Add(TimeToStr(now)+': '+name+' purchased (BLACKLISTED)');
        
end
        
else
        
begin
          
while (InTimer true) do := i;

          
buf := #$CC;
          
:= int(random jokes_real) + 1;
          
WriteS(jokes[i]);
          
WriteS(name);
          
SendToServer{Ex(CName)};

          if (
Length(m.Lines.Text) > 60000then m.Lines.Text := '<cleared>';
          
// âíåñåì â ëîã
          
m.Lines.Add(TimeToStr(now)+': '+name+' purchased');
          
m.Lines.Add('> ' jokes[i]);
        
end;
      
end
    end
;

    
#$03: // CharInfo
    
begin
      i 
:= 2;
      
objid := ReadD(i);

      
:= FindPlayer(ObjID);

      if 
= -1 then
      begin
        i 
:= 2;
        
name := ReadS(i);
        
// blacklist
        
if (name ''then
        begin
          
// (none)
        
end
        
else begin
          
// äîáàâëåíèå
          
count := count 1;
          
IDs[count] := ObjID;
          
Names[count] := name;


  



          
//m.Lines.Add(IntToStr(count) + ' - ' + Format('%x', [ObjId])+' = '+ Names[count]);
        
end;
      
end;
    
end;

    
#$04: //UserInfo
    
begin
      i 
:= 4*4;
      
MyID := ReadD(i);
      
MyName := ReadS(i);
      
t.Enabled := false;
    
end;


    
#$12: // ObjectDelete
    
begin
      i 
:= 2;
      
objid := ReadD(i);

      
:= FindPlayer(objid);

      if 
<> -1 then
      begin
        IDs
[i] := IDs[count];
        
Names[i] := Names[count];
        
count := count 1;
      
end
    end
;

    
#$29: //TargetSeleted
    
begin
      i 
:= 2;
      
objid := ReadD(i);

      if 
ReadD(i) <> MyID then exit;

      
:= FindPlayer(objid);

      if 
<> -1 then
      begin
        
while (InTimer true) do := i;

        
buf := #$CC;
        
WriteS('купи стрелу');
        
WriteS(names[i]);
        
SendToServer{Ex(CName)};
        
        
m.Lines.Add(TimeToStr(now)+': '+names[i]);
      
end
    end
;
    
end;


if 
FromClient then
      
case pck[1of
       
#$09: //Logout
          
begin
            pck 
:= '';
              
buf := #$7E;
                
SendToClient{Ex(CName)};
                 
end;

                 
end;




end

Последний раз редактировалось Breadfan, 04.02.2014 в 04:25.
metalFan вне форума   Ответить с цитированием