AddMessageJumpQ выводит ху*ню

1NEXPL1CA

Известный
Автор темы
760
379
C++:
#define FUNC_CMessages__AddMessageJumpQ 0x69F1E0

void AddMessageJumpQ(char* text, unsigned int time, unsigned short flag, bool bPreviousBrief)
{
    ((void(__cdecl*)(char*, unsigned int, unsigned short, bool))FUNC_CMessages__AddMessageJumpQ)(text, time, flag, bPreviousBrief);
}
Есть такая функа.
Как делаю я:
C++:
    if (teleport && PEDSELF->GetVehicle() != nullptr)
    {
        static DWORD time{};
        if (GetTickCount() - delay > time) {
            CVector bet = b - c;
            float distance = bet.Length();
            if (distance >= 10)
            {
                bet.Normalize();
                c.fX += bet.fX * 3;
                c.fY += bet.fY * 3;
                c.fZ += bet.fZ * 3;
                sendVehicle(c);
                AddMessageJumpQ((char*)to_string(distance).c_str(), 1500, 12, true);
                time = GetTickCount();
            }
            else
            {
                sendVehicle(b);
                PEDSELF->GetVehicle()->Teleport(b.fX, b.fY, b.fZ);
                SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 0xAA, 0), "Teleported!");
                teleport = false;
            }
        }
    }

что выводит мне функция:
1714671086953.png

Пж помогите с решением!
 
  • Ха-ха
  • Грустно
Реакции: pastow и etereon

zer0byt3.

Активный
167
52
Попробуй
1:
#define FUNC_CMessages__AddMessageJumpQ 0x69F1E0

void AddMessageJumpQ(char* text, unsigned int time, unsigned short flag, bool bPreviousBrief)
{
    ((void(__cdecl*)(char*, unsigned int, unsigned short, bool))FUNC_CMessages__AddMessageJumpQ)(text, time, flag, bPreviousBrief);
}
2:
    if (teleport && PEDSELF->GetVehicle() != nullptr)
    {
        static DWORD time{};
        if (GetTickCount() - delay > time) {
            CVector bet = b - c;
            float distance = bet.Length();
            if (distance >= 10)
            {
                bet.Normalize();
                c.fX += bet.fX * 3;
                c.fY += bet.fY * 3;
                c.fZ += bet.fZ * 3;
                sendVehicle(c);
                char buffer[64] = {0};
                sprintf(buffer, "%0.2f meters", distance); //Это из-за того, что гта не особо дружит с русским текстом.
                AddMessageJumpQ(buffer, 1500, 12, true); //Исправление
                time = GetTickCount();
            }
            else
            {
                sendVehicle(b);
                PEDSELF->GetVehicle()->Teleport(b.fX, b.fY, b.fZ);
                SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 0xAA, 0), "Teleported!");
                teleport = false;
            }
        }
    }
 

1NEXPL1CA

Известный
Автор темы
760
379
Попробуй
1:
#define FUNC_CMessages__AddMessageJumpQ 0x69F1E0

void AddMessageJumpQ(char* text, unsigned int time, unsigned short flag, bool bPreviousBrief)
{
    ((void(__cdecl*)(char*, unsigned int, unsigned short, bool))FUNC_CMessages__AddMessageJumpQ)(text, time, flag, bPreviousBrief);
}
2:
    if (teleport && PEDSELF->GetVehicle() != nullptr)
    {
        static DWORD time{};
        if (GetTickCount() - delay > time) {
            CVector bet = b - c;
            float distance = bet.Length();
            if (distance >= 10)
            {
                bet.Normalize();
                c.fX += bet.fX * 3;
                c.fY += bet.fY * 3;
                c.fZ += bet.fZ * 3;
                sendVehicle(c);
                char buffer[64] = {0};
                sprintf(buffer, "%0.2f meters", distance); //Это из-за того, что гта не особо дружит с русским текстом.
                AddMessageJumpQ(buffer, 1500, 12, true); //Исправление
                time = GetTickCount();
            }
            else
            {
                sendVehicle(b);
                PEDSELF->GetVehicle()->Teleport(b.fX, b.fY, b.fZ);
                SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 0xAA, 0), "Teleported!");
                teleport = false;
            }
        }
    }
ничего не выводит

full:
#include <Windows.h>
#include "main.h"
#include <iostream>
using namespace std;
bool teleport;
CVector c, b;
int delay = 15;

SAMPFUNCS *SF = new SAMPFUNCS();

