//Script Name: genisys ////////////////////////////////////////// // Created By: Genisys (Guile) // Created On: 8/12/08 (My Birthday :) // // (TABASED ITEM SCRIPT) ///////////////////////////////////////// /* This is a tagbased item script for: "The Tool" tagnamed "genisys", whic does a lot of different things in a conversation which is started privately with the PC. */ //////////////////////////////////////// #include "x2_inc_switches" //Main Script void main() { int nEvent = GetUserDefinedItemEventNumber(); //Which event triggered this object oPC; //The player character using the item object oItem; //The item being used object oSpellOrigin; //The origin of the spell object oSpellTarget; //The target of the spell int iSpell; //The Spell ID number object oTarget; //Define oTarget below object oObject; //Define oObject below int nInt; //Often used for visual effects (define below) int nLvl; //Often used to define user or target's level (HD object oSpawn; object oListener; location lTarget; //Set the return value for the item event script // * X2_EXECUTE_SCRIPT_CONTINUE - continue calling script after executed script is done // * X2_EXECUTE_SCRIPT_END - end calling script after executed script is done int nResult = X2_EXECUTE_SCRIPT_END; switch (nEvent) { ////////////////////////////////////////////////////////////////////////////// case X2_ITEM_EVENT_ACTIVATE: // * This code runs when the Unique Power property of the item is used or the item // * is activated. Note that this event fires for PCs only { oPC = GetItemActivator(); // The player who activated the item oItem = GetItemActivated(); // The item that was activated oTarget = GetItemActivatedTarget(); lTarget = GetLocation(oPC); // Not useable in combat.. if (GetIsInCombat(GetItemActivator())) { SendMessageToPC(GetItemActivator(), "This item is not useable in combat!"); //Tell the system we are done resting! SetLocalInt(oPC, "REST_STARTED", 0); return; } if(GetObjectType(oTarget)==OBJECT_TYPE_ITEM && GetItemPossessor(oTarget) == oPC) { //Let's tell the script what the item is now! oItem = GetItemActivatedTarget(); //Let's make sure that all of thier variables are clear.. DeleteLocalString(oPC, "ONIDC"); DeleteLocalString(oPC, "ONNC"); DeleteLocalString(oPC, "ONID"); DeleteLocalString(oPC, "ONN"); DeleteLocalInt(oPC, "NUSER"); oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "namer", lTarget); oListener = oSpawn; //Set Strings on PC to ID the item later.. SetLocalString(oItem, "ONIDC", GetResRef(oItem)); SetLocalString(oPC, "ONNC", GetName(oItem)); //Set this string on the item so we can ID it later.. SetLocalString(oItem, "ONID", "MEME"); //Set this string on the PC so we can Name the item if something goes wrong. SetLocalString(oPC, "ONN", GetName(oItem)); //Set the name in the conversation. SetCustomToken(6000, GetName(oItem)); //Set an Int on the PC to ID the PC as the user.. SetLocalInt(oPC, "NUSER", 1); DelayCommand(0.2, AssignCommand(GetObjectByTag("namer"), ActionStartConversation(oPC, "", TRUE, TRUE))); //To insure we don't have any problems later... DelayCommand(80.4, DeleteLocalString(oPC, "ONID")); DelayCommand(80.5, DeleteLocalString(oPC, "ONN")); DelayCommand(80.6, DeleteLocalInt(oPC, "NUSER")); DelayCommand(120.7, DestroyObject(GetObjectByTag("namer"), 0.0f)); } else { oTarget = oPC; AssignCommand(oTarget, ActionStartConversation(oPC, "genisysconv", TRUE)); } break; } } //Pass the return value back to the calling script SetExecutedScriptReturnValue(nResult); }