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

Musaigen

abobusnik
Проверенный
1,607
1,365

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,744
4,809
как сбить анимацию?
То же самое что выше, но самодельное(игра также делает)

C++:
CTaskManager* TaskManager = PEDSELF->GetPedIntelligence()->GetTaskManager();
    for (int i = 0; i < TASK_PRIORITY_MAX; i++)
    {
        CTask* pTask = TaskManager->GetTask(i);
        if (pTask)
        {
            pTask->MakeAbortable(PEDSELF, ABORT_PRIORITY_IMMEDIATE, NULL);
            TaskManager->RemoveTask(i);
        }
    }
    for (int i = 0; i < TASK_SECONDARY_MAX; i++)
    {
        CTask* pTask = TaskManager->GetTaskSecondary(i);
        if (pTask)
        {
            pTask->MakeAbortable(PEDSELF, ABORT_PRIORITY_IMMEDIATE, NULL);
            if (i != TASK_SECONDARY_FACIAL_COMPLEX)
                TaskManager->RemoveTaskSecondary(i);
        }
    }
 
  • Нравится
  • Влюблен
Реакции: Ya Zaregalsya и Smeruxa

Retr0vk

Новичок
2
0
Пытаюсь написать чамсы для чита, однако при включении функции игра вылетает без какой либо ошибки, подскажете?
C++:
void ESP_Chams()
{
    DWORD* dwConstant;
    DWORD* dwARG0;
    DWORD* dwARG2;
    IDirect3DDevice9* pDevice;
    pDevice = SF->getRender()->getD3DDevice();
    pDevice->GetTextureStageState(0, D3DTSS_CONSTANT, dwConstant);
    pDevice->GetTextureStageState(0, D3DTSS_COLORARG0, dwARG0);
    pDevice->GetTextureStageState(0, D3DTSS_COLORARG2, dwARG2);
    pDevice->SetTextureStageState(0, D3DTSS_CONSTANT, 0xFF00FF00);
    pDevice->SetTextureStageState(0, D3DTSS_COLORARG0, 6);
    pDevice->SetTextureStageState(0, D3DTSS_COLORARG2, 6);
    PEDSELF->Render();
    pDevice->SetTextureStageState(0, D3DTSS_CONSTANT, dwConstant[0]);
    pDevice->SetTextureStageState(0, D3DTSS_COLORARG0, dwARG0[0]);
    pDevice->SetTextureStageState(0, D3DTSS_COLORARG2, dwARG2[0]);
}
 

Dark_Knight

Me, me and me.
Друг
4,081
2,099
Указатели ты объявил, но память не выделил. Где-то тут уже был выше код где чувак чамсы рисовал.
 
  • Нравится
Реакции: Retr0vk

Smeruxa

Известный
1,367
724
как исправить, при закрытии имгуи окна мой персонаж начинает бить, ну как обычно нажимаешь ЛКМ, хотя не должен
 

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,744
4,809
как исправить, при закрытии имгуи окна мой персонаж начинает бить, ну как обычно нажимаешь ЛКМ, хотя не должен
в WNDProc
C++:
if (state.bMenuOpened) {
    if (ImGui_ImplWin32_WndProcHandler(hWnd, msg, wParam, lParam))
    {
        return true;
    }
    ImGuiIO& io = ImGui::GetIO();
    if (io.WantCaptureMouse || io.WantCaptureKeyboard)
    {
        return true;
    }
}
 
  • Влюблен
Реакции: Smeruxa

SheriffKBR

Известный
10
1
Как можно реализовать ASI скрипт который спарсит ники игроков на сервере
 

Frederico3133

Новичок
1
0
Всем привет, делаю свой проект на samp mobile и заметел, что анимации которые я делаю - не видят другие игроки? если не сложно обьясните, в чем причина, где я ошибся?
 

loganhackerdff

Известный
868
519
Всем привет, делаю свой проект на samp mobile и заметел, что анимации которые я делаю - не видят другие игроки? если не сложно обьясните, в чем причина, где я ошибся?
В 135 строчке ошибка и ещё в 3 замени deque на vector
 
  • Ха-ха
Реакции: sc6ut и kin4stat

loganhackerdff

Известный
868
519
Кстати выше - не самое лучшее решение. Лучше хукать DrawIndexedPrimitive в пайплайне рендера педов(0x761142) и выставлять цвет пикселей через константы или пиксельный шейдер. Пример:
C:
sampler2D tex0 : register(s0);
extern float3 dy: register(c0);

float4 main(float2 tc : TEXCOORD0) : COLOR
{
    return tex2D(tex0, tc) * float4(dy[0], dy[1], dy[2], 1.0);
}
C++:
{
    HRSRC hsrc = FindResourceW(reinterpret_cast<HMODULE>(hmdl), MAKEINTRESOURCEW(IDR_HLSL2), L"HLSL");
    PVOID shader = LockResource(LoadResource(reinterpret_cast<HMODULE>(hmdl), hsrc));
    pDevice->CreatePixelShader(reinterpret_cast<DWORD*>(shader), &pPixelShader);
}
C++:
pDevice->SetPixelShader(pPixelShader);
// Rainbow lol
if (bTact) {
    HSVtoRGB(RGB[0], RGB[1], RGB[2], color[0], color[1], color[2]);
    color[0] += 2.0f;
    if (color[0] >= 360.0f) color[0] -= 360.0f;
    bTact = false;
}
pDevice->SetPixelShaderConstantF(0, RGB, 1);
fpHkDrawIndexedPrimitive(pDevice, Type, BaseVertexIndex, MinVertexIndex, NumVertices, startIndex, primCount);
pDevice->SetPixelShader(nullptr);
return D3D_OK;
а может знаешь пайплайн рендера авто?
 

