Сбор ID
Старший Лейтенант (6395350)11 лет
Necromancer
Сообщений: 5530
Рег. 27.08.2012
30 января 2013 21:20
Сообщение #1
Визер в свое время скрип написал на стелс, который собирает ID чаров на сервере. Есть у кого что-то подобное?

Гости
Сообщений: 4
Рег. 26.01.2013
30 января 2013 21:22
Сообщение #2
м. 5 строк кода.
только собирать куда?
Старший Лейтенант (6395350)11 лет
Necromancer
Сообщений: 5530
Рег. 27.08.2012
30 января 2013 22:39
Сообщение #3
Цитата: Magros
м. 5 строк кода.
только собирать куда?

в файл текстовый, чтоб не было повторов

Гости
Сообщений: 4
Рег. 26.01.2013
30 января 2013 22:50
Сообщение #4
Var
    _Path, _Str: String;
    _ID:          Cardinal;
    _TL:          TStringList;
    _I:          Integer;
    _Char_Types: array of Word;

Begin
    _Path:= 'путь, вида: D:\chars.txt';
    _Char_Types:= [$тип мужчины, $тип женщины];
    
    FindDistance:= 50;
    _TL:= TStringList.Create;
    If FileExists(_Path) Then _TL.LoadFromFile(_Path);
    While True Do Begin
        For _I:= 0 To 1 Do Begin
            If FindType(_Char_Types[_I], Ground) > 0 Then Begin
                _ID:= FindItem;
                _Str:= ('Name:= ' +GetName(_ID) + ' ID:=$' + IntToHex(_ID, 8));
                If _TL.IndexOf(_Str) = -1 Then _TL.Append(_Str);
            End;
        End;
        _TL.SaveToFile(_Path);
        Wait(100);
    End;
End.

написал на коленке, не проверял
поставь типы и путь к логу.
Майор (10730640)13 летИнквизитор
Inquisitor
Сообщений: 1041
Рег. 12.07.2010
30 января 2013 23:05
Сообщение #5
Скрипт Визера:

{$Include 'WriteToFile.inc'}

var
counter : Integer;
Tmp,FileList : TStringList;
a : String;

Begin
    FileList := TStringList.Create();
    Tmp := TStringList.Create();
    FileList.LoadFromFile('Chars.log');
    For counter:=0 To (FileList.count-1) Do
    Begin
        StrBreakApart(FileList.Strings[counter], '    ', Tmp);
        Ignore(StrToInt(Tmp.Strings[0]));
    End;
    FileList.Free;
    Tmp.Free;

    Repeat
        FindDistance:=15;
        FindVertical:=50;
        If FindType($0190,$FFFFFFFF)>0 Then
        Begin
            ClickOnObject(FindItem);
            Wait(1000);
            a:=GetName(FindItem);
            If a<>'' Then Begin WriteToFile('Chars.log',IntToStr(FindItem)+Replicate('    ',1-(Length(IntToStr(FindItem))/8))+'    [M]    '+a+Replicate('    ',3-(Length(a)/8))+'    | ID: '+IntToHex(FindItem,8)+ #13#10); Ignore(FindItem); End;
        End;
        If FindType($0191,$FFFFFFFF)>0 Then
        Begin
            ClickOnObject(FindItem);
            Wait(1000);
            a:=GetName(FindItem);
            If a<>'' Then Begin WriteToFile('Chars.log',IntToStr(FindItem)+Replicate('    ',1-(Length(IntToStr(FindItem))/8))+'    [W]    '+a+Replicate('    ',3-(Length(a)/8))+'    | ID: '+IntToHex(FindItem,8)+ #13#10); Ignore(FindItem); End;
        End;
        Wait(333);
    Until False;
End .


Инклюд:
procedure WriteToFile(filepath: string;   data: string);
var
  file: TFileStream;

begin
   try
     file := TFileStream.Create(filepath,fmOpenReadWrite);
     file.seek(0, soFromEnd);
        except
          file := TFileStream.Create(filepath,fmCreate);
        end;      
   file.WriteBuffer(data,Length(data));
   file.Free;
end;
Старший Лейтенант (6395350)11 лет
Necromancer
Сообщений: 5530
Рег. 27.08.2012
30 января 2013 23:06
Сообщение #6
Magros, Rociel Del Mar, спасибо )
Последние посетители (0):

 
Сейчас: 6 мая 2024 18:46