That's essentially what I've done, but instead of a dot I have a "[You make a mental note of this conversation for your Record Book]", which I actually find less annoying than just a dot.
Cool
Hmm... I can't think of another way of achieiving the same thing, but I've improved my script now so that it will only ever register 1 CellChanged event at a time, as opposed to before, where I went outside and it counted 26 CellChanged events
Create an object and keep it need the player. Have a local script and a targeted global script running on that object. Keep the object near the player by using setpos.
Use the global script to "ping" the local script (say set a global variable to 1). The local script should then set that global to 0 (if it is 1). You can then tell if the local script is running.
If it isn't running, then the player has moved between interiors or from an interior to an exterior (or visa versa). Delete the old object using the global script (which was targeted at the object) and then create a new object near to the player.
So basically a really rough guide, local script:
if ( getDisabled ) returnendifset temp to player->getPos, xset temp to temp - 500setPos x temp;etcif ( scriptrunning "globalScript == 0 ) startscript "globalscript"endif;keep the global at 0set globalPing to 0
global:
if ( trueCellChanged ) set trueCellChanged to 0endifset globalPing to globalPing + 1if ( gobalPing > 2 ) ;several frames without being reset to 0 ;probably a new cell set trueCellChanged to 1 ;flag it up to the scripts that monitor cell changed placeatpc "newobject" disable setdelete 1 stopscript "globalscript" returnendif