Гайд Spread crosshair fatality (INDIGO)

nixware.cc
Эксперт
Статус
Оффлайн
Регистрация
1 Июл 2017
Сообщения
1,631
Реакции[?]
1,534
Поинты[?]
31K
Всем привет дада гайд для индиго

Значит вставляем перед HRESULT WINAPI Hook_Present это дерьмо
//Не обращайте внимания на лишний код, мне лень было вырезать.
Код:
        struct CUSTOMVERTEX {
            FLOAT x, y, z;
            FLOAT rhw;
            DWORD color;
            //  FLOAT tu, tv;  
        };

        void CircleFilledDualColor(float x, float y, float rad, float rotate, int type, int resolution, DWORD color, DWORD color2, IDirect3DDevice9* m_device)
        {
            LPDIRECT3DVERTEXBUFFER9 g_pVB2;

            std::vector<CUSTOMVERTEX> circle(resolution + 2);

            float angle = rotate * D3DX_PI / 180, pi = D3DX_PI;

            if (type == 1)
                pi = D3DX_PI; // Full circle
            if (type == 2)
                pi = D3DX_PI / 2; // 1/2 circle
            if (type == 3)
                pi = D3DX_PI / 4; // 1/4 circle

            pi = D3DX_PI / type; // 1/4 circle

            circle[0].x = x;
            circle[0].y = y;
            circle[0].z = 0;
            circle[0].rhw = 1;
            circle[0].color = color2;

            for (int i = 1; i < resolution + 2; i++)
            {
                circle[i].x = (float)(x - rad * cos(pi*((i - 1) / (resolution / 2.0f))));
                circle[i].y = (float)(y - rad * sin(pi*((i - 1) / (resolution / 2.0f))));
                circle[i].z = 0;
                circle[i].rhw = 1;
                circle[i].color = color;
            }

            // Rotate matrix
            int _res = resolution + 2;
            for (int i = 0; i < _res; i++)
            {
                circle[i].x = x + cos(angle)*(circle[i].x - x) - sin(angle)*(circle[i].y - y);
                circle[i].y = y + sin(angle)*(circle[i].x - x) + cos(angle)*(circle[i].y - y);
            }

            m_device->CreateVertexBuffer((resolution + 2) * sizeof(CUSTOMVERTEX), D3DUSAGE_WRITEONLY, D3DFVF_XYZRHW | D3DFVF_DIFFUSE, D3DPOOL_DEFAULT, &g_pVB2, NULL);

            VOID* pVertices;
            g_pVB2->Lock(0, (resolution + 2) * sizeof(CUSTOMVERTEX), (void**)&pVertices, 0);
            memcpy(pVertices, &circle[0], (resolution + 2) * sizeof(CUSTOMVERTEX));
            g_pVB2->Unlock();

            m_device->SetTexture(0, NULL);
            m_device->SetPixelShader(NULL);
            m_device->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
            m_device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
            m_device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);

            m_device->SetStreamSource(0, g_pVB2, 0, sizeof(CUSTOMVERTEX));
            m_device->SetFVF(D3DFVF_XYZRHW | D3DFVF_DIFFUSE);
            m_device->DrawPrimitive(D3DPT_TRIANGLEFAN, 0, resolution);
            if (g_pVB2 != NULL)
                g_pVB2->Release();
        }

        void CircleFilledRainbowColor(float x, float y, float rad, float rotate, int type, int resolution, IDirect3DDevice9* m_device)
        {
            LPDIRECT3DVERTEXBUFFER9 g_pVB2;

            std::vector<CUSTOMVERTEX> circle(resolution + 2);

            float angle = rotate * D3DX_PI / 180, pi = D3DX_PI;

            if (type == 1)
                pi = D3DX_PI; // Full circle
            if (type == 2)
                pi = D3DX_PI / 2; // 1/2 circle
            if (type == 3)
                pi = D3DX_PI / 4; // 1/4 circle

            pi = D3DX_PI / type; // 1/4 circle

            circle[0].x = x;
            circle[0].y = y;
            circle[0].z = 0;
            circle[0].rhw = 1;
            circle[0].color = D3DCOLOR_RGBA(0, 0, 0, 0);

            float hue = 0.f;

            for (int i = 1; i < resolution + 2; i++)
            {
                circle[i].x = (float)(x - rad * cos(pi*((i - 1) / (resolution / 2.0f))));
                circle[i].y = (float)(y - rad * sin(pi*((i - 1) / (resolution / 2.0f))));
                circle[i].z = 0;
                circle[i].rhw = 1;

                auto clr = Color::FromHSB(hue, 1.f, 1.f);
                circle[i].color = D3DCOLOR_RGBA(clr.r(), clr.g(), clr.b(), clr.a());
                hue += 0.02;
            }

            // Rotate matrix
            int _res = resolution + 2;
            for (int i = 0; i < _res; i++)
            {
                float Vx1 = x + (cosf(angle) * (circle[i].x - x) - sinf(angle) * (circle[i].y - y));
                float Vy1 = y + (sinf(angle) * (circle[i].x - x) + cosf(angle) * (circle[i].y - y));

                circle[i].x = Vx1;
                circle[i].y = Vy1;
            }

            m_device->CreateVertexBuffer((resolution + 2) * sizeof(CUSTOMVERTEX), D3DUSAGE_WRITEONLY, D3DFVF_XYZRHW | D3DFVF_DIFFUSE, D3DPOOL_DEFAULT, &g_pVB2, NULL);

            VOID* pVertices;
            g_pVB2->Lock(0, (resolution + 2) * sizeof(CUSTOMVERTEX), (void**)&pVertices, 0);
            memcpy(pVertices, &circle[0], (resolution + 2) * sizeof(CUSTOMVERTEX));
            g_pVB2->Unlock();

            m_device->SetTexture(0, NULL);
            m_device->SetPixelShader(NULL);
            m_device->SetRenderState(D3DRS_ALPHABLENDENABLE, TRUE);
            m_device->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
            m_device->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);

            m_device->SetStreamSource(0, g_pVB2, 0, sizeof(CUSTOMVERTEX));
            m_device->SetFVF(D3DFVF_XYZRHW | D3DFVF_DIFFUSE);
            m_device->DrawPrimitive(D3DPT_TRIANGLEFAN, 0, resolution);
            if (g_pVB2 != NULL)
                g_pVB2->Release();
        }

        DWORD color = D3DCOLOR_RGBA((int)(0 *255.0f), (int)(0 *255.0f), (int)(0 *255.0f), (int)(1 *255.0f));
        DWORD color2 = D3DCOLOR_RGBA((int)(0 * 255.0f), (int)(0 * 255.0f), (int)(0 * 255.0f), (int)(0 * 255.0f));

        void Crosshair(IDirect3DDevice9* pDevice)
        {
            CBaseEntity* local = (CBaseEntity*)Interfaces::EntityList()->GetClientEntity(Interfaces::Engine()->GetLocalPlayer());

            Color AwpAimColor = Color(int(Settings::Misc::misc_AwpAimColor[0] * 255.f),
                int(Settings::Misc::misc_AwpAimColor[1] * 255.f),
                int(Settings::Misc::misc_AwpAimColor[2] * 255.f));

            if (Settings::Misc::ShowSpread == 2)
            {
                int width, height;
                Interfaces::Engine()->GetScreenSize(width, height);
                if (local && IsLocalAlive())
                {
                    static Vector ViewAngles;
                    Interfaces::Engine()->GetViewAngles(ViewAngles);
                    ViewAngles += (local->GetAimPunchAngle()) * 2.f;

                    static Vector fowardVec;
                    AngleVectors(ViewAngles, fowardVec);
                    fowardVec *= 10000;

                    // Get ray start / end
                    Vector start = local->GetOrigin() + local->GetViewOffset();
                    Vector end = start + fowardVec, endScreen;

                    CBaseWeapon* weaponbase = local->GetBaseWeapon();

                    if (weaponbase->IsGun())
                    {
                        float cone = weaponbase->GetInaccuracy();

                        if (cone > 0.0f)
                        {
                            float size;
                            Vector screen;

                            if (cone < 0.01f) cone = 0.01f;

                            float size1337 = (cone * height) * 0.7f;

                            if (WorldToScreen(end, endScreen))
                            {
                                /*Вот это значит рейнбов круг*/
                                CircleFilledRainbowColor(Client::iScreenWidth / 2, Client::iScreenHeight / 2, size1337, 0, 1, 50/*, color, color2*/, pDevice);
                                /*А это двухцветный круг прямо как в ав*/
                                CircleFilledDualColor(Client::iScreenWidth / 2, Client::iScreenHeight / 2, size1337, 0, 1, 50, color, color2, pDevice);
                            }
                        }
                    }
                }
            }
        }
