208 lines
7.0 KiB
Plaintext
208 lines
7.0 KiB
Plaintext
/// @addtogroup player
|
|
/// @{
|
|
/// @file nwnx_player_qbs.nss
|
|
/// @brief Helper script for quickbar management.
|
|
#include "nwnx_player"
|
|
|
|
/// @name Quickbar Slot Types
|
|
/// @anchor qbs_types
|
|
/// @{
|
|
const int NWNX_PLAYER_QBS_TYPE_EMPTY = 0;
|
|
const int NWNX_PLAYER_QBS_TYPE_ITEM = 1;
|
|
const int NWNX_PLAYER_QBS_TYPE_SPELL = 2;
|
|
const int NWNX_PLAYER_QBS_TYPE_SKILL = 3;
|
|
const int NWNX_PLAYER_QBS_TYPE_FEAT = 4;
|
|
const int NWNX_PLAYER_QBS_TYPE_DIALOG = 6;
|
|
const int NWNX_PLAYER_QBS_TYPE_ATTACK = 7;
|
|
const int NWNX_PLAYER_QBS_TYPE_EMOTE = 8;
|
|
const int NWNX_PLAYER_QBS_TYPE_ITEM_PROPERTY_CASTSPELL = 9;
|
|
const int NWNX_PLAYER_QBS_TYPE_MODE_TOGGLE = 10;
|
|
const int NWNX_PLAYER_QBS_TYPE_COMMAND = 18;
|
|
const int NWNX_PLAYER_QBS_TYPE_POSSESS_FAMILIAR = 38;
|
|
const int NWNX_PLAYER_QBS_TYPE_ASSOCIATE_COMMAND = 39;
|
|
const int NWNX_PLAYER_QBS_TYPE_EXAMINE = 40;
|
|
const int NWNX_PLAYER_QBS_TYPE_BARTER = 41;
|
|
const int NWNX_PLAYER_QBS_TYPE_QUICK_CHAT = 42;
|
|
const int NWNX_PLAYER_QBS_TYPE_CANCELPOLYMORPH = 43;
|
|
const int NWNX_PLAYER_QBS_TYPE_SPELLLIKEABILITY = 44;
|
|
/// @}
|
|
|
|
/// Create an empty QBS of given type
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_Empty(int type = NWNX_PLAYER_QBS_TYPE_EMPTY);
|
|
/// Create a QBS for using an item
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_UseItem(object oItem, int nPropertyID = 0);
|
|
/// Create a QBS for equipping an item
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_EquipItem(object oItem, object oSecondaryItem = OBJECT_INVALID);
|
|
/// Create a QBS for casting a spell
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_CastSpell(int nSpell, int nClassIndex = 0, int nMetamagic = METAMAGIC_NONE, int nDomainLevel = -1);
|
|
/// Create a QBS for using a skill
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_UseSkill(int nSkill);
|
|
/// Create a QBS for using a feat
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_UseFeat(int nFeat);
|
|
/// Create a QBS for starting a dialog
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_StartDialog();
|
|
/// Create a QBS for attacking
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_Attack();
|
|
/// Create a QBS for emoting
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_Emote(int nEmote);
|
|
/// Create a QBS for toggling a mode
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_ToggleMode(int nMode);
|
|
/// Create a QBS for examining
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_Examine();
|
|
/// Create a QBS for bartering
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_Barter();
|
|
/// Create a QBS for quickchat command
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_QuickChat(int nCommand);
|
|
/// Create a QBS for examining
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_PossessFamiliar();
|
|
/// Create a QBS for casting a spell
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_UseSpecialAbility(int nSpell, int nCasterLevel);
|
|
/// Create a QBS for running a command
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_Command(string sCommandLabel, string sCommandLine);
|
|
|
|
/// @}
|
|
|
|
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_Empty(int type = NWNX_PLAYER_QBS_TYPE_EMPTY)
|
|
{
|
|
struct NWNX_Player_QuickBarSlot qbs;
|
|
|
|
qbs.nObjectType = type;
|
|
|
|
qbs.oItem = OBJECT_INVALID;
|
|
qbs.oSecondaryItem = OBJECT_INVALID;
|
|
qbs.nMultiClass = 0;
|
|
qbs.sResRef = "";
|
|
qbs.sCommandLabel = "";
|
|
qbs.sCommandLine = "";
|
|
qbs.sToolTip = "";
|
|
qbs.nINTParam1 = 0;
|
|
qbs.nMetaType = 0;
|
|
qbs.nDomainLevel = 0;
|
|
qbs.nAssociateType = 0;
|
|
qbs.oAssociate = OBJECT_INVALID;
|
|
|
|
return qbs;
|
|
}
|
|
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_UseItem(object oItem, int nPropertyID = 0)
|
|
{
|
|
struct NWNX_Player_QuickBarSlot qbs = NWNX_Player_QBS_Empty(NWNX_PLAYER_QBS_TYPE_ITEM);
|
|
|
|
qbs.oItem = oItem;
|
|
qbs.nINTParam1 = nPropertyID;
|
|
|
|
return qbs;
|
|
}
|
|
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_EquipItem(object oItem, object oSecondaryItem = OBJECT_INVALID)
|
|
{
|
|
struct NWNX_Player_QuickBarSlot qbs = NWNX_Player_QBS_Empty(NWNX_PLAYER_QBS_TYPE_ITEM);
|
|
|
|
qbs.oItem = oItem;
|
|
qbs.oSecondaryItem = oSecondaryItem;
|
|
|
|
return qbs;
|
|
}
|
|
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_CastSpell(int nSpell, int nClassIndex = 0, int nMetamagic = METAMAGIC_NONE, int nDomainLevel = -1)
|
|
{
|
|
struct NWNX_Player_QuickBarSlot qbs = NWNX_Player_QBS_Empty(NWNX_PLAYER_QBS_TYPE_SPELL);
|
|
|
|
qbs.nINTParam1 = nSpell;
|
|
qbs.nMultiClass = nClassIndex;
|
|
qbs.nMetaType = nMetamagic;
|
|
qbs.nDomainLevel = nDomainLevel;
|
|
|
|
return qbs;
|
|
}
|
|
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_UseSkill(int nSkill)
|
|
{
|
|
struct NWNX_Player_QuickBarSlot qbs = NWNX_Player_QBS_Empty(NWNX_PLAYER_QBS_TYPE_SKILL);
|
|
|
|
qbs.nINTParam1 = nSkill;
|
|
|
|
return qbs;
|
|
}
|
|
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_UseFeat(int nFeat)
|
|
{
|
|
struct NWNX_Player_QuickBarSlot qbs = NWNX_Player_QBS_Empty(NWNX_PLAYER_QBS_TYPE_FEAT);
|
|
|
|
qbs.nINTParam1 = nFeat;
|
|
|
|
return qbs;
|
|
}
|
|
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_StartDialog()
|
|
{
|
|
return NWNX_Player_QBS_Empty(NWNX_PLAYER_QBS_TYPE_DIALOG);
|
|
}
|
|
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_Attack()
|
|
{
|
|
return NWNX_Player_QBS_Empty(NWNX_PLAYER_QBS_TYPE_ATTACK);
|
|
}
|
|
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_Emote(int nEmote)
|
|
{
|
|
struct NWNX_Player_QuickBarSlot qbs = NWNX_Player_QBS_Empty(NWNX_PLAYER_QBS_TYPE_EMOTE);
|
|
|
|
qbs.nINTParam1 = nEmote;
|
|
|
|
return qbs;
|
|
}
|
|
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_ToggleMode(int nMode)
|
|
{
|
|
struct NWNX_Player_QuickBarSlot qbs = NWNX_Player_QBS_Empty(NWNX_PLAYER_QBS_TYPE_MODE_TOGGLE);
|
|
|
|
qbs.nINTParam1 = nMode;
|
|
|
|
return qbs;
|
|
}
|
|
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_Examine()
|
|
{
|
|
return NWNX_Player_QBS_Empty(NWNX_PLAYER_QBS_TYPE_EXAMINE);
|
|
}
|
|
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_Barter()
|
|
{
|
|
return NWNX_Player_QBS_Empty(NWNX_PLAYER_QBS_TYPE_BARTER);
|
|
}
|
|
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_QuickChat(int nCommand)
|
|
{
|
|
struct NWNX_Player_QuickBarSlot qbs = NWNX_Player_QBS_Empty(NWNX_PLAYER_QBS_TYPE_QUICK_CHAT);
|
|
|
|
qbs.nINTParam1 = nCommand;
|
|
|
|
return qbs;
|
|
}
|
|
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_PossessFamiliar()
|
|
{
|
|
return NWNX_Player_QBS_Empty(NWNX_PLAYER_QBS_TYPE_POSSESS_FAMILIAR);
|
|
}
|
|
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_UseSpecialAbility(int nSpell, int nCasterLevel)
|
|
{
|
|
struct NWNX_Player_QuickBarSlot qbs = NWNX_Player_QBS_Empty(NWNX_PLAYER_QBS_TYPE_SPELL);
|
|
|
|
qbs.nINTParam1 = nSpell;
|
|
qbs.nDomainLevel = nCasterLevel;
|
|
|
|
return qbs;
|
|
}
|
|
struct NWNX_Player_QuickBarSlot NWNX_Player_QBS_Command(string sCommandLabel, string sCommandLine)
|
|
{
|
|
struct NWNX_Player_QuickBarSlot qbs = NWNX_Player_QBS_Empty(NWNX_PLAYER_QBS_TYPE_COMMAND);
|
|
|
|
qbs.sCommandLabel = sCommandLabel;
|
|
qbs.sCommandLine = sCommandLine;
|
|
|
|
return qbs;
|
|
}
|