void sendVehicle(CVector position)
{
    stInCarData incar = SF->getSAMP()->getPlayers()->pLocalPlayer->inCarData;
    incar.fPosition[0] = position.fX;
    incar.fPosition[1] = position.fY;
    incar.fPosition[2] = position.fZ;
    incar.sVehicleID = SF->getSAMP()->getPlayers()->pLocalPlayer->sCurrentVehicleID;
    BitStream bs;
    bs.Write<BYTE>(ID_VEHICLE_SYNC);
    bs.Write(reinterpret_cast<PCHAR>(&incar), sizeof(stInCarData));
    SF->getRakNet()->SendPacket(&bs);
}

#define FUNC_CMessages__AddMessageJumpQ 0x69F1E0

void AddMessageJumpQ(char* text, unsigned int time, unsigned short flag, bool bPreviousBrief)
{
    ((void(__cdecl*)(char*, unsigned int, unsigned short, bool))FUNC_CMessages__AddMessageJumpQ)(text, time, flag, bPreviousBrief);
}

CVector mark() {
    CVector marker;
    for (int i = 0; i < (0xAF * 0x28); i += 0x28) {
        if (*reinterpret_cast<short*>(0xBA873D + i) == 4611) {
            marker = *reinterpret_cast<CVector*>(0xBA86F8 + 0x28 + i);
            reinterpret_cast<void(__cdecl*)(CVector*)>(0x40ED80)(&marker);
            marker.fZ = GAME->GetWorld()->FindGroundZForPosition(marker.fX, marker.fY);
        }
    }
    return marker;
}

void CALLBACK teleportLoop(string arg)
{
    b = mark();
    c = *PEDSELF->GetPosition();
    teleport = true;
}

bool CALLBACK nop(stRakNetHookParams * id)
{
    if (teleport && id->packetId == 200) // ya invalid
    {
        return false;
    }
    return true;
}

void CALLBACK mainloop()
{
    static bool initialized = false;
    if (!initialized)
    {
        if (GAME && GAME->GetSystemState() == eSystemState::GS_PLAYING_GAME && SF->getSAMP()->IsInitialized())
        {
            initialized = true;
            SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 0xAA, 0), "Teleport loaded!");
            SF->getSAMP()->registerChatCommand("itp", teleportLoop);
            SF->getRakNet()->registerRakNetCallback(RAKHOOK_TYPE_OUTCOMING_PACKET, nop);
        }
    }
    if (teleport && PEDSELF->GetVehicle() != nullptr)
    {
        static DWORD time{};
        if (GetTickCount() - delay > time) {
            CVector bet = b - c;
            float distance = bet.Length();
            if (distance >= 10)
            {
                bet.Normalize();
                c.fX += bet.fX * 3;
                c.fY += bet.fY * 3;
                c.fZ += bet.fZ * 3;
                sendVehicle(c);
                char buffer[64] = { 0 };
                sprintf(buffer, "%0.2f meters", distance); //Это из-за того, что гта не особо дружит с русским текстом.
                AddMessageJumpQ(buffer, 1500, 12, true); //Исправление
                time = GetTickCount();
            }
            else
            {
                sendVehicle(b);
                PEDSELF->GetVehicle()->Teleport(b.fX, b.fY, b.fZ);
                SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 0xAA, 0), "Teleported!");
                teleport = false;
            }
        }
    }
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved)
{
    if (dwReasonForCall == DLL_PROCESS_ATTACH)
        SF->initPlugin(mainloop, hModule);
    return TRUE;
}
 

zer0byt3.

Активный
167
52
Попытка вторая сделать норм код:
#include <Windows.h>
#include "main.h"
#include <iostream>
bool teleport;
CVector c, b;
int delay = 15;

SAMPFUNCS* SF = new SAMPFUNCS();

auto sendVehicle(CVector position) -> void
{
    stInCarData incar;
    memcpy(reinterpret_cast<void*>(&incar), reinterpret_cast<void*>(&SF->getSAMP()->getPlayers()->pLocalPlayer->inCarData), sizeof(stInCarData));
    incar.fPosition[0] = position.fX;
    incar.fPosition[1] = position.fY;
    incar.fPosition[2] = position.fZ;
    incar.sVehicleID = SF->getSAMP()->getPlayers()->pLocalPlayer->sCurrentVehicleID;
    BitStream bs;
    bs.Write<BYTE>(ID_VEHICLE_SYNC);
    bs.Write(reinterpret_cast<PCHAR>(&incar), sizeof(stInCarData));
    SF->getRakNet()->SendPacket(&bs);
}

