Регистрация Главная Пользователи Все разделы прочитаны
Сообщения за день Справка Регистрация
Навигация
Zhyk.org LIVE! Реклама на Zhyk.org Правила Форума Награды и достижения Доска "почета"

Исходников PW_CrazyBot_1_5_3 и его доработка

-

Общение разработчиков

- Программирование для Perfect World, общение и обсуждене разработок

Ответ
 
Опции темы
Старый 17.06.2016, 20:36   #16
 Пехотинец
Аватар для diagnost
 
diagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражания
Регистрация: 03.01.2010
Сообщений: 95
Популярность: 1542
Сказал(а) спасибо: 110
Поблагодарили 460 раз(а) в 288 сообщениях
 
По умолчанию Re: Исходников PW_CrazyBot_1_5_3 и его доработка

Да действительно с PWI .ехе сильно похож на наш, только его там никто не запаковывал. Отлично олька подсоединяется только что нашел ВА = E5B2A4 и GA = E5BA4C структура перса BA+1C+34+4CC(ХР перса)
Очень сильно похож. Пытаюсь найти распаковщик для нашего .ехе, чтобы сравнить с ПВИ и найти разницу байтов, которые отвечают за защиту от дебагеров.
  Ответить с цитированием
Старый 18.06.2016, 12:58   #17
 Сержант
Аватар для pw.assistant
 
pw.assistant излучает ауруpw.assistant излучает ауруpw.assistant излучает ауруpw.assistant излучает ауруpw.assistant излучает ауруpw.assistant излучает ауру
Регистрация: 16.02.2012
Сообщений: 105
Популярность: 651
Сказал(а) спасибо: 19
Поблагодарили 39 раз(а) в 31 сообщениях
 
По умолчанию Re: Исходников PW_CrazyBot_1_5_3 и его доработка

Цитата:
Вот моя благодарность потраченное время на разбор GUI исходники на delphi XE8

Было бы лучше, если бы окна искались по названию класса, а не по заголовку окна.
________________
backup - акт проявления трусости
  Ответить с цитированием
Старый 17.07.2016, 01:34   #18
 Пехотинец
Аватар для diagnost
 
diagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражания
Регистрация: 03.01.2010
Сообщений: 95
Популярность: 1542
Сказал(а) спасибо: 110
Поблагодарили 460 раз(а) в 288 сообщениях
 
По умолчанию Re: Исходников PW_CrazyBot_1_5_3 и его доработка

Есть класс TIdNames:
Код:
unit uCommon;

interface

uses
  windows, classes, sysutils, forms, inifiles, dllClient;

type
  TIdNames = class
  private
    function GetIDs(index: integer): dword;
    procedure SetIDs(index: integer; const Value: dword);
    function GetNames(index: integer): string;
    procedure SetNames(index: integer; const Value: string);
    function GetCount: Integer;
    function GetAddr(index: integer): dword;
    procedure SetAddr(index: integer; const Value: dword);
    function GetParams(index: integer): TStringList;
  protected
  public
    IdList: TStringList;
    NamesList: TStringList;
    AddrList: TStringList;
    ParamsList: TList;
    constructor Create(const FileName: String = ''); dynamic;
    destructor Destroy; override;
    function Add(id: dword; name: string; addr: dword): integer;
    procedure Delete(index: integer);
    procedure Clear;
    function IndexOfByID(id: dword): Integer;
    function IndexOfByName(name: string): Integer;
    function IndexOfByPartialName(partial_name: string): Integer;
    function IdByName(name: string): dword;
    function IdByParialName(partial_name: string): dword;
    function NameById(id: dword): string;
    property IDs[index: integer]: dword read GetIDs write SetIDs;
    property Names[index: integer]: string read GetNames write SetNames;
    property Addr[index: integer]: dword read GetAddr write SetAddr;
    property Params[index: integer]: TStringList read GetParams;
  //published
    property Count: Integer read GetCount;
  end;

var
  fExit: Boolean = False;
  hWindow : THandle = 0;
 // WindowID : THandle = 0;
 // processID : THandle = 0;

implementation


{ TIdNames }

constructor TIdNames.Create(const FileName: String = '');
var
  i: Integer;
  ini: TMemIniFile;
begin
  IdList    := TStringList.Create;
  NamesList := TStringList.Create;
  AddrList  := TStringList.Create;
  ParamsList := TList.Create;
  if FileExists(FileName) then
  begin
    ini := TMemIniFile.Create(FileName);
    ini.ReadSection('idnames', IdList);
    for I := 0 to IdList.Count - 1 do
      NamesList.Add(ini.ReadString('idnames', IdList[i], ''));
    ini.Free;
  end;
end;

destructor TIdNames.Destroy;
begin
  //Clear;
  IdList.Free; //IdList := nil;
  NamesList.Free; //NamesList := nil;
  AddrList.Free; //AddrList := nil;
  ParamsList.Free; //ParamsList := nil;
//  inherited Destroy;
end;

procedure TIdNames.Clear;
begin
  while Count > 0 do
    delete(0);
end;

function TIdNames.Add(id: dword; name: string; addr: dword): integer;
begin
  IdList.Add(IntToStr(id));
  AddrList.Add(IntToStr(addr));
  ParamsList.Add(TList.Create);
  result := NamesList.Add(name);
end;

procedure TIdNames.Delete(index: integer);
begin
  if (index >= 0) and (index < count) then
  begin
    IdList.delete(index);
    NamesList.delete(index);
    AddrList.delete(index);
    TList(ParamsList[index]).Clear;
    ParamsList.delete(index);
  end;
end;

function TIdNames.GetAddr(index: integer): dword;
begin
  if (index >= 0) and (index < count) then
    result := StrToInt(AddrList[index])
  else
    result := 0;
end;

function TIdNames.GetCount: Integer;
begin
  if IdList <> nil then
    result := IdList.Count
  else
    result := 0;
end;

function TIdNames.GetIDs(index: integer): dword;
begin
  if (index >= 0) and (index < count) then
    result := StrToInt(IdList[index])
  else
    result := 0;
end;

function TIdNames.GetNames(index: integer): string;
begin
  if (index >= 0) and (index < count) then
    result := NamesList[index]
  else
    result := '';
end;

function TIdNames.GetParams(index: integer): TStringList;
begin
  if (index >= 0) and (index < count) then
    result := TStringList(ParamsList[index])
  else
    result := nil;
end;

function TIdNames.IdByName(name: string): dword;
var
  i, idx: integer;
begin
  name := UpperCase(Trim(name));
  idx := -1;
  for I := 0 to NamesList.Count-1 do
    if UpperCase(Trim(NamesList[i])) = name then
    begin
      idx := i;
      break;
    end;
  if idx >= 0 then
    result := IDs[idx]
  else
    result := MaxWord;
