Тех. Помощь.

Копошимся во внутренностях игр и даем выход своему креативу...
Аватара пользователя
Austin
Переводчик
Переводчик
Сообщения: 1882
Зарегистрирован: 19 май 2010, 19:50

Re: Тех. Помощь.

Сообщение Austin »

Я в любом случае благодарен уже, без тебя я бы даже досюда не добрался! Теперь хотя бы нет дублирования реплик, и функция, пусть и с глюками еще, но работает! Ковыряюсь пока - если смогу исправить сам, отпишусь тут!
tipun писал(а):
15 июн 2020, 21:15
И еще вопрос, EET_end используется? Или чистая БГ2ЕЕ?
Сейчас тестирую именно на EET_end. На обычной БГ2EE все работает без проблем, на EET_end тоже всё (кроме Духа Судьбы) нормально в той версии, где нет TRANSITION.
То есть проблемы появляются только на EET_end и только после добавления TRANSITION.
tipun писал(а):
15 июн 2020, 21:15
Проверь, какие файлы в pdialog.2da добавляются. В тп2. Если не разберешься, завтра гляну.

По Кивану, например, в pdialog.2da добавляется вот это:
APPEND ~pdialog.2da~
~7XKIVA 7XKIVAP 7XKIVAJ 7XKIVAD 7XKIV25P 7XKIV25J 7XKIV25D 7XKIVA25~
UNLESS ~7XKIVA~
https://arcanecoast.ru/mods - Список модов ArcaneCoast

Аватара пользователя
tipun
Переводчик
Переводчик
Сообщения: 1040
Зарегистрирован: 27 май 2016, 06:57

Re: Тех. Помощь.

Сообщение tipun »

Похлже, чтобы разобраться, все же придется установить мод. Но завтра еще раз без установки гляну. Просто мне нужно будет новую игру ставить, чтобы с главами не попутаться. Т.к. у меня ТоБ сейчас 27-29 главы. Но постараюсь что-нибудь найти для решения данной проблемы.
Изображение
Жираф большой - ему видней...

Аватара пользователя
Austin
Переводчик
Переводчик
Сообщения: 1882
Зарегистрирован: 19 май 2010, 19:50

Re: Тех. Помощь.

Сообщение Austin »

Извини, что напряг так (( Если не получится - ничего страшного.

Насчет скриптов - я посмотрел в Near Infinity файл 7XCRE73.cre Кивана, который создается модом в ToB. В нем указан script name 7XKIVA.bcs и такой же override script (но тот серый, неактивный, и в папке override такого нет). И есть default script SHOUTDLG.bcs.
Если в TRANSITION указать override_ToB = "7XKIVA", установщик выдает ошибку
WARNING EET_NPC_TRANSITION: "7XKIVA.bcs" doesn't exist in game
А если указать override_ToB = "Kivan", то мод устанавливается и в партию Киван вступает, даже диалог нужный говорит после вызова, но потом начинается глюк с "исчезновением" после увольнения.
https://arcanecoast.ru/mods - Список модов ArcaneCoast

Аватара пользователя
tipun
Переводчик
Переводчик
Сообщения: 1040
Зарегистрирован: 27 май 2016, 06:57

Re: Тех. Помощь.

Сообщение tipun »

Понятно. Просто он не доделан. Или просто не стали делать для ТоБ. SHOUTDLG - это стандартный скрипт начала диалога. Т.е. для ТоБ Киван скорее всего он просто не сделан.
Со скриптами сейчас что-нибудь придумаю.
Изображение
Жираф большой - ему видней...

Аватара пользователя
tipun
Переводчик
Переводчик
Сообщения: 1040
Зарегистрирован: 27 май 2016, 06:57

Re: Тех. Помощь.

Сообщение tipun »

Код: Выделить всё

<<<<<<<<7XKIVA.baf
>>>>>>>>
COMPILE ~7XKIVA.baf~
Перед TRANSITION

Это чисто для того, чтобы мод установился. Но у него все равно нет ни диалогов, ни квестов.
Изображение
Жираф большой - ему видней...

Аватара пользователя
tipun
Переводчик
Переводчик
Сообщения: 1040
Зарегистрирован: 27 май 2016, 06:57

Re: Тех. Помощь.

Сообщение tipun »

В общем, лучше делать так:

Код: Выделить всё

ACTION_IF FILE_EXISTS ~%MOD_FOLDER%/%nujnaja_papka%/my_file.baf~ BEGIN
	COMPILE ~%MOD_FOLDER%/%nujnaja_papka%/my_file.baf~ END
ELSE BEGIN
<<<<<<<<my_file.baf
>>>>>>>>
COMPILE ~my_file.baf~
END
Изображение
Жираф большой - ему видней...

Аватара пользователя
Austin
Переводчик
Переводчик
Сообщения: 1882
Зарегистрирован: 19 май 2010, 19:50

Re: Тех. Помощь.

Сообщение Austin »

Попробую, спасибо! Странно, почему без использования TRANSITION проблем не возникает (кроме Духа Судьбы)...

ToB-части, как я помню, автор действительно начал делать в поздний период и мог до конца не доделать. А с 2014 года перестал поддерживать мод. Диалоги в ToB у всех персонажей есть, но немного.
Основные диалоги идут в SoA у всех героев и вот там объем огромный.
https://arcanecoast.ru/mods - Список модов ArcaneCoast

Аватара пользователя
tipun
Переводчик
Переводчик
Сообщения: 1040
Зарегистрирован: 27 май 2016, 06:57

Re: Тех. Помощь.

Сообщение tipun »

my_ffile -> имя скрипта.

А проблемы возникают по тому, что TRANSITION нужны указанные скрипты. Игре они не нужны, она просто игнорирует отсутствующие ресурсы, особенно ЕЕ, а вот функции они нужны.
Изображение
Жираф большой - ему видней...

Аватара пользователя
Austin
Переводчик
Переводчик
Сообщения: 1882
Зарегистрирован: 19 май 2010, 19:50

Re: Тех. Помощь.

Сообщение Austin »

tipun писал(а):
15 июн 2020, 22:46
my_ffile -> имя скрипта.

А проблем не возникает по тому, что TRANSITION нужны указанные скрипты. Игре они не нужны, она просто игнорирует отсутствующие ресурсы, особенно ЕЕ, а вот функции они нужны.
Ясно! Пробую пока таким способом сделать! Потом отпишусь, что получится.
Спасибо еще раз! :)
https://arcanecoast.ru/mods - Список модов ArcaneCoast

Аватара пользователя
tipun
Переводчик
Переводчик
Сообщения: 1040
Зарегистрирован: 27 май 2016, 06:57

Re: Тех. Помощь.

Сообщение tipun »

Не за что))
Изображение
Жираф большой - ему видней...

