Aschbourne_PRC8/_module/nss/_uoa_tchst_tlk3.nss
GetOffMyYarn 69879d6957 Areas and Fixes
Added CCOH and missing areas
Changed some areas to be craftable,
Fixed some on death issues,
Fixed the Gaurd
2024-08-30 11:38:44 -04:00

79 lines
4.9 KiB
Plaintext

#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)));
}