end;

function TIdNames.IdByParialName(partial_name: string): dword;
var
  i, idx: integer;
begin
  partial_name := UpperCase(Trim(partial_name));
  idx := -1;
  for I := 0 to NamesList.Count-1 do
    if Pos(partial_name, UpperCase(Trim(NamesList[i]))) = 1 then
    begin
      idx := i;
      break;
    end;
  if idx >= 0 then
    result := IDs[idx]
  else
    result := MaxWord;
end;

function TIdNames.IndexOfByID(id: dword): Integer;
var
  sId: string;
begin
  sId := IntToStr(id);
  result := IdList.IndexOf(sId);
end;

function TIdNames.IndexOfByName(name: string): Integer;
var
  i: integer;
begin
  name := UpperCase(Trim(name));
  result := -1;
  for I := 0 to NamesList.Count-1 do
    if UpperCase(Trim(NamesList[i])) = name then
    begin
      result := i;
      break;
    end;
end;

function TIdNames.IndexOfByPartialName(partial_name: string): Integer;
var
  i: integer;
begin
  partial_name := UpperCase(Trim(partial_name));
  result := -1;
  for I := 0 to NamesList.Count-1 do
    if Pos(partial_name, UpperCase(Trim(NamesList[i]))) = 1 then
    begin
      result := i;
      break;
    end;
end;

function TIdNames.NameById(id: dword): string;
var
  idx: integer;
  sId: string;
begin
  sId := IntToStr(id);
  idx := IdList.IndexOf(sId);
  if idx >= 0 then
    result := NamesList[idx]
  else
    result := '';
end;

procedure TIdNames.SetAddr(index: integer; const Value: dword);
begin
  if (index >= 0) and (index < IdList.count) then
    AddrList[index] := IntToStr(Value);
end;

procedure TIdNames.SetIDs(index: integer; const Value: dword);
begin
  if (index >= 0) and (index < IdList.count) then
    IdList[index] := IntToStr(Value);
end;

procedure TIdNames.SetNames(index: integer; const Value: string);
begin
  if (index >= 0) and (index < count) then
    NamesList[index] := Value;
end;

end.
В этом коде есть функция:
Код:
function TIdNames.Add(id: dword; name: string; addr: dword): integer;
begin
  IdList.Add(IntToStr(id));
  AddrList.Add(IntToStr(addr));
  ParamsList.Add(TList.Create);
  result := NamesList.Add(name);
end;
Вот в этой строчке идет добавление скиллов
ParamsList.Add(TList.Create);
Сколько добавилось скилов, столько и пишет
[Ссылки могут видеть только зарегистрированные пользователи. ]
Меня смущает TList.Create, что то здесь не так. Прочитал документацию вроде все правильно. А когда подключаешь к проекту ReportMemoryLeaksOnShutdown := True; утечка памяти, вываливается окно выше.
И не совсем понимаю, как работают эти 4 строчки. Если убрать совсем ParamsList.Add(TList.Create); перестают работать скиллы, хотя список вываливается, его видно, можно выбрать(Походу индексации нет)
Я правильно понимаю, IdList и AddrList добавляются с начало в TList, а потом TList добавляется ParamsList? Кто может объяснить, как работают эти 4 строчки?
Вот тест сделал, что бы было наглядно в чем заключается проблема[Ссылки могут видеть только зарегистрированные пользователи. ]

Последний раз редактировалось diagnost; 19.07.2016 в 01:19.
  Ответить с цитированием
Старый 28.07.2016, 09:43   #19
 Разведчик
Аватар для Vbrz
 
Vbrz никому не известный тип
Регистрация: 21.05.2012
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 1 раз в 1 сообщении
 
По умолчанию Re: Исходников PW_CrazyBot_1_5_3 и его доработка

...
IdList: TStringList;
NamesList: TStringList;
AddrList: TStringList;
ParamsList: TList;

Вот 4 списка. Первые три - строковые. Последний - с указателями.

...
IdList.Add(IntToStr(id));
AddrList.Add(IntToStr(addr));
ParamsList.Add(TList.Create);
result := NamesList.Add(name);

Эти команды добавляют (в конец) для первых двух списков текст с айдишником и адресом.
Третья создает список для параметров. Тут утечка, если этот лист никто не удаляет.
Четвертая - добавляет имя и заодно пользуется возвращаемым значением .Add чтобы вернуть нумер последнего индекса.

Теперь смотрим на
procedure TIdNames.Delete(index: integer);
...
TList(ParamsList[index]).Clear;
...

Это - очистка списка, а не удаление. Создали, но не удалили. По идее, должно быть
TList(ParamsList[index]).Free;
  Ответить с цитированием
Пользователь сказал cпасибо:
diagnost (30.07.2016)
Старый 05.08.2016, 21:47   #20
 Разведчик
Аватар для Venzel
 
Venzel никому не известный тип
Регистрация: 06.12.2009
Сообщений: 20
Популярность: 10
Сказал(а) спасибо: 5
Поблагодарили 4 раз(а) в 3 сообщениях
 
По умолчанию Re: Исходников PW_CrazyBot_1_5_3 и его доработка

Цитата:
Сообщение от diagnostПосмотреть сообщение
Вот спасибо!!! Выручил час бота допилим!
Вот моя благодарность потраченное время на разбор[Ссылки могут видеть только зарегистрированные пользователи. ]
На выходных буду переделывать интерфейс, не все параметры правильно сохраняются(в основном касается вкладки Башни будды)

А есть еще какие-нибудь наработки касательно GUI?
  Ответить с цитированием
Старый 17.10.2016, 00:57   #21
 Пехотинец
Аватар для diagnost
 
diagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражанияdiagnost блестящий пример для подражания
Регистрация: 03.01.2010
Сообщений: 95
Популярность: 1542
Сказал(а) спасибо: 110
Поблагодарили 460 раз(а) в 288 сообщениях
 
По умолчанию Re: Исходников PW_CrazyBot_1_5_3 и его доработка

Цитата:
Сообщение от VbrzПосмотреть сообщение
...
IdList: TStringList;
NamesList: TStringList;
AddrList: TStringList;
ParamsList: TList;

Вот 4 списка. Первые три - строковые. Последний - с указателями.

...
IdList.Add(IntToStr(id));
AddrList.Add(IntToStr(addr));
ParamsList.Add(TList.Create);
result := NamesList.Add(name);

Эти команды добавляют (в конец) для первых двух списков текст с айдишником и адресом.
Третья создает список для параметров. Тут утечка, если этот лист никто не удаляет.
Четвертая - добавляет имя и заодно пользуется возвращаемым значением .Add чтобы вернуть нумер последнего индекса.

