Перейти к содержанию

Counter Strike Source - часть 3


Рекомендуемые сообщения

9 минут назад, Garik66 сказал:

Жду! 

только через библиотеку server.dll у меня все получилось , а вот чтобы в мультиплеере работало надо через библиотеку client.dl , тут и возникли трудности так как оффесеты другие и не ищутся у меня)

Ссылка на комментарий
Поделиться на другие сайты

Скрытый текст
1 час назад, partoftheworlD сказал:

 

 

Смещение n игрока - смещение n-1 игрока, если здоровье находится в общей структуре часто такое бывает в одиночных играх, если же в онлайн играх, то в них используется единый класс для хранения структур всех игроков, чтобы найти сдвиг, надо вставить адрес указателя на общую структуру в программу которая работает со структурами типа Reclass или встроенного в CE Dissect Data/Structures, по 0 смещению будет указатель на структуру твоего игрока, тебе надо просто прокликать по указателям и посмотреть, есть ли по смещению твоего здоровья, ещё чье либо хп, первый найденный указатель в котором будут совпадать смещения на здоровье например и будет являться сдвигом т.е. (0x0 смещение на указатель на структуру локального игрока, 0x10 смещение на указатель на структуру 2-го игрока) 0x10 - 0x0 = 0x10 это и будет сдвиг.

 

на примере csgo

 

K3xknvw5tzY.jpg

 

 

Не помню, проще циклом прогнать с проверкой на хп и состояние подключения, можно пинг использовать для отсева.

 

 

 

Я так и сделал с библиотекой server.dll(все прекрасно работает) , а вот с client.dll вообще "ахинея" какая-то.

 

скрин работающей программы):

[img=https://cloud.mail.ru/public/Aumm/ViRPdoUhV]

 

 

Ссылка на комментарий
Поделиться на другие сайты

Спасибо Garik66 за видео , и ты сделал через библиотеку server.dll, что , несомненно , не плохо ((скрин из твоего видео:[img= https://cloud.mail.ru/public/HVxc/rDQL3Tt5G ])скрин плохого качества(я плохо заскринил), но видно ,что server.dll)

и через неё и у меня все прекрасно отображает (то есть hp).

1 час назад, IzerodayI сказал:

скрин работающей программы):

[img=https://cloud.mail.ru/public/Aumm/ViRPdoUhV]

Проблема в том , что через неё не работает на онлайн сервере!

и вот тут начинаются заморочки , очень сложно отследить client.dll с её структурами(может из-за того , что у меня пиратка и игра с левыми библиотеками, ну или ,что-то типа того:mellow:(но это не точно:)))

 

Up

Сделал через client но очень "костыльно"

Ссылка на комментарий
Поделиться на другие сайты

Ребят , мои предположения оказались верны :

Скрытый текст
5 часов назад, IzerodayI сказал:

Все, я понял, все хп игроков хранится в одной структуре "client.dll"+004035C0  

и уже в ней хранится игроков(ботов) хп и их команда(наверное)

доказательства прилагаю.

  Показать содержимое

1) хп моё и оффсет 005с,

[img=https://cloud.mail.ru/public/DFBP/qPWvRD6xU]

а это номер команды выше оффсета хп?

 

2) бот 1

[img=https://cloud.mail.ru/public/H7E7/JNhpsdZn9]

 

3)бот 2

[img=https://cloud.mail.ru/public/7dQL/aAfaSuDcT]

 

возникшие вопросы :

1) какой сдвиг между хп игроков, как его посчитать . чтобы зациклить?

2) как найти кол-во игроков ? (пытался сделать на онлайн сервере (долго отсеивая ,когда игроки заходили и выходили), получил 3 адреса , но у них не было указателей на адреса(пусто было. даже библиотеку не нашел), может он статический?)

3) и то , что выше оффсета хп это команда, и если да . то какой сдвиг?

 

