Sanny Builder
На русском
Search
K
Comment on page

История изменений

v. 3.9.1 - 18.09.2023

  • имя массива в выражениях без опкодов может быть константой #250
  • декомпилятор использует Alloc для глобальных переменных, если они отличаются от CustomVariables.ini #251
  • опция "Регистр букв" по умолчанию установлена в "Как есть" #256
  • исправлена ошибка, возникающая при компиляции опкода 0B17 #254
  • исправлена ошибка, из-за которой редактор не предлагал использовать исходный код скрипта #258
  • исправлены некоторые проблемы, связанные с объявлением строковых переменных #259, #265

v. 3.9.0 - 09.09.2023

👏 Спасибо всем, кто помогал и участвовал в этом релизе, а так же большое спасибо тем, кто поддерживает меня на Patreon.
Некоторый ошибочный код, который компилировался в предыдущих версиях, теперь будет вызывать ошибку. См. примеры такого кода тут.

v. 3.8.5 - 22.02.2023

  • исправлен баг #216

v. 3.8.4 - 17.02.2023

  • при запуске программы с файлом (опция Открыть с помощью...) ранее открытые файлы должны быть доступны #151
  • новая опция командной строки --decompile
  • исправлены баги #212, #213, #180
  • исправлены некоторые проблемы компиляции классов с аргументами в виде строковых литералов

v. 3.8.3 - 08.01.2023

  • исправлены баги #210, #204, #168
  • исправлен баг в поиске моделей
  • плагин CLEO+ обновлен до 1.1.3

v. 3.8.2 - 08.09.2022

  • исправлены баги #200, #187

v. 3.8.1 - 01.09.2022

  • добавлена поддержка большего количества команд, завершающих выражение с несколькими условиями #133
if and
0AB0: is_key_pressed 9
0AB0: is_key_pressed 10
0AA0: gosub_if_false @label // раньше не работало, теперь компилируется
👏 Спасибо тем, кто участвовал в создании этой версии: NicusorN5, Junior_Djjr, wmysterio, MatiDragon, DanielSant0s, JaggerJam69, Vital, Sdas50, nick7

v. 3.8.0 - 04.08.2021

  • интеграция с Sanny Builder Library: новым порталом с документацией по всем известным опкодам
  • дизассемблер теперь выводит содержимое блока hex..end как строку, если оно является последовательностью ASCII символов, завершающейся нулевым байтом #33
  • новая отладочная опция, которая позволяет дизассемблеру игнорировать блок с доп. информацией в конце скрипта
  • новый параметр командной строки для запуска Sanny Builder с определенными настройками
  • пользовательские шаблоны кода теперь сохраняются в отдельный файл, чтобы обновления их не перезаписывали
  • сочетания горячих клавиш, которые использовали цифровую клавиатуру (Numpad), были изменены (Размер текста: Ctrl + +/- and Переход к метке и обратно: Alt + Right/Left)
  • плагин CLEO+ обновлен до версии 1.0.8
  • обновлены переводы на венгерский, испанский, украинский и китайский языки
👏 Спасибо тем, кто помогал с этим релизом: forms55, MatiDragon, Vital, wmysterio, XMDS