Теперь смотрим на
procedure TIdNames.Delete(index: integer);
...
TList(ParamsList[index]).Clear;
...

Это - очистка списка, а не удаление. Создали, но не удалили. По идее, должно быть
TList(ParamsList[index]).Free;

В общем в вот так сделал, вроде пока работает(ParamsList совсем убрал):
Код:
unit uCommon;

interface

uses
  windows, classes, sysutils, inifiles, ClientPerem;

type
  TIdNames = class(TObject)
  private
    function GetIDs(index: integer): dword;
    procedure SetIDs(index: integer; const Value: dword);
    function GetNames(index: integer): string;
    procedure SetNames(index: integer; const Value: string);
    function GetCount: Integer;
    function GetAddr(index: integer): dword;
    procedure SetAddr(index: integer; const Value: dword);
  protected
  public
    IdList: TStringList;
    NamesList: TStringList;
    AddrList: TStringList;
    constructor Create(const FileName: String = ''); dynamic;
    destructor Destroy; override;
    function Add(id: dword; name: string; addr: dword): integer;
    procedure Delete(index: integer);
    procedure Clear;
    function IndexOfByID(id: dword): Integer;
    function IndexOfByName(name: string): Integer;
    function IndexOfByPartialName(partial_name: string): Integer;
    function IdByName(name: string): dword;
    function IdByParialName(partial_name: string): dword;
    function NameById(id: dword): string;
    property IDs[index: integer]: dword read GetIDs write SetIDs;
    property Names[index: integer]: string read GetNames write SetNames;
    property Addr[index: integer]: dword read GetAddr write SetAddr;

    property Count: Integer read GetCount;
  end;

implementation


{ TIdNames }

constructor TIdNames.Create(const FileName: String = '');
var
  i: Integer;
  ini: TMemIniFile;
begin
  IdList    := TStringList.Create;
  NamesList := TStringList.Create;
  AddrList  := TStringList.Create;
  if FileExists(FileName) then
  begin
    ini := TMemIniFile.Create(FileName);
    ini.ReadSection('idnames', IdList);
    for I := 0 to IdList.Count - 1 do
      NamesList.Add(ini.ReadString('idnames', IdList[i], ''));
    ini.Free;
  end;
end;

destructor TIdNames.Destroy;
begin
  //Clear;
  FreeAndNil(IdList);//IdList.Free; //IdList := nil;
  FreeAndNil(NamesList);//NamesList.Free; //NamesList := nil;
  FreeAndNil(AddrList);//AddrList.Free; //AddrList := nil;
//  inherited Destroy;
end;

procedure TIdNames.Clear;
begin
  while Count > 0 do
    delete(0);
end;

function TIdNames.Add(id: dword; name: string; addr: dword): integer;
begin
  IdList.Add(IntToStr(id));
  AddrList.Add(IntToStr(addr));
  result := NamesList.Add(name);
end;

procedure TIdNames.Delete(index: integer);
begin
  if (index >= 0) and (index < count) then
  begin
    IdList.delete(index);
    NamesList.delete(index);
    AddrList.delete(index);
  end;
end;

function TIdNames.GetAddr(index: integer): dword;
begin
  if (index >= 0) and (index < count) then
    result := StrToInt64Def(AddrList[index], MaxDword)
  else
    result := MaxDword;
end;

function TIdNames.GetCount: Integer;
begin
  if IdList <> nil then
    result := IdList.Count
  else
    result := 0;
end;

function TIdNames.GetIDs(index: integer): dword;
begin
  if (index >= 0) and (index < count) then
    result := StrToInt64Def(IdList[index], MaxDword)
  else
    result := MaxDword;
end;

function TIdNames.GetNames(index: integer): string;
begin
  if (index >= 0) and (index < count) then
    result := NamesList[index]
  else
    result := '';
end;


function TIdNames.IdByName(name: string): dword;
var
  i, idx: integer;
begin
  name := UpperCase(Trim(name));
  idx := -1;
  for I := 0 to NamesList.Count-1 do
    if UpperCase(Trim(NamesList[i])) = name then
    begin
      idx := i;
      break;
    end;
  if idx >= 0 then
    result := IDs[idx]
  else
    result := MaxWord;
end;

function TIdNames.IdByParialName(partial_name: string): dword;
var
  i, idx: integer;
begin
  partial_name := UpperCase(Trim(partial_name));
  idx := -1;
  for I := 0 to NamesList.Count-1 do
    if Pos(partial_name, UpperCase(Trim(NamesList[i]))) = 1 then
    begin
      idx := i;
      break;
    end;
  if idx >= 0 then
    result := IDs[idx]
  else
    result := MaxWord;
end;

function TIdNames.IndexOfByID(id: dword): Integer;
var
  sId: string;
begin
  sId := IntToStr(id);
  result := IdList.IndexOf(sId);
end;

function TIdNames.IndexOfByName(name: string): Integer;
var
  i: integer;
begin
  name := UpperCase(Trim(name));
  result := -1;
  for I := 0 to NamesList.Count-1 do
    if UpperCase(Trim(NamesList[i])) = name then
    begin
      result := i;
      break;
    end;
end;

function TIdNames.IndexOfByPartialName(partial_name: string): Integer;
var
  i: integer;
begin
  partial_name := UpperCase(Trim(partial_name));
  result := -1;
  for I := 0 to NamesList.Count-1 do
    if Pos(partial_name, UpperCase(Trim(NamesList[i]))) = 1 then
    begin
      result := i;
      break;
    end;
end;

function TIdNames.NameById(id: dword): string;
var
  idx: integer;
  sId: string;
begin
  sId := IntToStr(id);
  idx := IdList.IndexOf(sId);
  if idx >= 0 then
    result := NamesList[idx]
  else
    result := '';
end;

procedure TIdNames.SetAddr(index: integer; const Value: dword);
begin
  if (index >= 0) and (index < IdList.count) then
    AddrList[index] := IntToStr(Value);
end;

procedure TIdNames.SetIDs(index: integer; const Value: dword);
begin
  if (index >= 0) and (index < IdList.count) then
    IdList[index] := IntToStr(Value);
end;

procedure TIdNames.SetNames(index: integer; const Value: string);
begin
  if (index >= 0) and (index < count) then
    NamesList[index] := Value;
end;

end.
Добавлено через 3 минуты
Для удобства вынес все офзеты в отдельный лист, выглядит вот так примерно:
Код:
unit ClientConst;

interface

uses Windows, Classes, SysUtils, IniFiles, Messages, Forms;

