//////////////////////////////////////////////////////////////////////////////// // Vuldrick's Universal Skill Checker // Created: 11/09/06 // Modified: 11/09/06 //////////////////////////////////////////////////////////////////////////////// // The following is a list of possible Skills to check for. The Skill // checked for is controlled with an INT set on the NPC that has this // script being called from his/her convo. The number representing the // Skill is shown in the list below. //////////////////////////////////////////////////////////////////////////////// /* 1 = SKILL_ANIMAL_EMPATHY 2 = SKILL_APPRAISE 3 = SKILL_BLUFF 4 = SKILL_CONCENTRATION 5 = SKILL_CRAFT_ARMOR 6 = SKILL_CRAFT_TRAP 7 = SKILL_CRAFT_WEAPON 8 = SKILL_DISABLE_TRAP 9 = SKILL_DISCIPLINE 10 = SKILL_HEAL 11 = SKILL_HIDE 12 = SKILL_INTIMIDATE 13 = SKILL_LISTEN 14 = SKILL_LORE 15 = SKILL_MOVE_SILENTLY 16 = SKILL_OPEN_LOCK 17 = SKILL_PARRY 18 = SKILL_PERFORM 19 = SKILL_PERSUADE 20 = SKILL_PICK_POCKET 21 = SKILL_SEARCH 22 = SKILL_SET_TRAP 23 = SKILL_SPELLCRAFT 24 = SKILL_SPOT 25 = SKILL_TAUNT 26 = SKILL_TUMBLE 27 = SKILL_USE_MAGIC_DEVICE 28 = SUBSKILL_EXAMINETRAP 29 = SUBSKILL_FLAGTRAP 30 = SUBSKILL_RECOVERTRAP There are three 'generic' DCs we can check for: DC_EASY, DC_MEDIUM, and DC_HARD 1 = DC_EASY 2 = DC_MEDIUM 3 = DC_HARD */ #include "nw_i0_tool" int StartingConditional() { // Determine the Skill being checked by looking for a local int on the NPC int iSkill = GetLocalInt(OBJECT_SELF,"Skill"); // Determine the DC of the skill check by looking for a local int on the NPC int iDC = GetLocalInt(OBJECT_SELF,"DC"); // Set up the skill to be checked based on the above table if (iSkill = 1){iSkill = SKILL_ANIMAL_EMPATHY;} if (iSkill = 2){iSkill = SKILL_APPRAISE;} if (iSkill = 3){iSkill = SKILL_BLUFF;} if (iSkill = 4){iSkill = SKILL_CONCENTRATION;} if (iSkill = 5){iSkill = SKILL_CRAFT_ARMOR;} if (iSkill = 6){iSkill = SKILL_CRAFT_TRAP;} if (iSkill = 7){iSkill = SKILL_CRAFT_WEAPON;} if (iSkill = 8){iSkill = SKILL_DISABLE_TRAP;} if (iSkill = 9){iSkill = SKILL_DISCIPLINE;} if (iSkill = 10){iSkill = SKILL_HEAL;} if (iSkill = 11){iSkill = SKILL_HIDE;} if (iSkill = 12){iSkill = SKILL_INTIMIDATE;} if (iSkill = 13){iSkill = SKILL_LISTEN;} if (iSkill = 14){iSkill = SKILL_LORE;} if (iSkill = 15){iSkill = SKILL_MOVE_SILENTLY;} if (iSkill = 16){iSkill = SKILL_OPEN_LOCK;} if (iSkill = 17){iSkill = SKILL_PARRY;} if (iSkill = 18){iSkill = SKILL_PERFORM;} if (iSkill = 19){iSkill = SKILL_PERSUADE;} if (iSkill = 20){iSkill = SKILL_PICK_POCKET;} if (iSkill = 21){iSkill = SKILL_SEARCH;} if (iSkill = 22){iSkill = SKILL_SET_TRAP;} if (iSkill = 23){iSkill = SKILL_SPELLCRAFT;} if (iSkill = 24){iSkill = SKILL_SPOT;} if (iSkill = 25){iSkill = SKILL_TAUNT;} if (iSkill = 26){iSkill = SKILL_TUMBLE;} if (iSkill = 27){iSkill = SKILL_USE_MAGIC_DEVICE;} if (iSkill = 28){iSkill = SUBSKILL_EXAMINETRAP;} if (iSkill = 29){iSkill = SUBSKILL_FLAGTRAP;} if (iSkill = 30){iSkill = SUBSKILL_RECOVERTRAP;} // Set up the DC to be checked based on the above table if (iDC = 1){iSkill = DC_EASY;} if (iDC = 2){iSkill = DC_MEDIUM;} if (iDC = 3){iSkill = DC_HARD;} // Perform desired skill check if(!(AutoDC(iDC, iSkill, GetPCSpeaker()))) return FALSE; return TRUE; }