Есть ли известные участки памяти в gta_sa.exe или samp.dll где можно хранить какую-то информацию (байтов 100) для того, чтобы обращаться к ней между запусками разных скриптов/плагинов. Сохранение в файл конфига, особенно при частых перезаписях и когда требуется 100% гарантия синхронности не слишком стабильный вариант. Поэтому я придумал использовать память как хранилище с быстрым прямым доступом и гарантированным сохранением данных.
1) Как найти такие участки и быть уверенным, что они не будут изменены?
2) Хуйню ли я придумал? Если да какие более подходящие решения есть?
P.S. в целом достаточно 4 байт. Просто выделить память и указатель засунуть по каком-то статическому адресу внутри игры.
Идея с выделением памяти внутри gta_sa.exe или samp.dll звучит заманчиво, но на практике сложно гарантировать, что эти участки не будут перезаписаны игрой или другими плагинами. Лучше использовать встроенные способы хранения или, если нужно что-то очень быстрое, попробовать глобальные переменные sampfuncs. Файлы, конечно, тормозят при частых запросах, но обычно стабильнее.
Сохранять данные прямо в памяти игры — идея рисковая, там многое может внезапно затираться, особенно по апдейтам или от других плагинов. Лучше либо глобалку sampfuncs использовать, либо минимальные конфиги с кэшированием в памяти. Это куда надежнее, чем искать «свободный» участок в .data или между функций, который не гарантированно сохранится.