void main() { int iSilkNum = GetLocalInt(OBJECT_SELF,"iSilk"); if (iSilkNum<1) return; object oPC = GetLastDisturbed(); object oItem = GetInventoryDisturbItem(); if (GetInventoryDisturbType()== INVENTORY_DISTURB_TYPE_ADDED) { // The following 3 lines are to ensure compatability with UOAbigal's Persistent Token System. // You can replace them with whatever 'no-drop' code you have or comment them out. string sNoDropFlag = (GetStringLeft(GetTag(oItem),6)); if (sNoDropFlag == "NoDrop" || sNoDropFlag == "TOKEN_"||sNoDropFlag=="_TBOX_") return; if (GetBaseItemType(oItem)==BASE_ITEM_LARGEBOX) { DestroyObject(oItem); SendMessageToPC(oPC,"To avoid possible dupe exploits, the container placed in this bag may be destroyed."); return; } CopyItem(oItem,oPC,TRUE); DestroyObject(oItem,1.0); } float fSelf = GetFacing(oPC)+Random(360); object oArea = GetArea(oPC); vector vSelf = GetPosition(oPC); object oTemp = OBJECT_INVALID; float fDistance = (IntToFloat(Random(100)+1)/10.0); vector vFire = vSelf + (AngleToVector(fSelf) * fDistance); location lFire = Location(oArea,vFire,fSelf); if (Random(1000)<350) { string sSpiderResRef = "spidgiant001"; if (Random(1000)<500) sSpiderResRef="spidgiant002"; if (Random(1000)<350) sSpiderResRef="spidgiant002"; oTemp = CreateObject(OBJECT_TYPE_CREATURE,sSpiderResRef,lFire,TRUE); AssignCommand(oTemp,SetFacingPoint(AngleToVector(GetFacing(oPC)))); AssignCommand(oTemp, ActionAttack(oPC,FALSE)); ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY,EffectVisualEffect(VFX_DUR_WEB,FALSE),lFire,600.0); FloatingTextStringOnCreature("You have disturbed a dormant spider!",oPC,FALSE); iSilkNum--; SetLocalInt(OBJECT_SELF,"iSilk",iSilkNum); } }