I have a script that Aqvilinus helped me modify. It works great accept for one thing. It fires two times and I don’t know why. The way it happens is: When you click on a door that is locked, with Key Required, the PC, if he/she is a rogue, tries to open the lock. Since it is impossible to open I’ve made it so that a conversation fires by gp_talk_door. In that conversation there is a conditional: if you have a successfull dice roll you open the door otherwise it doesn’t open. On both cases a short one line conversation starts. But the script seems to fire two times. I don’t get it. This is Aqvilinus script:
#include "ginc_param_const"
int StartingConditional(int nSkill, int nDC)
{
object oPC = (GetPCSpeaker()==OBJECT_INVALID?GetFirstPC():GetPCSpeaker());
object oPCF = GetFirstFactionMember(oPC, FALSE);
int nSkillVal = GetSkillConstant(nSkill);
int nAssocType;
while (GetIsObjectValid(oPCF))
{
nAssocType = GetAssociateType(oPCF);
if (nAssocType == ASSOCIATE_TYPE_NONE
|| nAssocType == ASSOCIATE_TYPE_HENCHMAN
|| nAssocType == ASSOCIATE_TYPE_FAMILIAR)
{
if (GetIsSkillSuccessful(oPCF, nSkillVal, nDC))
{
return TRUE;
}
}
oPCF = GetNextFactionMember(oPC, FALSE);
}
// Just in case
if (GetIsSkillSuccessful(oPC, nSkillVal, nDC))
{
return TRUE;
}
return FALSE;
}
And this is a picture of how it looks in game: