Aantioch_Infernum/_module/nss/asg_rul_testbsel.nss
Jaysyn904 22947ad4b6 Initial Upload
Initial Upload
2023-08-08 16:22:17 -04:00

928 lines
22 KiB
Plaintext

// asg_REQ1(object oPC,int vREQ, int vNUM);
#include "nw_i0_plot"
int asg_REQ1(object oPC,string sTag,int vNUM)
{
int TRUEFALSE = FALSE;
if (sTag=="")
{
ActionSpeakString("ERROR: Test Resource Script Error NO VALID sTag.");
return TRUEFALSE;
}
else
{
int vITEMTOBUILD = GetLocalInt(oPC,"ITEMTOBUILD");
object oItem = GetFirstItemInInventory(oPC);
int vCount;
vCount = GetNumItems(oPC,sTag);
ActionSpeakString("Test: Resource ("+sTag+") Found ["+IntToString(vCount)+"]");
if (vCount>=vNUM)
{
TRUEFALSE=TRUE;
ActionSpeakString("Test: Found Required Resources found.");
}
else
{
ActionSpeakString("Test: Resources not found Required ["+IntToString(vNUM)+"].");
}
return TRUEFALSE;
}
}
//
int StartingConditional()
{
int iResult = FALSE;
object oPC = GetPCSpeaker();
// general religous stuff.
int vGoodEvil = GetLocalInt(oPC,"GoodEvil");
int vLawChaos = GetLocalInt(oPC,"LawChaos");
string sDeity=GetLocalString(oPC,"INGAMEDEITY");
string sName;
// Set Shrine properties based on alignment
if (sDeity=="")
{
SetLocalInt(oPC,"DeityOVERIDE",TRUE);
sDeity = "Baccob";
vGoodEvil = ALIGNMENT_NEUTRAL;
vLawChaos = ALIGNMENT_NEUTRAL;
SetLocalString(oPC,"INGAMEDEITY",sDeity);
SetLocalInt(oPC,"GoodEvil",vGoodEvil);
SetLocalInt(oPC,"LawChaos",vLawChaos);
}
// return to other stuff
int vITEMTOBUILD = GetLocalInt(oPC,"ITEMTOBUILD");
int vNUMBERGIVEN =1;
string sREQ1;
string sREQ2;
string sREQ3;
string sREQ4;
int vNUM1 = 0;
int vNUM2 = 0;
int vNUM3 = 0;
int vNUM4 = 0;
int vNOERROR = TRUE;
int vNEEDED = 0;
int vTRUE = FALSE;
int vREQUIRED = 0;
string sItem;
string sBluePrint;
int vPLACE; // (1) = ITEM, goes on pc's inventory, (2) PLACEABLE, goes on ground at PC's FEET.
// (3) PLACEABLE, goes near another object.
// (4) Item is a Creature - needs a summoning point = again with the sDist_What
string sDIST_WHAT; // If option 3 is selected then search for this object. Look for
// this TAG.
float vDIST; // (0) if option 3 is selected this tells us how far from this object
// that this item can be built.
switch(vITEMTOBUILD)
{
break;
case(3001): // Chest.
{
sItem = "Wooden Chest";
sBluePrint="chest005";
vPLACE = 2;
// Item #1
sREQ1="ASG_FIREWOOD";
vNUM1 = 2; // 1 unit to build club
// tells the true/false that there are "x" number of trues
}
break;
case(3002): // Candelobra.
{
sItem = "Candelabra";
sBluePrint="candelabra001";
vPLACE = 2;
// Item #1
sREQ1="ASG_FIREWOOD";
vNUM1 = 1; // 1 unit to build club
// tells the true/false that there are "x" number of trues
// Item #2
sREQ2="CANDEL";
vNUM2=4;
}
break;
case(3003): // Forge.
{
sItem = "Forge/Oven";
sBluePrint="forge";
vPLACE = 2;
// item 2
sREQ2="StoneBlock";
vNUM2 = 4;
// item 3
sREQ3="NW_IT_MMIDMISC06";
vNUM3 = 1;
}
break;
case(3004): // Large Back Pack (Normal).
{
sItem = "Leather Back Pack";
sBluePrint="it_contain007";
vPLACE = 1;
// Item #1
sREQ1="NW_IT_MMIDMISC06";
vNUM1 = 1;
}
break;
case(3005): // Small Torch
{
sItem = "Wooden Torch";
sBluePrint="nw_it_torch001";
vPLACE = 1;
// Item #1
sREQ1="ASG_FIREWOOD";
vNUM1 = 1;
}
break;
case(3006): // Basic Leather Barbarian outfit.
{
sItem = "Barbarian Outfit";
sBluePrint="nw_cloth015";
vPLACE = 1;
// Item #1
sREQ1="NW_IT_MMIDMISC06";
vNUM1 = 2;
}
break;
case(3007): // Anvil
{
sItem = "Anvil";
sBluePrint="anvil";
vPLACE = 2;
// Item #1
sREQ1="StoneBlock";
vNUM1 = 2;
}
break;
// ***
// *** Resources
// ***
case(4001): // Iron Ingit
{
sItem = "Iron Ingit";
sBluePrint="ironingit";
vPLACE = 1;
// Item #1
sREQ1="IronOre";
vNUM1 = 10;
}
break;
case(4002): // Empty Bottle
{
sItem = "Empty Bottle";
sBluePrint="it_thnmisc002";
vPLACE = 1;
// Item #1
sREQ1="Glass";
vNUM1 = 1;
}
break;
case(4003): // Unit of Sand
{
sItem = "Bag of Sand";
sBluePrint="sand";
vPLACE = 1;
vNUMBERGIVEN = 5;
// Item #1
sREQ1="StoneBlock";
vNUM1 = 1;
}
break;
case(4004): // Unit of Glass
{
sItem = "Unit of Glasst";
sBluePrint="glass";
vPLACE = 1;
// Item #1
sREQ1="Sand";
vNUM1 = 5;
}
break;
case(4005): // Magic Powder
{
sItem = "Magic Powder";
sBluePrint="magicpowder";
vPLACE = 1;
// Items Required
sREQ1="NW_IT_MSMLMISC19";
vNUM1 = 5;
}
break;
case(4006): // Metal Rod
{
sItem = "Metal Rod";
sBluePrint="metalrod";
vPLACE = 1;
// Items Required
sREQ1="IronIngit";
vNUM1 = 1;
}
break;
// *****
// ** Arms & Armor - Normal
// *****
case(5001): // Daggers
{
sItem = "Dagger";
sBluePrint="nw_wswdg001";
vPLACE = 1;
// Item #1
sREQ1="IronIngit";
vNUM1 = 1;
}
break;
case(5002): // Kama - Exotic
{
sItem = "Kama";
sBluePrint="nw_wspka001";
vPLACE = 1;
// Item #1
sREQ1="ASG_FIREWOOD";
vNUM1 = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 1;
}
case(5003): // Shuriken - Exoitic
{
sItem = "Shuriken";
sBluePrint="nw_wthsh001";
vPLACE = 1;
vNUMBERGIVEN = 99;
// Item #1
sREQ1="IronIngit";
vNUM1 = 1;
}
break;
case(5004): // Throwing Hand Axe
{
sItem = "Throwing Axe";
sBluePrint="nw_wthax001";
vPLACE = 1;
vNUMBERGIVEN = 50;
// Item #1
sREQ1="ASG_FIREWOOD";
vNUM1 = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 1;
}
break;
case(5005): // Lt Crossbow
{
sItem = "Lt. Crossbow";
sBluePrint="nw_wbwxl001";
vPLACE = 1;
// Item #1
sREQ1="ASG_FIREWOOD";
vNUM1 = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 1;
}
break;
case(5006): // Darts
{
sItem = "Darts";
sBluePrint="nw_wthdt001";
vPLACE = 1;
// Item #1
sREQ1="ASG_FIREWOOD";
vNUM1 = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 1;
}
break;
case(5007): // Hammer, light
{
sItem = "Hammer, Light";
sBluePrint="nw_wblhl001";
vPLACE = 1;
// Item #1
sREQ1="ASG_FIREWOOD";
vNUM1 = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 1;
}
break;
case(5008): // Handaxe
{
sItem = "Handaxe";
sBluePrint="nw_waxhn001";
vPLACE = 1;
// Item #1
sREQ1="ASG_FIREWOOD";
vNUM1 = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 1;
}
break;
case(5009): // Mace
{
sItem = "Mace";
sBluePrint="nw_wblml001";
vPLACE = 1;
// Item #1
sREQ1="ASG_FIREWOOD";
vNUM1 = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 1;
}
break;
case(5010): // Sickle - Exotic
{
sItem = "Sickle";
sBluePrint="nw_wspsc001";
vPLACE = 1;
// Item #1
sREQ1="ASG_FIREWOOD";
vNUM1 = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 1;
}
break;
case(5011): // Spear
{
sItem = "Spear";
sBluePrint="nw_wplss001";
vPLACE = 1;
// Item #1
sREQ1="ASG_FIREWOOD";
vNUM1 = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 1;
}
break;
case(5012): // ShortSword
{
sItem = "Short Sword";
sBluePrint="nw_wswss001";
vPLACE = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 1;
}
break;
case(5013): // Battle Axe
{
sItem = "Battle Axe";
sBluePrint="nw_waxbt001";
vPLACE = 1;
// Item #1
sREQ1="ASG_FIREWOOD";
vNUM1 = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 2;
}
break;
case(5014): // Crossbow, Heavy
{
sItem = "Crossbow, Heavy";
sBluePrint="nw_wbwxh001";
vPLACE = 1;
// Item #1
sREQ1="ASG_FIREWOOD";
vNUM1 = 2;
// Item #2
sREQ2="IronIngit";
vNUM2 = 1;
}
break;
case(5015): // Flail, Light
{
sItem = "Flail, Light";
sBluePrint="nw_wblfl001";
vPLACE = 1;
// Item #1
sREQ1="ASG_FIREWOOD";
vNUM1 = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 1;
}
break;
case(5016): // Katana
{
sItem = "Katana";
sBluePrint="nw_wswka001";
vPLACE = 1;
// Item #1
sREQ2="IronIngit";
vNUM2 = 2;
}
break;
case(5017): // LongSword
{
sItem = "Long Sword";
sBluePrint="nw_wswls001";
vPLACE = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 2;
}
break;
case(5018): // Morning Star
{
sItem = "Morning Star";
sBluePrint="nw_wblms001";
vPLACE = 1;
// Item #1
sREQ1="ASG_FIREWOOD";
vNUM1 = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 1;
}
break;
case(5019): // Rapeir
{
sItem = "Rapeir";
sBluePrint="nw_wswrp001";
vPLACE = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 2;
}
break;
case(5020): // Warhammer.
{
sItem = "WarHammer";
sBluePrint="nw_wblhw001";
vPLACE = 1;
// Item #1
sREQ1="ASG_FIREWOOD";
vNUM1 = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 2;
}
break;
case(5060): // Scimitar.
{
sItem = "Scimitar";
sBluePrint="nw_wswsc001";
vPLACE = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 2;
}
break;
// *** Large Weapons
case(5021): // Bastard Sword
{
sItem = "Bastard Sword";
sBluePrint="nw_wswbs001";
vPLACE = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 2;
}
break;
case(5022): // Dire Mace.
{
sItem = "Dire Mace";
sBluePrint="nw_wdbma001";
vPLACE = 1;
// Item #1
sREQ1="ASG_FIREWOOD";
vNUM1 = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 3;
}
break;
case(5023): // Two Bladed.
{
sItem = "Two Bladed";
sBluePrint="nw_wdbsw001";
vPLACE = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 3;
}
break;
case(5024): // Double Axe.
{
sItem = "Double Axe";
sBluePrint="nw_wdbax001";
vPLACE = 1;
// Item #1
sREQ1="ASG_FIREWOOD";
vNUM1 = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 4;
}
break;
case(5025): // Flial, Heavy.
{
sItem = "Flail, Heavy";
sBluePrint="nw_wblfh001";
vPLACE = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 3;
// Item #1
sREQ1="ASG_FIREWOOD";
vNUM1 = 1;
}
break;
case(5026): // Great Axe.
{
sItem = "Great Axe";
sBluePrint="nw_waxgr001";
vPLACE = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 3;
// Item #1
sREQ1="ASG_FIREWOOD";
vNUM1 = 1;
}
break;
case(5027): // Greate Sword.
{
sItem = "Great Sword";
sBluePrint="nw_wswgs001";
vPLACE = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 3;
}
break;
case(5028): // Halbred.
{
sItem = "Halbred";
sBluePrint="nw_wplhb001";
vPLACE = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 1;
// Item #1
sREQ1="ASG_FIREWOOD";
vNUM1 = 2;
}
break;
case(5029): // LongBow
{
sItem = "Long Bow";
sBluePrint="nw_wbwln001";
vPLACE = 1;
// Item #1
sREQ1="ASG_FIREWOOD";
vNUM1 = 1;
}
break;
case(5030): // Scythe
{
sItem = "Scythe";
sBluePrint="nw_wplsc001";
vPLACE = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 2;
// Item #1
sREQ1="ASG_FIREWOOD";
vNUM1 = 1;
}
break;
case(5031): // Leahter Armor
{
sItem = "Leather Armor";
sBluePrint="nw_aarcl001";
vPLACE = 1;
// Item #1
sREQ1="NW_IT_MMIDMISC06";
vNUM1 = 4;
}
break;
case(5032): // Studded Leather
{
sItem = "Studded Leather";
sBluePrint="nw_aarcl002";
vPLACE = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 1;
// Item #1
sREQ1="NW_IT_MMIDMISC06";
vNUM1 = 4;
}
break;
case(5033): // Chain Shirt
{
sItem = "Chain Shirt";
sBluePrint="nw_aarcl012";
vPLACE = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 5;
// Item #1
sREQ1="NW_IT_MMIDMISC06";
vNUM1 = 1;
}
break;
case(5034): // Scale
{
sItem = "Scalemail";
sBluePrint="nw_aarcl003";
vPLACE = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 5;
// Item #1
sREQ1="NW_IT_MMIDMISC06";
vNUM1 = 1;
}
break;
case(5035): // Chainmail
{
sItem = "Chainmail";
sBluePrint="nw_aarcl004";
vPLACE = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 8;
// Item #1
sREQ1="NW_IT_MMIDMISC06";
vNUM1 = 1;
}
break;
case(5036): // Breast Plate
{
sItem = "Breast Plate";
sBluePrint="nw_aarcl010";
vPLACE = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 8;
// Item #1
sREQ1="NW_IT_MMIDMISC06";
vNUM1 = 1;
}
break;
case(5037): // Splintmail
{
sItem = "Splintmail";
sBluePrint="nw_aarcl005";
vPLACE = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 9;
// Item #1
sREQ1="NW_IT_MMIDMISC06";
vNUM1 = 1;
}
break;
case(5038): // Bandedmail
{
sItem = "Bandedmail";
sBluePrint="nw_aarcl011";
vPLACE = 9;
// Item #2
sREQ2="IronIngit";
vNUM2 = 2;
// Item #1
sREQ1="NW_IT_MMIDMISC06";
vNUM1 = 1;
}
break;
case(5039): // Halfplate
{
sItem = "Half Plate";
sBluePrint="nw_aarcl006";
vPLACE = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 10;
// Item #1
sREQ1="NW_IT_MMIDMISC06";
vNUM1 = 1;
}
break;
case(5040): // Full Plate
{
sItem = "Full Plate";
sBluePrint="nw_aarcl007";
vPLACE = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 15;
// Item #1
sREQ1="NW_IT_MMIDMISC06";
vNUM1 = 1;
}
break;
case(5041): // Large Shield
{
sItem = "Large Sheild";
sBluePrint="nw_ashlw001";
vPLACE = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 1;
// Item #1
sREQ1="ASG_FIREWOOD";
vNUM1 = 1;
}
break;
case(5042): // Tower Sheild.
{
sItem = "Tower Shield";
sBluePrint="nw_ashto001";
vPLACE = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 2;
// Item #1
sREQ1="ASG_FIREWOOD";
vNUM1 = 1;
}
break;
case(5044): // Helm.
{
sItem = "Helm";
sBluePrint="nw_arhe001";
vPLACE = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 2;
// Item #1
sREQ1="ASG_FIREWOOD";
vNUM1 = 1;
}
break;
case(5043): // Hide Armor
{
sItem = "Hide Armor";
sBluePrint="nw_aarcl008";
vPLACE = 1;
// Item #1
sREQ1="NW_IT_MMIDMISC06";
vNUM1 = 4;
}
break;
case(5050): // Arrow
{
sItem = "Arrows";
sBluePrint="nw_wamar001";
vNUMBERGIVEN = 99;
vPLACE = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 1;
// Item #1
sREQ1="ASG_FIREWOOD";
vNUM1 = 1;
}
break;
case(5051): // Bolts
{
sItem = "Bolts";
sBluePrint="nw_wambo001";
vNUMBERGIVEN=99;
vPLACE = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 1;
// Item #1
sREQ1="ASG_FIREWOOD";
vNUM1 = 1;
}
break;
case(5052): // Sling Bullets.
{
sItem = "Sling Bullets";
sBluePrint="nw_wambu001";
vNUMBERGIVEN = 99;
vPLACE = 1;
// Item #2
sREQ2="IronIngit";
vNUM2 = 2;
}
break;
default:;
ActionSpeakString("ERROR in ''asg_rul_testbsel'' script on finding item:"+IntToString(vITEMTOBUILD));
}
vNEEDED=0;
if (vNOERROR==TRUE)
{
int vK;vTRUE=FALSE;
if (vNUM1>0)
{
vTRUE = asg_REQ1(oPC,sREQ1,vNUM1);
vNEEDED++;
}
if (vTRUE==TRUE) vREQUIRED++;
vTRUE=FALSE;
if (vNUM2>0)
{
vTRUE = asg_REQ1(oPC,sREQ2,vNUM2);
vNEEDED++;
}
if (vTRUE==TRUE)vREQUIRED++;
vTRUE=FALSE;
if (vNUM3>0)
{
vTRUE = asg_REQ1(oPC,sREQ3,vNUM3);
vNEEDED++;
}
if (vTRUE==TRUE) vREQUIRED++;
vTRUE=FALSE;
if (vNUM4>0)
{
vTRUE = asg_REQ1(oPC,sREQ4,vNUM4);
vNEEDED++;
}
if (vTRUE==TRUE) vREQUIRED++;
vTRUE=FALSE;
}
if (vREQUIRED>=vNEEDED)
{
// last check for placement requirements
int vResult = TRUE;
if (vPLACE==5 || vPLACE==3)
{
object oPlace = GetNearestObjectByTag(sDIST_WHAT,oPC);
float vHOWFAR = GetDistanceBetween(oPlace,oPC);
if (vHOWFAR<=vDIST)
{
vResult=TRUE;
}
else
{
ActionSpeakString("ERROR: To Far from closest ["+GetName(oPlace)+"] Distance ["+FloatToString(vHOWFAR)+"]");
vResult=FALSE;
}
}
if (vResult==TRUE)
{
ActionSpeakString("All items for the "+sItem+" have been found.");
SetLocalString(oPC,"BLUEPRINT",sBluePrint);
SetLocalInt(oPC,"NUMBERGIVEN",vNUMBERGIVEN);
object oPC = GetPCSpeaker();
SetLocalString(oPC,"REQ1",sREQ1);
SetLocalString(oPC,"REQ2",sREQ2);
SetLocalString(oPC,"REQ3",sREQ3);
SetLocalString(oPC,"REQ4",sREQ4);
SetLocalInt(oPC,"NUM1",vNUM1);
SetLocalInt(oPC,"NUM2",vNUM2);
SetLocalInt(oPC,"NUM3",vNUM3);
SetLocalInt(oPC,"NUM4",vNUM4);
SetLocalInt(oPC,"PLACE",vPLACE);
SetLocalString(oPC,"DIST_WHAT",sDIST_WHAT);
iResult=TRUE;
}
}
else
{
ActionSpeakString("TEST: Requirement have for the "+sItem+" have not been met.");
}
return iResult;
}