информация когда играешь находится в этой библиотеки с адресом "client.dll"+004035C0 (hp точно здесь:)) (у меня видать контра без обновлений css v34, я бес понятия на сколько она старая)

и уже в одном адресе все игроки(по крайне мере 3) То есть между структурами переходить не надо , что довольна странно , мне так кажется  

но сам метод очень кривой 

for (;; Sleep(100))
	{
		system("cls");
		read_of_memory_bytes((LPCVOID)(addr), 4, &pir_addr);
		read_of_memory_bytes((LPCVOID)(pir_addr + 0x5c), 4, &hp);	
		cout << "players_1" << "  hp : " << hp << endl;
		read_of_memory_bytes((LPCVOID)(pir_addr + 412), 4, &hp);
		cout << "players_2" << "  hp : " << hp << endl;
		read_of_memory_bytes((LPCVOID)(pir_addr + 732), 4, &hp);
		cout << "players_3" << "  hp : " << hp << endl;
	}

0х5с=92;

скрин из онлайн игры : [img=https://cloud.mail.ru/public/2is8/CxMjyEbNJ ]

и у меня 3 вопроса :

1) как надо записать в компилятор число 019с(он его не воспринимает так (пришлось переводить дедовским без отказным методом в 10-ю систему исчисления, где равен 412))

2) а в кс:го за локальный и онлайн игру отвечает только одна библиотека server.dll ?

3) в теории ,если игрока нет в игре, то команда ему присваивается 0?   (2-тер, 3-спецназ)

 

Изменено пользователем IzerodayI
Ссылка на комментарий
Поделиться на другие сайты

1 час назад, IzerodayI сказал:

2) а в кс:го за локальный и онлайн игру отвечает только одна библиотека server.dll ?

Ты вообще читаешь ответы?

 

В 04.07.2017 в 13:36, Xipho сказал:

Когда ты подключаешься к онлайн-серверу, эта библиотека не используется(server.dll). Она используется только для создания сервера (когда сам хостишь).

 

1 час назад, IzerodayI сказал:

3) в теории ,если игрока нет в игре, то команда ему присваивается 0?   (2-тер, 3-спецназ)

Нет ничего т.к структура игрока не создается, ни указатель на структуру, ни структуры, ни номера команды, ни здоровья.

Как только игрок заходит, вызывается класс который выделяет память под структуру и заполняет его.

 

Уже создано 3 темы, а вопросы все те же, как и ответы на них, думаю смысла дальше отвечать нет.

Изменено пользователем partoftheworlD
Ссылка на комментарий
Поделиться на другие сайты

4 часа назад, partoftheworlD сказал:

Нет ничего т.к структура игрока не создается, ни указатель на структуру, ни структуры, ни номера команды, ни здоровья.

Тут ты слегка неправ, так как игрок создается при входе на сервер, но он же может быть  наблюдателем. В этом случае у него структура будет полупустая, я полагаю. Надо будет проверить.

Ссылка на комментарий
Поделиться на другие сайты

3 часа назад, Xipho сказал:

В этом случае у него структура будет полупустая, я полагаю. Надо будет проверить.

Ну тут надо у автора вопроса спрашивать что он имел ввиду, я например под игрой понимаю подключённый к серверу. Раз так то у наблюдателя будет примерно все тоже самое, кроме здоровья, номера команды(у наблюдателя это 1), состояния флага относительно мира и ещё нескольких специфичных значений типа m_iAlive, если поковырять классы, можно даже найти координаты наблюдателей и в общей структуре появится указатель на него сразу после подключения.

Ссылка на комментарий
Поделиться на другие сайты

10 часов назад, partoftheworlD сказал:

Ты вообще читаешь ответы?

 

Конечно читаю, просто у меня нету кс:го, а я помню ,что Кенг делал через server.dll , как я уже понял , он делал это для локальной игры. Просто вдруг в кс:го отвечает за локальную и онлайн игру одна библиотека.

 

