#include "zep_inc_craft" int StartingConditional() { object oPC = GetPCSpeaker(); object oArmor = GetItemInSlot(INVENTORY_SLOT_HEAD, oPC); if (!GetIsObjectValid(oArmor) || GetPlotFlag(oArmor)) { oArmor = GetItemInSlot(INVENTORY_SLOT_CHEST, oPC); if (!GetIsObjectValid(oArmor) || GetPlotFlag(oArmor)) { SetCustomToken(ZEP_CR_TOKENBASE+4, "You do not have any armor or helmet equipped to modify"); return TRUE; } } if (GetIsDM(oPC)) return FALSE; string sRequired; if (GetBaseItemType(oArmor)==BASE_ITEM_HELMET) { sRequired = "ZEP_CR_HELMET"; } else { int iAC = StringToInt(Get2DAString("parts_chest", "ACBONUS", GetItemAppearance(oArmor, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_TORSO))); if (iAC==0) sRequired = "ZEP_CR_CLOTH"; if (iAC>=1 && iAC<=3) sRequired = "ZEP_CR_LEATHER"; if (iAC>=4 && iAC<=5) sRequired = "ZEP_CR_SCALE"; if (iAC>=6 && iAC<=8) sRequired = "ZEP_CR_METAL"; } object oNPC = GetLocalObject(oPC, "ZEP_CR_NPC"); if (GetIsObjectValid(oNPC)) { if (GetLocalInt(oNPC, sRequired) == 1) return FALSE; SetCustomToken(ZEP_CR_TOKENBASE+4, "This craftsman cannot modify your current equipped armor or helmet"); return TRUE; } else if (ZEP_CR_REQUIRE_PLACEABLE) { int i=1; object oPlaceable = GetNearestObjectByTag(ZEP_CR_PLACEABLE_TAG, oPC, 1); while (GetIsObjectValid(oPlaceable) && GetArea(oPC) == GetArea(oPlaceable) && GetDistanceBetween(oPC, oPlaceable) <= ZEP_CR_REQUIRED_DISTANCE) { if (GetLocalInt(oPlaceable, sRequired) == 1) return FALSE; oPlaceable = GetNearestObjectByTag(ZEP_CR_PLACEABLE_TAG, oPC, ++i); } SetCustomToken(ZEP_CR_TOKENBASE+4, "You're not near the proper tool to craft your armor or helmet"); return TRUE; } return FALSE; }