All pastes #14634 Raw Edit

Stuff

public text v1 · immutable
#14634 ·published 2005-06-15 16:18 UTC
rendered paste body
/*
Generic OnEnter event script for a trigger intended to cause an NPC to speak to the PC.
To use this place the this script in the desired trigger.
Make the trigger tag tr_[NPC_tag] replacing [NPC_tag] with the desired NPC's tag.
The NPC's tag should be no longer than 15 characters.
Example
Trigger: tr_hen_shae001
NPC: hen_shae001
*/
#include "al_inc_rep"
void main()
{
    //Lets define variables.
    //The Player's Character.
    object oPC = GetPC();
    //Get the trigger's tag
    string sTag = GetTag(OBJECT_SELF);
    //Get the length of the trigger's tag, then subtract three
    int iLength = GetStringLength(sTag)-3;
    //all but the first three characters of the tag
    string sNPC = GetStringRight(sTag,iLength);
    //The npc is the tag of the trigger, minus the first three characters
    object oNPC = GetObjectByTag(sNPC);
    //The variable is "Spoke_" plus all but the first three characters of the trigger's tag
    int iTrig = GetLocalInt(oPC,"Spoke_"+sNPC);
    if(iTrig < 1)
    {
        if(!GetIsPC(oPC)) return;
        {
        //Speak your first dialog node, that node must use the sc_spoke_snpc file
        AssignCommand(oNPC,SpeakOneLinerConversation("con_"+sNPC,oPC));
        //Ensure it isn't spoken again
        IncreaseLocalInt(oPC,"Spoke_"+sNPC);
        AssignCommand(oPC,ClearAllActions());
        AssignCommand(oNPC,ClearAllActions());
        //Walk to the PC
        AssignCommand(oNPC,ActionMoveToObject(oPC));
        //Talk
        AssignCommand(oNPC,ActionStartConversation(oPC));
        }
    }
    else if(iTrig >= 1)
    {
        if(!GetIsPC(oPC)) return;
        {
        AssignCommand(oPC,ClearAllActions());
        AssignCommand(oNPC,ClearAllActions());
        //Walk to the PC
        AssignCommand(oNPC,ActionMoveToObject(oPC));
        //Talk
        AssignCommand(oNPC,ActionStartConversation(oPC));
        //Add one to the variable
        IncreaseLocalInt(oPC,"Spoke_"+sNPC);
        }
    }
    else
    {

    }
}