PoA_PRC8/_module/nss/inc_itm_appear.nss
Jaysyn904 0dbb628b75 Added Skullkeep's dynamic loot generation system
Added Skullkeep's PRC8 compatible dynamic loot generation system.  Full compile.  Updated release archive.
2024-11-08 18:54:51 -05:00

229 lines
12 KiB
Plaintext

//:://////////////////////////////////////////////
// Common Loot Generator Script
// Created By: Scott Milliorn
// Module - A Carpathian Nightmare
// Date: June 13th, 2018
//
// Additional help with donation of code from Dorrian of Trials of Newcastle
//
// If any code is used from this script please give credit to both -
// Milliorn of A Carpathian Nightmare
// Dorrian of Trials of Newcastle
//:://////////////////////////////////////////////
#include "prc_x2_itemprop"
//:: Randomize the color of Weapons.
void ColorWeapon(object oItem, int iBottom, int iMiddle ,int iTop, object oPC);
//:: Randomize the color of Armor. (By Dorrian & Milliorn)
void ColorArmor(object oItem, int cloth1, int cloth2, int leather1, int leather2, int metal1, int metal2, object oPC);
//:: Randomize the appearance of Rings, Amulets & Belts.
void ChangeRingAmuBelt(object oItem, int appearance, object oPC);
//:: Random Weapon parts.
void ChangeWeaponAppearance(object oItem, int iBottom, int iMiddle ,int iTop, int iBottomC, int iMiddleC ,int iTopC, object oPC);
//:: Random Helm & Cloak color and/or appearance.
void ColorHelmClk(object oItem, int cloth1, int cloth2, int leather1, int leather2, int metal1, int metal2, int appearance, object oPC);
//:: Random Armor parts.
void ChangeArmor(object oItem,
int iRandomShoulder,
int iRandomBicep,
int iRandomForearm,
int iRandomHand,
int iRandomThigh,
int iRandomShins,
int iRandomFeet,
int iRandomPelvis,
int iRandomBelt,
int iRandomNeck,
int iRandomChest,
int cloth1,
int cloth2,
int leather1,
int leather2,
int metal1,
int metal2,
object oPC);
void ChangeArmor(object oItem,
int iRandomShoulder,
int iRandomBicep,
int iRandomForearm,
int iRandomHand,
int iRandomThigh,
int iRandomShins,
int iRandomFeet,
int iRandomPelvis,
int iRandomBelt,
int iRandomNeck,
int iRandomChest,
int cloth1,
int cloth2,
int leather1,
int leather2,
int metal1,
int metal2,
object oPC)
{
object oCopyBox = GetObjectByTag("LOOT_GENERATOR");
object oCopy = CopyItem(oItem,oCopyBox, TRUE);
DestroyObject(oItem); // remove old item
object oCopy1 = CopyItemAndModify(oCopy, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_RFOOT, iRandomFeet, TRUE);
DestroyObject(oCopy); // remove old item
object oCopy2 = CopyItemAndModify(oCopy1, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_LFOOT, iRandomFeet, TRUE);
DestroyObject(oCopy1); // remove old item
object oCopy3 = CopyItemAndModify(oCopy2, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_RSHIN, iRandomShins, TRUE);
DestroyObject(oCopy2); // remove old item
object oCopy4 = CopyItemAndModify(oCopy3, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_LSHIN, iRandomShins, TRUE);
DestroyObject(oCopy3); // remove old item
object oCopy5 = CopyItemAndModify(oCopy4, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_LTHIGH, iRandomThigh, TRUE);
DestroyObject(oCopy4); // remove old item
object oCopy6 = CopyItemAndModify(oCopy5, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_RTHIGH, iRandomThigh, TRUE);
DestroyObject(oCopy5); // remove old item
object oCopy7 = CopyItemAndModify(oCopy6, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_PELVIS, iRandomPelvis, TRUE);
DestroyObject(oCopy6); // remove old item
object oCopy8 = CopyItemAndModify(oCopy7, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_TORSO, iRandomChest, TRUE);
DestroyObject(oCopy7); // remove old item
object oCopy9 = CopyItemAndModify(oCopy8, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_BELT, iRandomBelt, TRUE);
DestroyObject(oCopy8); // remove old item
object oCopy10 = CopyItemAndModify(oCopy9, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_NECK, iRandomNeck, TRUE);
DestroyObject(oCopy9); // remove old item
object oCopy11 = CopyItemAndModify(oCopy10, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_RFOREARM, iRandomForearm, TRUE);
DestroyObject(oCopy10); // remove old item
object oCopy12 = CopyItemAndModify(oCopy11, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_LFOREARM, iRandomForearm, TRUE);
DestroyObject(oCopy11); // remove old item
object oCopy13 = CopyItemAndModify(oCopy12, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_RBICEP, iRandomBicep, TRUE);
DestroyObject(oCopy12); // remove old item
object oCopy14 = CopyItemAndModify(oCopy13, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_LBICEP, iRandomBicep, TRUE);
DestroyObject(oCopy13); // remove old item
object oCopy15 = CopyItemAndModify(oCopy14, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_RSHOULDER, iRandomShoulder, TRUE);
DestroyObject(oCopy14); // remove old item
object oCopy16 = CopyItemAndModify(oCopy15, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_LSHOULDER, iRandomShoulder, TRUE);
DestroyObject(oCopy15); // remove old item
object oCopy17 = CopyItemAndModify(oCopy16, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_RHAND, iRandomHand, TRUE);
DestroyObject(oCopy16); // remove old item
object oCopy18 = CopyItemAndModify(oCopy17, ITEM_APPR_TYPE_ARMOR_MODEL, ITEM_APPR_ARMOR_MODEL_LHAND, iRandomHand, TRUE);
DestroyObject(oCopy17); // remove old item
object oCopy19 = CopyItemAndModify(oCopy18, ITEM_APPR_TYPE_ARMOR_COLOR, ITEM_APPR_ARMOR_COLOR_CLOTH1, cloth1, TRUE);
DestroyObject(oCopy18); // remove old item
object oCopy20 = CopyItemAndModify(oCopy19, ITEM_APPR_TYPE_ARMOR_COLOR, ITEM_APPR_ARMOR_COLOR_CLOTH2, cloth2, TRUE);
DestroyObject(oCopy19); // remove old item
object oCopy21 = CopyItemAndModify(oCopy20, ITEM_APPR_TYPE_ARMOR_COLOR, ITEM_APPR_ARMOR_COLOR_LEATHER1, leather1, TRUE);
DestroyObject(oCopy20); // remove old item
object oCopy22 = CopyItemAndModify(oCopy21, ITEM_APPR_TYPE_ARMOR_COLOR, ITEM_APPR_ARMOR_COLOR_LEATHER2, leather2, TRUE);
DestroyObject(oCopy21); // remove old item
object oCopy23 = CopyItemAndModify(oCopy22, ITEM_APPR_TYPE_ARMOR_COLOR, ITEM_APPR_ARMOR_COLOR_METAL1, metal1, TRUE);
DestroyObject(oCopy22); // remove old item
object oCopy24 = CopyItemAndModify(oCopy23, ITEM_APPR_TYPE_ARMOR_COLOR, ITEM_APPR_ARMOR_COLOR_METAL2, metal2, TRUE);
DestroyObject(oCopy23); // remove old item
object oCopy25 = CopyItem(oCopy24,oPC, TRUE);
DestroyObject(oCopy24); // remove old item
}
void ColorArmor(object oItem, int cloth1, int cloth2, int leather1, int leather2, int metal1, int metal2, object oPC)
{
object oCopyBox = GetObjectByTag("LOOT_GENERATOR");
object oCopy = CopyItem(oItem,oCopyBox, TRUE);
DestroyObject(oItem); // remove old item
object oCopy1 = CopyItemAndModify(oCopy, ITEM_APPR_TYPE_ARMOR_COLOR, ITEM_APPR_ARMOR_COLOR_CLOTH1, cloth1, TRUE);
DestroyObject(oCopy); // remove old item
object oCopy2 = CopyItemAndModify(oCopy1, ITEM_APPR_TYPE_ARMOR_COLOR, ITEM_APPR_ARMOR_COLOR_CLOTH2, cloth2, TRUE);
DestroyObject(oCopy1); // remove old item
object oCopy3 = CopyItemAndModify(oCopy2, ITEM_APPR_TYPE_ARMOR_COLOR, ITEM_APPR_ARMOR_COLOR_LEATHER1, leather1, TRUE);
DestroyObject(oCopy2); // remove old item
object oCopy4 = CopyItemAndModify(oCopy3, ITEM_APPR_TYPE_ARMOR_COLOR, ITEM_APPR_ARMOR_COLOR_LEATHER2, leather2, TRUE);
DestroyObject(oCopy3); // remove old item
object oCopy5 = CopyItemAndModify(oCopy4, ITEM_APPR_TYPE_ARMOR_COLOR, ITEM_APPR_ARMOR_COLOR_METAL1, metal1, TRUE);
DestroyObject(oCopy4); // remove old item
object oCopy6 = CopyItemAndModify(oCopy5, ITEM_APPR_TYPE_ARMOR_COLOR, ITEM_APPR_ARMOR_COLOR_METAL2, metal2, TRUE);
DestroyObject(oCopy5); // remove old item
object oCopy7 = CopyItem(oCopy6,oPC, TRUE);
DestroyObject(oCopy6); // remove old item
}
void ColorHelmClk(object oItem, int cloth1, int cloth2, int leather1, int leather2, int metal1, int metal2, int appearance, object oPC)
{
object oCopyBox = GetObjectByTag("LOOT_GENERATOR");
object oCopy = CopyItem(oItem,oCopyBox, TRUE);
DestroyObject(oItem); // remove old item
object oCopy1 = CopyItemAndModify(oCopy, ITEM_APPR_TYPE_ARMOR_COLOR, ITEM_APPR_ARMOR_COLOR_CLOTH1, cloth1, TRUE);
DestroyObject(oCopy); // remove old item
object oCopy2 = CopyItemAndModify(oCopy1, ITEM_APPR_TYPE_ARMOR_COLOR, ITEM_APPR_ARMOR_COLOR_CLOTH2, cloth2, TRUE);
DestroyObject(oCopy1); // remove old item
object oCopy3 = CopyItemAndModify(oCopy2, ITEM_APPR_TYPE_ARMOR_COLOR, ITEM_APPR_ARMOR_COLOR_LEATHER1, leather1, TRUE);
DestroyObject(oCopy2); // remove old item
object oCopy4 = CopyItemAndModify(oCopy3, ITEM_APPR_TYPE_ARMOR_COLOR, ITEM_APPR_ARMOR_COLOR_LEATHER2, leather2, TRUE);
DestroyObject(oCopy3); // remove old item
object oCopy5 = CopyItemAndModify(oCopy4, ITEM_APPR_TYPE_ARMOR_COLOR, ITEM_APPR_ARMOR_COLOR_METAL1, metal1, TRUE);
DestroyObject(oCopy4); // remove old item
object oCopy6 = CopyItemAndModify(oCopy5, ITEM_APPR_TYPE_ARMOR_COLOR, ITEM_APPR_ARMOR_COLOR_METAL2, metal2, TRUE);
DestroyObject(oCopy5); // remove old item
object oCopy7 = CopyItemAndModify(oCopy6, ITEM_APPR_TYPE_SIMPLE_MODEL, 0, appearance, TRUE);
DestroyObject(oCopy6); // remove old item
object oCopy8 = CopyItem(oCopy7,oPC, TRUE);
DestroyObject(oCopy7); // remove old item
}
void ChangeRingAmuBelt(object oItem, int appearance, object oPC)
{
object oCopyBox = GetObjectByTag("LOOT_GENERATOR");
object oCopy = CopyItem(oItem,oCopyBox, TRUE);
DestroyObject(oItem); // remove old item
object oCopy1 = CopyItemAndModify(oCopy, ITEM_APPR_TYPE_SIMPLE_MODEL, 0, appearance, TRUE);
DestroyObject(oCopy); // remove old item
object oCopy2 = CopyItem(oCopy1,oPC, TRUE);
DestroyObject(oCopy1); // remove old item
}
void ChangeWeaponAppearance(object oItem, int iBottom, int iMiddle ,int iTop, int iBottomC, int iMiddleC, int iTopC, object oPC)
{
object oCopyBox = GetObjectByTag("LOOT_GENERATOR");
object oCopy = CopyItem(oItem,oCopyBox, TRUE);
DestroyObject(oItem); // remove old item
object oCopy1 = CopyItemAndModify(oCopy, ITEM_APPR_TYPE_WEAPON_MODEL, ITEM_APPR_WEAPON_MODEL_BOTTOM, iBottom, TRUE);
DestroyObject(oCopy); // remove old item
object oCopy2 = CopyItemAndModify(oCopy1, ITEM_APPR_TYPE_WEAPON_MODEL, ITEM_APPR_WEAPON_MODEL_MIDDLE, iMiddle, TRUE);
DestroyObject(oCopy1); // remove old item
object oCopy3 = CopyItemAndModify(oCopy2, ITEM_APPR_TYPE_WEAPON_MODEL, ITEM_APPR_WEAPON_MODEL_TOP, iTop, TRUE);
DestroyObject(oCopy2); // remove old item
object oCopy4 = CopyItemAndModify(oCopy3, ITEM_APPR_TYPE_WEAPON_COLOR, ITEM_APPR_WEAPON_COLOR_BOTTOM, iBottomC, TRUE);
DestroyObject(oCopy3); // remove old item
object oCopy5 = CopyItemAndModify(oCopy4, ITEM_APPR_TYPE_WEAPON_COLOR, ITEM_APPR_WEAPON_COLOR_MIDDLE, iMiddleC, TRUE);
DestroyObject(oCopy4); // remove old item
object oCopy6 = CopyItemAndModify(oCopy5, ITEM_APPR_TYPE_WEAPON_COLOR, ITEM_APPR_WEAPON_COLOR_TOP, iTopC, TRUE);
DestroyObject(oCopy5); // remove old item
object oCopy7 = CopyItem(oCopy6,oPC, TRUE);
DestroyObject(oCopy6); // remove old item
}
void ColorWeapon(object oItem, int iBottom, int iMiddle ,int iTop, object oPC)
{
object oCopyBox = GetObjectByTag("LOOT_GENERATOR");
object oCopy = CopyItem(oItem,oCopyBox, TRUE);
DestroyObject(oItem); // remove old item
object oCopy1 = CopyItemAndModify(oCopy, ITEM_APPR_TYPE_WEAPON_COLOR, ITEM_APPR_WEAPON_COLOR_BOTTOM, iBottom, TRUE);
DestroyObject(oCopy); // remove old item
object oCopy2 = CopyItemAndModify(oCopy1, ITEM_APPR_TYPE_WEAPON_COLOR, ITEM_APPR_WEAPON_COLOR_MIDDLE, iMiddle, TRUE);
DestroyObject(oCopy1); // remove old item
object oCopy3 = CopyItemAndModify(oCopy2, ITEM_APPR_TYPE_WEAPON_COLOR, ITEM_APPR_WEAPON_COLOR_TOP, iTop, TRUE);
DestroyObject(oCopy2); // remove old item
object oCopy4 = CopyItem(oCopy3,oPC, TRUE);
DestroyObject(oCopy3); // remove old item
}
//::void main () {}