Маски чтения и записи |
Маски чтения и записи можно установить для каждого адреса в таблице. Маска представляет собой формулу, по которой вычисляется закодированное значение. В формуле могут быть константы, операторы, имена переменных, директивы, круглые и квадратные скобки. Перед круглыми скобками может быть указан тип приведения, то есть значение, полученное в скобках, приводится к нужному типу. По умолчанию, тип приведения равен типу маски, если он установлен, если нет, то типу значения указанного для этого адреса в таблице! Значение в квадратных скобках - это адрес, из которого следует прочитать, перед квадратными скобками может быть указан тип чтения, какого типа должно быть прочитано значение. По умолчанию, тип чтения равен типу значения указанного для этого адреса в таблице. Имена переменных указываются в кавычках! Имя переменной возвращает её адрес, если нужно значение переменной, то в квадратных скобках. Например, для получения значения переменной EEmem надо написать ['EEmem']. Директива $value - заменить $value на текущее прочитанное значение для маски чтения, или значение, введенное при редактировании для маски записи. Если $value находится в начале маски, то его можно не указывать! Директива $address - заменить $address на текущий адрес.
Для игры Might and Magic Heroes 6 для всех ресурсов маска чтения/записи $value xor dword[$address+4]. Или короткая запись xor [$address+4] Для игры Civilization 5 для золота маска чтения $value/100, маска записи $value*100. Или короткая запись маска чтения /100, маска записи *100 Для игры Civilization 6 для золота маска чтения dword($value shr 8), маска записи dword($value shl 8). Здесь указание типа dword обязательно, поскольку установлен тип маски "С точкой 4 байта". |