const
  MaxSingle = $FFFFFFFF div 2;
  idSkill = 'скилл:';
  idPet = 'пет:';
  idInv = 'инв:';
  idGenie = 'Джин:';
  idBaffs = 'Baffs:';
  AutoPilotMode = 'Автопилот';
  blue = 18718; //Синие сферы
  red = 18716;  //Красные сферы
  white = 18717;//Белые сферы

  good = 18711; // Добрые гусеницы
  bad = 18710;  // Злые гусеницы

    Base_addr                         = $00E5AFA4; //Y
    //GameAdress = BaseAdress + 0x1C(Array_addr_1)
    Array_addr_1                      = $1C;
    Game_addr                         = $00E5B74C; //Y
    //BA +0x1C(Array_addr_1) +0x1C(Array_addr_2) +0x60 +0x4 +0x0 Название локации
    Array_Addr_2                      = $1C;
    Location_ID                       = $94;
    Location_name                     = $60;  //+4 +0
    //Структура игрока:
    Plr_Str                           = $34;
    //BaseAdress +0x1C(Array_addr_1) +0x34(Plr_Str), длинна структуры 0x1274 байта
    Plr_LocX                          = $3C;// LocX, float /Координата X/ +007C /Повтор/
    Plr_LocZ                          = $40;// LocZ, float /Координата Z/ +0080 /Повтор/
    Plr_LocY                          = $44;// LocY, float /Координата Y/ +0084 /Повтор/
    Plr_Skilling                      = $B8;// /1b, byte, флаг использования скилла/Значения: 1 - скилл используется, 0 - нет
    Plr_Mining                        = $288;// /1b, byte, флаг копки реса/ Значения: 0 - копает, 1 - не копает, валиден после 1й копки
    Plr_BuffsArray                    = $390; //Список баффов/ + [I*2] Buffs, word
    Plr_BuffsCnt                      = $398; //, dword /Количество баффов/
    //Хеш близлежащих игроков/
    Plr_PCCharacter                   = $3B4; //, array +088+I*4 (I=GA+34+38C+14)
        Plr_PCCharacter_Cnt   = $18;
        Plr_PCCharacter_Array = $98;
    //GenieRotationTimer                = $3bc;//, dword /таймер, следящий за отображением джинна или фейки/
    //GenieRotationTimerMax             = $3c0;//, dword /максимальное значение этого таймера/
   // IsGenieVisible                    = $3c4;//, byte/bool /если 1, то вокруг игрока летает джинн (если есть), иначе - фейка (если есть)/
    Plr_Genie_array                   = $408;
        Plr_Genie_Lvl      = $6C;
        Plr_Genie_Exp      = $68;
        Plr_Genie_Point    = $70;
        Plr_Genie_DopPoint = $C0;

    Plr_WID                           = $4B8;//, dword /Мировой ID перса/
                                       //4BC
                                       //4C0
    Plr_LeveL                         = $4C4;//, dword /Уровень перса/
    //Plr_Status                        = $4C8;//, dword /Статус перса/  30-ДЕМОН
    Plr_HP                            = $4CC;//, dword /Жизненная сила/
    Plr_MP                            = $4D0;//, dword /Магическая энергия/
    Plr_Experience                    = $4D4;//, dword /текущий Опыт/
    Plr_Spirit                        = $4D8;//, dword /текущий Дух/
    //Plr_SkillPoins                    = $4DC;//, dword /Доступно очков для распределения/
    Plr_Fury                          = $4E0;//, dword /CHI, Единицы Ярости/
    //Plr_Atack                         = $4E4;// /ПОКАЗАТЕЛЬ Атака/
    //Plr_Def                           = $4E8;// /показатель Защита/
    //Plr_Krit                          = $4EC;// /Шанс крита/
                            //          $4F0
    //Plr_Steal                         = $4F4;// /Скрытность/
    //Plr_Detect                        = $4F8;// /Обнаружение/
    //Plr_Damage                        = $4FC;// /Урон по монстрам/
    //Plr_Protect                       = $500;// /Защита от монстров/
    //Plr_Morale                        = $504;// /Боевой дух/
    //Plr_Fiz_Probiv                    = $508;// /физ. пробивание/
    //Plr_Mag_Probiv                    = $50C;// /маг. пробивание/
    //Plr_Vitality                      = $510;//, dword /Выносливость/
    //Plr_Intellect                     = $514;//, dword /Интеллект/
    //Plr_Strength                      = $518;//, dword /Сила/
    //Plr_Dexterity                     = $51C;//, dword /Ловкость/
    Plr_MaxHP                         = $520;//, dword /Максимум Жизненной Силы/
    Plr_MaxMP                         = $524;//, dword /Максимум Магической Энергии/
                                       //528
                                       //52С
                                       //530
                                       //534
                                       //538
                                       //53С
    //Plr_Hit                           = $540;//, dword /Меткость/
    //Plr_MinPhyzAtk                    = $544;//, dword /Физ Атака, мин/
    //Plr_MaxPhyzAtk                    = $548;//, dword /Физ Атака, макс/
    //Plr_MinMagAtk                     = $57C;//, dword /Магическая атака, минимум/
    //Plr_MaxMagAtk                     = $580;//, dword /Магическая атака, максимум/
    //Plr_DefMetal                      = $584;//, dword /Защита, Металл/
    //Plr_DefWood                       = $588;//, dword /Защита, Дерево/
    //Plr_DefWater                      = $58C;//, dword /Защита, Вода/
    //Plr_DefFire                       = $590;//, dword /Защита, Огонь/
    //Plr_DefEarth                      = $594;//, dword /Защита, Земля/
    //Plr_DefPhyz                       = $598;//, dword /Физическая защита/
    //Plr_Flee                          = $59C;//, dword /Уклонение/
    //Plr_MaxFury                       = $5A0;//, dword /Ярость, максимум/
    Plr_TargetID                      = $5A4;
    //Plr_Money                         = $5A8;//, dword /Деньги/
    //Plr_MaxMoney                      = $5AC;//, dword /Деньги, максимально возможное/
    //Plr_EquipWeapon                   = $5B0;//, word /оружие/
    //Plr_EquipHelmet                   = $5B4;//, word /шлем/
    //Plr_EquipNecklace                 = $5B8;//, word /бижа верх/
    //Plr_EquipManteau                  = $5BC;//, word /накидка/
    //Plr_EquipShirt                    = $5C0;//, word /корпус/
    //Plr_EquipWaistAdorn               = $5C4;//, word /бижа низ/
    //Plr_EquipFootwear                 = $5C8;//, word /штаны/
    //Plr_EquipBoots                    = $5CC;//, word /обувь/
    //Plr_EquipWristBracer              = $5D0;//, word /наручи/
    //Plr_EquipRing1                    = $5D4;//, word /кольцо 1/
    //Plr_EquipRing2                    = $5D8;//, word /кольцо 2/
    //Prl_EquipProjectile               = $5DC; //, word
    Plr_EquipFly                      = $5E0;//, word /ID полета/
    //Plr_EquipBodyFashion              = $5E4;//, word*
    //Plr_EquipLegwearFashion           = $5E8;//, word*
    //Plr_EquipSpecialFootwears         = $5EC;//, word*
    //Plr_EquipArmFashion               = $5F0;//, word*
    //Plr_EquipHead                     = $5F4;//, word*
    //Plr_EquipPigment                  = $5F8;//, word* ID одетого книги
    //Plr_EquipSmiley                   = $5FC;//, word*  ID СМАЙЛИКОВ с права
    //Plr_Equip_GuardianCharm           = $600;//, word* ID одетой хирки на ХР
    //Plr_Equip_SpiritCharm             = $604;//, word*  ID одетой хирки на MР
    //Plr_EquipX1                       = $608;//, word*  ID сборник цитат
    Plr_EquipGenie                    = $60C;//, word /wid одетого джина/
    //Plr_Reputation                    = $610;//, dword D СМАЙЛИКОВ с лева
    //EquipX2                           = $0;  // Жетон престижа
    //Prl_Repa                          = $658; //репутация

    //Plr_ClanID                        = $694;//, dword
    //Plr_ClanPost                      = $698; // /Должность в клане/2-мастер, 3-маршал, 4-майор, 5-капитан
    Prl_ActivePetId                   = $6A4; //ID призванного ездового пета. =0 если не призван/

    //Plr_SpouseID                      = $6F0; //, dword /ID супруг(а)/
    Plr_Name                          = $6FC;//, wchar*8 (UText / Unicode String)
    Plr_ClassID                       = $700;//, byte Значение: 0-воин 1-маг 2-шаман 3-друид 4-оборотень 5-убийца 6-лучник 7-жрец 8-страж 9-мистик
    Plr_Gender                        = $6FC;//, byte /пол/ Значение: 0 - Male, 1 - Female
    Plr_RunMode                       = $708;//, byte    0 - Walk, 1 - Run(скилл)
    Plr_WalkMode                      = $70C;//, byte     0 - Земля, 1 - Вода, 2 - Воздух
    Plr_Meditation                    = $788;//, byte /State/ 16(10) - полет 32(20) -медитация 0 - земляб вода
    //Prl_AngryFlag                     = $798; //, byte  флаг агра мечи
    //Структуры членов группы/
    Plr_Prt_Member                      = $7CC;//, array /Структуры членов группы/
          Prt_Members_Cnt   = $18; //, dword
          Prt_Members_Array = $14;//, i = 0 to 6 - MemberIndex. PartyLeader i = 0 - всегда.
          Prt_MemberWId    = $0C;
          Prt_Lvl          = $10;//, dword
          Prt_HP           = $1C;//, dword
          Prt_MP           = $20;//, dword
          Prt_MaxHP        = $24;//, dword
          Prt_MaxMP        = $28;//, dword
          Prt_LocX         = $34;//, float
          Prt_LocZ         = $38;//, float
          Prt_LocY         = $3C;//, float
          Prt_BuffsArray   = $58; //Список баффов/
          Prt_BuffsCnt     = $60; //, dword /Количество баффов/

    Plr_WaitSkill                     = $7E8;//
        Wsk_SkillID        = $08; //
        Wsk_SkillLvl       = $0C; //
        Wsk_SkillCoolDown  = $10; //  убывающий таймер показывающий сколько еще осталось до отката скилл. Если = 0, то скилл откатился
        Wsk_SkillMaxCoolDown = $14; // максимальный показатель таймера


    Plr_CastID                        = $7E4;//, dword Cast_WID на кого кастуется скилл
    //Plr_OverheadName                  = $810;//, wchar /имя игрока, отображающееся над головой/
    //Plr_NameCatHsop                   = $0;// /Название магазина/
    //Plr_HandPers                      = $0;// /ID персонажа, которого держите на руках (или который вас держит)/
    Plr_Skill_Activation_CoolDown     = $B44;
    Plr_Skill_Activation_Max_CoolDown = $B48;
    Plr_TimeMining                    = $B4C;// /Время копания реса/
    Plr_MaxTimeMining                 = $B50;// /Максимальное время копания реса/
    //Plr_WaitPotFP                     = $0;//, dword /Откат смешанных зелий/
    //Plr_WaitPotHP                     = $0;//, dword /Откат зелий здоровья/
    //Plr_WaitPotMP                     = $0;//, dword /Откат зелий маны/
    //WaitRunaTP                        = $0;//, dword /откат Руна переноса Id=14351/
    //Plr_WaitPlayerInfo                = $0;//,dword /Откат информации/
    //Plr_WaitFoodPet                   = $0;//, dword /Откат кормления/
    //Plr_WaitChemistry                 = $0;//, dword /Откат химии/
     //WaitSos                          = $0; //Откат соски/
    //Plr_WaitCharms                    = $0;//, dword
    Plr_TargetIngID                   = $EA8; // ПРИ НАВЕДЕНИИ ПОКАЗЫВАЕТ WID ЦЕЛИ
    Plr_GroundR                       = $ED4;//, float
    Plr_GroundZ                       = $ED8;//, float
    //Plr_JumpingCnt                    = $0;//
    //BankPass                          = $0;//, byte /Флаг блокировки паролем от банка

    // /Структура инвентаря/
    Inv_Array                         = $10A0;
    Inv_AlCnt           = $14;//, dword /Макс кол-во ячеек в инв/
