Здрасьте, вопрос, реально ли реализовать в кибор для ммо рпг от первого лица::
1) Определение координат персонажа (своего)
2) Перемещение по координатом (аля по линии) добавив проверки, откланяется ли персонаж от заданной линии координат движении или нет, если да то нажать A или S (т.к персонажа будет шатать при передвижении по "прямой" в права и в лево)
3) При достижении определенных координат (куда нужно дойти) нажать на кнопку действия "F" и после получения текста на экране отжать кнопку.
4) После получения строки на экране зажать кнопку A на 2 секунды и отжать, вместе с этим повернуть курсор в "право" и нажать на действие "F" после получения текстового сообщение от игры на экране отжать "F" и двигаться по другим заданным координатам и делать те же действия.
Есть вариант как это реализовать? моих мозгов не хватает на такое, но я еще не все изучил на форуме в обучениях.
Термен Контролл не понятен (в программировании я плох, но в голове есть алгоритм выполнения действий, но знаний для реализования нет)
Можно ли кого то попросить написать код (или визуальный код ) в кибор для определенной игры с комментами к коду или просто пояснение что за что отвечает и т д, Платно либо же бесплатно. Заранее спасибо.
Буквально день назад узнал о данном редакторе, пока ничего не понятно, но очень интересно. было бы неплохо слепить свой "adrenalin" как в л2 только для различных игр.
1. laltest - 10 Января, 2024 - 23:22:02 - перейти к сообщению
2. Ilya001 - 11 Января, 2024 - 05:01:36 - перейти к сообщению
laltest пишет:
реально ли реализовать в кибор
Реально, но чтобы бот определял свои координаты и перемещался по заданным координатам нужно работать с памятью процесса игры, из памяти процесса игры можно получить не только свои координаты но и другие, к примеру монстров(мобы, нпс(npc), и других игроков), объектов итд. Но одно дело получить координаты, а другое применять эти полученные координаты, составить алгоритм для правильной работы бота.
3. laltest - 11 Января, 2024 - 05:57:52 - перейти к сообщению
а есть ссылочки где можно почитать как работать с памятью игры?) мне сразу пришла идея о том чтобы добавить какой нибудь радар, где будут другие игроки показаны (аля точкой) ну и ресурсы
Вообще, было бы неплохо найти на данном форуме сенсейя) можно и на платной основе)
а то с нуля гораздо больше времени уйдет на изучение чего либо.
Вообще, было бы неплохо найти на данном форуме сенсейя) можно и на платной основе)
а то с нуля гораздо больше времени уйдет на изучение чего либо.
4. Ilya001 - 11 Января, 2024 - 06:50:22 - перейти к сообщению
laltest пишет:
а есть ссылочки где можно почитать как работать с памятью игры?) мне сразу пришла идея о том чтобы добавить какой нибудь радар, где будут другие игроки показаны (аля точкой) ну и ресурсы
Вообще, было бы неплохо найти на данном форуме сенсейя) можно и на платной основе)
а то с нуля гораздо больше времени уйдет на изучение чего либо.
Вообще, было бы неплохо найти на данном форуме сенсейя) можно и на платной основе)
а то с нуля гораздо больше времени уйдет на изучение чего либо.
В ютубе можешь поискать видеоуроки по cheat engine, для начала нужно научиться находить нужных адресов с координатами. Вообще это сложный путь, игр много и к каждому свой подход, тебе повезет если в игре не будет античита, иначе не получишь доступа к памяти игры, и в некоторых играх данные зашифруется, это тоже усложнить задачу.
Крч изучай материалы с гугла и с ютуба.
5. laltest - 11 Января, 2024 - 07:25:33 - перейти к сообщению
В любом случае спс за ответ, а насчет сложного пути, надо сделать) придется по пыхтеть, довольстоваться скудным функционалам аля то что у тебя на мониторе происходит и задейстовать клики мыши такое себе удовольствие) не исключаю что в киборе можно гораздо больше сделать) но туторы не совсем для людей сделаны) а скорее на такие же как автор отшибленых прогеров)
6. Ilya001 - 11 Января, 2024 - 09:47:09 - перейти к сообщению
laltest пишет:
и задейстовать клики мыши такое себе удовольствие
Понимаю, но кому то и это не по силу) Через кибор тоже можно реализовать бота который будет работать с памятью игры, это так информация.
7. laltest - 11 Января, 2024 - 10:19:12 - перейти к сообщению
[quote=Ilya001]
Полезная инфа) но это мне кажется можно реализовать посредством кодинга а не функионалом программы, в кодинге я нуль) значет нужно копать) лучше конечно если разраб разьяснит, но поддерживает ли он свое чудо сейчас хызы.
Есть такой код по GPS передвиженнию из Adrenalin`a
Хз как он будет работать если чисто вставить в кибор и чутка подредактировать (пока хз как)
uses SysUtils;
function GPS_MoveTo(x, y, z: integer): boolean; overload; // GPS движение по координате
var dist: single; i: integer;
begin
result:= false;
// для начала вычисляем маршрут между нашим текущим местоположением и точкой, куда нам нужно
// вызов этой функции записывает точки в GPS.Items, а в dist мы присваиваем длину построенного маршрута
dist:= GPS.GetPath(User.X, User.Y, User.Z, x, y, z);
if (GPS.Count > 0) then begin // если маршрут построился, то
Print(Format('[GPS] Бегу в точку (x=%d, y=%d, z=%d), дистанция: %n м, всего %d точек', [x, y, z, dist, GPS.Count]));
// для каждой точки из построенного маршрута...
for i:= 0 to GPS.Count-1 do begin
// проверяем исключительные ситуации, и если что досрочно прерываем движение, можно добавить свои условия
if (User.Dead) then begin
Print('[GPS] Умер во время движения...';
exit;
end;
// пробуем двигаться в очередную точку маршрута, и если у нас не получается, то можно предпринять какие-то меры
if (not Engine.MoveTo(Round(GPS.Items(i).X), Round(GPS.Items(i).Y), Round(GPS.Items(i).Z))) then begin
Print(Format('[GPS] Ошибка при движении в точку #%d (x=%d, y=%d, z=%d)', [i, x, y, z]));
// тут можно пытаться двигаться в предыдущую точку, или заюзать СОЕ и перезапустить скрипт
exit;
end;
end;
result:= Engine.MoveTo(x, y, z) or (User.DistTo(x, y, z) < 150);
end else Print('[GPS] Не смог найти нужный маршрут'; // если же маршрут не построился, то пишем об этом
end;
function GPS_MoveTo(spot_name: string): boolean; overload; // GPS движение по названию точки
var dist: single; i, last: integer;
begin
result:= false;
// единственное отличие этой функции от предыдущей - только в вызове другой функции для построения маршрута
dist:= GPS.GetPathByName(User.X, User.Y, User.Z, spot_name);
if (GPS.Count > 0) then begin
Print(Format('[GPS] Бегу в точку <%s>, дистанция: %d м, всего %d точек', [spot_name, dist, GPS.Count]));
for i:= 0 to GPS.Count-1 do begin
if (User.Dead) then begin
Print('[GPS] Умер во время движения...';
exit;
end;
if (not Engine.MoveTo(Round(GPS.Items(i).X), Round(GPS.Items(i).Y), Round(GPS.Items(i).Z))) then begin
Print(Format('[GPS] Ошибка при движении в точку #%d (x=%d, y=%d, z=%d)', [i, GPS.Items(i).X, GPS.Items(i).Y, GPS.Items(i).Z]));
// тут можно пытаться двигаться в предыдущую точку, или заюзать СОЕ и перезапустить скрипт
exit;
end;
end;
last:= GPS.Count-1;
result:= Engine.MoveTo(Round(GPS.Items(last).X), Round(GPS.Items(last).Y), Round(GPS.Items(last).Z))
or (User.DistTo(Round(GPS.Items(last).X), Round(GPS.Items(last).Y), Round(GPS.Items(last).Z)) < 150);
end else Print('[GPS] Не смог найти нужный маршрут';
end;
procedure GPS_LoadMap(path: string); // функция-обертка для загрузки GPS карты
var count: integer;
begin
if FileExists(path) then begin
count:= GPS.LoadBase(path);
Print('[GPS] Загружено: '+IntToStr(count)+' точек';
end else begin
Print('[GPS] Не смог найти карту! Остановка скрипта';
Print('[GPS] Проверьте ее наличие: '+path);
Script.Stop;
end;
end;
begin
GPS_LoadMap(ExePath+'\gps_map.db3'; // Загружаем карту на этапе инициализации скрипта
// code..
// и далее в коде уже под нужными условиями вызываем
GPS_MoveTo(-91036, 248044, -3560);
// или
GPS_MoveTo('Elf_Newbie_Helper';
end.
laltest пишет:
Через кибор тоже можно реализовать бота который будет работать с памятью игры, это так информация.
Полезная инфа) но это мне кажется можно реализовать посредством кодинга а не функионалом программы, в кодинге я нуль) значет нужно копать) лучше конечно если разраб разьяснит, но поддерживает ли он свое чудо сейчас хызы.
Есть такой код по GPS передвиженнию из Adrenalin`a
Хз как он будет работать если чисто вставить в кибор и чутка подредактировать (пока хз как)
uses SysUtils;
function GPS_MoveTo(x, y, z: integer): boolean; overload; // GPS движение по координате
var dist: single; i: integer;
begin
result:= false;
// для начала вычисляем маршрут между нашим текущим местоположением и точкой, куда нам нужно
// вызов этой функции записывает точки в GPS.Items, а в dist мы присваиваем длину построенного маршрута
dist:= GPS.GetPath(User.X, User.Y, User.Z, x, y, z);
if (GPS.Count > 0) then begin // если маршрут построился, то
Print(Format('[GPS] Бегу в точку (x=%d, y=%d, z=%d), дистанция: %n м, всего %d точек', [x, y, z, dist, GPS.Count]));
// для каждой точки из построенного маршрута...
for i:= 0 to GPS.Count-1 do begin
// проверяем исключительные ситуации, и если что досрочно прерываем движение, можно добавить свои условия
if (User.Dead) then begin
Print('[GPS] Умер во время движения...';
exit;
end;
// пробуем двигаться в очередную точку маршрута, и если у нас не получается, то можно предпринять какие-то меры
if (not Engine.MoveTo(Round(GPS.Items(i).X), Round(GPS.Items(i).Y), Round(GPS.Items(i).Z))) then begin
Print(Format('[GPS] Ошибка при движении в точку #%d (x=%d, y=%d, z=%d)', [i, x, y, z]));
// тут можно пытаться двигаться в предыдущую точку, или заюзать СОЕ и перезапустить скрипт
exit;
end;
end;
result:= Engine.MoveTo(x, y, z) or (User.DistTo(x, y, z) < 150);
end else Print('[GPS] Не смог найти нужный маршрут'; // если же маршрут не построился, то пишем об этом
end;
function GPS_MoveTo(spot_name: string): boolean; overload; // GPS движение по названию точки
var dist: single; i, last: integer;
begin
result:= false;
// единственное отличие этой функции от предыдущей - только в вызове другой функции для построения маршрута
dist:= GPS.GetPathByName(User.X, User.Y, User.Z, spot_name);
if (GPS.Count > 0) then begin
Print(Format('[GPS] Бегу в точку <%s>, дистанция: %d м, всего %d точек', [spot_name, dist, GPS.Count]));
for i:= 0 to GPS.Count-1 do begin
if (User.Dead) then begin
Print('[GPS] Умер во время движения...';
exit;
end;
if (not Engine.MoveTo(Round(GPS.Items(i).X), Round(GPS.Items(i).Y), Round(GPS.Items(i).Z))) then begin
Print(Format('[GPS] Ошибка при движении в точку #%d (x=%d, y=%d, z=%d)', [i, GPS.Items(i).X, GPS.Items(i).Y, GPS.Items(i).Z]));
// тут можно пытаться двигаться в предыдущую точку, или заюзать СОЕ и перезапустить скрипт
exit;
end;
end;
last:= GPS.Count-1;
result:= Engine.MoveTo(Round(GPS.Items(last).X), Round(GPS.Items(last).Y), Round(GPS.Items(last).Z))
or (User.DistTo(Round(GPS.Items(last).X), Round(GPS.Items(last).Y), Round(GPS.Items(last).Z)) < 150);
end else Print('[GPS] Не смог найти нужный маршрут';
end;
procedure GPS_LoadMap(path: string); // функция-обертка для загрузки GPS карты
var count: integer;
begin
if FileExists(path) then begin
count:= GPS.LoadBase(path);
Print('[GPS] Загружено: '+IntToStr(count)+' точек';
end else begin
Print('[GPS] Не смог найти карту! Остановка скрипта';
Print('[GPS] Проверьте ее наличие: '+path);
Script.Stop;
end;
end;
begin
GPS_LoadMap(ExePath+'\gps_map.db3'; // Загружаем карту на этапе инициализации скрипта
// code..
// и далее в коде уже под нужными условиями вызываем
GPS_MoveTo(-91036, 248044, -3560);
// или
GPS_MoveTo('Elf_Newbie_Helper';
end.
8. Kibor - 11 Января, 2024 - 10:24:44 - перейти к сообщению
Я могу пояснить что не получается при работе с Кибор.
Пояснить как искать что то в памяти я не могу. Этой информации много в сети.
Разве что вот видео как то снимал на эту тему
(Добавление)
И еще. Это более актуально
Пояснить как искать что то в памяти я не могу. Этой информации много в сети.
Разве что вот видео как то снимал на эту тему
(Добавление)
И еще. Это более актуально
9. laltest - 11 Января, 2024 - 10:38:12 - перейти к сообщению
Kibor пишет:
Я могу пояснить что не получается при работе с Кибор.
Пояснить как искать что то в памяти я не могу. Этой информации много в сети.
Пояснить как искать что то в памяти я не могу. Этой информации много в сети.
Спасибо за овтет, я уже проштудировал видео так 5-6 связанные с Cheat Engine, мне кажется они сомнительны, я бы хотел сделать чтобы это работало в моей ПО, не использовая сторонее, как это реализованно в других ботах, скорее всего это делается не так трудно, к сожалению не для меня))
Я так понимаю что тем же Чит енжином можно просто найти нужное "занчение" которые отвечают за координаты и после просто скопировать их в свою программку с какой то функцией. или не так все просто?)
Не совсем понимаю как внедрить в игру нужные мне "значения" чтобы банально отслеживать свои координы персонажа в игре по нажатию кнопки в ПО(вывести по верх игры на экране x.y.z)
10. Kibor - 11 Января, 2024 - 10:45:48 - перейти к сообщению
Я сейчас просмотрел часть своего видео которое скинул.
да.
Еще нет инструмента который легко позволит работать с памятью. Понимаю что многое не понятно для смотрящих.
Но таковы реалии.
Или учитесь или довольствуйтесь тем что освоили.
Я делал бот который ориентируется по радару) Давно.
Это было интересно.
Но не продуктивно.
да.
Еще нет инструмента который легко позволит работать с памятью. Понимаю что многое не понятно для смотрящих.
Но таковы реалии.
Или учитесь или довольствуйтесь тем что освоили.
Я делал бот который ориентируется по радару) Давно.
Это было интересно.
Но не продуктивно.