536 lines
24 KiB
Plaintext
536 lines
24 KiB
Plaintext
|
string sSayThis;
|
||
|
int iTalkVolume = TALKVOLUME_TALK;
|
||
|
int iTalkFlag = 0;
|
||
|
#include "NW_I0_Plot"
|
||
|
#include "in_e_specialvfx"
|
||
|
#include "taip_r_header"
|
||
|
#include "dem_color_text"
|
||
|
void main()
|
||
|
{
|
||
|
IsRecall();
|
||
|
string itemTag = GetTag(GetItemActivated());
|
||
|
if (itemTag == "RHUN_RECALL_1")
|
||
|
{
|
||
|
object oPortal = GetObjectByTag("RHUN_RECALL_P1");
|
||
|
SetLocalInt(GetItemActivator(), "RHUN_RECALL_U1", 1);
|
||
|
SetLocalLocation(GetItemActivator(), "RHUN_RECALL_L1", GetLocation(GetItemActivator()));
|
||
|
string sTag = "RHUN_RECALL_P1";
|
||
|
object oClicker = GetItemActivator();
|
||
|
object oTarget = GetObjectByTag(sTag);
|
||
|
AssignCommand(oClicker, ClearAllActions());
|
||
|
AssignCommand(oClicker, PlaySound("as_mg_telepout1"));
|
||
|
AssignCommand(oClicker, JumpToObject(oTarget));
|
||
|
AssignCommand(oClicker, ActionDoCommand(ClearAllActions()));}
|
||
|
|
||
|
else if (itemTag == "RHUN_RECALL_2")
|
||
|
{
|
||
|
object oPortal = GetObjectByTag("RHUN_RECALL_P2");
|
||
|
SetLocalInt(GetItemActivator(), "RHUN_RECALL_U2", 1);
|
||
|
SetLocalLocation(GetItemActivator(), "RHUN_RECALL_L2", GetLocation(GetItemActivator()));
|
||
|
string sTag = "RHUN_RECALL_P2";
|
||
|
object oClicker = GetItemActivator();
|
||
|
object oTarget = GetObjectByTag(sTag);
|
||
|
AssignCommand(oClicker, ClearAllActions());
|
||
|
AssignCommand(oClicker, PlaySound("as_mg_telepout1"));
|
||
|
AssignCommand(oClicker, JumpToObject(oTarget));
|
||
|
AssignCommand(oClicker, ActionDoCommand(ClearAllActions()));}
|
||
|
|
||
|
else if (itemTag == "RHUN_RECALL_3")
|
||
|
{
|
||
|
object oPortal = GetObjectByTag("RHUN_RECALL_P3");
|
||
|
SetLocalInt(GetItemActivator(), "RHUN_RECALL_U3", 1);
|
||
|
SetLocalLocation(GetItemActivator(), "RHUN_RECALL_L3", GetLocation(GetItemActivator()));
|
||
|
string sTag = "RHUN_RECALL_P3";
|
||
|
object oClicker = GetItemActivator();
|
||
|
object oTarget = GetObjectByTag(sTag);
|
||
|
AssignCommand(oClicker, ClearAllActions());
|
||
|
AssignCommand(oClicker, PlaySound("as_mg_telepout1"));
|
||
|
AssignCommand(oClicker, JumpToObject(oTarget));
|
||
|
AssignCommand(oClicker, ActionDoCommand(ClearAllActions()));}
|
||
|
|
||
|
else if (itemTag == "RHUN_RECALL_4")
|
||
|
{
|
||
|
object oPortal = GetObjectByTag("RHUN_RECALL_P4");
|
||
|
SetLocalInt(GetItemActivator(), "RHUN_RECALL_U4", 1);
|
||
|
SetLocalLocation(GetItemActivator(), "RHUN_RECALL_L4", GetLocation(GetItemActivator()));
|
||
|
string sTag = "RHUN_RECALL_P4";
|
||
|
object oClicker = GetItemActivator();
|
||
|
object oTarget = GetObjectByTag(sTag);
|
||
|
AssignCommand(oClicker, ClearAllActions());
|
||
|
AssignCommand(oClicker, PlaySound("as_mg_telepout1"));
|
||
|
AssignCommand(oClicker, JumpToObject(oTarget));
|
||
|
AssignCommand(oClicker, ActionDoCommand(ClearAllActions()));}
|
||
|
|
||
|
else if (itemTag == "RHUN_RECALL_5")
|
||
|
{
|
||
|
object oPortal = GetObjectByTag("RHUN_RECALL_P5");
|
||
|
SetLocalInt(GetItemActivator(), "RHUN_RECALL_U5", 1);
|
||
|
SetLocalLocation(GetItemActivator(), "RHUN_RECALL_L5", GetLocation(GetItemActivator()));
|
||
|
string sTag = "RHUN_RECALL_P5";
|
||
|
object oClicker = GetItemActivator();
|
||
|
object oTarget = GetObjectByTag(sTag);
|
||
|
AssignCommand(oClicker, ClearAllActions());
|
||
|
AssignCommand(oClicker, PlaySound("as_mg_telepout1"));
|
||
|
AssignCommand(oClicker, JumpToObject(oTarget));
|
||
|
AssignCommand(oClicker, ActionDoCommand(ClearAllActions()));}
|
||
|
|
||
|
else if (itemTag == "RHUN_RECALL_6")
|
||
|
{
|
||
|
object oPortal = GetObjectByTag("RHUN_RECALL_P6");
|
||
|
SetLocalInt(GetItemActivator(), "RHUN_RECALL_U6", 1);
|
||
|
SetLocalLocation(GetItemActivator(), "RHUN_RECALL_L6", GetLocation(GetItemActivator()));
|
||
|
string sTag = "RHUN_RECALL_P6";
|
||
|
object oClicker = GetItemActivator();
|
||
|
object oTarget = GetObjectByTag(sTag);
|
||
|
AssignCommand(oClicker, ClearAllActions());
|
||
|
AssignCommand(oClicker, PlaySound("as_mg_telepout1"));
|
||
|
AssignCommand(oClicker, JumpToObject(oTarget));
|
||
|
AssignCommand(oClicker, ActionDoCommand(ClearAllActions()));}
|
||
|
|
||
|
else if (itemTag == "RHUN_RECALL_7")
|
||
|
{
|
||
|
object oPortal = GetObjectByTag("RHUN_RECALL_P7");
|
||
|
SetLocalInt(GetItemActivator(), "RHUN_RECALL_U7", 1);
|
||
|
SetLocalLocation(GetItemActivator(), "RHUN_RECALL_L7", GetLocation(GetItemActivator()));
|
||
|
string sTag = "RHUN_RECALL_P7";
|
||
|
object oClicker = GetItemActivator();
|
||
|
object oTarget = GetObjectByTag(sTag);
|
||
|
AssignCommand(oClicker, ClearAllActions());
|
||
|
AssignCommand(oClicker, PlaySound("as_mg_telepout1"));
|
||
|
AssignCommand(oClicker, JumpToObject(oTarget));
|
||
|
AssignCommand(oClicker, ActionDoCommand(ClearAllActions()));}
|
||
|
|
||
|
else if (itemTag == "RHUN_RECALL_8")
|
||
|
{
|
||
|
object oPortal = GetObjectByTag("RHUN_RECALL_P8");
|
||
|
SetLocalInt(GetItemActivator(), "RHUN_RECALL_U8", 1);
|
||
|
SetLocalLocation(GetItemActivator(), "RHUN_RECALL_L8", GetLocation(GetItemActivator()));
|
||
|
string sTag = "RHUN_RECALL_P8";
|
||
|
object oClicker = GetItemActivator();
|
||
|
object oTarget = GetObjectByTag(sTag);
|
||
|
AssignCommand(oClicker, ClearAllActions());
|
||
|
AssignCommand(oClicker, PlaySound("as_mg_telepout1"));
|
||
|
AssignCommand(oClicker, JumpToObject(oTarget));
|
||
|
AssignCommand(oClicker, ActionDoCommand(ClearAllActions()));}
|
||
|
|
||
|
else if (itemTag == "RHUN_RECALL_9")
|
||
|
{
|
||
|
object oPortal = GetObjectByTag("RHUN_RECALL_WC");
|
||
|
SetLocalInt(GetItemActivator(), "RHUN_RECALL_U9", 1);
|
||
|
SetLocalLocation(GetItemActivator(), "RHUN_RECALL_L9", GetLocation(GetItemActivator()));
|
||
|
string sTag = "RHUN_RECALL_WC";
|
||
|
object oClicker = GetItemActivator();
|
||
|
object oTarget = GetObjectByTag(sTag);
|
||
|
AssignCommand(oClicker, ClearAllActions());
|
||
|
AssignCommand(oClicker, PlaySound("as_mg_telepout1"));
|
||
|
AssignCommand(oClicker, JumpToObject(oTarget));
|
||
|
AssignCommand(oClicker, ActionDoCommand(ClearAllActions()));}
|
||
|
|
||
|
else if (itemTag == "SHA_DARKELF_RECALL")
|
||
|
{
|
||
|
SetLocalInt(GetItemActivator(), "DARKELF_RECALL", 1);
|
||
|
SetLocalLocation(GetItemActivator(), "DARKELF_RECALL", GetLocation(GetItemActivator()));
|
||
|
string sTag = "RECALL_DARKELF_LIGHTS";
|
||
|
object oClicker = GetItemActivator();
|
||
|
object oTarget = GetObjectByTag(sTag);
|
||
|
AssignCommand(oClicker, ClearAllActions());
|
||
|
AssignCommand(oClicker, PlaySound("as_mg_telepout1"));
|
||
|
AssignCommand(oClicker, JumpToObject(oTarget));
|
||
|
AssignCommand(oClicker, ActionDoCommand(ClearAllActions()));}
|
||
|
|
||
|
else if (itemTag == "DROW_ROGUE_RECALL")
|
||
|
{
|
||
|
SetLocalInt(GetItemActivator(), "SHA_ROGUE_RECALL", 1);
|
||
|
SetLocalLocation(GetItemActivator(), "SHA_ROGUE_RECALL", GetLocation(GetItemActivator()));
|
||
|
string sTag = "SHA_ROGUE_RECALL";
|
||
|
object oClicker = GetItemActivator();
|
||
|
object oTarget = GetObjectByTag(sTag);
|
||
|
AssignCommand(oClicker, ClearAllActions());
|
||
|
AssignCommand(oClicker, PlaySound("as_mg_telepout1"));
|
||
|
AssignCommand(oClicker, JumpToObject(oTarget));
|
||
|
AssignCommand(oClicker, ActionDoCommand(ClearAllActions()));}
|
||
|
|
||
|
else if (itemTag == "HILL_GIANT_RECALL")
|
||
|
{
|
||
|
SetLocalInt(GetItemActivator(), "GIANT_RECALL", 1);
|
||
|
SetLocalLocation(GetItemActivator(), "GIANT_RECALL", GetLocation(GetItemActivator()));
|
||
|
string sTag = "Well_Of_Souls";
|
||
|
object oClicker = GetItemActivator();
|
||
|
object oTarget = GetObjectByTag(sTag);
|
||
|
AssignCommand(oClicker, ClearAllActions());
|
||
|
AssignCommand(oClicker, PlaySound("as_mg_telepout1"));
|
||
|
AssignCommand(oClicker, JumpToObject(oTarget));
|
||
|
AssignCommand(oClicker, ActionDoCommand(ClearAllActions()));}
|
||
|
|
||
|
else if (itemTag == "GOBLINOID_RECALL")
|
||
|
{
|
||
|
SetLocalInt(GetItemActivator(), "GOBLIN_RECALL", 1);
|
||
|
SetLocalLocation(GetItemActivator(), "GOBLIN_RECALL", GetLocation(GetItemActivator()));
|
||
|
string sTag = "RECALL_GOBLIN";
|
||
|
object oClicker = GetItemActivator();
|
||
|
object oTarget = GetObjectByTag(sTag);
|
||
|
AssignCommand(oClicker, ClearAllActions());
|
||
|
AssignCommand(oClicker, PlaySound("as_mg_telepout1"));
|
||
|
AssignCommand(oClicker, JumpToObject(oTarget));
|
||
|
AssignCommand(oClicker, ActionDoCommand(ClearAllActions()));}
|
||
|
|
||
|
else if (itemTag == "RECALL_AQUELF")
|
||
|
{
|
||
|
SetLocalInt(GetItemActivator(), "RECALL_AQUATIC", 1);
|
||
|
SetLocalLocation(GetItemActivator(), "RECALL_AQUATIC", GetLocation(GetItemActivator()));
|
||
|
string sTag = "AQUATIC_RECALL";
|
||
|
object oClicker = GetItemActivator();
|
||
|
object oTarget = GetObjectByTag(sTag);
|
||
|
AssignCommand(oClicker, ClearAllActions());
|
||
|
AssignCommand(oClicker, PlaySound("as_mg_telepout1"));
|
||
|
AssignCommand(oClicker, JumpToObject(oTarget));
|
||
|
AssignCommand(oClicker, ActionDoCommand(ClearAllActions()));}
|
||
|
|
||
|
else if (itemTag == "RHUN_HOB_HRS")
|
||
|
{
|
||
|
object oPC = GetItemActivator();
|
||
|
object oArea = GetArea (oPC);
|
||
|
object oPortal = GetNearestObjectByTag("RHUN_CRBL_PORT", oPC);
|
||
|
{
|
||
|
if (oPortal == OBJECT_INVALID){
|
||
|
//Do Nothing
|
||
|
}
|
||
|
else {
|
||
|
DestroyObject(oPortal);}
|
||
|
}
|
||
|
vector vPosition = GetPosition (oPC);
|
||
|
float fOrientation = GetFacing (oPC);
|
||
|
location lSpawn = Location (oArea, vPosition, fOrientation);
|
||
|
AssignCommand(oPC, ClearAllActions(TRUE));
|
||
|
AssignCommand(oPC, PlaySound("as_mg_telepout1"));
|
||
|
CreateObject(OBJECT_TYPE_PLACEABLE, "crystal_portal", lSpawn, TRUE);}
|
||
|
|
||
|
else if (itemTag == "RHUN_CRYSBALL")
|
||
|
{
|
||
|
object oPC = GetItemActivator();
|
||
|
object oArea = GetArea (oPC);
|
||
|
object oPortal = GetNearestObjectByTag("RHUN_CRBL_PORT", oPC);
|
||
|
{
|
||
|
if (oPortal == OBJECT_INVALID){
|
||
|
//Do Nothing
|
||
|
}
|
||
|
else {
|
||
|
DestroyObject(oPortal);}
|
||
|
}
|
||
|
vector vPosition = GetPosition (oPC);
|
||
|
float fOrientation = GetFacing (oPC);
|
||
|
location lSpawn = Location (oArea, vPosition, fOrientation);
|
||
|
AssignCommand(oPC, ClearAllActions(TRUE));
|
||
|
AssignCommand(oPC, PlaySound("as_mg_telepout1"));
|
||
|
CreateObject(OBJECT_TYPE_PLACEABLE, "crystal_portal", lSpawn, TRUE);}
|
||
|
|
||
|
else if (itemTag == "RHUN_OBPC_1")
|
||
|
{
|
||
|
object oTarget = GetObjectByTag("TELE_PORT_1");
|
||
|
object oPC = GetItemActivator();
|
||
|
AssignCommand(oPC, ClearAllActions(TRUE));
|
||
|
AssignCommand(oPC, PlaySound("as_mg_telepout1"));
|
||
|
AssignCommand(oPC, JumpToObject(oTarget));
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectVisualEffect(VFX_IMP_LIGHTNING_M), oTarget);
|
||
|
AssignCommand(oPC, ActionDoCommand(ClearAllActions()));}
|
||
|
|
||
|
else if (itemTag == "RHUN_OBPC_2")
|
||
|
{
|
||
|
object oTarget = GetObjectByTag("TELE_PORT_2");
|
||
|
object oPC = GetItemActivator();
|
||
|
AssignCommand(oPC, ClearAllActions(TRUE));
|
||
|
AssignCommand(oPC, PlaySound("as_mg_telepout1"));
|
||
|
AssignCommand(oPC, JumpToObject(oTarget));
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectVisualEffect(VFX_IMP_LIGHTNING_M), oTarget);
|
||
|
AssignCommand(oPC, ActionDoCommand(ClearAllActions()));}
|
||
|
|
||
|
else if (itemTag == "RHUN_OBPC_3")
|
||
|
{
|
||
|
object oTarget = GetObjectByTag("TELE_PORT_3");
|
||
|
object oPC = GetItemActivator();
|
||
|
AssignCommand(oPC, ClearAllActions(TRUE));
|
||
|
AssignCommand(oPC, PlaySound("as_mg_telepout1"));
|
||
|
AssignCommand(oPC, JumpToObject(oTarget));
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectVisualEffect(VFX_IMP_LIGHTNING_M), oTarget);
|
||
|
AssignCommand(oPC, ActionDoCommand(ClearAllActions()));}
|
||
|
|
||
|
else if (itemTag == "RHUN_OBPC_4")
|
||
|
{
|
||
|
object oTarget = GetObjectByTag("TELE_PORT_4");
|
||
|
object oPC = GetItemActivator();
|
||
|
AssignCommand(oPC, ClearAllActions(TRUE));
|
||
|
AssignCommand(oPC, PlaySound("as_mg_telepout1"));
|
||
|
AssignCommand(oPC, JumpToObject(oTarget));
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectVisualEffect(VFX_IMP_LIGHTNING_M), oTarget);
|
||
|
AssignCommand(oPC, ActionDoCommand(ClearAllActions()));}
|
||
|
|
||
|
else if (itemTag == "RHUN_OBPC_5")
|
||
|
{
|
||
|
object oTarget = GetObjectByTag("TELE_PORT_5");
|
||
|
object oPC = GetItemActivator();
|
||
|
AssignCommand(oPC, ClearAllActions(TRUE));
|
||
|
AssignCommand(oPC, PlaySound("as_mg_telepout1"));
|
||
|
AssignCommand(oPC, JumpToObject(oTarget));
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectVisualEffect(VFX_IMP_LIGHTNING_M), oTarget);
|
||
|
AssignCommand(oPC, ActionDoCommand(ClearAllActions()));}
|
||
|
|
||
|
|
||
|
else if (itemTag == "RHUN_OBPC_6")
|
||
|
{
|
||
|
object oTarget = GetObjectByTag("TELE_PORT_6");
|
||
|
object oPC = GetItemActivator();
|
||
|
AssignCommand(oPC, ClearAllActions(TRUE));
|
||
|
AssignCommand(oPC, PlaySound("as_mg_telepout1"));
|
||
|
AssignCommand(oPC, JumpToObject(oTarget));
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectVisualEffect(VFX_IMP_LIGHTNING_M), oTarget);
|
||
|
AssignCommand(oPC, ActionDoCommand(ClearAllActions()));}
|
||
|
|
||
|
else if (itemTag == "RHUN_OBPC_7")
|
||
|
{
|
||
|
object oTarget = GetObjectByTag("TELE_PORT_7");
|
||
|
object oPC = GetItemActivator();
|
||
|
AssignCommand(oPC, ClearAllActions(TRUE));
|
||
|
AssignCommand(oPC, PlaySound("as_mg_telepout1"));
|
||
|
AssignCommand(oPC, JumpToObject(oTarget));
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectVisualEffect(VFX_IMP_LIGHTNING_M), oTarget);
|
||
|
AssignCommand(oPC, ActionDoCommand(ClearAllActions()));}
|
||
|
else if (itemTag == "RHUN_OBPC_8")
|
||
|
{
|
||
|
object oTarget = GetObjectByTag("TELE_PORT_8");
|
||
|
object oPC = GetItemActivator();
|
||
|
AssignCommand(oPC, ClearAllActions(TRUE));
|
||
|
AssignCommand(oPC, PlaySound("as_mg_telepout1"));
|
||
|
AssignCommand(oPC, JumpToObject(oTarget));
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectVisualEffect(VFX_IMP_LIGHTNING_M), oTarget);
|
||
|
AssignCommand(oPC, ActionDoCommand(ClearAllActions()));
|
||
|
}
|
||
|
else if (itemTag == "RHUN_OBPC_9")
|
||
|
{
|
||
|
object oTarget = GetObjectByTag("TELE_PORT_9");
|
||
|
object oPC = GetItemActivator();
|
||
|
AssignCommand(oPC, ClearAllActions(TRUE));
|
||
|
AssignCommand(oPC, PlaySound("as_mg_telepout1"));
|
||
|
AssignCommand(oPC, JumpToObject(oTarget));
|
||
|
ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectVisualEffect(VFX_IMP_LIGHTNING_M), oTarget);
|
||
|
AssignCommand(oPC, ActionDoCommand(ClearAllActions()));}
|
||
|
else if (itemTag == "RHUN_PARTREC")
|
||
|
{
|
||
|
object oPC = GetItemActivator();
|
||
|
object oLeader = GetFactionLeader(oPC);
|
||
|
if (oLeader != oPC)
|
||
|
{
|
||
|
if (GetTag(GetArea(oLeader)) == "TheHighSeasZ"){
|
||
|
object oTaerJ = GetItemActivator();
|
||
|
sSayThis = "Your party leader is sailing the high seas and you cannot reach them.";
|
||
|
AssignCommand(oTaerJ, ClearAllActions(TRUE));
|
||
|
AssignCommand(oTaerJ, ActionSpeakString(sSayThis, iTalkVolume));}
|
||
|
else if (GetTag(GetArea(oLeader)) == "GatewaytoRhun"){
|
||
|
object oTaerJ = GetItemActivator();
|
||
|
sSayThis = "You cannot teleport out of this world!";
|
||
|
AssignCommand(oTaerJ, ClearAllActions(TRUE));
|
||
|
AssignCommand(oTaerJ, ActionSpeakString(sSayThis, iTalkVolume));}
|
||
|
|
||
|
else if (GetTag(GetArea(oLeader)) == "TheModdersPub"){
|
||
|
object oTaerJ = GetItemActivator();
|
||
|
sSayThis = "You cannot teleport out of this world!";
|
||
|
AssignCommand(oTaerJ, ClearAllActions(TRUE));
|
||
|
AssignCommand(oTaerJ, ActionSpeakString(sSayThis, iTalkVolume));}
|
||
|
|
||
|
else {
|
||
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_UNSUMMON), oPC);
|
||
|
AssignCommand(oPC, JumpToObject(oLeader));}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
SendMessageToPC(oPC, "You are the party leader!");
|
||
|
}
|
||
|
}
|
||
|
|
||
|
else if (itemTag == "RHUN_CURALL")
|
||
|
{
|
||
|
object oUser;
|
||
|
effect eHeal;
|
||
|
effect eHealVis = EffectVisualEffect(VFX_IMP_HEALING_S);
|
||
|
int nCurrentHitPoints, nMaxHitPoints, nVisualEffectId;
|
||
|
oUser = GetItemActivator();
|
||
|
nMaxHitPoints = GetMaxHitPoints(oUser);
|
||
|
nCurrentHitPoints = GetCurrentHitPoints(oUser);
|
||
|
if ( nCurrentHitPoints < nMaxHitPoints )
|
||
|
{
|
||
|
eHeal = EffectHeal(nMaxHitPoints - nCurrentHitPoints);
|
||
|
ApplyEffectToObject( DURATION_TYPE_INSTANT, eHeal, oUser );
|
||
|
ApplyEffectToObject( DURATION_TYPE_INSTANT, eHealVis, oUser );}}
|
||
|
|
||
|
else if (itemTag == "RHUN_RESTSIT")
|
||
|
{
|
||
|
object oUser;
|
||
|
oUser = GetItemActivator();
|
||
|
AssignCommand(oUser, ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS, 0.5, 9999.0));}
|
||
|
|
||
|
else if (itemTag == "Drum")
|
||
|
{
|
||
|
ExecuteScript("bardsongonact", GetItemActivator());}
|
||
|
|
||
|
else if (itemTag == "Mandolin")
|
||
|
{
|
||
|
ExecuteScript("bardsongonact", GetItemActivator());}
|
||
|
|
||
|
else if (itemTag == "Pipes")
|
||
|
{
|
||
|
ExecuteScript("bardsongonact", GetItemActivator());}
|
||
|
|
||
|
else if (itemTag == "Horn")
|
||
|
{
|
||
|
ExecuteScript("bardsongonact", GetItemActivator());}
|
||
|
|
||
|
else if (itemTag == "Harp")
|
||
|
{
|
||
|
ExecuteScript("bardsongonact", GetItemActivator());}
|
||
|
|
||
|
else if (itemTag == "RHUN_TAL_TAN")
|
||
|
{
|
||
|
object oClicker = GetItemActivator();
|
||
|
object oHench = GetHenchman(oClicker);
|
||
|
{
|
||
|
if (GetTag(oHench) == "RHUN_SUDEMON"){
|
||
|
string sSayThis;
|
||
|
int iTalkVolume = TALKVOLUME_TALK;
|
||
|
int iTalkFlag = 0;
|
||
|
sSayThis = "I can only summon one demon at a time.";
|
||
|
AssignCommand(oClicker, ClearAllActions(TRUE));
|
||
|
AssignCommand(oClicker, ActionSpeakString(sSayThis, iTalkVolume));}
|
||
|
else {
|
||
|
string sSayThis;
|
||
|
int iTalkVolume = TALKVOLUME_TALK;
|
||
|
int iTalkFlag = 0;
|
||
|
object oDemon = CreateObject(OBJECT_TYPE_CREATURE, "balsum", GetLocation(oClicker), FALSE);
|
||
|
sSayThis = "I call forth upon you to do my bidding!";
|
||
|
AssignCommand(oClicker, ClearAllActions(TRUE));
|
||
|
AssignCommand(oClicker, ActionSpeakString(sSayThis, iTalkVolume));
|
||
|
AddHenchman(oClicker, oDemon);
|
||
|
AdjustAlignment(oClicker, ALIGNMENT_EVIL, 3);
|
||
|
ApplyEffectAtLocation(DURATION_TYPE_PERMANENT, EffectVisualEffect(VFX_IMP_UNSUMMON), GetLocation(oDemon));}}}
|
||
|
|
||
|
else if (itemTag == "PCList3")
|
||
|
{
|
||
|
object oActivator = GetItemActivator();
|
||
|
AssignCommand(oActivator, ActionStartConversation(oActivator, "c_pcl_activate", TRUE));}
|
||
|
|
||
|
else if (itemTag == "PCList2")
|
||
|
{
|
||
|
object oActivator = GetItemActivator();
|
||
|
AssignCommand(oActivator, ActionStartConversation(oActivator, "c_pcl_activate2", TRUE));}
|
||
|
|
||
|
else if (itemTag == "TAER_PRISTNCR")
|
||
|
{
|
||
|
object oTaerJ = GetItemActivator();
|
||
|
sSayThis = "This item doesn't seem to do anything here.";
|
||
|
AssignCommand(oTaerJ, ClearAllActions(TRUE));
|
||
|
AssignCommand(oTaerJ, ActionSpeakString(sSayThis, iTalkVolume));
|
||
|
}
|
||
|
else if(itemTag == "SHA_ZOLAD_STONE")
|
||
|
{
|
||
|
object oPC = GetItemActivator();
|
||
|
object oTarget = GetWaypointByTag("ABYSS_PORTAL" + IntToString(d10(1)));
|
||
|
location lTarget = GetLocation(oTarget);
|
||
|
if (GetAreaFromLocation(lTarget)==OBJECT_INVALID) return;
|
||
|
AssignCommand(oPC, ClearAllActions());
|
||
|
AssignCommand(oPC, ActionJumpToLocation(lTarget));
|
||
|
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectVisualEffect(VFX_FNF_DISPEL_DISJUNCTION), oPC);
|
||
|
}
|
||
|
else if (itemTag == "SHA_EYEOFMOON")
|
||
|
{
|
||
|
object oEmitter = GetItemActivator();
|
||
|
object FocusPT;
|
||
|
float fdur = 7.5;
|
||
|
if(GetTag(GetArea(oEmitter)) == "VelkyncheelTrezin")
|
||
|
{
|
||
|
FocusPT = GetWaypointByTag("FocusTrezin");
|
||
|
}
|
||
|
else if(GetTag(GetArea(oEmitter)) == "VelkyncheelTreznt")
|
||
|
{
|
||
|
FocusPT = GetWaypointByTag("FocusTreznt");
|
||
|
}
|
||
|
else if(GetTag(GetArea(oEmitter)) == "VelkyncheelWernin")
|
||
|
{
|
||
|
FocusPT = GetWaypointByTag("FocusWermin");
|
||
|
}
|
||
|
else if(GetTag(GetArea(oEmitter)) == "VelkyncheelWernnt")
|
||
|
{
|
||
|
FocusPT = GetWaypointByTag("FocusWernnt");
|
||
|
}
|
||
|
else if(GetTag(GetArea(oEmitter)) == "TempleofShar")
|
||
|
{
|
||
|
FocusPT = GetObjectByTag("SHA_SHARALTAR");
|
||
|
fdur = 4.5;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
AssignCommand(oEmitter, SpeakString("The Eye of Moon does not seem to function here."));
|
||
|
return;
|
||
|
}
|
||
|
vector v1 = GetPosition(oEmitter);
|
||
|
vector v2 = GetPosition(FocusPT);
|
||
|
VFXTrace(v1, v2, fdur, oEmitter, VFX_FNF_DISPEL, 1.7);
|
||
|
AssignCommand(oEmitter, SpeakString(ColorText("A magical light leads the way to the source of Shar's evils.", "green")));
|
||
|
}
|
||
|
else if( itemTag == "POTION_OF_BLOOD")
|
||
|
{
|
||
|
ExecuteScript("sha_potion_blood", GetModule());
|
||
|
}
|
||
|
else if (itemTag == "stoneofappraisal")
|
||
|
{
|
||
|
//the object being appraised
|
||
|
object oObjectAppraised = GetItemActivatedTarget();
|
||
|
//must be identified before appraisal
|
||
|
if(GetObjectType(oObjectAppraised) == OBJECT_TYPE_ITEM)
|
||
|
{
|
||
|
if(GetIdentified(oObjectAppraised))
|
||
|
{
|
||
|
SendMessageToPC(GetItemActivator(), ColorText("Stone of Appraisal: ", "green") + GetName(oObjectAppraised) + ColorText(" requires level " + IntToString(GetRequiredLevel(oObjectAppraised)) + " to use.", "yellow"));
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
SendMessageToPC(GetItemActivator(), ColorText("Stone of Appraisal: ", "green") + ColorText("You must identify the item before attempting an appraisal.", "red"));
|
||
|
}
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
SendMessageToPC(GetItemActivator(), ColorText("Stone of Appraisal: ", "green") + ColorText("Target must be an item!", "red"));
|
||
|
}
|
||
|
}
|
||
|
else if (itemTag == "TaerCityKey")
|
||
|
{
|
||
|
ExecuteScript("taerkey", GetModule());
|
||
|
}
|
||
|
else if( itemTag == "SHA_DROW_ACADEMY_RECALL")
|
||
|
{
|
||
|
ExecuteScript("drow_academy_rcl", GetModule());
|
||
|
}
|
||
|
else if( itemTag == "rude_vamprecall")
|
||
|
{
|
||
|
ExecuteScript("vamprecall", GetModule());
|
||
|
}
|
||
|
else if( itemTag == "rude_werecatrecall")
|
||
|
{
|
||
|
ExecuteScript("werecatrecall", GetModule());
|
||
|
}
|
||
|
else if (itemTag == "sha_grt_eye")
|
||
|
{
|
||
|
AssignCommand(GetItemActivator(), ActionStartConversation(GetItemActivator(), "sha_grt_eye", TRUE, FALSE));
|
||
|
}
|
||
|
else if(FindSubString(itemTag, "SHA_HOUSE_INSIGNIA") >= 0)
|
||
|
{
|
||
|
ExecuteScript("drow_house_rcl", GetModule());
|
||
|
}
|
||
|
else if(FindSubString(itemTag, "SHA_SLAVEMAKER") >= 0)
|
||
|
{
|
||
|
ExecuteScript("s_slavemaker", GetModule());
|
||
|
}
|
||
|
else if(FindSubString(itemTag, "SHA_EPICBAG_BROOCH") >=0)
|
||
|
{
|
||
|
ExecuteScript("sha_epicbags", GetModule());
|
||
|
}
|
||
|
|
||
|
}
|