//+0F74 + 0x0C + [0x04 * I] (I = 0 .. Inv_count) - структура
        Inv_Type              = $08;//
        Inv_ID                = $0C;//, dword
        Inv_Cnt               = $10;//, dword /количество в ячейке/
        Inv_Price             = $1C;//, dword /цена/
        Inv_Name              = $40;//, +$0 Name, char, unicod /описание/

          //5, 10, 13, 16, 19, 20, 27, 31, 32, 38, 40, 46, 39, 52, 58, 62, 63, 64, 65:
            item_1_05 = $58;   item_2_05 = $04;
          //11,17: //17-камни   11-скилы
            item_1_11 = $58;   item_2_11 = $08;
          //43: //гпб
            item_1_43 = $60;   item_2_43 = $04;
          //8, 9, 22, 23: //9- хлеб, банки    8-дк, ресы, трава, формы, рупор, главы
            item_1_08 = $60;   item_2_08 = $0C;
          //26: //яйца
            item_1_26 = $AC;   item_2_26 = $04;
          //34: //34-книги
            item_1_34 = $C0;   item_2_34 = $04;
          //4: //4-соски
            item_1_04 = $C0;   item_2_04 = $08;
          //18:
            item_1_18 = $C4;   item_2_18 = $04;
          //36, 37: //хиры
            item_1_36 = $C8;   item_2_36 = $04;
          //2: //strella
            item_1_02 = $D8;   item_2_02 = $08;
          //6: //стиль
            item_1_06 = $DC;   item_2_06 = $0C;
          //7:
            item_1_07 = $E0;   item_2_07 = $04;
          //0, 3: //0-шмот 3-бижа
            item_1_00 = $EC;   item_2_00 = $0C;
          //15: //оружее
            item_1_15 = $F4;   item_2_15 = $0C;
          //41: //джины
            item_1_41 = $118;  item_2_41 = $04;

        Inv_GlType            = $58;//  +$0
        Inv_Lvl               = $64;// /Требуемый уровень для потов/
        //StrengthCur = +68
      //StrengthMax = +6c
        //Inv_CrafterName       = $78;//, char, unikod /Имя создателя/
        //Inv_ExtraEffectsPtr   = $A4;//, dword, adrarray /доп свойства/
               { +0x00 Effect1Id, dword /ID 1 го свойства/
                +0x0C Effect1Value, float/dword /значение 1 го свойства/
                +0x1C Effect2Id, dword /ID 2 го свойства/
                +0x28 Effect2Value, float/dword /значение 2 го свойства/
                +0x38 Effect3Id, dword /ID 3 го свойства/
                +0x44 Effect3Value, float/dword /значение 3 го свойства/ }
        //Inv_ExtraEffectsCount = $A8;//, ushort, /кол-во доп свойств/

    //Структура экипировки/
    Plr_EquipmentArray                = $10A4;
    //0C+[(0-x)*4] /Ячейка/
        Plr_StrengthWeapon    = $74;
        Plr_StrengthWeaponMax = $78;

    // квестовый инвентарь
    //Quest_Items_Array                 = $0;//

    // ReviewPlayerArr
   // ReviewPlayerArr                   = $0;
 {
+0x08 ID
+0x10 Number
+0x40 Description}

    // массив действий
    Action_Array                      = $1500;//
  {  +C Stand Action
+14 Current Action
+14 +10 P.Target ID
+30 +4 MovePoint Action
+30 +4 + 20 Destination LocX
+30 +4 + 24 Destination LocZ
+30 +4 + 28 Destination LocY
+30 +8 MoveTarget Action
+30 +8 +20 Destination ID
+30 +10 +30 M.Target ID
+30 +2C Mining Action
+30 +30 PetEvocative Action }

    //Квестовый массив/
    Plr_Quest_Array                   = $1508;//
    Quest_count               = $44;//
