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

bottom_text

Известный
675
317
1611958842369.png

Мудрецы, как сделать приколюху выше из луа в сф плагине? При телепорте под землёй появляюсь
upd:
LoadMapAroundPoint()
Нашёл какую-то вроде приколюху, но не понимаю как с ней работать да и та ли.
 
Последнее редактирование:

sc6ut

неизвестный
Модератор
382
1,074
Как получить свои координаты?
если я не ошибаюсь, то вот так. к сожаленую проверить не могу.
C++:
DWORD CPed = *reinterpret_cast<DWORD*>(0xB6F5F0);
if (CPed != NULL) {
    DWORD CPed_stPos = *reinterpret_cast<DWORD*>(CPed + 0x14);
    float CPed_X = *reinterpret_cast<float*>(CPed_stPos + 0x30);
    float CPed_Y = *reinterpret_cast<float*>(CPed_stPos + 0x34);
    float CPed_Z = *reinterpret_cast<float*>(CPed_stPos + 0x38);
}
 

DarkP1xel

Сила воли наше всё.
BH Team
3,635
4,953
Мудрецы, как сделать приколюху выше из луа в сф плагине? При телепорте под землёй появляюсь
Загрузка сцены по позиции:
auto cStreaming::loadScene(const class cVector3D *pPos) -> void {
    reinterpret_cast<void(__cdecl *)(const class cVector3D *pPos)>(0x40EB70)(pPos);
    return;
}


Загрузка коллизии сцены по позиции:
auto cStreaming::loadSceneCollision(const class cVector3D *pPos) -> void {
    reinterpret_cast<void(__cdecl *)(const class cVector3D *pPos)>(0x40ED80)(pPos);
    return;
}

Гуглится по переменной среды DXSDK_DIR
Конкретно пятый абзац.
 
  • Нравится
Реакции: darkjer и bottom_text

SR_team

like pancake
BH Team
4,707
6,347
Загрузка сцены по позиции:
auto cStreaming::loadScene(const class cVector3D *pPos) -> void {
    reinterpret_cast<void(__cdecl *)(const class cVector3D *pPos)>(0x40EB70)(pPos);
    return;
}


Загрузка коллизии сцены по позиции:
auto cStreaming::loadSceneCollision(const class cVector3D *pPos) -> void {
    reinterpret_cast<void(__cdecl *)(const class cVector3D *pPos)>(0x40ED80)(pPos);
    return;
}


Гуглится по переменной среды DXSDK_DIR
Конкретно пятый абзац.
Зачем использовать auto ... -> type вне лямбд?
 
  • Нравится
Реакции: imring

ishi

Известный
493
110
Ребят, меня тралит компилятор, помогите

Есть функция, чья задача, это при вызове получить аргументы, отправленные в MessageBoxA, и позволить их изменить
Эта функция корректно отображает аргументы, т.е. всё перехватывается
C++:
__declspec(naked)  void _stdcall printSomeShit(int a, char* b, char* c, int d)
{
    char bb[256];
    char cc[256];
    printf("\n");
    std::cin >> bb;
    b = bb;
    printf("\n");
    std::cin >> cc;
    c = cc;
    printf("\n%d || %s || %s || %d", a, b, c, d);
    _asm ret;
}

Однако же попытки присваивания не меняют значение аргументов, хотя если в отладчике студии свапнуть адреса, то всё сработает
Я решил посмотреть, что делает в этом случае компилятор, и вот:
1612445016382.png

То-есть, он вообще ничего не делает. Он буквально проигнорировал b = bb и не прописал ей инструкций. В смысле? Почему?

Если же попытаться написать &b == &bb, то он даже компилировать программу откажется.
Я не понимаю, что тут происходит ,_,
 

#Northn

Police Helper «Reborn» — уже ШЕСТЬ лет!
Всефорумный модератор
2,633
2,479
Ребят, меня тралит компилятор, помогите

Есть функция, чья задача, это при вызове получить аргументы, отправленные в MessageBoxA, и позволить их изменить
Эта функция корректно отображает аргументы, т.е. всё перехватывается
C++:
__declspec(naked)  void _stdcall printSomeShit(int a, char* b, char* c, int d)
{
    char bb[256];
    char cc[256];
    printf("\n");
    std::cin >> bb;
    b = bb;
    printf("\n");
    std::cin >> cc;
    c = cc;
    printf("\n%d || %s || %s || %d", a, b, c, d);
    _asm ret;
}

Однако же попытки присваивания не меняют значение аргументов, хотя если в отладчике студии свапнуть адреса, то всё сработает
Я решил посмотреть, что делает в этом случае компилятор, и вот:
Посмотреть вложение 85221
То-есть, он вообще ничего не делает. Он буквально проигнорировал b = bb и не прописал ей инструкций. В смысле? Почему?

Если же попытаться написать &b == &bb, то он даже компилировать программу откажется.
Я не понимаю, что тут происходит ,_,
ну у тебя как минимум __declspec(naked) а ты объявляешь переменные внутри функции
прибавь к ним static (static char) и проверь, как себя поведёт
мсвс запрещает вообще внутри функций объявлять переменные (не static), значит у тебя не мсвс
 
  • Нравится
Реакции: ishi

sc6ut

неизвестный
Модератор
382
1,074
Можно ли как-то подменинить функцию хука на пустышку которая вызывает трамплин, чтобы не прервать цепочку вызовов и не поломать чужие хуки и игру?
 

SR_team

like pancake
BH Team
4,707
6,347
Можно ли как-то подменинить функцию хука на пустышку которая вызывает трамплин, чтобы не прервать цепочку вызовов и не поломать чужие хуки и игру?
можно, я так и делаю в своих хуках
 

ISYS Tools

Новичок
9
9
Здравствуйте, прошу прощения за оффтоп, это самая близкая по смыслу тема. Хочу сделать что-то типа ракбота, только для другой цели. Есть ли на C#/C/C++ библиотека, позволяющая имитировать клиент сампа и заходить в него?)
 
  • Нравится
Реакции: Vintik

kin4stat

mq-team
Всефорумный модератор
2,731
4,692
Здравствуйте, прошу прощения за оффтоп, это самая близкая по смыслу тема. Хочу сделать что-то типа ракбота, только для другой цели. Есть ли на C#/C/C++ библиотека, позволяющая имитировать клиент сампа и заходить в него?)
RakSAMP
Код там конечно не очень, но на его основе написан ракбот. Думаю для изучения принципа работы подойдет
 
  • Влюблен
Реакции: ISYS Tools

sc6ut

неизвестный
Модератор
382
1,074
как проиграть звук через bass.lib в определенной позиции?
 

frosjkee

Участник
120
21
Не могу изменить значение, не понимаю
Код:
void functions()
{
    if (Mouse_Fix)
    {
        float x;
        float y;
        ReadProcessMemory(handle, (PBYTE*)0xB6EC1C, &x, 4, 0);
        ReadProcessMemory(handle, (PBYTE*)0xB6EC18, &y, 4, 0);
        {
            WriteProcessMemory(handle, (LPVOID)0xB6EC18, &x, 4, 0);
        }
    }
}