![]() |
|
C++:
Код:
struct+0 это new CCopPed[n]; +4 это new poolBitmap[n]; +8 это n +12 это номер самого последнего педа в пуле, т.е. может быть такая картина: ped nullptr nullptr ped nullptr ped По оффсету 12 будет лежать значение 6 UPD: возможно там будет не 6, а 1, как индекс первого свободного элемента куда можно воткнуть нового педа при создании, не помню точно |
Цитата:
|
Цитата:
An SDK for developing ASI/CLEO plugins for GTA San Andreas, GTA Vice City and GTA III - DK22Pac/plugin-sdk github.com |
Цитата:
|
Цитата:
Простой пример: [CODE] #include #include using std :: cout ; using std :: endl ; union CColor { unsigned long color ; struct { // Сколько может уместиться байтов в unsigned long -> 4 unsigned char alpha ; unsigned char red ; unsigned char green ; unsigned char blue ; } ; CColor ( ) { this -> alpha = 255 ; this -> red = 255 ; this -> green = 255 ; this -> blue = 255 ; cout alpha red green blue color Сложный пример: [CODE] #include #include using std :: cout ; using std :: endl ; union tPoolObjectFlags { struct { // Сколько байтов может поместиться в unsigned char -> 1 // Здесь утверждать ничего не стану, ибо сам хз unsigned char nId : 7 ; bool bEmpty : 1 ; // Возможно, имеется виду размер типа поля поделить на кол-во битов. Т.е: // sizeof(unsigned char) / 7 -> 255 / 7 // sizeof(bool) / 1 -> 1 / 1 } ; unsigned char value ; tPoolObjectFlags ( ) { unsigned char byteId = 2 ; bool bEmpty = true ; this -> value = value | ( byteId ) ; this -> value = value | ( bEmpty nId bEmpty value value = 0 ; this -> nId = 2 ; this -> bEmpty = true ; cout nId bEmpty value |
[QUOTE="Musaigen"]
this->value = value | (byteId); this->value = value | (bEmpty C++: Код:
this |
Цитата:
|
| Время: 17:06 |