| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия |
| lunadll [2023/05/07 19:30] – [LunaScript] wohlstand | lunadll [2023/05/07 19:37] (текущий) – [Ограничения] wohlstand |
|---|
| Из-за принципиального различия структуры памяти оригинального SMBX и TheXTech, все функции, работающие с памятью, эмулируются, что позволяет скриптам "думать", что они по прежнему работают с памятью SMBX, но на деле, все известные адреса памяти сопоставлены с внутренними переменными и обновлённой структурой TheXTech. Это также позволяет запускать игры даже на процессорах отличных от x86 и имеющих другой порядок байт (например, на PowerPC или на MIPS). Возможности работы с памятью сильно ограничены встроенными в движок таблицами правил, эмулирующих память движка Super Mario Bros. X. Это сделано из соображений упрощения, безопасности, а также следованием цели поддерживать старые проекты, нежели создавать новые на основе "Автокода", что в прочем тоже применяется как временная мера до тех пор, пока не будет реализована полноценная скриптовая система на языке lua. | Из-за принципиального различия структуры памяти оригинального SMBX и TheXTech, все функции, работающие с памятью, эмулируются, что позволяет скриптам "думать", что они по прежнему работают с памятью SMBX, но на деле, все известные адреса памяти сопоставлены с внутренними переменными и обновлённой структурой TheXTech. Это также позволяет запускать игры даже на процессорах отличных от x86 и имеющих другой порядок байт (например, на PowerPC или на MIPS). Возможности работы с памятью сильно ограничены встроенными в движок таблицами правил, эмулирующих память движка Super Mario Bros. X. Это сделано из соображений упрощения, безопасности, а также следованием цели поддерживать старые проекты, нежели создавать новые на основе "Автокода", что в прочем тоже применяется как временная мера до тех пор, пока не будет реализована полноценная скриптовая система на языке lua. |
| ====== Возможности ====== | ====== Возможности ====== |
| * Расширение функционала уровней с помощью скриптов, позволяя вносить ранее невозможные изменения. | * Расширение функционала уровней с помощью скриптов и встраиваемых подмодулей на C++, позволяя вносить ранее невозможные изменения. |
| * Упрощение задач, ранее считавшихся сложными. | * Упрощение задач, ранее считавшихся сложными. |
| * Полный контроль над игрой. | * Полный контроль над игрой. |
| |
| ====== Ограничения ====== | ====== Ограничения ====== |
| * Скриптовой язык является низкоуровневым и менее гибким, чем другие языки. У него не было таких важных фнукций, как переменные. | * Скриптовой язык является низкоуровневым и менее гибким, чем другие языки. У него не было таких важных компонентов, как переменные. Из-за чего приходилось реализовывать более сложную логику в виде встроенных подмодулей на C++, наглухо встраиваемых в само расширение. |
| * Требует навыков прямой манипуляции с памятью. | * Требует навыков прямой манипуляции с памятью. |
| |