#define FUNC_CMessages__AddMessageJumpQ 0x69F1E0

auto AddMessageJumpQ(const char* text, unsigned int time, unsigned short flag, bool bPreviousBrief) -> void
{
    ((void(__cdecl*)(const char*, unsigned int, unsigned short, bool))FUNC_CMessages__AddMessageJumpQ)(text, time, flag, bPreviousBrief);
}

auto fmt(const char* fmt, ...) -> std::string
{
    va_list args;
    va_start(args, fmt);
    std::vector<char> v(1024);
    while (!false)
    {
        va_list args2;
        va_copy(args2, args);
        int res = vsnprintf(v.data(), v.size(), fmt, args2);
        if ((res >= 0) && (res < static_cast<int>(v.size())))
        {
            va_end(args);
            va_end(args2);
            return std::string(v.data());
        }
        size_t size;
        if (res < 0)
            size = v.size() * 2;
        else
            size = static_cast<size_t>(res) + 1;
        v.clear();
        v.resize(size);
        va_end(args2);
    }
}

auto mark() -> CVector {
    CVector marker;
    for (int i = 0; i < (0xAF * 0x28); i += 0x28) {
        if (*reinterpret_cast<short*>(0xBA873D + i) == 4611) {
            marker = *reinterpret_cast<CVector*>(0xBA86F8 + 0x28 + i);
            reinterpret_cast<void(__cdecl*)(CVector*)>(0x40ED80)(&marker);
            marker.fZ = GAME->GetWorld()->FindGroundZForPosition(marker.fX, marker.fY);
        }
    }
    return marker;
}

void CALLBACK teleportLoop(std::string arg)
{
    b = mark();
    c = *PEDSELF->GetPosition();
    teleport = true;
}

bool CALLBACK nop(stRakNetHookParams* params)
{
    if (teleport && params->packetId == 200) // ya invalid
    {
        return false;
    }
    return true;
}

void CALLBACK mainloop()
{
    static bool initialized = false;
    if (!initialized)
    {
        if (GAME && GAME->GetSystemState() == eSystemState::GS_PLAYING_GAME && SF->getSAMP()->IsInitialized())
        {
            initialized = true;
            SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 0xAA, 0), "Teleport loaded!");
            SF->getSAMP()->registerChatCommand("itp", teleportLoop);
            SF->getRakNet()->registerRakNetCallback(RAKHOOK_TYPE_OUTCOMING_PACKET, nop);
        }
    }
    if (teleport && PEDSELF->GetVehicle() != nullptr)
    {
        static DWORD timer_{};
        if (GetTickCount() - timer_ > delay) {
            CVector bet = b - c;
            auto distance = floorf(bet.Length() + 0.5f);
            if (distance >= 10)
            {
                bet.Normalize();
                c.fX += bet.fX * 3;
                c.fY += bet.fY * 3;
                c.fZ += bet.fZ * 3;
                sendVehicle(c);
                AddMessageJumpQ(fmt("Ostalost: %0.0f metrov", distance).c_str(), 1000, 1, false);
                timer_ = GetTickCount();
            }
            else
            {
                sendVehicle(b);
                PEDSELF->GetVehicle()->Teleport(b.fX, b.fY, b.fZ);
                SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 0xAA, 0), "Teleported!");
                teleport = false;
            }
        }
    }
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved)
{
    if (dwReasonForCall == DLL_PROCESS_ATTACH)
        SF->initPlugin(mainloop, hModule);
    return TRUE;
}

Небольшое примечание: Если у тебя задержка будет одна и та же, то можешь объявить её как константу, или через отдельную команду чтобы можно было адаптировать для других АЧ.
 
  • Нравится
Реакции: 1NEXPL1CA

sazzas1978

Известный
137
127
Попытка вторая сделать норм код:
#include <Windows.h>
#include "main.h"
#include <iostream>
bool teleport;
CVector c, b;
int delay = 15;

SAMPFUNCS* SF = new SAMPFUNCS();

