оцените код

Receiver

🥩 Передай meat, всё в скип, я в темпе
Автор темы
Проверенный
597
819
Норм или стрём способ отгрузки?
С использованием класса бы сделать

C++:
void main_thread()
{
    while (!isInitializated()) { Sleep(100); }
    if (strcmp(pSAMP->szIP, "94.23.111.203"))
    {
        needUnload = true;
    }

    std::string query, buffer, guid, nick;
    if (!needUnload)
    {
        guid = generateGuid();
        nick = getPlayerName();

        query = "/check.php";
        query += "?N=" + nick;
        query += "&K=" + guid;
        query += "&V=1.0.0.5";
        query += "&I=94.23.111.203:6666";

        MyGet->Init("54.38.11.10");
        MyGet->SendGet(query.c_str(), buffer);
    }

    while (true)
    {
        if (needUnload)
        {
            Beep(500, 500);
            MyGet->DeInit();
            FreeLibraryAndExitThread(hInstance, 0);
            break;
        }

        static unsigned long tick = GetTickCount();
        if (GetTickCount() - tick >= 10000)
        {
            query = "/alive.php";
            query += "?N=" + nick;
            query += "&K=" + guid;
            query += "&V=1.0.0.5";
            query += "&I=94.23.111.203:6666";

            MyGet->SendGet(query.c_str(), buffer);

            tick = GetTickCount();
        }
    }
    ExitThread(0);
}

int __stdcall DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpReserved)
{
    if (fdwReason == DLL_PROCESS_ATTACH)
    {
        hInstance = hInstDLL;
        CreateThread(0, 0, (LPTHREAD_START_ROUTINE)main_thread, 0, 0, 0);
    }
    else if (fdwReason == DLL_PROCESS_DETACH)
    {
        needUnload = true;
    }
    return 1;
}
 

Romelo

dev.
Проверенный
540
624
С такими циклами нагрузка на проц будет ебанутой, слип лучше вообще не юзать (хотя как хоч)
Если это код привязки - то хуета, все нужно шифровать как у клиента, так и на сервере и сравнивать значения.
C++:
#include <chrono>
#include <thread>

while (true)
{
   std::this_thread::sleep_for(std::chrono::milliseconds(25));
//code
}
 
  • Нравится
Реакции: ГОХА | GoxaShow

kin4stat

mq-team
Всефорумный модератор
2,730
4,710
С такими циклами нагрузка на проц будет ебанутой, слип лучше вообще не юзать (хотя как хоч)
Если это код привязки - то хуета, все нужно шифровать как у клиента, так и на сервере и сравнивать значения.
C++:
#include <chrono>
#include <thread>

while (true)
{
   std::this_thread::sleep_for(std::chrono::milliseconds(25));
//code
}
Это не привязка, это обход гаца
 

Receiver

🥩 Передай meat, всё в скип, я в темпе
Автор темы
Проверенный
597
819
С такими циклами нагрузка на проц будет ебанутой, слип лучше вообще не юзать (хотя как хоч)
Если это код привязки - то хуета, все нужно шифровать как у клиента, так и на сервере и сравнивать значения.
C++:
#include <chrono>
#include <thread>

while (true)
{
   std::this_thread::sleep_for(std::chrono::milliseconds(25));
//code
}
мб тогда хукать геймлуп
 
  • Нравится
Реакции: _raz0r

Romelo

dev.
Проверенный
540
624
MyGet кстати кривой немного от CleanLegend

Тут вроде как флаги для работы с https портом.

request.h
C++:
#include <wininet.h>
#pragma comment(lib,"wininet")
class CWinget
{
public:
    void init(const char* site, const char* agent);
    void end();
    std::string send(const char* Url);
private:
    HINTERNET hIntSession;
    HINTERNET hHttpSession;
    HINTERNET hHttpRequest;
};
#include "request.cpp"

request.cpp
C++:
void CWinget::init(const char* site, const char* agent)
{
    hIntSession = InternetOpenA(agent, INTERNET_OPEN_TYPE_DIRECT, nullptr, nullptr, 0);
    if (hIntSession != nullptr)
        hHttpSession = InternetConnectA(hIntSession, site, INTERNET_DEFAULT_HTTPS_PORT, nullptr, nullptr, INTERNET_SERVICE_HTTP, 0, 0);

}
void CWinget::end()
{
    InternetCloseHandle(hHttpRequest);
    InternetCloseHandle(hHttpSession);
    InternetCloseHandle(hIntSession);
}
std::string CWinget::send(const char* Url)
{
    hHttpRequest = HttpOpenRequestA(hHttpSession, "GET", Url, nullptr, nullptr, 0, INTERNET_FLAG_NO_CACHE_WRITE | INTERNET_FLAG_SECURE, 0);
    std::string response;
    if (HttpSendRequestA(hHttpRequest, nullptr, 0, nullptr, 0)) {
        char* buf = new char[4096 * 1024];
        DWORD dwBytesRead;
        while (InternetReadFile(hHttpRequest, buf, (4096 * 1024) - 1, &dwBytesRead) && dwBytesRead)
        {
            response.append((char*)buf, dwBytesRead);
        }
        delete[] buf;
    }
    return response;
}

main.cpp
C++:
#include "request.h"

CWinget request;
std::string response;
request.init("blast.hk", "User-Agent");
response = request.send("test.php?user=test");
request.end();
 
  • Нравится
Реакции: ГОХА | GoxaShow