Это не совсем скриптинг: это навыки работы с игровой памятью, инфы по которой достаточно и на этом сайте, и в справке SB(там для СА инфа, но всё подходит и для ВС, кроме адресов памяти, ессно), и в доп справке CLEO 4 в аттаче(тоже инфа по СА, но опкоды, добавленные в CLEO Вайса 0 идентичны аналогичным САновским), и в
Вики, и на форуме SB и т.д.. Сам скриптинг в СА и ВС ничем принципиально не отличается, кроме набора опкодов.
Итак, поинтер - это адрес чего-то конкретного, например - той же структуры тачки.
Получить поинтер структуры авто можно опкодом:
0A97: $CarStruct = car $MyCar struct
Иногда встречаются случаи, когда тебе известен лишь
адрес поинтера, т.е. не сам поинтер, а адрес, в котором записан адрес поинтера. Например,
в Вики есть такой момент:
0x7E49C0 - [pointer] - Player's car pointer (player pointer when not in car)
Т.е., чтобы узнать поинтер тачки игрока(при условии, что он сидит в тачке) - нужно считать по адресу 0x7E49C0 значение размера 4 байта:
0A8D: $PlayerCarStruct = read_memory 0x7E49C0 size 4 virtual_protect 1
В $PlayerCarStruct запишется адрес(поинтер) стракта авто игрока.
Далее в той же Вики для каждого стракта приводится
оффсет: это смещение относительно начального адреса структуры. Иначе говоря - это то значение, которое нужно прибавить к адресу стракта, чтобы получить необходимый адрес для работы с конкретной вещью.
К примеру, возьмем смещение здоровья авто:
0x204 | float | health
Означает, что нам нужно к нашему адресу стракта прибавить 0x204, чтобы получить нужный адрес здоровья конкретного авто. Тип float, т.е. считывать нужно 4 байта. Если byte - 1 байт, если float, dword или pointer - 4 байта.
Иначе говоря, вот код получения здоровья авто:
0A97: $CarStruct = car $MyCar struct
$CarStruct += 0x204
0A8D: $CarHealth = read_memory $CarStruct size 4 virtual_protect 1