HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #781  
Старый 23.03.2016, 19:44
Gabriel__
Постоянный
Регистрация: 23.06.2015
Сообщений: 411
С нами: 5731627

Репутация: 108
По умолчанию

DWORD имеет размер 4.

Как это будет выглядить в c++ ?

0A8C: write_memory 0x747FB6 size 1 value 16843009 virtual_protect 0

0A8C: write_memory 0x74805A size 1 value 16843009 virtual_protect 0

0A8C: write_memory 0x74542B size 8 value -1869574000 virtual_protect 0
 
Ответить с цитированием

  #782  
Старый 23.03.2016, 21:07
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

Код в клео неверный. В первой и второй строке у тебя точно значение не в байтах.

Третья строка вот тебе.

*(double *)0x74542B = -1869574000
 
Ответить с цитированием

  #783  
Старый 24.03.2016, 15:36
Gabriel__
Постоянный
Регистрация: 23.06.2015
Сообщений: 411
С нами: 5731627

Репутация: 108
По умолчанию

Как через Switch создавать объекты с одинаковыми названиями но разными типами ?

Код:





Код:
switch (params->packetId)
    {
    case PacketEnumeration::ID_WEAPONS_UPDATE:
        return false;
    case PacketEnumeration::ID_PLAYER_SYNC:
        stOnFootData *data = new stOnFootData;
        break;
    case PacketEnumeration::ID_VEHICLE_SYNC:
        stInCarData *data = new stInCarData;
        break;
    case PacketEnumeration::ID_PASSENGER_SYNC:
        stPassengerData *data = new stPassengerData;
        break;
    default:
        return true;
    }
        memset(data, 0, sizeof (data) ); // обнуляем
 
Ответить с цитированием

  #784  
Старый 24.03.2016, 15:59
SR_team
Флудер
Регистрация: 26.10.2013
Сообщений: 4,924
С нами: 6603505

Репутация: 183


По умолчанию

Цитата:
Сообщение от Gabriel__  

DWORD имеет размер 4.
Как это будет выглядить в c++ ?
0A8C: write_memory 0x747FB6 size 1 value 16843009 virtual_protect 0
0A8C: write_memory 0x74805A size 1 value 16843009 virtual_protect 0
0A8C: write_memory 0x74542B size 8 value -1869574000 virtual_protect 0
В клео вроде нельзя больше 4х байт писать.
 
Ответить с цитированием

  #785  
Старый 24.03.2016, 16:01
Gabriel__
Постоянный
Регистрация: 23.06.2015
Сообщений: 411
С нами: 5731627

Репутация: 108
По умолчанию

Как опростить этот говнокод ? Т.е Switch создать объект нужной структуры.

Код:





Код:
switch (params->packetId)
    {
    case PacketEnumeration::ID_PLAYER_SYNC:
        stOnFootData data; // определяем объект в который сохраним отправляемые данные
        memset(&data, 0, sizeof(stOnFootData)); // обнуляем
        byte packet;
        params->bitStream->ResetReadPointer(); // на всякий случай устанавливаем оффсет чтения на начало
        params->bitStream->Read(packet); // читаем ID пакета
        params->bitStream->Read((PCHAR)&data, sizeof(stOnFootData)); // читаем отправляемые данные
        params->bitStream->ResetReadPointer(); // снова обнуляем оффсет чтения
        data.byteCurrentWeapon = 0;
        params->bitStream->ResetWritePointer(); // обнуляем оффсет записи
        params->bitStream->Write(packet); // пишем ид пакета
        params->bitStream->Write((PCHAR)&data, sizeof(stOnFootData)); // пишем обновленные данные  
        break;
    case PacketEnumeration::ID_VEHICLE_SYNC:
        stInCarData data; // определяем объект в который сохраним отправляемые данные
        memset(&data, 0, sizeof(stInCarData)); // обнуляем
        byte packet;
        params->bitStream->ResetReadPointer(); // на всякий случай устанавливаем оффсет чтения на начало
        params->bitStream->Read(packet); // читаем ID пакета
        params->bitStream->Read((PCHAR)&data, sizeof(stInCarData)); // читаем отправляемые данные
        params->bitStream->ResetReadPointer(); // снова обнуляем оффсет чтения
        data.byteCurrentWeapon = 0;
        params->bitStream->ResetWritePointer(); // обнуляем оффсет записи
        params->bitStream->Write(packet); // пишем ид пакета
        params->bitStream->Write((PCHAR)&data, sizeof(stInCarData)); // пишем обновленные данные  
        break;
    case PacketEnumeration::ID_PASSENGER_SYNC:
        stPassengerData data; // определяем объект в который сохраним отправляемые данные
        memset(&data, 0, sizeof(stPassengerData)); // обнуляем
        byte packet;
        params->bitStream->ResetReadPointer(); // на всякий случай устанавливаем оффсет чтения на начало
        params->bitStream->Read(packet); // читаем ID пакета
        params->bitStream->Read((PCHAR)&data, sizeof(stPassengerData)); // читаем отправляемые данные
        params->bitStream->ResetReadPointer(); // снова обнуляем оффсет чтения
        data.byteCurrentWeapon = 0;
        params->bitStream->ResetWritePointer(); // обнуляем оффсет записи
        params->bitStream->Write(packet); // пишем ид пакета
        params->bitStream->Write((PCHAR)&data, sizeof(stPassengerData)); // пишем обновленные данные  
        break;
    default:
    }
    return true;
  
};
 
Ответить с цитированием

  #786  
Старый 24.03.2016, 16:08
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

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

  #787  
Старый 24.03.2016, 16:32
Gabriel__
Постоянный
Регистрация: 23.06.2015
Сообщений: 411
С нами: 5731627

Репутация: 108
По умолчанию

А как создать такую переменную которая будет хранить класс или структуру а потом через эту переменную создать объект.

Вот что то типо такого

myClass = &stOnFootData;

myclass * obj = new myClass;
 
Ответить с цитированием

  #788  
Старый 24.03.2016, 16:43
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

Создаешь обьект своей структуры и не паришься.
 
Ответить с цитированием

  #789  
Старый 24.03.2016, 16:46
Gabriel__
Постоянный
Регистрация: 23.06.2015
Сообщений: 411
С нами: 5731627

Репутация: 108
По умолчанию

Не получится так. Компилятор выдаст ошибку что объект уже создан.
 
Ответить с цитированием

  #790  
Старый 24.03.2016, 16:57
Dark_Knight
Флудер
Регистрация: 18.03.2013
Сообщений: 4,080
С нами: 6921957

Репутация: 183


По умолчанию

Ну тогда в чем проблема? Опиши, что тебе надо сделать.
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.