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

Dark_Knight

Me, me and me.
Друг
4,065
2,079
Урон по тачке идет, если в ней есть игрок. Так же ид игрока, который в машине надо указывать.
 

CleanLegend

Известный
Всефорумный модератор
476
929
Как скомпилить без окна Windows? Что бы был только ImGui когда инжектиться Dll
Напиши подробнее

Как получить координаты кости другого игрока?
C++:
CPed* Ped = GAME->GetPools()->GetPed((DWORD*)actorInfo);
Ped->GetTransformedBonePosition(BONE_SPINE1, &vPos);
 

iAmerican

Известный
Друг
614
257
как отнять патрон от оружия которое в руках?
C++:
int ammo = SA->getPlayers()->pLocalPlayer->iWeaponAmmo[SA->getPlayers()->pLocalPlayer->pSAMP_Actor->pGTA_Ped->weapon_slot] - 1;
            SA->setAmmo(SA->getPlayers()->pLocalPlayer->byteCurrentWeapon, ammo);
int sampAPI::setAmmo(int weaponId, int ammo)
{
    typedef int(__thiscall *CPed__setAmmo)(void *_this, int weaponId, int ammo);
    return (CPed__setAmmo((uint32_t)0x5DF290))(SA->getPlayers()->pLocalPlayer->pSAMP_Actor->pGTA_Ped, weaponId, ammo);
}

на сф сам переведешь

Как скомпилить без окна Windows? Что бы был только ImGui когда инжектиться Dll
Imgui по размеру окна растягивай.
И замени флаг создания окна с WS_OVERLAPPEDWINDOW на WS_POPUP.
 
Последнее редактирование модератором:

Ma[x].

Известный
184
13
Скомпилируйте код пж а то не устанавливаеться прога чтобы компильнуть
Код:
#include "plugin.h"
#include "common.h"
#include "CTimer.h"
#include "CStreaming.h"
#include "CTaskComplexPlayHandSignalAnim.h"

#define NEW_MODEL_AT_KEY_PRESS

using namespace plugin;

class HandSignals {
public:
    HandSignals() {
        static int keyPressTime = 0;
        static int newPlayerModelId = -1;
        static int gangModelIds[] = { MODEL_BALLAS1,
                                      MODEL_BALLAS2,
                                      MODEL_BALLAS3,
                                      MODEL_FAM1,
                                      MODEL_FAM2,
                                      MODEL_FAM3,
                                      MODEL_LSV1,
                                      MODEL_LSV2,
                                      MODEL_LSV3,
                                      MODEL_VLA1,
                                      MODEL_VLA2,
                                      MODEL_VLA3 };

        Events::gameProcessEvent += [] {
            CPed *playa = FindPlayerPed();
            if (playa && playa->IsAlive() && CTimer::m_snTimeInMilliseconds - keyPressTime > 500) {
                int animationId = -1;
                if (KeyPressed(0x31)) // 1
                    animationId = 320;
                else if (KeyPressed(0x32)) // 2
                    animationId = 321;
                else if (KeyPressed(0x33)) // 3
                    animationId = 322;
                else if (KeyPressed(0x34)) // 4
                    animationId = 323;
                else if (KeyPressed(0x35)) // 5
                    animationId = 324;

                if (animationId != -1) {
                    keyPressTime = CTimer::m_snTimeInMilliseconds;
#ifndef NEW_MODEL_AT_KEY_PRESS
                    if (newPlayerModelId == -1)
#endif
                        newPlayerModelId = gangModelIds[rand() % 12];
                    if (playa->m_nModelIndex != newPlayerModelId) {
                        CStreaming::RequestModel(newPlayerModelId, 2);
                        CStreaming::LoadAllRequestedModels(false);
                        unsigned int savedAnimGroup = playa->m_nAnimGroup;
                        playa->DeleteRwObject();
                        playa->m_nModelIndex = -1;
                        playa->SetModelIndex(newPlayerModelId);
                        playa->m_nAnimGroup = savedAnimGroup;
                        CStreaming::SetModelIsDeletable(newPlayerModelId);
                    }
                    playa->m_pIntelligence->m_TaskMgr.SetTaskSecondary(new CTaskComplexPlayHandSignalAnim(animationId, 4.0f), 4);
                }
            }
        };
    }
} handSignals;
 
  • Нравится
Реакции: kawa operand

SR_team

like pancake
BH Team
4,720
6,372
Здарова, мужики.
Пишу dll d3d9, которое будет подгружать основной d3d9.dll от майкрософт. Только одна проблема.... Крашит при входе. Что делать, чтобы всё заработало?

C++:
#include <Windows.h>
#include <process.h>
#include <iostream>
#include <string.h>
#include <stdio.h>


void __cdecl MainThread(void *pArg)
{
    while (true)
    {
        Sleep(10);
        if (GetAsyncKeyState(VK_NUMPAD1)) {
        keybd_event('n', 0, 0, 0);
        keybd_event('n', 0, KEYEVENTF_KEYUP, 0);
        }
    }
}

BOOL WINAPI DllMain(_In_ HINSTANCE hinstDLL, _In_ DWORD fdwReason, _In_ PVOID lpvReserved)
{
    if (fdwReason == DLL_PROCESS_ATTACH) {
        LoadLibrary("C:\\Windows\\System32\\d3d9.dll");
    _beginthread(MainThread, NULL, nullptr);
    }
    return TRUE;
}

Ошибка:
Код:
Серьезность    Код    Описание    Строка    Состояние подавления
Предупреждение    MSB8004    каталог Output заканчивается не косой чертой.  Этот экземпляр сборки добавит косую черту, поскольку она необходима для правильного определения каталога Output.    377
Ты должен реализовать в библиотеке все интерфейсы оригинально библиотеки и пробрасывать их. Это тебе не Linux, что бы все так просто было с прокси-либой
 

_=Gigant=_

Известный
134
191
1.
for (int other_players = 0; other_players < SAMP_MAX_PLAYERS; other_players++)
{
actor_info *actor = getGTAPedFromSAMPPlayerID(other_players);

how to get skin id for other_players

2.
and how to make text draw only on other_players and not on my player

for (int other_players = 0; other_players < SAMP_MAX_PLAYERS; other_players++)
{
actor_info *actor = getGTAPedFromSAMPPlayerID(other_players);
//actor_info * my_ac = actor_info_get(ACTOR_SELF, NULL);

if (!actor)
continue;

D3DXVECTOR3 player_pos, screenposs;

float * f_pos = &actor->base.matrix[4 * 3];
player_pos.x = f_pos[0];
player_pos.y = f_pos[1];
player_pos.z = f_pos[2];
CalcScreenCoors(&player_pos, &screenposs);

char pos[256], ping[256], hparmw[256], pnameid[256] ;

if (screenposs.z < 1.f)
continue;

// this text below is showed on my player also how to make it show only on other_players

_snprintf_s(skin, sizeof(skin) - 1, "Skin");
pD3DFont_sampStuff->PrintShadow(screenposs.x, screenposs.y - 12, COLOR_WHITE(255), skin);

thanks for help !