Aschbourne_PRC8/_module/nss/_open_bowyer.nss
Jaysyn904 5d27edafba Major update
Fixed CCOH, Fixed starting GP, Fixed DMFI languages, Fix cep weapon appearances, Fixed new player start up system.  Added PC deleter.  Added ACP 4.1.  Full compile.  Updated release archive.
2024-09-16 23:40:48 -04:00

76 lines
3.2 KiB
Plaintext

//#include "_persist_01a"
void main()
{
object oPC = GetLastOpenedBy();
//int iBowSkill = GetTokenPair(oPC,13,3);
int iBowSkill = GetCampaignInt("UOACraft","iBowSkill",oPC);
int iBowChance = iBowSkill;
int iWoodType = GetLocalInt(oPC,"iUseThisWood");
if (GetItemPossessedBy(oPC,"NoDrop_SkillLogBook")==OBJECT_INVALID)
{
CreateItemOnObject("skilllogbook",oPC,1);
}
if (iBowChance < 350)
{
iBowChance = GetAbilityScore(oPC,ABILITY_STRENGTH)*5;
iBowChance = iBowChance+(GetAbilityScore(oPC,ABILITY_DEXTERITY)*3);
iBowChance = iBowChance+(GetAbilityScore(oPC,ABILITY_WISDOM)*2);
iBowChance = iBowChance*3;
if (iBowChance>350)iBowChance=350;
if (iBowSkill > iBowChance) iBowChance=iBowSkill;
}
// Create Wood Type FlagSwitches
if (iWoodType != 0)CreateItemOnObject("flagswitch026",OBJECT_SELF,1);
if (iWoodType != 1)CreateItemOnObject("flagswitch027",OBJECT_SELF,1);
if (iWoodType != 2)CreateItemOnObject("flagswitch028",OBJECT_SELF,1);
if (iWoodType != 3)CreateItemOnObject("flagswitch029",OBJECT_SELF,1);
if (iWoodType != 4)CreateItemOnObject("flagswitch030",OBJECT_SELF,1);
if (iWoodType != 5)CreateItemOnObject("flagswitch031",OBJECT_SELF,1);
if (iWoodType != 6)CreateItemOnObject("flagswitch032",OBJECT_SELF,1);
if (iWoodType != 7)CreateItemOnObject("flagswitch033",OBJECT_SELF,1);
if (iWoodType != 8)CreateItemOnObject("flagswitch034",OBJECT_SELF,1);
if (iWoodType != 9)CreateItemOnObject("flagswitch035",OBJECT_SELF,1);
if (iWoodType != 10)CreateItemOnObject("flagswitch036",OBJECT_SELF,1);
if (iWoodType != 11)CreateItemOnObject("flagswitch037",OBJECT_SELF,1);
if (iWoodType != 12)CreateItemOnObject("flagswitch038",OBJECT_SELF,1);
if (iWoodType != 13)CreateItemOnObject("flagswitch039",OBJECT_SELF,1);
if (iWoodType != 14)CreateItemOnObject("flagswitch040",OBJECT_SELF,1);
if (iWoodType != 15)CreateItemOnObject("flagswitch041",OBJECT_SELF,1);
if (iWoodType != 16)CreateItemOnObject("flagswitch042",OBJECT_SELF,1);
if (iWoodType != 17)CreateItemOnObject("flagswitch043",OBJECT_SELF,1);
if (iWoodType != 18)CreateItemOnObject("flagswitch044",OBJECT_SELF,1);
int iPenalty = iWoodType * 5;
iBowChance = iBowChance - iPenalty;
// Create tokens for items which are 24.0 skill or below, as all characters can make these.
CreateItemOnObject("pattern055",OBJECT_SELF,1); //ShortBow
if (iBowChance >=250) CreateItemOnObject("pattern016",OBJECT_SELF,1); //Light Crossbow
if (iBowChance >=400) CreateItemOnObject("pattern058",OBJECT_SELF,1); //Long Bow
if (iBowChance >=450) CreateItemOnObject("pattern017",OBJECT_SELF,1); //Heavy CrossBow
// 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);
}
}