44 lines
1.3 KiB
Plaintext
44 lines
1.3 KiB
Plaintext
|
|
void main()
|
|
|
|
{
|
|
object oTarget;
|
|
object oSpawn;
|
|
object oActor;
|
|
|
|
// Get the creature who triggered this event.
|
|
object oPC = GetEnteringObject();
|
|
|
|
// Only fire for (real) PCs.
|
|
if ( !GetIsPC(oPC) || GetIsDMPossessed(oPC) )
|
|
return;
|
|
|
|
// Abort if the local string is not exactly "1".
|
|
if ( GetLocalString(oPC, "crbthse1") != "1" )
|
|
return;
|
|
|
|
// Only fire once.
|
|
if ( GetLocalInt(GetModule(), "DO_ONCE__" + GetTag(OBJECT_SELF)) )
|
|
return;
|
|
SetLocalInt(GetModule(), "DO_ONCE__" + GetTag(OBJECT_SELF), TRUE);
|
|
|
|
// Have the PC perform a sequence of actions.
|
|
AssignCommand(oPC, ClearAllActions());
|
|
|
|
// Spawn "mrcrbt1".
|
|
oTarget = GetWaypointByTag("WP_SPn_mrcrbt1");
|
|
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "mrcrbt1", GetLocation(oTarget));
|
|
|
|
// Have "mrcrbt1" perform a sequence of actions.
|
|
oActor = GetObjectByTag("mrcrbt1");
|
|
AssignCommand(oActor, ActionJumpToObject(oPC));
|
|
|
|
// Have "mrcrbt1" say something.
|
|
AssignCommand(GetObjectByTag("mrcrbt1"), SpeakString("Let us speak for a moment!"));
|
|
|
|
// Have "mrcrbt1" strike up a conversation with the PC.
|
|
oActor = GetNearestObjectByTag("mrcrbt1", oPC);
|
|
DelayCommand(0.7, AssignCommand(oActor, ActionStartConversation(oPC)));
|
|
}
|
|
|