AERIE Team

Все об играх серии Baldur's Gate
Текущее время: 22 сен 2017, 14:49

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу 1, 2  След.
Автор Сообщение
 Заголовок сообщения: Исправление опыта присоединяющихся NPC в Baldur's Gate I
СообщениеДобавлено: 25 фев 2008, 12:11 
Не в сети
Зав.патчем
Аватара пользователя

Зарегистрирован: 22 дек 2006, 14:57
Сообщения: 1202
Проблему, когда в русифицированном Baldur's Gate I (в БГТ проблемы нет) все NPC присоединяются к группе с уровнем 1, независимо от уровня главного героя, обозначил когда-то ax.
Тестироватие показало, что ошибка связана с именами самих НПС, - при замене их на английские все работает правильно и уровень НПС соответствует уровню протагониста, согласно NPCLEVEL.2DA.
Для устранения проблемы используйте прилагаемый патч.
Устанавливайте после всех модов, чтобы он учёл все возможные изменения.
Подробности установки - в ридми.
Требуется WeiDU не ниже 204. Если установщик ругается - скачайте отсюда его последнюю версию.

ОБНОВЛЕНИЕ: теперь пач правит именно NPCLEVEL.2DA - никакой замены имён!


Вложения:
Комментарий к файлу: Патч Исправление опыта присоединяющихся персонажей в Baldur's Gate I. Версия 1.3 12.03.08
BG1_J_NPC_LEVEL_v1.3.zip [3.97 КБ]
Скачиваний: 1163

_________________
Baldur's Gate по-русски: Идеальный перевод и Энциклопедия AERIE-wiki


Последний раз редактировалось Vit MG 12 мар 2008, 13:44, всего редактировалось 7 раз(а).
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 фев 2008, 12:59 
Не в сети
Хозяйка
Аватара пользователя

Зарегистрирован: 03 янв 2002, 19:14
Сообщения: 5315
Откуда: Питер
2Vit MG:
Вот как, значит?? Печально. :(
Т.е. правильно я поняла, что после присоединения НПЦ можно патч удалить, имена их станут русскими, а уровень останется правильным?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 фев 2008, 13:05 
Не в сети
Зав.патчем
Аватара пользователя

Зарегистрирован: 22 дек 2006, 14:57
Сообщения: 1202
Alina писал(а):
после присоединения НПЦ можно патч удалить, имена их станут русскими, а уровень останется правильным?
Совершенно верно.
Сам скрипт создания персонажа я не нашел, но он срабатывает при вхождении в локацию. Это просто ошибка разработчиков - привязать код программы к тексту dialog.tlk. Видимо, программа берет имя НПС и ищет его в NPCLEVEL.2DA - если находит, то делает персонажа согласно этой таблице, а если нет - ставит уровень 1.
Скрипт отработал - можно удалить патч и вернуть имя на русском.

_________________
Baldur's Gate по-русски: Идеальный перевод и Энциклопедия AERIE-wiki


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 фев 2008, 13:21 
Не в сети
Хозяйка
Аватара пользователя

Зарегистрирован: 03 янв 2002, 19:14
Сообщения: 5315
Откуда: Питер
2Vit MG:
То есть, насколько я понимаю, совсем уж верным решением было бы найти этот скрипт? Или он, как ты предполагаешь, hard-coded?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 фев 2008, 13:39 
Не в сети
Зав.патчем
Аватара пользователя

Зарегистрирован: 22 дек 2006, 14:57
Сообщения: 1202
Alina писал(а):
совсем уж верным решением было бы найти этот скрипт?
По имени персонажей NearInfinity подходящего скрипта не нашел. По названию 2da-файла - тоже. Думается, ты права, - это нечто встроенное.
Есть еще мысль указать в NPCLEVEL.2DA русские имена. Я не пробовал - даже при успехе, без точных сведений о принципе работы программы можно больше навредить, чем поправить.

_________________
Baldur's Gate по-русски: Идеальный перевод и Энциклопедия AERIE-wiki


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 фев 2008, 18:16 
Не в сети
Аватара пользователя

Зарегистрирован: 15 окт 2005, 21:18
Сообщения: 1367
Можно попробовать добавить русские имена в NPCLEVEL.2DA. Тогда английская версия имен не затрется. Еще вариант для поднятия уровня нпц в случае БГТ - несколько изменить area-скрипты.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 25 фев 2008, 18:37 
Не в сети
Зав.патчем
Аватара пользователя

Зарегистрирован: 22 дек 2006, 14:57
Сообщения: 1202
Спасибо, Accolon, за идею, попробую.
Для БГТ это не нужно - в нём нет данной проблемы.

_________________
Baldur's Gate по-русски: Идеальный перевод и Энциклопедия AERIE-wiki


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 фев 2008, 10:15 
Не в сети
Зав.патчем
Аватара пользователя

Зарегистрирован: 22 дек 2006, 14:57
Сообщения: 1202
Проверил:
записал в override файл NPCLEVEL.2DA,
скопировал все его строки и добавил их в конец файла,
заменил в первом столбце имена на соответствующие русские.

Протестировал: идея Accolon-a работает! Персонажи присоединяются с нужным уровнем и безо всяких английских имен! Так что патч в первом посте не нужен - можно будет убрать. (ОБНОВЛЕНИЕ: старый патч заменен новым, нужным :) )

