Files
dsrc/sku.0/sys.server/compiled/game/script/item/medicine/stimpack.script
T

102 lines
2.0 KiB
Plaintext

/**
*
* Title: stimpack script
* Description: script for handling stimpacks
*/
include library.buff;
include library.sui;
include library.utils;
include library.healing;
const string_id SID_ITEM_LEVEL_TOO_LOW = new string_id("healing", "item_level_too_low");
trigger OnGetAttributes (obj_id player, string[] names, string[] attribs)
{
int idx = utils.getValidAttributeIndex(names);
if (idx == -1)
return SCRIPT_CONTINUE;
if (hasObjVar(self, "healing.power"))
{
names[idx] = "healing_power";
int value = getIntObjVar(self, "healing.power");
attribs[idx] = "" + value;
idx++;
if (idx >= names.length)
return SCRIPT_CONTINUE;
}
if (hasObjVar(self, "healing.combat_level_required"))
{
names[idx] = "healing_combat_level_required";
int value = getIntObjVar(self, "healing.combat_level_required");
attribs[idx] = "" + value;
idx++;
if (idx >= names.length)
return SCRIPT_CONTINUE;
}
names[idx] = "count";
int value = getCount(self);
attribs[idx] = "" + value;
return SCRIPT_CONTINUE;
}
trigger OnObjectMenuRequest(obj_id player, menu_info mi)
{
if (canManipulate(player, self, true, true, 15, true))
{
menu_info_data mid = mi.getMenuItemByType(menu_info_types.ITEM_USE);
if ( mid != null )
{
mid.setServerNotify(true);
}
}
return SCRIPT_CONTINUE;
}
trigger OnObjectMenuSelect(obj_id player, int item)
{
if(isDead(player) || isIncapacitated(player))
return SCRIPT_CONTINUE;
if(buff.hasBuff(player, "feign_death"))
return SCRIPT_CONTINUE;
if ( item == menu_info_types.ITEM_USE)
{
int level = getLevel(player);
int requiredLevel = getIntObjVar(self, "healing.combat_level_required");
if(level < requiredLevel)
{
sendSystemMessage(player, SID_ITEM_LEVEL_TOO_LOW);
return SCRIPT_OVERRIDE;
}
else
{
if (hasObjVar(self, "healing.pool"))
{
int attrib = getIntObjVar(self, "healing.pool");
boolean worked = healing.useHealDamageItem(player, self, attrib);
}
else
{
boolean worked = healing.useHealDamageItem(player, self);
}
}
}
return SCRIPT_CONTINUE;
}