v. 3.7.0 - 30.01.2021

  • объявленные константы теперь подсвечиваются (#28)
  • список автодополнения показывает объявленные константы (#40)
  • для каждой вкладки в редакторе можно выбирать свой режим редактирования (#87)
  • новый режим VC Mobile с опкодами CLEO Android (sannybuilder/data#11)
  • в режим VC PC добавлены опкоды из Opcode Restoration project (автор spaceeinstein)
  • сообщения об ошибке теперь содержат ссылку на переведенную документацию, если таковая имеется (#101)
  • конфигурация внешних приложений поддерживает переменные @sb: и @game: (#72)
  • плагин CLEO+ обновлен до версии 1.0.7
  • исправлены баги: #103 #114 #120
Узнать больше о подсветке констант можно в статье Языковая служба.
👏 Спасибо XMDS за вклад в этот релиз.

v. 3.6.2 - 29.11.2020

  • исправлен баг с метками, отсутствующими в дизассемблированных CLEO скриптах #99

v. 3.6.1 - 27.11.2020

  • обновлен перевод на украинский язык
  • обновлен плагин CLEO+ до версии 1.0.4
  • обновлены описания и ключевые слова для CLEO опкодов #95
  • исправлены баги в компиляторе #96, #98
  • небольшие изменения и исправления (см. полный список)
👏 Спасибо wmysterio и XMDS за их вклад в это обновление.

v. 3.6.0 - 11.11.2020

  • поддержка перечисляемых типов в классах
  • новые типы параметров опкодов: m% and k%
  • начальная поддержка расширений
  • улучшена интеграция с библиотекой CLEO:
    • обновлены пакеты в папке tools:
      • CLEO v4.4
      • SCRLog v2020.2
      • добавлен плагин CLEO+ для GTA SA с 250+ новыми опкодами
    • скомпилированные скрипты для CLEO Android (*.csa, *.csi) теперь распознаются
    • компилятор использует CLEO опкоды 0A9E, 0A9F, 0A90, 0A91 в определенных выражениях без опкода
    • унифицированы описания и кейворды для CLEO опкодов среди различных режимов редактирования
  • добавлены кейворды для всех опкодов в режиме GTA SA SCR
  • слово thread было заменено на script в описаниях опкодов и кейвордах (см. почему)
  • обновления IDE:
    • директория игры теперь не является обязательной для запуска компиляции (#48)
    • папка для "Компилировать и сделать копию" теперь конфигурируется (#9)
    • обновлены переводы на испанский и итальянский языки
    • добавлена возможность ассоциировать Sanny Builder с расширениями *.csa и *.csi (скрипты для CLEO Android).
👏 Спасибо MatiDragon и Wesser за обновленные переводы.

v. 3.5.1 - 21.08.2020

  • исправлен баг с компиляцией скриптов LCS и VCS (#56)
  • массивы в LCS and VCS теперь получают собственные имена из файлов CustomVariables.ini и CustomArrays.ini (#53)
👏 Спасибо darkdraggy за обнаружение первого бага и помощь в тестировании.

v. 3.5.0 - 18.08.2020

Новые описания опкодов для GTA LCS и GTA VCS несовместимы с предыдущими версиями. Вы должны заново дизассемблировать main.scm этих игр прежде чем делать какие-то изменения.
👏 Спасибо marcelo_20xx и fastman92 за их вклад в этот релиз.

v. 3.4.1 - 06.08.2020

  • исправлено неверное количество параметров у опкода 04E3 в VCSSCM.INI
  • исправлена проблема в дизассемблере, которая приводила к игнорированию опции "Писать опкоды" и генерации невалидного кода

v. 3.4.0 - 04.08.2020

  • добавлена поддержка компиляции SCM в GTA: Vice City Stories (#2)
  • добавлена возможность объявлять локальные переменные с собственными именами (#32)
  • добавлен упрощенный синтаксис для вызова подпрограмм, используя имя метки: если после имени метки стоит () это представляет командуgosub
  • больше конфигураций для режимов редактирования:
    • путь к GXT файлу, который использует дизассемблер (#7)
    • путь к opcodes.txt (#5)
    • эксклюзивные шаблоны кода
  • добавлен новый туториал о высокоуровневых конструкциях в языке Sanny Builder (на английском), лежит в папке help\examples
  • обновления IDE:
    • Запуск San Andreas из меню теперь проверяет наличие файла gta-sa.exe (Steam)
    • новый пункт меню для быстрого создания CLEO скрипта (см. примечание внизу статьи Шаблоны кода)
    • ссылки на новый портал с документацией в меню и сообщениях об ошибках
  • небольшие изменения:
    • обновлены определения некоторых опкодов (player money += в SA, award_achievement в SA Mobile, 0479 в VCS)
    • в файле CustomVariables.ini для GTA III переменные script_controlled_player и flag_player_on_mission переименованы в PLAYER_ACTOR и ONMISSION соответственно (#3)
    • возвращена старая версия файлов в папке help\GXT Strings (#25)
    • файл macroes.txt переименован templates.txt
👏 Спасибо OrionSR, ZAZ, XMDS, и Wesser за их вклад в этот релиз.

v. 3.3.3 - 20.10.2019

  • исправлен баг, вызывавший неправильную компиляцию внешних скриптов

v. 3.3.2 - 19.10.2019

  • исправлены баги #0036, #0050
  • исправлен опкод 059C в режиме Vice City

v. 3.3.1 - 14.09.2019

  • исправлен баг #0048
  • добавлен файл constants.txt, который отсутствовал для режима GTA SA

v. 3.3.0 - 08.09.2019

v. 3.2.4 - 04.08.2019

  • исправлены баги #0031, #0032, #0033, #0040, #0044
  • исправлен дефект предыдущей версии, когда CHM справка не открывалась
  • обновлены описания опкодов для GTA 3 и Vice City
  • в IDE добавлена поддержка CLEO 2.0 для III и VC

v. 3.2.3 - 07.07.2019

  • улучшена поддержка версии GTA San Andreas для WinStore, Xbox 360 и PS3
  • исправлена ошибка с неправильной декомпиляцией опкодов 09A4 и 0A18 в режиме SA_Mobile

v. 3.2.2 - 05.07.2014

  • добавлен перевод на корейский язык (спасибо MINE)
  • улучшена работа конструкции HEX..END
  • исправлен баг #0000028

v. 3.2.1 - 04.05.2014

  • добавлен перевод на индонезийский язык (спасибо IMasterFX)
  • обновлены CLEO для GTA III и CLEO для Vice City (спасибо Silent)
  • исправлены баги #0000026, #0000027

v. 3.2.0 - 22.03.2014

  • добавление собственных режимов редактирования возможно путем изменения файла games.xml
  • новый режим редактирования GTA SA SCR
  • переменные могут быть объявлены при помощи указания типа перед именем переменной
  • CLEO обновлена до версии 4.3.16
  • добавлен моментальный поиск в тексте (ранее эта возможность называлась "переход к метке")
  • оригинальные названия миссий могут быть изменены через файл missions.txt
  • улучшена ассоциация расширений скриптовых файлов с Sanny Builder
  • при указании директории игры Sanny Builder проверяет только существование этой директории и не проверяет наличие дополнительных файлов в ней
  • небольшие улучшения в функции проверки обновлений
  • изменена иконка Sanny Builder и иконки в меню
  • исправлен баг #0000024

v. 3.1.4 - 22.02.2014

  • CLEO обновлена до версии 4.3.14
  • исправлены некоторые ошибки в интерфейсе на высоких разрешениях экрана
  • обновлены переводы на немецкий, польский, китайский, украинский языки

v. 3.1.3 - 22.12.2013

  • добавлена поддержка iOS и Android версий GTA: San Andreas
  • значение глубины просмотра теперь используется при построении списка констант
  • обновлены переводы на китайский и немецкий языки

v. 3.1.2 - 06.10.2013

  • добавлен перевод на чешкий язык
  • добавлены опции ассоциации файлов .cs и .cm с Sanny Builder.
  • исправлены баги #0000011, #0000020

v. 3.1.1 - 22.09.2013

  • добавлена новая директива $OPCODE для регистрации нового опкода через скрипт
  • скорректировано поведение директивы $INCLUDE при поиске файла
  • исправлены баги #0000005, #0000019

v. 3.1.0 - 14.09.2013

  • в VCSCM.ini добавлены опкоды из мобильной версии GTA VC и отмечены неподдерживаемые опкоды
  • при включенной опции Добавлять доп. информацию в SCM, Sanny Builder запоминает игру, для которой был скомпилирован скрипт, чтобы включить нужный режим редактирования при декомпиляции
  • при включенной опции Добавлять доп. информацию в SCM, Sanny Builder добавляет исходный код в тело скрипта (только при наличии директивы $EXTERNAL или $CLEO)
  • добавлена новая директива $NOSOURCE, чтобы запретить добавление исходного кода в тело скрипта
  • некоторые горячие клавиши могут быть изменены в опциях
  • добавлена возможность автоматически проверять наличие обновления при запуске программы
  • директивы $VERSION и $VERSION_RESTORE устарели (компилируются, но не имеют эффекта)
  • обновлены перевод на испанский и китайский языки
  • Менеджер координат может изменять угол поворота игрока в GTA VC
  • в комплектацию Sanny Builder добавлен CLEO плагин SCRLog от LINK/2012 (можно найти в папке tools)
  • исправлены баги #0000010, #0000014, #0000015, #0000016

v. 3.09 - 28.07.2013

  • в Sanny Builder добавлено лицензионное соглашение вида Freeware/Donationware
  • добавлена возможность сообщать о найденных багах в официальный баг-трекер
  • добавлена возможность проверять наличие обновления для Sanny Builder
  • Менеджер координат теперь поддерживает все известные версии GTA3, VC и SA (спасибо Silent)
  • добавлена обновленная версия перевода на китайский язык
  • исправлены баги #0000002, #0000003, #0000004, #0000006, #0000009
  • небольшие изменения дизайна

v. 3.08 - 05.07.2013

  • добавлен Silent's ASI Loader v1.1 для CLEO 3 и CLEO 4
  • добавлен перевод на китайский язык
  • добавлены классы File и Audiostream для обратной совместимости с CLEO 4 от Alien
File.Open, Audiostream.Load, Audiostream.Load3D были методами в CLEO 4. Теперь они свойства. Это означает, что если вы получаете ошибку при компиляции старых скриптов, где использовались эти команды, измените их синтаксис следующим образом:
переменная = File.Open(имя_файла, режим_открытия)
переменная = Audiostream.Load(имя_файла)
переменная = Audiostream.Load3D(имя_файла)
  • компилятор теперь может принимать строковую константу в качестве параметра в свойстве класса
Существует ограничение на использование пробелов в таком параметре.
  • компилятор больше не компилирует строки без начальной кавычки, например text1"text2" или text1'text2'
  • компилятор может компилировать символы комментария внутри строки "{text1}text2"
  • точка с запятой ; больше не может использоваться для закомментирования строки
  • изменен синтаксис параметра \debug
  • добавлены иконки флагов для доступных языков перевода в опциях
  • исправлены некоторые ошибки в декомпиляции для VCS

v. 3.06 - 17.06.2013

  • добавлена поддержка блочных комментариев /* */
  • SASCM.INI обновлен при помощи базы GTAG
  • свойства Actor.Armour и Actor.Car заменены на корректные версии Actor.AddArmour, Actor.MissionCar
  • добавлено новое свойство Actor.CurrentCar для опкода 03C0 в скриптовых классах для игр SA и VC
  • добавлены новые комбинации клавиш Ctrl+Num+ и Ctrl+Num- для быстрого изменения размера шрифта в редакторе
  • Sanny Builder запоминает число закрытых файлов для опции Открывать все закрытые файлы
  • исправлена ошибка при компиляции скрипта с большим числом вставок HEX..END
  • исправлена ошибка версии 3.05, когда программа зависала при запуске, пытаясь открыть файл, переданный в качестве параметра

v. 3.05 - 05.06.2013

  • добавлены новые языки перевода (финский, польский, венгерский, украинский, турецкий)
  • библиотека CLEO обновлена до версии 4.1.1.30f (CLEO 4 от Alien)
  • добавлена возможность установить CLEO для GTA III и для Vice City (автор - Alien)
  • файлы опкодов (**SCM.ini, opcodes.txt) замененены на файлы из комплекта CLEO 4.
  • добавлен новый параметр запуска программы \nosplash

v. 3.04 - 04.08.2008

  • в редактор кода добавлены возможности конвертации чисел из 16-чной системы счисления в 10-чную и наоборот (Ctrl+H), а также конвертировать имя модели в ID и обратно (Ctrl+Alt+H)
  • убрано сообщение о невозможности изменить script.img при компиляции CLEO-скриптов
  • отчет о компиляции показывает размер CLEO-скрипта (пункт Largest Script)
  • исправлена ошибка при компиляции массива с числовыми индексами
  • инсталлятор не требует прав администратора

v. 3.03 - 17.11.2007

  • предыдущая версия CLEO была с ошибкой
  • мелкие исправления (положение панели инструментов теперь сохраняется)

v. 3.02 - 16.11.2007

  • новая версия CLEO
  • панель инструментов можно передвигать
  • F7 при компиляции SCM без заголовка (c директивами $E, $CLEO) не делает копию
  • при компиляции файла с директивой $CLEO нажатием F6 файл создается в той же папке, нажатием F7 дополнительно создается копия в папке CLEO (по аналогии с компиляцией main.scm)
  • новый язык перевода - итальянский, португальский

v. 3.01 - 06.08.2007

  • обновление, исправляющее некоторые ошибки

v. 3.00 - 04.08.2007

v. 2.99e - 01.01.2007

  • справлена ошибка с пропаданием части кода при декомпиляции в режиме отладки внутри конструкции HEX..END
  • конструкция HEX..END может принимать тип aDMA для записи чисел и строки
  • к цикле FOR можно использовать имена моделей в качестве значений счетчика

v. 2.99d - 03.12.2006

v. 2.99c - 30.11.2006

  • добавлен плагин Memory Hacker
  • возможность декомпиляции main.scm Liberty City Stories
  • поддержка числовых констант в качестве индекса глобального массива
  • при декомпиляции переменные заменяются на тип ADMA, если не делятся на 4
  • при компиляции при отсутствии заголовка выставляются значения по умолчанию
  • возможность открывать файлы в редакторе методом Drag&Drop
  • новые препроцессорные директивы: {$VERSION}, {$VERSION_RESTORE}
Если при компиляции вы получаете сообщение об ошибке в заголовке (Неизвестная команда DEFINE OBJECTS) переместите строку {$VERSION xxxx} в любое место после заголовка, например перед комментарием //-------------MAIN---------------

v. 2.99 - 27.09.2006

  • добавлены две новые команды WriteMem и ReadMem
  • поддержка чисел в шестнадцатиричном формате
  • конструкция HEX..END может принимать значения меток и глобальных переменных
  • поддержка типа данных & для массивов, а также в выражениях без опкодов: &57 += &120(&231,4i)
  • возможность давать собственные имена меткам
  • возможность выбирать регистр букв для собственных имен меток и переменных, а также стринговых переменных
  • добавлена консоль для специальных опций SB
  • поддержка GXT файлов GTA III, GTA VC
  • информация об авторе и версии INI файла
  • поддержка классами INI с оригинальным порядком следования параметров (как SASCM.INI от PLPynton)
  • опция подтверждения выхода
  • возможность быстро переключать режим редактирования
  • конвертация отдельного, выделенного участка кода
  • возможность передавать во внешнее приложение в качестве параметра имя текущего открытого файла
  • исправлены некоторые ошибки в конфигурационных файлах
  • убрана автоматическая конвертация числа в тип Float, если переменная была объявлена как Float, а в нее записывалось целое число. Теперь опкод выбирается только в зависимости от типа числа
  • чтение/изменение Z_angle игрока в Coord Manager; возможность вставки значения угла в скрипт нажатием Ctrl+Shift+E (для SA)

v. 2.98 - 04.08.2006

  • Sanny Builder полностью русифицирован
  • в SB встроена специальная версия Opcode Search Tool
  • проверка математических выражений при декомпиляции с выключенной опцией Писать опкоды
  • возможность выбирать IMG файл самостоятельно, если таковой не найден в папке с main.scm(опция Ручной выбор IMG-файла)
  • возможность добавлять новые фрагменты кода прямо из редактора; добавлены описания макросов
  • список моделей можно сортировать по алфавиту/по значению (Alt+S, когда активен список)
  • минорные исправления и изменения

v. 2.97 - 11.06.2006

v. 2.96 - 01.04.2006

v. 2.9f - 18.02.2006

  • новые модели автоматически добавляются в список DEFINE OBJECTS (этот список можно вообще не использовать)
  • добавлены блочные комментарии: {}
  • добавлена запись макросов
  • минорные исправления и добавления

v. 2.9 - 15.12.2005

  • добавлен оператор IN
  • добавлена конструкция IF..THEN..ELSE..END
  • добавлены циклы WHILE, REPEAT; добавлена возможность использования вложенных циклов
  • добавлена команда ALLOC
  • новый стиль комментариев: //
  • позиции маркеров и курсора запоминаются для закрытых файлов

v. 2.6 - 05.11.2005

  • добавлена поддержка форматов Vice City и GTA3
  • добавлена возможность объявления переменных и массивов как экземпляров класса
  • добавлен показ списка переменных и меток
  • добавлена поддержка циклов ( оператор FOR )
  • миссии можно запускать по их имени (start_mission MYMISSION), где MYMISSION - это имя стартовой метки (DEFINE MISSION 100 at @MYMISSION )
  • доступен список импортируемых моделей (DEFINE OBJECTS) по Ctrl+пробел
  • новый оператор <>
  • если при декомпиляции не найден script.img, используется оригинальный файл
  • для массивов добавлен тип handle
  • возможность отключения предупреждения об использовании IMG игрой

v. 2.5 - 10.10.2005

  • добавлена поддержка свойств классов
  • добавлена поддержка фрагментов кода
  • добавлена конструкция VAR..END для эффективного управления переменными
  • описаны все возможные математические опкоды: 0004..008B
  • новые операторы < и <=
  • добавлена возможность автоподбора необходимого значения для оператора IF
  • добавлена поддержка текстовых названий параметров
  • добавлен показ списка моделей
  • минорные добавления и исправления

v. 2.0 - 18.09.2005

  • добавлена поддержка классов
  • добавлена поддержка ключевых слов
  • добавлена возможность писать некоторые математические команды без опкодов
  • для опкода 00D6 по умолчанию устанавливается параметр 0, если иное не установлено (if = if 0)
  • добавлена опция выбора различных видов меток
  • добавлены константы True и False, которые обозначают 1 и 0 соответственно
  • добавлена конструкция HEX..END для записи шестнадцатиричных значений прямо в SCM

v. 1.1 - 07.09.2005

  • добавлен Coord Manager
  • исправлены некоторые ошибки

v. 1.0 - 04.09.2005

  • новый формат меток
  • добавлен конвертор из синтаксиса BW's SA Mission Builder
  • при декомпиляции в исходник добавляются названия моделей и содержимое american.gxt
  • добавлены новые опции
  • пофиксены некоторые ошибки

v. 0.8 - 20.08.2005

  • добавлена возможность ассоциировать SCM файлы с программой
  • теперь при декомпиляции имя выходного файла изменяется, если такой файл уже существует (например, если уже существует main.scm.txt, то имя нового файла будет main.scm[0].txt)
  • сообщения об ошибках стали более информативными
  • добавлена проверка на дублирование меток
  • пофиксены некоторые ошибки

v. 0.7 - 10.08.2005