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

klyuchik

Участник
51
8
Для начала тебе стоит выучить базовый синтаксис языка, поэтому вписываешь в ютубе что-то вроде "курс C++ для новичка" и смотришь пару видео. Далее можешь начать читать книжку, лично я читал (но так и не дочитал) Лоспинозо - C++ для профи. Молниеносный старт (2021). Потом смотришь чужой код, на том же бластхаке и постепенно пишешь свои проекты
Пишет что ссылка не доступна , скинь на гугл диск
 

Jonh Lee

Известный
3
1
как сделать быстрый бег игроку, именно ускорить бег персонажа, а не ускорить всю игру или бег CJ.
 
  • Нравится
Реакции: walkerdev

whyega52

Гений, миллионер, плейбой, долбаеб
Модератор
2,783
2,608
как сделать быстрый бег игроку, именно ускорить бег персонажа, а не ускорить всю игру или бег CJ.
Попробуй на постоянке изменять ped->m_pPlayerData->m_fMoveSpeed
Plugin SDK:
C++:
FindPlayerPed()->m_pPlayerData->m_fMoveSpeed = 0.f;
 

Smeruxa

Известный
1,361
722
Ставлю хук, но он не срабатывает при выстреле, в чем проблема может быть?
C++:
using addBullet = bool(__cdecl*)(CEntity*, eWeaponType, CVector, CVector);

constructor() {
    std::uintptr_t base = reinterpret_cast<std::uintptr_t>(GetModuleHandleA("samp.dll"));

    kthook::kthook_simple<addBullet>(bullet);

    bullet.set_cb([](const auto& hook, CEntity* eShooter, eWeaponType weaponType, CVector vecPosition, CVector vecVelocity) {
        sampapi::v037r1::RefChat()->AddMessage(-1, (std::to_string((int)weaponType)).c_str());
        return hook.get_trampoline()(eShooter, weaponType, vecPosition, vecVelocity);
    });
    bullet.set_dest(base + 0xA0BB0);
    bullet.install();
}
 

whyega52

Гений, миллионер, плейбой, долбаеб
Модератор
2,783
2,608
Ставлю хук, но он не срабатывает при выстреле, в чем проблема может быть?
C++:
using addBullet = bool(__cdecl*)(CEntity*, eWeaponType, CVector, CVector);

constructor() {
    std::uintptr_t base = reinterpret_cast<std::uintptr_t>(GetModuleHandleA("samp.dll"));

    kthook::kthook_simple<addBullet>(bullet);

    bullet.set_cb([](const auto& hook, CEntity* eShooter, eWeaponType weaponType, CVector vecPosition, CVector vecVelocity) {
        sampapi::v037r1::RefChat()->AddMessage(-1, (std::to_string((int)weaponType)).c_str());
        return hook.get_trampoline()(eShooter, weaponType, vecPosition, vecVelocity);
    });
    bullet.set_dest(base + 0xA0BB0);
    bullet.install();
}
В чит энджине смотрел, там стоит на месте Хука джамп на аллоциированный адрес и по которому можно будет увидеть следы твоего плагина (в случае ктхука) ?
 

0x73616D

Активный
140
42
Как получить статус дверей автомобиля, которым я управляю?
Как узнать состояние двигателя автомобиля, на котором я еду?

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

whyega52

Гений, миллионер, плейбой, долбаеб
Модератор
2,783
2,608
Как узнать состояние двигателя автомобиля, на котором я еду?
Как узнать статус дверей автомобиля, которым я управляю?
 
  • Нравится
Реакции: 0x73616D

Smeruxa

Известный
1,361
722
Нужно отправить дамаг в человека, но ничего не происходит, в чем ошибка? (В первом аргумент отдавал как true, так и false)
1723814675156.png

C++:
RakNet::BitStream bsDamage;

bsDamage.Write(true);
bsDamage.Write((uint16_t)nearId.first);
bsDamage.Write(resultDamage);
bsDamage.Write((uint32_t)byteWeapon);
bsDamage.Write((uint32_t)nearBone);

rakhook::emul_rpc(115, bsDamage);

Вариант ниже тоже не отправляет ничего
C++:
sampapi::v037r1::RefNetGame()->GetPlayerPool()->GetLocalPlayer()->SendGiveDamage(nearId.first, resultDamage, byteWeapon, nearBone);

Дебагом когда вывожу - все правильно определяет, проблема ТОЧНО именно в отправке урона
 

AdCKuY_DpO4uLa

Адский дрочер
Друг
315
667
emul_rpc эмулирует входящий рпц, а не отправляет его. Так же нужно отправлять пулю в человека (ID_BULLET_SYNC). Еще желательно слать аим синхну (ID_AIM_SYNC) и онфут синхру (ID_ONFOOT_SYNC), чтобы сервер не кикал за читы
 

Smeruxa

Известный
1,361
722
emul_rpc эмулирует входящий рпц, а не отправляет его. Так же нужно отправлять пулю в человека (ID_BULLET_SYNC). Еще желательно слать аим синхну (ID_AIM_SYNC) и онфут синхру (ID_ONFOOT_SYNC), чтобы сервер не кикал за читы
Пуля в человека уже сэмулирована, осталось только урон отправить
 

manukhov

Известный
125
131
Первый параметр должен быть false, если речь идет про исходящий урон.
И не совсем понятно зачем тут эмулировать, почему бы просто не отправить?
 
Последнее редактирование:
  • Нравится
Реакции: Smeruxa

Smeruxa

Известный
1,361
722
Задача - повернуть матрицу, как это сделать? Я пробовал уже по разному, разные оси

1724364108120.png

И ее нужно повернуть например в противоположном направлении
Матрицу если отдаю измененную в функцию - просто не отображает необходимый мне объект


C++:
RwMatrix* matrix = RwMatrixCreate();
RwV3d axis = { 0.f, 0.f, 1.f };
RwMatrixRotate(matrix, &axis, 180.f, RwOpCombineType::rwCOMBINEPOSTCONCAT);
 

walkerdev

Новичок
7
0
Можно ли каким-то образом добавить прицел для любого оружия? т.е. тот, что на снайперской винтовке 34 id, будет так же и на других видах оружия
 

Loku

Известный
30
7
as noob as it sounds how can i get health/armor of an enemy player using samp-api, because i get invalid info everytime:
C++:
samp::CPlayerInfo* pPlayer = playerPool->GetAt(i);

auto hp = remote_player->m_onfootData.m_nHealth; //does work sometimes i think people from that comes to your streamzone gives 0hp

auto ap = remote_player->m_onfootData.m_nArmor //does work sometimes i think people from that comes to your streamzone gives 0ap



auto hpp = remote_player->m_pPed->GetHealth(); //always 100

auto app = remote_player->m_pPed->GetArmour(); //always 100



auto hpp = remote_player->m_pPed->m_pGamePed->m_fHealth; //always 100 or 0 dont renember

auto app = remote_player->m_pPed->m_pGamePed->m_fArmour; //always 100 or 0 dont renember