Files
HeroesStone_PRC8/_module/nss/vg_uni_skill.nss
Jaysyn904 1eefc84201 Initial Commit
Initial Commit.
2025-09-14 15:40:46 -04:00

96 lines
3.3 KiB
Plaintext

////////////////////////////////////////////////////////////////////////////////
// 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;
}