#include "nw_i0_plot" void Asg_TakeItems(object oPC,string sREQ,int vNUM) { // Take items from player TakeNumItems(oPC,sREQ,vNUM); } // void main() { object oPC = GetPCSpeaker(); object oItem; object oCreature; int vITEMTOBUILD = GetLocalInt(oPC,"ITEMTOBUILD"); int vNUMBERGIVEN = GetLocalInt(oPC,"NUMBERGIVEN"); string sREQ1 = GetLocalString(oPC,"REQ1"); string sREQ2 = GetLocalString(oPC,"REQ2"); string sREQ3 = GetLocalString(oPC,"REQ3"); string sREQ4 = GetLocalString(oPC,"REQ4"); int vNUM1 = GetLocalInt(oPC,"NUM1"); int vNUM2 = GetLocalInt(oPC,"NUM2"); int vNUM3 = GetLocalInt(oPC,"NUM3"); int vNUM4 = GetLocalInt(oPC,"NUM4"); int vPLACE = GetLocalInt(oPC,"PLACE"); string sDIST_WHAT= GetLocalString(oPC,"PLACE"); float vDIST = GetLocalFloat(oPC,"DIST"); object oCChest = GetNearestObjectByTag("ASG_CCHEST",OBJECT_SELF); effect eEffect; // ** // ** Search and Destroy Componants. // ** string sBluePrint = GetLocalString(oPC,"BLUEPRINT"); { int vK; for (vK=1;vK<=4;vK++) { switch(vK) { case(1): { if (vNUM1>0) Asg_TakeItems(oPC,sREQ1,vNUM1); } break; case(2): { if (vNUM2>0) Asg_TakeItems(oPC,sREQ2,vNUM2); } break; case(3): { if (vNUM3>0) Asg_TakeItems(oPC,sREQ3,vNUM3); } break; case(4): { if (vNUM4>0) Asg_TakeItems(oPC,sREQ4,vNUM4); } break; } } } // ** // ** Create Item or Placeable at Location or on Person. // ** switch (vPLACE) { case(1): { oItem = CreateItemOnObject(sBluePrint,oPC,vNUMBERGIVEN); } break; case(2): { oItem = CreateObject(OBJECT_TYPE_PLACEABLE,sBluePrint,GetLocation(oPC),TRUE); } break; case(3): { oItem = CreateObject(OBJECT_TYPE_PLACEABLE,sBluePrint,GetLocation(oPC),TRUE); } break; case(4): { oCreature = CreateObject(OBJECT_TYPE_CREATURE,sBluePrint,GetLocation(oPC),TRUE); } break; case(5): { oItem = CreateItemOnObject(sBluePrint,oPC,vNUMBERGIVEN); } break; case(6): { eEffect = EffectVisualEffect(VFX_IMP_FLAME_M,FALSE); ApplyEffectToObject(DURATION_TYPE_INSTANT,eEffect,oPC,6.0); } break; default: ActionSpeakString("ERROR: Failure to Create item ["+sBluePrint+"] in asg_rul_bulditem."); } // ** // ** Specail Propeties that need to be assigned - assign them here. // ** switch(vITEMTOBUILD) { case(001): { SetLocalObject(oPC,"ASG_SUMMONCIRCLE_ATTUNED_TO",OBJECT_SELF); } break; } }