PS 

11 час назад, IzerodayI сказал:

скрин из онлайн игры : [img=https://cloud.mail.ru/public/2is8/CxMjyEbNJ ]

у меня получилось через клиент, что меня очень радует=)

 

я ответил сам:

11 час назад, IzerodayI сказал:

1) как надо записать в компилятор число 019с(он его не воспринимает так (пришлось переводить дедовским без отказным методом в 10-ю систему исчисления, где равен 412))

получается мы перед числом ставим 0х

Пример: 019с = 0х19с =412 ;

Ссылка на комментарий
Поделиться на другие сайты

Ребята , я сделал(хп отображаю игроков) на онлайн сервере все работает!

[img=https://cloud.mail.ru/public/A9kk/97h4LvQQd]

Остался всего один нюанс 

Как найти координаты игроков? как их искать? просто примерно скажите.

 

 

Код там пока не красиво оформлен, я его оформлю после полноценного esp

PS если хотите могу выложить исходники , или часть какого-либо кода:)

Ссылка на комментарий
Поделиться на другие сайты

18 minutes ago, IzerodayI said:

Ребята , я сделал(хп отображаю игроков) на онлайн сервере все работает!

[img=https://cloud.mail.ru/public/A9kk/97h4LvQQd]

Остался всего один нюанс 

Как найти координаты игроков? как их искать? просто примерно скажите.

 

 

Код там пока не красиво оформлен, я его оформлю после полноценного esp

PS если хотите могу выложить исходники , или часть какого-либо кода:)

Самое простое - искать ось Z. Встал на месте - делаешь поиск неизвестного. Затем поднялся на лестницу или залез на ящик - отвеиваешь "увеличилось". Слез обратно - "уменьшилось". Или посмотри в памяти рядом со здоровьем - обычно все в одной куче лежит.

 

PS: Ты ведь это все не с основного своего steam-аккаунта делаешь, правда?

Ссылка на комментарий
Поделиться на другие сайты

17 минут назад, keng сказал:

PS: Ты ведь это все не с основного своего steam-аккаунта делаешь, правда?

Я человек "еврейской" натуры и ещё не разу не покупал игры)

 

PS

ТОЛЬКО ПИРАТКА , ТОЛЬКО ХАРДКОР!;)

Ссылка на комментарий
Поделиться на другие сайты

48 минут назад, keng сказал:

Самое простое - искать ось Z. Встал на месте - делаешь поиск неизвестного. Затем поднялся на лестницу или залез на ящик - отвеиваешь "увеличилось". Слез обратно - "уменьшилось". Или посмотри в памяти рядом со здоровьем - обычно все в одной куче лежит.

А от чего до чего координаты измеряются?от -1000 до 1000 или как примерно?

Ссылка на комментарий
Поделиться на другие сайты

17 minutes ago, IzerodayI said:

А от чего до чего координаты измеряются?от -1000 до 1000 или как примерно?

Не могу точно сказать. Наверняка можно глянуть где-нибудь в Source SDK, например.

Ссылка на комментарий
Поделиться на другие сайты

В общем координаты нашел и сделал вот так 

[img=https://cloud.mail.ru/public/63aA/C23PP8fR6]

с ботами все норм , а вот на сервере редко бывают "косяки" вот такие 

[img=https://cloud.mail.ru/public/8hfd/WMxjmnSSB]

за всех один выступает 

надо подумать как это "лечить"

 

Ссылка на комментарий
Поделиться на другие сайты

32 минуты назад, IzerodayI сказал:

 

В общем координаты нашел и сделал вот так 

[img=https://cloud.mail.ru/public/63aA/C23PP8fR6]

с ботами все норм , а вот на сервере редко бывают "косяки" вот такие 

[img=https://cloud.mail.ru/public/8hfd/WMxjmnSSB]

за всех один выступает 

надо подумать как это "лечить"

 

Все нормально, зависит от пинга

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.