Осталось сделать другой, который будет проделывать эти операции с имеющейся игрой, подставляя имена из указанных строк или полей Name персонажей. Если кто умеет работать в weidu с 2DA-файлами, прошу помочь.

А пока прикрепляю файл, который нужно разархивировать в папку override игры, но он будет работать только для тех русских имен, у которых имена в файле и игре совпадают.

ОБНОВЛЕНИЕ: Аттач удалён - больше не требуется.

_________________
Baldur's Gate по-русски: Идеальный перевод и Энциклопедия AERIE-wiki


Последний раз редактировалось Vit MG 06 мар 2008, 18:53, всего редактировалось 2 раз(а).

Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 фев 2008, 10:30 
Не в сети
Аватара пользователя

Зарегистрирован: 15 окт 2005, 21:18
Сообщения: 1367
Цитата:
Vit MG: Для БГТ это не нужно - в нём нет данной проблемы.

:) Вечно я с этим торможу... Все мне кажется, что в первый Балдур уже все играют на движке второго.
Цитата:
Vit MG: но он будет работать только для тех русских имен, у которых имена в файле и игре совпадают

Можно увеличить диапазон совместимости, прописав в NPCLEVEL.2DA несколько вариантов перевода имен. Например, не только Имоен, но и Имоэн, Аймоен, Аймоэн и т.д.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 фев 2008, 10:41 
Не в сети
Зав.патчем
Аватара пользователя

Зарегистрирован: 22 дек 2006, 14:57
Сообщения: 1202
2Accolon: Все-таки правильнее было бы дописать NPCLEVEL.2DA средствами WeiDU: во-первых, эта таблица, гипотетически, может быть отредактирована какими-нибудь модами, во-вторых, где брать имена, мы знаем совершенно точно, в третьих, аналогичная проблема возникает во всех языках, меняющих имена, было бы элегантнее сделать патч универсальным.
Жаль, что у меня самого сделать его не получается.

_________________
Baldur's Gate по-русски: Идеальный перевод и Энциклопедия AERIE-wiki


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 фев 2008, 10:46 
Не в сети
Хозяйка
Аватара пользователя

