Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2010, 15:28   #91
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,281
По умолчанию

Так у нас то же самое и делается.
Цитата:
Хм... Что-то у меня ничего не выходит, или я не так пользуюсь...
Код:
function GetZdorovye: Integer;
var
res: int64;
begin
  res:=0;
  read_value($0049DD9C, 4, res);
  Result:=res;
end;

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  res: int64;
begin
  res:=0;
  read_value($0049DBFC, 4, res);
  hpMax:=(res);
  hpMin:= Round (hpMax * 0.4);
  hpNormal:= Round (hpMax * 0.8);
  NadoLechitsa:= False;
  HotKey:= Ord ('1');
  Timer1.Enabled:=True;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Timer1.Enabled:=False;
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
  HitPoints: Integer;
begin
  HitPoints:= GetZdorovye;

  NadoLechitsa:= (HitPoints < hpMin)
  or (NadoLechitsa and (HitPoints < hpNormal));
  if NadoLechitsa
  then begin
    PostKeyEx32(HotKey, [ssAlt], False);
    Inc (HotKey);
  end;
  if HotKey = Ord ('7')
  then Timer1.Enabled:= False;
end;
У меня вот так горячие клавиши стали нажиматся вовремя. Только окорочка не кушались. Я подозреваю, что во время боя персонаж не может использовать предметы. Вообще заметил, что во время боя персонах плохо реагирует на команды.

Последний раз редактировалось Sibedir; 05.10.2010 в 15:31.
Sibedir вне форума Ответить с цитированием
Старый 05.10.2010, 16:06   #92
xRamzeSx
Форумчанин
 
Регистрация: 24.01.2010
Сообщений: 151
По умолчанию

Всё великолепно работает, кушает рыбку после того, как отбежал от атаки, но...
Можно ли выполнять данную процедуру бесконечным путём, т.е повтором, пока не восстановится нормальное кол-во хп? Если можно, как это записать в коде?

И сразу вопрос - как сделать просто клики сочетания клавиш, т.е без хп, а просто поочерёдное выполнение сочетаний Alt+1... Alt+6 и заново, пока не нажмём кнопку "Стоп" -?
xRamzeSx вне форума Ответить с цитированием
Старый 06.10.2010, 08:25   #93
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,281
По умолчанию

Код:
procedure TForm1.Timer1Timer(Sender: TObject);
var
  HitPoints: Integer;
begin
  PostKeyEx32(HotKey, [ssAlt], False);
  Inc (HotKey);
  if HotKey = Ord ('7') then HotKey = Ord ('1');
end;
Sibedir вне форума Ответить с цитированием
Старый 06.10.2010, 15:36   #94
xRamzeSx
Форумчанин
 
Регистрация: 24.01.2010
Сообщений: 151
По умолчанию

Всё работает.
Есть возможность реализовать данные сочетания клавиш на всех ячейках кармана, исли известны только адреса ячеек? Горячих клавиш на этих ячейках нет, но есть функция "Use On" как и на Alt+1... Alt+6.
xRamzeSx вне форума Ответить с цитированием
Старый 06.10.2010, 19:32   #95
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,281
По умолчанию

Цитата:
Есть возможность реализовать данные сочетания клавиш на всех ячейках кармана, исли известны только адреса ячеек?
Есть даже возможность автоматически запускать игру, вводить логин и пароль и управлять персонажем без участия пользователя (используя ИИ). Технически это возможно. Но кто здесь будет еще этим заниматься кроме вас?
Sibedir вне форума Ответить с цитированием
Старый 07.10.2010, 10:50   #96
xRamzeSx
Форумчанин
 
Регистрация: 24.01.2010
Сообщений: 151
По умолчанию

Цитата:
Но кто здесь будет еще этим заниматься кроме вас?
Я и только я. Поверьте, мне самому не приятно просить Вас. Если бы я мог сам всё написать, я бы давно всё сделал, но увы, прошу помощи у Вас, т.к Вы больше меня в этом разбираетесь.
xRamzeSx вне форума Ответить с цитированием
Старый 07.10.2010, 11:07   #97
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,281
По умолчанию

Да я это к тому, xRamzeSx, что я тему вел только пока был мой интерес: освежить в памяти азы управления чужим приложением. Разбираться дальше для меня нет смысла. К тому же разбераться дальше уже не нужно. Принципиальные механизмы мы уже вспомнили: эмулирование действий устройств ввода, отправка сообщений приложениям, работа с адресным пространством чужих приложений. Используя эти механизмы, можно впринципе любым приложением управлять.
В вашем случае методика такая:
- узнаем адрес нужной переменной
- узнаем формат данных по этому адресу
- создаем программу, которая следит за значениями в указанных адресах и соответственно реагирует
Заниматься всем вышеуказанным мне нет ни какого резона. Какой смысл разбирать конкретный частный случай, ведь в других программах свои адреса, свои форматы и свои нюансы управления. Только время потрачу, а результата никокого. Я ведь не собираюсь играть в эту игру.
Так что извиняй, дальше сам. К тому же основа уже есть, дальше по аналогии.
Sibedir вне форума Ответить с цитированием
Старый 07.10.2010, 11:18   #98
xRamzeSx
Форумчанин
 
Регистрация: 24.01.2010
Сообщений: 151
По умолчанию

Хорошо, спасибо Вам за все коды, с которыми Вы помогли, дальше всё буду делать по анологии.

Тему можно закрыть.
xRamzeSx вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Горячие клавиши dmitriegorovih Общие вопросы Delphi 2 10.09.2010 14:58
Горячие клавиши. Lazio Помощь студентам 2 08.09.2010 02:20
Горячие клавиши в Delphi Maddy Помощь студентам 7 23.04.2010 17:43
Горячие клавиши Altera Общие вопросы Delphi 5 13.09.2008 21:27