51 lines
2.0 KiB
Plaintext
51 lines
2.0 KiB
Plaintext
// DM Target Tool
|
|
// by Malishara
|
|
//:://////////////////////////////////////////////////////////
|
|
#include "x2_inc_switches"
|
|
|
|
string ShowVector(vector vSomewhere)
|
|
{ string sVector = FloatToString(vSomewhere.x, 0, 2) + "x "
|
|
+ FloatToString(vSomewhere.y, 0, 2) + "y "
|
|
+ FloatToString(vSomewhere.z, 0, 2) + "z";
|
|
return sVector;
|
|
}
|
|
|
|
// This is the main function for the tag-based script.
|
|
void main()
|
|
{ switch( GetUserDefinedItemEventNumber())
|
|
{ case X2_ITEM_EVENT_ACTIVATE:
|
|
{ // The item's CastSpell Activate or CastSpell UniquePower was just activated.
|
|
object oItemUser = GetItemActivator();
|
|
object oItem = GetItemActivated();
|
|
object oTarget = GetItemActivatedTarget();
|
|
location lTarget = (GetIsObjectValid( oTarget) ? GetLocation( oTarget) : GetItemActivatedTargetLocation());
|
|
if( !GetIsObjectValid( oItemUser) || !GetIsObjectValid( oItem))
|
|
{ SetExecutedScriptReturnValue( X2_EXECUTE_SCRIPT_CONTINUE);
|
|
return;
|
|
}
|
|
|
|
if(!GetIsObjectValid(oTarget))
|
|
{ string sTargetLoc = ShowVector(GetPositionFromLocation(lTarget));
|
|
SendMessageToPC(oItemUser, "Targeted location " + sTargetLoc);
|
|
SetLocalString(oItemUser, "DM_Tool_TargetLoc", sTargetLoc);
|
|
return;
|
|
}
|
|
|
|
SetLocalObject(oItemUser, "DM_Tool_Target", oTarget);
|
|
SendMessageToPC(oItemUser, "Targeted " + GetName(oTarget));
|
|
|
|
if (GetHasInventory(oTarget) &&
|
|
((GetObjectType(oTarget) == OBJECT_TYPE_ITEM) ||
|
|
(GetObjectType(oTarget) == OBJECT_TYPE_PLACEABLE)))
|
|
{ SetLocalObject(oItemUser, "oDM_Bag1", GetLocalObject(oItemUser, "oDM_Bag2"));
|
|
SetLocalObject(oItemUser, "oDM_Bag2", oTarget);
|
|
}
|
|
|
|
}
|
|
SetExecutedScriptReturnValue( X2_EXECUTE_SCRIPT_END);
|
|
return;
|
|
|
|
}
|
|
SetExecutedScriptReturnValue( X2_EXECUTE_SCRIPT_CONTINUE);
|
|
}
|