Аватара пользователя
Austin
Переводчик
Переводчик
Сообщения: 1882
Зарегистрирован: 19 май 2010, 19:50

Re: Тех. Помощь.

Сообщение Austin »

Всё, переписал коды этих трех героев, добавил новый фрагмент - и всё заработало как нужно (есть диалоги после призыва и после увольнения из партии и обратно)! Спасибо!!! Чудеса! :)
Пройдусь теперь по остальным героям, принцип я понял, главное! С Deekin та же схема сработала - для него тоже не было скрипта, лишь d-файлы.

Единственное, что меня смущает - это что я пока добавляю TRANSITION только в ToB-компонент. А ведь ее, наверное, лучше в SoA-часть перенести - чтобы и при переходе от BG1 к BG2 эти герои тоже переносились со всеми уровнями и т.д. Игрок ведь может и не поставить ToB-часть, но не наоборот (вторая без первой не установится). Или надо и туда, и туда?

+ еще пишут, что для тех героев, которые переходят из БГ1 в БГ2, надо добавить еще триггер !BeenInParty("%DV%"):
If your BG2 NPC is meant to have BG1->BG2 transition than you should add additional !BeenInParty("%DV%") trigger (where %DV% is death variable of your CRE) in the code that spawns new version of CRE file into BG2 area. This way such block won't trigger if the NPC is valid for migration from BG1 to BG2.

