Доброго времени суток. Я хотела бы научиться языку программирования Delphi. Увы, я совсем чайник Однако очень хочу научиться. Мне знаком язык паскаль, но моих знаний хватает лишь для составления простейших программ
Хочу что-бы вы скинули мне гайд, в котором все популярно изложено. Например:
Код:
Тут код // Код инжекта.
Тут код // обязательная часть, нужна для того...
и т.д.
Думаю многие хотят начать программирование, но не понимают как. Я тому пример.
P.S. Просьба, писать понятными нормальному человеку словами(под словом нормальный я имела ввиду не программистов).
P.S.S. Просьба №2, не скидывать ссылки типа [Ссылки могут видеть только зарегистрированные пользователи. ], ибо там объясняют самые азы, или наоборот какие-то глубины, непонятные, даже после изучения самоучителей по азам.
Последний раз редактировалось (Giga); 27.04.2012 в 14:57.
Причина: Поменяла заголовок.
(Giga), итак, несколько простых советов.
Для начала стоит смело закрыть глаза на большинство соседних тем - в них речь идёт на более сложном уровне и, как правило, о более сложных вещах.
Дальше план таков: ставим себе задачу написать определённую программу -> гуглим непонятное или кидаем вопросы сюда -> добиваемся полной работоспособности желанной программы.
Необходимо уметь сразу создавать в голове "модель" всей работы, то есть уметь разбирать задачу "по косточкам". Это придёт со временем.
Поставили сложную задачу - сразу разбили на несколько простых, нагуглили что как делать и сделали. Всё просто. Я на личном опыте убедился в эффективности этого метода: гуглишь, гуглишь, гуглишь - рано или поздно начнёшь справляться самостоятельно.
Ну вот и вся наука. Обращайтесь.
________________
Принимаю реквесты на статьи, программы. Всё будет запилено в лучшем виде :3
Последний раз редактировалось BritishColonist; 26.04.2012 в 23:02.
(Giga), итак, несколько простых советов.
Для начала стоит смело закрыть глаза на большинство соседних тем - в них речь идёт на более сложном уровне и, как правило, о более сложных вещах.
Дальше план таков: ставим себе задачу написать определённую программу -> гуглим непонятное или кидаем вопросы сюда -> добиваемся полной работоспособности желанной программы.
Необходимо уметь сразу создавать в голове "модель" всей работы, то есть уметь разбирать задачу "по косточкам". Это придёт со временем.
Поставили сложную задачу - сразу разбили на несколько простых, нагуглили что как делать и сделали. Всё просто. Я на личном опыте убедился в эффективности этого метода: гуглишь, гуглишь, гуглишь - рано или поздно начнёшь справляться самостоятельно.
Ну вот и вся наука. Обращайтесь.
Спасибо и на этом. Первый вопрос, как получить например кол-во ХП и Маны у персонажа?! Можно этот простейший код.
P.S. Написала программу для решения квадратных уравнений, работает на 100%, даже с учетом отрицательных дискриминантов(писала в ознакомительных целях).
P.S.S. Уже пыталась сделать подобную программу (выводящую хп и ману персонажа, у меня не получилось, я сдалась, поскольку был экзамен, надо было готовиться.) Потом все забылось и я забила. И вот я вернулась.
Последний раз редактировалось (Giga); 26.04.2012 в 23:22.
Я использую C++, но начинал именно с паскаля и дельфи.
В общем, чтобы уметь программировать под игры, нужно работать с некоторыми программами.
Одна из них - Cheat Engine. И чтобы читать здоровье/ману игрока или любые другие данные из игры, нам нужно иметь адреса памяти.
Адрес памяти обозначает место, где лежат определённые данные. Всё, что происходит в программе, всегда находится в её памяти. Любая программа представляет из себя процесс. Игра - в том числе. Умение искать адреса в памяти процессов является основой для кодинга под игры.
Так что дерзайте. Для начала поставлю Вам небольшую задачку: найдите в памяти Perfect World текущее состояние здоровья игрока. Используйте Cheat Engine (далее буду писать просто CE).
________________
Принимаю реквесты на статьи, программы. Всё будет запилено в лучшем виде :3
Дополню, изучение Cheat Engine лучше всего изучать с программы, которая идёт в комплекте с ним - Tutorial-i386.exe (как правило запускается при первом запуске Cheat Engine)
Следуя инструкциям этой программы вы научитесь искать адреса, изменять значения, искать поинтеры, оффсеты, и так далее, что вам в дальнейшем очень пригодится
Так что дерзайте. Для начала поставлю Вам небольшую задачку: найдите в памяти Perfect World текущее состояние здоровья игрока. Используйте Cheat Engine (далее буду писать просто CE).
Попробую начать с C++. Искать с помощью СЕ я умею. Текущее состояния здоровья +0494
[Ссылки могут видеть только зарегистрированные пользователи. ]
. Есть ли какие-то самоучители, которые бы вы могли порекомендовать?!
Я бы советовал вам начать с C#, на форуме есть хорошая библиотека для Read and Write memory и куча примеров
________________ TwinkDB - твинки любого игрока, их дата создания, последний онлайн, статус удаления и прочее
Skype - freepvps
ICQ - 412705115
[Ссылки могут видеть только зарегистрированные пользователи. ] - ставкобот [Ссылки могут видеть только зарегистрированные пользователи. ] - общение в КЧ через смартфон
Я бы советовал вам начать с C#, на форуме есть хорошая библиотека для Read and Write memory и куча примеров
А я бы советовал остановиться на C++ или Delphi, поскольку в них как раз-таки нет таких библиотек. Ведь значительно лучше, когда сам вникаешь в тему, особенно такую важную на первых парах.
________________
Принимаю реквесты на статьи, программы. Всё будет запилено в лучшем виде :3
А я бы советовал остановиться на C++ или Delphi, поскольку в них как раз-таки нет таких библиотек. Ведь значительно лучше, когда сам вникаешь в тему, особенно такую важную на первых парах.
Остановила свой выбор на делфи. Язык даже показался понятным... Сейчас пробую вывести на экран хп или уровень перса. Вооружилать несколькими темами(тема рас, тема два). И вот какие вопросы возникли:
1) Нашла вот такое сообщение. Попробовала реализовать этот код. Сразу возник вопрос куда его вставлять. Наиболее логичным для моего мозга оказалось вставить код в исходную форму. Миллиарды ошибок. Какие-то смогла исправить, какие-то нет. Может быть вы поможете? Просто укажите ошибки, если код кардинально отличается от истины, то попробую поискать ещё что-то.
2)Содержание самой темы почти непонятно. Для чего используется вот такой код:
(Giga), так. Вижу, что плохо понятны основы языка.
Есть в Delphi переменные, константы, функции, ключевые слова.
Причём постоянными и неизменными остаются лишь ключевые слова (if, then, begin, end, for и т.д.).
Остальное именуется по желанию программиста, причём оно всегда должно быть где-то объявлено прежде, чем к нему можно будет получить доступ.
Переменные объявляются с помощью VAR, как и в паскале.
Ну так вот, скорее всего большинство ошибок заключается в отсутствии объявленных переменных/функций/констант.
Есть ещё вариант, что не подключена какая-нибудь библиотека.
Цитата:
Сообщение от (Giga)
Для чего используется вот такой код:
Этот код используется для внедрения в клиент игры. Там он выполняется, делая определённые вещи (обычно такой код называют инжектом). Как правило, код имитирует действия клиента, заставляя персонажа двигаться, атаковать монстров и т.д.
Код может показаться сложным, так как в нём имеются блоки встроенного ассемблера. Ассемблер представляет из себя команды, наиболее приближенные к машинным - язык низкого уровня. На нём и пишут инжекты.
Я бы пока рекомендовал поработать с WinAPI (функции, работающие с окнами, процессами и т.д.), например, сделайте переименовщик окна игры (переименовывание окна позволяет запустить два клиента игры).
А уже потом, по мере понимания логики работы некоторых WinAPIшных функций можно будет углубиться в изучение ассемблера.
________________
Принимаю реквесты на статьи, программы. Всё будет запилено в лучшем виде :3
Я бы пока рекомендовал поработать с WinAPI (функции, работающие с окнами, процессами и т.д.), например, сделайте переименовщик окна игры (переименовывание окна позволяет запустить два клиента игры).
А уже потом, по мере понимания логики работы некоторых WinAPIшных функций можно будет углубиться в изучение ассемблера.
Как вы и порекомендовали, я попробовала. Как вы понимаете не могло все пойти гладко и обязательно возникнут вопросы. Вот так и у меня. Я дошла до стадии, что могу вывести в форму ListBox названия окон, открытых у меня на компьютере. Какой-никакой, это тоже результат, однако, меня это не особо утешает. Я сделала примерно 15% работы. Это очень мало, как мне кажется, даже для новичка.
Вот опытный образец: [Ссылки могут видеть только зарегистрированные пользователи. ]
Вот VT: [Ссылки могут видеть только зарегистрированные пользователи. ]
Вот код:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var wnd: hwnd;
buff: array [0..127] of char;
begin
ListBox1.clear;
wnd := GetWindow(handle, gw_hwndfirst);
while wnd <> 0 do
begin
if (wnd <> Application.Handle)
and IsWindowVisible(wnd)
and (GetWindow(wnd, gw_owner) = 0)
and (GetWindowText(wnd, buff, SizeOf(buff)) <> 0) then
begin
GetWindowText(wnd, buff, SizeOf(buff));
ListBox1.Items.Add(StrPas(buff));
end;
wnd := GetWindow(wnd, gw_hwndnext);
end;
ListBox1.ItemIndex := 0;
end;
(Giga), есть функция FindWindow, которая постарается найти окно с нужным заголовком или классом.
Класс окна - это тоже что-то типа имени, как в заголовке.
Так что ищем окно игры и меняем его заголовок. А для этого потребуется функция SetWindowText.
________________
Принимаю реквесты на статьи, программы. Всё будет запилено в лучшем виде :3