#include "_persist_01a" void main() { object oPC = GetLastOpenedBy(); int iSmithSkill = GetTokenPair(oPC,13,4); // Weaponsmith int iSmithChance = iSmithSkill; int iArmorSkill = GetTokenPair(oPC,13,5); // ArmorCraft int iArmorChance = iArmorSkill; int iIngotType = GetLocalInt(oPC,"iUseIngotType"); int iIngotMod = iIngotType*25; if (iSmithChance < 350) { iSmithChance = GetAbilityScore(oPC,ABILITY_STRENGTH)*5; iSmithChance = iSmithChance+(GetAbilityScore(oPC,ABILITY_DEXTERITY)*3); iSmithChance = iSmithChance+(GetAbilityScore(oPC,ABILITY_INTELLIGENCE)*2); iSmithChance = iSmithChance*3; if (iSmithChance>350)iSmithChance=350; if (iSmithSkill > iSmithChance) iSmithChance=iSmithSkill; } if (iArmorChance < 350) { iArmorChance = GetAbilityScore(oPC,ABILITY_STRENGTH)*5; iArmorChance = iArmorChance+(GetAbilityScore(oPC,ABILITY_DEXTERITY)*3); iArmorChance = iArmorChance+(GetAbilityScore(oPC,ABILITY_INTELLIGENCE)*2); iArmorChance = iArmorChance*3; if (iArmorChance>350)iArmorChance=350; if (iArmorSkill > iArmorChance) iArmorChance=iArmorSkill; } // Create Ingot Type FlagSwitches if (iIngotType != 0)CreateItemOnObject("flagswitch010",OBJECT_SELF,1); if (iIngotType != 1)CreateItemOnObject("flagswitch011",OBJECT_SELF,1); if (iIngotType != 2)CreateItemOnObject("flagswitch012",OBJECT_SELF,1); if (iIngotType != 3)CreateItemOnObject("flagswitch013",OBJECT_SELF,1); if (iIngotType != 4)CreateItemOnObject("flagswitch014",OBJECT_SELF,1); if (iIngotType != 5)CreateItemOnObject("flagswitch015",OBJECT_SELF,1); if (iIngotType != 6)CreateItemOnObject("flagswitch016",OBJECT_SELF,1); if (iIngotType != 7)CreateItemOnObject("flagswitch017",OBJECT_SELF,1); if (iIngotType != 8)CreateItemOnObject("flagswitch018",OBJECT_SELF,1); if (iIngotType != 9)CreateItemOnObject("flagswitch019",OBJECT_SELF,1); if (iIngotType != 10)CreateItemOnObject("flagswitch020",OBJECT_SELF,1); if (iIngotType != 11)CreateItemOnObject("flagswitch021",OBJECT_SELF,1); if (iIngotType != 12)CreateItemOnObject("flagswitch022",OBJECT_SELF,1); SendMessageToPC(oPC,"iIngotType : "+IntToString(iIngotType)); if (iIngotType==9) iIngotMod = 90; // Silver is little easier than Bronze if (iIngotType==10) iIngotMod = 175; // Mithril is hard as Verite if (iIngotType==11) iIngotMod = 200; // Adamantite is hard as Valorite if (iIngotType==12) iIngotMod = 150; // Platinum is hard as Agapite // Modify the skill based on current ingot selection if (iIngotMod >0) iIngotMod = iIngotMod + 250; iSmithChance = iSmithChance - iIngotMod; iArmorChance = iArmorChance - iIngotMod; // Create tokens for items if (iSmithChance>0){CreateItemOnObject("pattern022",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Metal Studs"); } /// Metal Studs (For studded leather) if (iSmithChance>0){ CreateItemOnObject("pattern069",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Sling Bullets"); } /// Normal Sling Bullets if (iSmithChance>50){ CreateItemOnObject("pattern042",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Throwing Darts"); } /// Normal Throwing Darts if (iSmithChance>50){ CreateItemOnObject("pattern021",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Shuriken"); } /// Normal Shuriken if (iSmithChance>50){ CreateItemOnObject("pattern070",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Arrowheads"); } /// Normal Arrowheads if (iSmithChance>50){ CreateItemOnObject("pattern062",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Bolt Tips"); } /// Normal Bolt Tips if (iSmithChance>50){ CreateItemOnObject("pattern045",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Kama"); } /// Normal Kama if (iSmithChance>100){ CreateItemOnObject("pattern032",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Dagger"); } /// Normal Dagger if (iSmithChance>100){ CreateItemOnObject("pattern064",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Kukri");} /// Normal Kukri if (iArmorChance>100){ CreateItemOnObject("pattern111",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Ringmail Armor"); } /// Normal Ringmail Armor if (iSmithChance>150){ CreateItemOnObject("pattern027",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Shortsword"); } /// Normal Shortsword if (iSmithChance>150){ CreateItemOnObject("pattern049",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Handaxe"); } /// Normal Handaxe if (iSmithChance>150){ CreateItemOnObject("pattern039",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Throwing Axes"); } /// Normal Throwing Axes if (iSmithChance>150){ CreateItemOnObject("pattern028",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Sickle"); } /// Normal Sickle if (iArmorChance>150){ CreateItemOnObject("pattern201",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Horsehair Helmet"); } /// Normal Horsehair Helmet if (iArmorChance>150){ CreateItemOnObject("pattern200",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Pot Helmet"); } /// Normal Pot Helmet if (iArmorChance>150){ CreateItemOnObject("pattern202",OBJECT_SELF,1); SendMessageToPC(oPC,"Created Pattern Spike Helmet"); } /// Normal Spike Helmet if (iArmorChance>150){ CreateItemOnObject("pattern203",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Stag Helmet"); } /// Normal Stag Helmet if (iArmorChance>150){ CreateItemOnObject("pattern204",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Winged Helmet"); } /// Normal Winged Helmet if (iSmithChance>200){ CreateItemOnObject("pattern031",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Mace"); } /// Normal Mace if (iArmorChance >=250){ CreateItemOnObject("pattern029",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Small Shield"); } /// Normal Small Shield if (iArmorChance >=250){ CreateItemOnObject("pattern110",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Chainmail Shirt"); } /// Normal Chainmail Shirt if (iSmithChance >=250){ CreateItemOnObject("pattern046",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Longsword"); } /// Normal Longsword if (iSmithChance >=250){ CreateItemOnObject("pattern040",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Light Flail"); } /// Normal Light Flail if (iSmithChance >=250){ CreateItemOnObject("pattern044",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Light Hammer"); } /// Normal Light Hammer if (iSmithChance >=250){ CreateItemOnObject("pattern024",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Rapier"); } /// Normal Rapier if (iArmorChance >=300){ CreateItemOnObject("pattern108",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern scale mail armor"); } /// Normal scale mail armor if (iSmithChance >=300){ CreateItemOnObject("pattern023",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Morning Star"); } /// Normal Morning Star if (iSmithChance >=300){ CreateItemOnObject("pattern060",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Battleaxe"); } /// Normal Battleaxe if (iSmithChance >=300){ CreateItemOnObject("pattern030",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Spear"); } /// Normal Spear if (iSmithChance >=300){ CreateItemOnObject("pattern025",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Scimitar"); } /// Normal Scimitar if (iArmorChance >=350){ CreateItemOnObject("pattern107",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Chainmail Armor"); } /// Normal Chainmail Armor if (iArmorChance >=350){ CreateItemOnObject("pattern106",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Breastplate"); } /// Normal Breastplate if (iSmithChance >=350){ CreateItemOnObject("pattern063",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Bastard Sword"); } /// Normal Bastard Sword if (iSmithChance >=350){ CreateItemOnObject("pattern057",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Large Shield"); } /// Normal Large Shield if (iSmithChance >=350){ CreateItemOnObject("pattern048",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Heavy Flail"); } /// Normal Heavy Flail if (iSmithChance >=350){ CreateItemOnObject("pattern050",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Warhammer"); } /// Normal Warhammer if (iSmithChance >=350){ CreateItemOnObject("pattern056",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Katana"); } /// Normal Katana if (iArmorChance >=400){ CreateItemOnObject("pattern100",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Banded Mail Armor"); } /// Normal Banded Mail Armor if (iArmorChance >=400){ CreateItemOnObject("pattern105",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Splint Mail Armor"); } /// Normal Splint Mail Armor if (iSmithChance >=400){ CreateItemOnObject("pattern053",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Greatsword"); } /// Normal Greatsword if (iSmithChance >=400){ CreateItemOnObject("pattern020",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Halberd"); } /// Normal Halberd if (iSmithChance >=400){ CreateItemOnObject("pattern026",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Scythe"); } /// Normal Scythe if (iArmorChance >=450){ CreateItemOnObject("pattern102",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Half Plate Armor"); } /// Normal Half Plate Armor if (iArmorChance >=450){ CreateItemOnObject("pattern043",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Tower Shield"); } /// Normal Tower Shield if (iArmorChance >=450){ CreateItemOnObject("pattern033",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Dire Mace"); } /// Normal Dire Mace if (iArmorChance >=450){ CreateItemOnObject("pattern059",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Double Axe"); } /// Normal Double Axe if (iArmorChance >=500){ CreateItemOnObject("pattern101",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Full Plate Armor"); } /// Normal Full Plate Armor if (iArmorChance >=500){ CreateItemOnObject("pattern041",OBJECT_SELF,1);SendMessageToPC(oPC,"Created Pattern Two-Bladed Sword");} /// Normal Two-Bladed Sword // Search for and destroy any hidden 'body bags' from prior incarnations of this placeable object oSearchForBag = GetNearestObjectByTag("Body Bag",OBJECT_SELF,1); if (oSearchForBag == OBJECT_INVALID)return; object oBagItem = OBJECT_INVALID; if (GetDistanceToObject(oSearchForBag)<= 0.2) { //SendMessageToPC(GetFirstPC(),"Body bag found.. destroying contents.."); oBagItem = GetFirstItemInInventory(oSearchForBag); while (oBagItem != OBJECT_INVALID) { //SendMessageToPC(GetFirstPC(),"Destroying : "+GetName(oBagItem)); DestroyObject(oBagItem); oBagItem = GetNextItemInInventory(oSearchForBag); } DestroyObject(oSearchForBag,1.0); } }