auto sendVehicle(CVector position) -> void
{
    stInCarData incar;
    memcpy(reinterpret_cast<void*>(&incar), reinterpret_cast<void*>(&SF->getSAMP()->getPlayers()->pLocalPlayer->inCarData), sizeof(stInCarData));
    incar.fPosition[0] = position.fX;
    incar.fPosition[1] = position.fY;
    incar.fPosition[2] = position.fZ;
    incar.sVehicleID = SF->getSAMP()->getPlayers()->pLocalPlayer->sCurrentVehicleID;
    BitStream bs;
    bs.Write<BYTE>(ID_VEHICLE_SYNC);
    bs.Write(reinterpret_cast<PCHAR>(&incar), sizeof(stInCarData));
    SF->getRakNet()->SendPacket(&bs);
}

#define FUNC_CMessages__AddMessageJumpQ 0x69F1E0

auto AddMessageJumpQ(const char* text, unsigned int time, unsigned short flag, bool bPreviousBrief) -> void
{
    ((void(__cdecl*)(const char*, unsigned int, unsigned short, bool))FUNC_CMessages__AddMessageJumpQ)(text, time, flag, bPreviousBrief);
}

auto fmt(const char* fmt, ...) -> std::string
{
    va_list args;
    va_start(args, fmt);
    std::vector<char> v(1024);
    while (!false)
    {
        va_list args2;
        va_copy(args2, args);
        int res = vsnprintf(v.data(), v.size(), fmt, args2);
        if ((res >= 0) && (res < static_cast<int>(v.size())))
        {
            va_end(args);
            va_end(args2);
            return std::string(v.data());
        }
        size_t size;
        if (res < 0)
            size = v.size() * 2;
        else
            size = static_cast<size_t>(res) + 1;
        v.clear();
        v.resize(size);
        va_end(args2);
    }
}

auto mark() -> CVector {
    CVector marker;
    for (int i = 0; i < (0xAF * 0x28); i += 0x28) {
        if (*reinterpret_cast<short*>(0xBA873D + i) == 4611) {
            marker = *reinterpret_cast<CVector*>(0xBA86F8 + 0x28 + i);
            reinterpret_cast<void(__cdecl*)(CVector*)>(0x40ED80)(&marker);
            marker.fZ = GAME->GetWorld()->FindGroundZForPosition(marker.fX, marker.fY);
        }
    }
    return marker;
}

void CALLBACK teleportLoop(std::string arg)
{
    b = mark();
    c = *PEDSELF->GetPosition();
    teleport = true;
}

bool CALLBACK nop(stRakNetHookParams* params)
{
    if (teleport && params->packetId == 200) // ya invalid
    {
        return false;
    }
    return true;
}

void CALLBACK mainloop()
{
    static bool initialized = false;
    if (!initialized)
    {
        if (GAME && GAME->GetSystemState() == eSystemState::GS_PLAYING_GAME && SF->getSAMP()->IsInitialized())
        {
            initialized = true;
            SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 0xAA, 0), "Teleport loaded!");
            SF->getSAMP()->registerChatCommand("itp", teleportLoop);
            SF->getRakNet()->registerRakNetCallback(RAKHOOK_TYPE_OUTCOMING_PACKET, nop);
        }
    }
    if (teleport && PEDSELF->GetVehicle() != nullptr)
    {
        static DWORD timer_{};
        if (GetTickCount() - timer_ > delay) {
            CVector bet = b - c;
            auto distance = floorf(bet.Length() + 0.5f);
            if (distance >= 10)
            {
                bet.Normalize();
                c.fX += bet.fX * 3;
                c.fY += bet.fY * 3;
                c.fZ += bet.fZ * 3;
                sendVehicle(c);
                AddMessageJumpQ(fmt("Ostalost: %0.0f metrov", distance).c_str(), 1000, 1, false);
                timer_ = GetTickCount();
            }
            else
            {
                sendVehicle(b);
                PEDSELF->GetVehicle()->Teleport(b.fX, b.fY, b.fZ);
                SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 0xAA, 0), "Teleported!");
                teleport = false;
            }
        }
    }
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved)
{
    if (dwReasonForCall == DLL_PROCESS_ATTACH)
        SF->initPlugin(mainloop, hModule);
    return TRUE;
}

Небольшое примечание: Если у тебя задержка будет одна и та же, то можешь объявить её как константу, или через отдельную команду чтобы можно было адаптировать для других АЧ.
через раз твоя штука работает
1714675165043.png


через раз твоя штука работает
1714675165043.png
1714675225625.png
 

1NEXPL1CA