//+13DC + 0x08 + (0x8+I*0x20) Quest ID (I = 0 .. Quest count)

    // массив петов
    Plr_Pet_Array                     = $1518;//
        Pet_Hutch       = $08; //Номер призванного пета (0-9), (-1) - пет не вызван/
        ActivePetId     = $64;// /Призванный пет/

//+(PetHutch*4+0x10), i=0-4(9)

        Pet_Loyale      = $04;//, dword /Верность/
        Pet_Hunger      = $08;//, dword /Голод, 0, 1, 2-изголодавшийся, 6,7-полуживой, 8-умирающий/
        Pet_Class       = $18;// /класс пета - 0-ездовой, 1-друид, 2-декор/
        Pet_HPPrc       = $1C;//, float /Жизнь, от 0.00 до 1.00/
        Pet_MPPrc       = $20;//, float /Мана, от 0.00 до 1.00 - для мистиков/
        Pet_Lvl         = $24;//, dword /Уровень/
        Pet_Exp         = $2C;//, dword /Опыт/
        Pet_Name        = $34;//, wchar (UText / Unicode String) /Имя пета/
        Pet_HP          = $38;//, dword /Жизнь/
        Pet_MP          = $3C;//, dword /Мана - для мистиков/
        Pet_SkillId1    = $40;//, dword /Id скила 1/
        Pet_SkillLvl1   = $44;// /Уровень скила 1, возм значения 0,1,2,3,4,5/
        Pet_WaitSkill1  = $48;// /Откат скилла 1/
        Pet_SkillId2    = $50;//, dword /Id скила 2/
        Pet_SkillLvl2   = $54;// /Уровень скила 2/
        Pet_WaitSkill2  = $58;// /Откат скилла 2/
        Pet_SkillId3    = $60;//, dword /Id скила 3/
        Pet_SkillLvl3   = $64;// /Уровень скила 3/
        Pet_WaitSkill3  = $68;// /Откат скилла 3/
        Pet_SkillId4    = $70;//, dword /Id скила 4/
        Pet_SkillLvl4   = $74;// /Уровень скила 4/
        Pet_WaitSkill4  = $78;// /Откат скилла 4/
        Pet_SkillId5    = $80;//, dword /Id скила 5/
        Pet_SkillId6    = $90;//, dword /Id скила 6/
        Pet_SkillId7    = $A0;//, dword /Id скила 7/
        Pet_MaxHP       = $150;// /Не для друидов, для мистиков/

    // массив скиллов persa
//+1400 + [0x04 * I] (I=0 .. Skills_count)
    Plr_Skill_Array                   = $152C;
    Plr_Skill_Count                   = $1530;//

    //массив скилов джина
    Plr_GenieSkill_Array              = $155C;
    Plr_GenieSkill_Count              = $1560;

    Target_Krd                        = $15C8;// +18C X, +190 Z, +194 Y, +D64 ID
          Target_X     = $18C;//
          Target_Z     = $190;//
          Target_Y     = $194;//

    Plr_ColDush                       = $17F0;

//Структура игроков

