NWScript:
void main()
{
object oNPC = OBJECT_SELF;
string sTag = GetTag(oNPC);
object oPC = GetPCSpeaker();
object oStore = GetObjectByTag(sTag);
int nNPCSkill = GetSkillRank(SKILL_PERSUADE, oNPC);
int nNPCStat = GetAbilityModifier(ABILITY_CHARISMA, oNPC);
int nPCSkill = GetSkillRank(SKILL_PERSUADE, oPC);
int nPCStat = GetAbilityModifier(ABILITY_CHARISMA, oPC);
int nNPCcheck = (FloatToInt(nNPCSkill * 1.5) + nNPCStat);
int nPCcheck = (FloatToInt(nPCSkill * 1.5) + nPCStat);
int nMarkUp = nNPCcheck - nPCcheck;
int nMarkDown = nPCSkill - nNPCSkill;
if(GetRacialType(oPC) == RACIAL_TYPE_HALFORC)
{
nMarkUp = nMarkUp + 10;
nMarkDown = nMarkDown - 5;
}
if(GetObjectType(oStore) == OBJECT_TYPE_STORE)
{
OpenStore(oStore, GetPCSpeaker(), nMarkUp, nMarkDown);
}
else
{
ActionSpeakStringByStrRef(53090, TALKVOLUME_TALK);
}
}