Thanks for the suggestion. Even though it didn't work, I was sitting here looking at the two files and I realized that I could do the same thing as I had with the zone files; swap them out bit by bit until I found what crashed and what didn't. Of course, with the zone files I started at the big numbers since I felt that the error was more likely to be in a newer zone than in the old tried-and-true. And after checking a bunch of zones, where was it? Zone 0! So I wasn't going to be tricked like that again, right? So I started at the beginning and where was the problem? #90 *sniff*
Code:
#90
ice cream 99 flake~
an ice cream~
An ice cream has been dropped here.~
~
19 0 0 0 0 ao 0 0 0 0 0 0 0
1 0 0 0
1 4 0 0 1
T 82
E
ice cream 99 flake~
Known as the 99, it is an ice cream cornet with a stick of chocolate rammed
in. First sold in 1922 at the ice cream shop at 99 the High Street, Portobello,
Scotland.
~
Personally, I felt that the problem was going to be in that big long line that starts with 19 but after messing with it a while, it turned out to be this one: 1 4 0 0 1. The working copy was: 1 4 0 0. I thought this was odd because I figured that a missing number would be MORE likely to cause a crash. When stating the object, the values were:
Weight: 1, Value: 4, Cost/day: 0, Timer: 0, Min level: 0
This looked like the problem was in the min level but, oddly, stat shows:
Weight, Value, Cost/day, Timer, Min level
while the file shows
Weight, Value, Cost/day, Min level, Timer
which is kinda confusing.
But, yes, the problem is in the Timer. Timer is used in conjunction with a timer trigger to make something happen to the object at a certain time. In this case, the ice cream will melt in 1 minute. This probably has a bit of a random factor. When I changed the timer to 2 minutes, the mud crashed at 2 minutes and about 10 seconds. With no changes, the mud would crash in a range of almost immediately to maybe 2 minutes or so, although I never actually timed it, basically maybe 2 to 10 commands. This explains also why it never crashed on an empty mud, because the tics don't start until someone is logged in.
I still don't understand why this is only VS and not Cygwin or Linux but I'm surprised there isn't more of a problem. This ice cream is sold by the waitress in room 99. The mud starts, the waitress loads, the ice cream loads, the timer starts ticking and one minute later...BOOM! What happens in a normal mud? Why doesn't the ice cream melt in the waitress' hands? How does she manage to keep it in stock?
This seems to be the only timer that loads automatically so if you change the 1 to a 0 (or oddly even remove it) the crashes stop. You lose the benefit of the timer lesson but that's a good thing in this situation. Another timer is in my own Tarot zone where the receptionist uses it to time her conversation with a customer so that no player can go in, start talking to her and go afk, blocking anyone else from talking to her. Without that block that makes her concentrate on one player, you could talk to her and someone else could grab control and take your spot. However, in the VS version, if someone is blocking, the mud will crash. Corpses are on timers but they don't cause crashes. But just to make me boggle, Detta has a timer in object 11862, trigger 11897, that works without crashing the mud. See? I always knew she was a much better builder than I am!
So I now have an up-to-date working TBA with no HUH?, a confused receptionist, a non-melting ice cream cone and a time-bomb potential for unrealized timer progs. I still think I'm ahead