All pastes #14648 Raw Edit

Someone

public text v1 · immutable
#14648 ·published 2005-06-15 17:26 UTC
rendered paste body
//////////////////////////This is the trigger's OnEnter Event\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#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));
        DestroyObject(OBJECT_SELF,0.1);
        }
    }
    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);
        DestroyObject(OBJECT_SELF,0.1);
        }
    }
    else
    {

    }
}
//////////////////////////This is the script that sends the NPC to the next waypoint\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
#include "al_inc_rep"
void main()
{
    int iTrig = GetLocalInt(OBJECT_SELF,"WP_"+GetTag(OBJECT_SELF));
    if(iTrig < 1)
    {
        object oWP = GetNearestObjectByTag("WP1_"+GetTag(OBJECT_SELF));
        AssignCommand(OBJECT_SELF,ActionMoveToObject(oWP,TRUE));
        IncreaseLocalInt(OBJECT_SELF,"WP_"+GetTag(OBJECT_SELF));
    }
    else if(iTrig == 1)
    {
        object oWP = GetNearestObjectByTag("WP2_"+GetTag(OBJECT_SELF));
        AssignCommand(OBJECT_SELF,ActionMoveToObject(oWP,TRUE));
        IncreaseLocalInt(OBJECT_SELF,"WP_"+GetTag(OBJECT_SELF));
    }
    else if(iTrig == 2)
    {
        object oWP = GetNearestObjectByTag("WP3_"+GetTag(OBJECT_SELF));
        AssignCommand(OBJECT_SELF,ActionMoveToObject(oWP,TRUE));
        IncreaseLocalInt(OBJECT_SELF,"WP_"+GetTag(OBJECT_SELF));
    }
    else if(iTrig == 3)
    {
        object oWP = GetNearestObjectByTag("WP4_"+GetTag(OBJECT_SELF));
        AssignCommand(OBJECT_SELF,ActionMoveToObject(oWP,TRUE));
        IncreaseLocalInt(OBJECT_SELF,"WP_"+GetTag(OBJECT_SELF));
    }
    else
    {

    }
}