73 lines
1.9 KiB
Plaintext
73 lines
1.9 KiB
Plaintext
//Script Name: speedcaster
|
|
//////////////////////////////////////////
|
|
//Created By: Genisys (Guile)
|
|
//Created On: 9/4/08
|
|
/////////////////////////////////////////
|
|
/*
|
|
This is a tagbase item script for the
|
|
item tagnamed "speedcaster", it will
|
|
run through all of the user's memorized
|
|
spells and have them buff themself very
|
|
fast! This is the item, because you
|
|
do not have to keep charging the item!
|
|
*/
|
|
////////////////////////////////////////
|
|
|
|
#include "x2_inc_switches"
|
|
|
|
void main()
|
|
{
|
|
int nEvent = GetUserDefinedItemEventNumber();
|
|
|
|
object oPC; //The caster
|
|
object oItem; //This item
|
|
object oTarget; //The Target of the Item
|
|
|
|
int nResult = X2_EXECUTE_SCRIPT_CONTINUE;
|
|
|
|
//this handles "use" or activation of item.
|
|
if (nEvent == X2_ITEM_EVENT_ACTIVATE)
|
|
{
|
|
oItem = GetItemActivated();
|
|
oPC = GetItemActivator();
|
|
oTarget = GetItemActivatedTarget();
|
|
|
|
//They have to target a creature..
|
|
if(GetObjectType(oTarget)!= OBJECT_TYPE_CREATURE)
|
|
{
|
|
FloatingTextStringOnCreature("You must target a creature!", oPC, FALSE);
|
|
return;
|
|
}
|
|
|
|
//They must be a caster to use the item!
|
|
if ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC)>0)||
|
|
(GetLevelByClass(CLASS_TYPE_DRUID, oPC)>0)||
|
|
(GetLevelByClass(CLASS_TYPE_SORCERER, oPC)>0)||
|
|
(GetLevelByClass(CLASS_TYPE_WIZARD, oPC)>0))
|
|
{
|
|
|
|
//They must be a caster to use the item!
|
|
if ((GetLevelByClass(CLASS_TYPE_CLERIC, oPC)>0)||
|
|
(GetLevelByClass(CLASS_TYPE_DRUID, oPC)>0)||
|
|
(GetLevelByClass(CLASS_TYPE_SORCERER, oPC)>0)||
|
|
(GetLevelByClass(CLASS_TYPE_WIZARD, oPC)>0))
|
|
{
|
|
AssignCommand(oPC, ActionCounterSpell(oTarget));
|
|
}
|
|
|
|
}
|
|
//If it's not a caster they are targeting...
|
|
else
|
|
{
|
|
string sMsg = "The target is not a spell caster!";
|
|
FloatingTextStringOnCreature(sMsg, oPC, FALSE);
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//Pass the return value back to the calling script
|
|
SetExecutedScriptReturnValue(nResult);
|
|
}
|