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

ARMOR

kjor32 is legend
Модератор
4,827
6,011
ну std::stoi и надо
upd: в ce почекал там и так проподает, дело не в std::stoi
Ну смотри. Если просто ввести
C++:
void __stdcall cmd_show_info_player(std::string param)
{
    *reinterpret_cast<int*>(0xBAB22C) = 0xFFFFFFFF;
};
То полоска меняет цвет. А если изменять через аргумент функции - посылает нахуй и пропадает
 

MeG@LaDo[N] ^_^

Известный
281
315
Как в SF я могу запихнуть значение std::string в память которая требует int?
Пробывал переобразовывать через std::stoi, и прочую хуйню - но не помогало. Вводил агрументом 0xFFFFFFFF и полоска хп просто пропадала вместо того чтобы менять цвет
C++:
void __stdcall text(std::string param)
{
    *reinterpret_cast<int*>(0xBAB22C) = param;
};
на сколько я помню,для того что бы поменять цвет полоски хп нужно использовать memcpy
 
  • Вау
Реакции: ARMOR

F0RQU1N and

Известный
1,305
491
Ну смотри. Если просто ввести
C++:
void __stdcall cmd_show_info_player(std::string param)
{
    *reinterpret_cast<int*>(0xBAB22C) = 0xFFFFFFFF;
};
То полоска меняет цвет. А если изменять через аргумент функции - посылает нахуй и пропадает
std::stoi(str,0, 16) попробуй так
 
  • Эм
Реакции: MeG@LaDo[N] ^_^

MeG@LaDo[N] ^_^

Известный
281
315
Ну смотри. Если просто ввести
C++:
void __stdcall cmd_show_info_player(std::string param)
{
    *reinterpret_cast<int*>(0xBAB22C) = 0xFFFFFFFF;
};
То полоска меняет цвет. А если изменять через аргумент функции - посылает нахуй и пропадает
держи
C++:
std::uint32_t color = 0xFFFFFFFF;
memcpy((LPVOID)0xBAB22C, &color, 4U);
 
  • Нравится
Реакции: ARMOR

MeG@LaDo[N] ^_^

Известный
281
315
Как в SF я могу запихнуть значение std::string в память которая требует int?
Пробывал переобразовывать через std::stoi, и прочую хуйню - но не помогало. Вводил агрументом 0xFFFFFFFF и полоска хп просто пропадала вместо того чтобы менять цвет
C++:
void __stdcall text(std::string param)
{
    *reinterpret_cast<int*>(0xBAB22C) = param;
};
Держи,пришлось чутка подрочится но работает,по крайне мере белый цвет ставит
1658972806306.png

если будет агрится на std::stringstream,тогда подключи
#include <sstream>
 
Последнее редактирование:

sc6ut

неизвестный
Модератор
382
1,074
C++:
void __stdcall cmd_show_info_player(std::string param) {
    *reinterpret_cast<DWORD *>(0xBAB22C) = std::stoul(params, 0, 16);
}

Держи,пришлось чутка подрочится но работает,по крайне мере белый цвет ставит
Посмотреть вложение 159741
если будет агрится на std::stringstream,тогда подключи
#include <sstream>
ахрененно ты создал std::string, чтобы в итоге преобразовать его с помощью c_str. это пример как делать не надо.
 

MeG@LaDo[N] ^_^

Известный
281
315
C++:
void __stdcall cmd_show_info_player(std::string param) {
    *reinterpret_cast<DWORD *>(0xBAB22C) = std::stoul(params, 0, 16);
}


ахрененно ты создал std::string, чтобы в итоге преобразовать его с помощью c_str. это пример как делать не надо.
ты прав,но только у его вопрос был как std::string конвертнуть,по этому так и сделал
 

killian228

Потрачен
12
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Почему не работает рванка? Просто ничего не происходит.

sampapi:
rakhook::on_send_packet += [](RakNet::BitStream*& bs, PacketPriority& priority, PacketReliability& reliability, char& ord_channel) -> bool {
        if (GetKeyState(RvankaKey) & 0x8000) {
            if (*bs->GetData() == ID_VEHICLE_SYNC)
            {
                samp::Synchronization::IncarData car;
                memset(&car, 0, sizeof(samp::Synchronization::IncarData));

                car.m_speed.x += 15.f;
                car.m_speed.y += 15.f;

                bs->Reset();
                bs->Write((BYTE)ID_VEHICLE_SYNC);
                bs->Write((PCHAR)&car, sizeof(samp::Synchronization::IncarData));
            }
        }
        return true;
    };
 

