41 lines
1.2 KiB
Plaintext
41 lines
1.2 KiB
Plaintext
//courtesy of FunkySwerve
|
|
void ForceUnequip (object oTarget, object oItem)
|
|
{
|
|
if (!GetIsObjectValid(oTarget) || GetObjectType(oTarget) != OBJECT_TYPE_CREATURE)
|
|
return;
|
|
|
|
if (!GetIsObjectValid(GetArea(oTarget))) {
|
|
DelayCommand(5.0, ForceUnequip(oTarget, oItem));
|
|
return;
|
|
}
|
|
|
|
if (GetIsDead(oTarget)) {
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectResurrection(), oTarget);
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectHeal(GetMaxHitPoints(oTarget)), oTarget);
|
|
|
|
DelayCommand(0.1, ForceUnequip(oTarget, oItem));
|
|
} else {
|
|
AssignCommand(oTarget, ClearAllActions(TRUE));
|
|
|
|
SetLocalInt(oItem, "ForceUnequipped", TRUE);
|
|
AssignCommand(oTarget, ActionUnequipItem(oItem));
|
|
AssignCommand(oTarget, ActionDoCommand(SetCommandable(TRUE)));
|
|
AssignCommand(oTarget, SetCommandable(FALSE));
|
|
}
|
|
}
|
|
|
|
|
|
void main()
|
|
{
|
|
|
|
object oPC = GetEnteringObject();
|
|
|
|
if (GetTag(GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)) == "NW_IT_TORCH001")
|
|
{
|
|
DelayCommand(0.3, FloatingTextStringOnCreature("You can't use torches underwater!", oPC));
|
|
|
|
DelayCommand(0.3, ForceUnequip(oPC, GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPC)));
|
|
}
|
|
}
|
|
|