Зарегистрирован: 03 янв 2002, 19:14
Сообщения: 5315
Откуда: Питер
Я, к сожалению, тоже не знаю, как это сделать :(


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 фев 2008, 17:08 
Не в сети
Аватара пользователя

Зарегистрирован: 15 окт 2005, 21:18
Сообщения: 1367
Например, в простеньком моде для Таши ее прописывали так:
Цитата:
APPEND ~npclevel.2da~
~Tashia Tashia Tashia Tashia Tashia Tashia Tashia Tashia Tashia Tashia Tashia Tashia Tashia Tashia Tashia Tashia Tashia Tashia Tashia Tashia Tashia Tashia Tashia Tashia~
UNLESS ~Tashia~

Всего 24 позиции.

В npclevel.2da для БГ1 вообще 6 позиций:
Цитата:
Imoen Imoen2 Imoen4 Imoen4 Imoen6 Imoen6 Imoen6

Получаем:
Цитата:
APPEND ~npclevel.2da~ ~Имоен Imoen2 Imoen4 Imoen4 Imoen6 Imoen6 Imoen6~ UNLESS ~Имоен~
APPEND ~npclevel.2da~ ~Имоэн Imoen2 Imoen4 Imoen4 Imoen6 Imoen6 Imoen6~ UNLESS ~Имоэн~
APPEND ~npclevel.2da~ ~Аймоен Imoen2 Imoen4 Imoen4 Imoen6 Imoen6 Imoen6~ UNLESS ~Аймоен~
APPEND ~npclevel.2da~ ~Аймоэн Imoen2 Imoen4 Imoen4 Imoen6 Imoen6 Imoen6~ UNLESS ~Аймоэн~


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 фев 2008, 18:23 
Не в сети
Зав.патчем
Аватара пользователя

Зарегистрирован: 22 дек 2006, 14:57
Сообщения: 1202
2Accolon: Ну, в принципе, это уже полу-решение.
Осталось присоединить вместо названия ряда к строчке значение из определенной строчки DIALOG.TLK (у меня не получилось, может у тебя получится? - они прописаны в моде сверху).
А если получится программой считать каждый ряд, заменить в нем название и дописать снизу таблицы - будет совсем здорово!

_________________
Baldur's Gate по-русски: Идеальный перевод и Энциклопедия AERIE-wiki


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 28 фев 2008, 06:08 
Не в сети
Аватара пользователя

Зарегистрирован: 15 окт 2005, 21:18
Сообщения: 1367
Цитата:
GET_STRREF value variable
-- The string reference value is looked up in DIALOG.TLK and the (male) string (without any quotes) is stored in the variable.


Можно попробовать такой вариант (ToSC):
Цитата:
GET_STRREF 9491 ~idKivan~
GET_STRREF 270 ~idAlora~
GET_STRREF 9501 ~idMinsc~
GET_STRREF 9492 ~idDynaheir~
GET_STRREF 6252 ~idYeslick~
GET_STRREF 9494 ~idCoran~
GET_STRREF 6131 ~idAjantis~
GET_STRREF 3138 ~idKhalid~
GET_STRREF 9456 ~idJaheira~
GET_STRREF 9496 ~idGarrick~
GET_STRREF 9497 ~idSafana~
GET_STRREF 9498 ~idFaldorn~
GET_STRREF 9499 ~idBranwen~
GET_STRREF 9500 ~idQuayle~
GET_STRREF 268 ~idXan~
GET_STRREF 9502 ~idSkie~
GET_STRREF 6254 ~idEldoth~
GET_STRREF 2424 ~idXzar~
GET_STRREF 2425 ~idMontaron~
GET_STRREF 6253 ~idTiax~
GET_STRREF 9505 ~idKagain~
GET_STRREF 269 ~idSharteel~
GET_STRREF 271 ~idEdwin~
GET_STRREF 6132 ~idViconia~
GET_STRREF 16453 ~idImoen~

APPEND ~npclevel.2da~ ~%idKivan%~+~ **** Kivan4 Kivan4 Kivan6 Kivan6 Kivan6 Kivan6 Kivan6 Kivan6 Kivan6 Kivan6 Kivan6 Kivan6 Kivan6 Kivan6 Kivan6 Kivan6 Kivan6 Kivan6~ UNLESS ~%idKivan%~
APPEND ~npclevel.2da~ ~%idAlora%~+~ **** **** **** Alora6 Alora6 Alora6 Alora6 Alora6 Alora6 Alora6 Alora6 Alora6 Alora6 Alora6 Alora6 Alora6 Alora6 Alora6 Alora6~ UNLESS ~%idAlora%~
APPEND ~npclevel.2da~ ~%idMinsc%~+~ Minsc2 Minsc4 Minsc4 Minsc6 Minsc6 Minsc6 Minsc6 Minsc6 Minsc6 Minsc6 Minsc6 Minsc6 Minsc6 Minsc6 Minsc6 Minsc6 Minsc6 Minsc6 Minsc6~ UNLESS ~%idMinsc%~
APPEND ~npclevel.2da~ ~%idDynaheir%~+~ Dynahe2 Dynahe4 Dynahe4 Dynahe6 Dynahe6 Dynahe6 Dynahe6 Dynahe6 Dynahe6 Dynahe6 Dynahe6 Dynahe6 Dynahe6 Dynahe6 Dynahe6 Dynahe6 Dynahe6 Dynahe6 Dynahe6~ UNLESS ~%idDynaheir%~
APPEND ~npclevel.2da~ ~%idYeslick%~+~ **** **** Yeslic5 Yeslic5 Yeslic5 Yeslic5 Yeslic5 Yeslic5 Yeslic5 Yeslic5 Yeslic5 Yeslic5 Yeslic5 Yeslic5 Yeslic5 Yeslic5 Yeslic5 Yeslic5 Yeslic5~ UNLESS ~%idYeslick%~
APPEND ~npclevel.2da~ ~%idCoran%~+~ **** **** Coran5 Coran5 Coran5 Coran5 Coran5 Coran5 Coran5 Coran5 Coran5 Coran5 Coran5 Coran5 Coran5 Coran5 Coran5 Coran5 Coran5~ UNLESS ~%idCoran%~
APPEND ~npclevel.2da~ ~%idAjantis%~+~ **** Ajanti4 Ajanti4 Ajanti6 Ajanti6 Ajanti6 Ajanti6 Ajanti6 Ajanti6 Ajanti6 Ajanti6 Ajanti6 Ajanti6 Ajanti6 Ajanti6 Ajanti6 Ajanti6 Ajanti6 Ajanti6~ UNLESS ~%idAjantis%~
APPEND ~npclevel.2da~ ~%idKhalid%~+~ Khalid2 Khalid4 Khalid4 Khalid6 Khalid6 Khalid6 Khalid6 Khalid6 Khalid6 Khalid6 Khalid6 Khalid6 Khalid6 Khalid6 Khalid6 Khalid6 Khalid6 Khalid6 Khalid6~ UNLESS ~%idKhalid%~
APPEND ~npclevel.2da~ ~%idJaheira%~+~ Jaheir2 Jaheir4 Jaheir4 Jaheir6 Jaheir6 Jaheir6 Jaheir6 Jaheir6 Jaheir6 Jaheir6 Jaheir6 Jaheir6 Jaheir6 Jaheir6 Jaheir6 Jaheir6 Jaheir6 Jaheir6 Jaheir6~ UNLESS ~%idJaheira%~
APPEND ~npclevel.2da~ ~%idGarrick%~+~ Garric2 Garric4 Garric4 Garric6 Garric6 Garric6 Garric6 Garric6 Garric6 Garric6 Garric6 Garric6 Garric6 Garric6 Garric6 Garric6 Garric6 Garric6 Garric6~ UNLESS ~%idGarrick%~
APPEND ~npclevel.2da~ ~%idSafana%~+~ **** Safana4 Safana4 Safana6 Safana6 Safana6 Safana6 Safana6 Safana6 Safana6 Safana6 Safana6 Safana6 Safana6 Safana6 Safana6 Safana6 Safana6 Safana6~ UNLESS ~%idSafana%~
APPEND ~npclevel.2da~ ~%idFaldorn%~+~ **** **** Faldor5 Faldor5 Faldor5 Faldor5 Faldor5 Faldor5 Faldor5 Faldor5 Faldor5 Faldor5 Faldor5 Faldor5 Faldor5 Faldor5 Faldor5 Faldor5 Faldor5~ UNLESS ~%idFaldorn%~
APPEND ~npclevel.2da~ ~%idBranwen%~+~ **** **** Branwe5 Branwe5 Branwe5 Branwe5 Branwe5 Branwe5 Branwe5 Branwe5 Branwe5 Branwe5 Branwe5 Branwe5 Branwe5 Branwe5 Branwe5 Branwe5 Branwe5~ UNLESS ~%idBranwen%~
APPEND ~npclevel.2da~ ~%idQuayle%~+~ **** Quayle4 Quayle4 Quayle6 Quayle6 Quayle6 Quayle6 Quayle6 Quayle6 Quayle6 Quayle6 Quayle6 Quayle6 Quayle6 Quayle6 Quayle6 Quayle6 Quayle6 Quayle6~ UNLESS ~%idQuayle%~
APPEND ~npclevel.2da~ ~%idXan%~+~ **** Xan4 Xan4 Xan6 Xan6 Xan6 Xan6 Xan6 Xan6 Xan6 Xan6 Xan6 Xan6 Xan6 Xan6 Xan6 Xan6 Xan6 Xan6~ UNLESS ~%idXan%~
APPEND ~npclevel.2da~ ~%idSkie%~+~ **** **** **** Skie6 Skie6 Skie6 Skie6 Skie6 Skie6 Skie6 Skie6 Skie6 Skie6 Skie6 Skie6 Skie6 Skie6 Skie6 Skie6~ UNLESS ~%idSkie%~
APPEND ~npclevel.2da~ ~%idEldoth%~+~ **** **** Eldoth5 Eldoth5 Eldoth5 Eldoth5 Eldoth5 Eldoth5 Eldoth5 Eldoth5 Eldoth5 Eldoth5 Eldoth5 Eldoth5 Eldoth5 Eldoth5 Eldoth5 Eldoth5 Eldoth5~ UNLESS ~%idEldoth%~
APPEND ~npclevel.2da~ ~%idXzar%~+~ Xzar2 Xzar4 Xzar4 Xzar6 Xzar6 Xzar6 Xzar6 Xzar6 Xzar6 Xzar6 Xzar6 Xzar6 Xzar6 Xzar6 Xzar6 Xzar6 Xzar6 Xzar6 Xzar6~ UNLESS ~%idXzar%~
APPEND ~npclevel.2da~ ~%idMontaron%~+~ Montar2 Montar4 Montar4 Montar6 Montar6 Montar6 Montar6 Montar6 Montar6 Montar6 Montar6 Montar6 Montar6 Montar6 Montar6 Montar6 Montar6 Montar6 Montar6~ UNLESS ~%idMontaron%~
APPEND ~npclevel.2da~ ~%idTiax%~+~ **** Tiax4 Tiax4 Tiax6 Tiax6 Tiax6 Tiax6 Tiax6 Tiax6 Tiax6 Tiax6 Tiax6 Tiax6 Tiax6 Tiax6 Tiax6 Tiax6 Tiax6 Tiax6~ UNLESS ~%idTiax%~
APPEND ~npclevel.2da~ ~%idKagain%~+~ Kagain2 Kagain4 Kagain4 Kagain6 Kagain6 Kagain6 Kagain6 Kagain6 Kagain6 Kagain6 Kagain6 Kagain6 Kagain6 Kagain6 Kagain6 Kagain6 Kagain6 Kagain6 Kagain6~ UNLESS ~%idKagain%~
APPEND ~npclevel.2da~ ~%idSharteel%~+~ **** Sharte4 Sharte4 Sharte6 Sharte6 Sharte6 Sharte6 Sharte6 Sharte6 Sharte6 Sharte6 Sharte6 Sharte6 Sharte6 Sharte6 Sharte6 Sharte6 Sharte6 Sharte6~ UNLESS ~%idSharteel%~
APPEND ~npclevel.2da~ ~%idEdwin%~+~ Edwin2 Edwin4 Edwin4 Edwin6 Edwin6 Edwin6 Edwin6 Edwin6 Edwin6 Edwin6 Edwin6 Edwin6 Edwin6 Edwin6 Edwin6 Edwin6 Edwin6 Edwin6 Edwin6~ UNLESS ~%idEdwin%~
APPEND ~npclevel.2da~ ~%idViconia%~+~ **** Viconi4 Viconi4 Viconi6 Viconi6 Viconi6 Viconi6 Viconi6 Viconi6 Viconi6 Viconi6 Viconi6 Viconi6 Viconi6 Viconi6 Viconi6 Viconi6 Viconi6 Viconi6~ UNLESS ~%idViconia%~
APPEND ~npclevel.2da~ ~%idImoen%~+~ Imoen2 Imoen4 Imoen4 Imoen6 Imoen6 Imoen6 Imoen6 Imoen6 Imoen6 Imoen6 Imoen6 Imoen6 Imoen6 Imoen6 Imoen6 Imoen6 Imoen6 Imoen6 Imoen6~ UNLESS ~%idImoen%~

Изяществом, кхм, не отличается, но если для ТоСКа будет пахать, то и ладно. Если не будет пахать, будем дальше думать. :) Если ТоСК не установлен (чистый БГ1), то там npclevel.2da содержит меньшее количество колонок, а значит APPEND-записи должны быть другими (они в чистом БГ1 покороче будут).

