memory

qdIbp

Автор темы
Автор темы
Проверенный
1,435
1,175
Версия MoonLoader
.026-beta
Возможно-ли записать переменную в память игры, чтобы после перезагрузки скрипта знач осталось, а после выхода из самой игры значение стиралось
 

whyega52

Гений, миллионер, плейбой, долбаеб
Модератор
2,782
2,609
Возможно-ли записать переменную в память игры, чтобы после перезагрузки скрипта знач осталось, а после выхода из самой игры значение стиралось
значение и так не меняется при перезагрузке скрипта (если это конечно не предусмотрено скриптом)
 
  • Грустно
Реакции: qdIbp

qdIbp

Автор темы
Автор темы
Проверенный
1,435
1,175
значение и так не меняется при перезагрузке скрипта (если это конечно не предусмотрено скриптом)
ты не пон, броу...
смори

Lua:
local xxx = 1

--где то ниже в скрипте
xxx = 65
мне нужно за save`вить значение 65 в памяти
 
  • Вау
Реакции: whyega52

MrDorlik

Известный
957
384
мне нужно за save`вить значение 65 в памяти
иникфг юзать нельзя? в мейне ставишь если not isSampAvavilable стираешь значение с иника, а если будет перезапуск соответственно стираться не будет
 
  • Грустно
Реакции: qdIbp

qdIbp

Автор темы
Автор темы
Проверенный
1,435
1,175
иникфг юзать нельзя? в мейне ставишь если not isSampAvavilable стираешь значение с иника, а если будет перезапуск соответственно стираться не будет
лень save`вить знач через ini and json, что-то простенькое хочется(если эт кнш простенько)
 

whyega52

Гений, миллионер, плейбой, долбаеб
Модератор
2,782
2,609
ты не пон, броу...
смори

Lua:
local xxx = 1

--где то ниже в скрипте
xxx = 65
мне нужно за save`вить значение 65 в памяти
а, тогда как варик записывать в дата секцию какое-нибудь значение вместо какого-то игрового, которое редко используется (хз что подойдет)
 

Gorskin

♥ Love Lua ♥
Проверенный
1,332
1,169
Зачем вы всё усложняете, по адресу 0x380000 запиши 2 байта и значение 65. Потом даже из другого скрипта сможешь прочитать это значение. Я лично использовал этот метод для смены дистанции ников игроков. Записывал туда серверное значение дистанции.

Можно использовать любой адрес функции которая в сампе не работает
 

Hatiko

Известный
Проверенный
1,502
620
Раз хочешь таким мазохизмом заниматься, то тебе надо записать именно в статический адрес, который можешь от сюда взять: https://gtamodding.ru/wiki/Адреса_Памяти_(SA)

UPD: Возьми Cheat Engine, вбей в поиск к примеру 0, он найдет тебе херого кучу адресов, найди зеленые - это статика. ну и попробуй туда записать, но за корректность игры точно не отвечаю, т.к. не известно за что отвечает тот или иной адрес. Судя по области, в которых найдены эти значения, там статичная область большая, думаю будет предостаточно места для записи.
 
Последнее редактирование:
  • Bug
  • Вау
Реакции: qdIbp и #Northn

IlyaHL2

Активный
231
48
Зачем вы всё усложняете, по адресу 0x380000 запиши 2 байта и значение 65. Потом даже из другого скрипта сможешь прочитать это значение. Я лично использовал этот метод для смены дистанции ников игроков. Записывал туда серверное значение дистанции.

Можно использовать любой адрес функции которая в сампе не работает
memory.write(0x380000, 64, 2, false)

cannot resume non-suspended coroutine
stack traceback:
[C]: in function 'write'

memory.write(0x380000, 64, 2, false)
И что-то крашит от момента к моменту
 
Последнее редактирование:

Gorskin

♥ Love Lua ♥
Проверенный
1,332
1,169
memory.write(0x380000, 64, 2, false)




И что-то крашит от момента к моменту
Попробуй использовать writeMemory и адрес смени хотя бы на 0xFF2024 к примеру, тот адрес я написал как пример, мб он где-то используется, на своей практике адреса от CDEEEE до FFFFFF+900 не влияют на игру, у игры какие-то пространство в запасе, где-то 5 мб точно есть. Так что пространство этих "свободных" адресов может быть и больше.
 
  • Нравится
Реакции: qdIbp