NPCRECT changes by Crwth

In the NPC script files, the meaning of the values of FX1, FX2, FY1, FY2 and FZ1
have changed.

Because a Scriptwriter doesn't know where the NPC will be placed, a valid set of
'true' coordinates cannot be given for a bounding rectangle or circle.  Because of
this, the values of the "F" coordinate values will not be interpreted as RELATIVE
coordinates - coordinates based on where the NPC was created.

For example:

   72 73 74 75 76 77 78 79 80 81
   __ __ __ __ __ __ __ __ __ __
78|__|__|__|__|__|__|__|__|__|__|
79|__|__|__|__|__|__|__|__|__|__|
80|__|__|__|__|__|__|__|__|__|__|
81|__|__|__|__|__|__|__|__|__|__|
82|__|__|__|__|__|__|__|__|__|__|
83|__|__|__|__|__|__|__|__|__|__|
84|__|__|__|__|__|__|__|__|__|__|
85|__|__|__|__|__|__|__|__|__|__|
86|__|__|__|__|__|__|__|__|__|__|
87|__|__|__|__|__|__|__|__|__|__|

This is a small shop (use your imagination...)

  If an NPC is added at X=77, Y=82, Z=0,

   72 73 74 75 76 77 78 79 80 81
   __ __ __ __ __ __ __ __ __ __
78|__|__|__|__|__|__|__|__|__|__|
79|__|__|__|__|__|__|__|__|__|__|
80|__|__|__|__|__|__|__|__|__|__|
81|__|__|__|__|__|__|__|__|__|__|
82|__|__|__|__|__|XX|__|__|__|__|
83|__|__|__|__|__|__|__|__|__|__|
84|__|__|__|__|__|__|__|__|__|__|
85|__|__|__|__|__|__|__|__|__|__|
86|__|__|__|__|__|__|__|__|__|__|
87|__|__|__|__|__|__|__|__|__|__|

we want him to be able to walk anywhere in the store.  Optimally,
we would like to say that FX1=72, FY1=78, FX2=81, FY2=87, FZ1=-1.
For someone just adding in a vendor, though, we'd like them to be
able to just click in the center of the shop, and it'll go.

With the new system, if we set FX1=-4, this means that the NPC can
go as far as 4 squares left (negative on the x-axis) from the starting
point.  Also, FY1=-4 gives us 4 squares up.  With FX2=4 and FY2=4,
our NPC will be able to walk in this area:

   72 73 74 75 76 77 78 79 80 81
   __ __ __ __ __ __ __ __ __ __
78|__|oo|oo|oo|oo|oo|oo|oo|oo|oo|
79|__|oo|oo|oo|oo|oo|oo|oo|oo|oo|
80|__|oo|oo|oo|oo|oo|oo|oo|oo|oo|
81|__|oo|oo|oo|oo|oo|oo|oo|oo|oo|
82|__|oo|oo|oo|oo|XX|oo|oo|oo|oo|
83|__|oo|oo|oo|oo|oo|oo|oo|oo|oo|
84|__|oo|oo|oo|oo|oo|oo|oo|oo|oo|
85|__|oo|oo|oo|oo|oo|oo|oo|oo|oo|
86|__|oo|oo|oo|oo|oo|oo|oo|oo|oo|
87|__|__|__|__|__|__|__|__|__|__|

This doesn't quite reach all of the shop, though.
Sure, changing the FX1 and FY1 to -5 would work, but
we don't have the luxury of knowing this when writing
the npc.scp file.

Setting them to (-5,-5) (5,5) would give us this:

   72 73 74 75 76 77 78 79 80 81
   oo oo oo oo oo oo oo oo oo oo oo
78|oo|oo|oo|oo|oo|oo|oo|oo|oo|oo|oo
79|oo|oo|oo|oo|oo|oo|oo|oo|oo|oo|oo
80|oo|oo|oo|oo|oo|oo|oo|oo|oo|oo|oo
81|oo|oo|oo|oo|oo|oo|oo|oo|oo|oo|oo
82|oo|oo|oo|oo|oo|XX|oo|oo|oo|oo|oo
83|oo|oo|oo|oo|oo|oo|oo|oo|oo|oo|oo
84|oo|oo|oo|oo|oo|oo|oo|oo|oo|oo|oo
85|oo|oo|oo|oo|oo|oo|oo|oo|oo|oo|oo
86|oo|oo|oo|oo|oo|oo|oo|oo|oo|oo|oo
87|oo|oo|oo|oo|oo|oo|oo|oo|oo|oo|oo

This means that the NPC is ALLOWED outside the shop, but
there's no way for the NPC to get there.  Even (-6,-6)
(6,6) would be okay;  they could wander around the outside
of the building.

I don't really know what the size of shops usually are, and of
course they can change.  Without changing the NPCs wander numbers by
hand, there's really no perfect way (unless we had the NPC
understand that it was INDOORS, which isn't going to happen soon).

If the range is too small, then the vendor just won't walk to the
edges of the shop:  it's quite possible no one would ever notice that.
Making the range a little too big shouldn't be bad, either;  the vendor
will always "be around".

So, for vendors, something like

FX1=-6
FY1=-6
FX2=6
FY2=6
FZ1=-1

and for monsters, perhaps

FX1=-12
FY1=-12
FX2=12
FY2=12
FZ1=-1

But it's up to you!  Some monsters might roam farther, some not at all...
of course, what this means is a pile of modifications to npc.scp.  But you
had nothing else to do, did you?

As a final note:  if you think it would be better for the user to start the
npc off in the top-right corner of an area, then:

   72 73 74 75 76 77 78 79 80 81
   __ __ __ __ __ __ __ __ __ __
78|XX|__|__|__|__|__|__|__|__|__|
79|__|__|__|__|__|__|__|__|__|__|
80|__|__|__|__|__|__|__|__|__|__|
81|__|__|__|__|__|__|__|__|__|__|
82|__|__|__|__|__|__|__|__|__|__|
83|__|__|__|__|__|__|__|__|__|__|
84|__|__|__|__|__|__|__|__|__|__|
85|__|__|__|__|__|__|__|__|__|__|
86|__|__|__|__|__|__|__|__|__|__|
87|__|__|__|__|__|__|__|__|__|__|

Here is the starting point, and the values to use would be

FX1=0
FY1=0
FX2=9
FY2=0
FZ1=-1

Of course, if the user puts the vendor in the middle, she'll be able to
wander out of the shop, and never in the topleft half!  It's really up to
the script team on where the coordinates go;  I think the 'centering' idea
is probably better, though.