#1 05-06-2013 10:47

Seemann
Registered: 07-08-2006
Posts: 2,155

Sanny Builder v3.xx

Нежданно-негаданно, 5 лет спустя после выхода последней версии Sanny Builder 3.04, я наконец добрался до исходников своей программы. После сдувания с них пыли и счищения ржавчины с собственных мозгов, мне удалось скомпилировать и запустить SB. За 5 лет довольно много изменилось, поэтому первоочередным решением было добавить в программу те языки перевода, которые мне присылали пользователи, а также обновить CLEO до версии 4.1.1.30f и добавив CLEO для III и VC.

Поскольку я не притрагивался к исходникам программы почти 5 лет, за это время у меня поменялся комп, пришлось ставить заново дельфи и все компоненты. Что-то в программе может работать не так как раньше. Если вы заметите подобные странности, или обнаружите ошибку - пишите мне, я постараюсь исправить. Предыдущую версию SB можно скачать тут http://public.sannybuilder.com/archive/

Итак, список изменений версии 3.05

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

Дальнейшие планы по развитию программы озвучивать не буду, мысли и желание есть, если будет что-то получаться - напишу. Также с удовольствием выслушаю ваши предложения и пожелания по дальнейшему улучшению программы.

Мне в течение этих лет много писали различных предложений и вопросов, сообщали о некоторых багах. К сожалению, не все из этого у меня сохранилось. Поэтому если вы знаете о каком-либо баге в Sanny Builder'е - сообщите мне повторно, я постараюсь исправить.

Скачать новую версию 3.05 можно здесь
http://sannybuilder.com/files/SannyBuilder-v3.05.exe

Offline

#2 05-06-2013 11:57

SHooZ
From: Львів
Registered: 05-06-2013
Posts: 51
Website

Re: Sanny Builder v3.xx

clapНаконец то)

Offline

#3 05-06-2013 12:02

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Sanny Builder v3.xx

Круто, пытался что-то придумать в качестве предложений, но не получается, все уже настолько привычно, что не хочется что-либо менять. Хотя одну вещь вспомнил, как-то пытался сделать санник портабельным, но GamePath и OpcodesPath в settings.ini не захотели работать с относительными путями. Я использую папки вида dirGTASA с минимальным необходимым набором файлов в папке с самим SB, т.е. к примеру что-то вроде этого хотелось бы:
GamePath=.\dirGTASA

Offline

#4 05-06-2013 12:22

SHooZ
From: Львів
Registered: 05-06-2013
Posts: 51
Website

Re: Sanny Builder v3.xx

Надо ещё добавить в инсталятор возможность ассоциировать .cs и .cm файлы с Sanny Builder=)

Offline

#5 05-06-2013 13:51

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Sanny Builder v3.xx

@Sergey81 -

как-то пытался сделать санник портабельным, но GamePath и OpcodesPath в settings.ini не захотели работать с относительными путями. Я использую папки вида dirGTASA с минимальным необходимым набором файлов в папке с самим SB, т.е. к примеру что-то вроде этого хотелось бы:
GamePath=.\dirGTASA

путь можно указать, он исчисляется относительно sanny.exe

Если игра находится, как ты говоришь, в папке санника, то такая запись должна работать

GamePath=dirGTASA

чтобы подняться на уровень выше, нужно написать ..\

OpcodesPath=..\..\dirGTASA\SASCM.ini (ини расположен в папке на 2 уровня выше папки сб)

