Added Skullkeep's PRC8 compatible dynamic loot generation system. Full compile. Updated release archive.
229 lines
12 KiB
Plaintext
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 () {}
|
|
|
|
|