#include "nw_i0_plot" void main() { object oPC = GetPCSpeaker(); object oSelf = OBJECT_SELF; AssignCommand(oSelf,DelayCommand(1.0,ExecuteScript("_open_chest2",oSelf))); int iChestLvl = GetLocalInt(oSelf,"iChestLevel"); int iMinPickSkill = 10+(iChestLvl*5); int iPCSkill = GetSkillRank(SKILL_DISABLE_TRAP,oPC); int iDCRoll = d20(1)+iPCSkill; int iMinDCRoll = iMinPickSkill+10; int iTrapDmg = GetMaxHitPoints(oPC); iTrapDmg = (iTrapDmg*2)/(11-iChestLvl); iTrapDmg = iTrapDmg/12; if (iTrapDmg<1) iTrapDmg=1; AssignCommand(oPC,ActionPlayAnimation(ANIMATION_LOOPING_GET_MID,1.0,12.0)); DelayCommand(1.0,PlaySound("as_hr_x2chnratl2")); DelayCommand(2.0,PlaySound("as_hr_x2chnratl3")); DelayCommand(3.0,PlaySound("as_hr_x2chnratl1")); DelayCommand(4.0,PlaySound("as_hr_x2chnratl2")); DelayCommand(5.0,PlaySound("as_na_leafmove2")); DelayCommand(6.0,PlaySound("as_hr_x2chnratl1")); DelayCommand(7.0,PlaySound("as_na_leafmove2")); DelayCommand(8.0,PlaySound("as_hr_x2chnratl4")); DelayCommand(9.0,PlaySound("as_na_branchsnp1")); DelayCommand(10.0,PlaySound("as_hr_x2chnratl5")); DelayCommand(11.0,PlaySound("as_na_branchsnp1")); PlaySound(""); DelayCommand(6.0,PlaySound("")); if (GetLocalInt(oSelf,"iAmTrapped")!=0) { SendMessageToPC(oPC,"You attempt to open the chest...."); if (AutoDC(DC_SUPERIOR,SKILL_DISABLE_TRAP,oPC)==FALSE) { DelayCommand(10.0,SendMessageToPC(oPC,"You have triggered a trap!")); DelayCommand(10.1,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDamage(iTrapDmg,DAMAGE_TYPE_ACID,DAMAGE_POWER_ENERGY),oPC)); DelayCommand(10.2,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDamage(iTrapDmg,DAMAGE_TYPE_BLUDGEONING,DAMAGE_POWER_ENERGY),oPC)); DelayCommand(10.3,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDamage(iTrapDmg,DAMAGE_TYPE_COLD,DAMAGE_POWER_ENERGY),oPC)); DelayCommand(10.4,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDamage(iTrapDmg,DAMAGE_TYPE_DIVINE,DAMAGE_POWER_ENERGY),oPC)); DelayCommand(10.5,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDamage(iTrapDmg,DAMAGE_TYPE_ELECTRICAL,DAMAGE_POWER_ENERGY),oPC)); DelayCommand(10.6,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDamage(iTrapDmg,DAMAGE_TYPE_FIRE,DAMAGE_POWER_ENERGY),oPC)); DelayCommand(10.7,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDamage(iTrapDmg,DAMAGE_TYPE_MAGICAL,DAMAGE_POWER_ENERGY),oPC)); DelayCommand(10.8,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDamage(iTrapDmg,DAMAGE_TYPE_NEGATIVE,DAMAGE_POWER_ENERGY),oPC)); DelayCommand(10.9,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDamage(iTrapDmg,DAMAGE_TYPE_PIERCING,DAMAGE_POWER_ENERGY),oPC)); DelayCommand(11.0,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDamage(iTrapDmg,DAMAGE_TYPE_POSITIVE,DAMAGE_POWER_ENERGY),oPC)); DelayCommand(11.1,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDamage(iTrapDmg,DAMAGE_TYPE_SLASHING,DAMAGE_POWER_ENERGY),oPC)); DelayCommand(11.2,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectDamage(iTrapDmg,DAMAGE_TYPE_SONIC,DAMAGE_POWER_ENERGY),oPC)); switch (Random(7)) { case 1:{DelayCommand(11.3,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_COM_HIT_ACID,FALSE),oPC));break;} case 2:{DelayCommand(11.3,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_COM_HIT_DIVINE,FALSE),oPC));break;} case 3:{DelayCommand(11.3,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_COM_HIT_ELECTRICAL,FALSE),oPC));break;} case 4:{DelayCommand(11.3,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_COM_HIT_FIRE,FALSE),oPC));break;} case 5:{DelayCommand(11.3,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_COM_HIT_FROST,FALSE),oPC));break;} case 6:{DelayCommand(11.3,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_COM_HIT_NEGATIVE,FALSE),oPC));break;} default:{DelayCommand(11.3,ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_COM_HIT_SONIC,FALSE),oPC));break;} } DelayCommand(11.4,SetLocalInt(oSelf,"iAmTrapped",0)); AssignCommand(oSelf,DelayCommand(13.0,ActionStartConversation(oPC,"_uoa_tchest_tlk",TRUE,FALSE))); return; } else { DelayCommand(11.2,SendMessageToPC(oPC,"The appears to be trapped.. you avoid triggering the trap.")); AssignCommand(oSelf,DelayCommand(13.0,ActionStartConversation(oPC,"_uoa_tchest_tlk",TRUE,FALSE))); return; } } if (GetLocalInt(oSelf,"iAmLocked")!=0) { DelayCommand(11.2,SendMessageToPC(oPC,"The chest is still locked!")); AssignCommand(oSelf,DelayCommand(13.0,ActionStartConversation(oPC,"_uoa_tchest_tlk",TRUE,FALSE))); return; } DelayCommand(12.0,SetLocked(oSelf,FALSE)); AssignCommand(oPC,DelayCommand(13.0,ActionInteractObject(oSelf))); }