For example:
//this code will spawn new version of CRE if the transition didn't occur and CRE was not left dead in BG1
IF
Global("MinscImport","MYAREA",0)
!BeenInParty("Minsc") //NPC was not in party at any point during BG1/SoD (otherwise he would be valid for trnsition)
GlobalLT("chapter","GLOBAL",20) //don't spawn him during ToB
!Dead("Minsc") //NPC has not been killed during BG1
THEN
RESPONSE #100
CreateCreature("Minsc7",[4029.2759],6)
ActionOverride("Minsc",MakeGlobalOverride()) //just to be sure that there is no more than 1 entry in GAM file
SetGlobal("MinscImport","MYAREA",1)
Continue()
END
Но в этом я пока не разобрался вообще ( Тем более что переменные смерти разные в игре и в моде.
https://arcanecoast.ru/mods - Список модов ArcaneCoast

Аватара пользователя
tipun
Переводчик
Переводчик
Сообщения: 1040
Зарегистрирован: 27 май 2016, 06:57

Re: Тех. Помощь.

Сообщение tipun »

С этим модом перенести из БГ1 в БГ2 не получится. Править надо. Теоретически можно использовать НПС из БГ1 вместо модовских, но это кучу всего переделывать и тогда будет не нужно то, что уже сделал. Вот если б был action SetScriptName, как в ИВД2, было бы немного проще.
Изображение
Жираф большой - ему видней...

Аватара пользователя
Austin
Переводчик
Переводчик
Сообщения: 1882
Зарегистрирован: 19 май 2010, 19:50

Re: Тех. Помощь.

Сообщение Austin »

А, ну и ладно, меньше возни будет тогда :)
Сейчас разбираюсь с Алорой - у нее в cre-файле прописан скрипт 7xALORA (которого нет и приходится его создавать по вчерашней схеме), а в папке мода есть еще скрипт 7XALOR, где прописано взаимодействие с ребенком Сернда (она вмешивается в этот квест в SoA). Надо ли его указывать в поле override_SoA = "7XALOR" или везде "7XALORA" указать, пока не пойму.
https://arcanecoast.ru/mods - Список модов ArcaneCoast

Аватара пользователя
tipun
Переводчик
Переводчик
Сообщения: 1040
Зарегистрирован: 27 май 2016, 06:57

Re: Тех. Помощь.

Сообщение tipun »

Austin писал(а):
16 июн 2020, 12:08
А, ну и ладно, меньше возни будет тогда :)
Сейчас разбираюсь с Алорой - у нее в cre-файле прописан скрипт 7xALORA (которого нет и приходится его создавать по вчерашней схеме), а в папке мода есть еще скрипт 7XALOR, где прописано взаимодействие с ребенком Сернда (она вмешивается в этот квест в SoA). Надо ли его указывать в поле override_SoA = "7XALOR" или везде "7XALORA" указать, пока не пойму.
Я посмотрел tp2, для ToB - 7XAlor25 и его создать надо. А вот 7XALOR прописывается в cre файл при установке мода вместо 7xALORA.
Изображение
Жираф большой - ему видней...

Аватара пользователя
Austin
Переводчик
Переводчик
Сообщения: 1882
Зарегистрирован: 19 май 2010, 19:50

Re: Тех. Помощь.

Сообщение Austin »

tipun писал(а):
16 июн 2020, 12:33
Я посмотрел tp2, для ToB - 7XAlor25 и его создать надо. А вот 7XALOR прописывается в cre файл при установке мода вместо 7xALORA.
Это команда WRITE_EVALUATED_ASCII SCRIPT_OVERRIDE делает? Блин, вот намудрили-то! Переделаю Алору и буду теперь проверять, нет ли такой команды случайно еще у кого-то.
Спасибо!

А по скриптам - получается, везде надо смотреть последнее, что дописывается в данной команде с цифрами 25, и это и будет скрипт для ToB?
APPEND ~pdialog.2da~
~7XAlora 7XAloraP 7XAloraJ 7XAloraD 7XAlo25P 7XAlo25J 7XAlo25D 7XAlor25~

И тогда у Кивана тоже надо не 7XKIVA для ToB указывать, а 7XKIVA25 и создавать его, если нет? При таком тексте:
APPEND ~pdialog.2da~
~7XKIVA 7XKIVAP 7XKIVAJ 7XKIVAD 7XKIV25P 7XKIV25J 7XKIV25D 7XKIVA25~
UNLESS ~7XKIVA~

APPEND ~interdia.2da~
~7XKIVA 7XKIVAB BKIVA25~
UNLESS ~7XKIVA~
https://arcanecoast.ru/mods - Список модов ArcaneCoast

Аватара пользователя
tipun
Переводчик
Переводчик
Сообщения: 1040
Зарегистрирован: 27 май 2016, 06:57

Re: Тех. Помощь.

Сообщение tipun »

Austin писал(а):
16 июн 2020, 18:10
tipun писал(а):
16 июн 2020, 12:33
Я посмотрел tp2, для ToB - 7XAlor25 и его создать надо. А вот 7XALOR прописывается в cre файл при установке мода вместо 7xALORA.
Это команда WRITE_EVALUATED_ASCII SCRIPT_OVERRIDE делает? Блин, вот намудрили-то! Переделаю Алору и буду теперь проверять, нет ли такой команды случайно еще у кого-то.
Спасибо!

