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

Как узнать какое оружие в руках. C#. CS:GO


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

Привет!

 

У игрока есть несколько "слотов" под то, что можно выбрать. Для простоты я буду считать, что это винтовка, пистолет и нож. Одновременно выбрать можно только что-то одно. Исходя из того, что выбрано, будет рисоваться та или иная модель оружия (т.е. может быть несколько разных ножей/пистолетов/винтовок). Как это искать? Самое простое - поиском цифры слота. Предполагаешь, что винтовка - это 1, пистолет - это 2, а нож - это 3. Ищешь целое число при помощи Cheat Engine или другого сканера памяти. Если ничего не нашлось, то можно пробовать неизвестное изначально значение и "увеличилось/уменьшилось". Если и это не дало результатов, то неизвестное и "изменилось/не изменилось". В результате найдется адрес, который будет изменяться в зависимости от выбранного типа оружия.

Второй вариант - найти структуру игрока, который это самое оружие держит, и изучить ее содержимое, выбирая при этом разные виды оружия. Удобнее всего при этом вообще больше ничего в игре не изменять, т.к. в структуре игрока содержится много всего и трудно будет найти нужное значение, если изменяться будет одновременно половина. Собственно, про оффсет от начала этой структуры ты (скорее всего) и говоришь в первом посте. Дальше уже - дело техники, что с этим делать.

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

21 минуту назад, partoftheworlD сказал:

DT_BaseCombatWeapon -> m_iWeaponID
DT_BasePlayer -> m_hActiveWeapon

А как сделать чтобы выводило в string. Допустим awp. Как высчитать? Мне нужно узнать какое оружие в руках у себя, чтобы проверять - Если в руках авп или ссг рисуем прицел.

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

8 минут назад, XenonH сказал:

Допустим awp. Как высчитать?

 

После получения id, сравниваешь их со списком ID оружия, рисуешь и пишешь что хочешь.

 

Скрытый текст

 enum CSGO_Weapon_ID
{
	weapon_none,
	weapon_deagle,
	weapon_elite,
	weapon_fiveseven,
	weapon_glock,
	weapon_p228,
	weapon_usp,
	weapon_ak47,
	weapon_aug,
	weapon_awp,
	weapon_famas,
	weapon_g3sg1,
	weapon_galil,
	weapon_galilar,
	weapon_m249,
	weapon_m3,
	weapon_m4a1,
	weapon_mac10,
	weapon_mp5navy,
	weapon_p90,
	weapon_scout,
	weapon_sg550,
	weapon_sg552,
	weapon_tmp,
	weapon_ump45,
	weapon_xm1014,
	weapon_bizon,
	weapon_mag7,
	weapon_negev,
	weapon_sawedoff,
	weapon_tec9,
	weapon_taser,
	weapon_hkp2000,
	weapon_mp7,
	weapon_mp9,
	weapon_nova,
	weapon_p250,
	weapon_scar17,
	weapon_scar20,
	weapon_sg556,
	weapon_ssg08,
	weapon_knifegg,
	weapon_knife,
	weapon_flashbang,
	weapon_hegrenade,
	weapon_smokegrenade,
	weapon_molotov,
	weapon_decoy,
	weapon_incgrenade,
	weapon_c4
};

 

 

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

1 минуту назад, XenonH сказал:

Смотри как я высчитал. bClient + iweaponid и playerbase + activeweapon

В weaponid одно и то же число а в activeweapon меняется но там примерно такое 19857986

 

bClient это не DT_BaseCombatWeapon

 

 

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

2 минуты назад, XenonH сказал:

Как его высчитать? Я не работал с таким классом.

 

точно так же как и любой другой, выйти на него можешь на прямую через id(список я кинул выше), находишь значение, сканер указателей 1 уровень, найдешь указатель на weapon id. Который будет выглядеть как указатель на структуру(DT_BaseCombatWeapon) + смещение до id

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

2 минуты назад, partoftheworlD сказал:

 

точно так же как и любой другой, выйти на него можешь на прямую через id(список я кинул выше), находишь значение, сканер указателей 1 уровень, найдешь указатель на weapon id. Который будет выглядеть как указатель на структуру(DT_BaseCombatWeapon) + смещение до id

А программно как? Вот bClient это Client.dll. Playerbase это bClient + dwPlayerBase

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

bClient  + dwBaseCombatWeapon, найти dwBaseCombatWeapon

4 минуты назад, partoftheworlD сказал:

выйти на него можешь на прямую через id(список я кинул выше), находишь значение, сканер указателей 1 уровень, найдешь указатель на weapon id. Который будет выглядеть как указатель на структуру(DT_BaseCombatWeapon) + смещение до id

 

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

15 minutes ago, XenonH said:

Что я делаю не так? Нашел нужный адрес. Он динамический. Нашел указатель. Вот скрин. Значение переменной m_WeaponID = 0x04FD76B8

074a42fed5.png

Ты после смещения 0x2AC забыл прочитать полученный адрес.

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

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

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

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