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

111 lines
4.6 KiB
Plaintext

int MaxAppearanceIndex(object oItem, int nPart, int nColor)
{
int nMax1;
int nMax2;
int nMax3;
int nMax4;
int nMax5;
int nMax6;
int nMin = 1;
int nMax;
int nTotal = 0;
int nColors = 0;
switch (GetBaseItemType(oItem))
{
case BASE_ITEM_BOLT: { nMax1 = 3; nMax2 = 6; nMax3 = 3; nColors = 4; } break;
case BASE_ITEM_ARROW: { nTotal = 3; nMax4 = 7; nMax5 = 1; nMax6 = 7; } break;
case BASE_ITEM_LONGBOW: { nTotal = 8; nColors = 4; } break;
case BASE_ITEM_SHORTBOW: { nTotal = 6; nColors = 4; } break;
case BASE_ITEM_HEAVYCROSSBOW: { nTotal = 4; nColors = 4; } break;
case BASE_ITEM_LIGHTCROSSBOW: { nTotal = 4; nColors = 4; } break;
case BASE_ITEM_HALBERD: { nTotal = 4; nColors = 4; } break;
case BASE_ITEM_SCYTHE: { nTotal = 3; nColors = 4; } break;
case BASE_ITEM_TRIDENT: { nTotal = 4; nColors = 4; } break;
case BASE_ITEM_SHORTSPEAR: { nTotal = 4; nColors = 4; } break;
case BASE_ITEM_MAGICSTAFF: { nTotal = 6; nColors = 4; } break;
case BASE_ITEM_KAMA: { nTotal = 1; nColors = 4; } break;
case BASE_ITEM_KUKRI: { nTotal = 1; nColors = 4; } break;
case BASE_ITEM_SICKLE: { nTotal = 1; nColors = 4; } break;
case BASE_ITEM_THROWINGAXE: { nTotal = 4; nColors = 4; } break;
case BASE_ITEM_LIGHTMACE: { nTotal = 4; nColors = 4; } break;
case BASE_ITEM_HEAVYFLAIL: { nTotal = 4; nColors = 4; } break;
case BASE_ITEM_LIGHTFLAIL: { nTotal = 4; nColors = 4; } break;
case BASE_ITEM_CLUB: { nTotal = 4; nColors = 4; } break;
case BASE_ITEM_LIGHTHAMMER: { nTotal = 4; nColors = 4; } break;
case BASE_ITEM_WARHAMMER: { nTotal = 6; nColors = 4; } break;
case BASE_ITEM_MORNINGSTAR: { nTotal = 4; nColors = 4; } break;
case BASE_ITEM_QUARTERSTAFF: { nTotal = 4; nColors = 4; } break;
case BASE_ITEM_TWOBLADEDSWORD: { nTotal = 3; nColors = 4; } break;
case BASE_ITEM_DOUBLEAXE: { nTotal = 3; nColors = 4; } break;
case BASE_ITEM_DIREMACE: { nTotal = 4; nColors = 4; } break;
case BASE_ITEM_LONGSWORD: { nTotal = 10; nColors = 4; } break;
case BASE_ITEM_KATANA: { nTotal = 4; nColors = 4; } break;
case BASE_ITEM_RAPIER: { nTotal = 4; nColors = 4; } break;
case BASE_ITEM_SCIMITAR: { nTotal = 4; nColors = 4; } break;
case BASE_ITEM_SHORTSWORD: { nTotal = 6; nColors = 4; } break;
case BASE_ITEM_BASTARDSWORD: { nTotal = 6; nColors = 4; } break;
case BASE_ITEM_DAGGER: { nTotal = 6; nColors = 4; } break;
case BASE_ITEM_GREATSWORD: { nTotal = 4; nColors = 4; } break;
case BASE_ITEM_BATTLEAXE: { nTotal = 6; nColors = 4; } break;
case BASE_ITEM_HANDAXE: { nTotal = 4; nColors = 4; } break;
case BASE_ITEM_GREATAXE: { nTotal = 4; nColors = 4; } break;
case BASE_ITEM_BULLET: { nMax = 8; } break;
case BASE_ITEM_SHURIKEN: { nMax = 3; } break;
case BASE_ITEM_DART: { nMax = 3; } break;
case BASE_ITEM_SLING: { nMax = 16; } break;
}
if (nTotal != 0) {nMax1 = nTotal; nMax2 = nTotal; nMax3 = nTotal; }
if (nColors != 0) {nMax4 = nColors; nMax5 = nColors; nMax6 = nColors; }
if (nColor == TRUE)
{
switch (nPart)
{
case ITEM_APPR_WEAPON_COLOR_TOP: { nMax = nMax4; } break;
case ITEM_APPR_WEAPON_COLOR_MIDDLE: { nMax = nMax5; } break;
case ITEM_APPR_WEAPON_COLOR_BOTTOM: { nMax = nMax6; } break;
}
}
else
{
switch (nPart)
{
case ITEM_APPR_WEAPON_MODEL_TOP: { nMax = nMax1; } break;
case ITEM_APPR_WEAPON_MODEL_MIDDLE: { nMax = nMax2; } break;
case ITEM_APPR_WEAPON_MODEL_BOTTOM: { nMax = nMax3; } break;
}
}
return nMax;
}
object ModifiedItem(object oItem, int nType, int nPart, int nColor)
{
int nFinalApp = MaxAppearanceIndex(oItem, nPart, nColor); //ITEM_APPR_WEAPON_MODEL_TOP
int nCurrentApp = GetItemAppearance(oItem, nType, nPart);
int nNextApp;
if (nCurrentApp >= nFinalApp) nNextApp = 1;
else nNextApp = nCurrentApp+1;
object oNewItem = CopyItemAndModify(oItem, nType, nPart, nNextApp, TRUE);
SetItemCursedFlag(oNewItem, TRUE);
if (oNewItem != OBJECT_INVALID) {DestroyObject(oItem); return oNewItem;}
else return oItem;
}
/*object ModifiedArmor(object oItem, int nPart)
{
int nCurrentApp = GetItemAppearance(oItem, ITEM_APPR_TYPE_ARMOR_MODEL , nPart);
siwtch (nCurrentApp)
{
case
}
int nNextApp;
if (nCurrentApp >= nFinalApp) nNextApp = 1;
else nNextApp = nCurrentApp+1;
object oNewItem = CopyItemAndModify(oItem, nType, nPart, nNextApp, TRUE);
SetItemCursedFlag(oNewItem, TRUE);
if (oNewItem != OBJECT_INVALID) {DestroyObject(oItem); return oNewItem;}
else return oItem;
} */