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

Cake_

Потрачен
Проверенный
263
314
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
как получить фпс?
 

_=Gigant=_

Известный
128
180
is there anything to check if vehicle wheel is damaged and which wheel ?
i found only this wheel size

vehicle_info * my_veh = vehicle_info_get(VEHICLE_SELF, 0);
my_veh->wheel_size;
 

Stiopko

Известный
Проверенный
307
218
Как записать что-то в битстрим на определенное место. Так вылетает с сервера.
Код:
params->bitStream->ResetWritePointer();
params->bitStream->SetWriteOffset(24);
params->bitStream->Write(sLeftRightKeys);
 

Stiopko

Известный
Проверенный
307
218
C++:
bool CALLBACK OutcomingPacket(stRakNetHookParams *params) {
    if (state && params->packetId == PacketEnumeration::ID_VEHICLE_SYNC) {
        static uint16_t sLeftRightKeys;
        params->bitStream->ResetReadPointer();
        params->bitStream->SetReadOffset(24);
        params->bitStream->Read(sLeftRightKeys);
        if (sLeftRightKeys == 0) {
            params->bitStream->ResetWritePointer();
            params->bitStream->SetWriteOffset(24);
            params->bitStream->Write(uint16_t(bool(rand() % 2) ? 128 : 65408));
        }
    }
    return true;
}
 

Soreso

Новичок
4
0
Перебираю в цикле ID каров, но как получить кар в зоне стрима?(Функция)
 

Вложения

  • sa-mp-006.png
    sa-mp-006.png
    298.3 KB · Просмотры: 261

Karbun

Участник
112
3
В чём ошибка? Хочу вывести координаты игрока в консоле:
Нашел адреса координат через СЕ:
AE9005S.png
Потом написал код вывода:
C++:
#include <windows.h>
#include <string>
#include <iostream>

using namespace std;

DWORD pid;
DWORD Xcoord = 0x1A32C794;
DWORD Ycoord = 0x1A32C798;
DWORD Zcoord = 0x1A32C79C;
float MyCoordX;
float MyCoordY;
float MyCoordZ;

int main()
{
    while (true)
    {
        HWND hWnd = FindWindowA(0, ("GTA:SA:MP"));
        if (hWnd != 0)
        {     
            GetWindowThreadProcessId(hWnd, &pid);
            HANDLE pHandle = OpenProcess(PROCESS_VM_READ, FALSE, pid);
            ReadProcessMemory(pHandle, (LPVOID)Xcoord, &MyCoordX, sizeof(MyCoordX), 0);
            ReadProcessMemory(pHandle, (LPVOID)Ycoord, &MyCoordY, sizeof(MyCoordY), 0);
            ReadProcessMemory(pHandle, (LPVOID)Zcoord, &MyCoordZ, sizeof(MyCoordZ), 0);
            setlocale(LC_ALL, "Russian");
            cout << "Координаты игрока: " << endl;
            cout << "X координата: " << Xcoord << endl;
            cout << "Y координата: " << Ycoord << endl;
            cout << "Z координата: " << Zcoord << endl;
            Sleep(100);
            system("CLS");
        }

        if (hWnd == 0)
        {
            setlocale(LC_ALL, "Russian");
            cout << "Процесс не найден." << endl;
            Sleep(100);
            system("CLS");
        }
    }
}

И вот результат:
vyFhQGH.png
 

SiTrak

Известный
192
264
В чём ошибка? Хочу вывести координаты игрока в консоле:
Нашел адреса координат через СЕ:
AE9005S.png
Потом написал код вывода:
C++:
#include <windows.h>
#include <string>
#include <iostream>

using namespace std;

DWORD pid;
DWORD Xcoord = 0x1A32C794;
DWORD Ycoord = 0x1A32C798;
DWORD Zcoord = 0x1A32C79C;
float MyCoordX;
float MyCoordY;
float MyCoordZ;

int main()
{
    while (true)
    {
        HWND hWnd = FindWindowA(0, ("GTA:SA:MP"));
        if (hWnd != 0)
        {    
            GetWindowThreadProcessId(hWnd, &pid);
            HANDLE pHandle = OpenProcess(PROCESS_VM_READ, FALSE, pid);
            ReadProcessMemory(pHandle, (LPVOID)Xcoord, &MyCoordX, sizeof(MyCoordX), 0);
            ReadProcessMemory(pHandle, (LPVOID)Ycoord, &MyCoordY, sizeof(MyCoordY), 0);
            ReadProcessMemory(pHandle, (LPVOID)Zcoord, &MyCoordZ, sizeof(MyCoordZ), 0);
            setlocale(LC_ALL, "Russian");
            cout << "Координаты игрока: " << endl;
            cout << "X координата: " << Xcoord << endl;
            cout << "Y координата: " << Ycoord << endl;
            cout << "Z координата: " << Zcoord << endl;
            Sleep(100);
            system("CLS");
        }

        if (hWnd == 0)
        {
            setlocale(LC_ALL, "Russian");
            cout << "Процесс не найден." << endl;
            Sleep(100);
            system("CLS");
        }
    }
}

И вот результат:
vyFhQGH.png

position = (*(DWORD *)0xB6F5F0) ? (float *)(*(DWORD *)(*(DWORD *)0xB6F5F0 + 0x14) + 0x30) : NULL;
 

_Vine_

Активный
154
57
Как самп отправляет данные на сервер?
Думал сокеты, проверял какие данные проходят через функции send, sendto - не увидел данных которые могли бы отправляться.
Отправлялись данные в основном размером 4, 6, иногда 10 байт, при этом RakLogger показывал что отправляются пакеты/RPC намного большего размера.
В исходниках сампа 0.2.5 найти этого не смог.
 
Последнее редактирование: