1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление
    1. Если вы сделали перевод или русификацию игры, то вы можете поделиться своим творением здесь.
    2. О правилах вступления в группу переводчиков можно прочитать здесь.
    3. Русификации следует искать там.

Ultima VII: Serpent Isle - переводим

Тема в разделе "Переводы своими руками", создана пользователем MetalManiac32, 2 июн 2014.

  1. MetalManiac32

    MetalManiac32

    Регистрация:
    23 июл 2013
    Сообщения:
    362
    Ultima VII: Serpent Isle(Змеиный остров)

    Переводчики: Sevaton, Вредный, MetalManiac32

    Цель данного проекта - закончить начатое ещё в 2006 году SleepyEmp'ом и Quester'ом дело - перевод второй игры серии Ultima VII.

    Предлагаем и вам приложить руку к переводу этой эпохальной игры.

    Все подробности на странице перевода на нотабеноиде.

    Страница игры на old-games.ru
     
    Последнее редактирование: 6 июн 2014
    kirik-82, nilegio, Dimouse и ещё 1-му нравится это.
  2.  
  3. Sevaton

    Sevaton

    Переводчик

    Регистрация:
    26 июн 2005
    Сообщения:
    196
    Sleepy Emp, проверь ЛС.
     
  4. Quester

    Quester

    Legacy

    Регистрация:
    25 сен 2003
    Сообщения:
    705
    Друзья-олдгамезники, требуется помощь.
    Когда мы переводили U7BGFOV, нам пришлось править скрипты usecode, чтобы учитывать пол персонажа в тех местах, где это не сделали разработчики, править числительные для монет-вещей, делать таблички на двух языках (русском и руническом), и прочее.
    Как оказалось, скриптов в SI больше, а править их сложнее. Дело в том, что декомпилятор переводит код в некомпилируемый вид, который нужно доводить до верного состояния руками. Если есть желающие помочь, свяжитесь, пожалуйста, со мной.
    Пример кодов прилагается (самый маленький и простой):
    Исходник:
    Код:
    // externs
    extern void Func094A 0x94A (var var0000);
    extern var Func0910 0x910 (var var0000);
    
    void Func0096 shape#(0x96) ()
    {
    	if (!(event == 0x0001)) goto labelFunc0096_003F;
    	if (!gflags[0x01CB]) goto labelFunc0096_000F;
    	abort;
    labelFunc0096_000F:
    	if (!UI_get_item_flag(item, 0x000A)) goto labelFunc0096_0023;
    	Func094A("@Сначала необходимо убрать паруса.@");
    	goto labelFunc0096_003F;
    labelFunc0096_0023:
    	if (!(!Func0910(item))) goto labelFunc0096_0034;
    	Func094A("@Полагаю, трап нельзя спустить в этом месте.@");
    	goto labelFunc0096_003F;
    labelFunc0096_0034:
    	if (!UI_in_gump_mode()) goto labelFunc0096_003F;
    	UI_close_gumps();
    labelFunc0096_003F:
    	return;
    }
    
    Исправленный код:
    Код:
    // externs
    extern void Func094A 0x94A (var var0000);
    extern var Func0910 0x910 (var var0000);
    
    void Func0096 shape#(0x96) ()
    {
    	if (event == 0x0001)
    	{
    		if (gflags[0x01CB])	abort;
    		if (UI_get_item_flag(item, 0x000A))
    		{
    			Func094A("@Сначала необходимо убрать паруса.@");
    		}
    		else if (!Func0910(item))
    		{
    			Func094A("@Полагаю, трап нельзя спустить в этом месте.@");
    		}
    		else if (UI_in_gump_mode())
    		{
    			UI_close_gumps();
    		}
    	}
    	return;
    }
    
     
    Последнее редактирование: 27 авг 2014
    Вредный нравится это.
  5. Вредный

    Вредный

    Регистрация:
    25 дек 2013
    Сообщения:
    1.241
    Чот я надеялся, что в нынешнем составе нам программисты не потребуются...
     
  6. Sleepy Emp Fluffy

    Sleepy Emp

    Legacy

    Регистрация:
    20 май 2004
    Сообщения:
    653
    Сколько бы ни было людей, обойтись без переписывания скриптов не получится никак, если мы хотим выдать качественный результат, на русском языке, а не "Она сказал", "Я продать вам это за 31 монеты".
     
    PuzzyWuzzy и Genesis нравится это.
  7. Вредный

    Вредный

    Регистрация:
    25 дек 2013
    Сообщения:
    1.241
    Во-первых, я знаю. Сталкивался с этим при попытке перевести 6 Ультиму.
    Во-вторых, я говорил не о количестве, а о качестве. Я очень высокого мнения о вас - ведь вы перевели первую часть. :)
     
  8. Quester

    Quester

    Legacy

    Регистрация:
    25 сен 2003
    Сообщения:
    705
    Сложного ничего нет, обычная логика, но объем работы довольно большой. В BG всё было проще, справились автоматическим конвертером.
     
    Вредный нравится это.
  9. Sleepy Emp Fluffy

    Sleepy Emp

    Legacy

    Регистрация:
    20 май 2004
    Сообщения:
    653
    Да, можно справиться и своими силами, как при работе над первой частью, но:

    - количество требующих правки скриптов и их объём здесь значительно выше, чем в Black Gate (лавочники теперь торгуются, добавлен новый тип услуг - обмен валюты)
    - в отличие от скриптов Black Gate, здешние скрипты приходится переписывать почти полностью, в то время как в первой части мы лишь незначительно их модифицировали
    - мы подумываем интегрировать в перевод мод SI Fixes, который правит кучу багов
     
    Kairn, Quester, Genesis и ещё 1-му нравится это.
  10. Quester

    Quester

    Legacy

    Регистрация:
    25 сен 2003
    Сообщения:
    705
    А еще неплохо было бы оптимизировать код, так как часто встречаются вот такие куски:
    Код:
    if (!gflags[0x0048])
    {
    	UI_show_npc_face0(0xFEEA, 0x0000);
    	message("\"Отойдите, я буду крутить лебедку. Вес у нее немалый, и нельзя предугадать, когда она рухнет вам на голову.\"");
    	say();
    	event = 0x0009;
    	Func0855(event);
    	abort;
    }
    else
    {
    	UI_show_npc_face0(0xFEEA, 0x0000);
    	message("\"С радостью, доблестный рыцарь. Приятного вам дня, и да обагрится ваш меч гоблинской кровью.\"");
    	say();
    	event = 0x0009;
    	Func0855(event);
    	abort;
    }
    
    Вполне сокращаются до:
    Код:
    UI_show_npc_face0(0xFEEA, 0x0000);
    if (!gflags[0x0048])
    {
    	message("\"Отойдите, я буду крутить лебедку. Вес у нее немалый, и нельзя предугадать, когда она рухнет вам на голову.\"");
    }
    else
    {
    	message("\"С радостью, доблестный рыцарь. Приятного вам дня, и да обагрится ваш меч гоблинской кровью.\"");
    }
    say();
    event = 0x0009;
    Func0855(event);
    abort;
    
     
    MetalManiac32, Sevaton и Sleepy Emp нравится это.
  11. Sleepy Emp Fluffy

    Sleepy Emp

    Legacy

    Регистрация:
    20 май 2004
    Сообщения:
    653
    Обновление шрифтов.

    На тот случай, если у вас шрифты отображаются плохо, напоминаю. Этот файл класть в Serpent Isle/STATIC, этот файл класть в Serpent Isle/patch
     
    MetalManiac32, Sevaton и Вредный нравится это.
  12. Quester

    Quester

    Legacy

    Регистрация:
    25 сен 2003
    Сообщения:
    705
    Для переводчиков.
    В настоящий момент разбираю и переделываю скрипты менял и торговцев. Их не нужно переводить.
     
    MetalManiac32, Sevaton и Вредный нравится это.
  13. MetalManiac32

    MetalManiac32

    Регистрация:
    23 июл 2013
    Сообщения:
    362
    С виду, дело несложное, но я не программист, поэтому, даже не знаю...
    Вот, последнего из показанных кусков типа у вас очень много?
     
  14. Quester

    Quester

    Legacy

    Регистрация:
    25 сен 2003
    Сообщения:
    705
    В ходе непродолжительных боёв сдались падежные окончания для вещей и денег. Теперь можно будет обменять "1 золотую монету", или проиграть "5 золотых монет".
    К сожалению, скрипт с падежами страдает убогостью, но так как компилятор его все равно испоганит, черт с ним.
    Не забывайте помечать те скрипты, где неопределенное количество вещей.
    P.S. к сожалению, поправить падежи при клике мышкой на стопке вещей не получится, это, так сказать "хардкодед". Максимум, что предлагает движок в этом случае - одна или много вещей.

    ---------- Сообщение добавлено в 21:55 ---------- Предыдущее сообщение размещено в 21:50 ----------

    Не хочется грязно выражаться, но при виде объемов, есть только одна фраза: "до уср..чки". Практически ручное восстановление декомпилированного кода, который нужно привести в Си подобный вид, это очень много времени. Язык скрипта простой, поэтому вложений условий, циклов, повторов - нереальное. То, что я привел - просто демонстрация для понимания. Средний скрипт - 500-700 строк.
     
    Kairn, Вредный и MetalManiac32 нравится это.
  15. MetalManiac32

    MetalManiac32

    Регистрация:
    23 июл 2013
    Сообщения:
    362
    Quester, могу я взять один из таких кусков на попрактиковаться, авось получится поправить?
     
    Вредный нравится это.
  16. Quester

    Quester

    Legacy

    Регистрация:
    25 сен 2003
    Сообщения:
    705
    Если есть желание:
    http://pastebin.ru/u25wL2JA
    Пока нужно привести в божский вид. Скрипт простой, почти линейный. Затем добавим проверку на женский пол Аватара.
     
    Вредный и MetalManiac32 нравится это.
  17. MetalManiac32

    MetalManiac32

    Регистрация:
    23 июл 2013
    Сообщения:
    362
    Блин, чувствую себя не на своём месте. %) Но вроде уяснил, что есть мусор и где вилкой чистить.
     
    Вредный нравится это.
  18. Вредный

    Вредный

    Регистрация:
    25 дек 2013
    Сообщения:
    1.241
    Кстати, я тут поплакаться хотел на один досадный баг...
    Когда я нашел и надел Шлем Света, у меня при ходьбе стал трястись экран, как при землетрясении. Снимешь-оденешь - все нормально. Но мне по долгу службы приходится грузить ранние сейвы, там снять-надеть нечего, а проблема остается.
     
  19. Sleepy Emp Fluffy

    Sleepy Emp

    Legacy

    Регистрация:
    20 май 2004
    Сообщения:
    653
    Сейчас нашёл шлем, у меня всё нормально.

    Какая версия Exult стоит?
     
  20. Вредный

    Вредный

    Регистрация:
    25 дек 2013
    Сообщения:
    1.241
    Ну какая у нас на сайте выложена в файлах к игре... 1.4.05, кажысь.
    Найти недостаточно, обычно после загрузки сохранения такое, при переходах по локациям...
     
  21. Sleepy Emp Fluffy

    Sleepy Emp

    Legacy

    Регистрация:
    20 май 2004
    Сообщения:
    653
    Советую установить новую версию с сайта Exult, возможно, это исправит ситуацию.
     
  22. Вредный

    Вредный

    Регистрация:
    25 дек 2013
    Сообщения:
    1.241
    Обогимаи, штоянаделал...
    Поставил последнюю версию. Сейвы потерял, в окно фиксированного размера перестало влезать содержимое...
    Фунафиг!
     
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление