Lankhmar_PRC8/_module/nss/ent_bd_attck2.nss

58 lines
1.7 KiB
Plaintext
Raw Permalink Normal View History

2025-04-03 12:54:47 -04:00
#include "x0_i0_partywide"
#include "nw_i0_2q4luskan"
void main()
{
object oTarget;
// effect eDamage;
// Get the PC who is in this conversation.
object oPC = GetPCSpeaker();
// Only fire for (real) PCs.
if ( !GetIsPC(oPC) || GetIsDMPossessed(oPC) )
return;
// Only fire once.
if ( GetLocalInt(GetModule(), "DO_ONCE__" + GetTag(OBJECT_SELF)) )
return;
SetLocalInt(GetModule(), "DO_ONCE__" + GetTag(OBJECT_SELF), TRUE);
// Cutscene functions:
BlackScreen(oPC);
// Give 5 XP (to party) to the PC.
GiveXPToAll(oPC, 5);
// Have the PC perform a sequence of actions.
AssignCommand(oPC, ActionJumpToObject(GetObjectByTag("WP_MV_Crbtd1")));
// Have the PC perform a sequence of actions.
AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_DEAD_FRONT, 1.0, 10.0));
// Cause damage.
// eDamage = EffectDamage(d6(), DAMAGE_TYPE_BLUDGEONING);
// ApplyEffectToObject(DURATION_TYPE_INSTANT, eDamage, oPC);
// Spawn "crbtbdx2".
oTarget = GetWaypointByTag("WP_crbtbdx2");
DelayCommand(0.9, CreateObjectVoid(OBJECT_TYPE_PLACEABLE, "crbtbdx2", GetLocation(oTarget)));
// Cutscene functions:
DelayCommand(1.0, FadeFromBlack(oPC));
// Have the PC say something.
DelayCommand(1.1, AssignCommand(oPC, SpeakString("The bed attacked me!")));
DelayCommand(1.2, AssignCommand(oPC, PlayVoiceChat(VOICE_CHAT_CUSS)));
// Destroy an object (not fully effective until this script ends).
DelayCommand(1.3, DestroyObject(GetObjectByTag("crbtbdx1")));
// Destroy an object (not fully effective until this script ends).
DelayCommand(1.4, DestroyObject(GetObjectByTag("cbtbdcnv1")));
}