Jump to content

Home

Batu Rem Script


The Regent

Recommended Posts

I've had some success killing fake Batu Rem with a happy little force choke, :D(custom script + dialog) but Grenn fails to enter the room afterwards. A prereq for his entrance in the dialog file is c_batudead having been executed. I've tried executing it from my dialog and from my script, but it still doesn't work. I'm not sure what number to put under P1 in the dialog, though. Any ideas?

 

BTW, the script that checks if the PC has force choke is bugged. It checks some master feat or something like that instead.

Link to comment
Share on other sites

c_batudead is a conditional script and not one you can execute from any place other than as a conditional check in a dialog. The "c_" prefix usually indicates a conditional script.

 

The c_batudead script simply contains this:

 

// ST: c_batudead.nss

int StartingConditional()
{
object oGrenn = GetObjectByTag("202_gren");

if (!GetLocalBoolean(oGrenn, 36)) {
	SetLocalBoolean(oGrenn, 36, TRUE);
	return TRUE;
}
else {
	return FALSE;
}
}

 

That is, all it does is to ensure that the dialog node it is attached to only is run once.

 

k_fab_batudie is the script that fires when Batu Rem dies, making Grenn and his goons arrive, and simply looks like this:

 

// ST: k_fab_batudie.nss (202TEL_s.rim)

#include "k_inc_generic"
#include "k_inc_debug"
#include "k_inc_utility"

void main()
{
   int nUser = GetUserDefinedEventNumber();

   if(nUser == 1001) //HEARTBEAT
   {

   }
   else if(nUser == 1002) // PERCEIVE
   {

   }
   else if(nUser == 1003) // END OF COMBAT
   {

   }
   else if(nUser == 1004) // ON DIALOGUE
   {

   }
   else if(nUser == 1005) // ATTACKED
   {

   }
   else if(nUser == 1006) // DAMAGED
   {

   }
   else if(nUser == 1007) // DEATH
   {
	AssignCommand(GetObjectByTag("202_gren"), ClearAllActions());
	AssignCommand(GetObjectByTag("202_gren"), ActionStartConversation(GetFirstPC()));
   }
   else if(nUser == 1008) // DISTURBED
   {

   }
   else if(nUser == 1009) // BLOCKED
   {

   }
   else if(nUser == 1010) // SPELL CAST AT
   {

   }
   else if(nUser == 1011) //DIALOGUE END
   {

   }
   else if(nUser == HOSTILE_RETREAT)
   {
       UT_ReturnToBase();
   }
}

 

It just makes Grenn re-start the conversation with the player after the fight. So it would seem that as long as Batu Rem actually dies, things should proceed.

 

How do you kill him in your script?

Link to comment
Share on other sites

//choke_rem.nss
void main()
{

   effect eChoke = EffectChoke();
   effect eDeath = EffectDeath();
   object oNPC = GetObjectByTag("202_rem");

   ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_CHOKE), oNPC);
   ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eChoke, oNPC, 3.0);
   DelayCommand(3.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, oNPC));

}

 

I have him hanging around for a while before he actually dies.

 

Thanks for explaining what's in those files. I completely overlooked the second one you displayed.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...