Известный
Автор темы
760
379
походу адекватного решения не видать(

Попытка вторая сделать норм код:
#include <Windows.h>
#include "main.h"
#include <iostream>
bool teleport;
CVector c, b;
int delay = 15;

SAMPFUNCS* SF = new SAMPFUNCS();

auto sendVehicle(CVector position) -> void
{
    stInCarData incar;
    memcpy(reinterpret_cast<void*>(&incar), reinterpret_cast<void*>(&SF->getSAMP()->getPlayers()->pLocalPlayer->inCarData), sizeof(stInCarData));
    incar.fPosition[0] = position.fX;
    incar.fPosition[1] = position.fY;
    incar.fPosition[2] = position.fZ;
    incar.sVehicleID = SF->getSAMP()->getPlayers()->pLocalPlayer->sCurrentVehicleID;
    BitStream bs;
    bs.Write<BYTE>(ID_VEHICLE_SYNC);
    bs.Write(reinterpret_cast<PCHAR>(&incar), sizeof(stInCarData));
    SF->getRakNet()->SendPacket(&bs);
}

#define FUNC_CMessages__AddMessageJumpQ 0x69F1E0

auto AddMessageJumpQ(const char* text, unsigned int time, unsigned short flag, bool bPreviousBrief) -> void
{
    ((void(__cdecl*)(const char*, unsigned int, unsigned short, bool))FUNC_CMessages__AddMessageJumpQ)(text, time, flag, bPreviousBrief);
}

auto fmt(const char* fmt, ...) -> std::string
{
    va_list args;
    va_start(args, fmt);
    std::vector<char> v(1024);
    while (!false)
    {
        va_list args2;
        va_copy(args2, args);
        int res = vsnprintf(v.data(), v.size(), fmt, args2);
        if ((res >= 0) && (res < static_cast<int>(v.size())))
        {
            va_end(args);
            va_end(args2);
            return std::string(v.data());
        }
        size_t size;
        if (res < 0)
            size = v.size() * 2;
        else
            size = static_cast<size_t>(res) + 1;
        v.clear();
        v.resize(size);
        va_end(args2);
    }
}

auto mark() -> CVector {
    CVector marker;
    for (int i = 0; i < (0xAF * 0x28); i += 0x28) {
        if (*reinterpret_cast<short*>(0xBA873D + i) == 4611) {
            marker = *reinterpret_cast<CVector*>(0xBA86F8 + 0x28 + i);
            reinterpret_cast<void(__cdecl*)(CVector*)>(0x40ED80)(&marker);
            marker.fZ = GAME->GetWorld()->FindGroundZForPosition(marker.fX, marker.fY);
        }
    }
    return marker;
}

void CALLBACK teleportLoop(std::string arg)
{
    b = mark();
    c = *PEDSELF->GetPosition();
    teleport = true;
}

bool CALLBACK nop(stRakNetHookParams* params)
{
    if (teleport && params->packetId == 200) // ya invalid
    {
        return false;
    }
    return true;
}

void CALLBACK mainloop()
{
    static bool initialized = false;
    if (!initialized)
    {
        if (GAME && GAME->GetSystemState() == eSystemState::GS_PLAYING_GAME && SF->getSAMP()->IsInitialized())
        {
            initialized = true;
            SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 0xAA, 0), "Teleport loaded!");
            SF->getSAMP()->registerChatCommand("itp", teleportLoop);
            SF->getRakNet()->registerRakNetCallback(RAKHOOK_TYPE_OUTCOMING_PACKET, nop);
        }
    }
    if (teleport && PEDSELF->GetVehicle() != nullptr)
    {
        static DWORD timer_{};
        if (GetTickCount() - timer_ > delay) {
            CVector bet = b - c;
            auto distance = floorf(bet.Length() + 0.5f);
            if (distance >= 10)
            {
                bet.Normalize();
                c.fX += bet.fX * 3;
                c.fY += bet.fY * 3;
                c.fZ += bet.fZ * 3;
                sendVehicle(c);
                AddMessageJumpQ(fmt("Ostalost: %0.0f metrov", distance).c_str(), 1000, 1, false);
                timer_ = GetTickCount();
            }
            else
            {
                sendVehicle(b);
                PEDSELF->GetVehicle()->Teleport(b.fX, b.fY, b.fZ);
                SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 0xAA, 0), "Teleported!");
                teleport = false;
            }
        }
    }
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD dwReasonForCall, LPVOID lpReserved)
{
    if (dwReasonForCall == DLL_PROCESS_ATTACH)
        SF->initPlugin(mainloop, hModule);
    return TRUE;
}

