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

Rjx13

Известный
Проверенный
224
160

_=Gigant=_

Известный
134
191
whats wrong with this it should show text depending on time pass but it shows nothing....

static DWORD dwShowTick;

dwShowTick = GetTickCount ();

if (GetTickCount () - dwShowTick == 10000)
{
addMessage("10 sec");
}
else if (GetTickCount () - dwShowTick == 20000) // i also puted > 20000 but still not working
{
addMessage("20 sec");
}
 
Последнее редактирование:

-raymond-

Известный
110
9
как узнать ид игрока который отправил пакет?

C++:
bool CALLBACK incomingData(stRakNetHookParams *params)
{
    if (params->packetId == PacketEnumeration::ID_BULLET_SYNC)
    {
        stBulletData data;
        memset(&data, 0, sizeof(stBulletData)); // обнуляем
        byte packet;
        params->bitStream->ResetReadPointer(); // на всякий случай устанавливаем оффсет чтения на начало
        params->bitStream->Read(packet); // читаем ID пакета
        params->bitStream->Read((PCHAR)&data, sizeof(stBulletData)); // читаем отправляемые данные
        SF->getSAMP()->getChat()->AddChatMessage(0xDFFFFF, "sTargetID: %d", data.sTargetID);
    };
    return true;
};
 

ALF

Известный
Проверенный
320
537
как узнать ид игрока который отправил пакет?

C++:
bool CALLBACK incomingData(stRakNetHookParams *params)
{
    if (params->packetId == PacketEnumeration::ID_BULLET_SYNC)
    {
        stBulletData data;
        memset(&data, 0, sizeof(stBulletData)); // обнуляем
        byte packet;
        params->bitStream->ResetReadPointer(); // на всякий случай устанавливаем оффсет чтения на начало
        params->bitStream->Read(packet); // читаем ID пакета
        params->bitStream->Read((PCHAR)&data, sizeof(stBulletData)); // читаем отправляемые данные
        SF->getSAMP()->getChat()->AddChatMessage(0xDFFFFF, "sTargetID: %d", data.sTargetID);
    };
    return true;
};
C++:
bool CALLBACK incomingData(stRakNetHookParams *params)
{
    if (params->packetId == PacketEnumeration::ID_BULLET_SYNC)
    {
        stBulletData data = { 0 };
       
        WORD id;

        params->bitStream->ResetReadPointer();
        params->bitStream->IgnoreBits(8);
        params->bitStream->Read(id);
        params->bitStream->Read((PCHAR)&data, sizeof(stBulletData));
       
        SF->getSAMP()->getChat()->AddChatMessage(0xDFFFFF, "ID: %d", id);
    }
    return true;
}
 

Musaigen

abobusnik
Проверенный
1,582
1,302
Влияет ли на работоспособность RakNet Хука ResetReadPointer()?
 

checkdasound

Известный
Проверенный
963
406
Как можно сделать активацию чит-кодом помимо проверки на несколько нажатых клавиш?
 

checkdasound

Известный
Проверенный
963
406
Почему при инжекте dll в уже запущенную игру, все работает, а при переименовании в asi, после запуска игры сразу краш.

Код:
#include <windows.h>
#include <process.h>
#include "main.h"

bool pStatus = false;

unsigned int CurrentCharPointer = *(unsigned int*)0xB6F5F0;

void __cdecl func(void *pArg)
{
   *reinterpret_cast<DWORD*>(0x004B35A0) = 0x560CEC83;
   *reinterpret_cast<WORD*>(0x004B35A4) = 0xF18B;
   while (true)
   {
       Sleep(50);
       if (GetAsyncKeyState(0x47))
       {
           pStatus = !pStatus;
           if (pStatus == true)
           {
               AddMessageJumpQ("~g~[ON]", 500, NULL, false); // 500 - ms
           }
           else
           {
               AddMessageJumpQ("~r~[OFF]", 500, NULL, false); // 500 - ms
           }
       }
       if (pStatus == true)
       {
           *reinterpret_cast<BYTE*>(0x96916D) = 1; // bullet
           *reinterpret_cast<BYTE*>(0xB7CEE6) = 1; // fire
           *(unsigned char*)(CurrentCharPointer + 66) = 0xCC; // all
       } else
           {
               *reinterpret_cast<BYTE*>(0x96916D) = 0; // bullet
               *reinterpret_cast<BYTE*>(0xB7CEE6) = 0; // fire
               *(unsigned char*)(CurrentCharPointer + 66) = 0; // all
           }
   }
}

BOOL WINAPI DllMain(_In_ HINSTANCE hinstDLL, _In_ DWORD fdwReason, _In_ PVOID lpvReserved)
{
   if (fdwReason == DLL_PROCESS_ATTACH)
   {
       _beginthread(func, NULL, nullptr);
   }
   return TRUE;
}

Код:
#define FUNC_CMessages__AddMessageJumpQ 0x69F1E0

void AddMessageJumpQ(PCHAR text, UINT time, USHORT flag, bool bPreviousBrief) // Функция показа сообщения на экране.
{
   ((void(__cdecl *)(PCHAR, UINT, USHORT, bool))FUNC_CMessages__AddMessageJumpQ)(text, time, flag, bPreviousBrief);
}
 

CleanLegend

Известный
Всефорумный модератор
476
928
Почему при инжекте dll в уже запущенную игру, все работает, а при переименовании в asi, после запуска игры сразу краш.

Код:
#include <windows.h>
#include <process.h>
#include "main.h"

bool pStatus = false;

unsigned int CurrentCharPointer = *(unsigned int*)0xB6F5F0;

void __cdecl func(void *pArg)
{
   *reinterpret_cast<DWORD*>(0x004B35A0) = 0x560CEC83;
   *reinterpret_cast<WORD*>(0x004B35A4) = 0xF18B;
   while (true)
   {
       Sleep(50);
       if (GetAsyncKeyState(0x47))
       {
           pStatus = !pStatus;
           if (pStatus == true)
           {
               AddMessageJumpQ("~g~[ON]", 500, NULL, false); // 500 - ms
           }
           else
           {
               AddMessageJumpQ("~r~[OFF]", 500, NULL, false); // 500 - ms
           }
       }
       if (pStatus == true)
       {
           *reinterpret_cast<BYTE*>(0x96916D) = 1; // bullet
           *reinterpret_cast<BYTE*>(0xB7CEE6) = 1; // fire
           *(unsigned char*)(CurrentCharPointer + 66) = 0xCC; // all
       } else
           {
               *reinterpret_cast<BYTE*>(0x96916D) = 0; // bullet
               *reinterpret_cast<BYTE*>(0xB7CEE6) = 0; // fire
               *(unsigned char*)(CurrentCharPointer + 66) = 0; // all
           }
   }
}

BOOL WINAPI DllMain(_In_ HINSTANCE hinstDLL, _In_ DWORD fdwReason, _In_ PVOID lpvReserved)
{
   if (fdwReason == DLL_PROCESS_ATTACH)
   {
       _beginthread(func, NULL, nullptr);
   }
   return TRUE;
}

Код:
#define FUNC_CMessages__AddMessageJumpQ 0x69F1E0

void AddMessageJumpQ(PCHAR text, UINT time, USHORT flag, bool bPreviousBrief) // Функция показа сообщения на экране.
{
   ((void(__cdecl *)(PCHAR, UINT, USHORT, bool))FUNC_CMessages__AddMessageJumpQ)(text, time, flag, bPreviousBrief);
}
Поставь в потоке проверку на загрузку игры
 

NarutoUA

NarutoUA
BH Team
692
1,538
Почему при инжекте dll в уже запущенную игру, все работает, а при переименовании в asi, после запуска игры сразу краш.

Код:
#include <windows.h>
#include <process.h>
#include "main.h"

bool pStatus = false;

unsigned int CurrentCharPointer = *(unsigned int*)0xB6F5F0;

void __cdecl func(void *pArg)
{
   *reinterpret_cast<DWORD*>(0x004B35A0) = 0x560CEC83;
   *reinterpret_cast<WORD*>(0x004B35A4) = 0xF18B;
   while (true)
   {
       Sleep(50);
       if (GetAsyncKeyState(0x47))
       {
           pStatus = !pStatus;
           if (pStatus == true)
           {
               AddMessageJumpQ("~g~[ON]", 500, NULL, false); // 500 - ms
           }
           else
           {
               AddMessageJumpQ("~r~[OFF]", 500, NULL, false); // 500 - ms
           }
       }
       if (pStatus == true)
       {
           *reinterpret_cast<BYTE*>(0x96916D) = 1; // bullet
           *reinterpret_cast<BYTE*>(0xB7CEE6) = 1; // fire
           *(unsigned char*)(CurrentCharPointer + 66) = 0xCC; // all
       } else
           {
               *reinterpret_cast<BYTE*>(0x96916D) = 0; // bullet
               *reinterpret_cast<BYTE*>(0xB7CEE6) = 0; // fire
               *(unsigned char*)(CurrentCharPointer + 66) = 0; // all
           }
   }
}

BOOL WINAPI DllMain(_In_ HINSTANCE hinstDLL, _In_ DWORD fdwReason, _In_ PVOID lpvReserved)
{
   if (fdwReason == DLL_PROCESS_ATTACH)
   {
       _beginthread(func, NULL, nullptr);
   }
   return TRUE;
}

Код:
#define FUNC_CMessages__AddMessageJumpQ 0x69F1E0

void AddMessageJumpQ(PCHAR text, UINT time, USHORT flag, bool bPreviousBrief) // Функция показа сообщения на экране.
{
   ((void(__cdecl *)(PCHAR, UINT, USHORT, bool))FUNC_CMessages__AddMessageJumpQ)(text, time, flag, bPreviousBrief);
}
VirtualProtect
 

checkdasound

Известный
Проверенный
963
406

jenekbueno

Известный
157
69
чё не так?
upload_2018-11-16_4-11-41.png
 

Black_Bird

Участник
59
4
Заданный одномерный массив А (10). Найти произведение a [1] * 2 * a [2] * ... * 10 * a [10]. Заданный массив отсортировать методом выбора по возрастанию.
 

jenekbueno

Известный
157
69
Заданный одномерный массив А (10). Найти произведение a [1] * 2 * a [2] * ... * 10 * a [10]. Заданный массив отсортировать методом выбора по возрастанию.
произведение думаю сам выполнишь, ничего там сложного, а с сортировкой тебе поможет
Быстрая сортировка — Википедия(https://ru.wikipedia.org/wiki/%D0%91%D1%8B%D1%81%D1%82%D1%80%D0%B0%D1%8F_%D1%81%D0%BE%D1%80%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%BA%D0%B0)
пример: qsort | Программирование на C и C++(http://www.c-cpp.ru/content/qsort)