Because the label is executed on all maps when player enters, if you want an exclusive map you have to add an codition like
OnPCLoadMapEvent:if (strcharinfo(3) == strnpcinfo(4)) showevent QTYPE_QUEST,1;end;
Its bit unnecessary modify source code for that, you just need to put a "next" before use menu commands. This "problem" as you say only happens when you use "select" or "menu" right after "mes".
But anyway, this command can reduce some lines of code.
You need to add the item's slots in your client.
I think for old hexeds is in data/itemslotcounttable.txt, and for new hexeds is in system/itemInfo.lua
set .@time, gettimetick(2);if(next_use_tick > .@time) { set .@diff_tick, (next_use_tick - .@time); mes "You can talk to me in "+(.@diff_tick / 60)+" minutes."; close;}set next_use_tick, .@time + (5 * 60);mes "Hello!";close;