void main() { object oPC = GetEnteringObject(); if (!GetIsObjectValid(oPC)) oPC=GetClickingObject(); object oArea=GetArea(oPC); object oWorm=GetLocalObject(oArea, "Worm"); location lWhere=GetLocation(oWorm); if(!GetIsPC(oPC)) return; if(GetLocalInt(oArea, "CanLeave") || (d20()+GetAbilityModifier(ABILITY_STRENGTH, oPC)>=12)) { if (!GetIsObjectValid(GetAreaFromLocation(lWhere))) lWhere=GetLocalLocation(oPC, "WormReturn"); SendMessageToPC(oPC, "You manage to claw your way out of the worm's mouth."); AssignCommand(oPC, ClearAllActions()); AssignCommand(oPC, JumpToLocation(lWhere)); } else SendMessageToPC(oPC, "You try to climb back out the mouth, but are held back by the action of the sphincters."); }