loganhackerdff

Известный
868
519
всем привет, я столкнулся с прикольной проблемой, она заключается в том, что ИНОГДА std::vector<someclass> при emplace_back у меня выбивает исключение this = nullptr
код класса
C++:
class RenderClass
{
public:
    bool m_bIsEnabled{ false }; //  визуалка 2019 показывает ошибку тут

    std::string m_sName{ "" };
private:   
    std::vector<ObjectRender> m_objectsRenders;
    std::vector<Text3dRender> m_text3dRenders;
    std::vector<PickupRender> m_pickupRenders;
public:     
    RenderClass();
    RenderClass(const char* szName);

    void ReadWrite(READ_WRITE_PARAMS);

    bool areAnyObjectRendersEnabled();
    bool areAnyickupRendersEnabled();
    bool areAnyText3DRendersEnabled();

    void renderPickups(RenderPickup_ObjectData* pRenderPickupData);
    void renderObjects(RenderPickup_ObjectData* pRenderObjectData);
    void render3DTexts(Render3DTextData* p3DTextData);

    void drawEditor(size_t spl);
    void drawMenu(size_t i);

};
Код с самим emplace_back()
C++:
void CustomRender::ReadWrite(READ_WRITE_PARAMS)
{
    using namespace std::chrono_literals;
    try
    {
        FIELD_IV4(customRenderData.vec4Color);
        FIELD(customRenderData.bDrawLine);

        FIELD(customRenderData.m_fFontScale);

        FIELD(m_bEnabled);

        if (bRead)
        {
            size_t i = 0;
            while (true)
            {
                if (data["class"][std::to_string(i).c_str()].is_null())
                    break;

                auto&& renderClass = m_classes.emplace_back(); // вот тут ошибка
                renderClass.ReadWrite(data["class"][std::to_string(i).c_str()], bRead);
                i++;
            }
        }
        else
        {
            for (size_t i = 0; i < m_classes.size(); i++)
                m_classes[i].ReadWrite(data["class"][std::to_string(i).c_str()], bRead);
        }
    }
    catch (...) { setDefaultSettings(); }

}
1630160673928.png

1630160720160.png
 

kin4stat

mq-team · kin4@naebalovo.team
Всефорумный модератор
2,744
4,809
всем привет, я столкнулся с прикольной проблемой, она заключается в том, что ИНОГДА std::vector<someclass> при emplace_back у меня выбивает исключение this = nullptr
код класса
C++:
class RenderClass
{
public:
    bool m_bIsEnabled{ false }; //  визуалка 2019 показывает ошибку тут

    std::string m_sName{ "" };
private: 
    std::vector<ObjectRender> m_objectsRenders;
    std::vector<Text3dRender> m_text3dRenders;
    std::vector<PickupRender> m_pickupRenders;
public:   
    RenderClass();
    RenderClass(const char* szName);

    void ReadWrite(READ_WRITE_PARAMS);

    bool areAnyObjectRendersEnabled();
    bool areAnyickupRendersEnabled();
    bool areAnyText3DRendersEnabled();

    void renderPickups(RenderPickup_ObjectData* pRenderPickupData);
    void renderObjects(RenderPickup_ObjectData* pRenderObjectData);
    void render3DTexts(Render3DTextData* p3DTextData);

    void drawEditor(size_t spl);
    void drawMenu(size_t i);

};
Код с самим emplace_back()
C++:
void CustomRender::ReadWrite(READ_WRITE_PARAMS)
{
    using namespace std::chrono_literals;
    try
    {
        FIELD_IV4(customRenderData.vec4Color);
        FIELD(customRenderData.bDrawLine);

        FIELD(customRenderData.m_fFontScale);

        FIELD(m_bEnabled);

        if (bRead)
        {
            size_t i = 0;
            while (true)
            {
                if (data["class"][std::to_string(i).c_str()].is_null())
                    break;

                auto&& renderClass = m_classes.emplace_back(); // вот тут ошибка
                renderClass.ReadWrite(data["class"][std::to_string(i).c_str()], bRead);
                i++;
            }
        }
        else
        {
            for (size_t i = 0; i < m_classes.size(); i++)
                m_classes[i].ReadWrite(data["class"][std::to_string(i).c_str()], bRead);
        }
    }
    catch (...) { setDefaultSettings(); }

}
Ну как минимум emplace_back возвращает lvalue reference, а у тебя auto&&, который rvalue reference
 

Dark_Knight

Me, me and me.
Друг
4,081
2,099
А зачем 2 &&? Один вроде нужен. Да и лучше обращаться к елементам контейнеров через at и попробуй еще в try catch взять код и посмотреть, что за ошибку выдает.