А по скриптам - получается, везде надо смотреть последнее, что дописывается в данной команде с цифрами 25, и это и будет скрипт для ToB?
APPEND ~pdialog.2da~
~7XAlora 7XAloraP 7XAloraJ 7XAloraD 7XAlo25P 7XAlo25J 7XAlo25D 7XAlor25~

И тогда у Кивана тоже надо не 7XKIVA для ToB указывать, а 7XKIVA25 и создавать его, если нет? При таком тексте:
APPEND ~pdialog.2da~
~7XKIVA 7XKIVAP 7XKIVAJ 7XKIVAD 7XKIV25P 7XKIV25J 7XKIV25D 7XKIVA25~
UNLESS ~7XKIVA~

APPEND ~interdia.2da~
~7XKIVA 7XKIVAB BKIVA25~
UNLESS ~7XKIVA~
Да, именно WRITE_EVALUATED_ASCII SCRIPT_OVERRIDE.
Да, последняя запись - override script для ToB. Но есть проблема с этим модом, я теперь догнал, сразу не подумал. Т.к. в нем используются одни и те же cre файлы и для СоА и для ТоБ, то ТоБовский скрипт надо устанавливать вручную. Например в скрипт каждого персонажа добавить, что если глава > последней главы СоА, то ChangeAIScript("script_ToB",OVERRIDE). Вроде как при переходе из СоА, скрипт встанент автоматом, а вот при вызове - может не встать.
Изображение
Жираф большой - ему видней...

Аватара пользователя
tipun
Переводчик
Переводчик
Сообщения: 1040
Зарегистрирован: 27 май 2016, 06:57

Re: Тех. Помощь.

Сообщение tipun »

Но еще в tp2 в раздел ALWAYS добавить:

Код: Выделить всё

OUTER_SET bg2_chapter = (GAME_IS ~eet~) ? 12 : 0
OUTER_FOR (i = 1; i < 11; ++i) BEGIN
  OUTER_SET bg2_chapter += 1
  OUTER_TEXT_SPRINT name_source ~bg2_chapter_%i%~
  OUTER_SET EVAL ~%name_source%~ = bg2_chapter
END
И в верх каждого СоА скрипта добавить:

Код: Выделить всё

IF
	GlobalGT("Chapter","GLOBAL",%bg2_chapter_7%)
THEN
	RESPONSE #100
		ChangeAIScript("override_ToB",OVERRIDE)
END
Где override_ToB - override скрипт персонажа для ТоБ.
Изображение
Жираф большой - ему видней...

Аватара пользователя
Austin
Переводчик
Переводчик
Сообщения: 1882
Зарегистрирован: 19 май 2010, 19:50

Re: Тех. Помощь.

Сообщение Austin »

