Ancordia_PRC8/_module/nss/craft_lowskill.nss
Jaysyn904 102ba7dab6 Initial Commit
Initial Commit
2023-09-21 19:51:32 -04:00

70 lines
2.8 KiB
Plaintext

/*int StartingConditional()
{
object oPC = GetPCSpeaker();
object oItem = GetFirstItemInInventory(oPC);
int nValue;
int nDC;
while (GetIsObjectValid(oItem))
{
if (GetLocalInt(oItem, "Prototype") == TRUE)
{
nValue = GetGoldPieceValue(oItem);
if (GetLocalString(oItem, "Type") == "Melee") nDC = 10 + nValue / 3250;
if (GetLocalString(oItem, "Type") == "Ammo") nDC = 10 + 99*nValue / 800;
if (GetLocalString(oItem, "Type") == "Shooter" && GetItemHasItemProperty(oItem, ITEM_PROPERTY_UNLIMITED_AMMUNITION) == FALSE) nDC = 10 + nValue / 1500;
if (GetLocalString(oItem, "Type") == "Shooter" && GetItemHasItemProperty(oItem, ITEM_PROPERTY_UNLIMITED_AMMUNITION) == TRUE) nDC = 10 + nValue / 3250;
if (GetLocalString(oItem, "Type") == "Throwing" || GetLocalString(oItem, "Type") == "MightyThrowing") nDC = 10 + 50*nValue / 600;
return !GetIsSkillSuccessful(oPC, SKILL_CRAFT_WEAPON, nDC);
}
oItem = GetNextItemInInventory(oPC);
}
return FALSE;
}*/
#include "x2_inc_itemprop"
//This is actually the main function.
int script(object oItem, object oPC)
{
int nValue;
int nDC;
int nSkill;
nValue = GetGoldPieceValue(oItem);
nDC = 10 + nValue / 3250;
nSkill = SKILL_CRAFT_ARMOR;
if (GetLocalString(oItem, "Type") == "Melee") {nDC = 10 + nValue / 3250; nSkill = SKILL_CRAFT_WEAPON;}
if (GetLocalString(oItem, "Type") == "Ammo") {nDC = 10 + 99*nValue / 800; nSkill = SKILL_CRAFT_WEAPON;}
if (GetLocalString(oItem, "Type") == "Shooter" && GetItemHasItemProperty(oItem, ITEM_PROPERTY_UNLIMITED_AMMUNITION) == FALSE) {nDC = 10 + nValue / 1500; nSkill = SKILL_CRAFT_WEAPON;}
if (GetLocalString(oItem, "Type") == "Shooter" && GetItemHasItemProperty(oItem, ITEM_PROPERTY_UNLIMITED_AMMUNITION) == TRUE) {nDC = 10 + nValue / 3250; nSkill = SKILL_CRAFT_WEAPON;}
if (GetLocalString(oItem, "Type") == "Throwing" || GetLocalString(oItem, "Type") == "MightyThrowing") {nDC = 10 + 50*nValue / 600; nSkill = SKILL_CRAFT_WEAPON;}
return !GetIsSkillSuccessful(oPC, nSkill, nDC);
}
int StartingConditional()
{
object oPC = GetPCSpeaker();
int nSlot = 0;
object oItem;
int nResult;
//Check if the item being crafted is equipped
while (nSlot < 18)
{
oItem = GetItemInSlot(nSlot, oPC);
if (GetLocalInt(oItem, "Prototype") == TRUE)
nResult = script(oItem, oPC);
nSlot++;
}
//If the item is not equipped, search for it in the inventory
oItem = GetFirstItemInInventory(oPC);
while (GetIsObjectValid(oItem))
{
if (GetLocalInt(oItem, "Prototype") == TRUE)
nResult = script(oItem, oPC);
oItem = GetNextItemInInventory(oPC);
}
return nResult;
}