I have some new info on this situation. While working on an object trigger on the 4d buildport, I started getting error messages. The trigger was basically a copy of Rumble's Object Variables Example:
www.tbamud.com/forum/3-building/3767-tri...day-object-variables
which I was using to compare variables (it turns out that 4d does not use all these variables).
While I was working, error messages started flying past, like:
[ Trigger: Test Trigger, VNum 20999. unknown char field: 'carried_by' ]
I then went through my usual procedure of examining the trigger, the object, the errors then moving on to panicking and examining them all again from this point of view. I detatched the trigger, I sacc'd the item and the errors continued. I logged off and logged in again, in case it was me (ie cursed by the trigger gods). This didn't work very well since I couldn't tell if the errors continued without me. I switched the numeric arg to 0, disabling the trigger while keeping it around for study. The next day I decided to add extra echos and found out that the trigger had apparently attached itself to something else.
Anyone who has worked with me knows that I'm capable of making terrible errors. However, I don't think this was me.
It's also been pointed out to me that attaching and detaching isn't as good as adding a script by edit. I can agree with this but I do find it much more convenient for testing.
When you attach, there's a safe message which tells you which trigger you've attached to what:
attach obj 20999 20999
Trigger 20999 (Test Trigger) attached to a test object [20999].
It's really hard to accidentally change
attach obj 20999 20999
to
attach mob 20999 21000
especially without noticing the info line.
I really think that somewhere along the line, the program added 1 to my 20999 and switched obj for mob and attached the trigger itself. I also think the tba has been doing the same thing. Since it's attached, not edited, reboot kills the attachment. The fact that it happens when I'm not even working on the zone seems to indicate that it isn't my accident.
What I need to do now is wait until the next time it happens and add in some echos like:
/i 1 %at% %parna% %echo% My vnum is %self.vnum%!
Of course, now that I've worked this out, I'm probably not going to see those errors again, just to drive me crazier!