I guess my problem is that the llDialog is the one speaking, so can it pass along the information of the clicking person thru that? I might as well just post the code I'm having trouble with:
key giver;
default
{
state_entry()
{
}
touch_start(integer total_number)
{
key giver;
giver = llDetectedKey(0);
llDialog(giver, "Would you like to receive your Top-Secret Information? (Warning, you can only do this once, and then your package will self destruct.)", [ "Open", "Keep Sealed" ], 1234);
llListen(1234,"","","Open"

;
llListen(1234,"","","Keep Sealed"

;
}
listen(integer channel,string name, key id, string message)
{
if(message == "Open"

{
llWhisper(0, "Prepare to recieve your top secret info!"

;
llGiveInventory(llDetectedKey(0), "Top-Secret Info"

;
llRemoveInventory("Top-Secret Info"

;
llRemoveInventory("Info Giver Script"

; //this script
llWhisper(0, "Enjoy!"

;
}
else if (message == "Keep Sealed"

{
llWhisper(0, "You keep your package unopened... for now."

;
}
}
}
Here's what I'm trying to do:
1) Person that owns the package clicks the package.
2) This person gets a dialog box that asks "Would you like to receive your Top-Secret Information? (Warning, you can only do this once, and then your package will self destruct.)",
a) If player clicks Open button, they receive a notecard with information. Script then removes the notecard and its own script from the package's inventory, leaving object empty, but not itself deleted.
b) If player clicks Keep Sealed, they hear a whisper that says "You keep your package unopened... for now.". The notecard with information and the script stay inside the object for another time.
3) I haven't implemented it yet, but I can tell it'll give me trouble: I want to make it so that no one but the owner of the object can use the Dialog box.. if anyone else touches the object, nothing happens.
Thanks for your help Kurt, and I thank anyone else that can help me with this problem.
