PWE_PRC8/_module/nss/ats_inc_tool.nss
Jaysyn904 ee1dc35889 Initial Commit
Initial Commit
2025-04-03 10:29:41 -04:00

149 lines
5.1 KiB
Plaintext

//Dependencies: ats_inc_common, ats_config, ats_const_skill, ats_const_mat, ats_const_common,
// ats_inc_material
object ATS_GetToolForCraft(object oPlayer, string sTradeskillName)
{
if(sTradeskillName == CSTR_SKILLNAME_WEAPONCRAFTING ||
sTradeskillName == CSTR_SKILLNAME_ARMORCRAFTING ||
sTradeskillName == CSTR_SKILLNAME_BLACKSMITHING)
{
// Gets the tool in the right hand slot of the player
object oToolOnPlayer = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPlayer);
if(ATS_GetTagBaseType(oToolOnPlayer) == CSTR_SMITHTOOL)
return oToolOnPlayer;
else
{
oToolOnPlayer = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPlayer);
if(ATS_GetTagBaseType(oToolOnPlayer) == CSTR_SMITHTOOL)
return oToolOnPlayer;
else
return OBJECT_INVALID;
}
}
else if(sTradeskillName == CSTR_SKILLNAME_TANNING)
{
if(GetLocalInt(oPlayer, "ats_tanning_subskill") == ATS_TANNING_SUBSKILL_SEWING)
{
return GetLocalObject(oPlayer, "ats_activated_item");
}
else
SetLocalInt(oPlayer, "ats_flag_notool_needed", TRUE);
}
else if(sTradeskillName == CSTR_SKILLNAME_GEMCUTTING)
{
return GetLocalObject(oPlayer, "ats_activated_item");
}
else if(sTradeskillName == CSTR_SKILLNAME_JEWELCRAFTING)
{
// Gets the tool in the right hand slot of the player
object oToolOnPlayer = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPlayer);
if(ATS_GetTagBaseType(oToolOnPlayer) == CSTR_JEWELCRAFTINGTOOL)
return oToolOnPlayer;
else
{
oToolOnPlayer = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPlayer);
if(ATS_GetTagBaseType(oToolOnPlayer) == CSTR_JEWELCRAFTINGTOOL)
return oToolOnPlayer;
else
return OBJECT_INVALID;
}
}
else if(sTradeskillName == CSTR_SKILLNAME_BOWYERING)
{
// Gets the tool in the right hand slot of the player
object oToolOnPlayer = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPlayer);
if(ATS_GetTagBaseType(oToolOnPlayer) == CSTR_BOWYERINGTOOL)
return oToolOnPlayer;
else
{
oToolOnPlayer = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPlayer);
if(ATS_GetTagBaseType(oToolOnPlayer) == CSTR_BOWYERINGTOOL)
return oToolOnPlayer;
else
return OBJECT_INVALID;
}
}
//TAILORING TOOL CODE STARTS
else if(sTradeskillName == CSTR_SKILLNAME_TAILOR)
{
// Gets the tool in the right hand slot of the player
object oToolOnPlayer = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPlayer);
if(ATS_GetTagBaseType(oToolOnPlayer) == CSTR_TAILORTOOL)
return oToolOnPlayer;
else
{
oToolOnPlayer = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPlayer);
if(ATS_GetTagBaseType(oToolOnPlayer) == CSTR_TAILORTOOL)
return oToolOnPlayer;
else
return OBJECT_INVALID;
}
}
//TAILORING TOOL CODE STOPS.
//TINKERING TOOL CODE STARTS
else if(sTradeskillName == CSTR_SKILLNAME_TINKER)
{
// Gets the tool in the right hand slot of the player
object oToolOnPlayer = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPlayer);
if(ATS_GetTagBaseType(oToolOnPlayer) == CSTR_TINKERTOOL)
return oToolOnPlayer;
else
{
oToolOnPlayer = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPlayer);
if(ATS_GetTagBaseType(oToolOnPlayer) == CSTR_TINKERTOOL)
return oToolOnPlayer;
else
return OBJECT_INVALID;
}
}
else if(sTradeskillName == CSTR_SKILLNAME_FLETCHING)
{
// Gets the tool in the right hand slot of the player
object oToolOnPlayer = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPlayer);
if(ATS_GetTagBaseType(oToolOnPlayer) == CSTR_FLETCHINGTOOL)
return oToolOnPlayer;
else
{
oToolOnPlayer = GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oPlayer);
if(ATS_GetTagBaseType(oToolOnPlayer) == CSTR_FLETCHINGTOOL)
return oToolOnPlayer;
else
return OBJECT_INVALID;
}
}
return OBJECT_INVALID;
}
void ATS_AdjustCraftToolDurability(object oCraftTool, int iAmount)
{
int iItemDurability = 0;
int iMaterialType;
iItemDurability = ATS_GetItemDurability(oCraftTool);
if(iItemDurability == 0)
{
iMaterialType = ATS_GetMaterialType(oCraftTool);
iItemDurability = ATS_GetItemMaxDurability(oCraftTool);
if(iItemDurability == 0)
{
if(GetTag(oCraftTool) == "hc_skinning")
iItemDurability = 10;
else
iItemDurability = ATS_GetDefaultMaterialDurability(iMaterialType);
}
}
iItemDurability -= iAmount;
DEBUG_SpeakString("Durability: " + IntToString(iItemDurability));
ATS_SetItemDurability(oCraftTool, iItemDurability);
if(iItemDurability <= 0)
ATS_BreakItem(oCraftTool, 2.0);
}