В верх каждого СоА скрипта? А если его нет? Допустим, для Алоры есть 7XALOR, а для Фалдорн нет скриптов, только .d и .cre + то, что теперь создается вручную... Сорри за тупые вопросы, просто я явно взялся за задачу не по зубам (((

Код Алоры переписал, теперь он выглядит так - вроде всё учёл:
BEGIN @1730 DESIGNATED 150
GROUP ~ToB NPCs~
REQUIRE_PREDICATE GAME_IS ~tob bgt bg2ee eet~ ~ToB Is Required to Install This Component~

ACTION_IF NOT FILE_EXISTS_IN_GAME ~ALORA25.CRE~ BEGIN

APPEND ~STATE.IDS~ ~0x80101FEF CD_STATE_NOTVALID~
UNLESS ~CD_STATE_NOTVALID~
COMPILE ~BG1NPCSoA/MISC/AloraTOB.d~

// Fate Spirit Alora

ACTION_IF (GAME_IS ~eet~) BEGIN
INCLUDE ~EET/other/EET_functions.tph~ // functions from EET mod

// remove duplication in the call dialog with the option of the original EET
<<<<<<<< ALORA_fix.baf
IF
!Global("AloraSummoned","GLOBAL",2)
THEN
RESPONSE #100
SetGlobal("AloraSummoned","GLOBAL",2)
Continue()
END
>>>>>>>>
EXTEND_BOTTOM ~AR4000.bcs~ ~ALORA_fix.baf~

//// Create a missing script file to avoid installation errors and not to use a script from the BG1
ACTION_IF FILE_EXISTS ~%MOD_FOLDER%/MISC/7XALORA.baf~ BEGIN
COMPILE ~%MOD_FOLDER%/MISC/7XALORA.baf~ END
ELSE BEGIN
<<<<<<<<7XALORA.baf
>>>>>>>>
COMPILE ~7XALORA.baf~
END

ACTION_IF FILE_EXISTS ~%MOD_FOLDER%/MISC/7XAlor25.baf~ BEGIN
COMPILE ~%MOD_FOLDER%/MISC/7XAlor25.baf~ END
ELSE BEGIN
<<<<<<<<7XAlor25.baf
>>>>>>>>
COMPILE ~7XAlor25.baf~
END

LAF ~EET_NPC_TRANSITION~
INT_VAR
type = 3 // NPC is summon-able if met before
default_ToB = 1
STR_VAR
dv = "7XALORA" // death variable in
override_BG1 = "ALORA"
override_SoA = "7XALOR" // override script (SoA)
override_ToB = "7XAlor25" // override script (ToB)
cre_ToB = "7XCRE69"
dialog_ToB = "7XALORA" // joining dialogue for ToB
traFile = EVAL "BG1NPCSoA/tra/%LANGUAGE%/AloraTOB.tra"
string = "@0"
stringPosDV = "Anomen"
END
END
tipun писал(а):
16 июн 2020, 18:34
Но еще в tp2 в раздел ALWAYS добавить:
...
Я уже добавил вот в таком виде - вроде то же самое:
ACTION_IF (GAME_IS ~eet~) BEGIN
OUTER_SET bg2_chapter = 12
END ELSE BEGIN
OUTER_SET bg2_chapter = 0
END
OUTER_FOR (i=1; i<=10; i=i+1) BEGIN
OUTER_SET bg2_chapter = bg2_chapter + 1
OUTER_SPRINT name_source ~bg2_chapter_%i%~
OUTER_SET EVAL ~%name_source%~ = bg2_chapter
END
https://arcanecoast.ru/mods - Список модов ArcaneCoast

Аватара пользователя
tipun
Переводчик
Переводчик
Сообщения: 1040
Зарегистрирован: 27 май 2016, 06:57

Re: Тех. Помощь.

Сообщение tipun »

Если СоА скрипта нет, то посмотри в cre-файле и используй это имя. Если не прописано, пропиши свое и используй его.

Теперь насчет того, если сам скрипт в игре отсутствует, но ему нужно добавить смену скрипта. Вот эту часть:

Код: Выделить всё

//// Create a missing script file to avoid installation errors and not to use a script from the BG1
ACTION_IF FILE_EXISTS ~%MOD_FOLDER%/MISC/7XALORA.baf~ BEGIN
COMPILE ~%MOD_FOLDER%/MISC/7XALORA.baf~ END
ELSE BEGIN
<<<<<<<<7XALORA.baf
>>>>>>>>
COMPILE ~7XALORA.baf~
END
надо заменить вот на это:

Код: Выделить всё

<<<<<<<< 7xalora_fix_tob_script.baf
IF
	GlobalGT("Chapter","GLOBAL",%bg2_chapter_7%)
THEN
	RESPONSE #100
		ChangeAIScript("7XAlor25",OVERRIDE)
END
>>>>>>>>
ACTION_IF FILE_EXISTS ~%MOD_FOLDER%/MISC/7XALORA.baf~ BEGIN
	COMPILE ~%MOD_FOLDER%/MISC/7XALORA.baf~
	EXTEND_TOP ~7XALORA.bcs~ ~7xalora_fix_tob_script.baf~ EVALUATE_BUFFER
END ELSE BEGIN
	COPY ~7xalora_fix_tob_script.baf~ ~override/7XALORA.bcs~ EVALUATE_BUFFER
		COMPILE_BAF_TO_BCS
END
Тут если скрипт есть, weidu его скомпилит и сверху добавит блок смены скрипта. Если его нет, то создаст скрипт, содержащий блок смены скрипта.
И так для всех персонажей.
Изображение
Жираф большой - ему видней...

Аватара пользователя
Austin
Переводчик
Переводчик
Сообщения: 1882
Зарегистрирован: 19 май 2010, 19:50

Re: Тех. Помощь.

Сообщение Austin »

То есть если я пропишу в tp2 такой код всем персонажам, то в каждый скрипт вручную не надо будет добавлять ChangeAIScript("override_ToB",OVERRIDE).
Тогда отлично было бы )

Кстати, я нашел ошибку (как я понял) с tp2 - вот тут:
// Coran
COPY_EXISTING ~7XCRE63.cre~ ~override~
WRITE_EVALUATED_ASCII SCRIPT_OVERRIDE ~7XCORA~ #8

Такого скрипта, как 7XCORA, в моде нет - видимо, имелся в виду 7XCORAN, основной скрипт из Теней. Исправил пока так.
https://arcanecoast.ru/mods - Список модов ArcaneCoast

Ответить