WoR_PRC8/_module/nss/tk_omnidye.nss

61 lines
1.7 KiB
Plaintext
Raw Permalink Normal View History

2025-04-03 11:49:34 -04:00
//::///////////////////////////////////////////////
//:: tk_omnidye
//::
//:: Tag-based script.
//:://////////////////////////////////////////////
/*
Causes a player to start a self-conversation
upon item activation.
Also initializes an item upon acquisition.
*/
//:://////////////////////////////////////////////
//:: Created By: The Krit
//:: Created On: October 11, 2007
//:://////////////////////////////////////////////
#include "x2_inc_switches"
#include "tk_odye_include"
void main()
{
// We're only implementing activation and acquisition.
int nEvent = GetUserDefinedItemEventNumber();
if ( nEvent != X2_ITEM_EVENT_ACTIVATE && nEvent != X2_ITEM_EVENT_ACQUIRE )
return;
// Signal that the script handled this.
SetExecutedScriptReturnValue();
// Initializations for when acquired.
if ( nEvent == X2_ITEM_EVENT_ACQUIRE )
{
object oItem = GetModuleItemAcquired();
// Set the name.
SetDyeName(oItem, GetLocalInt(oItem, DYE_INDEX));
// Set the post-sampling script.
// (Cannot rely on template variable because a store might have
// cleared all local variables.)
SetLocalString(oItem, "DYE_POSTSAMPLE_HANDLER", "tk_odye_setname");
// Done.
return;
}
// Activation:
else
{
object oItem = GetItemActivated();
object oPC = GetItemActivator();
// Remember the item that was used.
SetLocalObject(oPC, DYE_ITEM, oItem);
// Start the conversation that will allow the dye's color to be set.
AssignCommand(oPC, ClearAllActions());
AssignCommand(oPC, ActionStartConversation(oPC, "tk_omnidye", TRUE, FALSE));
}
}