Компилятор EMC

Творчество, посвященное Кирандии.

Re: Компилятор EMC

Сообщение Siberian GRemlin » 27 май 2015, 14:43

Можно образец байт-кода из сцены написания записки Каллаком?
Siberian GRemlin
(1) Пират с острова Котов
 
Сообщения: 60
Зарегистрирован: 12 апр 2009, 10:24
Откуда: г. Красноярск
Любимая часть Кирандии: каждая
Любимые персонажи Кирандии: Зантия и многие другие
Почему Вы любите Легенду о Кирандии?: я не смог устоять перед волшебным миром

Re: Компилятор EMC

Сообщение Siberian GRemlin » 27 май 2015, 15:04

Удалось вывести командой из сцены с запиской. К сожалению, выводится также как у Каллака: по буквам и остаётся до конца сцены, т.е. там д.б. команда очищения / закрашивания области экрана. Прошу подсобить с командами.
Код: Выделить всё
1E 12 2F 02 00 01 00


Хочется понять как менять координаты у первой команды и как ускорить вывод у второй (посимвольной).
Siberian GRemlin
(1) Пират с острова Котов
 
Сообщения: 60
Зарегистрирован: 12 апр 2009, 10:24
Откуда: г. Красноярск
Любимая часть Кирандии: каждая
Любимые персонажи Кирандии: Зантия и многие другие
Почему Вы любите Легенду о Кирандии?: я не смог устоять перед волшебным миром

Re: Компилятор EMC

Сообщение Siberian GRemlin » 27 май 2015, 15:35

Есть же ещё сцена с логотипом и выводом строки внизу! Вот что действительно нужно!
Siberian GRemlin
(1) Пират с острова Котов
 
Сообщения: 60
Зарегистрирован: 12 апр 2009, 10:24
Откуда: г. Красноярск
Любимая часть Кирандии: каждая
Любимые персонажи Кирандии: Зантия и многие другие
Почему Вы любите Легенду о Кирандии?: я не смог устоять перед волшебным миром

Re: Компилятор EMC

Сообщение Reflector » 27 май 2015, 16:27

Не хочет отображаться. Вставлял сразу после первой фразы (playVocFile 55) и перед ней (думал, вдруг затирается анимацией). Менял индекс строки — не помогло. То что байт-код реально изменён проверил: сделал повтор произведения речи — работает.
Ещё бы знать за что отвечают остальные параметры. По идеи, там должны быть координаты, цвет и продолжительность отображения.

Остальные параметры везде одинаковые, значит вряд ли там есть продолжительность. А касательно работы... там printTalkText есть в двух скриптах и только в них первой командой идет miscUnk3, может она сабы и включает.

Siberian GRemlin писал(а):Можно образец байт-кода из сцены написания записки Каллаком?

Держи все.
Reflector
(2) Житель Милтонии
 
Сообщения: 163
Зарегистрирован: 11 сен 2010, 16:44
Любимая часть Кирандии: 2
Любимые персонажи Кирандии: Занция
Почему Вы любите Легенду о Кирандии?: Ностальгия...

Re: Компилятор EMC

Сообщение Siberian GRemlin » 27 май 2015, 19:56

Благодарю за образцы. Разобрался с выводом субтитров по типу сцены с запиской Каллака. Эффект посимвольный не убрать. В крайнем случае будет так.

Reflector писал(а):Остальные параметры везде одинаковые, значит вряд ли там есть продолжительность.
Как-то же игра должна узнать где, как и сколько долго выводить надпись, да и не зря там столько параметров. Ведь в сценах текст выводится возле каждого персонажа и разного цвета с разной продолжительностью.
Siberian GRemlin
(1) Пират с острова Котов
 
Сообщения: 60
Зарегистрирован: 12 апр 2009, 10:24
Откуда: г. Красноярск
Любимая часть Кирандии: каждая
Любимые персонажи Кирандии: Зантия и многие другие
Почему Вы любите Легенду о Кирандии?: я не смог устоять перед волшебным миром

Re: Компилятор EMC

