Amon_PRC8/_module/nss/weapcraft_light.nss

82 lines
2.9 KiB
Plaintext
Raw Normal View History

2025-04-03 19:00:46 -04:00
#include "x2_inc_itemprop"
#include "tr_items_inc"
#include "nw_i0_tool"
#include "craft_inc"
void main()
{
object oSmith = GetItemActivator();
object oTarget = GetItemInSlot(INVENTORY_SLOT_CWEAPON_R, oSmith);
string sTag2 = GetTag(OBJECT_SELF);
string sIsCraftable = GetStringLeft(sTag2, 2);
string sEnhancement1 = GetStringLeft(sTag2, 3);
string sKeen1 = GetStringLeft(sTag2, 6);
string sMassiveCrit1 = GetStringLeft(sTag2, 8);
string sDamBonusType1 = GetStringLeft(sTag2, 6);
string sEnhancement = GetStringRight(sEnhancement1, 1);
string sKeen = GetStringRight(sKeen1, 1);
string sMassiveCrit = GetStringRight(sMassiveCrit1, 2);
string sDamBonusType = GetStringRight(sDamBonusType1, 1);
string sDamBonus = GetStringRight(sTag2, 2);
int iEnhancement = StringToInt(sEnhancement);
int iKeen = StringToInt(sKeen);
int iMassiveCrit = StringToInt(sMassiveCrit);
int iDamBonusType = StringToInt(sDamBonusType);
int iDamBonus = StringToInt(sDamBonus);
int nBakingSkillNumber = 0;
if (GetObjectType(oTarget) == OBJECT_TYPE_ITEM)
{
if (sIsCraftable == "cw")
{
IPUpgradeWeaponEnhancementBonus(oTarget, 1);
//Declare major variables
itemproperty ip = ItemPropertyAbilityBonus (ABILITY_STRENGTH, 1);
IPSafeAddItemProperty(oTarget, ip, 0.0f,X2_IP_ADDPROP_POLICY_REPLACE_EXISTING,TRUE,TRUE);
}
int nSkillTest, nItemsBits = 0;
int nWeaponSkillNumber;
object oPC = GetLastUsedBy();
if(HasItem(oPC, "EnchantedMithril"))
nItemsBits++;
if(HasItem(oPC, "Diamond"))
nItemsBits++;
if(HasItem(oPC, "Taulite"))
nItemsBits++;
//////////////////////////////////////////////////////////
if(nItemsBits == 3){
DestroyObject(GetItemPossessedBy(oPC, GetTag(oTarget)));
DestroyObject(GetItemPossessedBy(oPC, "EnchantedMithril"));
DestroyObject(GetItemPossessedBy(oPC, "Diamond"));
DestroyObject(GetItemPossessedBy(oPC, "Taulite"));
nWeaponSkillNumber = GetCampaignInt(GZ_AMON_CRAFT, "GZ_DB_WEAPON!", oPC);
AssignCommand(oPC, ActionPlayAnimation(ANIMATION_LOOPING_GET_MID, 3.0, 3.0));
//debug msg
//FloatingTextStringOnCreature(IntToString(nSkillTest = (nWoodSkillNumber+nRoll100x2)), oPC);
if(nSkillTest = (nBakingSkillNumber+nRoll100) >= DWARF_BREAD){
FloatingTextStringOnCreature("*You create some dwarven bread*", oPC);
//AmonCraftWood(oPC, nWoodSkillNumber = (nWoodSkillNumber+nRoll6));
CreateItemOnObject("tr_DwarfBread", oPC);
}
else{
AmonCraftBaking(oPC, nBakingSkillNumber=nBakingSkillNumber+nRoll2);
}}
else
FloatingTextStringOnCreature("*You may not have any black seeds, pastry or honey*", oPC);
}
}