WoR_PRC8/_module/nss/recall_stone5.nss

324 lines
11 KiB
Plaintext
Raw Permalink Normal View History

2025-04-03 11:49:34 -04:00
string sSayThis;
int iTalkVolume = TALKVOLUME_TALK;
int iTalkFlag = 0;
#include "NW_I0_Plot"
#include "in_e_specialvfx"
void main()
{
string oItemTag = GetTag(GetItemActivated());
if (oItemTag == "NW_IT_RECALL")
{
object oTaerJ = GetItemActivator();
sSayThis = "You cannot use this item when you are in combat.";
SendMessageToPC(oTaerJ, sSayThis);}
else if (oItemTag == "RHUN_RECALL_1")
{
object oTaerJ = GetItemActivator();
sSayThis = "You cannot use this item when you are in combat.";
SendMessageToPC(oTaerJ, sSayThis);}
else if (oItemTag == "RHUN_RECALL_2")
{
object oTaerJ = GetItemActivator();
sSayThis = "You cannot use this item when you are in combat.";
SendMessageToPC(oTaerJ, sSayThis);}
else if (oItemTag == "RHUN_RECALL_3")
{
object oTaerJ = GetItemActivator();
sSayThis = "You cannot use this item when you are in combat.";
SendMessageToPC(oTaerJ, sSayThis);}
else if (oItemTag == "RHUN_RECALL_4")
{
object oTaerJ = GetItemActivator();
sSayThis = "You cannot use this item when you are in combat.";
SendMessageToPC(oTaerJ, sSayThis);}
else if (oItemTag == "RHUN_RECALL_5")
{
object oTaerJ = GetItemActivator();
sSayThis = "You cannot use this item when you are in combat.";
SendMessageToPC(oTaerJ, sSayThis);}
else if (oItemTag == "RHUN_RECALL_6")
{
object oTaerJ = GetItemActivator();
sSayThis = "You cannot use this item when you are in combat.";
SendMessageToPC(oTaerJ, sSayThis);}
else if (oItemTag == "RHUN_RECALL_7")
{
object oTaerJ = GetItemActivator();
sSayThis = "You cannot use this item when you are in combat.";
SendMessageToPC(oTaerJ, sSayThis);}
else if (oItemTag == "RHUN_RECALL_8")
{
object oTaerJ = GetItemActivator();
sSayThis = "You cannot use this item when you are in combat.";
SendMessageToPC(oTaerJ, sSayThis);}
else if (oItemTag == "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 (oItemTag == "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 (oItemTag == "RHUN_OBPC_1")
{
object oTaerJ = GetItemActivator();
sSayThis = "You cannot use this item when you are in combat.";
SendMessageToPC(oTaerJ, sSayThis);}
else if (oItemTag == "RHUN_OBPC_2")
{
object oTaerJ = GetItemActivator();
sSayThis = "You cannot use this item when you are in combat.";
SendMessageToPC(oTaerJ, sSayThis);}
else if (oItemTag == "RHUN_OBPC_3")
{
object oTaerJ = GetItemActivator();
sSayThis = "You cannot use this item when you are in combat.";
SendMessageToPC(oTaerJ, sSayThis);}
else if (oItemTag == "RHUN_OBPC_4")
{
object oTaerJ = GetItemActivator();
sSayThis = "You cannot use this item when you are in combat.";
SendMessageToPC(oTaerJ, sSayThis);}
else if (oItemTag == "RHUN_OBPC_5")
{
object oTaerJ = GetItemActivator();
sSayThis = "You cannot use this item when you are in combat.";
SendMessageToPC(oTaerJ, sSayThis);}
else if (oItemTag == "RHUN_OBPC_6")
{
object oTaerJ = GetItemActivator();
sSayThis = "You cannot use this item when you are in combat.";
SendMessageToPC(oTaerJ, sSayThis);}
else if (oItemTag == "RHUN_OBPC_7")
{
object oTaerJ = GetItemActivator();
sSayThis = "You cannot use this item when you are in combat.";
SendMessageToPC(oTaerJ, sSayThis);}
else if (oItemTag == "RHUN_OBPC_8")
{
object oTaerJ = GetItemActivator();
sSayThis = "You cannot use this item when you are in combat.";
SendMessageToPC(oTaerJ, sSayThis);}
else if (oItemTag == "RHUN_OBPC_9")
{
object oTaerJ = GetItemActivator();
sSayThis = "You cannot use this item when you are in combat.";
SendMessageToPC(oTaerJ, sSayThis);}
else if (oItemTag == "RHUN_PARTREC")
{
object oTaerJ = GetItemActivator();
sSayThis = "You cannot use this item when you are in combat.";
SendMessageToPC(oTaerJ, sSayThis);}
else if (oItemTag == "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 (oItemTag == "RHUN_RESTSIT")
{
object oUser;
oUser = GetItemActivator();
AssignCommand(oUser, ActionPlayAnimation(ANIMATION_LOOPING_SIT_CROSS, 0.5, 9999.0));}
else if (oItemTag == "Drum")
{
ExecuteScript("bardsongonact", GetItemActivator());}
else if (oItemTag == "Mandolin")
{
ExecuteScript("bardsongonact", GetItemActivator());}
else if (oItemTag == "Pipes")
{
ExecuteScript("bardsongonact", GetItemActivator());}
else if (oItemTag == "Horn")
{
ExecuteScript("bardsongonact", GetItemActivator());}
else if (oItemTag == "Harp")
{
ExecuteScript("bardsongonact", GetItemActivator());}
else if (oItemTag == "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 (oItemTag == "PCList3")
{
object oActivator = GetItemActivator();
AssignCommand(oActivator, ActionStartConversation(oActivator, "c_pcl_activate", TRUE));}
else if (oItemTag == "PCList2")
{
object oActivator = GetItemActivator();
AssignCommand(oActivator, ActionStartConversation(oActivator, "c_pcl_activate2", TRUE));}
else if (oItemTag == "TAER_PRISTNCR")
{
object oTaerJ = GetItemActivator();
sSayThis = "You cannot use this item when you are in combat.";
AssignCommand(oTaerJ, ClearAllActions(TRUE));
AssignCommand(oTaerJ, ActionSpeakString(sSayThis, iTalkVolume));}
else if (oItemTag == "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")
{
//Damage Lady NightBringer for some positive damage.
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("A magical light leads the way to the source of Shar's evils."));
}
else if (oItemTag == "stoneofappraisal")
{
object oPC = GetItemActivator();
sSayThis = "You are in combat! Now is no time for an appraisal!";
SendMessageToPC(oPC, sSayThis);}
else if( oItemTag == "SHA_DROW_ACADEMY_RECALL")
{
ExecuteScript("drow_academy_rcl", GetModule());
}
else if(oItemTag == "rude_vamprecall")
{
ExecuteScript("vamprecall", GetModule());
}
else if( oItemTag == "rude_werecatrecall")
{
ExecuteScript("werecatrecall", GetModule());
}
else if( oItemTag == "POTION_OF_BLOOD")
{
ExecuteScript("sha_potion_blood", GetModule());
}
else if (oItemTag == "sha_grt_eye")
{
AssignCommand(GetItemActivator(), ActionStartConversation(GetItemActivator(), "sha_grt_eye", TRUE, FALSE));
}
else if(FindSubString(oItemTag, "SHA_HOUSE_INSIGNIA") >= 0)
{
ExecuteScript("drow_house_rcl", GetModule());
}
else if(FindSubString(oItemTag, "SHA_SLAVEMAKER") >= 0)
{
ExecuteScript("s_slavemaker", GetModule());
}
else if(FindSubString(oItemTag, "SHA_EPICBAG_BROOCH") >=0)
{
ExecuteScript("sha_epicbags", GetModule());
}
else
{
SendMessageToPC(GetItemActivator(), "You cannot use this item at this moment.");
}
}