@SHooZ - такое реализовать можно, но есть одна трудность, файлы с расширением .cs используются программой Microsoft Visual Studio (язык C#). http://filext.com/file-extension/CS

Может возникнуть ненужный конфликт интересов. С другой стороны, если сделать это по желанию пользователя и отдельно от .scm-файлов, может это и хорошо. Надо будет подумать.

Offline

#6 05-06-2013 17:33

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Sanny Builder v3.xx

Seemann wrote:

путь можно указать, он исчисляется относительно sanny.exe

Хм, действительно, можно было догадаться, но почему-то именно таким образом я не попробовал сделать.
Насчет ассоциации .cs/.cm я не думаю что это необходимо, т.к. декомпилировать файл нужно в 1% случаев. А вот придумать какое-нибудь автоопределение, чтобы, к примеру, если скрипт от gta3 декомпилировать в режиме SA, выскакивало какое-нибудь окошко о несоответствии и предлагало декомпилировать в правильном режиме. Тоже самое и с опцией ignore unknown, вместо сообщения что обнаружен неизвестный опкод, сразу же предлагало декомпилировать с этой опцией.

Offline

#7 05-06-2013 21:04

SHooZ
From: Львів
Registered: 05-06-2013
Posts: 51
Website

Re: Sanny Builder v3.xx

Тоже замечание в программу установки: она работает только с ГТА СА. Можно добавит чекбоксы для Вайса и Тройки как и для указания путей к им, так и для диалога об установке клео по этим путям

Offline

#8 06-06-2013 06:10

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Sanny Builder v3.xx

@Sergey81 -

если скрипт от gta3 декомпилировать в режиме SA, выскакивало какое-нибудь окошко о несоответствии и предлагало декомпилировать в правильном режиме

ну, например, .scm GTA3 и VC сходу невозможно различить между собой. Отличия есть только в некоторых типах данных и опкодах. Заголовки у них идентичные.

@SHooZ - по идее инсталлятор должен работать и с GTA 3, и с VC. Но только с чем-то одним. Т.е. можно указать папку VC, и туда будет установлен CLEO для VC. А вот для нескольких игр сразу такое сделать пока нельзя.

Offline

#9 06-06-2013 10:25

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Sanny Builder v3.xx

Seemann wrote:

@Sergey81 -

если скрипт от gta3 декомпилировать в режиме SA, выскакивало какое-нибудь окошко о несоответствии и предлагало декомпилировать в правильном режиме

ну, например, .scm GTA3 и VC сходу невозможно различить между собой. Отличия есть только в некоторых типах данных и опкодах. Заголовки у них идентичные.

Ну можно тогда как то так:
24591730.jpg
Каждая кнопка будет автоматом переключать режим и декомпилировать в выбранном соответственно.
Я думаю так гораздо удобнее, чем нажимать ок, менять режим, а потом заново открывать файл.

Last edited by Sergey81 (06-06-2013 10:27)

Offline

#10 06-06-2013 12:21

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Sanny Builder v3.xx

@Sergey81 - идея понятна, но ее затраты на конкретно такую реализацию несопоставимы с пользой, которую она принесет. иными словами, выхлоп будет слабеньким. При нажатии на кнопку "Помощь" редактор подсказывает, что можно переключить опцию Ignore_unknown.

Возможно, я сделаю как-то по-другому.

зы. Поздравляю с днем рождения)

Offline

#11 06-06-2013 13:29

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Sanny Builder v3.xx

Seemann wrote:

@Sergey81 - идея понятна, но ее затраты на конкретно такую реализацию несопоставимы с пользой, которую она принесет. иными словами, выхлоп будет слабеньким. При нажатии на кнопку "Помощь" редактор подсказывает, что можно переключить опцию Ignore_unknown.

Возможно, я сделаю как-то по-другому.

зы. Поздравляю с днем рождения)

Спасибо smile

А вообще да, декомпиляция, как я уже говорил, редко используется, в основном только для проверки что в скрипте нету глобальных переменных или других косяков, поэтому пара лишних кликов не особо напрягает.
Кстати, раз уж Alien больше разработкой cleo не занимается, будут ли выложены исходники от cleo для GTA3/VC?

Offline

#12 11-06-2013 01:13

wmysterio
Registered: 04-03-2011
Posts: 215
Website

Re: Sanny Builder v3.xx

Рад, что появились какие-то новости по Sanny Builder smile

Было бы неплохо реализовать конструкцию switch. Таблицы переходов ещё не разленился писать, но хотелось бы как-то удобно всё поместить в конструкцию, например в такую:

switch $INDEX
    case 0
    0@ = #ADMIRAL
    break
    end
    case 1
    0@ = #RUSTLER
    break
    end
    default
    0@ = #REMINGTN
    break
    end
wait 0
end

или что-то похожее на foreach для обработки массивов.

p.s У меня санник не открывается на windows 8 (x32), но пошел на windows 8 (x64)

Last edited by wmysterio (13-06-2013 22:50)

Offline

