Другое С/С++ Вопрос - Ответ

Some_Clever_Name

Новичок
13
0
В структурах объектов игрока и тс есть данные о скорости.
Покапавшись в исходниках, нашёл такие адреса:

int[] point = new int[] {0x44};

int CVehiclePointer = mem.ReadMultiLevelPointer(0xBA18FC, 4, point); // получаем CVehicle

while (true){
System.Threading.Thread.Sleep(500);
float speed = mem.ReadFloat(CVehiclePointer+0x44); // прибавляем к нему 0x44

Почему-то всё равно выдает 0. В чем проблема?
 
Последнее редактирование модератором:

imring

Ride the Lightning
Всефорумный модератор
2,366
2,556
попробуй сначала получить CPhysical и читать его.
 

Some_Clever_Name

Новичок
13
0
Ваш вопрос:

Как можно получить скорость персонажа / машины?

Покапавшись в исходниках собейтов и прочего, нашёл такие адреса:

int[] point = new int[] {0x44};

int CVehiclePointer = mem.ReadMultiLevelPointer(0xBA18FC, 4, point); // получаем CVehicle

while (true){
System.Threading.Thread.Sleep(500);
float speed = mem.ReadFloat(CVehiclePointer+0x44); // прибавляем к нему 0x44
Console.WriteLine(speed);
}

Почему-то speed = 0. Почему?

В чем проблема?

P.S Пишу на Шарпе
 

Dark_Knight

Me, me and me.
Друг
4,083
2,110
Указатель в инте в шарпе хранится? ЛОЛ. Ты хоть поставил бы проверку, что поинтер существует.
 

Some_Clever_Name

Новичок
13
0
Указатель в инте в шарпе хранится? ЛОЛ. Ты хоть поставил бы проверку, что поинтер существует.

Просто.. Я ещё только начинаю во все это лезть. Можно ли как-то вообще вытащить по-другому скорость машины?
 

Some_Clever_Name

Новичок
13
0
Вообще скорость хранится там в CVector и по значения X, Y, Z надо считать скорость уже.

Хм.. Интересно. Просто недавно наткнулся на пост (размещённый тут же). Цитата -

"
Че сложного в спидхаке?
0xBA18FC // Vehicle CPED Pointer
0x44 // Vehicle Speed X
0x48 // Vehicle Speed Y

Читаешь значение из Vehicle CPED Pointer.
И это значение плюс Vehicle Speed X/Y - будет скорость т/c.
Плюсуешь к ним сколько-то или умножаешь.
И все это в цикле.
"

Вот и думаю, что типа " 0xBA18FC+0x44 " - должно выдавать скорость или что-то типа того по X'у. Тож самое, но с 0x48 - по Y'у Не?
 

memir

🇷🇺
Всефорумный модератор
341
613
Хм.. Интересно. Просто недавно наткнулся на пост (размещённый тут же). Цитата -

"
Че сложного в спидхаке?
0xBA18FC // Vehicle CPED Pointer
0x44 // Vehicle Speed X
0x48 // Vehicle Speed Y

Читаешь значение из Vehicle CPED Pointer.
И это значение плюс Vehicle Speed X/Y - будет скорость т/c.
Плюсуешь к ним сколько-то или умножаешь.
И все это в цикле.
"

Вот и думаю, что типа " 0xBA18FC+0x44 " - должно выдавать скорость или что-то типа того по X'у. Тож самое, но с 0x48 - по Y'у Не?
Читать надо именно по указателю. Берёшь значение, которое хранится в 0xBA18FC, и к нему прибавляешь 0x48.
И вообще, проще обращатся к полям через сишные структуры
C:
struct stVehicle
{
    unsigned char _bPad[0x44];
    float fSpeed[3]; // AKA CVector
};
/// -------------
stVehicle *pSelfVehicle = (*((stVehicle **)0xBA18FC))
 

Some_Clever_Name

Новичок
13
0
Читать надо именно по указателю. Берёшь значение, которое хранится в 0xBA18FC, и к нему прибавляешь 0x48.
И вообще, проще обращатся к полям через сишные структуры
C:
struct stVehicle
{
    unsigned char _bPad[0x44];
    float fSpeed[3]; // AKA CVector
};
/// -------------
stVehicle *pSelfVehicle = (*((stVehicle **)0xBA18FC))

Вроде сделал все по феншую, но значения такие:

Если ехать вперёд - то значение может увеличиваться, если развернуться - значение будет уходить в -, если влево - 0.00 с чем-то, если вправо - то -0.00 с чем-то. В чем может быть подвох?
 

ALF

Известный
Проверенный
320
539
Я спиздил отсюда (BlastHackNet/mod_s0beit_sa(https://github.com/BlastHackNet/mod_s0beit_sa/blob/master/src)) структуры чтобы получить IP сервера, но при попытке его отобразить (g_SAMP->szIP) игра тупо зависает. Шо делать?
ну эт, как его... чтоб получить какой то фидбэк, надо показать как ты делаешь
 

ЯedЯuM

Malware Maker
242
303
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Вроде сделал все по феншую, но значения такие:

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