Упс, забыли аккураси:
Код:
    float CBaseWeapon::GetInaccuracy()
    {
        return GetMethod<float(__thiscall*)(void*)>(this, 468)(this);
    }
Ну а потом в самом презенте вызываем вот так:


После данных манипуляций мы получим такой результат:
Пожалуйста, авторизуйтесь для просмотра ссылки.
(соре за второй моник)​
Credits: Nixer (За готовую пасту), Zidjey (За реинбоу киркл)
Если будете пастить на другие борды, будьте добры, оставляйте кредиты.
Спасибо.​
 
бос рунета
Участник
Статус
Оффлайн
Регистрация
24 Ноя 2017
Сообщения
526
Реакции[?]
151
Поинты[?]
0
Гайд хороший, можно ли сделать это же, но для стакхака?:roflanEbalo:
 
HVHLEGEND
Забаненный
Статус
Оффлайн
Регистрация
13 Май 2018
Сообщения
745
Реакции[?]
121
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
это просто ахуенно
 
Забаненный
Статус
Оффлайн
Регистрация
7 Июн 2018
Сообщения
167
Реакции[?]
65
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Возможно это реализовать в интернал Чите?
 
Забаненный
Статус
Оффлайн
Регистрация
29 Авг 2017
Сообщения
370
Реакции[?]
127
Поинты[?]
1K
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Забаненный
Статус
Оффлайн
Регистрация
7 Июн 2018
Сообщения
167
Реакции[?]
65
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Забаненный
Статус
Оффлайн
Регистрация
7 Июн 2018
Сообщения
167
Реакции[?]
65
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Исправил,говорю же путаю эти два понятия:FeelsBadMan:
 
HVHLEGEND
Забаненный
Статус
Оффлайн
Регистрация
13 Май 2018
Сообщения
745
Реакции[?]
121
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Новая ава блеять
Забаненный
Статус
Оффлайн
Регистрация
14 Янв 2018
Сообщения
89
Реакции[?]
235
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
HVHLEGEND
Забаненный
Статус
Оффлайн
Регистрация
13 Май 2018
Сообщения
745
Реакции[?]
121
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Новая ава блеять
Забаненный
Статус
Оффлайн
Регистрация
14 Янв 2018
Сообщения
89
Реакции[?]
235
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
HVHLEGEND
Забаненный
Статус
Оффлайн
Регистрация
13 Май 2018
Сообщения
745
Реакции[?]
121
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
nixware.cc
Эксперт
Статус
Оффлайн
Регистрация
1 Июл 2017
Сообщения
1,631
Реакции[?]
1,534
Поинты[?]
31K
добавил но ему всё равно что то не нравится....
можешь помочь пожалуйста
Пиздец, ты не можешь добавить проверку на оружие в руке?
Замени на: (localplayer->getweapon)
 
Сверху Снизу