#13 11-06-2013 18:41

Vital
From: Москва
Registered: 07-11-2010
Posts: 64
Website

Re: Sanny Builder v3.xx

Мне бы хотелось скорейшей мобилизации всех сил скриптеров на то, чтобы полностью избавиться от неточностей и unknown опкодов в SASCM.ini. Это просто иногда сбивает с толку, приходится лазить по сайтам и искать информацию. После обновления SASCM.ini на сайте GTA Gaming всё равно осталось 157 неизвестных опкодов, не исключено, что многие другие также неточны. Хотелось бы с этим разобраться. Хотелось бы, конечно, обновления справки, возможно, добавления новых статей, так как многое там устарело, многое здорово было бы добавить (работу с памятью, например).
В общем, рад возобновлению работы над Sanny Builder, теперь есть новая надежда на совершенствование, пожалуй, лучшей программы для скриптинга.

Last edited by Vital (12-06-2013 11:06)

Offline

#14 16-06-2013 23:04

Sergey81
Registered: 19-12-2008
Posts: 654

Re: Sanny Builder v3.xx

Кстати, а нельзя ли совместить txt-исходник скрипта и компилированную версию? Например сделать отдельную опцию в саннике - компилировать вместе с исходником, и соответственно работать только с одним файлом, а не с двумя. При открытии .cs файла, если внутри есть исходник, открывать его, а если нет, то декомпилировать.

Offline

#15 17-06-2013 06:08

kenking
From: Казахстан
Registered: 28-06-2010
Posts: 253

Re: Sanny Builder v3.xx

Хорошо бы и CLEO обновить, добавив новые опкоды из плагина DK22Pac и описание.

Offline

#16 17-06-2013 06:10

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Sanny Builder v3.xx

@Sergey81 - интересная мысль, учту.

@kenking - работа в этом направлении уже ведется.

Offline

#17 17-06-2013 09:34

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Sanny Builder v3.xx

Вышла новая версия Sanny Builder 3.06
http://sannybuilder.com/files/SannyBuilder-v3.06.exe

* добавлены новые операторы ++ и --
* добавлена поддержка блочных комментариев /* */
* 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, когда программа зависала при запуске, пытаясь открыть файл, переданный в качестве параметра

Offline

#18 17-06-2013 13:55

Portal25
From: Tambov
Registered: 25-06-2011
Posts: 52
Website

Re: Sanny Builder v3.xx

Мм.. Неплохо бы тогда и asi loader обновить http://www.gtaforums.com/index.php?showtopic=523982

smile


OgYkX.png

Offline

#19 17-06-2013 16:51

wmysterio
Registered: 04-03-2011
Posts: 215
Website

Re: Sanny Builder v3.xx

Было бы неплохо поработать с "Инструментами". Что бы их можно было быстро вызывать комбинациями клавиш CTRL+ALT+3, CTRL+ALT+4 ... CTRL+ALT+0(можно вызвать только 2 инструмента горячими клавишами). Или добавить несколько своих по-умолчанию. Например конструкторы всякие, как "конструктор стартеров и миссий"(вставляет шаблоны миссий и их стартера), конструктор панелей(программа генерирует шаблон кода с использованием опкодов 08D4, 08DB и кидает их в Санник) и тому подобные.

Если идея понравилась, могу смастерить что-то из этого. Нужны только идеи smile

Offline

#20 18-06-2013 07:49

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Sanny Builder v3.xx

@wmysterio - а что мешает сделать это через меню Сервис-Инструменты-Добавить и выставить там необходимые параметры?
d290c3ffdc29.jpg

Если идея понравилась, могу смастерить что-то из этого. Нужны только идеи

могу подкинуть идею, мне пригодился бы редактор файла classes.db Т.е. графическая оболочка для создания, удаления, изменения классов на основе имеющегося там синтаксиса (детали могу пояснить).

Offline

#21 18-06-2013 09:40

wmysterio
Registered: 04-03-2011
Posts: 215
Website

Re: Sanny Builder v3.xx

Seemann wrote:

@wmysterio - а что мешает сделать это через меню Сервис-Инструменты-Добавить и выставить там необходимые параметры?

