I am not sure if there is a good way to tell if a conversation file exists, Outside of making a list of them to check.
I just really want to make sure you understand the limitations of the characters lengths for the for the tags vs. Convo file names(ResRef's)
Tags are limited to being 32 characters long.
ResRef's, the convo name being a ResRef, Is limited to being 16 characters long.
So if you use the system of taking the "conv_" + tag; You will need to make sute that all of your tags are less then 11 characters long.
it is not that hard to make the list. assuming that the list is just of the conversations in the module and not in biff's and haks.
If making a list sounds like something you want to do and you are going to have a long list, It is not that hard to create a script with a batch file ran in the temp0 folder to generate the list for you. The batch file would look something like this:
( a batch file is nothing more then a pure text file with a . bat extension)
echo>"zztest.nss" void main()
echo>>"zztest.nss" {
echo>>"zztest.nss" string CONV_LIST;
FOR %%a IN (*.dlg) do echo>>"zztest.nss" CONV_LIST+=" %%a ";
echo>>"zztest.nss" }
run the bat and it will give you a .nss (Neverwinter Source Script) that will look something like this.
void main()
{
string CONV_LIST;
CONV_LIST+=" acadameyportal.dlg ";
CONV_LIST+=" academychef.dlg ";
CONV_LIST+=" evpcpawnshop.dlg ";
CONV_LIST+=" evpctigergate1.dlg ";
CONV_LIST+=" evpctigergate2.dlg ";
CONV_LIST+=" evpctrader.dlg ";
CONV_LIST+=" eyecontesttalk.dlg ";
CONV_LIST+=" fansenacamp.dlg ";
CONV_LIST+=" finegoods.dlg ";
CONV_LIST+=" fishing.dlg ";
CONV_LIST+=" flameburst.dlg ";
CONV_LIST+=" quest36.dlg ";
CONV_LIST+=" quest37.dlg ";
CONV_LIST+=" quest38.dlg ";
CONV_LIST+=" quest4.dlg ";
CONV_LIST+=" silverlakeweapon.dlg ";
CONV_LIST+=" simplestore.dlg ";
CONV_LIST+=" singingguard.dlg ";
CONV_LIST+=" wondollyuglygirl.dlg ";
CONV_LIST+=" woodworkershop.dlg ";
CONV_LIST+=" xiongtalk.dlg ";
}
Compile the script and add it to your module OnLoad event. or wherever you want to the do the population of the list from. I would just make sure you only did it once.
The you will be able to test to see if the conversation is in the list this way.
string ConvList = GetLocalString (GetModule(),"CONV_LIST");
string tag = GetTag(OBJECT_SELF);
string conv = "conv_" + tag;
if ( TestStringAgainstPattern( ConvList," "+conv+".dlg"))
{
// Do something.
}