View Single Post
Old 02-01-2003, 09:03 PM   #19
Obsidian the Black
Elminster
 

Join Date: May 8, 2002
Location: Leeds, West Yorkshire
Posts: 470
Nevermind, it doesnt seem to work. The really important one I wanted was the trigger thing that you walk over, and if you have an item with immunities or resistances on then it removes them. And the stone of Recall thing. How could I add this script:

#include "NW_I0_Plot"
void main()
{
IsRecall();
}

To this script:

//dmw_activate

// ** This script goes in the OnItemActivation event of your Module
// ** Properties. It checks to see if the item used is a DM Helper
// ** And if so, and the user isnt a DM, destroys it, otherwise it
// ** Starts the DM Helper working. "dmw_inc" contains the actual
// ** code that controls the Helpers effects. If you update anything
// ** in it, you must recompile the calling dmw_ script to make
// ** the change take effect.

void ApplyHealingSalve(object oActivator, object oTarget)
{
int iDCRoll=d20();
int iHealPoints=d4();

if(iDCRoll+GetSkillRank(SKILL_HEAL,oActivator)>10)
{
int iHealBonus=FloatToInt(IntToFloat(iDCRoll-10+GetSkillRank(SKILL_HEAL,oActivator))/5.0);
int iTotalHeal=iHealBonus+iHealPoints;

SendMessageToPC(oActivator,"[Success] Roll "+IntToString(iDCRoll)+" + "+IntToString(GetSkillRank(SKILL_HEAL,oActivator))+" vs DC 10");
SendMessageToPC(oActivator,"You heal "+GetName(oTarget)+" for "+IntToString(iHealPoints)+"+"+IntToString(iHealBonus)+" points.");
SendMessageToPC(oTarget,GetName(oActivator)+" heals you for "+IntToString(iTotalHeal)+" points.");
ApplyEffectToObject(DURATION_TYPE_PERMANENT,Effect Heal(iTotalHeal),oTarget);
} else
{
SendMessageToPC(oActivator,"[Fail] Roll "+IntToString(iDCRoll)+" + "+IntToString(GetSkillRank(SKILL_HEAL,oActivator))+" vs DC 10");
SendMessageToPC(oActivator,"You fail to heal "+GetName(oTarget));
}
}

void main()
{
object oItem=GetItemActivated();
object oActivator=GetItemActivator();
object oTarget=GetItemActivatedTarget();

if(GetTag(oItem)=="healingsalve") //apply a healing salve to another player, takes 5 seconds
{
// if(oActivator==oTarget)
// {
// SendMessageToPC(oActivator,"You can not apply this on yourself.");
// } else
if(GetCurrentHitPoints(oTarget)==GetMaxHitPoints(o Target))
{
SendMessageToPC(oActivator,GetName(oTarget)+" is already at full health.");
CreateItemOnObject("healingsalve",oActivator);
return;
}
if(GetDistanceBetween(oActivator,oTarget)>3.0)
{
SendMessageToPC(oActivator,"You must be closer to "+GetName(oTarget));
CreateItemOnObject("healingsalve",oActivator);
return;
}

AssignCommand(oActivator,DelayCommand(5.0,ApplyHea lingSalve(oActivator,oTarget)));
AssignCommand(oActivator,SetCommandable(FALSE,oAct ivator));
AssignCommand(oActivator,DelayCommand(5.1,SetComma ndable(TRUE)));
}

if(GetTag(oItem)=="ReturnofMikailaModuleGude")
{
if(GetIsDM(oActivator)!=TRUE)
{
SendMessageToPC(oActivator,"You are mortal and this is not yours!");
DestroyObject(oItem);
return;
}
object oMyActivator = GetItemActivator();
AssignCommand(oMyActivator, ActionStartConversation(oMyActivator, "mk_moduleguide", TRUE));
}

if(GetTag(oItem)=="DMsHelper")
{
// Test to make sure the activator is a DM, or is a DM
// controlling a creature.
if(GetIsDM(oActivator) != TRUE)
{
object oTest = GetFirstPC();
string sTestName = GetPCPlayerName(oActivator);
int nFound = FALSE;
while (GetIsObjectValid(oTest) && (! nFound))
{
if (GetPCPlayerName(oTest) == sTestName)
{
if(GetIsDM(oTest))
{
nFound = TRUE;
}
else
{
DestroyObject(oItem);
SendMessageToPC(oActivator,"You are mortal and this is not yours!");
return;
}
}
oTest=GetNextPC();
}
}
// get the wand's activator and target, put target info into local vars on activator
object oMyActivator = GetItemActivator();
object oMyTarget = GetItemActivatedTarget();
SetLocalObject(oMyActivator, "dmwandtarget", oMyTarget);
location lMyLoc = GetItemActivatedTargetLocation();
SetLocalLocation(oMyActivator, "dmwandloc", lMyLoc);

//Make the activator start a conversation with itself
AssignCommand(oMyActivator, ActionStartConversation(oMyActivator, "dmwand", TRUE));
return;
}

if(GetTag(oItem)=="AutoFollow")
{
object oTarget = GetItemActivatedTarget();

if(GetIsObjectValid(oTarget))
{
AssignCommand ( oActivator, ActionForceFollowObject(oTarget));
}
return;
}

if(GetTag(oItem)=="WandOfFX")
{

// get the wand's activator and target, put target info into local vars on activator
object oDM = GetItemActivator();
object oMyTarget = GetItemActivatedTarget();
SetLocalObject(oDM, "FXWandTarget", oMyTarget);
location lTargetLoc = GetItemActivatedTargetLocation();
SetLocalLocation(oDM, "FXWandLoc", lTargetLoc);

object oTest=GetFirstPC();
string sTestName = GetPCPlayerName(oDM);
// Test to make sure the activator is a DM, or is a DM
// controlling a creature.

if(GetIsDM(oDM) != TRUE)
{
object oTest = GetFirstPC();
string sTestName = GetPCPlayerName(oDM);
int nFound = FALSE;
while (GetIsObjectValid(oTest) && (! nFound))
{
if (GetPCPlayerName(oTest) == sTestName)
{
if(GetIsDM(oTest))
{
nFound = TRUE;
}
else
{
DestroyObject(oItem);
SendMessageToPC(oDM,"You are mortal and this is not yours!");
return;
}
}
oTest=GetNextPC();
}
}

//Make the activator start a conversation with itself
AssignCommand(oDM, ActionStartConversation(oDM, "fxwand", TRUE));
return;

}
if(GetTag(oItem)=="EmoteWand")
{
AssignCommand(oActivator, ActionStartConversation(oActivator, "emotewand", TRUE));
return;
}
}

Thanks...
Obsidian the Black is offline   Reply With Quote