RUVIDEO
Поделитесь видео 🙏

SKSE modding tutorial #5: Accessing global variables and changing function code

Today I will talk about Address Library, accessing global variables and changing functions code.

⌚TIMESTAMPS⌚

00:00 Intro
01:44 Base address, ofssets, runtime address
04:43 Why & what is Address Library
07:44 Gettings offsets file
10:02 Finding REL::ID for Player
10:39 Finding AE ID by SE ID
12:49 A summary about Address Library
14:47 Global variables: CE
16:27 Global variables: hacker's method
20:04 Global variables: best practice
23:41 Calling functions
25:13 Calling functions: hacker's method
26:54 Calling functions: best practice
29:15 Changing function code: CE
31:42 Changing function code: best practice
34:48 Conclusion ツ

ℹ️ IDs, addresses ℹ️
OnHit
REL::ID(37673)
SSE offset(140628C20)

PlayerCharacter Singleton
REL::ID(517014)
SSE offset(142f26ef8)

Player ctor
REL::ID(39340)
SSE offset(140699040)

Player vftable
REL::ID(261916)
SSE offset(1416635E0)

Block settings (all floats)
REL::ID(503496).address() + 8
REL::ID(503498).address() + 8
REL::ID(503500).address() + 8

get_difficulty_mult
REL::ID(25920)
SSE offset(1403C1200)

should_dodge
REL::ID(46589)
SSE offset(1407D1590)

Archer formID: 44292

‼️Tips ‼️
IDA default base address: 0x140000000
Object offset = object address in IDA - IDA default base address
Game base address in CE is: SkyrimSE.exe
Object runtime address = base address + object offset
PlayerCharacter Singleton address in CE: SkyrimSE.exe+2f26ef8
Other object's address: SkyrimSE.exe+offset
Get your binary version and offsets file for it with AddressLibraryOffsets
SE ID -- AE ID conversion:
From SE ID to SE offset for 1.5.97.0: use 1.5.97.0 offsets file
From SE offset for 1.5.97.0 to AE offset 1.6.318.0: use match attempt
From AE offset 1.6.318.0 to AE ID: use 1.6.318.0 offsets file
Accessing global variable
REL::Relocation<pointer_to_var_type> var(REL::ID(id).address() + offset); // then use *var to read value
Writing to the binary
REL::safe_write(REL::ID(id).address() + offset, (char*)data, size);
Calling the function from binary:
REL::Relocation<pointer_to_func> func(REL::ID(id));
func(params...);

‼️Note ‼️
Youtube does not allow to use regular '<' or '>' in descriptions, so you cannot just copy them in visual studio. Print them yourself.

Links 🔗
Address Library: https://www.nexusmods.com/skyrimspecialedition/mods/32444
SE & AE library: https://github.com/CharmedBaryon/CommonLibSSE-NG
Get offsets file: https://github.com/fenix31415/AddressLibraryOffsets

Links 🔗
Github — https://github.com/fenix31415
Discord — Fenix31415#0375
SkyrimSE RE Discord server — https://discord.gg/9MDvtRwRXE

-- Not related to RE, just youtube asked --

Лицензия Creative Commons Attribution 4.0 на использование трека Renaissance (исполнитель: Audionautix): https://creativecommons.org/licenses/by/4.0/

Исполнитель: http://audionautix.com/

Лицензия Creative Commons Attribution 4.0 на использование трека Folk Round (исполнитель: Kevin MacLeod): https://creativecommons.org/licenses/by/4.0/

Источник: http://incompetech.com/music/royalty-free/index.html?isrc=USUAN1100357

Исполнитель: http://incompetech.com/

Что делает видео по-настоящему запоминающимся? Наверное, та самая атмосфера, которая заставляет забыть о времени. Когда вы заходите на RUVIDEO, чтобы посмотреть онлайн «SKSE modding tutorial #5: Accessing global variables and changing function code», вы рассчитываете на нечто большее, чем просто загрузку плеера. И мы это понимаем. Контент такого уровня заслуживает того, чтобы его смотрели в HD 1080, без дрожания картинки и бесконечного буферизации.

Честно говоря, Rutube сегодня — это кладезь уникальных находок, которые часто теряются в общем шуме. Мы же вытаскиваем на поверхность самое интересное. Будь то динамичный экшн, глубокий разбор темы от любимого автора или просто уютное видео для настроения — всё это доступно здесь бесплатно и без лишних формальностей. Никаких «заполните анкету, чтобы продолжить». Только вы, ваш экран и качественный поток.

Если вас зацепило это видео, не забудьте взглянуть на похожие материалы в блоке справа. Мы откалибровали наши алгоритмы так, чтобы они подбирали контент не просто «по тегам», а по настроению и смыслу. Ведь в конечном итоге, онлайн-кинотеатр — это не склад файлов, а место, где каждый вечер можно найти свою историю. Приятного вам отдыха на RUVIDEO!

Видео взято из открытых источников Rutube. Если вы правообладатель, обратитесь к первоисточнику.