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

Stiopko

Известный
Проверенный
307
218

Cake_

Потрачен
Проверенный
263
313
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Нашел
C++:
 bool IsOnScreen(DWORD OBJECT)
    {
        DWORD dwFunc = FUNC_IsVisible;
        DWORD dwThis = (DWORD)SF->getSAMP()->getInfo()->pPools->pObject->object[OBJECT]->pGTAEntity;
        bool bReturn = false;
        _asm
        {
            mov        ecx, dwThis
                call    dwFunc
                mov        bReturn, al
        }
        return bReturn;
    }
C++:
bool OnScreen(CVector vect)
{
    SF->getCLEO()->callOpcode("00C2: %f %f %f 0.0", vect.fX, vect.fY, vect.fZ);
    return SF->getCLEO()->GetCondResult();
}
Или так
 
  • Нравится
Реакции: EclipsedFlow и Stiopko

Stiopko

Известный
Проверенный
307
218
А в 3d никак ?
А как узнать что обьект на екране?
И есть ли в SF массив со всема обектами, и массив c текстами (label)

Не так сказал, есть ли в SF массив со всема созданными сервером объектами, и массив c текстами (label) (типа в зоне стрима)
__________
Нашел
 

Vintik

Через тернии к звёздам
Проверенный
1,526
1,009
Приветствую. Хочу развёрнутый ответ на вопрос: как найти базовый адрес samp.dll (в CE можно сразу писать "samp.dll + ...[смещение"). Плиз, помогите =)
 

san0

Известный
Друг
411
268
Плиз, помогите =)
Здравствуйте) Хотелось бы посоветовать использовать след. WinAPI ф-ции
https://docs.microsoft.com/en-us/windows/desktop/api/libloaderapi/nf-libloaderapi-getmodulehandlea
https://docs.microsoft.com/en-us/windows/desktop/api/libloaderapi/nf-libloaderapi-getmodulehandleexa
Пример использования в собейте
https://github.com/BlastHackNet/mod...6f567b5391b0b2a6dc8/src/cheat_funcs.cpp#L3102
https://github.com/BlastHackNet/mod...b6325e566f567b5391b0b2a6dc8/src/samp.cpp#L178
писать "samp.dll + ...[смещение"
Только не забывайте, что такая арифметика в языке С иногда не работает так, как предполагается: арифметика указателей в C всегда автоматически масштабируется под размер объектов, на которые ссылается указатель
 
  • Нравится
Реакции: Vintik

Vintik

Через тернии к звёздам
Проверенный
1,526
1,009
Здравствуйте) Хотелось бы посоветовать использовать след. WinAPI ф-ции
https://docs.microsoft.com/en-us/windows/desktop/api/libloaderapi/nf-libloaderapi-getmodulehandlea
https://docs.microsoft.com/en-us/windows/desktop/api/libloaderapi/nf-libloaderapi-getmodulehandleexa
Пример использования в собейте
https://github.com/BlastHackNet/mod...6f567b5391b0b2a6dc8/src/cheat_funcs.cpp#L3102
https://github.com/BlastHackNet/mod...b6325e566f567b5391b0b2a6dc8/src/samp.cpp#L178

Только не забывайте, что такая арифметика в языке С иногда не работает так, как предполагается: арифметика указателей в C всегда автоматически масштабируется под размер объектов, на которые ссылается указатель
Спасибо за всё, но я так нифига и не понял.

Объясняю свою ситуацию. Я прочитал на различных форумах, как искать базовый адрес (ну + смещения и указатели) и начал искать базовый адрес информации игрока (SAMP), чтобы он него оттолкнуться и найти твой текущий ID (и я его нашёл). Выглядит оно примерно так (в кавычках БА): [samp.dll + 0x151434] + 0x2F1C -> указатель на ID. Теперь хочу написать на С++ программу, которая будет искать мой ID и сохранять его в какую-либо переменную (через ReadProcessMemory). Суть в том, что надо искать смещение для "samp.dll". Пожалуйста, покажите какой-либо готовый код (он же там не длинный), либо функцию, которая, зная хэндл ГТАшки, кидает мне БА сампа.длл. Буду очень благодарен =)
 

Stiopko

Известный
Проверенный
307
218
как можно изменить 3dText c какимто айдишником?
 

Stiopko

Известный
Проверенный
307
218
Я не понял, что ты хочешь
У меня есть айди 3d текста который пришел с сервера, мне нужно изменить в нём текст, и установить другую максимальную дальность видимости текста, хукать RPC и изменять данные RPC пакета не вариант потому что плагин могут загрузить когда RPC уже придет, поэтому я прохожусь по всем 3dtext там и ищу нужній мне и после того когда я нашел нужнужный я хочу изменить в нём текст, и установить другую максимальную дальность видимости текста
 

_Vine_

Активный
154
57
У меня есть айди 3d текста который пришел с сервера, мне нужно изменить в нём текст, и установить другую максимальную дальность видимости текста, хукать RPC и изменять данные RPC пакета не вариант потому что плагин могут загрузить когда RPC уже придет, поэтому я прохожусь по всем 3dtext там и ищу нужній мне и после того когда я нашел нужнужный я хочу изменить в нём текст, и установить другую максимальную дальность видимости текста
C++:
strcpy(SF->getSAMP()->getInfo()->pPools->pText3D->textLabel[ID].pText, TEXT);
SF->getSAMP()->getInfo()->pPools->pText3D->textLabel[ID].fMaxViewDistance = DISTANCE
 
  • Нравится
Реакции: Stiopko

Stiopko

Известный
Проверенный
307
218
C++:
strcpy(SF->getSAMP()->getInfo()->pPools->pText3D->textLabel[ID].pText, TEXT);
SF->getSAMP()->getInfo()->pPools->pText3D->textLabel[ID].fMaxViewDistance = DISTANCE

Не робит:sad_frog2:

C++:
strcat(SF->getSAMP()->getInfo()->pPools->pText3D->textLabel[s].pText, "\n");
            strcat(SF->getSAMP()->getInfo()->pPools->pText3D->textLabel[s].pText, temp);
            strcat(SF->getSAMP()->getInfo()->pPools->pText3D->textLabel[s].pText, " / ");
            strcat(SF->getSAMP()->getInfo()->pPools->pText3D->textLabel[s].pText, (ksh->GetState() == 0 ? "Unsigned" : (ksh->GetState() == 2 ? "Vyros" : "Scoro vyroste")));
            SF->getSAMP()->getInfo()->pPools->pText3D->textLabel[s].fMaxViewDistance = 299.;

---------------------

Сори, протупил все чётко работает
 
Последнее редактирование: