Files
Anphillia_PRC8/_module/nss/dlg_wand.nss
Jaysyn904 28cdb617b3 Initial commit
Adding all of the current content for Anphillia Unlimited.
2024-01-04 07:49:38 -05:00

468 lines
28 KiB
Plaintext

///////////////////////////////////////////////////////////////////////////////
// dlg_wand
// written by: eyesolated
// written at: April 12, 2018
//
// Notes: the conditional/action script for the wand dialog
///////////
// Includes
//
#include "eas_inc"
#include "dlg_inc"
#include "dlg_wand_const"
#include "color_inc"
#include "chr_inc"
#include "esm_inc"
#include "eye_altarelem"
#include "prc_inc_spells"
///////////////////////
// Function Declaration
//
////////////////
// Function Code
//
string GetDruidWildShape(object oPC, int TargetSpell)
{
int TargetShape = GetLocalInt(oPC, CS_DRUID_VAR_SHAPE + "_" + IntToString(TargetSpell)) - 1;
string sColor = COLOR_ORANGE;
switch (TargetShape)
{
case -1: return "default"; break;
case POLYMORPH_TYPE_BADGER: return color_ConvertString("Badger", sColor); break;
case POLYMORPH_TYPE_BOAR: return color_ConvertString("Boar", sColor); break;
case POLYMORPH_TYPE_BROWN_BEAR: return color_ConvertString("Brown Bear", sColor); break;
case POLYMORPH_TYPE_CHICKEN: return color_ConvertString("Chicken", sColor); break;
case POLYMORPH_TYPE_COW: return color_ConvertString("Cow", sColor); break;
case POLYMORPH_TYPE_DIRE_BADGER: return color_ConvertString("Dire Badger", sColor); break;
case POLYMORPH_TYPE_DIRE_BOAR: return color_ConvertString("Dire Boar", sColor); break;
case POLYMORPH_TYPE_DIRE_BROWN_BEAR: return color_ConvertString("Dire Brown Bear", sColor); break;
case POLYMORPH_TYPE_DIRE_PANTHER: return color_ConvertString("Dire Panther", sColor); break;
case POLYMORPH_TYPE_DIRE_WOLF: return color_ConvertString("Dire Wolf", sColor); break;
case POLYMORPH_TYPE_DIRETIGER: return color_ConvertString("Dire Tiger", sColor); break;
case POLYMORPH_TYPE_GIANT_SPIDER: return color_ConvertString("Giant Spider", sColor); break;
case POLYMORPH_TYPE_PANTHER: return color_ConvertString("Panther", sColor); break;
case POLYMORPH_TYPE_PENGUIN: return color_ConvertString("Penguin", sColor); break;
case POLYMORPH_TYPE_WOLF: return color_ConvertString("Wolf", sColor); break;
case 102: return color_ConvertString("Winter Wolf", sColor); break;
case 210: return color_ConvertString("Black Bear", sColor); break;
case 211: return color_ConvertString("Grizzly Bear", sColor); break;
case 212: return color_ConvertString("Polar Bear", sColor); break;
case 213: return color_ConvertString("Wild Dog", sColor); break;
case 214: return color_ConvertString("Winter Wolf", sColor); break;
case 215: return color_ConvertString("Puppy", sColor); break;
case 216: return color_ConvertString("Cougar", sColor); break;
case 217: return color_ConvertString("White Tiger", sColor); break;
case 218: return color_ConvertString("Cat", sColor); break;
case 219: return color_ConvertString("Pig", sColor); break;
case 220: return color_ConvertString("Falcon", sColor); break;
case 221: return color_ConvertString("Raven", sColor); break;
case 222: return color_ConvertString("Bat", sColor); break;
case 223: return color_ConvertString("Penguin", sColor); break;
case 224: return color_ConvertString("Chicken", sColor); break;
case 225: return color_ConvertString("Deer", sColor); break;
case 226: return color_ConvertString("White Stag", sColor); break;
case 227: return color_ConvertString("Cow", sColor); break;
case 228: return color_ConvertString("Rat", sColor); break;
case 229: return color_ConvertString("Mouse", sColor); break;
case 230: return color_ConvertString("Racoon", sColor); break;
case 231: return color_ConvertString("Ferret", sColor); break;
case 232: return color_ConvertString("Skunk", sColor); break;
case 233: return color_ConvertString("Swamp Viper", sColor); break;
case 234: return color_ConvertString("Treant", sColor); break;
}
return "default";
}
void SetDruidWildShape(object oPC, int TargetShape)
{
int TargetSpell = GetLocalInt(oPC, CS_DRUID_VAR_TARGETSPELL);
SetLocalInt(oPC, CS_DRUID_VAR_SHAPE + "_" + IntToString(TargetSpell), TargetShape + 1);
}
//Smoking Function by Jason Robinson
location GetLocationAboveAndInFrontOf(object oPC, float fDist, float fHeight)
{
float fDistance = -fDist;
object oTarget = (oPC);
object oArea = GetArea(oTarget);
vector vPosition = GetPosition(oTarget);
vPosition.z += fHeight;
float fOrientation = GetFacing(oTarget);
vector vNewPos = AngleToVector(fOrientation);
float vZ = vPosition.z;
float vX = vPosition.x - fDistance * vNewPos.x;
float vY = vPosition.y - fDistance * vNewPos.y;
fOrientation = GetFacing(oTarget);
vX = vPosition.x - fDistance * vNewPos.x;
vY = vPosition.y - fDistance * vNewPos.y;
vNewPos = AngleToVector(fOrientation);
vZ = vPosition.z;
vNewPos = Vector(vX, vY, vZ);
return Location(oArea, vNewPos, fOrientation);
}
//Smoking Function by Jason Robinson
void SmokePipe(object oActivator)
{
string sEmote1 = "*puffs on a pipe*";
string sEmote2 = "*inhales from a pipe*";
string sEmote3 = "*pulls a mouthful of smoke from a pipe*";
float fHeight = 1.7;
float fDistance = 0.1;
// Set height based on race and gender
if (GetGender(oActivator) == GENDER_MALE)
{
switch (MyPRCGetRacialType(oActivator))
{
case RACIAL_TYPE_HUMAN:
case RACIAL_TYPE_HALFELF: fHeight = 1.7; fDistance = 0.12; break;
case RACIAL_TYPE_ELF: fHeight = 1.55; fDistance = 0.08; break;
case RACIAL_TYPE_GNOME:
case RACIAL_TYPE_HALFLING: fHeight = 1.15; fDistance = 0.12; break;
case RACIAL_TYPE_DWARF: fHeight = 1.2; fDistance = 0.12; break;
case RACIAL_TYPE_HALFORC: fHeight = 1.9; fDistance = 0.2; break;
}
}
else
{
// FEMALES
switch (MyPRCGetRacialType(oActivator))
{
case RACIAL_TYPE_HUMAN:
case RACIAL_TYPE_HALFELF: fHeight = 1.6; fDistance = 0.12; break;
case RACIAL_TYPE_ELF: fHeight = 1.45; fDistance = 0.12; break;
case RACIAL_TYPE_GNOME:
case RACIAL_TYPE_HALFLING: fHeight = 1.1; fDistance = 0.075; break;
case RACIAL_TYPE_DWARF: fHeight = 1.2; fDistance = 0.1; break;
case RACIAL_TYPE_HALFORC: fHeight = 1.8; fDistance = 0.13; break;
}
}
location lAboveHead = GetLocationAboveAndInFrontOf(oActivator, fDistance, fHeight);
// emotes
switch (d3())
{
case 1: AssignCommand(oActivator, ActionSpeakString(sEmote1)); break;
case 2: AssignCommand(oActivator, ActionSpeakString(sEmote2)); break;
case 3: AssignCommand(oActivator, ActionSpeakString(sEmote3));break;
}
// glow red
AssignCommand(oActivator, ActionDoCommand(ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_DUR_LIGHT_RED_5), oActivator, 0.15)));
// wait a moment
AssignCommand(oActivator, ActionWait(3.0));
// puff of smoke above and in front of head
AssignCommand(oActivator, ActionDoCommand(ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SMOKE_PUFF), lAboveHead)));
// if female, turn head to left
if ((GetGender(oActivator) == GENDER_FEMALE) && (MyPRCGetRacialType(oActivator) != RACIAL_TYPE_DWARF))
AssignCommand(oActivator, ActionPlayAnimation(ANIMATION_FIREFORGET_HEAD_TURN_LEFT, 1.0, 5.0));
}
// EmoteDance credit DMFI
void EmoteDance(object oPC)
{
object oRightHand = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,oPC);
object oLeftHand = GetItemInSlot(INVENTORY_SLOT_LEFTHAND,oPC);
AssignCommand(oPC,ActionUnequipItem(oRightHand));
AssignCommand(oPC,ActionUnequipItem(oLeftHand));
AssignCommand(oPC,ActionPlayAnimation( ANIMATION_FIREFORGET_VICTORY2,1.0));
AssignCommand(oPC,ActionDoCommand(PlayVoiceChat(VOICE_CHAT_LAUGH,oPC)));
AssignCommand(oPC,ActionPlayAnimation( ANIMATION_LOOPING_TALK_LAUGHING, 2.0, 2.0));
AssignCommand(oPC,ActionPlayAnimation( ANIMATION_FIREFORGET_VICTORY1,1.0));
AssignCommand(oPC,ActionPlayAnimation( ANIMATION_FIREFORGET_VICTORY3,2.0));
AssignCommand(oPC,ActionPlayAnimation( ANIMATION_LOOPING_GET_MID, 3.0, 1.0));
AssignCommand(oPC,ActionPlayAnimation( ANIMATION_LOOPING_TALK_FORCEFUL,1.0));
AssignCommand(oPC,ActionPlayAnimation( ANIMATION_FIREFORGET_VICTORY2,1.0));
AssignCommand(oPC,ActionDoCommand(PlayVoiceChat(VOICE_CHAT_LAUGH,oPC)));
AssignCommand(oPC,ActionPlayAnimation( ANIMATION_LOOPING_TALK_LAUGHING, 2.0, 2.0));
AssignCommand(oPC,ActionPlayAnimation( ANIMATION_FIREFORGET_VICTORY1,1.0));
AssignCommand(oPC,ActionPlayAnimation( ANIMATION_FIREFORGET_VICTORY3,2.0));
AssignCommand(oPC,ActionDoCommand(PlayVoiceChat(VOICE_CHAT_LAUGH,oPC)));
AssignCommand(oPC,ActionPlayAnimation( ANIMATION_LOOPING_GET_MID, 3.0, 1.0));
AssignCommand(oPC,ActionPlayAnimation( ANIMATION_FIREFORGET_VICTORY2,1.0));
AssignCommand(oPC,ActionDoCommand(ActionEquipItem(oLeftHand,INVENTORY_SLOT_LEFTHAND)));
AssignCommand(oPC,ActionDoCommand(ActionEquipItem(oRightHand,INVENTORY_SLOT_RIGHTHAND)));
}
void DoEmote(object oPC, int nAnimation, float fDuration = 0.0f)
{
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionPlayAnimation(nAnimation, 1.0, fDuration));
}
string GetRollPrivacy(object oPC, int nShort)
{
int nRollPrivacy = GetLocalInt(oPC, CS_ROLLS_VAR_PRIVACY);
string sReturn;
switch (nRollPrivacy)
{
case CHR_ROLL_PRIVACY_PUBLIC:
sReturn = color_ConvertString("Public", COLOR_GREY);
if (!nShort)
sReturn += " - nearby players can see your rolls";
return sReturn;
break;
case CHR_ROLL_PRIVACY_PRIVATE:
sReturn = color_ConvertString("Private", COLOR_GREY);
if (!nShort)
sReturn += " - only you can see your rolls";
return sReturn;
break;
}
return "Error";
}
void Roll(object oPC, int nCount)
{
int nDieType = GetLocalInt(oPC, CS_ROLLS_VAR_DIETYPE);
switch (nDieType)
{
case CI_ACTION_ROLLS_DIE_D4: chr_DoDieRoll(oPC, 4, nCount, TRUE, TRUE, TRUE); break;
case CI_ACTION_ROLLS_DIE_D6: chr_DoDieRoll(oPC, 6, nCount, TRUE, TRUE, TRUE); break;
case CI_ACTION_ROLLS_DIE_D8: chr_DoDieRoll(oPC, 8, nCount, TRUE, TRUE, TRUE); break;
case CI_ACTION_ROLLS_DIE_D10: chr_DoDieRoll(oPC, 10, nCount, TRUE, TRUE, TRUE); break;
case CI_ACTION_ROLLS_DIE_D12: chr_DoDieRoll(oPC, 12, nCount, TRUE, TRUE, TRUE); break;
case CI_ACTION_ROLLS_DIE_D20: chr_DoDieRoll(oPC, 20, nCount, TRUE, TRUE, TRUE); break;
case CI_ACTION_ROLLS_DIE_D100: chr_DoDieRoll(oPC, 100, nCount, TRUE, TRUE, TRUE); break;
}
DeleteLocalInt(oPC, CS_ROLLS_VAR_DIETYPE);
}
void main()
{
object oPC = OBJECT_SELF;
int nConditional = GetLocalInt(oPC, CS_DLG_PC_CONDITIONAL_ID);
int nAction = GetLocalInt(oPC, CS_DLG_PC_ACTION_ID);
string sNodeText = GetLocalString(oPC, CS_DLG_PC_NODETEXT);
object oAdditional = GetLocalObject(oPC, CS_DLG_PC_ADDITIONALOBJECT);
switch (nConditional)
{
case -1: SetLocalInt(oPC, CS_DLG_PC_RESULT, TRUE); break;
case CI_CONDITIONAL_ISDM:
SetLocalInt(oPC, CS_DLG_PC_RESULT, GetIsDM(oPC));
break;
case CI_CONDITION_ROLLS_PRIVACY_OVERRIDE:
dlg_OverrideNodeText(oPC, "Change Privacy (Currently: " + GetRollPrivacy(oPC, TRUE) + ")");
SetLocalInt(oPC, CS_DLG_PC_RESULT, TRUE);
break;
case CI_CONDITION_ROLLS_NODIETYPE:
if (GetLocalInt(oPC, CS_ROLLS_VAR_DIETYPE) == 0)
SetLocalInt(oPC, CS_DLG_PC_RESULT, TRUE);
else
SetLocalInt(oPC, CS_DLG_PC_RESULT, FALSE);
break;
case CI_CONDITIONAL_BROWNBEAR:
dlg_OverrideNodeText(oPC, "Brown Bear (Currently set to " + GetDruidWildShape(oAdditional, CI_ACTION_DRUID_POLYMORPH_SET_BROWNBEAR) + ")");
SetLocalInt(oPC, CS_DLG_PC_RESULT, TRUE);
break;
case CI_CONDITIONAL_PANTHER:
dlg_OverrideNodeText(oPC, "Panther (Currently set to " + GetDruidWildShape(oAdditional, CI_ACTION_DRUID_POLYMORPH_SET_PANTHER) + ")");
SetLocalInt(oPC, CS_DLG_PC_RESULT, TRUE);
break;
case CI_CONDITIONAL_WOLF:
dlg_OverrideNodeText(oPC, "Wolf (Currently set to " + GetDruidWildShape(oAdditional, CI_ACTION_DRUID_POLYMORPH_SET_WOLF) + ")");
SetLocalInt(oPC, CS_DLG_PC_RESULT, TRUE);
break;
case CI_CONDITIONAL_BOAR:
dlg_OverrideNodeText(oPC, "Boar (Currently set to " + GetDruidWildShape(oAdditional, CI_ACTION_DRUID_POLYMORPH_SET_BOAR) + ")");
SetLocalInt(oPC, CS_DLG_PC_RESULT, TRUE);
break;
case CI_CONDITIONAL_BADGER:
dlg_OverrideNodeText(oPC, "Badger (Currently set to " + GetDruidWildShape(oAdditional, CI_ACTION_DRUID_POLYMORPH_SET_BADGER) + ")");
SetLocalInt(oPC, CS_DLG_PC_RESULT, TRUE);
break;
case CI_CONDITIONAL_IS_DRUID:
if (GetLevelByClass(CLASS_TYPE_DRUID, oPC) > 0)
SetLocalInt(oPC, CS_DLG_PC_RESULT, TRUE);
else
SetLocalInt(oPC, CS_DLG_PC_RESULT, FALSE);
break;
case CI_CONDITIONAL_HAS_DRUID_LEVELS_5:
if (GetLevelByClass(CLASS_TYPE_DRUID, oPC) < 5)
SetLocalInt(oPC, CS_DLG_PC_RESULT, FALSE);
else
SetLocalInt(oPC, CS_DLG_PC_RESULT, TRUE);
break;
case CI_CONDITIONAL_HAS_DRUID_LEVELS_ADDITIONAL_OPTIONS:
if (GetLevelByClass(CLASS_TYPE_DRUID, oPC) < CI_REQUIRED_DRUID_LEVELS_FOR_ADDITONAL_OPTIONS)
SetLocalInt(oPC, CS_DLG_PC_RESULT, FALSE);
else
SetLocalInt(oPC, CS_DLG_PC_RESULT, TRUE);
break;
}
object oElementalAltar;
switch (nAction)
{
case -1: break;
// AFK
case CI_ACTION_AFK_ACTIVATE: chr_SetAFKStatus(oPC, TRUE); break;
case CI_ACTION_AFK_DEACTIVATE: chr_SetAFKStatus(oPC, FALSE); break;
// Emotes: Fire and Forget
case CI_ACTION_EMOTE_FF_BOW: DoEmote(oPC, ANIMATION_FIREFORGET_BOW); break;
case CI_ACTION_EMOTE_FF_DODGE_DUCK: DoEmote(oPC, ANIMATION_FIREFORGET_DODGE_DUCK); break;
case CI_ACTION_EMOTE_FF_DODGE_SIDE: DoEmote(oPC, ANIMATION_FIREFORGET_DODGE_SIDE); break;
case CI_ACTION_EMOTE_FF_DRINK: DoEmote(oPC, ANIMATION_FIREFORGET_DRINK); break;
case CI_ACTION_EMOTE_FF_GREETING: DoEmote(oPC, ANIMATION_FIREFORGET_GREETING); break;
case CI_ACTION_EMOTE_FF_PAUSE_BORED: DoEmote(oPC, ANIMATION_FIREFORGET_PAUSE_BORED); break;
case CI_ACTION_EMOTE_FF_PAUSE_SCRATCH_HEAD: DoEmote(oPC, ANIMATION_FIREFORGET_PAUSE_SCRATCH_HEAD); break;
case CI_ACTION_EMOTE_FF_READ: DoEmote(oPC, ANIMATION_FIREFORGET_READ); break;
case CI_ACTION_EMOTE_FF_SALUTE: DoEmote(oPC, ANIMATION_FIREFORGET_SALUTE); break;
case CI_ACTION_EMOTE_FF_SPASM: DoEmote(oPC, ANIMATION_FIREFORGET_SPASM); break;
case CI_ACTION_EMOTE_FF_STEAL: DoEmote(oPC, ANIMATION_FIREFORGET_STEAL); break;
case CI_ACTION_EMOTE_FF_TAUNT: DoEmote(oPC, ANIMATION_FIREFORGET_TAUNT); break;
case CI_ACTION_EMOTE_FF_VICTORY1: DoEmote(oPC, ANIMATION_FIREFORGET_VICTORY1); break;
case CI_ACTION_EMOTE_FF_VICTORY2: DoEmote(oPC, ANIMATION_FIREFORGET_VICTORY2); break;
case CI_ACTION_EMOTE_FF_VICTORY3: DoEmote(oPC, ANIMATION_FIREFORGET_VICTORY3); break;
// Emotes: Continous
case CI_ACTION_EMOTE_LOOP_CONJURE1: DoEmote(oPC, ANIMATION_LOOPING_CONJURE1, 9999.0f); break;
case CI_ACTION_EMOTE_LOOP_CONJURE2: DoEmote(oPC, ANIMATION_LOOPING_CONJURE2, 9999.0f); break;
case CI_ACTION_EMOTE_LOOP_DEAD_BACK: DoEmote(oPC, ANIMATION_LOOPING_DEAD_BACK, 9999.0f); break;
case CI_ACTION_EMOTE_LOOP_DEAD_FRONT: DoEmote(oPC, ANIMATION_LOOPING_DEAD_FRONT, 9999.0f); break;
case CI_ACTION_EMOTE_LOOP_GET_LOW: DoEmote(oPC, ANIMATION_LOOPING_GET_LOW, 9999.0f); break;
case CI_ACTION_EMOTE_LOOP_GET_MID: DoEmote(oPC, ANIMATION_LOOPING_GET_MID, 9999.0f); break;
case CI_ACTION_EMOTE_LOOP_LISTEN: DoEmote(oPC, ANIMATION_LOOPING_LISTEN, 9999.0f); break;
case CI_ACTION_EMOTE_LOOP_LOOK_FAR: DoEmote(oPC, ANIMATION_LOOPING_LOOK_FAR, 9999.0f); break;
case CI_ACTION_EMOTE_LOOP_MEDITATE:
DoEmote(oPC, ANIMATION_LOOPING_MEDITATE, 9999.0f);
// Elemental Trial
oElementalAltar = GetNearestObjectByTag ("ElementalAltar", oPC);
if (oElementalAltar != OBJECT_INVALID &&
GetDistanceBetween(oPC, oElementalAltar) < 5.0)
Elemental_Altar(GetName(oElementalAltar), oPC);
break;
case CI_ACTION_EMOTE_LOOP_PAUSE: DoEmote(oPC, ANIMATION_LOOPING_PAUSE, 9999.0f); break;
case CI_ACTION_EMOTE_LOOP_PAUSE_DRUNK: DoEmote(oPC, ANIMATION_LOOPING_PAUSE_DRUNK, 9999.0f); break;
case CI_ACTION_EMOTE_LOOP_PAUSE_TIRED: DoEmote(oPC, ANIMATION_LOOPING_PAUSE_TIRED, 9999.0f); break;
case CI_ACTION_EMOTE_LOOP_PAUSE2: DoEmote(oPC, ANIMATION_LOOPING_PAUSE2, 9999.0f); break;
case CI_ACTION_EMOTE_LOOP_SIT_CROSS: DoEmote(oPC, ANIMATION_LOOPING_SIT_CROSS, 9999.0f); break;
case CI_ACTION_EMOTE_LOOP_SPASM: DoEmote(oPC, ANIMATION_LOOPING_SPASM, 9999.0f); break;
case CI_ACTION_EMOTE_LOOP_TALK_FORCEFUL: DoEmote(oPC, ANIMATION_LOOPING_TALK_FORCEFUL, 9999.0f); break;
case CI_ACTION_EMOTE_LOOP_TALK_LAUGHING: DoEmote(oPC, ANIMATION_LOOPING_TALK_LAUGHING, 9999.0f); break;
case CI_ACTION_EMOTE_LOOP_TALK_NORMAL: DoEmote(oPC, ANIMATION_LOOPING_TALK_NORMAL, 9999.0f); break;
case CI_ACTION_EMOTE_LOOP_TALK_PLEADING: DoEmote(oPC, ANIMATION_LOOPING_TALK_PLEADING, 9999.0f); break;
case CI_ACTION_EMOTE_LOOP_WORSHIP: DoEmote(oPC, ANIMATION_LOOPING_WORSHIP, 9999.0f); break;
// Emotes: Custom
case CI_ACTION_EMOTE_CUSTOM_DANCE: EmoteDance(oPC); break;
case CI_ACTION_EMOTE_CUSTOM_SMOKE: SmokePipe(oPC); break;
// Privacy
case CI_ACTION_PRIVACY_SET_PRIVATE: SetLocalInt(oPC, CS_ROLLS_VAR_PRIVACY, CHR_ROLL_PRIVACY_PRIVATE); break;
case CI_ACTION_PRIVACY_SET_PUBLIC: SetLocalInt(oPC, CS_ROLLS_VAR_PRIVACY, CHR_ROLL_PRIVACY_PUBLIC); break;
// Checks
case CI_ACTION_ABILITY_STRENGTH: chr_DoAbilityCheck(oPC, ABILITY_STRENGTH, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_ABILITY_DEXTERITY: chr_DoAbilityCheck(oPC, ABILITY_DEXTERITY, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_ABILITY_CONSTITUTION: chr_DoAbilityCheck(oPC, ABILITY_CONSTITUTION, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_ABILITY_WISDOM: chr_DoAbilityCheck(oPC, ABILITY_WISDOM, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_ABILITY_INTELLIGENCE: chr_DoAbilityCheck(oPC, ABILITY_INTELLIGENCE, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_ABILITY_CHARISMA: chr_DoAbilityCheck(oPC, ABILITY_CHARISMA, 0, TRUE, TRUE, TRUE); break;
// Saving Throws
case CI_ACTION_SAVINGTHROW_FORTITUDE: chr_DoSavingThrow(oPC, SAVING_THROW_FORT, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_SAVINGTHROW_REFLEX: chr_DoSavingThrow(oPC, SAVING_THROW_REFLEX, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_SAVINGTHROW_WILL: chr_DoSavingThrow(oPC, SAVING_THROW_WILL, 0, TRUE, TRUE, TRUE); break;
// Die Rolls
case CI_ACTION_ROLLS_DIE_D4: SetLocalInt(oPC, CS_ROLLS_VAR_DIETYPE, nAction); break;
case CI_ACTION_ROLLS_DIE_D6: SetLocalInt(oPC, CS_ROLLS_VAR_DIETYPE, nAction); break;
case CI_ACTION_ROLLS_DIE_D8: SetLocalInt(oPC, CS_ROLLS_VAR_DIETYPE, nAction); break;
case CI_ACTION_ROLLS_DIE_D10: SetLocalInt(oPC, CS_ROLLS_VAR_DIETYPE, nAction); break;
case CI_ACTION_ROLLS_DIE_D12: SetLocalInt(oPC, CS_ROLLS_VAR_DIETYPE, nAction); break;
case CI_ACTION_ROLLS_DIE_D20: SetLocalInt(oPC, CS_ROLLS_VAR_DIETYPE, nAction); break;
case CI_ACTION_ROLLS_DIE_D100: SetLocalInt(oPC, CS_ROLLS_VAR_DIETYPE, nAction); break;
case CI_ACTION_ROLLS_DICE_1: Roll(oPC, 1); break;
case CI_ACTION_ROLLS_DICE_2: Roll(oPC, 2); break;
case CI_ACTION_ROLLS_DICE_3: Roll(oPC, 3); break;
case CI_ACTION_ROLLS_DICE_4: Roll(oPC, 4); break;
case CI_ACTION_ROLLS_DICE_5: Roll(oPC, 5); break;
case CI_ACTION_ROLLS_DICE_6: Roll(oPC, 6); break;
case CI_ACTION_ROLLS_DICE_7: Roll(oPC, 7); break;
case CI_ACTION_ROLLS_DICE_8: Roll(oPC, 8); break;
case CI_ACTION_ROLLS_DICE_9: Roll(oPC, 9); break;
case CI_ACTION_ROLLS_DICE_10: Roll(oPC, 10); break;
case CI_ACTION_ROLLS_DIE_DELETE: DeleteLocalInt(oPC, CS_ROLLS_VAR_DIETYPE); break;
// Skill Checks
case CI_ACTION_SKILLCHECK_ANIMALEMPATHY: chr_DoSkillCheck(oPC, SKILL_ANIMAL_EMPATHY, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_SKILLCHECK_APPRAISE: chr_DoSkillCheck(oPC, SKILL_APPRAISE, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_SKILLCHECK_BLUFF: chr_DoSkillCheck(oPC, SKILL_BLUFF, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_SKILLCHECK_CONCENTRATION: chr_DoSkillCheck(oPC, SKILL_CONCENTRATION, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_SKILLCHECK_CRAFT_ARMOR: chr_DoSkillCheck(oPC, SKILL_CRAFT_ARMOR, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_SKILLCHECK_CRAFT_TRAP: chr_DoSkillCheck(oPC, SKILL_CRAFT_TRAP, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_SKILLCHECK_CRAFT_WEAPON: chr_DoSkillCheck(oPC, SKILL_CRAFT_WEAPON, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_SKILLCHECK_DISABLE_TRAP: chr_DoSkillCheck(oPC, SKILL_DISABLE_TRAP, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_SKILLCHECK_DISCIPLINE: chr_DoSkillCheck(oPC, SKILL_DISCIPLINE, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_SKILLCHECK_HEAL: chr_DoSkillCheck(oPC, SKILL_HEAL, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_SKILLCHECK_HIDE: chr_DoSkillCheck(oPC, SKILL_HIDE, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_SKILLCHECK_INTIMIDATE: chr_DoSkillCheck(oPC, SKILL_INTIMIDATE, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_SKILLCHECK_LISTEN: chr_DoSkillCheck(oPC, SKILL_LISTEN, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_SKILLCHECK_LORE: chr_DoSkillCheck(oPC, SKILL_LORE, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_SKILLCHECK_MOVE_SILENTLY: chr_DoSkillCheck(oPC, SKILL_MOVE_SILENTLY, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_SKILLCHECK_OPEN_LOCK: chr_DoSkillCheck(oPC, SKILL_OPEN_LOCK, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_SKILLCHECK_PARRY: chr_DoSkillCheck(oPC, SKILL_PARRY, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_SKILLCHECK_PERFORM: chr_DoSkillCheck(oPC, SKILL_PERFORM, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_SKILLCHECK_PERSUADE: chr_DoSkillCheck(oPC, SKILL_PERSUADE, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_SKILLCHECK_PICK_POCKET: chr_DoSkillCheck(oPC, SKILL_PICK_POCKET, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_SKILLCHECK_RIDE: chr_DoSkillCheck(oPC, SKILL_RIDE, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_SKILLCHECK_SEARCH: chr_DoSkillCheck(oPC, SKILL_SEARCH, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_SKILLCHECK_SET_TRAP: chr_DoSkillCheck(oPC, SKILL_SET_TRAP, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_SKILLCHECK_SPELLCRAFT: chr_DoSkillCheck(oPC, SKILL_SPELLCRAFT, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_SKILLCHECK_SPOT: chr_DoSkillCheck(oPC, SKILL_SPOT, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_SKILLCHECK_TAUNT: chr_DoSkillCheck(oPC, SKILL_TAUNT, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_SKILLCHECK_TUMBLE: chr_DoSkillCheck(oPC, SKILL_TUMBLE, 0, TRUE, TRUE, TRUE); break;
case CI_ACTION_SKILLCHECK_USE_MAGIC_DEVICE: chr_DoSkillCheck(oPC, SKILL_USE_MAGIC_DEVICE, 0, TRUE, TRUE, TRUE); break;
// Druid Wild Shape
case CI_ACTION_DRUID_POLYMORPH_SET_BROWNBEAR: SetLocalInt(oAdditional, CS_DRUID_VAR_TARGETSPELL, nAction); break;
case CI_ACTION_DRUID_POLYMORPH_SET_PANTHER: SetLocalInt(oAdditional, CS_DRUID_VAR_TARGETSPELL, nAction); break;
case CI_ACTION_DRUID_POLYMORPH_SET_WOLF: SetLocalInt(oAdditional, CS_DRUID_VAR_TARGETSPELL, nAction); break;
case CI_ACTION_DRUID_POLYMORPH_SET_BOAR: SetLocalInt(oAdditional, CS_DRUID_VAR_TARGETSPELL, nAction); break;
case CI_ACTION_DRUID_POLYMORPH_SET_BADGER: SetLocalInt(oAdditional, CS_DRUID_VAR_TARGETSPELL, nAction); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_BADGER: SetDruidWildShape(oAdditional, POLYMORPH_TYPE_BADGER); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_BOAR: SetDruidWildShape(oAdditional, POLYMORPH_TYPE_BOAR); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_BROWNBEAR: SetDruidWildShape(oAdditional, POLYMORPH_TYPE_BROWN_BEAR); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_CHICKEN: SetDruidWildShape(oAdditional, POLYMORPH_TYPE_CHICKEN); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_COW: SetDruidWildShape(oAdditional, POLYMORPH_TYPE_COW); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_DIREBADGER: SetDruidWildShape(oAdditional, POLYMORPH_TYPE_DIRE_BADGER); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_DIREBOAR: SetDruidWildShape(oAdditional, POLYMORPH_TYPE_DIRE_BOAR); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_DIREBROWNBEAR: SetDruidWildShape(oAdditional, POLYMORPH_TYPE_DIRE_BROWN_BEAR); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_DIREPANTHER: SetDruidWildShape(oAdditional, POLYMORPH_TYPE_DIRE_PANTHER); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_DIREWOLF: SetDruidWildShape(oAdditional, POLYMORPH_TYPE_DIRE_WOLF); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_DIRETIGER: SetDruidWildShape(oAdditional, POLYMORPH_TYPE_DIRETIGER); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_GIANTSPIDER: SetDruidWildShape(oAdditional, POLYMORPH_TYPE_GIANT_SPIDER); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_PANTHER: SetDruidWildShape(oAdditional, POLYMORPH_TYPE_PANTHER); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_PENGUIN: SetDruidWildShape(oAdditional, POLYMORPH_TYPE_PENGUIN); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_WOLF: SetDruidWildShape(oAdditional, POLYMORPH_TYPE_WOLF); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_WINTERWOLF: SetDruidWildShape(oAdditional, 102); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_BLACK_BEAR: SetDruidWildShape(oAdditional, 210); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_GRIZZLY_BEAR: SetDruidWildShape(oAdditional, 211); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_POLAR_BEAR: SetDruidWildShape(oAdditional, 212); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_WILDDOG: SetDruidWildShape(oAdditional, 213); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_WINTERWOLF_OVERRIDE: SetDruidWildShape(oAdditional, 214); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_PUPPY: SetDruidWildShape(oAdditional, 215); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_COUGAR: SetDruidWildShape(oAdditional, 216); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_WHITETIGER: SetDruidWildShape(oAdditional, 217); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_HOUSECAT: SetDruidWildShape(oAdditional, 218); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_PIG: SetDruidWildShape(oAdditional, 219); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_FALCON: SetDruidWildShape(oAdditional, 220); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_RAVEN: SetDruidWildShape(oAdditional, 221); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_BAT: SetDruidWildShape(oAdditional, 222); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_PENGUIN_OVERRIDE: SetDruidWildShape(oAdditional, 223); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_CHICKEN_OVERRIDE: SetDruidWildShape(oAdditional, 224); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_DEER: SetDruidWildShape(oAdditional, 225); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_WHITESTAG: SetDruidWildShape(oAdditional, 226); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_COW_OVERRIDE: SetDruidWildShape(oAdditional, 227); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_RAT: SetDruidWildShape(oAdditional, 228); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_MOUSE: SetDruidWildShape(oAdditional, 229); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_RACOON: SetDruidWildShape(oAdditional, 230); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_FERRET: SetDruidWildShape(oAdditional, 231); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_SKUNK: SetDruidWildShape(oAdditional,232 ); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_SWAMPVIPER: SetDruidWildShape(oAdditional, 233); break;
case CI_ACTION_DRUID_POLYMORPH_SET_SHAPE_TREANT: SetDruidWildShape(oAdditional, 234); break;
}
}