Too many files were open simultaneously so the OS rejected to create a new...
Many of Xardas' dialgues are missing. The file NONE_100_XARDAS=Xardas has been generated, but many of his speeches are missing.
I have attached a picture with all the files regarding him, so you could see their size. With the previous plugin, Xardas' file size was 121KB, but now it's got only 3.8kb. Something wrong is going on. And he might not be the only case. He was the only one that I knew it had the most speeches so I checked.
Things have definitely improved. but apparently there are still missing dialogues Sorry, again,I know.
I went on Nergal's file, and found ou that some l dialogues are missing. I will upload the generated file, and a picture with all his dialogues.
Things have definitely improved. but apparently there are still missing dialogues Sorry, again,I know.
I went on Nergal's file, and found ou that some l dialogues are missing. I will upload the generated file, and a picture with all his dialogues.
These dialogs are located in the NONE_117_NERGAL_HALLO_EX1 function. There is no explicit call to this function in scripts. These dialogues probably never appear in the game.
These dialogs are located in the NONE_117_NERGAL_HALLO_EX1 function. There is no explicit call to this function in scripts. These dialogues probably never appear in the game.
In my opinion, there is a dialogue, because this NPC can appear on the path of the necromancer - on the task of the Necronomicon.
instance NONE_117_Nergal_Hallo(C_INFO){
npc = None_117_Nergal;
condition = NONE_117_Nergal_Hallo_Сondition;
information = NONE_117_Nergal_Hallo_Info;
permanent = FALSE;
important = TRUE;
};
func int NONE_117_Nergal_Hallo_Сondition()
{
if (xardasritualfail == TRUE) {
return TRUE;
};
};
func void NONE_117_Nergal_Hallo_Info()
{
self.name = "Душа Нергала";
B_GivePlayerXP(500);
rx_playeffect("spellFX_Fear", self);
Snd_Play("DEM_Warn");
AI_Output(self, other, "NONE_117_Nergal_Hallo_01_01"); //(мертвым голосом) СМЕРТНЫЙ... Значит, именно тебя я должен поблагодарить.
AI_Output(other, self, "NONE_117_Nergal_Hallo_01_02"); //За что?
AI_Output(self, other, "NONE_117_Nergal_Hallo_01_03"); //За то, что ты избавил меня от необходимости отвечать на вопросы этого никчемного старикашки-мага.
AI_Output(self, other, "NONE_117_Nergal_Hallo_01_04"); //И думаю, что в качестве награды за твою услугу... я позволю тебе умереть последним!
AI_Output(other, self, "NONE_117_Nergal_Hallo_01_06"); //Ну, раз ты собрался убить меня, - может, тогда перед этим ответишь мне всего на один вопрос?
AI_Output(self, other, "NONE_117_Nergal_Hallo_01_07"); //Хочешь задать вопрос? Ну что же, попробуй, задай его.
AI_Output(other, self, "NONE_117_Nergal_Hallo_01_08"); //Ответь мне, где я смогу найти Некрономикон?
AI_Output(self, other, "NONE_117_Nergal_Hallo_01_09"); //Некрономикон? Так меня призвали сюда, чтобы узнать, где я спрятал этот древний артефакт?
AI_Output(other, self, "NONE_117_Nergal_Hallo_01_10"); //А разве для тебя сейчас это имеет большое значение?
AI_Output(self, other, "NONE_117_Nergal_Hallo_01_11"); //Нет, абсолютно никакого... Причины могут быть подчас разными, однако итог будет всегда только один.
AI_Output(other, self, "NONE_117_Nergal_Hallo_01_12"); //Ладно, хватит болтать! Просто ответь на мой вопрос.
AI_Output(self, other, "NONE_117_Nergal_Hallo_01_13"); //А ты дерзок, как я погляжу... Но мне это нравится!
AI_Output(self, other, "NONE_117_Nergal_Hallo_01_14"); //Хорошо. Я отвечу на твой вопрос, поскольку ты уже навряд ли сможешь воспользоваться моим ответом.
AI_Output(self, other, "NONE_117_Nergal_Hallo_01_15"); //Я спрятал эту реликвию там, куда ни одному смертному вроде тебя никогда не попасть...
AI_Output(self, other, "NONE_117_Nergal_Hallo_01_17"); //На вершине темной башни Ашерона!
AI_Output(other, self, "NONE_117_Nergal_Hallo_01_18"); //Башня Ашерона? А где она находится?
AI_Output(self, other, "NONE_117_Nergal_Hallo_01_19"); //Я уже точно не помню...(ностальгически) Ведь это было так давно...
AI_Output(other, self, "NONE_117_Nergal_Hallo_01_20"); //Выходит, что надо только отыскать эту башню, и, можно считать, что этот артефакт уже у меня в руках.
AI_Output(self, other, "NONE_117_Nergal_Hallo_01_21"); //Не все так просто, смертный... Мое сокровище охраняет бессмертное создание Тьмы, которое тебе навряд ли удастся одолеть.
AI_Output(self, other, "NONE_117_Nergal_Hallo_01_22"); //Уверен, что многие пытались это сделать. Но я также уверен в том, что все они сейчас мертвы.
AI_Output(other, self, "NONE_117_Nergal_Hallo_01_23"); //И что, нет ни одного способа уничтожить это создание?
AI_Output(self, other, "NONE_117_Nergal_Hallo_01_24"); //Почему же, есть один. Но тебе я его не скажу... Можешь даже не просить.
AI_Output(other, self, "NONE_117_Nergal_Hallo_01_25"); //Ладно, спасибо и на этом.
AI_Output(self, other, "NONE_117_Nergal_Hallo_01_26"); //Не за что. А теперь приготовься к смерти... Сейчас я тебя уничтожу!
B_LogEntry(TOPIC_XARDASTASKSFOUR, "Перед тем как напасть на меня, душа некроманта Нергала заговорила со мной, и любезно согласилась ответить на вопрос о Некрономиконе. Как оказалось, этот артефакт спрятан на вершине некой башни Ашерона, а вход в нее охраняет бессмертное существо, порожденное самой Тьмой. Есть лишь один способ убить его, о котором Нергал мне, конечно, рассказывать не стал. Придется самому найти башню и придумать, как справиться с этим созданием.");
knowwherenerconomicon = TRUE;
Info_ClearChoices(none_117_nergal_hallo);
Info_AddChoice(none_117_nergal_hallo, "Ну что же, попробуй, если получится.", none_117_nergal_hallo_ex1);
};
func void none_117_nergal_hallo_ex1()
{
AI_Output(other, self, "NONE_117_Nergal_Hallo_Ex1_01_01"); //Ну что же, попробуй, если получится.
AI_Output(self, other, "NONE_117_Nergal_Hallo_Ex1_01_02"); //Аргххх...(мертвым голосом)
self.flags = NPC_FLAG_NONE;
Wld_StopEffect("DEMENTOR_FX");
AI_StopProcessInfos(self);
self.aivar[AIV_ENEMYOVERRIDE] = FALSE;
};
instance NONE_117_Nergal_Hallo(C_INFO){
npc = None_117_Nergal;
condition = NONE_117_Nergal_Hallo_Сondition;
information = NONE_117_Nergal_Hallo_Info;
permanent = FALSE;
important = TRUE;
};
func int NONE_117_Nergal_Hallo_Сondition()
{
if (xardasritualfail == TRUE) {
return TRUE;
};
};
func void NONE_117_Nergal_Hallo_Info()
{
self.name = "Душа Нергала";
B_GivePlayerXP(500);
rx_playeffect("spellFX_Fear", self);
Snd_Play("DEM_Warn");
AI_Output(self, other, "NONE_117_Nergal_Hallo_01_01"); //(мертвым голосом) СМЕРТНЫЙ... Значит, именно тебя я должен поблагодарить.
AI_Output(other, self, "NONE_117_Nergal_Hallo_01_02"); //За что?
AI_Output(self, other, "NONE_117_Nergal_Hallo_01_03"); //За то, что ты избавил меня от необходимости отвечать на вопросы этого никчемного старикашки-мага.
AI_Output(self, other, "NONE_117_Nergal_Hallo_01_04"); //И думаю, что в качестве награды за твою услугу... я позволю тебе умереть последним!
AI_Output(other, self, "NONE_117_Nergal_Hallo_01_06"); //Ну, раз ты собрался убить меня, - может, тогда перед этим ответишь мне всего на один вопрос?
AI_Output(self, other, "NONE_117_Nergal_Hallo_01_07"); //Хочешь задать вопрос? Ну что же, попробуй, задай его.
AI_Output(other, self, "NONE_117_Nergal_Hallo_01_08"); //Ответь мне, где я смогу найти Некрономикон?
AI_Output(self, other, "NONE_117_Nergal_Hallo_01_09"); //Некрономикон? Так меня призвали сюда, чтобы узнать, где я спрятал этот древний артефакт?
AI_Output(other, self, "NONE_117_Nergal_Hallo_01_10"); //А разве для тебя сейчас это имеет большое значение?
AI_Output(self, other, "NONE_117_Nergal_Hallo_01_11"); //Нет, абсолютно никакого... Причины могут быть подчас разными, однако итог будет всегда только один.
AI_Output(other, self, "NONE_117_Nergal_Hallo_01_12"); //Ладно, хватит болтать! Просто ответь на мой вопрос.
AI_Output(self, other, "NONE_117_Nergal_Hallo_01_13"); //А ты дерзок, как я погляжу... Но мне это нравится!
AI_Output(self, other, "NONE_117_Nergal_Hallo_01_14"); //Хорошо. Я отвечу на твой вопрос, поскольку ты уже навряд ли сможешь воспользоваться моим ответом.
AI_Output(self, other, "NONE_117_Nergal_Hallo_01_15"); //Я спрятал эту реликвию там, куда ни одному смертному вроде тебя никогда не попасть...
AI_Output(self, other, "NONE_117_Nergal_Hallo_01_17"); //На вершине темной башни Ашерона!
AI_Output(other, self, "NONE_117_Nergal_Hallo_01_18"); //Башня Ашерона? А где она находится?
AI_Output(self, other, "NONE_117_Nergal_Hallo_01_19"); //Я уже точно не помню...(ностальгически) Ведь это было так давно...
AI_Output(other, self, "NONE_117_Nergal_Hallo_01_20"); //Выходит, что надо только отыскать эту башню, и, можно считать, что этот артефакт уже у меня в руках.
AI_Output(self, other, "NONE_117_Nergal_Hallo_01_21"); //Не все так просто, смертный... Мое сокровище охраняет бессмертное создание Тьмы, которое тебе навряд ли удастся одолеть.
AI_Output(self, other, "NONE_117_Nergal_Hallo_01_22"); //Уверен, что многие пытались это сделать. Но я также уверен в том, что все они сейчас мертвы.
AI_Output(other, self, "NONE_117_Nergal_Hallo_01_23"); //И что, нет ни одного способа уничтожить это создание?
AI_Output(self, other, "NONE_117_Nergal_Hallo_01_24"); //Почему же, есть один. Но тебе я его не скажу... Можешь даже не просить.
AI_Output(other, self, "NONE_117_Nergal_Hallo_01_25"); //Ладно, спасибо и на этом.
AI_Output(self, other, "NONE_117_Nergal_Hallo_01_26"); //Не за что. А теперь приготовься к смерти... Сейчас я тебя уничтожу!
B_LogEntry(TOPIC_XARDASTASKSFOUR, "Перед тем как напасть на меня, душа некроманта Нергала заговорила со мной, и любезно согласилась ответить на вопрос о Некрономиконе. Как оказалось, этот артефакт спрятан на вершине некой башни Ашерона, а вход в нее охраняет бессмертное существо, порожденное самой Тьмой. Есть лишь один способ убить его, о котором Нергал мне, конечно, рассказывать не стал. Придется самому найти башню и придумать, как справиться с этим созданием.");
knowwherenerconomicon = TRUE;
Info_ClearChoices(none_117_nergal_hallo);
Info_AddChoice(none_117_nergal_hallo, "Ну что же, попробуй, если получится.", none_117_nergal_hallo_ex1);
};
func void none_117_nergal_hallo_ex1()
{
AI_Output(other, self, "NONE_117_Nergal_Hallo_Ex1_01_01"); //Ну что же, попробуй, если получится.
AI_Output(self, other, "NONE_117_Nergal_Hallo_Ex1_01_02"); //Аргххх...(мертвым голосом)
self.flags = NPC_FLAG_NONE;
Wld_StopEffect("DEMENTOR_FX");
AI_StopProcessInfos(self);
self.aivar[AIV_ENEMYOVERRIDE] = FALSE;
};
I found it as well in the raw scripts
func void none_117_nergal_hallo_info()
{
self.name[0] = "Душа Нергала";
B_GivePlayerXP(500);
//RX_PlayEffect("DEMENTOR_FX",hero);
RX_PlayEffect("spellFX_Fear",self);
Snd_Play("DEM_Warn");
AI_Output(self,other,"NONE_117_Nergal_Hallo_01_01"); //(мертвым голосом) СМЕРТНЫЙ... Значит, именно тебя я должен поблагодарить.
AI_Output(other,self,"NONE_117_Nergal_Hallo_01_02"); //За что?
AI_Output(self,other,"NONE_117_Nergal_Hallo_01_03"); //За то, что ты избавил меня от необходимости отвечать на вопросы этого никчемного старикашки-мага.
AI_Output(self,other,"NONE_117_Nergal_Hallo_01_04"); //И думаю, что в качестве награды за твою услугу... я позволю тебе умереть последним!
AI_Output(other,self,"NONE_117_Nergal_Hallo_01_06"); //Ну, раз ты собрался убить меня, - может, тогда перед этим ответишь мне всего на один вопрос?
AI_Output(self,other,"NONE_117_Nergal_Hallo_01_07"); //Хочешь задать вопрос? Ну что же, попробуй, задай его.
AI_Output(other,self,"NONE_117_Nergal_Hallo_01_08"); //Ответь мне, где я смогу найти Некрономикон?
AI_Output(self,other,"NONE_117_Nergal_Hallo_01_09"); //Некрономикон? Так меня призвали сюда, чтобы узнать, где я спрятал этот древний артефакт?
AI_Output(other,self,"NONE_117_Nergal_Hallo_01_10"); //А разве для тебя сейчас это имеет большое значение?
AI_Output(self,other,"NONE_117_Nergal_Hallo_01_11"); //Нет, абсолютно никакого... Причины могут быть подчас разными, однако итог будет всегда только один.
AI_Output(other,self,"NONE_117_Nergal_Hallo_01_12"); //Ладно, хватит болтать! Просто ответь на мой вопрос.
AI_Output(self,other,"NONE_117_Nergal_Hallo_01_13"); //А ты дерзок, как я погляжу... Но мне это нравится!
AI_Output(self,other,"NONE_117_Nergal_Hallo_01_14"); //Хорошо. Я отвечу на твой вопрос, поскольку ты уже навряд ли сможешь воспользоваться моим ответом.
AI_Output(self,other,"NONE_117_Nergal_Hallo_01_15"); //Я спрятал эту реликвию там, куда ни одному смертному вроде тебя никогда не попасть...
AI_Output(self,other,"NONE_117_Nergal_Hallo_01_17"); //На вершине темной башни Ашерона!
AI_Output(other,self,"NONE_117_Nergal_Hallo_01_18"); //Башня Ашерона? А где она находится?
AI_Output(self,other,"NONE_117_Nergal_Hallo_01_19"); //Я уже точно не помню...(ностальгически) Ведь это было так давно...
AI_Output(other,self,"NONE_117_Nergal_Hallo_01_20"); //Выходит, что надо только отыскать эту башню, и, можно считать, что этот артефакт уже у меня в руках.
AI_Output(self,other,"NONE_117_Nergal_Hallo_01_21"); //Не все так просто, смертный... Мое сокровище охраняет бессмертное создание Тьмы, которое тебе навряд ли удастся одолеть.
AI_Output(self,other,"NONE_117_Nergal_Hallo_01_22"); //Уверен, что многие пытались это сделать. Но я также уверен в том, что все они сейчас мертвы.
AI_Output(other,self,"NONE_117_Nergal_Hallo_01_23"); //И что, нет ни одного способа уничтожить это создание?
AI_Output(self,other,"NONE_117_Nergal_Hallo_01_24"); //Почему же, есть один. Но тебе я его не скажу... Можешь даже не просить.
AI_Output(other,self,"NONE_117_Nergal_Hallo_01_25"); //Ладно, спасибо и на этом.
AI_Output(self,other,"NONE_117_Nergal_Hallo_01_26"); //Не за что. А теперь приготовься к смерти... Сейчас я тебя уничтожу!
B_LogEntry(TOPIC_XARDASTASKSFOUR,"Перед тем как напасть на меня, душа некроманта Нергала заговорила со мной, и любезно согласилась ответить на вопрос о Некрономиконе. Как оказалось, этот артефакт спрятан на вершине некой башни Ашерона, а вход в нее охраняет бессмертное существо, порожденное самой Тьмой. Есть лишь один способ убить его, о котором Нергал мне, конечно, рассказывать не стал. Придется самому найти башню и придумать, как справиться с этим созданием.");
KNOWWHERENERCONOMICON = TRUE;
Info_ClearChoices(none_117_nergal_hallo);
Info_AddChoice(none_117_nergal_hallo,"Ну что же, попробуй, если получится.",none_117_nergal_hallo_ex1);
};
func void none_117_nergal_hallo_ex1()
{
AI_Output(other,self,"NONE_117_Nergal_Hallo_Ex1_01_01"); //Ну что же, попробуй, если получится.
AI_Output(self,other,"NONE_117_Nergal_Hallo_Ex1_01_02"); //Аргххх...(мертвым голосом)
self.flags = NPC_FLAG_NONE;
Wld_StopEffect("DEMENTOR_FX");
AI_StopProcessInfos(self);
self.aivar[AIV_EnemyOverride] = FALSE;
Some dialogs that don't seem to belong to certain NPC
Zitat von TopLayer
Try this
Hi again, I'm on Lares' dialogue files, and I have noticed that there are speeches which I don't think they belong to him, well at least according to the raw scripts. "PC_PSIONICQUEST_TEMPLATEDIALOG_229"- This is a discussion between nameless and a guy who helps him to find out that Serpentes was the killer. I don't think Lares has anything to do with this. I will upload the raw script files, the generated dialogs files of Lares, so you could see that there is something where it shouldn't be. It's confusing, cuz when I'm delegating the roles to people, I don't know who that npc is. Why would other npc's dialogs generate into Lares' file? At this link are Lares' raw script files https://we.tl/t-drSOXGVtvE and I have uploaded the generated files by your plugin also.
Don't think it is bug. The dialog PC_PSIONICQUEST_TEMPLATEDIALOG_229 is assigned to VLK_449_LARES.
You can see these dialogs if you satisfy the conditions:
Code:
func int PC_PSIONICQUEST_TEMPLATEDIALOG_229_CONDITION()
{
if PC_PSIONICQUEST_TEMPLATEDIALOG_228_VAR && (MIS_CITYNIGHTMARE == LOG_RUNNING) && !RXQ_16_KILLERTRUEFOUND
{
return TRUE;
};
};
Hi, can you make it possible for the plugin to generate the letters with diacrtitics correctly? I mean these letters: Ă, ă, Î, î, Ş, ş, Ţ, ţ, Â, â. Is this ability up to your plugin or up to union? What I currently get when it comes to letters with diacritics, it looks like this:
EDIT: also you can convert text files from windows-1250 to utf-8 by this simple C# program (place TextEncoder.exe near the text files, start it and enter this two encodings).
Spoiler:(zum lesen bitte Text markieren)
Code:
static void Main(string[] args)
{
Console.Write("Source encoding: ");
var sourceEncoding = Encoding.GetEncoding(Console.ReadLine());
Console.Write("Output encoding: ");
var outputEncoding = Encoding.GetEncoding(Console.ReadLine());
foreach (var file in Directory.EnumerateFiles(Path.GetDirectoryName(Assembly.GetEntryAssembly().Location)))
if (file.EndsWith(".TXT", StringComparison.InvariantCultureIgnoreCase))
{
var text = File.ReadAllText(file, sourceEncoding);
File.WriteAllText(file, text, outputEncoding);
}
}
Is it possible for you to make the plugin generate the SVM dialogues as well? Atm it doesn't, as far as I can see.
Many NPC have for example "$RUNAWAY" some say "Nichts wie weg hier" others say "Scheiße, ich hau ab" and again other say .... I think you get the point.
The game does not know what they say, the game only knows what audio file to play for $RUNAWAY
I have noticed that in Kreol's file, there are speeches that belong to Xardas. Why is it like this? I will attach a picture and the file itself. It's very weird that they have to use the same speeches even though they are 2 different characters.
I have noticed that in Kreol's file, there are speeches that belong to Xardas. Why is it like this? I will attach a picture and the file itself. It's very weird that they have to use the same speeches even though they are 2 different characters.