Added NWN Dark Sun module contents
Added NWN Dark Sun module contents.
This commit is contained in:
50
nwnds_module/ccs_copy_cloak.nss
Normal file
50
nwnds_module/ccs_copy_cloak.nss
Normal file
@@ -0,0 +1,50 @@
|
||||
object MatchItem(object oItem, object oDonor, int nType, int nIndex)
|
||||
{
|
||||
int nValue = GetItemAppearance(oDonor,nType,nIndex);
|
||||
object oNew = CopyItemAndModify(oItem,nType,nIndex,nValue);
|
||||
DestroyObject(oItem);
|
||||
return oNew;
|
||||
}
|
||||
|
||||
object ModifyCloakModel(object oItem, int nNewValue)
|
||||
{
|
||||
// Bodge for CopyItemAndModify not working on cloak appearance in NWN v1.68
|
||||
// Create a new cloak with the correct model
|
||||
object oNewItem = CreateItemOnObject("cloak_model_" + IntToString(nNewValue),OBJECT_SELF);
|
||||
// Copy across all the colours for it
|
||||
oNewItem = MatchItem(oNewItem,oItem,ITEM_APPR_TYPE_ARMOR_COLOR,ITEM_APPR_ARMOR_COLOR_CLOTH1);
|
||||
oNewItem = MatchItem(oNewItem,oItem,ITEM_APPR_TYPE_ARMOR_COLOR,ITEM_APPR_ARMOR_COLOR_CLOTH2);
|
||||
oNewItem = MatchItem(oNewItem,oItem,ITEM_APPR_TYPE_ARMOR_COLOR,ITEM_APPR_ARMOR_COLOR_LEATHER1);
|
||||
oNewItem = MatchItem(oNewItem,oItem,ITEM_APPR_TYPE_ARMOR_COLOR,ITEM_APPR_ARMOR_COLOR_LEATHER2);
|
||||
oNewItem = MatchItem(oNewItem,oItem,ITEM_APPR_TYPE_ARMOR_COLOR,ITEM_APPR_ARMOR_COLOR_METAL1);
|
||||
oNewItem = MatchItem(oNewItem,oItem,ITEM_APPR_TYPE_ARMOR_COLOR,ITEM_APPR_ARMOR_COLOR_METAL2);
|
||||
itemproperty iProp = GetFirstItemProperty(oItem);
|
||||
while (GetIsItemPropertyValid(iProp))
|
||||
{
|
||||
if (GetItemPropertyDurationType(iProp) == DURATION_TYPE_PERMANENT)
|
||||
{
|
||||
AddItemProperty(DURATION_TYPE_PERMANENT,iProp,oNewItem);
|
||||
iProp = GetNextItemProperty(oItem);
|
||||
}
|
||||
}
|
||||
SetName(oNewItem,GetName(oItem));
|
||||
return oNewItem;
|
||||
}
|
||||
|
||||
void main()
|
||||
{
|
||||
object oPC = GetPCSpeaker();
|
||||
// Get the current cloak model shown on NPC
|
||||
int nModel = GetLocalInt(OBJECT_SELF, "current_cloak_model");
|
||||
object oOldCloak = GetItemInSlot(INVENTORY_SLOT_CLOAK, oPC);
|
||||
// Unequip PCs cloak
|
||||
AssignCommand(oPC, ActionUnequipItem(oOldCloak));
|
||||
// Modify the cloak
|
||||
object oNewCloak = ModifyCloakModel(oOldCloak, nModel);
|
||||
DestroyObject(oOldCloak);
|
||||
// Copy the cloak from the NPC to the PC
|
||||
object oCloak = CopyItem(oNewCloak, oPC, TRUE);
|
||||
DestroyObject(oNewCloak, 1.0);
|
||||
// Equip it for them
|
||||
AssignCommand(oPC, ActionEquipItem(oCloak, INVENTORY_SLOT_CLOAK));
|
||||
}
|
Reference in New Issue
Block a user