//BA +0x1C(Array_addr_1) +0x1C(Array_addr_2) +0x20(Player_str) +0x14(Player_Cnt), dword /Количество/
//BA +0x1C +0x1C +0x20 +0x18(Player_array) +(i*0x4) +0x4 /i = 0 - 0x300/
//или
//BA +0x1C +0x34 +0x38C +0x88 +(i*0x4) /i = 0 - Count/
//или
//BA +0x1C +0x1C +0x20 +0x88 +(i*0x4) /i = 0 - Count/
{
Длинна структуры 0x91С байта

+0X3C LocX,float /Координата X/ (X/10+400)
+0x44 LocY,float /Координата Y/ (Y/10+550)
+0x40 LocZ,float /Координата Z/ (Z/10)
+0x46C ID, dword
+0x478 Lvl, dword
+0x47C WID, dword
+0x480 HP, dword
+0x484 MP, dword
+0x4C0 MaxHP, dword
+0x4C4 MaxMP, dword
+0x59C HPCharm
+0x5A0 MPCharm
+0x638 +0x0 Name, wchar (UText / Unicode String)
+0x6F8 MagAtk /Цель для маг атаки/
+0x724 +0x0 NameCatHsop, wchar (UText / Unicode String) `(734)
+0x--- PhizAtk /Цель для физ атаки/}

//Структура моба, NPC, пета
//BA + 0x1C(array_addr_1) + 0x1C(array_addr_2) + 0x20(mob_str) + 0x14(mob_Cnt), dword /Количество/
//BA + 0x1C + 0x1C + 0x20 + 0x18(mob_array) + [i*0x4] /i = 0 - 0x300/
//BA + 0x1C + 0x1C + 0x20 + 0x58 + [i*0x4] /i = 0 - 0x300/ ?
    Mob_Str        = $20;
    Mob_Cnt        = $18;
    Mob_Array      = $5C;
    Mob_LocX       = $3C;//
    Mob_LocZ       = $40;//
    Mob_LocY       = $44;//
    Mob_Type       = $B4;// Значение: 6 - моб, 7 - NPC, 9 - Pet
    Mob_WID        = $114;//
    Mob_ID         = $11C;//
    Mob_Lvl        = $120;//
    Mob_HP         = $128;//
    Mob_MaxHP      = $17C;//
    Mob_Feature    = $250;//
    {Значение:
       0 - Нет
       1 - Ускорение
       2 - Pacifist
       3 - Усиленная защита
       4 - Усиленная магическая защита
       5 - Усиленная атака
       6 - Усиленная магия
       7 - Берсерк
       8 - Улучшенное здоровье
       9 - Слабость }
    Mob_Name       = $25C;//
    Mob_Distance   = $280;//
    Mob_Envilopment = $2B4;//  /0-земля 1-вода 2-воздух/
    Mob_FlagAction = $2B8;// /1-стоит, 0-двигается/
    Mob_Action     = $2C4;// (0 - Пассивный; 2 - Физ.атака; 3 - Маг.атака; 4 - Умер; 5 - Двигается)
    Mob_AttackFlag = $2d0;//  /0 - нет, 1 - атакует/   2d0
    Mob_PTargetID  = $2d4;//  dword (ID для Физ.атаки) 2d4
    Mob_MTargetID  = $2cc;//  dword (ID для Маг.атаки)  2cc
   { Может кто-нибудь поделиться
MobPTargetID = ???
MobMTargetID = ???
Для переагра нужно, без него бот дохнет слишком часто
   $2f0 mag удар
$2f4 mob в атаке
$2f8 физ удар}
    Mob_Buffs      = $320;//
    Mob_CountBuffs = $328;//
    //Attack = +2C4

//Структура лута
//BA + 0x1C(array_addr_1) + 0x1C(array_addr_2 + 0x24(lut_str) + 0x14(lut_cnt) Count, dword /Количество/
//BA + 0x1C + 0x1C + 0x24 + 0x18(lut_array) + [i*0x4] /i = 0 - 0x300/
    Lut_Str        = $24;
    Lut_Cnt        = $14;
    Lut_Array      = $1C;
    Lut_LocX       = $3C;//,float /Координата X/ (X/10+400)
    Lut_LocZ       = $40;//,float /Координата Y/ (Y/10+550)
    Lut_LocY       = $44;//,float /Координата Z/ (Z/10)
    Lut_WID        = $110;//, dword
    Lut_ID         = $114;//, dword
    Lut_Type       = $150;//, 2byte
    Lut_Lvl        = $154;//, dword
    Lut_Distance   = $158;//, float
    Lut_Name       = $168;//, wchar (UText / Unicode String)

    //массив умений в базе buff_str

    base_buff_count = $174;
    base_buff_array = $168;

    //массив умений в базе skillstr

    base_skill_Count = $134;
    base_skill_array = $128;

//Структура кланов

{BA +218 +4 Count, dword /Количество/
BA +218 +8 +[i*4] + (+0)^J: Clans Struct (I in [0..389])

+4 ID, dword
+8 +0 See: +4
+8 +4 +0 Name, wchar (UText / Unicode String)
+8 +8 Lvl, dword
+C See: +4 }


    ChatStartAddr     = $00E61250;  //y
    ChatNumberAddr    = $00E6125C; //y

    packet_addr       = $0081EF40;
    fulltarget_addr   = $00812BB0;
    NPCSelect_addr    = $00857190;
    talktonpc_addr    = $00813030;
   // ButtonPress_addr = $00A64260; //Y
    IdCancel_addr     = $00DD732C;
    AutoPath_addr     = $00459590;
    GUI               = $00A69420;
    Assist_addr       = $008591C0;
    Jump_addr         = $00404FC0;//noy

    unfreeze_addr     = $00E5BC1C;
    anfreeze_addr     = $0044C300;
    anfreeze_flag     = $01B0;
    freeze_flag       = $00;

    walkx_inject_addr = $004C84C0;
    walky_inject_addr = $004CEA40;
    walkz_inject_addr = $004C8AD0;

    lut_pickup_addr   = $004BDF40;
    skill_addr        = $004B5FC0;
    SkillGenie_addr   = $005538E0;
    OnlineFlag        = $00E5CBB4;

    InviteCount_addr  = $00E6795C;//Y
    InviteStruct_addr = $00E67950;//Y

    BPoint_addr       = $00E7DC50;
    MaxPoint_addr     = $00E7DC4C;
    BashWID_addr      = $00E7DBAC;//Y
    Point_1_addr      = $00E7DEE8;
    Point_2_addr      = $00E7DEEC;
    Point_3_addr      = $00E7DEF0;
    Point_4_addr      = $00E7DEF4;
    Point_9_addr      = $00E7DF08;
    Point_10_addr     = $00E7DF0C;

 {   Разбор запроса и ответа приема в пати

Офсеты
00A5FD90
+00 если 00A80A38, то окошко запроса пати уже закрылось (хотя на самом деле еще не знаю, что означает это число)
+04 00A80A48 - тоже, что выше
+10 ID перса, запрашивающего пати
+14 ID пати
если запрашивают 2 перса одновременно, то 2й
+1С контроль закрытия
+20
+2С ID перса
+30 ID пати

для инжектов
00651440 пригласить в пати
00651480 принять пати

Теперь вопрос  если кто то послал запрос о дружбе - ID перса и запроса падают по тем же адресам. Не проверял, но предполагаю, что "взять на руки" будет тоже там. Как отличить, есть предположения?
 // dw($B30258 + $C) - кол-во пунктов в приглашении - i
// str(dw(dw($B30258) + i*1C + $4)) - текст приглашения
// dw(dw($B30258) + i*1C + $10) - ID приглашающего
// dw(dw($B30258) + i*1C + $14) - partyInviteCounter
   }
implementation

end.
С этими изменениями вышла версия, как 61 Скачать [Ссылки могут видеть только зарегистрированные пользователи. ]

Последний раз редактировалось diagnost; 17.10.2016 в 01:06. Причина: Добавлено сообщение
  Ответить с цитированием
Старый 09.04.2019, 02:21   #22
 Разведчик
Аватар для superdizel
 
superdizel никому не известный тип
Регистрация: 15.11.2009
Сообщений: 3
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Исходников PW_CrazyBot_1_5_3 и его доработка

Пооект заброшен?
  Ответить с цитированием
Старый 09.04.2019, 18:14   #23
 Разведчик
Аватар для Kavaii^_^
 
Kavaii^_^ неизвестен в этих краяхKavaii^_^ неизвестен в этих краяхKavaii^_^ неизвестен в этих краяхKavaii^_^ неизвестен в этих краяхKavaii^_^ неизвестен в этих краяхKavaii^_^ неизвестен в этих краях
Регистрация: 07.01.2011
Сообщений: 38
Популярность: -517
Сказал(а) спасибо: 50
Поблагодарили 7 раз(а) в 7 сообщениях
Отправить сообщение для Kavaii^_^ с помощью Skype™
 
По умолчанию Re: Исходников PW_CrazyBot_1_5_3 и его доработка

ну если 3 года не отвечали, наверное?
  Ответить с цитированием
Старый 10.04.2019, 08:33   #24
Super Moderator
 Маршал
Аватар для Тигрь
 
Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(Тигрь сломал счётчик популярности :(
Регистрация: 05.05.2009
Сообщений: 875
Популярность: 48955
Золото Zhyk.Ru: 850
Сказал(а) спасибо: 155
Поблагодарили 739 раз(а) в 274 сообщениях
 
По умолчанию Re: Исходников PW_CrazyBot_1_5_3 и его доработка

Цитата:
Сообщение от superdizelПосмотреть сообщение
Пооект заброшен?

исходники проекта открытые, бери и дорабатывай как тебе нужно.
________________
Продаю приват читы для AION Absolute, desteny 3.5, Legend, Cataclysm, Ru, EU, NA
Продаю многооконку на R2 Пишу читы на заказ под любые игры. Предложения в ЛС.
Все мои читы/программы/статьи тут: http://zhyk.ru/forum/showpost.php?p=38501&postcount=21
  Ответить с цитированием
Старый 11.04.2019, 07:16   #25
 Разведчик
Аватар для tonyphillips
 
tonyphillips никому не известный тип
Регистрация: 05.08.2017
Сообщений: 0
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Исходников PW_CrazyBot_1_5_3 и его доработка

Цитата:
Сообщение от ТигрьПосмотреть сообщение
исходники проекта открытые, бери и дорабатывай как тебе нужно.


помогите поставить офсеты версии 1.5.1 2305
  Ответить с цитированием
Старый 28.09.2019, 08:35   #26
 Разведчик
Аватар для lulo1
 
lulo1 никому не известный тип
Регистрация: 28.09.2019
Сообщений: 1
Популярность: 10
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
 
По умолчанию Re: Исходников PW_CrazyBot_1_5_3 и его доработка

Hello ,PW source code link please update, please send a copy, thank you.
  Ответить с цитированием
Старый 01.10.2019, 10:09   #27
 Разведчик
Аватар для den57
 
den57 излучает ауруden57 излучает ауруden57 излучает ауруden57 излучает ауруden57 излучает ауруden57 излучает ауру
Регистрация: 24.11.2010
Сообщений: 12
Популярность: 580
Сказал(а) спасибо: 1
Поблагодарили 2 раз(а) в 2 сообщениях
 
По умолчанию Re: Исходников PW_CrazyBot_1_5_3 и его доработка

Hello, [Ссылки могут видеть только зарегистрированные пользователи. ]
  Ответить с цитированием
Старый 30.04.2020, 11:43   #28
 Разведчик
Аватар для Tama11
 
Tama11 никому не известный тип
Регистрация: 19.03.2011
Сообщений: 16
Популярность: 16
Сказал(а) спасибо: 12
Поблагодарили 3 раз(а) в 2 сообщениях
Отправить сообщение для Tama11 с помощью Skype™
 
По умолчанию Re: Исходников PW_CrazyBot_1_5_3 и его доработка

Ссылка на мыле не рабочая. Может кто актуальную скинуть и желательно на нормальном хосте, чтобы не удалялось по времени?
  Ответить с цитированием
Старый 01.05.2020, 07:00   #29
 Пехотинец
Аватар для DevZI
 
DevZI блестящий пример для подражанияDevZI блестящий пример для подражанияDevZI блестящий пример для подражанияDevZI блестящий пример для подражанияDevZI блестящий пример для подражанияDevZI блестящий пример для подражанияDevZI блестящий пример для подражанияDevZI блестящий пример для подражанияDevZI блестящий пример для подражанияDevZI блестящий пример для подражанияDevZI блестящий пример для подражания
Регистрация: 16.07.2013
Сообщений: 60
Популярность: 1754
Сказал(а) спасибо: 184
Поблагодарили 28 раз(а) в 17 сообщениях
 
По умолчанию Re: Исходников PW_CrazyBot_1_5_3 и его доработка

Цитата:
Сообщение от Tama11Посмотреть сообщение
Ссылка на мыле не рабочая. Может кто актуальную скинуть и желательно на нормальном хосте, чтобы не удалялось по времени?

https://zhyk.ru/forum/showpost.php?p...6&postcount=61
  Ответить с цитированием
Пользователь сказал cпасибо:
Tama11 (02.05.2020)
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Целый пак исходников для Delphi7(450 исходников) DarkComet4643 Школа Читера 3 08.12.2014 21:22
Доработка/Исправление скриптов dlyameo Общение и обсуждение, архив Lineage 2 1 21.03.2014 16:34
[Уязвимость] Баг или не доработка сборки Shmatok Баги и читы Lineage 2 3 27.12.2013 15:41
[Баг] Телепортация в Мискритах. Доработка tatarin00793 Баги игр ВКонтакте 9 08.01.2013 08:31
[Информация] Доработка развода на шелл NoDonate Базы серверов и брут 0 18.01.2011 18:32

Заявление об ответственности / Список мошенников

Часовой пояс GMT +4, время: 18:22.

Пишите нам: [email protected]
Copyright © 2024 vBulletin Solutions, Inc.
Translate: zCarot. Webdesign by DevArt (Fox)
G-gaMe! Team production | Since 2008
Hosted by GShost.net