ClientCheckType
Материал из Wikipedia Pi
Всего клиент может обработать 6 типов запросов.
Запросы SendClientCheck | ||
---|---|---|
Тип | Описание | Актуальная версия клиента |
2 или 0x2 | Данный тип возвращает 32 флага из структуры CPhysicalSA. Если игрок в транспорте, то возвращает информацию транспорта, а если пешком - то информацию о самом игроке. Это такие флаги как стоит ли игрок на земле, находится ли он в воде, касается ли воды, уязвим ли к различным типам урона | <= 0.3z или >= 0.3.7 R2, 0.3.7 R3, 0.3DL-R1 |
5 или 0x5 | Он составляет контрольную сумму размером в байтах из адреса arg + offset (память GTA) и возвращает ее в аргумент ответа. Допустимые адреса: 0x400000 - 0x856E00. Допустимые смещения: от 0 до 255. Один из самых интересных и полезных типов. Вы можете проверить, запакована ли память каким-нибудь читом / хаком. | < 0.3z или >= 0.3.7 R2, 0.3.7 R3, 0.3DL-R1 |
69 или 0x45 | Он составляет контрольную сумму размером в байтах из адреса arg + offset (память SAMP) и возвращает ее в аргумент ответа. Допустимые адреса: 0x0 - 0xC3500. Допустимые смещения: 0 - 255. Также может использоваться для поиска установленных читов / хаков. | >= 0.3.7 R2, 0.3.7 R3, 0.3DL-R1 |
70 или 0x46 | Этот тип читает данные структуры CBaseModelInfoSA указанной модели и возвращает однобайтовую чек-сумму. Можно указать, с какого оффсета начать чтение и сколько байт прочитать. Например, запрос SendClientCheck(playerid, 0x46, 1598, 0, 28) вернёт чек-сумму первых 28 байт структуры модели 1598. | <=0.3z или >= 0.3.7 R2, 0.3.7 R3, 0.3DL-R1 |
71 или 0x47 | Этот тип читает данные структуры CColModelSA указанной модели (указатель на которую лежит по оффсету 20 в структуре CBaseModelInfoSA), в частности чек-сумму коллизии. | <=0.3z или >= 0.3.7 R2, 0.3.7 R3, 0.3DL-R1 |
72 или 0x48 | Данный запрос не нуждается ни в каких дополнительных аргументах. Он возвращает количество секунд с момента запуска компьютера в arg. | <=0.3z или >= 0.3.7 R2, 0.3.7 R3, 0.3DL-R1 |
Подсказка |
Чек-сумма считается по простому алгоритму: for(new i = startaddress; i < endaddress; i++) result ^= ReadMemory(i) & 0xCC; |