Перейти к содержанию

Как задать переменной значение?


Гость Atoi

Рекомендуемые сообщения

В коде есть переменная по определенному смещению, например 00410000, в которую записывается указатель на основной класс игры.

В этом классе есть указатель на класс персонажа.

Нужно сделать в CE переменную, с помощью registersymbol(...), в которой будет лежать указатель на класс персонажа.

Нужно как-то выполнить код в Init.

После выполнения в pPointer лежит 12345678, а нужно 00410000


[ENABLE]
alloc(Init, 256)
label(pPointer)
label(TheEnd)
registersymbol(pPointer)

Init:
mov eax, 00410000
//mov eax, [eax+40]
mov [pPointer], eax
jmp TheEnd

pPointer:
dd 12345678
jmp Init

TheEnd:

[DISABLE]
dealloc(Init)
unregistersymbol(pPointer)

Ссылка на комментарий
Поделиться на другие сайты

Регистрация переменных удобнее через Lua.


onOpenProcess(processid)
reinitializeSymbolhandler()
pClassHero = getAddress("[00410000] + 40")
registerSymbol("pClassHero", pClassHero)
end

Для версии CE 6.2

Лучше использовать без сохранения переменной

registerSymbol("pClassHero", pClassHero , false)

Теперь можно в АА скриптах или в Lua скриптах использовать символ "pClassHero"

Но если всё-таки нужен АА-скрипт, то можно и так


[ENABLE]
alloc(Init, 256)
label(pPointer)
label(TheEnd)
registersymbol(pPointer)

Init:
mov eax, 00410000
lea eax, [eax+40]
mov [pPointer], eax
ret

pPointer:
dd 0

createthread(Init)


[DISABLE]
dealloc(Init)
unregistersymbol(pPointer)

Если где ошибка, то надо поправить. Я же не могу всё помнить и нет времени проверять :)

И ещё кое-что. Сомневаюсь, что в процессе игры речь может идти о "классах". Класс это тип данных. Структура в программировании это тоже тип данных, однако "структура данных" это уже не тип, а реализация. Чтобы не писать длинное словосочетание "структура данных" можно писать просто "структура". "Структура игрока", "структура врага", "структура оружия", "указатель на структуру оружия", "указатель на структуру врага" и т.п. Всё - структуры.

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.