Небольшое примечание: Если у тебя задержка будет одна и та же, то можешь объявить её как константу, или через отдельную команду чтобы можно было адаптировать для других АЧ.
багнуто работает
 

sazzas1978

Известный
137
127
fix:
auto AddMessageJumpQ(const char* text, unsigned int time, unsigned short flag, bool bPreviousBrief) -> void
{
    std::thread([=]() {
        string _text = text;
        ((void(__cdecl*)(const char*, unsigned int, unsigned short, bool))FUNC_CMessages__AddMessageJumpQ)(_text.c_str(), time, flag, bPreviousBrief);
        this_thread::sleep_for(chrono::milliseconds(time));
        }).detach();
}
во норм фикс
C++:
AddMessageJumpQ("qq".c_str(), 1500, 12, true)
 
Последнее редактирование:
  • Bug
Реакции: Lance_Sterling и DZONE

AdCKuY_DpO4uLa

Адский дрочер
Друг
319
680
C++:
#define FUNC_CMessages__AddMessageJumpQ 0x69F1E0
char pBuffer[64]{};
void AddMessageJumpQ(char* text, unsigned int time, unsigned short flag, bool bPreviousBrief)
{
    ((void(__cdecl*)(char*, unsigned int, unsigned short, bool))FUNC_CMessages__AddMessageJumpQ)(text, time, flag, bPreviousBrief);
}


if (teleport && PEDSELF->GetVehicle() != nullptr)
    {
        static DWORD time{};
        if (GetTickCount() - delay > time) {
            CVector bet = b - c;
            float distance = bet.Length();
            if (distance >= 10)
            {
                bet.Normalize();
                c.fX += bet.fX * 3;
                c.fY += bet.fY * 3;
                c.fZ += bet.fZ * 3;
                sendVehicle(c);
                sprintf(pBuffer, "%f", distance);
                AddMessageJumpQ(pBuffer, 1500, 12, true);
                time = GetTickCount();
            }
            else
            {
                sendVehicle(b);
                PEDSELF->GetVehicle()->Teleport(b.fX, b.fY, b.fZ);
                SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(0, 0xAA, 0), "Teleported!");
                teleport = false;
            }
        }
    }
 
  • Нравится
Реакции: 1NEXPL1CA

Dark_Knight

Me, me and me.
Друг
4,085
2,114
@sazzas1978
Зачем ты туда всунул поток и задержку? Это тебе не луа нахер. Нехер юзать потоки в плюсах без крайне необходимости. Иди сиди в своем луа, пожалуйста.
Еще кое-что заметил в коде потом и дополнью.
Ох твою мать. Ты еще переводишь стринг в конст чар, потом в стринг, а потом опять в конст чар. Ух йобана врот. Плюсы явно не твое
 
Последнее редактирование:

sazzas1978

Известный
137
127
@sazzas1978
Зачем ты туда всунул поток и задержку? Это тебе не луа нахер. Нехер юзать потоки в плюсах без крайне необходимости. Иди сиди в своем луа, пожалуйста.
Еще кое-что заметил в коде потом и дополнью.
Ох твою мать. Ты еще переводишь стринг в конст чар, потом в стринг, а потом опять в конст чар. Ух йобана врот. Плюсы явно не твое
Бро, а в C++ есть встроенный тредпул допустим где нибудь в std?))) Нету)))))
Ох твою мать. Ты еще переводишь стринг в конст чар, потом в стринг, а потом опять в конст чар. Ух йобана врот. Плюсы явно не твое
Я это делаю потому что переменная передается по указателю в функцию которая даже не в моем потоке. Где гарантия что переменная которую передали по указателю в функцию не умрет и с ней что то не случится пока функция исполняется?
Эта функция зависит от времени, и берет данные из указателя, как я предполагаю, и в любое время с этими данными может что-то случится,
Да, скорее всего можно использовать глобальную переменную, как сделал дрочила, и данные могут быть сохраненные (скорее всего), но тут тоже есть к чему
приебатся ведь это глобальная переменная и очень упрощенный случай
 

Dark_Knight

Me, me and me.
Друг
4,085
2,114
А еще большое количество ненужных вызовов. Два лишних стринга точно не к чему там.
C++:
string (const char* s);
Copies the null-terminated character sequence (C-string) pointed by s.
s
Pointer to an array of characters (such as a c-string).
Так ще туда надо передавать обычный указатель на чары