Как раз таки с параметрами я и не разобрался. Не мог понят для чего они. А когда указывал клавишу, то ничего не происходило(у меня по крайней мере). Просто предложил небольшую автоматизацию.

Seemann wrote:

Если идея понравилась, могу смастерить что-то из этого. Нужны только идеи
могу подкинуть идею, мне пригодился бы редактор файла classes.db Т.е. графическая оболочка для создания, удаления, изменения классов на основе имеющегося там синтаксиса (детали могу пояснить).

Детали очень даже помогут. Например, я не понял как работают строки с символами "^" и "[ .. ]".

Offline

#22 18-06-2013 10:29

Seemann
Registered: 07-08-2006
Posts: 2,155

Re: Sanny Builder v3.xx

@wmysterio -

Детали очень даже помогут. Например, я не понял как работают строки с символами "^" и "[ .. ]".

; Properties syntax reference:
;
; ^Name,[prop1],[prop2]...[propN], ("Hint")

в строках с символом ^ заключены так называемые "свойства" (properties). Это элементы класса, которые можно прочитать, установить или проверить, используя одно и то же имя. Самый простой пример - кол-во денег игрока. это свойство Player.Money
Для работы с деньгами есть несколько опкодов

0109: player $PLAYER_CHAR money += 1000000 
010A:   player $PLAYER_CHAR money > 461@ 
010B: 4@ = player $PLAYER_CHAR money

при обычном подходе можно написать три разных функции класса Player. AddMoney, Player.MoneyIsGreather, Player.GetMoney. Но свойство помогает использовать одно имя Money для все трех опкодов: Player.Money+=10, Player.Money > 100, 0@ = Player.Money

Соответственно в строке ^Money мы должны указать все опкоды, относящиеся к данному классу. Каждый опкод описывается в отдельных квадратных скобках

^Money,[0109,+=,1,0,0],[010A,>,1,1,0],[010B,=,2,0,0],("Player%h")

^Money - название свойства
, - разделитель
[0109,+=,1,0,0] - описание опкода 0109. Первым идет номер опкода, потом разделитель (,), потом оператор (математический знак), который будет указывать компилятору какой именно опкод используется, разделитель, потом указатель на то, с какой стороны выражения стоит данное свойство. Если свойство расположено слева от знака (Player.Money>0), ставится 1. Если справа - 2 (0@=Player.Money). последние две цифры такие же как в обычных опкодах: тип опкода (0-обычный, 1-условный, 2-опкод, который может использоваться и как обычный метод и как свойство**) и код справки (для всех он равен 0). В версии 3.06 код справки равный -2 означает, что данная команда более не используется программой и оставлена только для совместимости со старыми исходниками.

** пример такого опкода Player.Canmove. Мы можем в коде использовать команду Player.CanMove($PLAYER_CHAR,True) - как обычная команда. Либо написать Player.CanMove($PLAYER_CHAR) = True - здесь команда уже похожа на "свойство".

Offline

#23 18-06-2013 20:39

wmysterio
Registered: 04-03-2011
Posts: 215
Website

Re: Sanny Builder v3.xx

@Seemann -
Спасибо большое за объяснения! Думаю, в течении нескольких дней сделаю. Мог бы я и пораньше, но увы, в пятницу защита диплома. Не могу на два фронта работать )

Но пока научил программу создавать, удалять и изменять имена классов:
[img align=C]http://ru-script.3dn.ru/BS_CL_VW.png[/img]

Следующий шаг - добавление процедур, методов и свойств

Last edited by wmysterio (18-06-2013 23:52)

Offline

#24 19-06-2013 18:24

mfisto
From: Russia Perm
Registered: 01-02-2008
Posts: 558
Website

Re: Sanny Builder v3.xx

Ребят, а что насчет трешки, там классы вообще не описаны, не порядок, они с Вайсом очень похожи. Приходится вручную вписывать.

@Seemann Ман, может исправишь недочетик...)))


I know everything and nothing...

Offline

#25 20-06-2013 10:54

mgmoldova
Registered: 20-06-2013
Posts: 13

Re: Sanny Builder v3.xx

Можете убрать в следующей версии комментарии, которые берутся в { }, потому что они даже в стринге берутся в комментарий. Например: 1@ = "{FFFFF}text"

Offline

Board footer

Powered by FluxBB