Другое SAMPFUNCS | API C++

Gabriel__

Известный
Проверенный
411
182
Это кривой код ? (хотя бесполезен)

main.h
C++:
......
#include "myclass.h"
......
myclass.h
C++:
class MyClass
{
public:
    MyClass(int number);
    ~MyClass();
    void func1();
    void func2();
private:
    int m_var;
};
myclass.cpp
C++:
#include "main.h"
MyClass::MyClass(int number)
{
    m_var = number;
}

MyClass::~MyClass()
{

}

void MyClass::func1()
{
    m_var = 1;
}

void MyClass::func2()
{
    m_var = 2;
}
 

QGate

Новичок
78
0
Пиздец, аномалия какая-то.
C++:
// Вот так работает.
// Логгирует message0.

AW->Log("message0");

if (Element == mActive->Elements[mActive->Current])
{
   
}
C++:
// А вот так не работает.
// Логгирует только message0.

AW->Log("message0");

if (Element == mActive->Elements[mActive->Current])
{
   AW->Log("message1");
}
Я конечно не профессионал, но попробуй сначала узнать, выполняется ли условие "Element == mActive->Elements[mActive->Current]", от этого и пляши.
 

Gabriel__

Известный
Проверенный
411
182
Это крашить не может. Смотри как объявляешь.
Забыл сказать. Когда создаю объект своего класса вот тогда начинаются проблемы.
Хоть как объявляю даже в другой структуре.
MyClass *myclass_obj = new MyClass; // глобально в main.h ставлю extern MyClass *myclass_obj;
MyClass myclass_onj; // в структуре
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,696
1,462
У тебя же в конструкторе при инициализации должен быть указан int number. Как у тебя вообще скомпилировалось?
 

Dark_Knight

Me, me and me.
Друг
4,067
2,080
Это кривой код ? (хотя бесполезен)
Это нет. Но судя по этому
Забыл сказать. Когда создаю объект своего класса вот тогда начинаются проблемы.
Хоть как объявляю даже в другой структуре.
MyClass *myclass_obj = new MyClass; // глобально в main.h ставлю extern MyClass *myclass_obj;
MyClass myclass_onj; // в структуре
Вот тут проблемы как раз. Зачем 2 раза тебе юзать его, если ты его объявляешь глобально?
 

ЯedЯuM

Malware Maker
244
304
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
C++:
typedef usigned char BYTE; 
BYTE byteSeatFlags : 7; // битовое поле из структуры которое нужно прочитать
// если писать так
hook->bitStream->Read(psSync.byteSeatFlags); // то выдает еррор что отсуствует экземпляр перегруженной функции который соотвествует аргументам, я просто в битовых полях не бу-бу. Хелп.
// Как это прочитать ?
 

Gabriel__

Известный
Проверенный
411
182
У тебя же в конструкторе при инициализации должен быть указан int number. Как у тебя вообще скомпилировалось?
При написании поста ошибся.
Вот тут проблемы как раз. Зачем 2 раза тебе юзать его, если ты его объявляешь глобально?
Я не создавал два раза просто так написал
 

Dark_Knight

Me, me and me.
Друг
4,067
2,080
Ну тогда надо смотреть на весь код проекта и смотреть в нем где ошибка. Я свои классы пишу в каждом проекте и нормально все.
 

ЯedЯuM

Malware Maker
244
304
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Что ты хочешь конкретно?
Прочитать входящую синхру пассажира.
C++:
typedef unsigned short PLAYERID;
typedef unsigned short VEHICLEID;
#pragma pack(1)
typedef struct _PASSENGER_SYNC_DATA
{
    VEHICLEID VehicleID;
    BYTE byteSeatFlags : 7;
    BYTE byteDriveBy : 1;
    BYTE byteCurrentWeapon;
    BYTE bytePlayerHealth;
    BYTE bytePlayerArmour;
    WORD lrAnalog;
    WORD udAnalog;
    WORD wKeys;
    float vecPos[3];
} PASSENGER_SYNC_DATA;
////////////////////////////////////////////////////////////////////////////////////////////////////
bool __stdcall PacketHook(stRakNetHookParams *hook)
{
    if (hook->packetId == ID_PASSENGER_SYNC)
    {
        PASSENGER_SYNC_DATA psSync; PLAYERID SenderID;
        memset(&psSync, 0, sizeof(PASSENGER_SYNC_DATA));
        hook->bitStream->IgnoreBits(8);
        hook->bitStream->Read(SenderID);
        if (SenderID < 0 || SenderID >= SAMP_MAX_PLAYERS) return false;
        if (SenderID == targetID2)
        {
            hook->bitStream->Read(psSync.VehicleID);
            hook->bitStream->Read(psSync.byteSeatFlags); 
            SF->getSAMP()->getChat()->AddChatMessage(D3DCOLOR_XRGB(245, 184, 0), "ID: %d | VehID: %d",
            SenderID, psSync.VehicleID);
        }
    }
    return true;
}
Вот до ида транспорта я дочитать смог а дальше ерроры((
RFk2lmK.png