324 lines
11 KiB
Plaintext
324 lines
11 KiB
Plaintext
|
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.");
|
||
|
}
|
||
|
|
||
|
}
|