Shargast_PRC8/_module/Chapter 1/nss/mk_im_nextpart.nss
Jaysyn904 66a0a3e043 Initial commit
Initial commit.
2024-08-03 14:13:18 -04:00

78 lines
2.5 KiB
Plaintext

//////////////////////////////////////////////////////////
/*
Item Appearance Modification Conversation
Changes the appearance of the currently active armorpart
on the tailor to the next available appearance
*/
// created/updated 2003-06-24 Georg Zoeller, Bioware Corp
// modified Kamiryn 2006-07-23
//////////////////////////////////////////////////////////
#include "x2_inc_craft"
#include "mk_inc_craft"
void main()
{
int nPart = GetLocalInt(OBJECT_SELF,"X2_TAILOR_CURRENT_PART");
int nPart2 = GetLocalInt(OBJECT_SELF,"MK_TAILOR_CURRENT_PART2");
object oPC = GetPCSpeaker();
object oItem = CIGetCurrentModItem(oPC);
if(GetIsObjectValid(oItem) == TRUE)
{
// Store the cost for modifying this item here
object oNew;
AssignCommand(oPC,ClearAllActions(TRUE));
int nInventorySlot=-1;
float fDelay=0.0;
switch (CIGetCurrentModMode(oPC))
{
case X2_CI_MODMODE_ARMOR:
oNew = MK_GetModifiedArmor(oItem, nPart, X2_IP_ARMORTYPE_NEXT, TRUE);
if ((nPart2>=0) && (nPart2<ITEM_APPR_ARMOR_NUM_MODELS))
{
oNew = MK_GetModifiedArmor(oNew, nPart2, MK_IP_ITEMTYPE_OPPOSITE, TRUE);
}
CISetCurrentModItem(oPC,oNew);
nInventorySlot = INVENTORY_SLOT_CHEST;
break;
case X2_CI_MODMODE_WEAPON:
oNew = MK_GetModifiedWeapon(oItem, nPart, MK_IP_ITEMTYPE_NEXT, TRUE);
CISetCurrentModItem(oPC,oNew);
nInventorySlot = INVENTORY_SLOT_RIGHTHAND;
break;
case MK_CI_MODMODE_CLOAK:
oNew = MK_GetModifiedCloak(oItem, nPart, MK_IP_ITEMTYPE_NEXT, TRUE);
CISetCurrentModItem(oPC,oNew);
nInventorySlot = INVENTORY_SLOT_CLOAK;
break;
case MK_CI_MODMODE_HELMET:
oNew = MK_GetModifiedHelmet(oItem, MK_IP_ITEMTYPE_NEXT, TRUE);
CISetCurrentModItem(oPC,oNew);
nInventorySlot = INVENTORY_SLOT_HEAD;
break;
case MK_CI_MODMODE_SHIELD:
oNew = MK_GetModifiedShield(oItem, MK_IP_ITEMTYPE_NEXT, TRUE);
CISetCurrentModItem(oPC,oNew);
nInventorySlot = INVENTORY_SLOT_LEFTHAND;
break;
}
if (nInventorySlot!=-1)
{
if (fDelay>0.0)
{
ActionPauseConversation();
ActionWait(fDelay);
ActionResumeConversation();
}
AssignCommand(oPC, ActionEquipItem(oNew, nInventorySlot));
}
}
}