AdCKuY_DpO4uLa

Известный
286
474
Почему не работает рванка? Просто ничего не происходит.

sampapi:
rakhook::on_send_packet += [](RakNet::BitStream*& bs, PacketPriority& priority, PacketReliability& reliability, char& ord_channel) -> bool {
        if (GetKeyState(RvankaKey) & 0x8000) {
            if (*bs->GetData() == ID_VEHICLE_SYNC)
            {
                samp::Synchronization::IncarData car;
                memset(&car, 0, sizeof(samp::Synchronization::IncarData));

                car.m_speed.x += 15.f;
                car.m_speed.y += 15.f;

                bs->Reset();
                bs->Write((BYTE)ID_VEHICLE_SYNC);
                bs->Write((PCHAR)&car, sizeof(samp::Synchronization::IncarData));
            }
        }
        return true;
    };
C++:
rakhook::on_send_packet += [](RakNet::BitStream*& bs, PacketPriority& priority, PacketReliability& reliability, char& ord_channel) -> bool {
    if (GetKeyState(RvankaKey)) {
        if (bs->GetData()[0] == ID_VEHICLE_SYNC)
        {
            samp::Synchronization::IncarData car;
            bs->IgnoreBits(8);
            bs->Read((PCHAR)&car, sizeof(samp::Synchronization::IncarData));

            //car.m_speed.x += 15.f;
            //car.m_speed.y += 15.f;
            //хз какие там поля скорости, туда лучше пихать что-то от 0.5 до 1.0f

            bs->Reset();
            bs->Write((BYTE)ID_VEHICLE_SYNC);
            bs->Write((PCHAR)&car, sizeof(samp::Synchronization::IncarData));
        }
    }
    return true;
};




Как отрисовать 3D круг при помощи imgui?
 

F0RQU1N and

Известный
1,305
491
Как отрисовать 3D круг при помощи imgui
Вот так делал,old говнокод
C++:
void draw_3d_circle(ImDrawList* dl, Vector pos, float rad, ImVec4 clr) {    Vector enpos;    float screen[2], screen2[2]{};    float step = M_PI * 2.f / 2047;        enpos.x = rad * cos(rot) + pos.x;        enpos.y = rad * sin(rot) + pos.y;        enpos.z = pos.z;        Vector2D scr = functions_helper::WorldToScreen(Vector(enpos.x, enpos.y, enpos.z));        if (scr.x && screen2[0] != 0) {            dl->AddLine(ImVec2(scr.x, scr.y), ImVec2(screen2[0], screen2[1]), ImGui::GetColorU32(clr), 15.f);        }        screen2[0] = scr.x;        screen2[1] = scr.y;    }}

...

draw_3d_circle(ImGui::GetBackgroundDrawList(), local.GetAbsOrigin(), 70, ImVec4(1.0f, 1.0f, 1.0f, 1.0f));
 
Последнее редактирование:

xdswd

Известный
367
253
SFAPI. Не появляется форматированный текст.
C++:
void AddMessageJumpQ(const PCHAR text, UINT time, USHORT flag, bool bPreviousBrief) {
    ((void(__cdecl*)(const PCHAR, UINT, USHORT, bool))0x69F1E0)(text, time, flag, bPreviousBrief);
}
C++:
char buffer[32];
sprintf(buffer, "param: %d", 18);
SF->Log(buffer);
AddMessageJumpQ(buffer, 1000, NULL, false);
Решено.
 
Последнее редактирование:

EclipsedFlow

Известный
Проверенный
1,040
459
SFAPI. Не появляется форматированный текст.
C++:
void AddMessageJumpQ(const PCHAR text, UINT time, USHORT flag, bool bPreviousBrief) {
    ((void(__cdecl*)(const PCHAR, UINT, USHORT, bool))0x69F1E0)(text, time, flag, bPreviousBrief);
}
C++:
char buffer[32];
sprintf(buffer, "param: %d", 18);
SF->Log(buffer);
AddMessageJumpQ(buffer, 1000, NULL, false);
Вроде все правильно, что выводи вообще в консоль и строку?