//:://///////////////////////////////////////////// //:: Example XP2 OnItemEquipped //:: x2_mod_def_equ //:: (c) 2003 Bioware Corp. //::////////////////////////////////////////////// /* Put into: OnEquip Event */ //::////////////////////////////////////////////// //:: Created By: Georg Zoeller //:: Created On: 2003-07-16 //::////////////////////////////////////////////// #include "x2_inc_switches" #include "x2_inc_intweapon" #include "strat_prc_inc" #include "inc_prc_function" void PrcFeats(object oPC) { SetLocalInt(oPC,"ONEQUIP",2); EvalPRCFeats(oPC); DeleteLocalInt(oPC,"ONEQUIP"); } //Added hook into EvalPRCFeats event // Aaon Graywolf - 6 Jan 2004 //Added delay to EvalPRCFeats event to allow module setup to take priority // Aaon Graywolf - Jan 6, 2004 void main() { object oItem = GetPCItemLastEquipped(); object oPC = GetPCItemLastEquippedBy(); // ------------------------------------------------------------------------- // Intelligent Weapon System // ------------------------------------------------------------------------- if (IPGetIsIntelligentWeapon(oItem)) { IWSetIntelligentWeaponEquipped(oPC,oItem); // prevent players from reequipping their weapon in if (IWGetIsInIntelligentWeaponConversation(oPC)) { object oConv = GetLocalObject(oPC,"X2_O_INTWEAPON_SPIRIT"); IWEndIntelligentWeaponConversation(oConv, oPC); } else { //------------------------------------------------------------------ // Trigger Drain Health Event //------------------------------------------------------------------ if (GetLocalInt(oPC,"X2_L_ENSERRIC_ASKED_Q3")==1) { ExecuteScript ("x2_ens_dodrain",oPC); } else { IWPlayRandomEquipComment(oPC,oItem); } } } // ------------------------------------------------------------------------- // Generic Item Script Execution Code // If MODULE_SWITCH_EXECUTE_TAGBASED_SCRIPTS is set to TRUE on the module, // it will execute a script that has the same name as the item's tag // inside this script you can manage scripts for all events by checking against // GetUserDefinedItemEventNumber(). See x2_it_example.nss // ------------------------------------------------------------------------- if (GetModuleSwitchValue(MODULE_SWITCH_ENABLE_TAGBASED_SCRIPTS) == TRUE) { SetUserDefinedItemEventNumber(X2_ITEM_EVENT_EQUIP); int nRet = ExecuteScriptAndReturnInt(GetUserDefinedItemEventScriptName(oItem),OBJECT_SELF); if (nRet == X2_EXECUTE_SCRIPT_END) { return; } } DelayCommand(0.5,PrcFeats(oPC)); }