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

kawa operand

перерывпятьминут
602
333
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
из массива stRemotePlayer достань объект с id как у нужного игрока а оттуда достань stRemotePlayerData а там уже fOnFootPos[3];

CPed +0x46C = [dword] Проверка игрока:
  • 0 = в воздухе/воде
  • 1 = в машине

а если именно водителя надо то свой cped сравни с cped водителя, он в CVehicle находится
 
У

Удалённый пользователь 123482

Гость
Как можно проверить отжатие клавиши в консольном приложение без getch() и без зависания во время зажатости?
 

SR_team

like pancake
BH Team
4,816
6,517
Я пробовал создавать второй поток и делать в нем цикл с проверкой на отжатие, тк пока зажата программа всеравно фризится
наоборот. Обработку клавишь оставь в основном потоке, а логику вынеси в отдельный поток
 

kawa operand

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

SR_team

like pancake
BH Team
4,816
6,517
Ничего не пишется, в том числе и с клавиатуры.
C++:
#include <windows.h>
#include <iostream>
#pragma comment(lib,"User32.lib")
using namespace std;
static bool g_Active = false;

DWORD WINAPI proizv(PVOID Parametr)
{
    if (g_Active)
        cout << "1337";
    return 0;
}

void main()
{
    DWORD idThread, dwThrdParam = 1;
    HANDLE h1;
    h1 = CreateThread(NULL, 0, proizv, &dwThrdParam, 0, &idThread);

    while (true)
    {
        if (GetAsyncKeyState(81))
        {
            while (!GetAsyncKeyState(81))
            {
                g_Active = true;
            }
        }
    }
}
пиши в основном потоке. Используй синхронизацию
 

LUCHARE

Известный
Друг
545
702
Ничего не пишется, в том числе и с клавиатуры.
C++:
#include <windows.h>
#include <iostream>
#pragma comment(lib,"User32.lib")
using namespace std;
static bool g_Active = false;

DWORD WINAPI proizv(PVOID Parametr)
{
    if (g_Active)
        cout << "1337";
    return 0;
}

void main()
{
    DWORD idThread, dwThrdParam = 1;
    HANDLE h1;
    h1 = CreateThread(NULL, 0, proizv, &dwThrdParam, 0, &idThread);

    while (true)
    {
        if (GetAsyncKeyState(81))
        {
            while (!GetAsyncKeyState(81))
            {
                g_Active = true;
            }
        }
    }
}
MSDN написал(а):
If the most significant bit is set, the key is down, and if the least significant bit is set, the key was pressed after the previous call to GetAsyncKeyState.
юзай & с GetAsyncKeyState
 

madrasso

Потрачен
883
325
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Приветы, в общем недавно начал учить С++, до этого изучал ахк.

На словах не знаю, как точно объяснить, но на примере ахк, покажу пример:
C++:
#NoEnv
#Persistent
#Include samp-udf.ahk
chat := A_MyDocuments "/GTA San Andreas User Files/SAMP/chatlog.txt"
Loop,
{
    FileRead, chatlog, % chat
    if (RegExMatch(chatlog, ".*Администратор (.*)\[.*\]: (.*)", chm)) {
        nick := getUserName()
        serv := getServerName()
        FileAppend, %nick% - %serv% - %chm1% - %chm2%
    }
}


Как сделать подобное на C++ .sf? Мне говорили о хуках, но каких точно я не понял.
 

kawa operand

перерывпятьминут
602
333
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
в samp.dll есть функция добавления смс в чат, она вызывается в функции добавления дебаг смс в чат, которую легко найти в телах самп команд (headmove fpslimit и тд) внедряешься туда или хукаешь и там будет текст
 

SR_team

like pancake
BH Team
4,816
6,517
в samp.dll есть функция добавления смс в чат, она вызывается в функции добавления дебаг смс в чат, которую легко найти в телах самп команд (headmove fpslimit и тд) внедряешься туда или хукаешь и там будет текст
дополню только тем, что она есть в собе, и в сниппетах CLEO, так что адрес ее самому искать не обязательно
 

madrasso

Потрачен
883
325
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
в samp.dll есть функция добавления смс в чат, она вызывается в функции добавления дебаг смс в чат, которую легко найти в телах самп команд (headmove fpslimit и тд) внедряешься туда или хукаешь и там будет текст
Ну, я не настолько знаю С++, что бы понять что ты написал:blink:
 

kawa operand

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