Сообщение Reflector » 28 май 2015, 14:23

Siberian GRemlin писал(а):Благодарю за образцы. Разобрался с выводом субтитров по типу сцены с запиской Каллака. Эффект посимвольный не убрать. В крайнем случае будет так.

Я перепробовал довольно много вариантов, но вывести при помощи printTalkText тоже не смог...

Как-то же игра должна узнать где, как и сколько долго выводить надпись, да и не зря там столько параметров. Ведь в сценах текст выводится возле каждого персонажа и разного цвета с разной продолжительностью.

В emc скриптах задается позиция и цвет текста, а длительности нет, ее можно вычислить по длине voc файлов или сделать фиксированной, скорее всего тут то же самое.
Reflector
(2) Житель Милтонии
 
Сообщения: 163
Зарегистрирован: 11 сен 2010, 16:44
Любимая часть Кирандии: 2
Любимые персонажи Кирандии: Занция
Почему Вы любите Легенду о Кирандии?: Ностальгия...

Re: Компилятор EMC

Сообщение Siberian GRemlin » 29 май 2015, 09:18

Имеется такой вопрос. В exe после байт-кода k1ForestSeqDOSCD идут какие-то пять байт. Пытаюсь понять за что они отвечают. Есть предположение, что это неиспользуемые команды этого же байт-кода. Хотелось бы услышать ещё одно мнение.
Код: Выделить всё
0x01, 0x07, 0x01, 0x05, 0x20
Siberian GRemlin
(1) Пират с острова Котов
 
Сообщения: 60
Зарегистрирован: 12 апр 2009, 10:24
Откуда: г. Красноярск
Любимая часть Кирандии: каждая
Любимые персонажи Кирандии: Зантия и многие другие
Почему Вы любите Легенду о Кирандии?: я не смог устоять перед волшебным миром

Re: Компилятор EMC

Сообщение Reflector » 29 май 2015, 10:00

Siberian GRemlin писал(а):
Код: Выделить всё
0x01, 0x07, 0x01, 0x05, 0x20
wsaClose 7
wsaClose 5
endOfScript
Reflector
(2) Житель Милтонии
 
Сообщения: 163
Зарегистрирован: 11 сен 2010, 16:44
Любимая часть Кирандии: 2
Любимые персонажи Кирандии: Занция
Почему Вы любите Легенду о Кирандии?: Ностальгия...

Re: Компилятор EMC

Сообщение Siberian GRemlin » 30 май 2015, 07:10

Эти команды исполняются игрой или нет? Непонятно почему их нет в вашем файле k1ForestSeqDOSCD.seq.
Siberian GRemlin
(1) Пират с острова Котов
 
Сообщения: 60
Зарегистрирован: 12 апр 2009, 10:24
Откуда: г. Красноярск
Любимая часть Кирандии: каждая
Любимые персонажи Кирандии: Зантия и многие другие
Почему Вы любите Легенду о Кирандии?: я не смог устоять перед волшебным миром

Re: Компилятор EMC

Сообщение Reflector » 30 май 2015, 13:33

Я брал массивы из исходников ScummVM, думал разницы никакой нет, но видимо они там посчитали, что зачем добавлять несколько команд закрытия wsa, если движок автоматически их закроет после выполнения скрипта, а break и так прерывает работу, потому endOfScript тоже не нужен. В игре эти команды нужны. Наверно :)
Reflector
(2) Житель Милтонии
 
Сообщения: 163
Зарегистрирован: 11 сен 2010, 16:44
Любимая часть Кирандии: 2
Любимые персонажи Кирандии: Занция
Почему Вы любите Легенду о Кирандии?: Ностальгия...

Re: Компилятор EMC

Сообщение Siberian GRemlin » 04 апр 2016, 12:18

Появился вопрос. Можно ли изменить кол-во книг в первой части требуемых для открытия прохода в замке?
Siberian GRemlin
(1) Пират с острова Котов
 
Сообщения: 60
Зарегистрирован: 12 апр 2009, 10:24
Откуда: г. Красноярск
Любимая часть Кирандии: каждая
Любимые персонажи Кирандии: Зантия и многие другие
Почему Вы любите Легенду о Кирандии?: я не смог устоять перед волшебным миром

Re: Компилятор EMC

Сообщение Reflector » 05 апр 2016, 21:14

Siberian GRemlin писал(а):Появился вопрос. Можно ли изменить кол-во книг в первой части требуемых для открытия прохода в замке?

Держи скрипт библиотеки. Скомпилируешь его(никаких ключей не нужно). Там в самой верхней функции проверяются флаги для всех книг, соответственно добавляя и убирая "!" можно заставить открываться дверь от любого их количества(1-8).
Reflector
(2) Житель Милтонии
 
Сообщения: 163
Зарегистрирован: 11 сен 2010, 16:44
Любимая часть Кирандии: 2
Любимые персонажи Кирандии: Занция
Почему Вы любите Легенду о Кирандии?: Ностальгия...

Re: Компилятор EMC

Сообщение Siberian GRemlin » 06 апр 2016, 21:15

Спасибо! У меня ещё два вопроса.

1. В первой части в EMC где-то указаны персонажи которым принадлежат фразы?
2. Набор камней для алтаря в первой части весь случайно генерируется или он разделён на случайно сгенерированные группы? Там по задумке, как я понял, камни должны отождествлять времена года. Первый, солнечный камень это лето.
Siberian GRemlin
(1) Пират с острова Котов
 
Сообщения: 60
Зарегистрирован: 12 апр 2009, 10:24
Откуда: г. Красноярск
Любимая часть Кирандии: каждая
Любимые персонажи Кирандии: Зантия и многие другие
Почему Вы любите Легенду о Кирандии?: я не смог устоять перед волшебным миром

Re: Компилятор EMC

Сообщение Siberian GRemlin » 06 апр 2016, 21:33

И вдогонку ещё вопрос. Где лежит информация (номер) по звуковым файлам привязанным к фразам? Я решился заказать русскую озвучку на студии, если конечно слишком дорого не получится. Потом может добровольцы возместят часть моих расходов.
Siberian GRemlin
(1) Пират с острова Котов
 
Сообщения: 60
Зарегистрирован: 12 апр 2009, 10:24
Откуда: г. Красноярск
Любимая часть Кирандии: каждая
Любимые персонажи Кирандии: Зантия и многие другие
Почему Вы любите Легенду о Кирандии?: я не смог устоять перед волшебным миром

Re: Компилятор EMC

Сообщение Reflector » 06 апр 2016, 22:55

Siberian GRemlin писал(а):1. В первой части в EMC где-то указаны персонажи которым принадлежат фразы?

Там есть функция CharacterSays, в ней указан персонаж, но есть еще CustomPrintTalkString, в ней просто цвет текста задается. В обоих первым параметром идет номер звукового файла(из локального vrm или из глобального Chapter1.vrm, если номер больше 1000).

2. Набор камней для алтаря в первой части весь случайно генерируется или он разделён на случайно сгенерированные группы? Там по задумке, как я понял, камни должны отождествлять времена года. Первый, солнечный камень это лето.

По камням я уже как-то писал, они задаются в _startup.emc:

Код: Выделить всё
    SetBirthstoneGem(0, Item.Sunstone);
    SetBirthstoneGem(1, Rand(0, 3));    //  Garnet, Amethyst, Aquamarine или Diamond
    SetBirthstoneGem(2, Rand(7, 11));   //  Peridot, Sapphire, Opal, Topaz или Onyx
    SetBirthstoneGem(3, Item.Ruby);
Reflector
(2) Житель Милтонии
 
Сообщения: 163
Зарегистрирован: 11 сен 2010, 16:44
Любимая часть Кирандии: 2
Любимые персонажи Кирандии: Занция
Почему Вы любите Легенду о Кирандии?: Ностальгия...

Re: Компилятор EMC

Сообщение Siberian GRemlin » 06 апр 2016, 23:08

Благодарю! Я так понимаю, мне нужен декомпилятор. Можешь подсобить скомпилированным? Я уже сам напишу разборщик кода, чтобы он строки проиндексировал персонажами и номерами звуковых файлов.
И ещё вопрос. Продолжительность фразы определяется хронометражем звукового файла или указано в коде?
Siberian GRemlin
(1) Пират с острова Котов
 
Сообщения: 60
Зарегистрирован: 12 апр 2009, 10:24
Откуда: г. Красноярск
Любимая часть Кирандии: каждая
Любимые персонажи Кирандии: Зантия и многие другие
Почему Вы любите Легенду о Кирандии?: я не смог устоять перед волшебным миром

Re: Компилятор EMC

Сообщение Reflector » 06 апр 2016, 23:24

Siberian GRemlin писал(а):Благодарю! Я так понимаю, мне нужен декомпилятор. Можешь подсобить скомпилированным? Я уже сам напишу разборщик кода, чтобы он строки проиндексировал персонажами и номерами звуковых файлов.
И ещё вопрос. Продолжительность фразы определяется хронометражем звукового файла или указано в коде?

Декомпилятор тут. Продолжительность фразы задавать можно, но она вроде везде -2, т.е. видимо берется по длине звукового файла. Вероятно в версии без озвучки не так, но декомпилятор ее не поддерживает, там другой набор функций...
Reflector
(2) Житель Милтонии
 
Сообщения: 163
Зарегистрирован: 11 сен 2010, 16:44
Любимая часть Кирандии: 2
Любимые персонажи Кирандии: Занция
Почему Вы любите Легенду о Кирандии?: Ностальгия...

Re: Компилятор EMC

Сообщение Siberian GRemlin » 08 апр 2016, 22:07

Благодарю. В декомпиляторе есть недочёт. Перед открывающей фигурной скобкой не ставится символ возврата каретки, только символ конца строки. А также после главной (самой внешней) закрывающей фигурной скобки.
Siberian GRemlin
(1) Пират с острова Котов
 
Сообщения: 60
Зарегистрирован: 12 апр 2009, 10:24
Откуда: г. Красноярск
Любимая часть Кирандии: каждая
Любимые персонажи Кирандии: Зантия и многие другие
Почему Вы любите Легенду о Кирандии?: я не смог устоять перед волшебным миром

Re: Компилятор EMC

Сообщение Reflector » 08 апр 2016, 23:54

Siberian GRemlin писал(а):Благодарю. В декомпиляторе есть недочёт. Перед открывающей фигурной скобкой не ставится символ возврата каретки, только символ конца строки. А также после главной (самой внешней) закрывающей фигурной скобки.

Исправил, ходя под виндами особой разницы нет :)
Reflector
(2) Житель Милтонии
 
Сообщения: 163
Зарегистрирован: 11 сен 2010, 16:44
Любимая часть Кирандии: 2
Любимые персонажи Кирандии: Занция
Почему Вы любите Легенду о Кирандии?: Ностальгия...

Re: Компилятор EMC

Сообщение Siberian GRemlin » 04 апр 2017, 19:31

Можешь пояснить кусок кода в файле foresta.emc первой части? При каких условиях герой говорит фразу?
Код: Выделить всё
    if (((gScene == 17) || (gScene == 18)) || (gScene == 19))
    {
        if ((!var2 && !QueryGameFlag(191)) && (((GetElapsedSeconds() / 60) & 3) == 3))
        {
            SetGameFlag(191);
            CharacterSays(vrm: 6, "I think I'm getting a rash.", Char.Brandon, chatDuration: -2);
        }
    }
Siberian GRemlin
(1) Пират с острова Котов
 
Сообщения: 60
Зарегистрирован: 12 апр 2009, 10:24
Откуда: г. Красноярск
Любимая часть Кирандии: каждая
Любимые персонажи Кирандии: Зантия и многие другие
Почему Вы любите Легенду о Кирандии?: я не смог устоять перед волшебным миром

Пред.След.

Вернуться в Креатив

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1