p.s. Нашел такой кусок кода:
Код:
//Random treasure patching much later in installation
//Songlist patching at the end of installation

COPY_EXISTING ~XNEWAREA.2DA~ ~override~
  COUNT_2DA_ROWS 15 "rows_cnt"
  FOR(cnt=0; cnt<"%rows_cnt%"; cnt=cnt+1 ) BEGIN
    READ_2DA_ENTRY cnt 1 15  "name"
    PATCH_IF( ("%name%" STRING_COMPARE_CASE "AR3000")=0 ) BEGIN
      SET_2DA_ENTRY cnt 4 15 "90"
      SET_2DA_ENTRY cnt 6 15 "1260"
    END
  END


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 28 фев 2008, 09:21 
Не в сети
Зав.патчем
Аватара пользователя

Зарегистрирован: 22 дек 2006, 14:57
Сообщения: 1202
Accolon писал(а):
Нашел такой кусок кода:
Да, можно посчитать количество столбцов и рядов. У меня получилось даже циклом считать из одной строки все значения по очереди и дописать к NPCLEVEL.2DA новую с новым названием ряда.
Но в получившемся файле почему-то странный заголовок вместо нормального 2DA и это приводит к зависанию игры во время загрузки локации с НПС. Надо разбираться.

Не знаю, работают ли знаки "+" именно для текста в команде APPEND. Я для сложения двух текстовых переменных в одну использовал SPRINT.

Молодец, Accolon, спасибо, думаю, еще чуть-чуть и мы справимся!
Правда, мы жёстко привязаны к оригинальному списку НПС - если моды какого добавят, ему уже не помочь :)
Ну да не всё ж коту масленица.

_________________
Baldur's Gate по-русски: Идеальный перевод и Энциклопедия AERIE-wiki


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 23 ]  На страницу 1, 2  След.

Часовой пояс: UTC + 3 часа


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

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


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB