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

SR_team

like pancake
BH Team
4,720
6,369
Нуба ответ :). Писать можно. Есть даже InellySens или как там его? Для автокомплита C++ как в студии в общем. Сборку тоже можно интегрировать. В VSC легко интегрируются консольные сборки, а SF плагин можно собирать из консоли, используя msbuild. Это тулза, которая лежит в папке с VS, достаточно просто передать ей .sln в качестве аргумента.
 

SR_team

like pancake
BH Team
4,720
6,369
покажите создание таймера на 1 минуту
Зачем тебе таймер? В VS прекрасный inline asm. Делаешь статичный массив на 100 элементов, и 2 статичные переменные: id элемента и текущее время.
После чего вставляешь inline asm, который в случае истечения времени делает джамп по адресу из статичного массива.
Там где нужны задержки пишешь макрос, в который передаешь id и время. сам макрос создает метку для goto и записывает время для ожидания.
 

Azller Lollison

я узбек
Друг
1,342
2,266
Зачем тебе таймер? В VS прекрасный inline asm. Делаешь статичный массив на 100 элементов, и 2 статичные переменные: id элемента и текущее время.
После чего вставляешь inline asm, который в случае истечения времени делает джамп по адресу из статичного массива.
Там где нужны задержки пишешь макрос, в который передаешь id и время. сам макрос создает метку для goto и записывает время для ожидания.
а можно создать поток и делать там задержки... ай лан не бей я тоже нуб!!
 

SR_team

like pancake
BH Team
4,720
6,369
а можно создать поток и делать там задержки... ай лан не бей я тоже нуб!!
Можно. И я думал об этом как о варианте, который позволил бы заменить wait не выходя за пределы стандарта языка. Однако для синхронизации много ебли надо. Я рассматривал вариант с постановкой функций на очередь - в потоке с задержками, при вызове функции этот поток блокируется и ожидает основной поток, пока тот выполнит за него эту функцию. По скорости будет очень близко к однопотоку (чуть быстрее) и с задержками. Но возникает проблема с обращением к полям структур. Можно копировать структуры, но это как-то расточительно, и в момент синхронизации тоже не ясно чье изменение оставлять: то что было в основном потоке с момента копирования, или то что произошло в отдельном потоке?

Как можно завершить процесс по названию(процесса), без названия программы
Находишь Pid и вызываешь TerminateProcess
 
Последнее редактирование модератором:
  • Нравится
Реакции: BlackKnigga

kawa operand

перерывпятьминут
602
333
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Это динамические библиотеки обычные только зависят от сф
 

Ranto

Участник
45
1
C++:
#include <iostream>
#include <conio.h>
using namespace std;

int main()
{
    setlocale(0, "");
    /*7*/ int a, b;
    cout << "Введите первое число: ";
    cin >> a;
    cout << "Введите второе число: ";
    cin >> b;
    /*12*/  int c = a + b; //
    cout << "Сумма чисел = " << c << endl;
    _getch();
    return 0;

}
 
Последнее редактирование:

imring

Ride the Lightning
Всефорумный модератор
2,355
2,516
пытаюсь перевести с lua на c++, но чет хуево получается
Lua:
-- lua code
local callback = ffi.cast('void(__thiscall *)(void *_this, char *killer, char *killed, uint32_t clKiller, uint32_t clKilled, uint8_t reason)', hook)
local detour_addr = tonumber(ffi.cast('uintptr_t', callback))
local hook_addr = getModuleHandle('samp.dll') + 0x2B2A3B
memory.setint8(hook_addr, 0xE8, true)
memory.setuint32(hook_addr + 1, detour_addr - hook_addr - 5, true)
C++:
// c++ code
void(__thiscall* callback)(void*, char*, char*, uint32_t, uint32_t, uint8_t) =
    (void(__thiscall *) (void *_this, char *killer, char *killed, uint32_t clKiller, uint32_t clKilled, uint8_t reason))
    (hook);
uintptr_t detour_addr = (uintptr_t)callback;
uintptr_t hook_addr = (uintptr_t)GetModuleHandleA("samp.dll") + 0x2B2A3B;
*reinterpret_cast<INT8 *>(hook_addr) = (INT8)0xE8;
*reinterpret_cast<DWORD *>(hook_addr + 1) = detour_addr - hook_addr - 5;
виснет игра из-за этой строки:
C++:
*reinterpret_cast<INT8 *>(hook_addr) = (INT8)0xE8;
 

ehxqu

Известный
Проверенный
177
153
хотел попробовать написать аммохак
в чем проблема? не работает


Код:
void OnTimer(HWND hwnd, UINT msg, UINT idTimer, DWORD dwTime)
{
    if (GetAsyncKeyState(0x2E) & 0x8000) //если нажал на delete
    {
        DWORD CPED = *(DWORD*)0xB6F5F0; //CPed
        DWORD CWeaponSlot = *(DWORD*)(CPED + 0x0718); //CPed.m_cWeaponSlot
        DWORD CWeaponSlot1 = *(DWORD*)(CWeaponSlot * 0x1C);
        DWORD CWeaponSlots = *(DWORD*)(CPED + 0x5A0); //CPed.m_aclWeaponSlots
        DWORD CWeaponState = *(DWORD*)(CWeaponSlots + CWeaponSlot1);
        *(DWORD*)(CWeaponState + 0xC) += 40;
    }
}
 
Последнее редактирование: